diff options
author | Glenn Elliott <gelliott@cs.unc.edu> | 2010-11-26 14:56:39 -0500 |
---|---|---|
committer | Glenn Elliott <gelliott@cs.unc.edu> | 2010-11-26 14:56:39 -0500 |
commit | 1baad08397910f4dee59e071808d74ea4ff8cf11 (patch) | |
tree | c8f24b6fb96da54e108d58a7423a027a95acaf61 /include/litmus/rt_param.h | |
parent | 5c5456402d467969b217d7fdd6670f8c8600f5a8 (diff) |
Implementation of EDZL
This patch implements the global EDZL scheduler. It is based
heavily on the GSN-EDF implementation. Timers are used to detect
zero-laxity points and issue the proper rescheduling operations.
Diffstat (limited to 'include/litmus/rt_param.h')
-rw-r--r-- | include/litmus/rt_param.h | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/include/litmus/rt_param.h b/include/litmus/rt_param.h index a7a183f34a80..53741727d5d0 100644 --- a/include/litmus/rt_param.h +++ b/include/litmus/rt_param.h | |||
@@ -82,6 +82,14 @@ struct rt_job { | |||
82 | /* How much service has this job received so far? */ | 82 | /* How much service has this job received so far? */ |
83 | lt_t exec_time; | 83 | lt_t exec_time; |
84 | 84 | ||
85 | #ifdef CONFIG_PLUGIN_EDZL | ||
86 | /* boolean indicating zero-laxity state. We will | ||
87 | set this flag explicitly at zero-laxity detection. | ||
88 | This makes priority comparison operations more | ||
89 | predictable since laxity varies with time */ | ||
90 | int zero_laxity; | ||
91 | #endif | ||
92 | |||
85 | /* Which job is this. This is used to let user space | 93 | /* Which job is this. This is used to let user space |
86 | * specify which job to wait for, which is important if jobs | 94 | * specify which job to wait for, which is important if jobs |
87 | * overrun. If we just call sys_sleep_next_period() then we | 95 | * overrun. If we just call sys_sleep_next_period() then we |
@@ -114,6 +122,12 @@ struct rt_param { | |||
114 | /* timing parameters */ | 122 | /* timing parameters */ |
115 | struct rt_job job_params; | 123 | struct rt_job job_params; |
116 | 124 | ||
125 | #ifdef CONFIG_PLUGIN_EDZL | ||
126 | unsigned int zl_timer_armed:1; | ||
127 | /* used to trigger zero-laxity detection */ | ||
128 | struct hrtimer zl_timer; | ||
129 | #endif | ||
130 | |||
117 | /* task representing the current "inherited" task | 131 | /* task representing the current "inherited" task |
118 | * priority, assigned by inherit_priority and | 132 | * priority, assigned by inherit_priority and |
119 | * return priority in the scheduler plugins. | 133 | * return priority in the scheduler plugins. |