Hello Seiji, On Mon, 2011-10-24 at 18:24 -0400, Seiji Aguchi wrote: > Hi, > > >> >>> 1st CPU: > >> >>> panic()->crash_kexec()->mutex_trylock(&kexec_mutex)-> do kdump > >> >>> > >> >>> 2nd CPU: > >> >>> panic()->crash_kexec()->kexec_mutex already held by 1st CPU > >> >>> ->smp_send_stop()-> stop CPU 1 (stop kdump) > >> >>> > >> >>> How should we fix this problem? One possibility could be to do > >> >>> smp_send_stop() before we call crash_kexec(). > > http://lkml.org/lkml/2010/9/16/353 > > I developed a patch solving this issue one year ago. > (Just adding local_irq_disable in kexec path.) This won't work (at least on s390) because smp_send_stop() will also stop CPUs that have interrupts disabled. Michael