The core panic path enters a loaded crash kernel before running kmsg dumpers, so the VMware logger cannot preserve the panic in the host log. Set crash_kexec_post_notifiers during VMware platform setup. setup_arch() runs before ordinary core parameters are parsed, so an explicit crash_kexec_post_notifiers=0 still overrides this default. The 0644 parameter also remains writable at runtime.
VMware exposes no capability bit for this behavior, so the default changes for every VMware guest. Running the logger first adds work to the panic path and can reduce kdump reliability. A full log transfer uses 1027 low-bandwidth hypercalls; three checkpoint attempts are bounded at 3077. In vmcall tests, a maximum-size transfer took at most 7.47 ms; three complete transfers comprising 3081 calls took at most 21.58 ms. The crash report remains suppressed while a crash kernel is loaded because the host may terminate the VM inside that call. A future report from the crash kernel or kdump userspace can restore the event after saving the vmcore. Signed-off-by: Zack Rusin <[email protected]> --- arch/x86/kernel/cpu/vmware.c | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/x86/kernel/cpu/vmware.c b/arch/x86/kernel/cpu/vmware.c index c21fc835537f..d88c625d8389 100644 --- a/arch/x86/kernel/cpu/vmware.c +++ b/arch/x86/kernel/cpu/vmware.c @@ -646,6 +646,7 @@ static void __init vmware_platform_setup(void) { u32 eax, ebx, ecx; u64 lpj, tsc_khz; + crash_kexec_post_notifiers = true; eax = vmware_hypercall3(VMWARE_CMD_GETHZ, UINT_MAX, &ebx, &ecx); -- 2.53.0

