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 | |
| 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')
| -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; |
