Contents of /trunk/kernel26-magellan/patches-2.6.21-r13/0003-2.6.21-sched-range.patch
Parent Directory | Revision Log
Revision 319 -
(show annotations)
(download)
Sun Aug 19 18:14:21 2007 UTC (17 years, 1 month ago) by niro
File size: 1724 byte(s)
Sun Aug 19 18:14:21 2007 UTC (17 years, 1 month ago) by niro
File size: 1724 byte(s)
-2.6.21-magellan-r13
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 |