[LITMUS^RT] LITMUS-RT Deadline Detection

Björn Brandenburg bbb at mpi-sws.org
Tue May 26 09:25:30 CEST 2015


> On 22 May 2015, at 08:51, Geoffrey Tran <gtran at isi.edu> wrote:
> 
> 
> However, I'm not sure I understand how the budget enforcement works to begin with. I tried
> testing with budget enforcement set to PRECISE.  It looks like when the deadline is missed, 
> the job number is non-sequential?  Does budget enforcement preempt the job when the budget is
> exhausted?

The budget enforcement code is rather simple. All it does is set a timer that expires when the budget is used up. If the timer fires, the task is treated as if it had indicated job completion (i.e., as if it has called sleep_next_period()). As a result, the task is queued on the release queue and will not be eligible for further execution until its budget is replenished when the next “job” is released. 

Job IDs are still sequential. But if you observe an increment without having called sleep_next_period(), you know that you ran out of budget and are now consuming the budget of the next replenishment. 

If you are familiar with deferrable servers, precise budget enforcement in LITMUS^RT works as if each task is encapsulated in a deferrable server. Minor difference: if you manually indicate job completion with sleep_next_period(), all remaining budget of the current instance is discarded.

- Björn





More information about the litmus-dev mailing list