Re: [PATCHv2 21/29] x86/tdx: Exclude shared bit from __PHYSICAL_MASK

From: Thomas Gleixner
Date: Tue Feb 01 2022 - 19:18:46 EST


On Mon, Jan 24 2022 at 18:02, Kirill A. Shutemov wrote:

> In TDX guests, by default memory is protected from host access. If a
> guest needs to communicate with the VMM (like the I/O use case), it uses
> a single bit in the physical address to communicate the protected/shared
> attribute of the given page.
>
> In the x86 ARCH code, __PHYSICAL_MASK macro represents the width of the
> physical address in the given architecture. It is used in creating
> physical PAGE_MASK for address bits in the kernel. Since in TDX guest,
> a single bit is used as metadata, it needs to be excluded from valid
> physical address bits to avoid using incorrect addresses bits in the
> kernel.
>
> Enable DYNAMIC_PHYSICAL_MASK to support updating the __PHYSICAL_MASK.
>
> Co-developed-by: Kuppuswamy Sathyanarayanan <sathyanarayanan.kuppuswamy@xxxxxxxxxxxxxxx>
> Signed-off-by: Kuppuswamy Sathyanarayanan <sathyanarayanan.kuppuswamy@xxxxxxxxxxxxxxx>
> Reviewed-by: Andi Kleen <ak@xxxxxxxxxxxxxxx>
> Reviewed-by: Tony Luck <tony.luck@xxxxxxxxx>
> Signed-off-by: Kirill A. Shutemov <kirill.shutemov@xxxxxxxxxxxxxxx>

Impressive....

> ---
> arch/x86/Kconfig | 1 +
> arch/x86/kernel/tdx.c | 8 ++++++++
> 2 files changed, 9 insertions(+)

Reviewed-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>