[LITMUS^RT] Feather Trace Deadline Misses

Björn Brandenburg bbb at mpi-sws.org
Tue Feb 21 12:05:48 CET 2017


> On 21 Feb 2017, at 10:59, De Bock Yorick <Yorick.DeBock at uantwerpen.be> wrote:
> 
> I’m using Litmus-RT for my PhD project to test the schedulability of real-time tasks.
>  
> I use base_task as starting point to create real-time tasks and the execution time approaches the wanted execution time.
>  
> Now I’m testing at which task-set utilization deadline misses start to occur. To trace this I use Feather Trace.
>  
> As long as I don’t have any deadline misses I can trace every job of each task perfectly. But if I have deadline misses the traces shows a gap (output0: line 2571-2620) where only the release events are recorded (no completion, switch_to and swtich_away events). For each task a couple jobs has no tracing information, and this increase if the utilization increases.
>  
> I attached the .bin file, and the converted files to human readable format.
>  
> My question is if this the normal behaviour of feather trace/litmus-rt. Because I aspect to have deadline misses at this utilization, but I need to know at what exact moment the deadline misses happen.
>  
> Set-up: Intel(R) Xeon(R) CPU E5-2420 v2 @ 2.20GHz, RT-XEN, VM with 1 VCPU which can use 1 CPU 100% (budget == period), scheduler: GSN-EDF
> TaskSet utilization: ~94-95 % (measured execution time of all jobs/(time of latest completion – time of first release)).
> 

Hi Yorick,

thanks for your interest in LITMUS^RT. 

First, please sign up for the mailing list before posting; the list generally discards non-member posts.

Concerning your problem, if you run at high utilization, there’s a good chance that the (non-real-time, background) ftcat processes that are supposed to drain the event buffers are being starved. Hence, you are likely overflowing the sched_trace buffers. IIRC, once the buffers are full, new events are discarded until the buffer are drained, which is likely what you are seeing.

You can try increasing the buffer size, and if that doesn’t help, you need to provision the ftcat processes either on a dedicated core or run them as LITMUS^RT real-time tasks to ensure they are getting scheduled.

Best,
Björn




More information about the litmus-dev mailing list