From: Chris Redpath Date: Thu, 16 May 2013 16:48:01 +0000 (+0100) Subject: sched: Do not ignore grouped tasks during HMP forced migration. X-Git-Tag: firefly_0821_release~3680^2~16^2^2~65 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=d2c920023cbc456414f8e07ff253a89be535b41b;p=firefly-linux-kernel-4.4.55.git sched: Do not ignore grouped tasks during HMP forced migration. If the entity is not a task, it is a cfs group rq. Iterate up to find the task entity. Change-Id: I7cab7aba0798f6f14e38ad32e566d90e5937ffbc Signed-off-by: Chris Redpath --- diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index 474dc61b3afe..3866dcc9972d 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -6109,10 +6109,19 @@ static void hmp_force_up_migration(int this_cpu) target = cpu_rq(cpu); raw_spin_lock_irqsave(&target->lock, flags); curr = target->cfs.curr; - if (!curr || !entity_is_task(curr)) { + if (!curr) { raw_spin_unlock_irqrestore(&target->lock, flags); continue; } + if (!entity_is_task(curr)) { + struct cfs_rq *cfs_rq; + + cfs_rq = group_cfs_rq(curr); + while (cfs_rq) { + curr = cfs_rq->curr; + cfs_rq = group_cfs_rq(curr); + } + } p = task_of(curr); if (hmp_up_migration(cpu, curr)) { if (!target->active_balance) {