diff options
author | Jonathan Herman <hermanjl@cs.unc.edu> | 2012-10-10 22:13:30 -0400 |
---|---|---|
committer | Jonathan Herman <hermanjl@cs.unc.edu> | 2012-10-10 22:13:30 -0400 |
commit | fbbd0ae9f4589d35265a9b85e5b2e4614b432525 (patch) | |
tree | 403a66093be20cedb8351b7af065f2e5f883661f /include/litmus | |
parent | 0a84a160ea79d9479d17b02b5332413159f52be2 (diff) |
Allow for concurrent blocking / user-space job completions.
Diffstat (limited to 'include/litmus')
-rw-r--r-- | include/litmus/litmus.h | 5 | ||||
-rw-r--r-- | include/litmus/sched_mc.h | 8 |
2 files changed, 7 insertions, 6 deletions
diff --git a/include/litmus/litmus.h b/include/litmus/litmus.h index 93961d08efd5..a78f7f943442 100644 --- a/include/litmus/litmus.h +++ b/include/litmus/litmus.h | |||
@@ -51,8 +51,9 @@ void litmus_exit_task(struct task_struct *tsk); | |||
51 | #define get_user_deadline(t) (tsk_rt(t)->user_job.deadline) | 51 | #define get_user_deadline(t) (tsk_rt(t)->user_job.deadline) |
52 | 52 | ||
53 | /* Realtime utility macros */ | 53 | /* Realtime utility macros */ |
54 | #define get_rt_flags(t) (tsk_rt(t)->flags) | 54 | #define get_rt_flags(t) (tsk_rt(t)->flags) |
55 | #define set_rt_flags(t,f) (tsk_rt(t)->flags=(f)) | 55 | #define set_rt_flags(t,f) (tsk_rt(t)->flags|=(f)) |
56 | #define clear_rt_flags(t,f) (tsk_rt(t)->flags&=(~f)) | ||
56 | #define is_priority_boosted(t) (tsk_rt(t)->priority_boosted) | 57 | #define is_priority_boosted(t) (tsk_rt(t)->priority_boosted) |
57 | #define get_boost_start(t) (tsk_rt(t)->boost_start_time) | 58 | #define get_boost_start(t) (tsk_rt(t)->boost_start_time) |
58 | 59 | ||
diff --git a/include/litmus/sched_mc.h b/include/litmus/sched_mc.h index 5473ee30cb58..327f476aad74 100644 --- a/include/litmus/sched_mc.h +++ b/include/litmus/sched_mc.h | |||
@@ -28,14 +28,14 @@ struct mc_data { | |||
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) \ | 29 | #define tsk_mc_crit(t) \ |
30 | (tsk_mc_data(t) ? tsk_mc_data(t)->mc_task.crit : CRIT_LEVEL_C) | 30 | (tsk_mc_data(t) ? tsk_mc_data(t)->mc_task.crit : CRIT_LEVEL_C) |
31 | #define is_ghost(t) \ | 31 | #define is_cblocked(t) (get_rt_flags(t) & RT_F_BLOCKED) |
32 | ((get_rt_flags(t) & RT_F_BLOCKED) || \ | 32 | #define is_ghost(t) \ |
33 | (get_rt_job(t) < get_user_job(t) && (get_rt_flags(t) & RT_F_SLEEP))) | 33 | (get_rt_job(t) < get_user_job(t) && (get_rt_flags(t) & RT_F_SLEEP)) |
34 | #define ce_sid(ce) \ | 34 | #define ce_sid(ce) \ |
35 | (-((ce)->level * num_online_cpus() + crit_cpu(ce)->cpu + 1)) | 35 | (-((ce)->level * num_online_cpus() + crit_cpu(ce)->cpu + 1)) |
36 | 36 | ||
37 | #define TS "(%s/%d:%d:%d:%s)" | 37 | #define TS "(%s/%d:%d:%d:%s)" |
38 | #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" : is_cblocked(t) ? "blocked" : t->comm \ |
39 | : t->comm : "NULL", \ | 39 | : t->comm : "NULL", \ |
40 | (t) ? t->pid : 1, \ | 40 | (t) ? t->pid : 1, \ |
41 | (t) ? get_rt_job(t) : 1, \ | 41 | (t) ? get_rt_job(t) : 1, \ |