On Mon, May 20, 2013 at 5:48 PM, Juri Lelli juri.lelli@gmail.com wrote:
On 05/20/2013 12:27 PM, Ola Liljedahl wrote:
Predictable response times for specific threads. In the use cases I am aware of, these threads would probably belong to the same process and run core-affine on a specific core where as few as possible other (kernel and user) threads and interrupts etc would also run. A number of cores would follow this real-time model while other cores preferably would keep the original Linux scheduling and characteristics (to avoid introducing unexpected behaviour).
What benefits does SCHED_DEADLINE give in addition to stuff in PREEMPT_RT?
Predictable response times are what SCHED_DEADLINE is about.
With SCHED_DEADLINE you can provide temporal guarantees up to 100% CPU utilization that are not possibile with default real-time policies (e.g. SCHED_FIFO/RR). This comes from the fact that SCHED_DEADLINE achieves strong temporal isolation between tasks. You can reserve a fraction of CPU time to your activities and be assured that no one else can interfere with them. And this is critical also in a low loaded system, if you want to be really safe against unexpected interferences.
Basically, with SCHED_DEADLINE you can make a feasibility study (no deadline will be missed) of the system under development beforehand, and be sure, at run-time, that the timing requirements will be met under any circumstance. You can't do the same using only stuff already in PREEMPT_RT.
Best,
- Juri
Over and above what Juri explained, you probably want to keep an eye on the Adaptive Tickless work[1]. It allows cpu isolation so that only the designated task will run on the 'tickless' cores - no scheduling, no interrupts or timers. PMWG has been tracking for its cpu isolation properties and Kevin Hilman landed 32-bit ARM support for the underlying context tracking in 3.10 [2].
Regards, Amit
[1] https://wiki.linaro.org/WorkingGroups/PowerManagement/Doc/AdaptiveTickless [2] 64-bit support still WIP