aboutsummaryrefslogtreecommitdiffstats
path: root/litmus/edf_common.c
diff options
context:
space:
mode:
Diffstat (limited to 'litmus/edf_common.c')
-rw-r--r--litmus/edf_common.c24
1 files changed, 20 insertions, 4 deletions
diff --git a/litmus/edf_common.c b/litmus/edf_common.c
index f4881452373d..916b1b4309b7 100644
--- a/litmus/edf_common.c
+++ b/litmus/edf_common.c
@@ -92,10 +92,20 @@ int edf_higher_prio(struct task_struct* first, struct task_struct* second)
92 92
93#ifdef CONFIG_REALTIME_AUX_TASKS 93#ifdef CONFIG_REALTIME_AUX_TASKS
94 { 94 {
95 /* statically prioritize all auxillary tasks that have no inheritance
96 * below all other regular real-time tasks.
97 */
98 95
96 /* run aux tasks at max priority */
97 if (first->rt_param.is_aux_task != second->rt_param.is_aux_task)
98 {
99 return (first->rt_param.is_aux_task > second->rt_param.is_aux_task);
100 }
101 else if(first->rt_param.is_aux_task && second->rt_param.is_aux_task)
102 {
103 first = first->group_leader;
104 second = second->group_leader;
105 }
106
107
108#if 0
99 int first_lo_aux, second_lo_aux; 109 int first_lo_aux, second_lo_aux;
100 int first_hi_aux, second_hi_aux; 110 int first_hi_aux, second_hi_aux;
101 first_lo_aux = first->rt_param.is_aux_task && !first->rt_param.inh_task; 111 first_lo_aux = first->rt_param.is_aux_task && !first->rt_param.inh_task;
@@ -123,6 +133,8 @@ int edf_higher_prio(struct task_struct* first, struct task_struct* second)
123 TRACE_CUR("hi aux tie break: %s/%d >> %s/%d --- %d\n", first->comm, first->pid, second->comm, second->pid, aux_hi_tie_break); 133 TRACE_CUR("hi aux tie break: %s/%d >> %s/%d --- %d\n", first->comm, first->pid, second->comm, second->pid, aux_hi_tie_break);
124 return aux_hi_tie_break; 134 return aux_hi_tie_break;
125 } 135 }
136#endif
137
126 } 138 }
127#endif 139#endif
128 140
@@ -240,6 +252,7 @@ int edf_higher_prio(struct task_struct* first, struct task_struct* second)
240 else if (first_task->rt_param.is_proxy_thread == second_task->rt_param.is_proxy_thread) { 252 else if (first_task->rt_param.is_proxy_thread == second_task->rt_param.is_proxy_thread) {
241#endif 253#endif
242 254
255#if 0
243#ifdef CONFIG_REALTIME_AUX_TASKS 256#ifdef CONFIG_REALTIME_AUX_TASKS
244 /* is this dead code? */ 257 /* is this dead code? */
245 if (tsk_rt(first)->is_aux_task < tsk_rt(second)->is_aux_task) { 258 if (tsk_rt(first)->is_aux_task < tsk_rt(second)->is_aux_task) {
@@ -247,6 +260,7 @@ int edf_higher_prio(struct task_struct* first, struct task_struct* second)
247 } 260 }
248 else if (tsk_rt(first)->is_aux_task == tsk_rt(second)->is_aux_task) { 261 else if (tsk_rt(first)->is_aux_task == tsk_rt(second)->is_aux_task) {
249#endif 262#endif
263#endif
250 264
251 /* Something could be wrong if you get this far. */ 265 /* Something could be wrong if you get this far. */
252 if (unlikely(first->rt_param.inh_task == 266 if (unlikely(first->rt_param.inh_task ==
@@ -283,10 +297,12 @@ int edf_higher_prio(struct task_struct* first, struct task_struct* second)
283 return 1; 297 return 1;
284 } 298 }
285 } 299 }
286 300#if 0
287#ifdef CONFIG_REALTIME_AUX_TASKS 301#ifdef CONFIG_REALTIME_AUX_TASKS
288 } 302 }
289#endif 303#endif
304#endif
305
290#ifdef CONFIG_LITMUS_SOFTIRQD 306#ifdef CONFIG_LITMUS_SOFTIRQD
291 } 307 }
292#endif 308#endif