aboutsummaryrefslogtreecommitdiffstats
path: root/include/litmus/rt_param.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/litmus/rt_param.h')
-rw-r--r--include/litmus/rt_param.h16
1 files changed, 11 insertions, 5 deletions
diff --git a/include/litmus/rt_param.h b/include/litmus/rt_param.h
index 57496662afde..57a9cefcaf7e 100644
--- a/include/litmus/rt_param.h
+++ b/include/litmus/rt_param.h
@@ -45,6 +45,16 @@ struct rt_task {
45 budget_policy_t budget_policy; /* ignored by pfair */ 45 budget_policy_t budget_policy; /* ignored by pfair */
46}; 46};
47 47
48union np_flag {
49 uint32_t raw;
50 struct {
51 /* Is the task currently in a non-preemptive section? */
52 uint32_t flag:31;
53 /* Should the task call into the scheduler? */
54 uint32_t preempt:1;
55 } np;
56};
57
48/* The definition of the data that is shared between the kernel and real-time 58/* The definition of the data that is shared between the kernel and real-time
49 * tasks via a shared page (see litmus/ctrldev.c). 59 * tasks via a shared page (see litmus/ctrldev.c).
50 * 60 *
@@ -60,11 +70,7 @@ struct rt_task {
60 * determining preemption/migration overheads). 70 * determining preemption/migration overheads).
61 */ 71 */
62struct control_page { 72struct control_page {
63 /* Is the task currently in a non-preemptive section? */ 73 volatile union np_flag sched;
64 int np_flag;
65 /* Should the task call into the kernel when it leaves
66 * its non-preemptive section? */
67 int delayed_preemption;
68 74
69 /* locking overhead tracing: time stamp prior to system call */ 75 /* locking overhead tracing: time stamp prior to system call */
70 uint64_t ts_syscall_start; /* Feather-Trace cycles */ 76 uint64_t ts_syscall_start; /* Feather-Trace cycles */