[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <f27274a9-fc5d-4be3-a364-5f5a471c20bd@redhat.com>
Date: Mon, 11 Mar 2024 15:21:55 +0100
From: Paolo Bonzini <pbonzini@...hat.com>
To: Sean Christopherson <seanjc@...gle.com>
Cc: kvm@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [GIT PULL] KVM: x86: Selftests changes for 6.9
On 3/8/24 23:36, Sean Christopherson wrote:
> Add SEV(-ES) smoke tests, and start building out infrastructure to utilize the
> "core" selftests harness and TAP. In addition to provide TAP output, using the
> infrastructure reduces boilerplate code and allows running all testscases in a
> test, even if a previous testcase fails (compared with today, where a testcase
> failure is terminal for the entire test).
>
> As noted in the PMU pull request, the "Use TAP interface" changes have a few
> conflicts. 3 of 4 are relatively straightforward, but the one in
> userspace_msr_exit_test.c's test_msr_filter_allow() is a pain. At least, I
> thought so as I botched it at least twice. (LOL, make that three times, as I
> just botched my test merge resolution).
>
> The code should end up looking like this:
>
> ---
> KVM_ONE_VCPU_TEST_SUITE(user_msr);
>
> KVM_ONE_VCPU_TEST(user_msr, msr_filter_allow, guest_code_filter_allow)
> {
> struct kvm_vm *vm = vcpu->vm;
> uint64_t cmd;
> int rc;
>
> sync_global_to_guest(vm, fep_available);
>
> rc = kvm_check_cap(KVM_CAP_X86_USER_SPACE_MSR);
> ---
>
> The resolutions I've been using can be found in kvm-x86/next.
>
>
> The following changes since commit db7d6fbc10447090bab8691a907a7c383ec66f58:
>
> KVM: remove unnecessary #ifdef (2024-02-08 08:41:06 -0500)
>
> are available in the Git repository at:
>
> https://github.com/kvm-x86/linux.git tags/kvm-x86-selftests-6.9
>
> for you to fetch changes up to e9da6f08edb0bd4c621165496778d77a222e1174:
>
> KVM: selftests: Explicitly close guest_memfd files in some gmem tests (2024-03-05 13:31:20 -0800)
>
> ----------------------------------------------------------------
> KVM selftests changes for 6.9:
>
> - Add macros to reduce the amount of boilerplate code needed to write "simple"
> selftests, and to utilize selftest TAP infrastructure, which is especially
> beneficial for KVM selftests with multiple testcases.
>
> - Add basic smoke tests for SEV and SEV-ES, along with a pile of library
> support for handling private/encrypted/protected memory.
>
> - Fix benign bugs where tests neglect to close() guest_memfd files.
>
> ----------------------------------------------------------------
Pulled, thanks.
Paolo
> Ackerley Tng (1):
> KVM: selftests: Add a macro to iterate over a sparsebit range
>
> Dongli Zhang (1):
> KVM: selftests: Explicitly close guest_memfd files in some gmem tests
>
> Michael Roth (2):
> KVM: selftests: Make sparsebit structs const where appropriate
> KVM: selftests: Add support for protected vm_vaddr_* allocations
>
> Peter Gonda (5):
> KVM: selftests: Add support for allocating/managing protected guest memory
> KVM: selftests: Explicitly ucall pool from shared memory
> KVM: selftests: Allow tagging protected memory in guest page tables
> KVM: selftests: Add library for creating and interacting with SEV guests
> KVM: selftests: Add a basic SEV smoke test
>
> Sean Christopherson (4):
> KVM: selftests: Move setting a vCPU's entry point to a dedicated API
> KVM: selftests: Extend VM creation's @shape to allow control of VM subtype
> KVM: selftests: Use the SEV library APIs in the intra-host migration test
> KVM: selftests: Add a basic SEV-ES smoke test
>
> Thomas Huth (7):
> KVM: selftests: x86: sync_regs_test: Use vcpu_run() where appropriate
> KVM: selftests: x86: sync_regs_test: Get regs structure before modifying it
> KVM: selftests: Add a macro to define a test with one vcpu
> KVM: selftests: x86: Use TAP interface in the sync_regs test
> KVM: selftests: x86: Use TAP interface in the fix_hypercall test
> KVM: selftests: x86: Use TAP interface in the vmx_pmu_caps test
> KVM: selftests: x86: Use TAP interface in the userspace_msr_exit test
>
> tools/testing/selftests/kvm/Makefile | 2 +
> tools/testing/selftests/kvm/guest_memfd_test.c | 3 +
> .../selftests/kvm/include/aarch64/kvm_util_arch.h | 7 ++
> .../selftests/kvm/include/kvm_test_harness.h | 36 ++++++
> .../testing/selftests/kvm/include/kvm_util_base.h | 61 +++++++++--
> .../selftests/kvm/include/riscv/kvm_util_arch.h | 7 ++
> .../selftests/kvm/include/s390x/kvm_util_arch.h | 7 ++
> tools/testing/selftests/kvm/include/sparsebit.h | 56 +++++++---
> .../selftests/kvm/include/x86_64/kvm_util_arch.h | 23 ++++
> .../selftests/kvm/include/x86_64/processor.h | 8 ++
> tools/testing/selftests/kvm/include/x86_64/sev.h | 107 ++++++++++++++++++
> .../testing/selftests/kvm/lib/aarch64/processor.c | 24 +++-
> tools/testing/selftests/kvm/lib/kvm_util.c | 67 ++++++++++--
> tools/testing/selftests/kvm/lib/riscv/processor.c | 9 +-
> tools/testing/selftests/kvm/lib/s390x/processor.c | 13 ++-
> tools/testing/selftests/kvm/lib/sparsebit.c | 48 ++++----
> tools/testing/selftests/kvm/lib/ucall_common.c | 3 +-
> tools/testing/selftests/kvm/lib/x86_64/processor.c | 45 +++++++-
> tools/testing/selftests/kvm/lib/x86_64/sev.c | 114 +++++++++++++++++++
> .../selftests/kvm/x86_64/fix_hypercall_test.c | 27 +++--
> .../kvm/x86_64/private_mem_conversions_test.c | 2 +
> .../selftests/kvm/x86_64/sev_migrate_tests.c | 60 +++-------
> .../testing/selftests/kvm/x86_64/sev_smoke_test.c | 88 +++++++++++++++
> .../testing/selftests/kvm/x86_64/sync_regs_test.c | 121 +++++++++++++++------
> .../selftests/kvm/x86_64/userspace_msr_exit_test.c | 52 +++------
> .../selftests/kvm/x86_64/vmx_pmu_caps_test.c | 52 ++-------
> 26 files changed, 802 insertions(+), 240 deletions(-)
> create mode 100644 tools/testing/selftests/kvm/include/aarch64/kvm_util_arch.h
> create mode 100644 tools/testing/selftests/kvm/include/kvm_test_harness.h
> create mode 100644 tools/testing/selftests/kvm/include/riscv/kvm_util_arch.h
> create mode 100644 tools/testing/selftests/kvm/include/s390x/kvm_util_arch.h
> create mode 100644 tools/testing/selftests/kvm/include/x86_64/kvm_util_arch.h
> create mode 100644 tools/testing/selftests/kvm/include/x86_64/sev.h
> create mode 100644 tools/testing/selftests/kvm/lib/x86_64/sev.c
> create mode 100644 tools/testing/selftests/kvm/x86_64/sev_smoke_test.c
>
Powered by blists - more mailing lists