X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=kernel%2Fsched_fair.c;h=e24ecd39c4b8aec9786d0ab3df0a01ad6dcba08d;hb=86387f7ee5d3273ff4859e2c64ce656639b6ca65;hp=c863663d204d9db21838e427950ac13e6d731ebc;hpb=3de2403e6659d71b36ec820dc9b942762ddfe6eb;p=linux-2.6 diff --git a/kernel/sched_fair.c b/kernel/sched_fair.c index c863663d20..e24ecd39c4 100644 --- a/kernel/sched_fair.c +++ b/kernel/sched_fair.c @@ -662,10 +662,15 @@ place_entity(struct cfs_rq *cfs_rq, struct sched_entity *se, int initial) if (!initial) { /* sleeps upto a single latency don't count. */ if (sched_feat(NEW_FAIR_SLEEPERS)) { + unsigned long thresh = sysctl_sched_latency; + + /* + * convert the sleeper threshold into virtual time + */ if (sched_feat(NORMALIZED_SLEEPER)) - vruntime -= calc_delta_weight(sysctl_sched_latency, se); - else - vruntime -= sysctl_sched_latency; + thresh = calc_delta_fair(thresh, se); + + vruntime -= thresh; } /* ensure we never gain time by being placed backwards. */