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

Commit d07387b4 authored by Paul Turner's avatar Paul Turner Committed by Ingo Molnar
Browse files

sched: Fix bug in SCHED_IDLE interaction with group scheduling



One of the isolation modifications for SCHED_IDLE is the
unitization of sleeper credit.  However the check for this
assumes that the sched_entity we're placing always belongs to a
task.

This is potentially not true with group scheduling and leaves
us rummaging randomly when we try to pull the policy.

Signed-off-by: default avatarPaul Turner <pjt@google.com>
Cc: peterz@infradead.org
LKML-Reference: <alpine.DEB.1.00.0907101649570.29914@kitami.corp.google.com>
Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
parent c20b08e3
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -687,7 +687,8 @@ place_entity(struct cfs_rq *cfs_rq, struct sched_entity *se, int initial)
			 * all of which have the same weight.
			 */
			if (sched_feat(NORMALIZED_SLEEPER) &&
					task_of(se)->policy != SCHED_IDLE)
					(!entity_is_task(se) ||
					 task_of(se)->policy != SCHED_IDLE))
				thresh = calc_delta_fair(thresh, se);

			vruntime -= thresh;