[PATCHv3 0/4] x86/tdx: Adjust TD settings on boot

From: Kirill A. Shutemov
Date: Mon May 06 2024 - 08:16:09 EST


The patchset adjusts a few TD settings on boot for the optimal functioning
of the system:

- Disable EPT violation #VE on private memory if TD can control it

The newer TDX module allows the guest to control whether it wants to
see #VE on EPT violation on private memory. The Linux kernel does not
want such #VEs and needs to disable them.

- Enable virtualization of topology-related CPUID leafs X2APIC_APICID MSR;

The ENUM_TOPOLOGY feature allows the VMM to provide topology
information to the guest. Enabling the feature eliminates
topology-related #VEs: the TDX module virtualizes accesses to the
CPUID leafs and the MSR.

It allows TDX guest to run with non-trivial topology configuration.

v3:
- Update commit messages;
- Rework patches 3/4 and 4/4;
v2:
- Rebased;
- Allow write to TDCS_TD_CTLS to fail;
- Adjust commit messages;

Kirill A. Shutemov (4):
x86/tdx: Factor out TD metadata write TDCALL
x86/tdx: Rename tdx_parse_tdinfo() to tdx_setup()
x86/tdx: Handle PENDING_EPT_VIOLATION_V2
x86/tdx: Enable ENUM_TOPOLOGY

arch/x86/coco/tdx/tdx.c | 163 +++++++++++++++++++++++++++---
arch/x86/include/asm/shared/tdx.h | 21 +++-
2 files changed, 169 insertions(+), 15 deletions(-)

--
2.43.0