All of lore.kernel.org
 help / color / mirror / Atom feed
From: Paolo Bonzini <pbonzini@redhat.com>
To: Michael Roth <michael.roth@amd.com>, linux-kselftest@vger.kernel.org
Cc: kvm@vger.kernel.org, linux-kernel@vger.kernel.org,
	x86@kernel.org, Nathan Tempelman <natet@google.com>,
	Marc Orr <marcorr@google.com>,
	Steve Rutherford <srutherford@google.com>,
	Sean Christopherson <seanjc@google.com>,
	Mingwei Zhang <mizhang@google.com>,
	Brijesh Singh <brijesh.singh@amd.com>,
	Tom Lendacky <thomas.lendacky@amd.com>,
	Varad Gautam <varad.gautam@suse.com>,
	Shuah Khan <shuah@kernel.org>,
	Vitaly Kuznetsov <vkuznets@redhat.com>,
	David Woodhouse <dwmw@amazon.co.uk>,
	Ricardo Koller <ricarkol@google.com>,
	Jim Mattson <jmattson@google.com>, Joerg Roedel <joro@8bytes.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
	"H . Peter Anvin" <hpa@zytor.com>,
	Krish Sadhukhan <krish.sadhukhan@oracle.com>,
	Peter Gonda <pgonda@google.com>
Subject: Re: [PATCH v2 00/13] KVM: selftests: Add tests for SEV and SEV-ES guests
Date: Wed, 22 Dec 2021 15:56:23 +0100	[thread overview]
Message-ID: <c01b0592-9d7b-601d-035b-fa2c308690aa@redhat.com> (raw)
In-Reply-To: <20211216171358.61140-1-michael.roth@amd.com>

On 12/16/21 18:13, Michael Roth wrote:
> These patches and are also available at:
> 
>    https://github.com/mdroth/linux/commits/sev-selftests-v2
> 
> They are based on top of the recent RFC:
> 
>    "KVM: selftests: Add support for test-selectable ucall implementations"
>    https://lore.kernel.org/all/20211210164620.11636-1-michael.roth@amd.com/T/
> 
>    https://github.com/mdroth/linux/commits/sev-selftests-ucall-rfc1
> 
> which provides a new ucall implementation that this series relies on.
> Those patches were in turn based on kvm/next as of 2021-12-10.

Looks good, apart from the cleanups that Peter pointed out in patch 7.

When you send the next version, you can keep it based on the same ucall 
RFC, even if I haven't yet pushed them (which I'll do only after testing 
on s390).

Thanks,

Paolo

