aboutsummaryrefslogtreecommitdiffstats
path: root/litmus/jobs.c
diff options
context:
space:
mode:
authorJonathan Herman <hermanjl@cs.unc.edu>2012-09-29 13:04:40 -0400
committerJonathan Herman <hermanjl@cs.unc.edu>2012-09-29 13:04:40 -0400
commitdaf1e620bff2cb6d830ef66725369bba9c858f62 (patch)
tree1aed8f7cb55371c70d2139b6754d90ea89a26147 /litmus/jobs.c
parent451ed3b075c2a8e322e5a44f177e2470426a821d (diff)
parent1cb90226816c7af7808be4c0de866c54da17ecc9 (diff)
Merge branch 'wip-color' into wip-mc
Conflicts: include/litmus/budget.h include/litmus/litmus.h include/litmus/rt_param.h include/litmus/sched_trace.h include/litmus/trace.h include/trace/events/litmus.h litmus/Makefile litmus/budget.c litmus/ftdev.c litmus/jobs.c litmus/litmus.c litmus/locking.c litmus/preempt.c litmus/rt_domain.c litmus/sched_gsn_edf.c litmus/trace.c
Diffstat (limited to 'litmus/jobs.c')
-rw-r--r--litmus/jobs.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/litmus/jobs.c b/litmus/jobs.c
index 10a42db1165..7263cabf8c6 100644
--- a/litmus/jobs.c
+++ b/litmus/jobs.c
@@ -9,15 +9,21 @@
9void prepare_for_next_period(struct task_struct *t) 9void prepare_for_next_period(struct task_struct *t)
10{ 10{
11 BUG_ON(!t); 11 BUG_ON(!t);
12#ifdef CONFIG_PLUGIN_COLOR
13 tsk_rt(t)->tot_exec_time += tsk_rt(t)->job_params.exec_time;
14#endif
12 /* prepare next release */ 15 /* prepare next release */
13
14 t->rt_param.job_params.release = t->rt_param.job_params.deadline; 16 t->rt_param.job_params.release = t->rt_param.job_params.deadline;
15 t->rt_param.job_params.real_release = t->rt_param.job_params.release; 17 t->rt_param.job_params.real_release = t->rt_param.job_params.release;
16 t->rt_param.job_params.deadline += get_rt_period(t); 18 t->rt_param.job_params.deadline += get_rt_period(t);
17 t->rt_param.job_params.real_deadline = t->rt_param.job_params.deadline; 19 t->rt_param.job_params.real_deadline = t->rt_param.job_params.deadline;
18 t->rt_param.job_params.exec_time = 0; 20 t->rt_param.job_params.exec_time = 0;
21 tsk_rt(t)->job_params.release = tsk_rt(t)->job_params.deadline;
22 tsk_rt(t)->job_params.deadline += get_rt_period(t);
23 tsk_rt(t)->job_params.exec_time = 0;
24
19 /* update job sequence number */ 25 /* update job sequence number */
20 t->rt_param.job_params.job_no++; 26 tsk_rt(t)->job_params.job_no++;
21 27
22 /* don't confuse Linux */ 28 /* don't confuse Linux */
23 t->rt.time_slice = 1; 29 t->rt.time_slice = 1;
@@ -25,7 +31,7 @@ void prepare_for_next_period(struct task_struct *t)
25 31
26void release_at(struct task_struct *t, lt_t start) 32void release_at(struct task_struct *t, lt_t start)
27{ 33{
28 t->rt_param.job_params.deadline = start; 34 tsk_rt(t)->job_params.deadline = start;
29 prepare_for_next_period(t); 35 prepare_for_next_period(t);
30 set_rt_flags(t, RT_F_RUNNING); 36 set_rt_flags(t, RT_F_RUNNING);
31} 37}