Re: [PATCH 4/7] x86/kexec: Disable kexec/kdump on platforms with TDX partial write erratum
From: Vishal Annapurve
Date: Mon Nov 03 2025 - 11:51:34 EST
On Tue, Oct 28, 2025 at 2:31 AM Huang, Kai <kai.huang@xxxxxxxxx> wrote:
>
> On Mon, 2025-10-27 at 17:07 -0700, Vishal Annapurve wrote:
> > On Mon, Oct 27, 2025 at 2:28 PM Huang, Kai <kai.huang@xxxxxxxxx> wrote:
> > >
> > > On Mon, 2025-10-27 at 16:23 +0000, Edgecombe, Rick P wrote:
> > > > On Mon, 2025-10-27 at 00:50 +0000, Huang, Kai wrote:
> > > > > >
> > > > > > IIUC, kernel doesn't donate any of it's available memory to TDX module
> > > > > > if TDX is not actually enabled (i.e. if "kvm.intel.tdx=y" kernel
> > > > > > command line parameter is missing).
> > > > >
> > > > > Right (for now KVM is the only in-kernel TDX user).
> > > > >
> > > > > >
> > > > > > Why is it unsafe to allow kexec/kdump if "kvm.intel.tdx=y" is not
> > > > > > supplied to the kernel?
> > > > >
> > > > > It can be relaxed. Please see the above quoted text from the changelog:
> > > > >
> > > > > > It's feasible to further relax this limitation, i.e., only fail kexec
> > > > > > when TDX is actually enabled by the kernel. But this is still a half
> > > > > > measure compared to resetting TDX private memory so just do the simplest
> > > > > > thing for now.
> > > >
> > > > I think KVM could be re-inserted with different module params? As in, the two
> > > > in-tree users could be two separate insertions of the KVM module. That seems
> > > > like something that could easily come up in the real world, if a user re-inserts
> > > > for the purpose of enabling TDX. I think the above quote was talking about
> > > > another way of checking if it's enabled.
> > >
> > > Yes exactly. We need to look at module status for that.
> >
> > So, the right thing to do is to declare the host platform as affected
> > by PW_MCE_BUG only if TDX module is initialized, does that sound
> > correct?
>
> I was thinking something like this:
>
> https://lore.kernel.org/lkml/20250416230259.97989-1-kai.huang@xxxxxxxxx/
This seems to be an important thing to make progress on. IMO,
disabling kexec/kdump even if the host doesn't plan to use TDX
functionality but wants to keep the build config enabled is a
regression.
I think explicitly doing TDX module initialization[1] ideally needs
something like the above series from Kai and possibly resetting the
PAMT memory during kexec/kdump at least on SPR/EMR CPUs. Otherwise
it's effectively impossible to enable CONFIG_INTEL_TDX_HOST and have
kexec/kdump working on the host even if no confidential workloads are
scheduled on such SPR/EMR hosts.
[1] https://lore.kernel.org/kvm/20251010220403.987927-4-seanjc@xxxxxxxxxx/