aboutsummaryrefslogtreecommitdiffstats
path: root/litmus/edf_common.c
diff options
context:
space:
mode:
authorGlenn Elliott <gelliott@cs.unc.edu>2013-03-17 17:23:36 -0400
committerGlenn Elliott <gelliott@cs.unc.edu>2013-03-17 17:23:36 -0400
commit469aaad39c956446b8a31d351ee36bedd87ac18a (patch)
tree3e2864a01df8a04ab7a406342627d3dc850760af /litmus/edf_common.c
parent9374a7c30b6906d01c548833fb8a7b65ba4b5ccc (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