aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Walleij <linus.walleij@stericsson.com>2010-10-11 10:36:51 -0400
committerIngo Molnar <mingo@elte.hu>2010-10-18 12:41:59 -0400
commit17bdcf949d03306b308c5fb694849cd35f119807 (patch)
tree5a84fcb6e691fb17b4c723fd8429e3ff2ce767e2
parent34f971f6f7988be4d014eec3e3526bee6d007ffa (diff)
sched: Drop all load weight manipulation for RT tasks
Load weights are for the CFS, they do not belong in the RT task. This makes all RT scheduling classes leave the CFS weights alone. This fixes a real bug as well: I noticed the following phonomena: a process elevated to SCHED_RR forks with SCHED_RESET_ON_FORK set, and the child is indeed SCHED_OTHER, and the niceval is indeed reset to 0. However the weight inserted by set_load_weight() remains at 0, giving the task insignificat priority. With this fix, the weight is reset to what the task had before being elevated to SCHED_RR/SCHED_FIFO. Cc: Lennart Poettering <lennart@poettering.net> Cc: stable@kernel.org Signed-off-by: Linus Walleij <linus.walleij@stericsson.com> Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl> LKML-Reference: <1286807811-10568-1-git-send-email-linus.walleij@stericsson.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
-rw-r--r--kernel/sched.c6
1 files changed, 0 insertions, 6 deletions
diff --git a/kernel/sched.c b/kernel/sched.c
index 5f64fed56a44..728081a7ef1c 100644
--- a/kernel/sched.c
+++ b/kernel/sched.c
@@ -1855,12 +1855,6 @@ static void dec_nr_running(struct rq *rq)
1855 1855
1856static void set_load_weight(struct task_struct *p) 1856static void set_load_weight(struct task_struct *p)
1857{ 1857{
1858 if (task_has_rt_policy(p)) {
1859 p->se.load.weight = 0;
1860 p->se.load.inv_weight = WMULT_CONST;
1861 return;
1862 }
1863
1864 /* 1858 /*
1865 * SCHED_IDLE tasks get minimal weight: 1859 * SCHED_IDLE tasks get minimal weight:
1866 */ 1860 */