Magellan Linux

Contents of /trunk/kernel26-magellan/patches-2.6.21-r4/0003-2.6.21-sched-range.patch

Parent Directory Parent Directory | Revision Log Revision Log


Revision 222 - (show annotations) (download)
Tue Jun 12 08:03:28 2007 UTC (16 years, 10 months ago) by niro
File size: 1724 byte(s)
files for 2.6.21-magellan-r4

1 Add SCHED_RANGE and SCHED_RT wrappers for easy policy management.
2
3 Signed-off-by: Con Kolivas <kernel@kolivas.org>
4
5 include/linux/sched.h | 6 +++++-
6 kernel/sched.c | 3 +--
7 2 files changed, 6 insertions(+), 3 deletions(-)
8
9 Index: linux-2.6.21-ck2/include/linux/sched.h
10 ===================================================================
11 --- linux-2.6.21-ck2.orig/include/linux/sched.h 2007-05-14 19:30:30.000000000 +1000
12 +++ linux-2.6.21-ck2/include/linux/sched.h 2007-05-14 19:30:30.000000000 +1000
13 @@ -37,6 +37,9 @@
14
15 #ifdef __KERNEL__
16
17 +#define SCHED_MAX SCHED_BATCH
18 +#define SCHED_RANGE(policy) ((policy) <= SCHED_MAX)
19 +
20 struct sched_param {
21 int sched_priority;
22 };
23 @@ -528,7 +531,8 @@ struct signal_struct {
24 #define rt_prio(prio) unlikely((prio) < MAX_RT_PRIO)
25 #define rt_task(p) rt_prio((p)->prio)
26 #define batch_task(p) (unlikely((p)->policy == SCHED_BATCH))
27 -#define is_rt_policy(p) ((p) != SCHED_NORMAL && (p) != SCHED_BATCH)
28 +#define is_rt_policy(policy) ((policy) == SCHED_FIFO || \
29 + (policy) == SCHED_RR)
30 #define has_rt_policy(p) unlikely(is_rt_policy((p)->policy))
31
32 /*
33 Index: linux-2.6.21-ck2/kernel/sched.c
34 ===================================================================
35 --- linux-2.6.21-ck2.orig/kernel/sched.c 2007-05-14 19:30:30.000000000 +1000
36 +++ linux-2.6.21-ck2/kernel/sched.c 2007-05-14 19:30:30.000000000 +1000
37 @@ -4052,8 +4052,7 @@ recheck:
38 /* double check policy once rq lock held */
39 if (policy < 0)
40 policy = oldpolicy = p->policy;
41 - else if (policy != SCHED_FIFO && policy != SCHED_RR &&
42 - policy != SCHED_NORMAL && policy != SCHED_BATCH)
43 + else if (!SCHED_RANGE(policy))
44 return -EINVAL;
45 /*
46 * Valid priorities for SCHED_FIFO and SCHED_RR are