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

Commit 8465e792 authored by Ingo Molnar's avatar Ingo Molnar
Browse files

sched: entity_key() fix



entity_key() fix - we'd occasionally end up with a 0 vruntime
in the !initial case.

Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
Signed-off-by: default avatarPeter Zijlstra <a.p.zijlstra@chello.nl>
parent ddc97297
Loading
Loading
Loading
Loading
+10 −7
Original line number Diff line number Diff line
@@ -479,7 +479,8 @@ place_entity(struct cfs_rq *cfs_rq, struct sched_entity *se, int initial)
	if (initial && sched_feat(START_DEBIT))
		vruntime += __sched_vslice(cfs_rq->nr_running + 1);

	if (!initial && sched_feat(NEW_FAIR_SLEEPERS)) {
	if (!initial) {
		if (sched_feat(NEW_FAIR_SLEEPERS)) {
			s64 latency = cfs_rq->min_vruntime - se->last_min_vruntime;
			if (latency < 0 || !cfs_rq->nr_running)
				latency = 0;
@@ -487,6 +488,8 @@ place_entity(struct cfs_rq *cfs_rq, struct sched_entity *se, int initial)
				latency = min_t(s64, latency, sysctl_sched_latency);
			vruntime -= latency;
		}
		vruntime = max(vruntime, se->vruntime);
	}

	se->vruntime = vruntime;