projects
/
openwrt
/
staging
/
blogic.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
296825c
)
sched: let +nice tasks have smaller impact
author
Peter Zijlstra
<
[email protected]
>
Thu, 31 Jan 2008 21:45:22 +0000
(22:45 +0100)
committer
Ingo Molnar
<
[email protected]
>
Thu, 31 Jan 2008 21:45:22 +0000
(22:45 +0100)
Michel Dänzr has bisected an interactivity problem with
plus-reniced tasks back to this commit:
810e95ccd58d91369191aa4ecc9e6d4a10d8d0c8
is first bad commit
commit
810e95ccd58d91369191aa4ecc9e6d4a10d8d0c8
Author: Peter Zijlstra <
[email protected]
>
Date: Mon Oct 15 17:00:14 2007 +0200
sched: another wakeup_granularity fix
unit mis-match: wakeup_gran was used against a vruntime
fix this by assymetrically scaling the vtime of positive reniced
tasks.
Bisected-by: Michel Dänzer <
[email protected]
>
Signed-off-by: Peter Zijlstra <
[email protected]
>
Signed-off-by: Ingo Molnar <
[email protected]
>
kernel/sched_fair.c
patch
|
blob
|
history
diff --git
a/kernel/sched_fair.c
b/kernel/sched_fair.c
index cf958aefac33c182baab30ee9e2916156bf3fa83..6c091d6e159d01fb23c0dd786495c533cb005c5b 100644
(file)
--- a/
kernel/sched_fair.c
+++ b/
kernel/sched_fair.c
@@
-1106,7
+1106,11
@@
static void check_preempt_wakeup(struct rq *rq, struct task_struct *p)
}
gran = sysctl_sched_wakeup_granularity;
- if (unlikely(se->load.weight != NICE_0_LOAD))
+ /*
+ * More easily preempt - nice tasks, while not making
+ * it harder for + nice tasks.
+ */
+ if (unlikely(se->load.weight > NICE_0_LOAD))
gran = calc_delta_fair(gran, &se->load);
if (pse->vruntime + gran < se->vruntime)