[V4 PATCH 1/2] x86/panic: Replace smp_send_stop() with kdump friendly version in panic path
dyoung at redhat.com
Wed Sep 21 18:54:31 PDT 2016
Thanks for the patch log update, it looks good to me.
Acked-by: Dave Young <dyoung at redhat.com>
On 09/20/16 at 11:22am, 河合英宏 / KAWAI，HIDEHIRO wrote:
> Here is the revised commit description reflecting Dave's
> comment. Cc list was copied from -mm version.
> From: Hidehiro Kawai <hidehiro.kawai.ez at hitachi.com>
> Subject: x86/panic: replace smp_send_stop() with kdump friendly version in panic path
> This patch fixes a problem reported by Daniel Walker
> When kernel panics with crash_kexec_post_notifiers kernel parameter
> enabled, other CPUs are stopped by smp_send_stop() instead of
> machine_crash_shutdown() in __crash_kexec() path.
> if crash_kexec_post_notifiers == 1
> Different from smp_send_stop(), machine_crash_shutdown() stops other
> CPUs with extra works for kdump. So, if smp_send_stop() stops other
> CPUs in advance, these extra works won't be done. For x86, kdump
> routines miss to save other CPUs' registers and disable virtualization
> To fix this problem, call a new kdump friendly function,
> crash_smp_send_stop(), instead of the smp_send_stop() when
> crash_kexec_post_notifiers is enabled. crash_smp_send_stop() is a
> weak function, and it just call smp_send_stop(). Architecture
> codes should override it so that kdump can work appropriately.
> This patch only provides x86-specific version.
> For Xen's PV kernel, just keep the current behavior.
> As for Dom0, it doesn't use crash_kexec routines, and it relies on
> panic notifier chain. At the end of the chain, a hypercall is
> issued which requests the hypervisor to execute kdump. This means
> regardless of crash_kexec_post_notifiers setting, smp_send_stop().
> For PV HVM, it would work similarly to baremetal kernels with extra
> cleanups for hypervisor. It doesn't need additional care.
> Changes in V4:
> - Keep to use smp_send_stop if crash_kexec_post_notifiers is not set
> - Rename panic_smp_send_stop to crash_smp_send_stop
> - Don't change the behavior for Xen's PV kernel
> Changes in V3:
> - Revise comments, description, and symbol names
> Changes in V2:
> - Replace smp_send_stop() call with crash_kexec version which
> saves cpu states and cleans up VMX/SVM
> - Drop a fix for Problem 1 at this moment
> Fixes: f06e5153f4ae (kernel/panic.c: add "crash_kexec_post_notifiers" option)
> Link: http://firstname.lastname@example.org
> Signed-off-by: Hidehiro Kawai <hidehiro.kawai.ez at hitachi.com>
> Reported-by: Daniel Walker <dwalker at fifo99.com>
> Cc: Dave Young <dyoung at redhat.com>
> Cc: Baoquan He <bhe at redhat.com>
> Cc: Vivek Goyal <vgoyal at redhat.com>
> Cc: Eric Biederman <ebiederm at xmission.com>
> Cc: Masami Hiramatsu <mhiramat at kernel.org>
> Cc: Daniel Walker <dwalker at fifo99.com>
> Cc: Xunlei Pang <xpang at redhat.com>
> Cc: Thomas Gleixner <tglx at linutronix.de>
> Cc: Ingo Molnar <mingo at redhat.com>
> Cc: "H. Peter Anvin" <hpa at zytor.com>
> Cc: Borislav Petkov <bp at suse.de>
> Cc: David Vrabel <david.vrabel at citrix.com>
> Cc: Toshi Kani <toshi.kani at hpe.com>
> Cc: Ralf Baechle <ralf at linux-mips.org>
> Cc: David Daney <david.daney at cavium.com>
> Cc: Aaro Koskinen <aaro.koskinen at iki.fi>
> Cc: "Steven J. Hill" <steven.hill at cavium.com>
> Cc: Corey Minyard <cminyard at mvista.com>
> Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
More information about the kexec