[PATCH] sched: CPU hotplug race vs. set_cpus_allowed()
authorKirill Korotaev <dev@sw.ru>
Tue, 27 Jun 2006 09:54:32 +0000 (02:54 -0700)
committerLinus Torvalds <torvalds@g5.osdl.org>
Wed, 28 Jun 2006 00:32:44 +0000 (17:32 -0700)
commitefc30814a88bdbe2bfe4ac94de2eb089ad80bee3
tree1134d7ccda13c09cf426af0524c13633292eac5b
parentcc94abfcbc9fed0048365ce1fb8dc81353408bf8
[PATCH] sched: CPU hotplug race vs. set_cpus_allowed()

There is a race between set_cpus_allowed() and move_task_off_dead_cpu().
__migrate_task() doesn't report any err code, so task can be left on its
runqueue if its cpus_allowed mask changed so that dest_cpu is not longer a
possible target.  Also, chaning cpus_allowed mask requires rq->lock being
held.

Signed-off-by: Kirill Korotaev <dev@openvz.org>
Acked-By: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
kernel/sched.c