Re: [PATCH] i386/x86_64: Don't IPI to offline cpus on shutdown

From: Andi Kleen
Date: Sun Nov 27 2005 - 08:58:03 EST


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@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/