All of lore.kernel.org
 help / color / mirror / Atom feed
From: Tom Lendacky <thomas.lendacky@amd.com>
To: "Kirill A. Shutemov" <kirill@shutemov.name>
Cc: linux-kernel@vger.kernel.org, x86@kernel.org,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	"H. Peter Anvin" <hpa@zytor.com>,
	Michael Roth <michael.roth@amd.com>,
	Joerg Roedel <jroedel@suse.de>, Andy Lutomirski <luto@kernel.org>,
	Peter Zijlstra <peterz@infradead.org>
Subject: Re: [PATCH v6 5/5] x86/sev: Add SNP-specific unaccepted memory support
Date: Fri, 9 Dec 2022 08:18:35 -0600	[thread overview]
Message-ID: <0a7720bc-8e9e-a72f-ea97-ad46cbe50aa2@amd.com> (raw)
In-Reply-To: <20221208221248.slltzm5ehnbltdee@box.shutemov.name>

On 12/8/22 16:12, Kirill A. Shutemov wrote:
> On Thu, Dec 08, 2022 at 09:29:13AM -0600, Tom Lendacky wrote:
>> Add SNP-specific hooks to the unaccepted memory support in the boot
>> path (__accept_memory()) and the core kernel (accept_memory()) in order
>> to support booting SNP guests when unaccepted memory is present. Without
>> this support, SNP guests will fail to boot and/or panic() when unaccepted
>> memory is present in the EFI memory map.
>>
>> The process of accepting memory under SNP involves invoking the hypervisor
>> to perform a page state change for the page to private memory and then
>> issuing a PVALIDATE instruction to accept the page.
>>
>> Since the boot path and the core kernel paths perform similar operations,
>> move the pvalidate_pages() and vmgexit_psc() functions into sev-shared.c
>> to avoid code duplication.
>>
>> Create the new header file arch/x86/boot/compressed/sev.h because adding
>> the function declaration to any of the existing SEV related header files
>> pulls in too many other header files, causing the build to fail.
>>
>> Signed-off-by: Tom Lendacky <thomas.lendacky@amd.com>
>> ---
>>   arch/x86/Kconfig                |   1 +
>>   arch/x86/boot/compressed/mem.c  |   3 +
>>   arch/x86/boot/compressed/sev.c  |  54 ++++++++++++++-
>>   arch/x86/boot/compressed/sev.h  |  23 +++++++
>>   arch/x86/include/asm/sev.h      |   3 +
>>   arch/x86/kernel/sev-shared.c    | 103 +++++++++++++++++++++++++++++
>>   arch/x86/kernel/sev.c           | 112 ++++----------------------------
>>   arch/x86/mm/unaccepted_memory.c |   4 ++
>>   8 files changed, 204 insertions(+), 99 deletions(-)
>>   create mode 100644 arch/x86/boot/compressed/sev.h
>>
>> diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
>> index d88f61940aa7..0704d4795919 100644
>> --- a/arch/x86/Kconfig
>> +++ b/arch/x86/Kconfig
>> @@ -1549,6 +1549,7 @@ config AMD_MEM_ENCRYPT
>>   	select INSTRUCTION_DECODER
>>   	select ARCH_HAS_CC_PLATFORM
>>   	select X86_MEM_ENCRYPT
>> +	select UNACCEPTED_MEMORY
>>   	help
>>   	  Say yes to enable support for the encryption of system memory.
>>   	  This requires an AMD processor that supports Secure Memory
> 
> I think it misses "depends on EFI_STUB".

Ah, good catch, thanks. I'll update the series to add that.

Thanks,
Tom

