aboutsummaryrefslogtreecommitdiffstats
path: root/litmus/sched_plugin.c
diff options
context:
space:
mode:
authorGlenn Elliott <gelliott@cs.unc.edu>2010-08-03 12:33:01 -0400
committerGlenn Elliott <gelliott@cs.unc.edu>2010-08-03 12:43:47 -0400
commit93d94bce2b7a90d789cf0ab5e167f2c373484eb2 (patch)
tree915e49699880a5ccf879df9bc206f6307a12f437 /litmus/sched_plugin.c
parent2183cf547b67f7d59f23ed4322f1748867b3f7ea (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.c10
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)