> == OVERVIEW ==
> 
> This series introduces a set of memory encryption-related parameter/hooks
> in the core kselftest library, then uses the hooks to implement a small
> library for creating/managing SEV, SEV-ES, and (eventually) SEV-SNP guests.
> This library is then used to implement a basic boot/memory test that's run
> for variants of SEV/SEV-ES guests.
> 
> - Patches 1-8 implement SEV boot tests and should run against existing
>    kernels
> - Patch 9 is a KVM changes that's required to allow SEV-ES/SEV-SNP
>    guests to boot with an externally generated page table, and is a
>    host kernel prequisite for the remaining patches in the series.
> - Patches 10-13 extend the boot tests to cover SEV-ES
> 
> Any review/comments are greatly appreciated!
> 
> v2:
> - rebased on ucall_ops patchset (which is based on kvm/next 2021-12-10)
> - remove SEV-SNP support for now
> - provide encryption bitmap as const* to original rather than as a copy
>    (Mingwei, Paolo)
> - drop SEV-specific synchronization helpers in favor of ucall_ops_halt (Paolo)
> - don't pass around addresses with c-bit included, add them as-needed via
>    addr_gpa2raw() (e.g. when adding PTEs, or initializing initial
>    cr3/vm->pgd) (Paolo)
> - rename lib/sev.c functions for better consistency (Krish)
> - move more test setup code out of main test function and into
>    setup_test_common() (Krish)
> - suppress compiler warnings due to -Waddress-of-packed-member like kernel
>    does
> - don't require SNP support in minimum firmware version detection (Marc)
> - allow SEV device path to be configured via make SEV_PATH= (Marc)
> 
> ----------------------------------------------------------------
> Michael Roth (13):
>        KVM: selftests: move vm_phy_pages_alloc() earlier in file
>        KVM: selftests: sparsebit: add const where appropriate
>        KVM: selftests: add hooks for managing encrypted guest memory
>        KVM: selftests: handle encryption bits in page tables
>        KVM: selftests: add support for encrypted vm_vaddr_* allocations
>        KVM: selftests: ensure ucall_shared_alloc() allocates shared memory
>        KVM: selftests: add library for creating/interacting with SEV guests
>        KVM: selftests: add SEV boot tests
>        KVM: SVM: include CR3 in initial VMSA state for SEV-ES guests
>        KVM: selftests: account for error code in #VC exception frame
>        KVM: selftests: add support for creating SEV-ES guests
>        KVM: selftests: add library for handling SEV-ES-related exits
>        KVM: selftests: add SEV-ES boot tests
> 
>   arch/x86/include/asm/kvm-x86-ops.h                 |   1 +
>   arch/x86/include/asm/kvm_host.h                    |   1 +
>   arch/x86/kvm/svm/svm.c                             |  19 ++
>   arch/x86/kvm/vmx/vmx.c                             |   6 +
>   arch/x86/kvm/x86.c                                 |   1 +
>   tools/testing/selftests/kvm/.gitignore             |   1 +
>   tools/testing/selftests/kvm/Makefile               |  10 +-
>   .../testing/selftests/kvm/include/kvm_util_base.h  |  10 +
>   tools/testing/selftests/kvm/include/sparsebit.h    |  36 +--
>   tools/testing/selftests/kvm/include/x86_64/sev.h   |  44 +++
>   .../selftests/kvm/include/x86_64/sev_exitlib.h     |  14 +
>   tools/testing/selftests/kvm/include/x86_64/svm.h   |  35 +++
>   .../selftests/kvm/include/x86_64/svm_util.h        |   1 +
>   tools/testing/selftests/kvm/lib/kvm_util.c         | 270 ++++++++++++------
>   .../testing/selftests/kvm/lib/kvm_util_internal.h  |  10 +
>   tools/testing/selftests/kvm/lib/sparsebit.c        |  48 ++--
>   tools/testing/selftests/kvm/lib/ucall_common.c     |   4 +-
>   tools/testing/selftests/kvm/lib/x86_64/handlers.S  |   4 +-
>   tools/testing/selftests/kvm/lib/x86_64/processor.c |  16 +-
>   tools/testing/selftests/kvm/lib/x86_64/sev.c       | 252 ++++++++++++++++
>   .../testing/selftests/kvm/lib/x86_64/sev_exitlib.c | 249 ++++++++++++++++
>   .../selftests/kvm/x86_64/sev_all_boot_test.c       | 316 +++++++++++++++++++++
>   22 files changed, 1215 insertions(+), 133 deletions(-)
>   create mode 100644 tools/testing/selftests/kvm/include/x86_64/sev.h
>   create mode 100644 tools/testing/selftests/kvm/include/x86_64/sev_exitlib.h
>   create mode 100644 tools/testing/selftests/kvm/lib/x86_64/sev.c
>   create mode 100644 tools/testing/selftests/kvm/lib/x86_64/sev_exitlib.c
>   create mode 100644 tools/testing/selftests/kvm/x86_64/sev_all_boot_test.c
> 
> 


  parent reply	other threads:[~2021-12-22 14:56 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-12-16 17:13 [PATCH v2 00/13] KVM: selftests: Add tests for SEV and SEV-ES guests Michael Roth
2021-12-16 17:13 ` [PATCH v2 01/13] KVM: selftests: move vm_phy_pages_alloc() earlier in file Michael Roth
2021-12-16 17:13 ` [PATCH v2 02/13] KVM: selftests: sparsebit: add const where appropriate Michael Roth
2021-12-16 17:13 ` [PATCH v2 03/13] KVM: selftests: add hooks for managing encrypted guest memory Michael Roth
2021-12-16 17:13 ` [PATCH v2 04/13] KVM: selftests: handle encryption bits in page tables Michael Roth
2021-12-16 17:13 ` [PATCH v2 05/13] KVM: selftests: add support for encrypted vm_vaddr_* allocations Michael Roth
2021-12-16 17:13 ` [PATCH v2 06/13] KVM: selftests: ensure ucall_shared_alloc() allocates shared memory Michael Roth
2021-12-16 17:13 ` [PATCH v2 07/13] KVM: selftests: add library for creating/interacting with SEV guests Michael Roth
2021-12-16 20:35   ` Peter Gonda
2021-12-17 16:17     ` Michael Roth
2021-12-22 14:52       ` Paolo Bonzini
2021-12-16 17:13 ` [PATCH v2 08/13] KVM: selftests: add SEV boot tests Michael Roth
2021-12-20  1:49   ` Mingwei Zhang
2021-12-21 15:40     ` Michael Roth
2021-12-21 17:26       ` Michael Roth
2021-12-22 14:55       ` Paolo Bonzini
2021-12-16 17:13 ` [PATCH v2 09/13] KVM: SVM: include CR3 in initial VMSA state for SEV-ES guests Michael Roth
2021-12-22 14:25   ` Paolo Bonzini
2021-12-16 17:13 ` [PATCH v2 10/13] KVM: selftests: account for error code in #VC exception frame Michael Roth
2021-12-16 17:13 ` [PATCH v2 11/13] KVM: selftests: add support for creating SEV-ES guests Michael Roth
2021-12-16 17:13 ` [PATCH v2 12/13] KVM: selftests: add library for handling SEV-ES-related exits Michael Roth
2021-12-16 17:13 ` [PATCH v2 13/13] KVM: selftests: add SEV-ES boot tests Michael Roth
2021-12-22 14:56 ` Paolo Bonzini [this message]
2022-01-04 23:41   ` [PATCH v2 00/13] KVM: selftests: Add tests for SEV and SEV-ES guests Michael Roth

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=c01b0592-9d7b-601d-035b-fa2c308690aa@redhat.com \
    --to=pbonzini@redhat.com \
    --cc=bp@alien8.de \
    --cc=brijesh.singh@amd.com \
    --cc=dwmw@amazon.co.uk \
    --cc=hpa@zytor.com \
    --cc=jmattson@google.com \
    --cc=joro@8bytes.org \
    --cc=krish.sadhukhan@oracle.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-kselftest@vger.kernel.org \
    --cc=marcorr@google.com \
    --cc=michael.roth@amd.com \
    --cc=mingo@redhat.com \
    --cc=mizhang@google.com \
    --cc=natet@google.com \
    --cc=pgonda@google.com \
    --cc=ricarkol@google.com \
    --cc=seanjc@google.com \
    --cc=shuah@kernel.org \
    --cc=srutherford@google.com \
    --cc=tglx@linutronix.de \
    --cc=thomas.lendacky@amd.com \
    --cc=varad.gautam@suse.com \
    --cc=vkuznets@redhat.com \
    --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.