diff options
| -rw-r--r-- | include/linux/init_task.h | 4 | ||||
| -rw-r--r-- | include/linux/sched.h | 17 | ||||
| -rw-r--r-- | kernel/sched.c | 20 |
3 files changed, 22 insertions, 19 deletions
diff --git a/include/linux/init_task.h b/include/linux/init_task.h index 98951775c267..4fcbad0862b8 100644 --- a/include/linux/init_task.h +++ b/include/linux/init_task.h @@ -45,8 +45,8 @@ thread_info: &init_thread_info, \ flags: 0, \ lock_depth: -1, \ - prio: 120, \ - static_prio: 120, \ + prio: MAX_PRIO-20, \ + static_prio: MAX_PRIO-20, \ policy: SCHED_OTHER, \ cpus_allowed: -1, \ mm: NULL, \ diff --git a/include/linux/sched.h b/include/linux/sched.h index 392d2174d84a..2ad9171a66b7 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -206,7 +206,24 @@ struct signal_struct { spinlock_t siglock; }; +/* + * Priority of a process goes from 0..MAX_PRIO-1, valid RT + * priority is 0..MAX_RT_PRIO-1, and SCHED_OTHER tasks are + * in the range MAX_RT_PRIO..MAX_PRIO-1. Priority values + * are inverted: lower p->prio value means higher priority. + * + * The MAX_RT_USER_PRIO value allows the actual maximum + * RT priority to be separate from the value exported to + * user-space. This allows kernel threads to set their + * priority to a value higher than any user task. Note: + * MAX_RT_PRIO must not be smaller than MAX_USER_RT_PRIO. + */ + +#define MAX_USER_RT_PRIO 100 +#define MAX_RT_PRIO MAX_USER_RT_PRIO +#define MAX_PRIO (MAX_RT_PRIO + 40) + /* * Some day this will be a full-fledged user tracking system.. */ diff --git a/kernel/sched.c b/kernel/sched.c index 2c8302b22524..698375f4e140 100644 --- a/kernel/sched.c +++ b/kernel/sched.c @@ -24,22 +24,8 @@ #include <linux/kernel_stat.h> /* - * Priority of a process goes from 0 to 139. The 0-99 - * priority range is allocated to RT tasks, the 100-139 - * range is for SCHED_OTHER tasks. Priority values are - * inverted: lower p->prio value means higher priority. - * - * MAX_USER_RT_PRIO allows the actual maximum RT priority - * to be separate from the value exported to user-space. - * NOTE: MAX_RT_PRIO must not be smaller than MAX_USER_RT_PRIO. - */ -#define MAX_RT_PRIO 100 -#define MAX_USER_RT_PRIO 100 -#define MAX_PRIO (MAX_RT_PRIO + 40) - -/* * Convert user-nice values [ -20 ... 0 ... 19 ] - * to static priority [ 100 ... 139 (MAX_PRIO-1) ], + * to static priority [ MAX_RT_PRIO..MAX_PRIO-1 ], * and back. */ #define NICE_TO_PRIO(nice) (MAX_RT_PRIO + (nice) + 20) @@ -1138,8 +1124,8 @@ static int setscheduler(pid_t pid, int policy, struct sched_param *param) } /* - * Valid priorities for SCHED_FIFO and SCHED_RR are 1..99, valid - * priority for SCHED_OTHER is 0. + * Valid priorities for SCHED_FIFO and SCHED_RR are + * 1..MAX_USER_RT_PRIO, valid priority for SCHED_OTHER is 0. */ retval = -EINVAL; if (lp.sched_priority < 0 || lp.sched_priority > MAX_USER_RT_PRIO-1) |
