x86/tdx: Enable CPU topology enumeration
authorKirill A. Shutemov <kirill.shutemov@linux.intel.com>
Mon, 4 Nov 2024 10:38:03 +0000 (12:38 +0200)
committerDave Hansen <dave.hansen@linux.intel.com>
Thu, 7 Nov 2024 18:27:45 +0000 (10:27 -0800)
commit7ae15e2f69bad06527668b478dff7c099ad2e6ae
tree6d55e10d139bce8cda15592b9b36440876a4c8d0
parentf65aa0ad79fca4ace921da0701644f020129043d
x86/tdx: Enable CPU topology enumeration

TDX 1.0 defines baseline behaviour of TDX guest platform. TDX 1.0
generates a #VE when accessing topology-related CPUID leafs (0xB and
0x1F) and the X2APIC_APICID MSR. The kernel returns all zeros on CPUID
topology. In practice, this means that the kernel can only boot with a
plain topology. Any complications will cause problems.

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.

Enable ENUM_TOPOLOGY if it is available.

Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Signed-off-by: Dave Hansen <dave.hansen@linux.intel.com>
Acked-by: Kai Huang <kai.huang@intel.com>
Link: https://lore.kernel.org/all/20241104103803.195705-5-kirill.shutemov%40linux.intel.com
arch/x86/coco/tdx/tdx.c
arch/x86/include/asm/shared/tdx.h