diff options
| author | Bjoern B. Brandenburg <bbb@cs.unc.edu> | 2007-10-09 04:51:43 -0400 |
|---|---|---|
| committer | Bjoern B. Brandenburg <bbb@cs.unc.edu> | 2007-10-09 04:51:43 -0400 |
| commit | d2dd099221321f98a612027174d95e6bff2e0bc8 (patch) | |
| tree | b2e87e018d7cc98c14dfb013b32640fd8477b6af /include | |
| parent | bd97e173b396ee952f55e6ef01798095cc7e5c84 (diff) | |
litmus-core: add scheduler_signal() infrastructure
use it to send weight change notifications
Diffstat (limited to 'include')
| -rw-r--r-- | include/linux/litmus.h | 2 | ||||
| -rw-r--r-- | include/linux/rt_param.h | 22 |
2 files changed, 13 insertions, 11 deletions
diff --git a/include/linux/litmus.h b/include/linux/litmus.h index 23ddb94742..9a7047780d 100644 --- a/include/linux/litmus.h +++ b/include/linux/litmus.h | |||
| @@ -133,6 +133,8 @@ void request_exit_np(struct task_struct *t); | |||
| 133 | 133 | ||
| 134 | /* kill naughty tasks | 134 | /* kill naughty tasks |
| 135 | */ | 135 | */ |
| 136 | void scheduler_signal(struct task_struct *t, unsigned int signal); | ||
| 137 | void send_scheduler_signals(void); | ||
| 136 | void np_mem_kill(struct task_struct *t); | 138 | void np_mem_kill(struct task_struct *t); |
| 137 | 139 | ||
| 138 | /* clean up real-time state of a task */ | 140 | /* clean up real-time state of a task */ |
diff --git a/include/linux/rt_param.h b/include/linux/rt_param.h index db9b527ef8..a3b3da770b 100644 --- a/include/linux/rt_param.h +++ b/include/linux/rt_param.h | |||
| @@ -80,9 +80,12 @@ typedef struct { | |||
| 80 | * be explicitly set up before the task set is launched. | 80 | * be explicitly set up before the task set is launched. |
| 81 | */ | 81 | */ |
| 82 | typedef struct task_rt_param { | 82 | typedef struct task_rt_param { |
| 83 | /* is the task sleeping? */ | ||
| 84 | unsigned int flags:8; | ||
| 85 | |||
| 83 | /* Real-time marker: 1 iff it is a LITMUS real-time task. | 86 | /* Real-time marker: 1 iff it is a LITMUS real-time task. |
| 84 | */ | 87 | */ |
| 85 | int is_realtime:1; | 88 | unsigned int is_realtime:1; |
| 86 | 89 | ||
| 87 | /* is this task under control of litmus? | 90 | /* is this task under control of litmus? |
| 88 | ` * | 91 | ` * |
| @@ -90,25 +93,22 @@ typedef struct task_rt_param { | |||
| 90 | * may try to wake up a task that is already queued in plugin | 93 | * may try to wake up a task that is already queued in plugin |
| 91 | * data structures. | 94 | * data structures. |
| 92 | */ | 95 | */ |
| 93 | int litmus_controlled:1; | 96 | unsigned int litmus_controlled:1; |
| 94 | 97 | ||
| 95 | /* Did this task register any SRP controlled resource accesses? | 98 | /* Did this task register any SRP controlled resource accesses? |
| 96 | * This, of course, should only ever be true under partitioning. | 99 | * This, of course, should only ever be true under partitioning. |
| 97 | * However, this limitation is not currently enforced. | 100 | * However, this limitation is not currently enforced. |
| 98 | */ | 101 | */ |
| 99 | int subject_to_srp:1; | 102 | unsigned int subject_to_srp:1; |
| 100 | 103 | ||
| 101 | /* This bit will be set if the task should be killed once all scheduler | 104 | /* scheduler signal list head */ |
| 102 | * locks have been dropped. We can't kill it directly since the signal | 105 | unsigned int in_sig_list:1; |
| 103 | * handling code acquires locks that are also acquired with interrupts | 106 | unsigned int signal:8; |
| 104 | * enabled, thus we first need to drop the scheduler locks. | 107 | struct list_head sig_list; |
| 105 | */ | ||
| 106 | int must_die:1; | ||
| 107 | 108 | ||
| 108 | /* user controlled parameters */ | 109 | /* user controlled parameters */ |
| 109 | rt_param_t basic_params; | 110 | rt_param_t basic_params; |
| 110 | /* is the task sleeping? */ | 111 | |
| 111 | unsigned int flags; | ||
| 112 | /* task representing the current "inherited" task | 112 | /* task representing the current "inherited" task |
| 113 | * priority, assigned by inherit_priority and | 113 | * priority, assigned by inherit_priority and |
| 114 | * return priority in the scheduler plugins. | 114 | * return priority in the scheduler plugins. |
