aboutsummaryrefslogtreecommitdiffstats
path: root/include/litmus/rt_param.h
diff options
context:
space:
mode:
authorGlenn Elliott <gelliott@cs.unc.edu>2010-11-26 14:56:39 -0500
committerGlenn Elliott <gelliott@cs.unc.edu>2010-11-26 14:56:39 -0500
commit1baad08397910f4dee59e071808d74ea4ff8cf11 (patch)
treec8f24b6fb96da54e108d58a7423a027a95acaf61 /include/litmus/rt_param.h
parent5c5456402d467969b217d7fdd6670f8c8600f5a8 (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.h14
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.