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 <chris.redpath@arm.com>
This commit is contained in:
Chris Redpath
2013-05-16 17:48:01 +01:00
committed by Jon Medhurst
parent a9f9bca843
commit d2c920023c

View File

@@ -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) {