> 
> The code I've submitted contains "select EFI_STUB", but it causes build
> issues for some configurations. I've changed it to "depends on" in git.
> 

      reply	other threads:[~2022-12-09 14:19 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-12-07  1:49 [PATCHv8 00/14] mm, x86/cc: Implement support for unaccepted memory Kirill A. Shutemov
2022-12-07  1:49 ` [PATCHv8 01/14] x86/boot: Centralize __pa()/__va() definitions Kirill A. Shutemov
2022-12-07  1:49 ` [PATCHv8 02/14] mm: Add support for unaccepted memory Kirill A. Shutemov
2022-12-09 18:10   ` Vlastimil Babka
2022-12-09 19:26     ` Kirill A. Shutemov
2022-12-09 22:23       ` Vlastimil Babka
2022-12-24 16:46         ` Kirill A. Shutemov
2023-01-12 11:59           ` Vlastimil Babka
2022-12-26 12:23   ` Borislav Petkov
2022-12-27  3:18     ` Kirill A. Shutemov
2023-01-16 13:04   ` Mel Gorman
2022-12-07  1:49 ` [PATCHv8 03/14] mm: Report unaccepted memory in meminfo Kirill A. Shutemov
2022-12-07  1:49 ` [PATCHv8 04/14] efi/x86: Get full memory map in allocate_e820() Kirill A. Shutemov
2022-12-07  1:49 ` [PATCHv8 05/14] x86/boot: Add infrastructure required for unaccepted memory support Kirill A. Shutemov
2023-01-03 13:52   ` Borislav Petkov
2022-12-07  1:49 ` [PATCHv8 06/14] efi/x86: Implement support for unaccepted memory Kirill A. Shutemov
2023-01-03 14:20   ` Borislav Petkov
2023-03-25  0:51     ` Kirill A. Shutemov
2022-12-07  1:49 ` [PATCHv8 07/14] x86/boot/compressed: Handle " Kirill A. Shutemov
2022-12-07  1:49 ` [PATCHv8 08/14] x86/mm: Reserve unaccepted memory bitmap Kirill A. Shutemov
2022-12-07  1:49 ` [PATCHv8 09/14] x86/mm: Provide helpers for unaccepted memory Kirill A. Shutemov
2022-12-07  1:49 ` [PATCHv8 10/14] x86/mm: Avoid load_unaligned_zeropad() stepping into " Kirill A. Shutemov
2022-12-07  1:49 ` [PATCHv8 11/14] x86: Disable kexec if system has " Kirill A. Shutemov
2022-12-07  1:49 ` [PATCHv8 12/14] x86/tdx: Make _tdx_hypercall() and __tdx_module_call() available in boot stub Kirill A. Shutemov
2022-12-07  1:49 ` [PATCHv8 13/14] x86/tdx: Refactor try_accept_one() Kirill A. Shutemov
2022-12-07  1:49 ` [PATCHv8 14/14] x86/tdx: Add unaccepted memory support Kirill A. Shutemov
2022-12-08 15:29 ` [PATCH v6 0/5] Provide SEV-SNP support for unaccepted memory Tom Lendacky
2022-12-08 15:29   ` [PATCH v6 1/5] x86/sev: Fix calculation of end address based on number of pages Tom Lendacky
2022-12-08 15:29   ` [PATCH v6 2/5] x86/sev: Put PSC struct on the stack in prep for unaccepted memory support Tom Lendacky
2022-12-08 15:29   ` [PATCH v6 3/5] x86/sev: Allow for use of the early boot GHCB for PSC requests Tom Lendacky
2022-12-08 15:29   ` [PATCH v6 4/5] x86/sev: Use large PSC requests if applicable Tom Lendacky
2022-12-08 15:29   ` [PATCH v6 5/5] x86/sev: Add SNP-specific unaccepted memory support Tom Lendacky
2022-12-08 22:12     ` Kirill A. Shutemov
2022-12-09 14:18       ` Tom Lendacky [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=0a7720bc-8e9e-a72f-ea97-ad46cbe50aa2@amd.com \
    --to=thomas.lendacky@amd.com \
    --cc=bp@alien8.de \
    --cc=dave.hansen@linux.intel.com \
    --cc=hpa@zytor.com \
    --cc=jroedel@suse.de \
    --cc=kirill@shutemov.name \
    --cc=linux-kernel@vger.kernel.org \
    --cc=luto@kernel.org \
    --cc=michael.roth@amd.com \
    --cc=mingo@redhat.com \
    --cc=peterz@infradead.org \
    --cc=tglx@linutronix.de \
    --cc=x86@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.