Re: [PATCH v2 0/6] panic, x86/vmware: Preserve crash logs before kdump

From: Bradley Morgan

Date: Mon Sep 28 2026 - 16:40:55 EST


On 28 September 2026 18:55:34 BST, Zack Rusin <zack.rusin@xxxxxxxxxxxx>
wrote:
>A VMware guest may have no persistent storage or working userspace after
>a crash. Preserve its newest kernel log tail in the host's vmware.log
>before entering kdump, without enabling every panic notifier by default.
>
>Following Petr's suggestion, add one generic panic_pre_kdump_list with
>VMware as its first client. A set-once helper covers panic() and direct
>crash-kexec entry. Fatal oopses can reach kdump without calling panic(),
>so patch 2 adds that call after capturing the original registers under
>the existing kexec lock. The late panic call follows sys_info() and
>precedes the kmsg dumpers.
>
>Patch 3 adds Guilherme's suggested escape hatch for debugging kdump
>failures involving early callbacks. With panic_pre_kdump_postpone set,
>the list runs before kdump only when crash_kexec_post_notifiers is also
>set. This can omit hypervisor crash handling as well as diagnostics.
>The late panic call remains eligible. This policy is a separate patch;
>I can omit patch 3 if it is not wanted.
>
>The logger preallocates an 8 KiB buffer and bounds its register-based
>RPC transfer and retries. Michael suggested increasing the buffer
>because 4 KiB can omit useful stack-trace context. Ordinary guests
>enable logging by default; encrypted guests must opt in. Use
>bool/proc_dobool for the sysctl as Joel requested. The potentially
>terminating REPORTGUESTCRASH event remains a separate late dumper,
>suppressed whenever a crash image is loaded. The v1 assignment to
>crash_kexec_post_notifiers is dropped.
>
>Tested on VMware Workstation and ESXi with ordinary guests, and on
>ESXi with SEV-SNP and TDX guests.
>
>v1:
>https://lore.kernel.org/r/cover.1788414671.git.zack.rusin@xxxxxxxxxxxx
>
>Zack Rusin (6):
> panic: Add a notifier chain for pre-kdump callbacks
> crash: Notify pre-kdump callbacks before switching kernels
> panic: Allow postponing pre-kdump notifiers
> x86/vmware: Add a bounded pre-kdump log sender
> x86/vmware: Add the vmware_record_panic_msg sysctl
> x86/vmware: Report guest crashes after kmsg dumpers
>
> .../admin-guide/kernel-parameters.txt | 14 +
> Documentation/admin-guide/sysctl/kernel.rst | 20 ++
> arch/x86/include/asm/vmware.h | 2 +
> arch/x86/kernel/cpu/vmware.c | 250 ++++++++++++++++++
> include/linux/panic_notifier.h | 4 +
> kernel/crash_core.c | 3 +
> kernel/panic.c | 28 ++
> 7 files changed, 321 insertions(+)
>

All the panic changes and crash_core changes looks good to me!

Reviewed-by: Bradley Morgan <brads@xxxxxxxxxxxxxx>

Tested basic panic calls with Power10, in courtesy of osuosl:

Tested-by: Bradley Morgan <brads@xxxxxxxxxxxxxx> # Power10



