diff options
author | Dmitry Adamushko <[email protected]> | 2008-07-10 00:32:40 +0200 |
---|---|---|
committer | Ingo Molnar <[email protected]> | 2008-07-10 09:35:34 +0200 |
commit | dc7fab8b3bb388c57c6c4a43ba68c8a32ca25204 (patch) | |
tree | 4f96ecc3625b3af71d00592f0e47841b8ab849a7 /net/unix/sysctl_net_unix.c | |
parent | 619b0488038224391e64fa03854651ca0f5efe56 (diff) |
sched: fix cpu hotplug
I think we may have a race between try_to_wake_up() and
migrate_live_tasks() -> move_task_off_dead_cpu() when the later one
may end up looping endlessly.
Interrupts are enabled on other CPUs when migration_call(CPU_DEAD, ...) is
called so we may get a race between try_to_wake_up() and
migrate_live_tasks() -> move_task_off_dead_cpu(). The former one may push
a task out of a dead CPU causing the later one to loop endlessly.
Heiko Carstens observed:
| That's exactly what explains a dump I got yesterday. Thanks for fixing! :)
Signed-off-by: Dmitry Adamushko <[email protected]>
Cc: [email protected]
Cc: Lai Jiangshan <[email protected]>
Cc: Heiko Carstens <[email protected]>
Cc: Peter Zijlstra <[email protected]>
Cc: Avi Kivity <[email protected]>
Cc: Andrew Morton <[email protected]>
Signed-off-by: Ingo Molnar <[email protected]>
Diffstat (limited to 'net/unix/sysctl_net_unix.c')
0 files changed, 0 insertions, 0 deletions