Dear developers,

starting from release 3.14,  every Linux kernel has an additional CPU 
scheduling policy called *SCHED_DEADLINE* [1, 2].
This email is to encourage you in evaluating the benefits that such a 
policy could bring when scheduling the Android services. 

The policy allows to assign each task two timing information: a runtime Qi 
and a period Pi.
The Linux kernel will then schedule the task so that it receives the CPU 
exactly for a time equal to Qi every period Pi (the task will therefore get 
a CPU share exactly equal to Qi/Pi).
References [1] and [2] provide further information about the specific 
algorithm.

The interesting thing about this policy is the so called *temporal 
isolation*: the timing execution of a task is not be affected by the 
behaviour of the other tasks running on the system. 
This way, if a task misbehaves trying to use a resource for a time longer 
than expected, it is stopped and cannot affect the timing performance of 
the other tasks running in the system.

This property can be leveraged for two goals:

   - Providing timing guarantees to time-sensitive Android services: if 
   scheduled with SCHED_DEADLINE, the Android service will be guaranteed to 
   receive the specified share of CPU time, regardless of the behaviour of the 
   other tasks running on the system. 
   - Enforcing timing confinement of (untrusted) Android services: the 
   service will be forced to use no more than its assigned CPU share.
   This is useful to limit the amount of CPU used by high-priority services 
   which, in case of bug or intensive computation, may starve the rest of the 
   system. 
   
An interesting experimental comparison of SCHED_DEADLINE vs SCHED_FIFO and 
SCHED_OTHER is available at [3] (unfortunately, it's not free).

Best regards,

            Claudio 


[1] SCHED_DEADLINE on Wikipedia: 
https://en.wikipedia.org/wiki/SCHED_DEADLINE
[2] Documentation in the Linux kernel: 
http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/Documentation/scheduler/sched-deadline.txt
[3] Deadline scheduling in the Linux kernel, 
http://onlinelibrary.wiley.com/doi/10.1002/spe.2335/abstract

-- 
-- 
unsubscribe: [email protected]
website: http://groups.google.com/group/android-kernel
--- 
You received this message because you are subscribed to the Google Groups 
"Android Linux Kernel Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to