>
>base-commit: fd73f4a6659897191fa0d40695fe370925dd3780
>
>
>From mboxrd@z Thu Jan 1 00:00:00 1970
>Received: from mail-pj1-f100.google.com (mail-pj1-f100.google.com [209.85.216.100])
> (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits))
> (No client certificate requested)
> by smtp.subspace.kernel.org (Postfix) with ESMTPS id 83AF64E3243
> for <linux-doc@xxxxxxxxxxxxxxx>; Mon, 28 Sep 2026 17:56:08 +0000 (UTC)
>Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.100
>ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;
> t=1790618169; cv=none; b=b4BojE7kyzKnMqCq3yQBsgTjfamCuHeSPBiM3mTeE4v6X5jd8GsgUy8HFjfb6vnu2FsurVAocpFTMaJi8sVvzC7bBtKNDJpFDvZCNqdO4XHY7wznbp2hC1z0LbTBYGMbRHtCk4LvgNFrpWDHzU9DrGZf+1d8PQJtrrUWMR3fWB8=
>ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org;
> s=arc-20240116; t=1790618169; c=relaxed/simple;
> bh=qHuvSTbzKTQ99mPQxhPgubTCtOl/pceEwTRUqIC9LiU=;
> h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=FTXEgGo9/aZOjjBWf/3/aJE9bzE1CX9s/OSrb2hi9L/KTuxvuIv8F7B18Mj6GgYbZIaXobZhtwozeHdFf9pWY4NmLIXIxMlQiB06cvRkp4UYghm/h3KZ3r3B3EPB6W4Zm/qFIUpvsrOcMQBhLX0ulM1Nh7jAkRnR5+Dr4TccEps=
>ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass
>(p=reject dis=none) header.from=broadcom.com; spf=fail
>smtp.mailfrom=broadcom.com; dkim=pass (1024-bit key) header.d=broadcom.com
>header.i=@broadcom.com header.b=AMSyqTvg; arc=none
>smtp.client-ip=209.85.216.100
>Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=broadcom.com
>Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=broadcom.com
>Authentication-Results: smtp.subspace.kernel.org;
> dkim=pass (1024-bit key) header.d=broadcom.com header.i=@broadcom.com header.b="AMSyqTvg"
>Received: by mail-pj1-f100.google.com with SMTP id 98e67ed59e1d1-39647aa9d52so87593a91.0
> for <linux-doc@xxxxxxxxxxxxxxx>; Mon, 28 Sep 2026 10:56:08 -0700 (PDT)
>X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
> d=1e100.net; s=20260707; t=1790618168; x=1791222968;
> h=content-transfer-encoding:mime-version:message-id:date:subject:cc
> :to:from:dkim-signature:x-gm-gg:x-gm-message-state:from:to:cc
> :subject:date:message-id:reply-to:content-type;
> bh=KmmJxySPwG38CbqK+KUDBFApZhpWarF4JpRDp51PqIc=;
> b=Jpd/MIj5ewElR34jOfbzVz6y0phWWOuuetH2AMAqSfkw9wo88gnxd8iiGSrwGXb/K8
> LxiFGW7Gk1/qfXeNKTtiT3pDkujiBk8rYb2hZ9gxVSorRYSYgPAO2EL16XTvbxLgG6YK
> 3FeqkS0hVSU1tdYNfgmZnbEIc2b/RyU4JI14RYidz/e/0W5GCoeMbf3A5MEjESY87AVb
> Nmwd7ohydW1mz6nApfHFyC6Dnyk8weLtbSVES1jsgb3+ivuTwzujcnvHLoxLcTveo38M
> /QCQT4LKda0z3bTRNmSUIPrz9XLziXq3W4D3R+fZgS7Ae1bSJihAy/CQ8TsXISh1sea3
> /Y5g==
>X-Forwarded-Encrypted: i=1; AKwUvBz1cco3gfH83tEf5iTZWgGV7lvOGVAz8sAyGJ4O8VTok46+5cEwqveCnVBIA8QHt65rA8D83p9YKyk=@vger.kernel.org
>X-Gm-Message-State: AFq9FYJJ9fgQVETjiY5fbRpzunCNQ3yHlKk8Ilzj81eoAlnuoS+Dn0Ka
> McHcsKEBsXysl0ErYrd3UsPTH5PvX2dq9oZLqcmv4M1H2ZZYdezUd/B+B5ApLoXVYyVqwwaKkn1
> WhxVmBuVCVdWdMiAn3Vi6H3YMgDwkYBQIrAbekUmKYvA8WvWr8eMC191fp1XiUxJ6rhpIfeSsVp
> NTAsl3Yon3avlK5XQfKHI5gtnaNCTFriKugUOmHPEPXyu8F41SwzaOR5uWzC+zjBz4Vodbmgspr
> ROsqbvKBTG0
>X-Gm-Gg: AYBFou2P8ZN7jxBSC+9O6FmDIlcBFoArokAtaD0KOTfPh/dbNfovO55NTXigG/qTx0i
> zW8kFxJ9y8047OYcs7z6GR/iFk/FwAFBB5zgqFHnosJpMNBIX2v+4Kwpu9gjKkmULOJP4mIajIu
> dJfq/+pAXglXwFTJ+9jxVi8wPktojt/Kb99zzSZdC2pJZ1qGv0VNdQR3aD5YFUJSBFcy3BkabjL
> sk1IZGxFfeKEGoAO9jrL5qKeIm3f6Ql5otkpaV9x52hh1iOyQ0Xd1UFFrUB+dYPtR6W5bYD0hSO
> 5TbTBiupR7Fk/TU3eH1D3LCTwxJdUmWXGODfhDogaAZUtfuQraIYelR1Lue5OSP5fGKHMw5FPyo
> iFEAWZ+eQ1MJmXkr4N/LcVUr5vNjYToRFimPtfJQ430PQig2taOVcTvxn7B2m7O6JMTg8qajAW3
> a/HyZmBnzcwByWASw8uS+bX2LuCwxtV9OO
>X-Received: by 2002:a17:90b:28c6:b0:3a0:34a4:187e with SMTP id 98e67ed59e1d1-3a49c120f78mr7983a91.15.1790618167517;
> Mon, 28 Sep 2026 10:56:07 -0700 (PDT)
>Received: from smtp-us-east1-p01-i01-si01.dlp.protect.broadcom.com (address-144-49-247-18.dlp.protect.broadcom.com. [144.49.247.18])
> by smtp-relay.gmail.com with ESMTPS id 98e67ed59e1d1-3a498e35c74sm34226a91.3.2026.09.28.10.56.00
> for <linux-doc@xxxxxxxxxxxxxxx>
> (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128);
> Mon, 28 Sep 2026 10:56:07 -0700 (PDT)
>X-Relaying-Domain: broadcom.com
>X-CFilter-Loop: Reflected
>Received: by mail-dy1-f200.google.com with SMTP id 5a478bee46e88-3282d5302ffso156936eec.1
> for <linux-doc@xxxxxxxxxxxxxxx>; Mon, 28 Sep 2026 10:56:00 -0700 (PDT)
>DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
> d=broadcom.com; s=google; t=1790618159; x=1791222959; darn=vger.kernel.org;
> h=content-transfer-encoding:mime-version:message-id:date:subject:cc
> :to:from:from:to:cc:subject:date:message-id:reply-to:content-type;
> bh=KmmJxySPwG38CbqK+KUDBFApZhpWarF4JpRDp51PqIc=;
> b=AMSyqTvg7YOAaOo4sIAY0pcRYwHSW0cH09GjKbqzO4apiMMUre94O+4j1U12+P2RKc
> thNFz4BDgQu1JWPb2Prmfj0x/3+gp1f5TNhwJdRBccsEH9Kg8d61iKzddQPkLXzvvA2Y
> czPVjFz5/L4SBh9PoEC0hHpQAKBZzbU0jsBOo=
>X-Forwarded-Encrypted: i=1; AKwUvBzwJDvlo2QB15OMSgAG9uvXCCuZffODLbFe+C46K/WtKOc+COVpbcP72cSKjfHL1r07WxDFnjfUXvo=@vger.kernel.org
>X-Received: by 2002:a05:7022:ff49:b0:13c:e1e2:fc86 with SMTP id a92af1059eb24-14b2d993e47mr201594c88.4.1790618159182;
> Mon, 28 Sep 2026 10:55:59 -0700 (PDT)
>X-Received: by 2002:a05:7022:ff49:b0:13c:e1e2:fc86 with SMTP id a92af1059eb24-14b2d993e47mr201547c88.4.1790618158548;
> Mon, 28 Sep 2026 10:55:58 -0700 (PDT)
>Received: from vertex.localdomain ([192.19.144.250])
> by smtp.gmail.com with ESMTPSA id 5a478bee46e88-3421dbb2971sm26076069eec.10.2026.09.28.10.55.53
> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
> Mon, 28 Sep 2026 10:55:57 -0700 (PDT)
>From: Zack Rusin <zack.rusin@xxxxxxxxxxxx>
>To: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>,
> Petr Mladek <pmladek@xxxxxxxx>,
> Baoquan He <baoquan.he@xxxxxxxxx>,
> Mike Rapoport <rppt@xxxxxxxxxx>,
> Pasha Tatashin <pasha.tatashin@xxxxxxxxxx>,
> Pratyush Yadav <pratyush@xxxxxxxxxx>,
> Dave Young <ruirui.yang@xxxxxxxxx>
>Cc: Borislav Petkov <bp@xxxxxxxxx>,
> Ajay Kaher <ajay.kaher@xxxxxxxxxxxx>,
> Alexey Makhalov <alexey.makhalov@xxxxxxxxxxxx>,
> x86@xxxxxxxxxx,
> Joel Granados <joel.granados@xxxxxxxxxx>,
> Thomas Gleixner <tglx@xxxxxxxxxx>,
> Ingo Molnar <mingo@xxxxxxxxxx>,
> Dave Hansen <dave.hansen@xxxxxxxxxxxxxxx>,
> "H. Peter Anvin" <hpa@xxxxxxxxx>,
> virtualization@xxxxxxxxxxxxxxx,
> bcm-kernel-feedback-list@xxxxxxxxxxxx,
> linux-kernel@xxxxxxxxxxxxxxx,
> John Ogness <john.ogness@xxxxxxxxxxxxx>,
> Steven Rostedt <rostedt@xxxxxxxxxxx>,
> Sergey Senozhatsky <senozhatsky@xxxxxxxxxxxx>,
> Kees Cook <kees@xxxxxxxxxx>,
> Jonathan Corbet <corbet@xxxxxxx>,
> Bo Gan <bo.gan@xxxxxxxxxxxx>,
> Brennan Lamoreaux <brennan.lamoreaux@xxxxxxxxxxxx>,
> kexec@xxxxxxxxxxxxxxxxxxx,
> linux-doc@xxxxxxxxxxxxxxx,
> "Guilherme G. Piccoli" <gpiccoli@xxxxxxxxxx>,
> Maaz Mombasawala <maaz.mombasawala@xxxxxxxxxxxx>,
> Shuah Khan <skhan@xxxxxxxxxxxxxxxxxxx>,
> Randy Dunlap <rdunlap@xxxxxxxxxxxxx>,
> Stephen Brennan <stephen.s.brennan@xxxxxxxxxx>,
> Michael Kelley <mhklinux@xxxxxxxxxxx>,
> Ian Forbes <ian.forbes@xxxxxxxxxxxx>
>Subject: [PATCH v2 0/6] panic, x86/vmware: Preserve crash logs before kdump
>Date: Mon, 28 Sep 2026 13:55:34 -0400
>Message-ID: <cover.1790014793.git.zack.rusin@xxxxxxxxxxxx>
>X-Mailer: git-send-email 2.53.0
>Precedence: bulk
>X-Mailing-List: linux-doc@xxxxxxxxxxxxxxx
>List-Id: <linux-doc.vger.kernel.org>
>List-Subscribe: <mailto:linux-doc+subscribe@xxxxxxxxxxxxxxx>
>List-Unsubscribe: <mailto:linux-doc+unsubscribe@xxxxxxxxxxxxxxx>
>MIME-Version: 1.0
>Content-Transfer-Encoding: 8bit
>X-DetectorID-Processed: b00c1d49-9d2e-4205-b15f-d015386d3d5e
>
>A VMware guest may have no persistent storage or working userspace after
>a crash. Preserve its newest kernel log tail in the host's vmware.log
>before entering kdump, without enabling every panic notifier by default.
>
>Following Petr's suggestion, add one generic panic_pre_kdump_list with
>VMware as its first client. A set-once helper covers panic() and direct
>crash-kexec entry. Fatal oopses can reach kdump without calling panic(),
>so patch 2 adds that call after capturing the original registers under
>the existing kexec lock. The late panic call follows sys_info() and
>precedes the kmsg dumpers.
>
>Patch 3 adds Guilherme's suggested escape hatch for debugging kdump
>failures involving early callbacks. With panic_pre_kdump_postpone set,
>the list runs before kdump only when crash_kexec_post_notifiers is also
>set. This can omit hypervisor crash handling as well as diagnostics.
>The late panic call remains eligible. This policy is a separate patch;
>I can omit patch 3 if it is not wanted.
>
>The logger preallocates an 8 KiB buffer and bounds its register-based
>RPC transfer and retries. Michael suggested increasing the buffer
>because 4 KiB can omit useful stack-trace context. Ordinary guests
>enable logging by default; encrypted guests must opt in. Use
>bool/proc_dobool for the sysctl as Joel requested. The potentially
>terminating REPORTGUESTCRASH event remains a separate late dumper,
>suppressed whenever a crash image is loaded. The v1 assignment to
>crash_kexec_post_notifiers is dropped.
>
>Tested on VMware Workstation and ESXi with ordinary guests, and on
>ESXi with SEV-SNP and TDX guests.
>
>v1:
>https://lore.kernel.org/r/cover.1788414671.git.zack.rusin@xxxxxxxxxxxx
>
>Zack Rusin (6):
> panic: Add a notifier chain for pre-kdump callbacks
> crash: Notify pre-kdump callbacks before switching kernels
> panic: Allow postponing pre-kdump notifiers
> x86/vmware: Add a bounded pre-kdump log sender
> x86/vmware: Add the vmware_record_panic_msg sysctl
> x86/vmware: Report guest crashes after kmsg dumpers
>
> .../admin-guide/kernel-parameters.txt | 14 +
> Documentation/admin-guide/sysctl/kernel.rst | 20 ++
> arch/x86/include/asm/vmware.h | 2 +
> arch/x86/kernel/cpu/vmware.c | 250 ++++++++++++++++++
> include/linux/panic_notifier.h | 4 +
> kernel/crash_core.c | 3 +
> kernel/panic.c | 28 ++
> 7 files changed, 321 insertions(+)
>
>
>base-commit: fd73f4a6659897191fa0d40695fe370925dd3780
>
>


--- Thanks!
"I'm not a very positive person" - Linus torvalds