Magellan Linux

Annotation 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 - (hide annotations) (download)
Mon Jun 5 09:25:38 2006 UTC (18 years 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)