[LITMUS^RT] proposing liblitmus API additions and changes

Björn Brandenburg bbb at mpi-sws.org
Tue Mar 12 15:07:09 CET 2013


On Mar 5, 2013, at 3:06 AM, Glenn Elliott <gelliott at cs.unc.edu> wrote:

>>> 
>>> These changes look ok to me (though I liked the be_ in be_migrate_to() to indicate that only best-effort tasks may call it). I left a few low-level comments in Github.
>> 
>> Why is this restriction necessary?  Perhaps I was running into a bug earlier, but I ran into the situation where non-be tasks not on a CPU in the proper cluster could not transition to real-time.  I had to use be_migrate_to() to make things work.  I assumed that "be_" was a relic and that the proper affinity masks always had to be setup for all task categories.
> 
> The cleaned up migration APIs for liblitmus are done, excepting proper function names.  Following up on whether the 'be_' prefix to the migration API  should be carried forward...
> 
> Take a look at any of the plugin *_admit_task() functions (except for GSN-EDF), and you'll see that the task must already be executing on the CPU of its assigned partition/cluster in order to be admitted.  Does the 'be_' prefix denote that the callee must be a best-effort task (i.e., regular linux task)?  If so, then keeping the 'be_' makes sense.  Otherwise, I think it should go.  What was your original intent, Björn?

The function allows best-effort tasks to migrate to specific processors. The intent of the be_ prefix was to signal that it can only be called by best-effort tasks, that is, before calling task_mode(LITMUS_RT_TASK). LITMUS^RT ignores processor affinity masks for real-time tasks that have been admitted, so it's not meaningful to call this function while in real-time mode. 

	be_ prefix == call this prior to becoming a real-time task

- Björn





More information about the litmus-dev mailing list