[RFC 0/12][PATCH] SCHED_DEADLINE (new version of SCHED_EDF)

From: Raistlin
Date: Fri Oct 16 2009 - 11:37:03 EST


Hi Peter, Hi all,

Given all the comments and feedback we got, here it is the new version
of our EDF patch, this time in a split series. :-)

Special thanks to all the one that gave us any kind of suggestion,
especially during last RTLWS in Dresden.

The rationale/motivation for the new scheduler is the same of the first
e-mail (http://lwn.net/Articles/353797/), thus I only add some new and
(I think) interesting links:
- Ericsson posting about SCHED_EDF/DEADLINE
https://labs.ericsson.com/blog/making-linux-more-real-time

- The slides we presented at RTLWS in Dresden:
http://retis.sssup.it/people/faggioli/sched_deadline/rtlw_EDF.pdf

- Luca Abeni's presentation about using deadline based reservation
schedulers for IRQ-Threads:
http://www.disi.unitn.it/~abeni/rtlws-slides.pdf

Moreover, we moved the project on gitorious.org, therefore:
http://gitorious.org/sched_deadline

I am also setting up right now the Wiki section, where you can find some
more detailed usage instructions, examples and overhead estimation:
http://gitorious.org/sched_deadline/pages/Home

Git repositories are up and running, and ready at:
(mainline)
git://gitorious.org/sched_deadline/linux-deadline.git sched-deadline

(sched-devel)
git://gitorious.org/sched_deadline/linux-deadline.git sched-devel-deadline

(preempt-rt [*])
git://gitorious.org/sched_deadline/linux-deadline.git rt-deadline

The new project homepage is
http://www.evidence.eu.com/sched_deadline.html

Here the main changes we did, following what many of you --and mainly
Peter-- suggested:
- name changed from SCHED_EDF to SCHED_DEADLINE

- SCHED_DEADLINE has higher priority than SCHED_FIFO/SCHED_RR

- flags added in sched_param_ex to signal deadline misses
(in case of utilization > 100%) and/or budget overruns

- new sched_*_ex prototypes, with a len field to accomodate the size of
sched_param_ex, trying to avoid further ABI issues if it changes

- new syscall sched_wait_interval added. It behaves like clock_nanosleep
but, for a SCHED_DEADLINE task, it also represent the end of the
current instance (sched_yield no longer needed)

- on fork, child starts but with 0 bandwidth (i.e., it does not start! :-D)

- bug fixing :)

Any feedback and contribution is welcome.

Many thanks,

Dario Faggioli
Claudio Scordino
Michael Trimarchi

[*] porting toward preempt-rt is work in progress. Code is there, but we
are testing and fixing it, with the help of Luca and Nicola from
Trento... So don't consider it as the final version!

Attachment: signature.asc
Description: This is a digitally signed message part