Re: [PATCH v14 12/23] x86/virt/tdx: Allocate and set up PAMTs for TDMRs

From: Nikolay Borisov
Date: Tue Oct 24 2023 - 09:32:03 EST




On 24.10.23 г. 13:49 ч., Huang, Kai wrote:
On Tue, 2023-10-24 at 08:53 +0300, Nikolay Borisov wrote:

On 17.10.23 г. 13:14 ч., Kai Huang wrote:

<snip>

arch/x86/Kconfig | 1 +
arch/x86/include/asm/shared/tdx.h | 1 +
arch/x86/virt/vmx/tdx/tdx.c | 215 +++++++++++++++++++++++++++++-
arch/x86/virt/vmx/tdx/tdx.h | 1 +
4 files changed, 213 insertions(+), 5 deletions(-)

diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index 864e43b008b1..ee4ac117aa3c 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -1946,6 +1946,7 @@ config INTEL_TDX_HOST
depends on KVM_INTEL
depends on X86_X2APIC
select ARCH_KEEP_MEMBLOCK
+ depends on CONTIG_ALLOC
help
Intel Trust Domain Extensions (TDX) protects guest VMs from malicious
host and certain physical attacks. This option enables necessary TDX
diff --git a/arch/x86/include/asm/shared/tdx.h b/arch/x86/include/asm/shared/tdx.h
index abcca86b5af3..cb59fe329b00 100644
--- a/arch/x86/include/asm/shared/tdx.h
+++ b/arch/x86/include/asm/shared/tdx.h
@@ -58,6 +58,7 @@
#define TDX_PS_4K 0
#define TDX_PS_2M 1
#define TDX_PS_1G 2
+#define TDX_PS_NR (TDX_PS_1G + 1)

nit: I'd prefer if you those defines are turned into an enum and
subsequently this enum type can be used in the definition of
tdmr_get_pamt_sz(). However, at this point I consider this a
bikeshedding and you can do that iff you are going to respin the series
due to other feedback as well.

<snip>

Thanks for comments. But to be honest I don't get why enum is better, and I
would like to leave this to future work if really needed. Please note these
TDX_PS_xx are also used by TDX guest code (see patch 2).

The reason being self-documenting code. In particular when looking at the signature of tdmr_get_pamt_sz if the 2nd argument was enum tdx_ps_size or some such it would be immediately evident what this parameter is all about. Right now it's just a plain int which can be anything. Indeed, this is mostly cosmetic so hence it's minor.