aboutsummaryrefslogtreecommitdiffstats
path: root/include/litmus/sched_mc.h
diff options
context:
space:
mode:
authorJonathan Herman <hermanjl@cs.unc.edu>2012-10-06 23:20:19 -0400
committerJonathan Herman <hermanjl@cs.unc.edu>2012-10-06 23:20:19 -0400
commitb7d3fdb9450b667a57a34d67764a2523af921e40 (patch)
tree8046056a885d716b8d84f83b695e7e61c76016db /include/litmus/sched_mc.h
parent69f6492720dfbd25dd79534d2dcd2c41ffeb4496 (diff)
Integrated group locking with mixed-criticality.
Diffstat (limited to 'include/litmus/sched_mc.h')
-rw-r--r--include/litmus/sched_mc.h15
1 files changed, 10 insertions, 5 deletions
diff --git a/include/litmus/sched_mc.h b/include/litmus/sched_mc.h
index f0526e0d5589..d969b18e0b36 100644
--- a/include/litmus/sched_mc.h
+++ b/include/litmus/sched_mc.h
@@ -26,8 +26,13 @@ struct mc_data {
26}; 26};
27 27
28#define tsk_mc_data(t) (tsk_rt(t)->mc_data) 28#define tsk_mc_data(t) (tsk_rt(t)->mc_data)
29#define tsk_mc_crit(t) (tsk_mc_data(t) ? tsk_mc_data(t)->mc_task.crit : CRIT_LEVEL_C) 29#define tsk_mc_crit(t) \
30#define is_ghost(t) (get_rt_job(t) < get_user_job(t)) 30 (tsk_mc_data(t) ? tsk_mc_data(t)->mc_task.crit : CRIT_LEVEL_C)
31#define is_ghost(t) \
32 ((get_rt_flags(t) & RT_F_BLOCKED) || \
33 (get_rt_job(t) < get_user_job(t) && (get_rt_flags(t) & RT_F_SLEEP)))
34#define ce_sid(ce) \
35 (-((ce)->level * num_online_cpus() + crit_cpu(ce)->cpu + 1))
31 36
32#define TS "(%s/%d:%d:%d:%s)" 37#define TS "(%s/%d:%d:%d:%s)"
33#define TA(t) (t) ? tsk_mc_data(t) ? is_ghost(t) ? "ghost" : t->comm \ 38#define TA(t) (t) ? tsk_mc_data(t) ? is_ghost(t) ? "ghost" : t->comm \
@@ -36,11 +41,11 @@ struct mc_data {
36 (t) ? get_rt_job(t) : 1, \ 41 (t) ? get_rt_job(t) : 1, \
37 (t) ? get_user_job(t) : 1, \ 42 (t) ? get_user_job(t) : 1, \
38 (t && get_task_domain(t)) ? get_task_domain(t)->name : "" 43 (t && get_task_domain(t)) ? get_task_domain(t)->name : ""
39#define STRACE(fmt, args...) \
40 sched_trace_log_message("%d P%d [%s@%s:%d]: " fmt, \
41 TRACE_ARGS, ## args)
42#define TRACE_MC_TASK(t, fmt, args...) \ 44#define TRACE_MC_TASK(t, fmt, args...) \
43 STRACE(TS " " fmt, TA(t), ##args) 45 STRACE(TS " " fmt, TA(t), ##args)
46#define TRACE_CRIT_ENTRY(ce, fmt, args...) \
47 STRACE("%s P%d, linked=" TS " " fmt, \
48 (ce)->domain->name, crit_cpu(ce)->cpu, TA((ce)->linked), ##args)
44 49
45/* 50/*
46 * The MC-CE scheduler uses this as domain data. 51 * The MC-CE scheduler uses this as domain data.