<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body dir="auto"><div><span></span></div><div><meta http-equiv="Content-Type" content="text/html charset=utf-8"><br class=""><div><blockquote type="cite" class=""><div class="">On 28 Aug 2015, at 21:40, Geoffrey Tran <<a href="mailto:gtran@isi.edu" class="">gtran@isi.edu</a>> wrote:</div><br class="Apple-interchange-newline"><div class="">Hi Björn,<br class=""><br class="">Thanks for your reply.  I've answered your questions below.<br class=""><br class="">1) LITMUS-RT 2014.2, with Xen patch<br class=""><br class="">2) GSN-EDF with no modifications to the plugin<br class=""><br class="">3) KVM<br class=""><br class="">4) Each call to the job() function results in the count being<br class="">decremented, so the task terminates when count == 0<br class=""><br class="">5) I guess I was confusing myself between what LITMUS sees as<br class="">a job vs the "job" calls in the task.<br class=""><br class="">Thanks for this explanation.  It is helpful.  However, I then<br class="">have a few more questions please.<br class=""><br class="">- Shouldn't a forced job completion be counted as a missed deadline?<br class="">If this is what's happening in the second case, it looks like <br class="">st_job_stats isn't reporting it, possibly due to how it determines<br class="">a missed job.<br class=""></div></blockquote><div><br class=""></div><div>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.</div><div><br class=""></div><div>If you want to evaluate budget enforcement events, you can look at the ‘forced’ field in st_completion_data:</div><div><br class=""></div><div><span class="Apple-tab-span" style="white-space:pre">   </span><a href="https://github.com/LITMUS-RT/litmus-rt/blob/master/include/litmus/sched_trace.h#L55" class="">https://github.com/LITMUS-RT/litmus-rt/blob/master/include/litmus/sched_trace.h#L55</a></div><div><br class=""></div><div>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.</div><div><br class=""></div><blockquote type="cite" class=""><div class="">- Would you be able to recommend a way to have the userspace jobs<br class="">line up with the kernel jobs? My goal is to have a way to generate<br class="">a number of jobs in the task, have that match up with the jobs in the<br class="">trace, and be able to detect the missed deadlines in the benchmark<br class="">at runtime.<br class=""><br class="">For instance, using this example, the task determines that it needs<br class="">to call job() 10 times and iterations 3 and 8 miss their deadlines, then<br class="">it would be able to know that at runtime, and the trace logs would also <br class="">show 10 jobs with the third and eighth jobs missing deadlines. <br class=""></div></blockquote></div><br class=""><div class="">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.</div><div class=""><br class=""></div><div class="">Best regards,</div><div class="">Björn</div><div class=""><br class=""></div></div></body></html>