All of lore.kernel.org
 help / color / mirror / Atom feed
From: Tom Lendacky <thomas.lendacky@amd.com>
To: Pavan Kumar Paluri <papaluri@amd.com>, kvm@vger.kernel.org
Cc: pbonzini@redhat.com, andrew.jones@linux.dev,
	nikos.nikoleris@arm.com, michael.roth@amd.com, amit.shah@amd.com
Subject: Re: [kvm-unit-tests RFC PATCH 3/3] x86 AMD SEV-ES: Setup a new page table and install level 1 PTEs
Date: Tue, 26 Mar 2024 09:01:42 -0500	[thread overview]
Message-ID: <71311318-ca6d-47f8-8fe9-807b308f198d@amd.com> (raw)
In-Reply-To: <20240325213623.747590-3-papaluri@amd.com>

On 3/25/24 16:36, Pavan Kumar Paluri wrote:
> KUT's UEFI tests don't currently have support for page allocation.
> SEV-ES/SNP tests will need this later, so the support for page
> allocation is provided via setup_vm().
> 
> SEV-ES/SNP guest uses GHCB page to communicate with the host. Such a
> page should remain unencrypted (its c-bit should be unset). Therefore,
> call setup_ghcb_pte() in the path of setup_vm() to make sure c-bit of
> GHCB's pte is unset.

This looks like it should be 2 separate patches. One for supporting page 
allocation and one for setting the GHCB page attributes.

Thanks,
Tom

> 
> Signed-off-by: Pavan Kumar Paluri <papaluri@amd.com>
> ---
>   lib/x86/vm.c  | 6 ++++++
>   x86/amd_sev.c | 7 +++++++
>   2 files changed, 13 insertions(+)
> 
> diff --git a/lib/x86/vm.c b/lib/x86/vm.c
> index 90f73fbb2dfd..ce2063aee75d 100644
> --- a/lib/x86/vm.c
> +++ b/lib/x86/vm.c
> @@ -3,6 +3,7 @@
>   #include "vmalloc.h"
>   #include "alloc_page.h"
>   #include "smp.h"
> +#include "amd_sev.h"
>   
>   static pteval_t pte_opt_mask;
>   
> @@ -197,6 +198,11 @@ void *setup_mmu(phys_addr_t end_of_memory, void *opt_mask)
>       init_alloc_vpage((void*)(3ul << 30));
>   #endif
>   
> +#ifdef CONFIG_EFI
> +	if (amd_sev_es_enabled())
> +		setup_ghcb_pte(cr3);
> +#endif
> +
>       write_cr3(virt_to_phys(cr3));
>   #ifndef __x86_64__
>       write_cr4(X86_CR4_PSE);
> diff --git a/x86/amd_sev.c b/x86/amd_sev.c
> index 7757d4f85b7a..03636e581dfe 100644
> --- a/x86/amd_sev.c
> +++ b/x86/amd_sev.c
> @@ -14,6 +14,8 @@
>   #include "x86/processor.h"
>   #include "x86/amd_sev.h"
>   #include "msr.h"
> +#include "x86/vm.h"
> +#include "alloc_page.h"
>   
>   #define EXIT_SUCCESS 0
>   #define EXIT_FAILURE 1
> @@ -89,9 +91,14 @@ static void test_stringio(void)
>   int main(void)
>   {
>   	int rtn;
> +	unsigned long *vaddr;
>   	rtn = test_sev_activation();
>   	report(rtn == EXIT_SUCCESS, "SEV activation test.");
>   	test_sev_es_activation();
>   	test_stringio();
> +	setup_vm();
> +	vaddr = alloc_page();
> +	if (!vaddr)
> +		assert_msg(vaddr, "Page allocation Failure");
>   	return report_summary();
>   }

  reply	other threads:[~2024-03-26 14:01 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-03-25 21:36 [kvm-unit-tests RFC PATCH 1/3] x86 EFI: Bypass call to fdt_check_header() Pavan Kumar Paluri
2024-03-25 21:36 ` [kvm-unit-tests RFC PATCH 2/3] x86/efi: Retry call to efi exit boot services Pavan Kumar Paluri
2024-03-26  8:57   ` Andrew Jones
2024-03-26 13:29     ` Paluri, PavanKumar
2024-03-26 13:38   ` Michael Roth
2024-03-26 13:45     ` Paluri, PavanKumar
2024-03-26 13:58       ` Michael Roth
2024-03-25 21:36 ` [kvm-unit-tests RFC PATCH 3/3] x86 AMD SEV-ES: Setup a new page table and install level 1 PTEs Pavan Kumar Paluri
2024-03-26 14:01   ` Tom Lendacky [this message]
2024-03-26 15:35     ` Paluri, PavanKumar
2024-03-26  8:51 ` [kvm-unit-tests RFC PATCH 1/3] x86 EFI: Bypass call to fdt_check_header() Andrew Jones
2024-03-26 13:28   ` Paluri, PavanKumar
2024-03-26 15:30   ` Paluri, PavanKumar

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=71311318-ca6d-47f8-8fe9-807b308f198d@amd.com \
    --to=thomas.lendacky@amd.com \
    --cc=amit.shah@amd.com \
    --cc=andrew.jones@linux.dev \
    --cc=kvm@vger.kernel.org \
    --cc=michael.roth@amd.com \
    --cc=nikos.nikoleris@arm.com \
    --cc=papaluri@amd.com \
    --cc=pbonzini@redhat.com \
    /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.