diff options
Diffstat (limited to 'litmus/sched_mc.c')
-rw-r--r-- | litmus/sched_mc.c | 19 |
1 files changed, 4 insertions, 15 deletions
diff --git a/litmus/sched_mc.c b/litmus/sched_mc.c index ddd5933da4f8..baded0d58cb9 100644 --- a/litmus/sched_mc.c +++ b/litmus/sched_mc.c | |||
@@ -61,8 +61,6 @@ DEFINE_PER_CPU(struct cpu_entry, cpus); | |||
61 | static int interrupt_cpu; | 61 | static int interrupt_cpu; |
62 | #endif | 62 | #endif |
63 | 63 | ||
64 | struct cpumask rt_mask; | ||
65 | |||
66 | #define domain_data(dom) (container_of(dom, struct domain_data, domain)) | 64 | #define domain_data(dom) (container_of(dom, struct domain_data, domain)) |
67 | #define is_global(dom) (domain_data(dom)->heap) | 65 | #define is_global(dom) (domain_data(dom)->heap) |
68 | #define is_global_task(t) (is_global(get_task_domain(t))) | 66 | #define is_global_task(t) (is_global(get_task_domain(t))) |
@@ -353,7 +351,7 @@ static void fix_global_levels(void) | |||
353 | struct task_struct *t; | 351 | struct task_struct *t; |
354 | 352 | ||
355 | STRACE("Fixing global levels\n"); | 353 | STRACE("Fixing global levels\n"); |
356 | for_each_rt_cpu(c) { | 354 | for_each_online_cpu(c) { |
357 | e = &per_cpu(cpus, c); | 355 | e = &per_cpu(cpus, c); |
358 | raw_spin_lock(&e->redir_lock); | 356 | raw_spin_lock(&e->redir_lock); |
359 | list_for_each_safe(pos, safe, &e->redir) { | 357 | list_for_each_safe(pos, safe, &e->redir) { |
@@ -380,7 +378,6 @@ static void link_task_to_cpu(struct cpu_entry *entry, struct task_struct *task) | |||
380 | TRACE_MC_TASK(task, "Linking to P%d\n", entry->cpu); | 378 | TRACE_MC_TASK(task, "Linking to P%d\n", entry->cpu); |
381 | BUG_ON(task && tsk_rt(task)->linked_on != entry->cpu); | 379 | BUG_ON(task && tsk_rt(task)->linked_on != entry->cpu); |
382 | BUG_ON(task && is_ghost(task)); | 380 | BUG_ON(task && is_ghost(task)); |
383 | BUG_ON(CONFIG_FTRACE_CPU == entry->cpu); | ||
384 | 381 | ||
385 | if (task){ | 382 | if (task){ |
386 | set_rt_flags(task, RT_F_RUNNING); | 383 | set_rt_flags(task, RT_F_RUNNING); |
@@ -896,10 +893,6 @@ static struct task_struct* mc_schedule(struct task_struct* prev) | |||
896 | int i, out_of_time, sleep, preempt, exists, blocks, global, lower; | 893 | int i, out_of_time, sleep, preempt, exists, blocks, global, lower; |
897 | struct task_struct *dtask = NULL, *ready_task = NULL, *next = NULL; | 894 | struct task_struct *dtask = NULL, *ready_task = NULL, *next = NULL; |
898 | 895 | ||
899 | /* Give FTRACE a CPU to run on */ | ||
900 | if (CONFIG_FTRACE_CPU == entry->cpu) | ||
901 | return NULL; | ||
902 | |||
903 | local_irq_save(flags); | 896 | local_irq_save(flags); |
904 | 897 | ||
905 | /* Litmus gave up because it couldn't access the stack of the CPU | 898 | /* Litmus gave up because it couldn't access the stack of the CPU |
@@ -1083,7 +1076,7 @@ static long mc_activate_plugin(void) | |||
1083 | #endif | 1076 | #endif |
1084 | #endif | 1077 | #endif |
1085 | 1078 | ||
1086 | for_each_rt_cpu(cpu) { | 1079 | for_each_online_cpu(cpu) { |
1087 | BUG_ON(NR_CPUS <= n); | 1080 | BUG_ON(NR_CPUS <= n); |
1088 | dom = per_cpu(cpus, cpu).crit_entries[CRIT_LEVEL_A].domain; | 1081 | dom = per_cpu(cpus, cpu).crit_entries[CRIT_LEVEL_A].domain; |
1089 | dom_data = domain_data(dom); | 1082 | dom_data = domain_data(dom); |
@@ -1158,7 +1151,7 @@ static void init_global_domain(struct domain_data *dom_data, enum crit_level lev | |||
1158 | dom_data->heap = heap; | 1151 | dom_data->heap = heap; |
1159 | bheap_init(heap); | 1152 | bheap_init(heap); |
1160 | 1153 | ||
1161 | for_each_rt_cpu(cpu) { | 1154 | for_each_online_cpu(cpu) { |
1162 | entry = &per_cpu(cpus, cpu); | 1155 | entry = &per_cpu(cpus, cpu); |
1163 | node = &nodes[cpu]; | 1156 | node = &nodes[cpu]; |
1164 | ce = &entry->crit_entries[level]; | 1157 | ce = &entry->crit_entries[level]; |
@@ -1207,11 +1200,7 @@ static int __init init_mc(void) | |||
1207 | raw_spinlock_t *a_dom_lock, *b_dom_lock, *c_dom_lock; /* For lock debugger */ | 1200 | raw_spinlock_t *a_dom_lock, *b_dom_lock, *c_dom_lock; /* For lock debugger */ |
1208 | struct ce_dom_data *ce_data; | 1201 | struct ce_dom_data *ce_data; |
1209 | 1202 | ||
1210 | #if CONFIG_FTRACE_CPU != NO_CPU | 1203 | for_each_online_cpu(cpu) { |
1211 | cpumask_xor(&rt_mask, cpu_online_mask, cpumask_of(CONFIG_FTRACE_CPU)); | ||
1212 | #endif | ||
1213 | |||
1214 | for_each_rt_cpu(cpu) { | ||
1215 | entry = &per_cpu(cpus, cpu); | 1204 | entry = &per_cpu(cpus, cpu); |
1216 | 1205 | ||
1217 | /* CPU */ | 1206 | /* CPU */ |