Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e22ecef1 authored by Ingo Molnar's avatar Ingo Molnar
Browse files

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: default avatarIngo Molnar <mingo@elte.hu>
Signed-off-by: default avatarPeter Zijlstra <a.p.zijlstra@chello.nl>
parent aa2ac252
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -528,8 +528,10 @@ 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))
			vruntime -= sysctl_sched_latency;
		if (sched_feat(NEW_FAIR_SLEEPERS)) {
			vruntime -= calc_delta_fair(sysctl_sched_latency,
						    &cfs_rq->load);
		}

		/* ensure we never gain time by being placed backwards. */
		vruntime = max_vruntime(se->vruntime, vruntime);