diff options
author | Glenn Elliott <gelliott@cs.unc.edu> | 2012-03-04 19:47:13 -0500 |
---|---|---|
committer | Glenn Elliott <gelliott@cs.unc.edu> | 2012-03-04 19:47:13 -0500 |
commit | c71c03bda1e86c9d5198c5d83f712e695c4f2a1e (patch) | |
tree | ecb166cb3e2b7e2adb3b5e292245fefd23381ac8 /include/litmus/rt_param.h | |
parent | ea53c912f8a86a8567697115b6a0d8152beee5c8 (diff) | |
parent | 6a00f206debf8a5c8899055726ad127dbeeed098 (diff) |
Merge branch 'mpi-master' into wip-k-fmlpwip-k-fmlp
Conflicts:
litmus/sched_cedf.c
Diffstat (limited to 'include/litmus/rt_param.h')
-rw-r--r-- | include/litmus/rt_param.h | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/include/litmus/rt_param.h b/include/litmus/rt_param.h index 5de422c742f6..d6d799174160 100644 --- a/include/litmus/rt_param.h +++ b/include/litmus/rt_param.h | |||
@@ -30,7 +30,7 @@ typedef enum { | |||
30 | typedef enum { | 30 | typedef enum { |
31 | NO_ENFORCEMENT, /* job may overrun unhindered */ | 31 | NO_ENFORCEMENT, /* job may overrun unhindered */ |
32 | QUANTUM_ENFORCEMENT, /* budgets are only checked on quantum boundaries */ | 32 | QUANTUM_ENFORCEMENT, /* budgets are only checked on quantum boundaries */ |
33 | PRECISE_ENFORCEMENT /* NOT IMPLEMENTED - enforced with hrtimers */ | 33 | PRECISE_ENFORCEMENT /* budgets are enforced with hrtimers */ |
34 | } budget_policy_t; | 34 | } budget_policy_t; |
35 | 35 | ||
36 | struct rt_task { | 36 | struct rt_task { |
@@ -42,6 +42,16 @@ struct rt_task { | |||
42 | budget_policy_t budget_policy; /* ignored by pfair */ | 42 | budget_policy_t budget_policy; /* ignored by pfair */ |
43 | }; | 43 | }; |
44 | 44 | ||
45 | union np_flag { | ||
46 | uint32_t raw; | ||
47 | struct { | ||
48 | /* Is the task currently in a non-preemptive section? */ | ||
49 | uint32_t flag:31; | ||
50 | /* Should the task call into the scheduler? */ | ||
51 | uint32_t preempt:1; | ||
52 | } np; | ||
53 | }; | ||
54 | |||
45 | /* The definition of the data that is shared between the kernel and real-time | 55 | /* The definition of the data that is shared between the kernel and real-time |
46 | * tasks via a shared page (see litmus/ctrldev.c). | 56 | * tasks via a shared page (see litmus/ctrldev.c). |
47 | * | 57 | * |
@@ -57,11 +67,7 @@ struct rt_task { | |||
57 | * determining preemption/migration overheads). | 67 | * determining preemption/migration overheads). |
58 | */ | 68 | */ |
59 | struct control_page { | 69 | struct control_page { |
60 | /* Is the task currently in a non-preemptive section? */ | 70 | volatile union np_flag sched; |
61 | int np_flag; | ||
62 | /* Should the task call into the kernel when it leaves | ||
63 | * its non-preemptive section? */ | ||
64 | int delayed_preemption; | ||
65 | 71 | ||
66 | /* to be extended */ | 72 | /* to be extended */ |
67 | }; | 73 | }; |