[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