[LITMUS^RT] running a task as its execution time

Björn Brandenburg bbb at mpi-sws.org
Wed May 30 14:42:55 CEST 2012


On Apr 30, 2012, at 4:11 PM, Giovani Gracioli wrote:
> I am getting successive kernel panics at the same litmus/budget.c line 65 using GSN-EDF scheduler. The application code (test.c) and the task sets are attached. You can run ./test 125 125_tasks_litmus.txt for 125 tasks or 150 150_tasks_litmus.txt for 150 tasks.
> 
> The processor is an intel i7-2600 with 4 cores and 2 threads per core.

I am able to reproduce the problem. After some debugging, I think this is what happens:

1) A task with precise enforcement has zero budget
2) It gets unlinked before the timer is handled. The budget/job completion is not processed because of this check in GSN-EDF's schedule():

471:        if (!np && (out_of_time || sleep) && !blocks && !preempt)                                                                                                                                                                             
472:                job_completion(entry->scheduled, !sleep);

3) The task gets relinked elsewhere.
4) When it is scheduled, the BUG_ON() triggers.

However, just removing the !preempt check will cause trouble since timers. This is not straightforward.
I'll continue to investigate tomorrow. In the mean while, suggestions anyone? Glenn? Chris? Jonathan?

Thanks,
Björn





More information about the litmus-dev mailing list