diff options
author | Glenn Elliott <gelliott@cs.unc.edu> | 2013-03-17 17:23:36 -0400 |
---|---|---|
committer | Glenn Elliott <gelliott@cs.unc.edu> | 2013-03-17 17:23:36 -0400 |
commit | 469aaad39c956446b8a31d351ee36bedd87ac18a (patch) | |
tree | 3e2864a01df8a04ab7a406342627d3dc850760af /litmus/edf_common.c | |
parent | 9374a7c30b6906d01c548833fb8a7b65ba4b5ccc (diff) |
Per-task budget high-resolution timers (hrtimers).
As a step towards implementing more complex budget tracking
method (ex. BWI, VXR, etc.), we need per-task budget trackers
because we may be required to drain budget from a task, even
while it is suspended or blocked.
This patch does:
1) Replaces the per-CPU hrtimers with per-task hrtimers.
2) Plugin architecture for different budget policies.
This patch creates three budget draining policies:
SIMPLE, SAWARE (suspension-aware), and SOBLIV (suspension-oblivious).
However, only SIMPLE is supported by this patch.
SIMPLE (default):
Budget drains while the task is scheduled. Budget is preserved
across self-suspensions (but not job completions, of course).
Only SIMPLE is supported in this patch. (Maintaining current Litmus
functionality.)
SAWARE:
Draining according to suspension-aware analysis. Budget should drain
whenever a task is among the top-m tasks in its cluster, where
m is the number of processors in said cluster. This draining should
happen whether or not the task is actually scheduled.
SOBLIV:
Draining according to suspension-oblivious analysis. Budget should
drain whenever the task is scheduled or suspended (but not due to
preemption). Exception: Draining should halt when we can prove that
the task is not among the top-m tasks blocked on the same lock (i.e.,
on the PQ in the OMLP-family locking protocols).
Diffstat (limited to 'litmus/edf_common.c')
0 files changed, 0 insertions, 0 deletions