Messages in this thread | | | Subject | kdump: crash_kexec()-smp_send_stop() race in panic | From | Michael Holzheu <> | Date | Mon, 24 Oct 2011 16:55:37 +0200 |
| |
Hello Vivek,
In our tests we ran into the following scenario:
Two CPUs have called panic at the same time. The first CPU called crash_kexec() and the second CPU called smp_send_stop() in panic() before crash_kexec() finished on the first CPU. So the second CPU stopped the first CPU and therefore kdump failed.
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().
What do you think?
Michael
| |