aboutsummaryrefslogtreecommitdiffstats
path: root/litmus/rt_domain.c
diff options
context:
space:
mode:
authorJonathan Herman <hermanjl@cs.unc.edu>2011-10-15 01:08:36 -0400
committerJonathan Herman <hermanjl@cs.unc.edu>2011-10-15 01:08:36 -0400
commit380b773b00ceb6d675929c72a2cad06ac91197d4 (patch)
treed2aec3e73bffc945dd7c8cb54dc6118e54748b04 /litmus/rt_domain.c
parenta4c7d351552ddfc82b2e715fb70d541e34dc1765 (diff)
Cleanup. Not tested
Diffstat (limited to 'litmus/rt_domain.c')
-rw-r--r--litmus/rt_domain.c20
1 files changed, 6 insertions, 14 deletions
diff --git a/litmus/rt_domain.c b/litmus/rt_domain.c
index e6ccf04cecf..5296665b5dd 100644
--- a/litmus/rt_domain.c
+++ b/litmus/rt_domain.c
@@ -254,7 +254,6 @@ static void setup_release(rt_domain_t *_rt)
254 list_for_each_safe(pos, safe, &list) { 254 list_for_each_safe(pos, safe, &list) {
255 /* pick task of work list */ 255 /* pick task of work list */
256 t = list_entry(pos, struct task_struct, rt_param.list); 256 t = list_entry(pos, struct task_struct, rt_param.list);
257 /* sched_trace_task_release(t); */
258 list_del_init(pos); 257 list_del_init(pos);
259 258
260 /* put into release heap while holding release_lock */ 259 /* put into release heap while holding release_lock */
@@ -405,24 +404,19 @@ static void pd_requeue(domain_t *dom, struct task_struct *task)
405{ 404{
406 rt_domain_t *domain = (rt_domain_t*)dom->data; 405 rt_domain_t *domain = (rt_domain_t*)dom->data;
407 406
408 BUG_ON(!task || !is_realtime(task));
409 TRACE_TASK(task, "Requeueing\n"); 407 TRACE_TASK(task, "Requeueing\n");
408 BUG_ON(!task || !is_realtime(task));
410 BUG_ON(is_queued(task)); 409 BUG_ON(is_queued(task));
411 BUG_ON(get_task_domain(task) != dom); 410 BUG_ON(get_task_domain(task) != dom);
412 411
413 if (is_queued(task)) {
414 VTRACE_TASK(task, "Queued, skipping\n");
415 return;
416 }
417
418 if (is_released(task, litmus_clock())) { 412 if (is_released(task, litmus_clock())) {
419 __add_ready(domain, task); 413 __add_ready(domain, task);
420 VTRACE("going, rt: adding %s/%d (%llu, %llu) rel=%llu to ready queue at %llu\n", 414 VTRACE("rt: adding %s/%d (%llu, %llu) rel=%llu to ready queue at %llu\n",
421 task->comm, task->pid, get_exec_cost(task), get_rt_period(task), 415 task->comm, task->pid, get_exec_cost(task), get_rt_period(task),
422 get_release(task), litmus_clock()); 416 get_release(task), litmus_clock());
423 } else { 417 } else {
424 /* task has to wait for next release */ 418 /* task has to wait for next release */
425 VTRACE_TASK(task, "not going, add release(), rel=%llu\n", get_release(task)); 419 VTRACE_TASK(task, "add release(), rel=%llu\n", get_release(task));
426 add_release(domain, task); 420 add_release(domain, task);
427 } 421 }
428 422
@@ -434,9 +428,8 @@ static void pd_requeue(domain_t *dom, struct task_struct *task)
434 */ 428 */
435static struct task_struct* pd_take_ready(domain_t *dom) 429static struct task_struct* pd_take_ready(domain_t *dom)
436{ 430{
437 struct task_struct *t = __take_ready((rt_domain_t*)dom->data); 431 return __take_ready((rt_domain_t*)dom->data);
438 return t; 432 }
439}
440 433
441/* pd_peek_ready - returns the head of the rt_domain ready queue 434/* pd_peek_ready - returns the head of the rt_domain ready queue
442 * 435 *
@@ -444,8 +437,7 @@ static struct task_struct* pd_take_ready(domain_t *dom)
444 */ 437 */
445static struct task_struct* pd_peek_ready(domain_t *dom) 438static struct task_struct* pd_peek_ready(domain_t *dom)
446{ 439{
447 struct task_struct *t = __peek_ready((rt_domain_t*)dom->data); 440 return __next_ready((rt_domain_t*)dom->data);
448 return t;
449} 441}
450 442
451static void pd_remove(domain_t *dom, struct task_struct *task) 443static void pd_remove(domain_t *dom, struct task_struct *task)