sched: fix fair sleepers

Fair sleepers need to scale their latency target down by runqueue
weight. Otherwise busy systems will gain ever larger sleep bonus.

Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>

+4 -2
+4 -2
kernel/sched_fair.c
··· 528 528 529 529 if (!initial) { 530 530 /* sleeps upto a single latency don't count. */ 531 - if (sched_feat(NEW_FAIR_SLEEPERS)) 532 - vruntime -= sysctl_sched_latency; 531 + if (sched_feat(NEW_FAIR_SLEEPERS)) { 532 + vruntime -= calc_delta_fair(sysctl_sched_latency, 533 + &cfs_rq->load); 534 + } 533 535 534 536 /* ensure we never gain time by being placed backwards. */ 535 537 vruntime = max_vruntime(se->vruntime, vruntime);