[Q:linux][PATCH 0/8] Support TDX host in questing
Thibault Ferrante
thibault.ferrante at canonical.com
Wed Sep 3 11:05:29 UTC 2025
BugLink: https://bugs.launchpad.net/bugs/2121873
Since 6.16, TDX host is supported in the kernel but is incompatible with kexec. A cache
flush is required in case TDX has been enabled before doing a kexec to avoid silent
memory corruption in the new kernel.
An upstream submission [0] fix this. The upstream submission is now a v8 and is likely
to be merged soon. 4 conditions are required at runtime to enable TDX Host:
- Hibernation disabled.
- TDX enabled in the bios.
- kvm_intel.tdx=1 set in the bootcommand line.
- Hardware support.
Two limitation are coming with this submission:
- In specific platforms (SPR/EMR), enabling TDX (all conditions fulfilled)
will disable kexec due to hardware limitations.
- After kexec, TDX can't be used. This error will manifest by having a dmesg entry
similar to:
virt/tdx: SEAMCALL (0x0000000000000021) failed: 0xc000050000000000
This has been applied on top of questing Ubuntu-6.17.0-3.3 and tested on supported
hardware by enabling TDX and using kexec/kdump.
[0] : https://lore.kernel.org/all/20250901160930.1785244-1-pbonzini@redhat.com/
Kai Huang (7):
UBUNTU: SAUCE: x86/kexec: Consolidate relocate_kernel() function
parameters
UBUNTU: SAUCE: x86/sme: Use percpu boolean to control WBINVD during
kexec
UBUNTU: SAUCE: x86/virt/tdx: Mark memory cache state incoherent when
making SEAMCALL
UBUNTU: SAUCE: x86/kexec: Disable kexec/kdump on platforms with TDX
partial write erratum
UBUNTU: SAUCE: x86/virt/tdx: Remove the !KEXEC_CORE dependency
UBUNTU: SAUCE: x86/virt/tdx: Update the kexec section in the TDX
documentation
UBUNTU: SAUCE: KVM: TDX: Explicitly do WBINVD when no more TDX
SEAMCALLs
Thibault Ferrante (1):
UBUNTU: [Config] enable TDX host support
Documentation/arch/x86/tdx.rst | 14 ++++-----
arch/x86/Kconfig | 1 -
arch/x86/include/asm/kexec.h | 12 ++++++--
arch/x86/include/asm/processor.h | 2 ++
arch/x86/include/asm/tdx.h | 31 +++++++++++++++++++-
arch/x86/kernel/cpu/amd.c | 17 +++++++++++
arch/x86/kernel/machine_kexec_64.c | 44 ++++++++++++++++++++++------
arch/x86/kernel/process.c | 24 +++++++--------
arch/x86/kernel/relocate_kernel_64.S | 36 +++++++++++++++--------
arch/x86/kvm/vmx/tdx.c | 10 +++++++
arch/x86/virt/vmx/tdx/tdx.c | 23 +++++++++++++--
debian.master/config/annotations | 4 ++-
12 files changed, 170 insertions(+), 48 deletions(-)
--
2.48.1
More information about the kernel-team
mailing list