sched: Fix hotplug hang

The hot-unplug kstopmachine usage does a wakeup after
deactivating the cpu, hence we cannot use cpu_active()
here but must rely on the good olde online.

Reported-by: Sachin Sant <[email protected]>
Reported-by: Jens Axboe <[email protected]>
Signed-off-by: Peter Zijlstra <[email protected]>
Tested-by: Jens Axboe <[email protected]>
Cc: Heiko Carstens <[email protected]>
Cc: Benjamin Herrenschmidt <[email protected]>
LKML-Reference: <1261326987.4314.24.camel@laptop>
Signed-off-by: Ingo Molnar <[email protected]>
This commit is contained in:
Peter Zijlstra 2009-12-20 17:36:27 +01:00 • committed by Ingo Molnar
commit 70f1120527

View file

@ -2346,7 +2346,7 @@ int select_task_rq(struct task_struct *p, int sd_flags, int wake_flags)
* not worry about this generic constraint ]
*/
if (unlikely(!cpumask_test_cpu(cpu, &p->cpus_allowed) ||
!cpu_active(cpu)))
!cpu_online(cpu)))
cpu = select_fallback_rq(task_cpu(p), p);
return cpu;