diff options
author | Glenn Elliott <gelliott@cs.unc.edu> | 2010-08-03 12:33:01 -0400 |
---|---|---|
committer | Glenn Elliott <gelliott@cs.unc.edu> | 2010-08-03 12:43:47 -0400 |
commit | 93d94bce2b7a90d789cf0ab5e167f2c373484eb2 (patch) | |
tree | 915e49699880a5ccf879df9bc206f6307a12f437 /litmus/sched_plugin.c | |
parent | 2183cf547b67f7d59f23ed4322f1748867b3f7ea (diff) |
First implementation of G-OMLP.wip-omlp-gedf
This patch implements G-OMLP (OMLP for G-EDF). It reuses (calls)
much of the code from G-FMLP-Long. Note that the implementation
here will have to change if/when P-OMLP is implemented. This is
because P-OMLP uses seperate priority queues (PQ) for each CPU. The OMLP
code will have to be smarter to figure out when to use a global PQ
or CPU-bound PQ. Also, PQ may be better implemented as a binary
(or binomial) heap. It is a simple linked-list in this implementation.
Diffstat (limited to 'litmus/sched_plugin.c')
-rw-r--r-- | litmus/sched_plugin.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/litmus/sched_plugin.c b/litmus/sched_plugin.c index 0ebb677198d5..c240f5236e81 100644 --- a/litmus/sched_plugin.c +++ b/litmus/sched_plugin.c | |||
@@ -167,6 +167,11 @@ struct sched_plugin linux_sched_plugin = { | |||
167 | .fmlp_return_priority = litmus_dummy_return_priority, | 167 | .fmlp_return_priority = litmus_dummy_return_priority, |
168 | .fmlp_pi_block = litmus_dummy_pi_block, | 168 | .fmlp_pi_block = litmus_dummy_pi_block, |
169 | #endif | 169 | #endif |
170 | #ifdef CONFIG_OMLP | ||
171 | .omlp_inherit_priority = litmus_dummy_inherit_priority, | ||
172 | .omlp_return_priority = litmus_dummy_return_priority, | ||
173 | .omlp_pi_block = litmus_dummy_pi_block, | ||
174 | #endif | ||
170 | .admit_task = litmus_dummy_admit_task | 175 | .admit_task = litmus_dummy_admit_task |
171 | }; | 176 | }; |
172 | 177 | ||
@@ -219,6 +224,11 @@ int register_sched_plugin(struct sched_plugin* plugin) | |||
219 | CHECK_PI(fmlp, return_priority); | 224 | CHECK_PI(fmlp, return_priority); |
220 | CHECK_PI(fmlp, pi_block); | 225 | CHECK_PI(fmlp, pi_block); |
221 | #endif | 226 | #endif |
227 | #ifdef CONFIG_OMLP | ||
228 | CHECK_PI(omlp, inherit_priority); | ||
229 | CHECK_PI(omlp, return_priority); | ||
230 | CHECK_PI(omlp, pi_block); | ||
231 | #endif | ||
222 | CHECK(admit_task); | 232 | CHECK(admit_task); |
223 | 233 | ||
224 | if (!plugin->release_at) | 234 | if (!plugin->release_at) |