[LITMUS^RT] prop/edf-early-release
Björn Brandenburg
bbb at mpi-sws.org
Tue Mar 12 15:01:22 CET 2013
On Mar 6, 2013, at 7:37 PM, Glenn Elliott <gelliott at cs.unc.edu> wrote:
> On Mar 6, 2013, at 11:45 AM, Jonathan Herman <hermanjl at cs.unc.edu> wrote:
>
>> Distinguishing between sporadic, periodic, and early release tasks has also been an issue in my plugins. I have usually been forced to assume periodic, but inevitably someone wants to see early release results in the graphs. Thumbs up.
>>
>> The task wake_up code in a few of the plugins assumes a sporadic model. This code would also have to be changed for full periodic support.
>
> I pushed another patch to the prop/edf-early-release branch to include Jonathan's requested changes for full periodic support. Note that periodic jobs MUST end with sys_complete_job()---comments are included to that effect. SPORADIC has also been made the default release behavior, maintaining Litmus's current functionality.
I'm happy to merge this now on a "good now is better than perfect later" basis, but I still think that the SPORADIC semantics (increment job number using arbitrary heuristics) is broken and that we need better sporadic support in the future. In particular, we should have a way to distinguish whether a wakeup is a true job release (i.e., wakeup from waiting on a socket or a file descriptor corresponding to a device) or whether it is a self-suspension that should not trigger a job release (i.e, page fault, locking-related suspensions, talking to the X11 server, etc.). Unfortunately, such information isn't easily available to the scheduler in Linux.
- Björn
More information about the litmus-dev
mailing list