diff options
author | Bjoern B. Brandenburg <bbb@cs.unc.edu> | 2008-05-23 02:45:34 -0400 |
---|---|---|
committer | Bjoern B. Brandenburg <bbb@cs.unc.edu> | 2008-05-23 02:45:34 -0400 |
commit | c4b2f8fda287a0e339b451c89dfcddbf28ea3d3d (patch) | |
tree | 097e165053475da333c1e5abc94f3b46ecfb1931 /include/litmus/rt_param.h | |
parent | af096ad5e6bb7ea899cdefb6edb40c6451955dfc (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.h | 14 |
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 | ||
67 | struct 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; |