This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
sched_deadline [2013/12/10 13:50] claudio_scordino |
sched_deadline [2014/01/21 08:18] claudio_scordino |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ===== SCHED_DEADLINE ===== | + | ===== Introduction ===== |
- | + | **SCHED_DEADLINE** is the name of a patch proposed to add a resource-reservation **real-time CPU scheduler** to the Linux kernel. | |
- | ==== Introduction ==== | + | |
- | + | ||
- | + | ||
- | **SCHED_DEADLINE** is the name of a patch proposed to add a resource-reservation real-time CPU scheduler to the Linux kernel. | + | |
The Linux kernel contains different scheduler classes. By default the kernel uses a scheduler mechanism called [[http://en.wikipedia.org/wiki/Completely_Fair_Scheduler|Completely Fair Scheduler]], introduced in the 2.6.23 version of the kernel. Internally this default-scheduler class is also known as SCHED_OTHER. The standard Linux kernel also contains two real-time scheduling classes named SCHED_FIFO (realtime first-in-first-out) and SCHED_RR (realtime round-robin) both of which take precedence over the default class. The SCHED_DEADLINE patch adds a new scheduling class to the modular Linux scheduler, and implements the well-known [[http://en.wikipedia.org/wiki/Earliest_deadline_first_scheduling|Earliest Deadline First (EDF) algorithm]]. | The Linux kernel contains different scheduler classes. By default the kernel uses a scheduler mechanism called [[http://en.wikipedia.org/wiki/Completely_Fair_Scheduler|Completely Fair Scheduler]], introduced in the 2.6.23 version of the kernel. Internally this default-scheduler class is also known as SCHED_OTHER. The standard Linux kernel also contains two real-time scheduling classes named SCHED_FIFO (realtime first-in-first-out) and SCHED_RR (realtime round-robin) both of which take precedence over the default class. The SCHED_DEADLINE patch adds a new scheduling class to the modular Linux scheduler, and implements the well-known [[http://en.wikipedia.org/wiki/Earliest_deadline_first_scheduling|Earliest Deadline First (EDF) algorithm]]. | ||
- | |||
- | The project was initially financed by the European commission through [[http://www.actors-project.eu|the ACTORS FP7 project]]. The first version of the patch was called SCHED_EDF and [presented to the Linux kernel community in 2009. With this name was also [[http://lwn.net/images/conf/rtlws11/papers/proc/p16.pdf|presented to the Real-Time Linux Workshop]] after a few weeks. The name has been then changed to SCHED_DEADLINE after [[https://lkml.org/lkml/2009/9/22/214|the request of the Linux kernel community]]. | ||
- | |||
- | The project is carried out jointly by the [[http://retis.sssup.it|Real-Time Systems Laboratory of Scuola Superiore Sant'Anna]] and the [[http://www.evidence.eu.com|company Evidence Srl]]. | ||
- | ==== Motivation ==== | + | ===== Motivation ===== |
Line 55: | Line 47: | ||
- | ==== Releases ==== | + | ===== History of the project ===== |
- | In the course of the years, the patch has been periodically released to the kernel community through the Linux Kernel Mailing List (LKML). Each release aligned the code to the latest version of the kernel and took into account comments received at the previous submission. | + | The project has been started by [[http://www.evidence.eu.com|Evidence Srl]] within [[http://www.actors-project.eu|the ACTORS FP7 project]], financially supported by the Europan commission. In particular, the project has been initially launched and supervised by Claudio Scordino and developed by Dario Faggioli (for the first three versions) and Juri Lelli (since the fourth version). |
+ | In the course of the years, the project has been carried out jointly by the [[http://retis.sssup.it|Real-Time Systems Laboratory of Scuola Superiore Sant'Anna]] and the [[http://www.evidence.eu.com|company Evidence Srl]]. The patch has been periodically released to the kernel community through the Linux Kernel Mailing List (LKML). Each release aligned the code to the latest version of the kernel and took into account comments received at the previous submission. | ||
+ | During the latest versions, a number of kernel developers have contributed to the patch, providing improvements and bug-fixing. | ||
- | Currently, the following releases have been made: | + | The first version of the patch was called SCHED_EDF and [[https://lkml.org/lkml/2009/9/22/186|presented to the Linux kernel community in 2009]]. With this name was also [[http://lwn.net/images/conf/rtlws11/papers/proc/p16.pdf|presented to the Real-Time Linux Workshop]] after a few weeks. The name has been then changed to SCHED_DEADLINE after [[https://lkml.org/lkml/2009/9/22/214|the request of the Linux kernel community]]. |
+ | |||
+ | The following releases have been made: | ||
* The initial version of the scheduler was [[https://lkml.org/lkml/2009/9/22/186|submitted on September 22, 2009]] with the name of SCHED_EDF. | * The initial version of the scheduler was [[https://lkml.org/lkml/2009/9/22/186|submitted on September 22, 2009]] with the name of SCHED_EDF. | ||
Line 73: | Line 69: | ||
* The ninth (current) version of the scheduler has been [[http://lwn.net/Articles/573233/|submitted to LKML on November 7, 2013]]. | * The ninth (current) version of the scheduler has been [[http://lwn.net/Articles/573233/|submitted to LKML on November 7, 2013]]. | ||
+ | The project has been [[http://lwn.net/Articles/570293/|already integrated in the Yocto distribution]]. Moreover, there has been some [[https://groups.google.com/a/linaro.org/forum/#!topic/linaro-networking/IDmDhH6JL8U|interest for inclusion in Linaro]] as well. | ||
- | ==== Academic conferences and events ==== | + | An [[http://lwn.net/Articles/575497/|article on the popular Linux Weekly News site]] argued that SCHED_DEADLINE may be merged into the mainline kernel in the very next releases. |
+ | |||
+ | The code has been merged into the mainline kernel ([[http://git.kernel.org/linus/a0fa1dd3cdbccec9597fe53b6177a9aa6e20f2f8|commit number a0fa1dd3cdbccec9597fe53b6177a9aa6e20f2f8]]) and therefore will be **available from kernel release 3.14**. | ||
+ | |||
+ | |||
+ | ===== Academic conferences and events ===== | ||
Line 87: | Line 89: | ||
The project has been also presented at the [[http://lwn.net/Articles/412745/|Kernel Summit in 2010]], at the [[http://www.linuxplumbersconf.org/2012/|Linux Plumbers Conference 2012]], and at the [[http://events.linuxfoundation.org/events/archive/2013/embedded-linux-conference/program/|Embedded Linux Conference 2013]]. | The project has been also presented at the [[http://lwn.net/Articles/412745/|Kernel Summit in 2010]], at the [[http://www.linuxplumbersconf.org/2012/|Linux Plumbers Conference 2012]], and at the [[http://events.linuxfoundation.org/events/archive/2013/embedded-linux-conference/program/|Embedded Linux Conference 2013]]. | ||
- | Several articles have appeared on Linux Weekly News, Slashdot, OSNews and LinuxToday. | + | Recently, [[http://www.youtube.com/watch?v=_APmI6qe9kU|a video has been uploaded on youtube]]. |
+ | |||
+ | |||
+ | ===== Web pages ===== | ||
+ | |||
+ | |||
+ | Several websites (e.g., OSNews, Slashdot, Linux Today, Phoronix, etc.) have talked about the project in the course of the years. | ||
+ | |||
+ | Among the various websites, the best resources are: | ||
+ | |||
+ | * Linux Weekly News (LWN): | ||
+ | * [[http://lwn.net/Articles/356576/|http://lwn.net/Articles/356576/]] | ||
+ | * [[http://lwn.net/Articles/396634/|http://lwn.net/Articles/396634/]] | ||
+ | * [[http://lwn.net/Articles/378044/|http://lwn.net/Articles/378044/]] | ||
+ | * [[http://lwn.net/Articles/412745/|http://lwn.net/Articles/412745/]] | ||
+ | * [[http://lwn.net/Articles/491722/|http://lwn.net/Articles/491722/]] | ||
+ | * [[http://lwn.net/Articles/575497/|http://lwn.net/Articles/575497/]] | ||
+ | * [[http://www.linkedin.com/groups?gid=2319046|LinkedIn Group]] | ||
+ | * [[http://en.wikipedia.org/wiki/SCHED_DEADLINE|Page on Wikipedia]] | ||
- | Recently, [[http://www.youtube.com/watch?v=_APmI6qe9kU|a video has been uploaded on youtube]]. Moreover, there has been some interest for including SCHED_DEADLINE in both the [[https://lists.yoctoproject.org/pipermail/linux-yocto/2013-March/000488.html|Yocto]] and [[https://groups.google.com/a/linaro.org/forum/#!topic/linaro-networking/IDmDhH6JL8U|Linaro]] Linux distributions. | ||
+ | ===== Download and usage ===== | ||
- | ==== Web pages ==== | ||
+ | The project has an [[http://www.evidence.eu.com/sched_deadline.html|official page]]. | ||
+ | The code is publicly available on a [[https://github.com/jlelli/sched-deadline|GitHub website]]. | ||
- | ==== Download and usage ==== | + | To download a Linux kernel with SCHED_DEADLINE integrated, type |
+ | git clone git://github.org/jlelli/sched_deadline.git | ||
- | The project has an [[http://www.evidence.eu.com/sched_deadline.html|official page]]. The code is publicly available on a [[https://github.com/jlelli/sched-deadline|GitHub website]]. | + | The documentation is available inside the [[https://github.com/jlelli/sched-deadline/blob/sched-dl-V9-rebase/Documentation/scheduler/sched-deadline.txt|Documentation/scheduler/sched-deadline.txt file]]. |