diff options
Diffstat (limited to 'include/litmus/rt_param.h')
-rw-r--r-- | include/litmus/rt_param.h | 16 |
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 | ||
48 | union 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 | */ |
62 | struct control_page { | 72 | struct 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 */ |