Annotation of /trunk/kernel26-magellan/patches-2.6.16-r12/0009-2.6.16-schedrange-2.diff
Parent Directory | Revision Log
Revision 72 -
(hide 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 | niro | 72 | 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) |