[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <3cef05aa-cc8c-f0a1-e48c-9cc8cdd327eb@intel.com>
Date: Tue, 8 Mar 2022 14:02:54 -0800
From: Dave Hansen <dave.hansen@...el.com>
To: "Kirill A. Shutemov" <kirill.shutemov@...ux.intel.com>,
tglx@...utronix.de, mingo@...hat.com, bp@...en8.de,
luto@...nel.org, peterz@...radead.org
Cc: sathyanarayanan.kuppuswamy@...ux.intel.com, aarcange@...hat.com,
ak@...ux.intel.com, dan.j.williams@...el.com, david@...hat.com,
hpa@...or.com, jgross@...e.com, jmattson@...gle.com,
joro@...tes.org, jpoimboe@...hat.com, knsathya@...nel.org,
pbonzini@...hat.com, sdeep@...are.com, seanjc@...gle.com,
tony.luck@...el.com, vkuznets@...hat.com, wanpengli@...cent.com,
thomas.lendacky@....com, brijesh.singh@....com, x86@...nel.org,
linux-kernel@...r.kernel.org
Subject: Re: [PATCHv5 25/30] x86/tdx: Make pages shared in ioremap()
On 3/2/22 06:28, Kirill A. Shutemov wrote:
> In TDX guests, guest memory is protected from host access. If a guest
> performs I/O, it needs to explicitly share the I/O memory with the host.
>
> Make all ioremap()ed pages that are not backed by normal memory
> (IORES_DESC_NONE or IORES_DESC_RESERVED) mapped as shared.
>
> Since TDX memory encryption support is similar to AMD SEV architecture,
> reuse the infrastructure from AMD SEV code.
>
> Co-developed-by: Kuppuswamy Sathyanarayanan <sathyanarayanan.kuppuswamy@...ux.intel.com>
> Signed-off-by: Kuppuswamy Sathyanarayanan <sathyanarayanan.kuppuswamy@...ux.intel.com>
> Reviewed-by: Andi Kleen <ak@...ux.intel.com>
> Reviewed-by: Tony Luck <tony.luck@...el.com>
> Signed-off-by: Kirill A. Shutemov <kirill.shutemov@...ux.intel.com>
> ---
> arch/x86/mm/ioremap.c | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/arch/x86/mm/ioremap.c b/arch/x86/mm/ioremap.c
> index 026031b3b782..a5d4ec1afca2 100644
> --- a/arch/x86/mm/ioremap.c
> +++ b/arch/x86/mm/ioremap.c
> @@ -242,10 +242,15 @@ __ioremap_caller(resource_size_t phys_addr, unsigned long size,
> * If the page being mapped is in memory and SEV is active then
> * make sure the memory encryption attribute is enabled in the
> * resulting mapping.
> + * In TDX guests, memory is marked private by default. If encryption
> + * is not requested (using encrypted), explicitly set decrypt
> + * attribute in all IOREMAPPED memory.
> */
Nit: in this context, nobody knows what "private" means.
I'd probably just say this in the changelog:
The permissions in PAGE_KERNEL_IO already work for "decrypted"
memory on AMD SEV/SME systems. That means that they have no
need to make a pgprot_decrypted() call.
TDX guests, on the other hand, _need_ change to PAGE_KERNEL_IO
for "decrypted" mappings. Add a pgprot_decrypted() for TDX.
I'm not sure you need a code comment. There's really nothing that
mentions TDX in the code being commented. If it needs clarification,
I'd do it behind the pgprot*() helpers.
Powered by blists - more mailing lists