diff options
-rw-r--r-- | include/litmus/sched_trace.h | 4 | ||||
-rw-r--r-- | litmus/sched_litmus.c | 1 | ||||
-rw-r--r-- | litmus/sched_mc.c | 5 | ||||
-rw-r--r-- | litmus/sched_task_trace.c | 2 |
4 files changed, 6 insertions, 6 deletions
diff --git a/include/litmus/sched_trace.h b/include/litmus/sched_trace.h index 6fb923bc5241..ae925fbda849 100644 --- a/include/litmus/sched_trace.h +++ b/include/litmus/sched_trace.h | |||
@@ -205,8 +205,8 @@ feather_callback void do_sched_trace_task_tardy(unsigned long id, | |||
205 | 205 | ||
206 | #define trace_litmus_container_param(cid, name) | 206 | #define trace_litmus_container_param(cid, name) |
207 | #define trace_litmus_server_param(sid, cid, wcet, time) | 207 | #define trace_litmus_server_param(sid, cid, wcet, time) |
208 | #define trace_litmus_server_switch_to(sid, job, tid) | 208 | #define trace_litmus_server_switch_to(sid, job, tid, tjob) |
209 | #define trace_litmus_server_switch_away(sid, job, tid) | 209 | #define trace_litmus_server_switch_away(sid, job, tid, tjob) |
210 | #define trace_litmus_server_release(sid, job, release, deadline) | 210 | #define trace_litmus_server_release(sid, job, release, deadline) |
211 | #define trace_litmus_server_completion(sid, job) | 211 | #define trace_litmus_server_completion(sid, job) |
212 | 212 | ||
diff --git a/litmus/sched_litmus.c b/litmus/sched_litmus.c index 6553948407de..0be9a573003d 100644 --- a/litmus/sched_litmus.c +++ b/litmus/sched_litmus.c | |||
@@ -12,6 +12,7 @@ static void update_time_litmus(struct rq *rq, struct task_struct *p) | |||
12 | delta = 0; | 12 | delta = 0; |
13 | /* per job counter */ | 13 | /* per job counter */ |
14 | p->rt_param.job_params.exec_time += delta; | 14 | p->rt_param.job_params.exec_time += delta; |
15 | p->rt_param.user_job.exec_time += delta; | ||
15 | /* task counter */ | 16 | /* task counter */ |
16 | p->se.sum_exec_runtime += delta; | 17 | p->se.sum_exec_runtime += delta; |
17 | /* sched_clock() */ | 18 | /* sched_clock() */ |
diff --git a/litmus/sched_mc.c b/litmus/sched_mc.c index 03a214f70233..065c767be846 100644 --- a/litmus/sched_mc.c +++ b/litmus/sched_mc.c | |||
@@ -673,7 +673,6 @@ static void job_completion(struct task_struct *task, int forced) | |||
673 | if (!forced) { | 673 | if (!forced) { |
674 | /* Userspace signaled job completion */ | 674 | /* Userspace signaled job completion */ |
675 | sched_trace_task_completion(current, 0); | 675 | sched_trace_task_completion(current, 0); |
676 | mb(); | ||
677 | setup_user_release(current, get_user_deadline(current)); | 676 | setup_user_release(current, get_user_deadline(current)); |
678 | 677 | ||
679 | } | 678 | } |
@@ -681,10 +680,10 @@ static void job_completion(struct task_struct *task, int forced) | |||
681 | release_server = budget_exhausted(task); | 680 | release_server = budget_exhausted(task); |
682 | #ifndef CONFIG_PLUGIN_MC_LINUX_SLACK_STEALING | 681 | #ifndef CONFIG_PLUGIN_MC_LINUX_SLACK_STEALING |
683 | /* Release lowest-criticality task's servers with their userspace tasks, | 682 | /* Release lowest-criticality task's servers with their userspace tasks, |
684 | * preventing them from getting behind userspace and forcing idleness | 683 | * preventing them from turning into ghost tasks and forcing idleness |
685 | */ | 684 | */ |
686 | if (tsk_mc_crit(task) == NUM_CRIT_LEVELS - 1) | 685 | if (tsk_mc_crit(task) == NUM_CRIT_LEVELS - 1) |
687 | release_server = 1; | 686 | release_server |= is_ghost(task); |
688 | #endif | 687 | #endif |
689 | 688 | ||
690 | /* If server has run out of budget, wait until next release | 689 | /* If server has run out of budget, wait until next release |
diff --git a/litmus/sched_task_trace.c b/litmus/sched_task_trace.c index d6487d3b7837..3f4a0a1081c3 100644 --- a/litmus/sched_task_trace.c +++ b/litmus/sched_task_trace.c | |||
@@ -198,7 +198,7 @@ feather_callback void do_sched_trace_task_completion(unsigned long id, | |||
198 | struct task_struct *t = (struct task_struct*) _task; | 198 | struct task_struct *t = (struct task_struct*) _task; |
199 | struct st_event_record* rec = get_record(ST_COMPLETION, t); | 199 | struct st_event_record* rec = get_record(ST_COMPLETION, t); |
200 | if (rec) { | 200 | if (rec) { |
201 | rec->data.completion.when = get_exec_time(t); | 201 | rec->data.completion.when = tsk_rt(t)->user_job.exec_time; |
202 | rec->data.completion.forced = forced; | 202 | rec->data.completion.forced = forced; |
203 | put_record(rec); | 203 | put_record(rec); |
204 | } | 204 | } |