aboutsummaryrefslogtreecommitdiffstats
path: root/litmus/jobs.c
diff options
context:
space:
mode:
authorJonathan Herman <hermanjl@cs.unc.edu>2012-05-09 17:11:56 -0400
committerJonathan Herman <hermanjl@cs.unc.edu>2012-05-09 17:11:56 -0400
commit1fde4dd4de048d7fbfe3e1418f4a76c62423ad95 (patch)
treef77ee7cb43fb069f47a2cdd2281031fbc752fe64 /litmus/jobs.c
parenta80dba56e2bc970b300b32ca3a8f4e911c18bbad (diff)
Track tasks average execution time, drop in TASK_EXIT record
Diffstat (limited to 'litmus/jobs.c')
-rw-r--r--litmus/jobs.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/litmus/jobs.c b/litmus/jobs.c
index 36e314625d86..4da53a8c4c43 100644
--- a/litmus/jobs.c
+++ b/litmus/jobs.c
@@ -9,12 +9,15 @@
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 t->rt_param.job_params.release = t->rt_param.job_params.deadline; 16 tsk_rt(t)->job_params.release = tsk_rt(t)->job_params.deadline;
14 t->rt_param.job_params.deadline += get_rt_period(t); 17 tsk_rt(t)->job_params.deadline += get_rt_period(t);
15 t->rt_param.job_params.exec_time = 0; 18 tsk_rt(t)->job_params.exec_time = 0;
16 /* update job sequence number */ 19 /* update job sequence number */
17 t->rt_param.job_params.job_no++; 20 tsk_rt(t)->job_params.job_no++;
18 21
19 /* don't confuse Linux */ 22 /* don't confuse Linux */
20 t->rt.time_slice = 1; 23 t->rt.time_slice = 1;
@@ -22,7 +25,7 @@ void prepare_for_next_period(struct task_struct *t)
22 25
23void release_at(struct task_struct *t, lt_t start) 26void release_at(struct task_struct *t, lt_t start)
24{ 27{
25 t->rt_param.job_params.deadline = start; 28 tsk_rt(t)->job_params.deadline = start;
26 prepare_for_next_period(t); 29 prepare_for_next_period(t);
27 set_rt_flags(t, RT_F_RUNNING); 30 set_rt_flags(t, RT_F_RUNNING);
28} 31}