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.