aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorBjoern B. Brandenburg <bbb@cs.unc.edu>2007-10-09 04:51:43 -0400
committerBjoern B. Brandenburg <bbb@cs.unc.edu>2007-10-09 04:51:43 -0400
commitd2dd099221321f98a612027174d95e6bff2e0bc8 (patch)
treeb2e87e018d7cc98c14dfb013b32640fd8477b6af /include
parentbd97e173b396ee952f55e6ef01798095cc7e5c84 (diff)
litmus-core: add scheduler_signal() infrastructure
use it to send weight change notifications
Diffstat (limited to 'include')
-rw-r--r--include/linux/litmus.h2
-rw-r--r--include/linux/rt_param.h22
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 */
136void scheduler_signal(struct task_struct *t, unsigned int signal);
137void send_scheduler_signals(void);
136void np_mem_kill(struct task_struct *t); 138void 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 */
82typedef struct task_rt_param { 82typedef 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.