Magellan Linux

Contents of /trunk/kernel26-magellan/patches-2.6.16-r12/0009-2.6.16-schedrange-2.diff

Parent Directory Parent Directory | Revision Log Revision Log


Revision 72 - (show annotations) (download)
Mon Jun 5 09:25:38 2006 UTC (17 years, 10 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)