Contents of /trunk/kernel26-magellan/patches-2.6.16-r12/0009-2.6.16-schedrange-2.diff
Parent Directory | Revision Log
Revision 72 -
(show annotations)
(download)
Mon Jun 5 09:25:38 2006 UTC (18 years, 3 months ago) by niro
File size: 2650 byte(s)
Mon Jun 5 09:25:38 2006 UTC (18 years, 3 months ago) by niro
File size: 2650 byte(s)
ver bump to 2.6.16-r12: - updated to linux-2.6.16.19 - updated to ck11
1 | include/linux/sched.h | 8 ++++++++ |
2 | kernel/sched.c | 13 +++++-------- |
3 | 2 files changed, 13 insertions(+), 8 deletions(-) |
4 | |
5 | Index: linux-2.6.16-ck1/include/linux/sched.h |
6 | =================================================================== |
7 | --- linux-2.6.16-ck1.orig/include/linux/sched.h 2006-03-20 20:46:48.000000000 +1100 |
8 | +++ linux-2.6.16-ck1/include/linux/sched.h 2006-03-20 20:46:49.000000000 +1100 |
9 | @@ -163,6 +163,14 @@ extern unsigned long weighted_cpuload(co |
10 | #define SCHED_RR 2 |
11 | #define SCHED_BATCH 3 |
12 | |
13 | +#define SCHED_MIN 0 |
14 | +#define SCHED_MAX 3 |
15 | + |
16 | +#define SCHED_RANGE(policy) ((policy) >= SCHED_MIN && \ |
17 | + (policy) <= SCHED_MAX) |
18 | +#define SCHED_RT(policy) ((policy) == SCHED_FIFO || \ |
19 | + (policy) == SCHED_RR) |
20 | + |
21 | struct sched_param { |
22 | int sched_priority; |
23 | }; |
24 | Index: linux-2.6.16-ck1/kernel/sched.c |
25 | =================================================================== |
26 | --- linux-2.6.16-ck1.orig/kernel/sched.c 2006-03-20 20:46:48.000000000 +1100 |
27 | +++ linux-2.6.16-ck1/kernel/sched.c 2006-03-20 20:46:49.000000000 +1100 |
28 | @@ -3506,7 +3506,7 @@ static void __setscheduler(task_t *p, co |
29 | BUG_ON(task_queued(p)); |
30 | p->policy = policy; |
31 | p->rt_priority = prio; |
32 | - if (policy != SCHED_NORMAL && policy != SCHED_BATCH) { |
33 | + if (SCHED_RT(policy)) { |
34 | p->prio = MAX_RT_PRIO-1 - p->rt_priority; |
35 | } else |
36 | p->prio = p->static_prio; |
37 | @@ -3532,8 +3532,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 |
47 | @@ -3544,8 +3543,7 @@ recheck: |
48 | (p->mm && param->sched_priority > MAX_USER_RT_PRIO-1) || |
49 | (!p->mm && param->sched_priority > MAX_RT_PRIO-1)) |
50 | return -EINVAL; |
51 | - if ((policy == SCHED_NORMAL || policy == SCHED_BATCH) |
52 | - != (param->sched_priority == 0)) |
53 | + if ((!SCHED_RT(policy)) != (param->sched_priority == 0)) |
54 | return -EINVAL; |
55 | |
56 | /* |
57 | @@ -3556,12 +3554,11 @@ recheck: |
58 | * can't change policy, except between SCHED_NORMAL |
59 | * and SCHED_BATCH: |
60 | */ |
61 | - if (((policy != SCHED_NORMAL && p->policy != SCHED_BATCH) && |
62 | - (policy != SCHED_BATCH && p->policy != SCHED_NORMAL)) && |
63 | + if (SCHED_RT(policy) && policy != p->policy && |
64 | !p->signal->rlim[RLIMIT_RTPRIO].rlim_cur) |
65 | return -EPERM; |
66 | /* can't increase priority */ |
67 | - if ((policy != SCHED_NORMAL && policy != SCHED_BATCH) && |
68 | + if (SCHED_RT(policy) && |
69 | param->sched_priority > p->rt_priority && |
70 | param->sched_priority > |
71 | p->signal->rlim[RLIMIT_RTPRIO].rlim_cur) |