![]() | |||||||||||||
Messages in this thread |
On Sun, Nov 27, 2005 at 02:05:45AM -0800, Zwane Mwaikambo wrote: > http://bugzilla.kernel.org/show_bug.cgi?id=5203 > > There is a small race during SMP shutdown between the processor issuing > the shutdown and the other processors clearing themselves off the > cpu_online_map as they do this without using the normal cpu offline > synchronisation. To avoid this we should wait for all the other processors > to clear their corresponding bits and then proceed. This way we can safely > make the cpu_online test in smp_send_reschedule, it's safe during normal > runtime as smp_send_reschedule is called with a lock held / preemption > disabled. Looking at the backtrace in the bug - how can sys_reboot call do_exit??? I would say the problem is in whatever causes that. It shouldn't do that. sys_reboot shouldn't schedule, it's that simple. Your patch is just papering over that real bug. Badness in send_IPI_mask_bitmask at arch/i386/kernel/smp.c:168 [<c0103cd7>] dump_stack+0x17/0x20 [<c0112286>] send_IPI_mask_bitmask+0x86/0x90 [<c0112689>] smp_send_reschedule+0x19/0x20 [<c0117e9b>] resched_task+0x6b/0x90 [<c01186cb>] try_to_wake_up+0x2db/0x310 [<c011872a>] wake_up_state+0xa/0x10 [<c012832b>] signal_wake_up+0x2b/0x40 [<c0128be0>] __group_complete_signal+0x210/0x250 [<c0128cb3>] __group_send_sig_info+0x93/0xd0 [<c0129561>] do_notify_parent+0xe1/0x1c0 [<c01206b6>] exit_notify+0x366/0x830 [<c0120e14>] do_exit+0x294/0x3a0 [<c012b5ef>] sys_reboot+0xcf/0x160 [<c0102ded>] syscall_call+0x7/0xb -Andi - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/ | ||||||||||||
| Last update: 2005-11-27 15:01 [from the cache] ©2003-2008 | |||||||||||||