[LITMUS^RT] Job Quantity Issue

Björn Brandenburg bbb at mpi-sws.org
Sat Aug 29 14:04:33 CEST 2015


> On 28 Aug 2015, at 21:40, Geoffrey Tran <gtran at isi.edu> wrote:
> 
> Hi Björn,
> 
> Thanks for your reply.  I've answered your questions below.
> 
> 1) LITMUS-RT 2014.2, with Xen patch
> 
> 2) GSN-EDF with no modifications to the plugin
> 
> 3) KVM
> 
> 4) Each call to the job() function results in the count being
> decremented, so the task terminates when count == 0
> 
> 5) I guess I was confusing myself between what LITMUS sees as
> a job vs the "job" calls in the task.
> 
> Thanks for this explanation.  It is helpful.  However, I then
> have a few more questions please.
> 
> - Shouldn't a forced job completion be counted as a missed deadline?
> If this is what's happening in the second case, it looks like 
> st_job_stats isn't reporting it, possibly due to how it determines
> a missed job.

A deadline miss is reported if the full budget could not be consumed by the deadline. For instance, this can happen under GSN-EDF since it’s not an optimal multiprocessor scheduler. This is different from a task overrunning its assigned budget.

If you want to evaluate budget enforcement events, you can look at the ‘forced’ field in st_completion_data:

	https://github.com/LITMUS-RT/litmus-rt/blob/master/include/litmus/sched_trace.h#L55

You are right that st_job_stats currently does not report this field in its output, but it should be easy to add, and I’d be happy to merge such a patch.

> - Would you be able to recommend a way to have the userspace jobs
> line up with the kernel jobs? My goal is to have a way to generate
> a number of jobs in the task, have that match up with the jobs in the
> trace, and be able to detect the missed deadlines in the benchmark
> at runtime.
> 
> For instance, using this example, the task determines that it needs
> to call job() 10 times and iterations 3 and 8 miss their deadlines, then
> it would be able to know that at runtime, and the trace logs would also 
> show 10 jobs with the third and eighth jobs missing deadlines.

You could write a simple log in userspace, recording for each invocation the starting and finish kernel-view job ID. This allows you to reconstruct how many budget enforcement events you were subject to.

Best regards,
Björn

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.litmus-rt.org/pipermail/litmus-dev/attachments/20150829/c6ecacad/attachment.html>


More information about the litmus-dev mailing list