From 8e236ee20fddac1f3728fccfb7b8c017506321ea Mon Sep 17 00:00:00 2001
From: Jonathan Herman <hermanjl@cs.unc.edu>
Date: Fri, 14 Oct 2011 19:31:13 -0400
Subject: Tasks are now scheduled using servers

---
 include/litmus/rt_param.h |  2 --
 litmus/budget.c           |  2 +-
 litmus/rt_domain.c        | 15 ---------------
 litmus/sched_mc.c         |  1 +
 4 files changed, 2 insertions(+), 18 deletions(-)

diff --git a/include/litmus/rt_param.h b/include/litmus/rt_param.h
index f15b1ad5fa3c..55419d411614 100644
--- a/include/litmus/rt_param.h
+++ b/include/litmus/rt_param.h
@@ -212,8 +212,6 @@ struct rt_param {
 
 	/* Pointer to the page shared between userspace and kernel. */
 	struct control_page * ctrl_page;
-
-	/* int go; */
 };
 
 /*	Possible RT flags	*/
diff --git a/litmus/budget.c b/litmus/budget.c
index 7d94f7e61b27..b2239ff1c45c 100644
--- a/litmus/budget.c
+++ b/litmus/budget.c
@@ -112,7 +112,7 @@ static int __init init_budget_enforcement(void)
 
 void task_release(struct task_struct *t)
 {
-	t->rt_param.job_params.real_release = t->rt_param.job_params.deadline;
+	t->rt_param.job_params.real_release = t->rt_param.job_params.real_deadline;
 	t->rt_param.job_params.real_deadline += get_rt_period(t);
 	t->rt_param.job_params.job_no++;
 	TRACE_TASK(t, "Releasing task, rr=%llu rd=%llu\n",
diff --git a/litmus/rt_domain.c b/litmus/rt_domain.c
index 5264d2546a7f..e6ccf04cecf0 100644
--- a/litmus/rt_domain.c
+++ b/litmus/rt_domain.c
@@ -417,14 +417,12 @@ static void pd_requeue(domain_t *dom, struct task_struct *task)
 
 	if (is_released(task, litmus_clock())) {
 		__add_ready(domain, task);
-		/* tsk_rt(task)->go = 1; */
 		VTRACE("going, rt: adding %s/%d (%llu, %llu) rel=%llu to ready queue at %llu\n",
 		      task->comm, task->pid, get_exec_cost(task), get_rt_period(task),
 		      get_release(task), litmus_clock());
 	} else {
 		/* task has to wait for next release */
 		VTRACE_TASK(task, "not going, add release(), rel=%llu\n", get_release(task));
-		/* tsk_rt(task)->go = 0; */
 		add_release(domain, task);
 	}
 
@@ -437,10 +435,6 @@ static void pd_requeue(domain_t *dom, struct task_struct *task)
 static struct task_struct* pd_take_ready(domain_t *dom)
 {
 	struct task_struct *t = __take_ready((rt_domain_t*)dom->data);
-	if (t) {
-		/* TRACE_TASK(t, "going\n"); */
-		/* tsk_rt(t)->go = 1; */
-	}
 	return t;
 }
 
@@ -451,10 +445,6 @@ static struct task_struct* pd_take_ready(domain_t *dom)
 static struct task_struct* pd_peek_ready(domain_t *dom)
 {
 	struct task_struct *t = __peek_ready((rt_domain_t*)dom->data);
-	/* if (t) { */
-	/* 	TRACE_TASK(t, "going\n"); */
-	/* 	tsk_rt(t)->go = 1; */
-	/* } */
 	return t;
 }
 
@@ -462,11 +452,6 @@ static void pd_remove(domain_t *dom, struct task_struct *task)
 {
 	if (is_queued(task))
 		remove((rt_domain_t*)dom->data, task);
-	/* if (is_queued(task) && tsk_rt(task)->go) { */
-	/* 	remove((rt_domain_t*)dom->data, task); */
-	/* } else if (is_queued(task)) { */
-	/* 	VTRACE_TASK(task, "Did not remove cause of nogo\n"); */
-	/* } */
 }
 
 /* pd_domain_init - create a generic domain wrapper for an rt_domain
diff --git a/litmus/sched_mc.c b/litmus/sched_mc.c
index da8a82119612..a81d0bf0e7c6 100644
--- a/litmus/sched_mc.c
+++ b/litmus/sched_mc.c
@@ -607,6 +607,7 @@ static void job_completion(struct task_struct *task, int forced)
 
 	/* if (!is_ghost(task)) { */
 	/* and no more forced!!! */
+	if (!ghost && !forced)
 		sched_trace_task_completion(task, forced);
 	/* } */
 	BUG_ON(!task);
-- 
cgit v1.2.2