diff options
author | Jonathan Herman <hermanjl@cs.unc.edu> | 2012-10-06 23:20:19 -0400 |
---|---|---|
committer | Jonathan Herman <hermanjl@cs.unc.edu> | 2012-10-06 23:20:19 -0400 |
commit | b7d3fdb9450b667a57a34d67764a2523af921e40 (patch) | |
tree | 8046056a885d716b8d84f83b695e7e61c76016db /include/litmus/sched_mc.h | |
parent | 69f6492720dfbd25dd79534d2dcd2c41ffeb4496 (diff) |
Integrated group locking with mixed-criticality.
Diffstat (limited to 'include/litmus/sched_mc.h')
-rw-r--r-- | include/litmus/sched_mc.h | 15 |
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. |