aboutsummaryrefslogtreecommitdiffstats
path: root/litmus
diff options
context:
space:
mode:
authorJonathan Herman <hermanjl@cs.unc.edu>2012-09-29 13:05:45 -0400
committerJonathan Herman <hermanjl@cs.unc.edu>2012-09-29 13:05:45 -0400
commite9fc09f4bd2bae682cea6e7155aad1fe3f58e77b (patch)
tree469975dd524354db3b36d51704f77ce728fc0189 /litmus
parentdaf1e620bff2cb6d830ef66725369bba9c858f62 (diff)
Resolved merge bugs.
Diffstat (limited to 'litmus')
-rw-r--r--litmus/Makefile34
-rw-r--r--litmus/litmus.c2
-rw-r--r--litmus/locking.c10
-rw-r--r--litmus/rt_domain.c2
-rw-r--r--litmus/sched_litmus.c5
-rw-r--r--litmus/sched_mc.c20
6 files changed, 29 insertions, 44 deletions
diff --git a/litmus/Makefile b/litmus/Makefile
index b406cf2ad9e1..cea8a2572bd3 100644
--- a/litmus/Makefile
+++ b/litmus/Makefile
@@ -3,33 +3,29 @@
3# 3#
4 4
5obj-y = sched_plugin.o litmus.o \ 5obj-y = sched_plugin.o litmus.o \
6 preempt.o \ 6 bheap.o \
7 litmus_proc.o \
8 budget.o \ 7 budget.o \
9 clustered.o \ 8 clustered.o \
10 jobs.o \
11 sync.o \
12 rt_domain.o \
13 edf_common.o \
14 fdso.o \
15 locking.o \
16 srp.o \
17 bheap.o \
18 ctrldev.o \
19 domain.o \
20 sched_psn_edf.o \
21 sched_gsn_edf.o
22 color.o \ 9 color.o \
23 color_proc.o \
24 color_dev.o \ 10 color_dev.o \
25 rt_server.o \ 11 color_proc.o \
12 ctrldev.o \
26 dgl.o \ 13 dgl.o \
14 domain.o \
15 edf_common.o \
16 fdso.o \
27 fifo_common.o \ 17 fifo_common.o \
18 jobs.o \
19 litmus_proc.o \
20 locking.o \
21 preempt.o \
28 rm_common.o \ 22 rm_common.o \
23 rt_domain.o \
24 rt_server.o \
25 sched_gsn_edf.o \
29 sched_psn_edf.o \ 26 sched_psn_edf.o \
30 sched_gsn_edf.o 27 srp.o \
31 28 sync.o
32
33 29
34obj-$(CONFIG_PLUGIN_CEDF) += sched_cedf.o 30obj-$(CONFIG_PLUGIN_CEDF) += sched_cedf.o
35obj-$(CONFIG_PLUGIN_PFAIR) += sched_pfair.o 31obj-$(CONFIG_PLUGIN_PFAIR) += sched_pfair.o
diff --git a/litmus/litmus.c b/litmus/litmus.c
index b76e1496d7f4..7d20dd1be493 100644
--- a/litmus/litmus.c
+++ b/litmus/litmus.c
@@ -24,6 +24,8 @@
24#include <litmus/sched_mc.h> 24#include <litmus/sched_mc.h>
25#else 25#else
26struct mc_task; 26struct mc_task;
27#endif
28
27#ifdef CONFIG_SCHED_CPU_AFFINITY 29#ifdef CONFIG_SCHED_CPU_AFFINITY
28#include <litmus/affinity.h> 30#include <litmus/affinity.h>
29#endif 31#endif
diff --git a/litmus/locking.c b/litmus/locking.c
index e051a288aba0..4881ca119acf 100644
--- a/litmus/locking.c
+++ b/litmus/locking.c
@@ -75,10 +75,6 @@ asmlinkage long sys_litmus_lock(int lock_od)
75 struct od_table_entry* entry; 75 struct od_table_entry* entry;
76 struct litmus_lock* l; 76 struct litmus_lock* l;
77 77
78 TS_SYSCALL_IN_START;
79
80 TS_SYSCALL_IN_END;
81
82 TS_LOCK_START; 78 TS_LOCK_START;
83 79
84 entry = get_entry_for_od(lock_od); 80 entry = get_entry_for_od(lock_od);
@@ -101,10 +97,6 @@ asmlinkage long sys_litmus_unlock(int lock_od)
101 struct od_table_entry* entry; 97 struct od_table_entry* entry;
102 struct litmus_lock* l; 98 struct litmus_lock* l;
103 99
104 TS_SYSCALL_IN_START;
105
106 TS_SYSCALL_IN_END;
107
108 TS_UNLOCK_START; 100 TS_UNLOCK_START;
109 101
110 entry = get_entry_for_od(lock_od); 102 entry = get_entry_for_od(lock_od);
@@ -118,8 +110,6 @@ asmlinkage long sys_litmus_unlock(int lock_od)
118 * account when computing overheads. */ 110 * account when computing overheads. */
119 TS_UNLOCK_END; 111 TS_UNLOCK_END;
120 112
121 TS_SYSCALL_OUT_START;
122
123 return err; 113 return err;
124} 114}
125 115
diff --git a/litmus/rt_domain.c b/litmus/rt_domain.c
index 79243f92edbe..faf876623d62 100644
--- a/litmus/rt_domain.c
+++ b/litmus/rt_domain.c
@@ -57,8 +57,6 @@ static void do_release(struct release_heap *rh)
57 TS_LVLB_RELEASE_START; 57 TS_LVLB_RELEASE_START;
58 else 58 else
59 TS_LVLC_RELEASE_START; 59 TS_LVLC_RELEASE_START;
60 struct release_heap* rh;
61 rh = container_of(timer, struct release_heap, timer);
62 60
63 TS_RELEASE_LATENCY(rh->release_time); 61 TS_RELEASE_LATENCY(rh->release_time);
64 62
diff --git a/litmus/sched_litmus.c b/litmus/sched_litmus.c
index 39673ab6c7cd..3de3c8605aae 100644
--- a/litmus/sched_litmus.c
+++ b/litmus/sched_litmus.c
@@ -194,9 +194,6 @@ static void dequeue_task_litmus(struct rq *rq, struct task_struct *p,
194 194
195static void yield_task_litmus(struct rq *rq) 195static void yield_task_litmus(struct rq *rq)
196{ 196{
197 TS_SYSCALL_IN_START;
198
199 TS_SYSCALL_OUT_END;
200 BUG_ON(rq->curr != current); 197 BUG_ON(rq->curr != current);
201 /* sched_yield() is called to trigger delayed preemptions. 198 /* sched_yield() is called to trigger delayed preemptions.
202 * Thus, mark the current task as needing to be rescheduled. 199 * Thus, mark the current task as needing to be rescheduled.
@@ -205,8 +202,6 @@ static void yield_task_litmus(struct rq *rq)
205 */ 202 */
206 clear_exit_np(current); 203 clear_exit_np(current);
207 litmus_reschedule_local(); 204 litmus_reschedule_local();
208
209 TS_SYSCALL_OUT_START;
210} 205}
211 206
212/* Plugins are responsible for this. 207/* Plugins are responsible for this.
diff --git a/litmus/sched_mc.c b/litmus/sched_mc.c
index 41f02ee3e6ca..2f4eb82b2220 100644
--- a/litmus/sched_mc.c
+++ b/litmus/sched_mc.c
@@ -309,7 +309,8 @@ static void link_task_to_crit(struct crit_entry *ce,
309 update_ghost_time(ce->linked); 309 update_ghost_time(ce->linked);
310 } 310 }
311 } 311 }
312 sched_trace_server_switch_away(sid(ce), 0, ce->linked->pid); 312 sched_trace_server_switch_away(sid(ce), 0, ce->linked->pid,
313 tsk_rt(ce->linked)->job_params.job_no);
313 } 314 }
314 315
315 /* Actually link task */ 316 /* Actually link task */
@@ -326,9 +327,10 @@ static void link_task_to_crit(struct crit_entry *ce,
326 tsk_mc_data(task)->mc_job.ghost_budget; 327 tsk_mc_data(task)->mc_job.ghost_budget;
327 arm_ghost(ce, when_to_fire); 328 arm_ghost(ce, when_to_fire);
328 329
329 sched_trace_server_switch_to(sid(ce), 0, 0); 330 sched_trace_server_switch_to(sid(ce), 0, 0, 0);
330 } else { 331 } else {
331 sched_trace_server_switch_to(sid(ce), 0, task->pid); 332 sched_trace_server_switch_to(sid(ce), 0, task->pid,
333 get_rt_job(ce->linked));
332 } 334 }
333 } 335 }
334} 336}
@@ -435,14 +437,16 @@ static void link_task_to_cpu(struct cpu_entry *entry, struct task_struct *task)
435 if (entry->linked) { 437 if (entry->linked) {
436 sched_trace_server_switch_away(-entry->linked->pid, 438 sched_trace_server_switch_away(-entry->linked->pid,
437 get_server_job(entry->linked), 439 get_server_job(entry->linked),
438 entry->linked->pid); 440 entry->linked->pid,
441 get_rt_job(entry->linked));
439 } 442 }
440 443
441 if (task){ 444 if (task){
442 set_rt_flags(task, RT_F_RUNNING); 445 set_rt_flags(task, RT_F_RUNNING);
443 sched_trace_server_switch_to(-task->pid, 446 sched_trace_server_switch_to(-task->pid,
444 get_server_job(task), 447 get_server_job(task),
445 task->pid); 448 task->pid,
449 get_rt_job(task));
446 } 450 }
447 entry->linked = task; 451 entry->linked = task;
448 452
@@ -1184,7 +1188,7 @@ static void mc_release_ts(lt_t time)
1184 strcpy(name, "LVL-A"); 1188 strcpy(name, "LVL-A");
1185 for_each_online_cpu(cpu) { 1189 for_each_online_cpu(cpu) {
1186 entry = &per_cpu(cpus, cpu); 1190 entry = &per_cpu(cpus, cpu);
1187 trace_litmus_container_param(++cont_id, &name); 1191 trace_litmus_container_param(++cont_id, (const char*)&name);
1188 ce = &entry->crit_entries[level]; 1192 ce = &entry->crit_entries[level];
1189 sched_trace_server_param(sid(ce), cont_id, 0, 0); 1193 sched_trace_server_param(sid(ce), cont_id, 0, 0);
1190 } 1194 }
@@ -1193,14 +1197,14 @@ static void mc_release_ts(lt_t time)
1193 strcpy(name, "LVL-B"); 1197 strcpy(name, "LVL-B");
1194 for_each_online_cpu(cpu) { 1198 for_each_online_cpu(cpu) {
1195 entry = &per_cpu(cpus, cpu); 1199 entry = &per_cpu(cpus, cpu);
1196 trace_litmus_container_param(++cont_id, &name); 1200 trace_litmus_container_param(++cont_id, (const char*)&name);
1197 ce = &entry->crit_entries[level]; 1201 ce = &entry->crit_entries[level];
1198 sched_trace_server_param(sid(ce), cont_id, 0, 0); 1202 sched_trace_server_param(sid(ce), cont_id, 0, 0);
1199 } 1203 }
1200 1204
1201 level = CRIT_LEVEL_C; 1205 level = CRIT_LEVEL_C;
1202 strcpy(name, "LVL-C"); 1206 strcpy(name, "LVL-C");
1203 trace_litmus_container_param(++cont_id, &name); 1207 trace_litmus_container_param(++cont_id, (const char*)&name);
1204 for_each_online_cpu(cpu) { 1208 for_each_online_cpu(cpu) {
1205 entry = &per_cpu(cpus, cpu); 1209 entry = &per_cpu(cpus, cpu);
1206 ce = &entry->crit_entries[level]; 1210 ce = &entry->crit_entries[level];