aboutsummaryrefslogtreecommitdiffstats
path: root/include/litmus/rt_param.h
diff options
context:
space:
mode:
authorBjoern B. Brandenburg <bbb@cs.unc.edu>2008-05-23 02:45:34 -0400
committerBjoern B. Brandenburg <bbb@cs.unc.edu>2008-05-23 02:45:34 -0400
commitc4b2f8fda287a0e339b451c89dfcddbf28ea3d3d (patch)
tree097e165053475da333c1e5abc94f3b46ecfb1931 /include/litmus/rt_param.h
parentaf096ad5e6bb7ea899cdefb6edb40c6451955dfc (diff)
LITMUS: Add the PFAIR plugin.RTSS08
This adds the PFAIR plugin. The implementation is based on an earlier version developed by John Calandrino. Features: - supports aligned and staggered quanta - supports early releasing - uses mergable heaps to limit overheads This version still has a couple of limitations: - no support for sporadic; all tasks are assumed to be periodic - tasks are limited to a maximum period of 1000 quanta - overload (especially in the tick) is not handled gracefully
Diffstat (limited to 'include/litmus/rt_param.h')
-rw-r--r--include/litmus/rt_param.h14
1 files changed, 8 insertions, 6 deletions
diff --git a/include/litmus/rt_param.h b/include/litmus/rt_param.h
index a7dd67a81a..7bb568432e 100644
--- a/include/litmus/rt_param.h
+++ b/include/litmus/rt_param.h
@@ -64,6 +64,8 @@ struct rt_job {
64}; 64};
65 65
66 66
67struct pfair_param;
68
67/* RT task parameters for scheduling extensions 69/* RT task parameters for scheduling extensions
68 * These parameters are inherited during clone and therefore must 70 * These parameters are inherited during clone and therefore must
69 * be explicitly set up before the task set is launched. 71 * be explicitly set up before the task set is launched.
@@ -108,15 +110,12 @@ struct rt_param {
108 * is currently scheduled. It is the responsibility of the 110 * is currently scheduled. It is the responsibility of the
109 * plugin to avoid race conditions. 111 * plugin to avoid race conditions.
110 * 112 *
111 * Used by GSN-EDF. 113 * This used by GSN-EDF and PFAIR.
112 */ 114 */
113 volatile int scheduled_on; 115 volatile int scheduled_on;
114 116
115 /* Is the stack of the task currently in use? Currently, this 117 /* Is the stack of the task currently in use? This is updated by
116 * is the responsibility of the plugin to update this field. 118 * the LITMUS core.
117 * Maybe become part of the LITMUS core some day.
118 *
119 * Used by GSN-EDF.
120 * 119 *
121 * Be careful to avoid deadlocks! 120 * Be careful to avoid deadlocks!
122 */ 121 */
@@ -130,6 +129,9 @@ struct rt_param {
130 */ 129 */
131 volatile int linked_on; 130 volatile int linked_on;
132 131
132 /* PFAIR/PD^2 state. Allocated on demand. */
133 struct pfair_param* pfair;
134
133 /* Fields saved before BE->RT transition. 135 /* Fields saved before BE->RT transition.
134 */ 136 */
135 int old_policy; 137 int old_policy;