Re: [GIT PULL] KVM: x86: Selftests changes for 6.6

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Aug 30, 2023 at 2:07 AM Sean Christopherson <seanjc@xxxxxxxxxx> wrote:
>
> Selftests changes for 6.6.  The big highlight (and really the highlight of all
> the x86 pull requests IMO) is the addition of printf() support in guest code,
> courtesy of Aaron.
>
> Speaking of which, the vast majority of this has been merged into the s390 tree,
> i.e. if you do the s390 pull request first you'll already have most of this.
> The immutable tag I created has waaaay more stuff than was strictly needed by
> the s390 folks, but I forgot to create the tag earlier and I wasn't sure if
> they had already merged kvm-x86/selftests, so I went with the approach I was
> most confident wouldn't throw a wrench in s390 or delay their pull request, even
> though the result is rather gross.

Pulling this first for exactly this reason, thanks.

Paolo

> The following changes since commit fdf0eaf11452d72945af31804e2a1048ee1b574c:
>
>   Linux 6.5-rc2 (2023-07-16 15:10:37 -0700)
>
> are available in the Git repository at:
>
>   https://github.com/kvm-x86/linux.git tags/kvm-x86-selftests-6.6
>
> for you to fetch changes up to c92b922a8c526e1bb11945a703cba9f85976de7e:
>
>   KVM: x86: Update MAINTAINTERS to include selftests (2023-08-25 09:04:34 -0700)
>
> ----------------------------------------------------------------
> KVM: x86: Selftests changes for 6.6:
>
>  - Add testcases to x86's sync_regs_test for detecting KVM TOCTOU bugs
>
>  - Add support for printf() in guest code and covert all guest asserts to use
>    printf-based reporting
>
>  - Clean up the PMU event filter test and add new testcases
>
>  - Include x86 selftests in the KVM x86 MAINTAINERS entry
>
> ----------------------------------------------------------------
> Aaron Lewis (5):
>       KVM: selftests: Add strnlen() to the string overrides
>       KVM: selftests: Add guest_snprintf() to KVM selftests
>       KVM: selftests: Add additional pages to the guest to accommodate ucall
>       KVM: selftests: Add string formatting options to ucall
>       KVM: selftests: Add a selftest for guest prints and formatted asserts
>
> Bibo Mao (1):
>       KVM: selftests: use unified time type for comparison
>
> Jinrong Liang (6):
>       KVM: selftests: Add x86 properties for Intel PMU in processor.h
>       KVM: selftests: Drop the return of remove_event()
>       KVM: selftests: Introduce "struct __kvm_pmu_event_filter" to manipulate filter
>       KVM: selftests: Add test cases for unsupported PMU event filter input values
>       KVM: selftests: Test if event filter meets expectations on fixed counters
>       KVM: selftests: Test gp event filters don't affect fixed event filters
>
> Michal Luczaj (4):
>       KVM: x86: Fix KVM_CAP_SYNC_REGS's sync_regs() TOCTOU issues
>       KVM: selftests: Extend x86's sync_regs_test to check for CR4 races
>       KVM: selftests: Extend x86's sync_regs_test to check for event vector races
>       KVM: selftests: Extend x86's sync_regs_test to check for exception races
>
> Minjie Du (1):
>       KVM: selftests: Remove superfluous variable assignment
>
> Sean Christopherson (33):
>       KVM: selftests: Make TEST_ASSERT_EQ() output look like normal TEST_ASSERT()
>       KVM: selftests: Add a shameful hack to preserve/clobber GPRs across ucall
>       KVM: selftests: Add formatted guest assert support in ucall framework
>       KVM: selftests: Add arch ucall.h and inline simple arch hooks
>       KVM: selftests: Add #define of expected KVM exit reason for ucall
>       KVM: selftests: Convert aarch_timer to printf style GUEST_ASSERT
>       KVM: selftests: Convert debug-exceptions to printf style GUEST_ASSERT
>       KVM: selftests: Convert ARM's hypercalls test to printf style GUEST_ASSERT
>       KVM: selftests: Convert ARM's page fault test to printf style GUEST_ASSERT
>       KVM: selftests: Convert ARM's vGIC IRQ test to printf style GUEST_ASSERT
>       KVM: selftests: Convert the memslot performance test to printf guest asserts
>       KVM: selftests: Convert s390's memop test to printf style GUEST_ASSERT
>       KVM: selftests: Convert s390's tprot test to printf style GUEST_ASSERT
>       KVM: selftests: Convert set_memory_region_test to printf-based GUEST_ASSERT
>       KVM: selftests: Convert steal_time test to printf style GUEST_ASSERT
>       KVM: selftests: Convert x86's CPUID test to printf style GUEST_ASSERT
>       KVM: selftests: Convert the Hyper-V extended hypercalls test to printf asserts
>       KVM: selftests: Convert the Hyper-V feature test to printf style GUEST_ASSERT
>       KVM: selftests: Convert x86's KVM paravirt test to printf style GUEST_ASSERT
>       KVM: selftests: Convert the MONITOR/MWAIT test to use printf guest asserts
>       KVM: selftests: Convert x86's nested exceptions test to printf guest asserts
>       KVM: selftests: Convert x86's set BSP ID test to printf style guest asserts
>       KVM: selftests: Convert the nSVM software interrupt test to printf guest asserts
>       KVM: selftests: Convert x86's TSC MSRs test to use printf guest asserts
>       KVM: selftests: Convert the x86 userspace I/O test to printf guest assert
>       KVM: selftests: Convert VMX's PMU capabilities test to printf guest asserts
>       KVM: selftests: Convert x86's XCR0 test to use printf-based guest asserts
>       KVM: selftests: Rip out old, param-based guest assert macros
>       KVM: selftests: Print out guest RIP on unhandled exception
>       KVM: selftests: Use GUEST_FAIL() in ARM's arch timer helpers
>       KVM: selftests: Reload "good" vCPU state if vCPU hits shutdown
>       KVM: selftests: Explicit set #UD when *potentially* injecting exception
>       KVM: x86: Update MAINTAINTERS to include selftests
>
> Thomas Huth (1):
>       KVM: selftests: Rename the ASSERT_EQ macro
>
>  MAINTAINERS                                        |   2 +
>  arch/x86/kvm/x86.c                                 |  13 +-
>  tools/testing/selftests/kvm/Makefile               |   6 +
>  .../selftests/kvm/aarch64/aarch32_id_regs.c        |   8 +-
>  tools/testing/selftests/kvm/aarch64/arch_timer.c   |  22 +-
>  .../selftests/kvm/aarch64/debug-exceptions.c       |   8 +-
>  tools/testing/selftests/kvm/aarch64/hypercalls.c   |  20 +-
>  .../selftests/kvm/aarch64/page_fault_test.c        |  17 +-
>  tools/testing/selftests/kvm/aarch64/vgic_irq.c     |   3 +-
>  tools/testing/selftests/kvm/guest_print_test.c     | 219 ++++++++++++++
>  .../selftests/kvm/include/aarch64/arch_timer.h     |  12 +-
>  .../testing/selftests/kvm/include/aarch64/ucall.h  |  20 ++
>  tools/testing/selftests/kvm/include/riscv/ucall.h  |  20 ++
>  tools/testing/selftests/kvm/include/s390x/ucall.h  |  19 ++
>  tools/testing/selftests/kvm/include/test_util.h    |  18 +-
>  tools/testing/selftests/kvm/include/ucall_common.h |  98 +++----
>  .../selftests/kvm/include/x86_64/processor.h       |   5 +
>  tools/testing/selftests/kvm/include/x86_64/ucall.h |  13 +
>  tools/testing/selftests/kvm/kvm_page_table_test.c  |   8 +-
>  tools/testing/selftests/kvm/lib/aarch64/ucall.c    |  11 +-
>  tools/testing/selftests/kvm/lib/guest_sprintf.c    | 307 ++++++++++++++++++++
>  tools/testing/selftests/kvm/lib/kvm_util.c         |   6 +-
>  tools/testing/selftests/kvm/lib/riscv/ucall.c      |  11 -
>  tools/testing/selftests/kvm/lib/s390x/ucall.c      |  10 -
>  tools/testing/selftests/kvm/lib/sparsebit.c        |   1 -
>  tools/testing/selftests/kvm/lib/string_override.c  |   9 +
>  tools/testing/selftests/kvm/lib/ucall_common.c     |  44 +++
>  tools/testing/selftests/kvm/lib/x86_64/processor.c |  18 +-
>  tools/testing/selftests/kvm/lib/x86_64/ucall.c     |  36 ++-
>  .../testing/selftests/kvm/max_guest_memory_test.c  |   2 +-
>  tools/testing/selftests/kvm/memslot_perf_test.c    |   4 +-
>  tools/testing/selftests/kvm/s390x/cmma_test.c      |  62 ++--
>  tools/testing/selftests/kvm/s390x/memop.c          |  13 +-
>  tools/testing/selftests/kvm/s390x/tprot.c          |  11 +-
>  .../testing/selftests/kvm/set_memory_region_test.c |  21 +-
>  tools/testing/selftests/kvm/steal_time.c           |  20 +-
>  tools/testing/selftests/kvm/x86_64/cpuid_test.c    |  12 +-
>  .../kvm/x86_64/dirty_log_page_splitting_test.c     |  18 +-
>  .../kvm/x86_64/exit_on_emulation_failure_test.c    |   2 +-
>  .../kvm/x86_64/hyperv_extended_hypercalls.c        |   3 +-
>  .../testing/selftests/kvm/x86_64/hyperv_features.c |  29 +-
>  tools/testing/selftests/kvm/x86_64/kvm_pv_test.c   |   8 +-
>  .../selftests/kvm/x86_64/monitor_mwait_test.c      |  35 ++-
>  .../selftests/kvm/x86_64/nested_exceptions_test.c  |  16 +-
>  .../selftests/kvm/x86_64/pmu_event_filter_test.c   | 317 +++++++++++++++------
>  .../selftests/kvm/x86_64/recalc_apic_map_test.c    |   6 +-
>  .../testing/selftests/kvm/x86_64/set_boot_cpu_id.c |   6 +-
>  .../kvm/x86_64/svm_nested_soft_inject_test.c       |  22 +-
>  .../testing/selftests/kvm/x86_64/sync_regs_test.c  | 132 +++++++++
>  tools/testing/selftests/kvm/x86_64/tsc_msrs_test.c |  34 +--
>  .../selftests/kvm/x86_64/userspace_io_test.c       |  10 +-
>  .../vmx_exception_with_invalid_guest_state.c       |   2 +-
>  .../selftests/kvm/x86_64/vmx_pmu_caps_test.c       |  31 +-
>  .../selftests/kvm/x86_64/xapic_state_test.c        |   8 +-
>  .../testing/selftests/kvm/x86_64/xcr0_cpuid_test.c |  29 +-
>  .../testing/selftests/kvm/x86_64/xen_vmcall_test.c |  20 +-
>  56 files changed, 1389 insertions(+), 468 deletions(-)
>  create mode 100644 tools/testing/selftests/kvm/guest_print_test.c
>  create mode 100644 tools/testing/selftests/kvm/include/aarch64/ucall.h
>  create mode 100644 tools/testing/selftests/kvm/include/riscv/ucall.h
>  create mode 100644 tools/testing/selftests/kvm/include/s390x/ucall.h
>  create mode 100644 tools/testing/selftests/kvm/include/x86_64/ucall.h
>  create mode 100644 tools/testing/selftests/kvm/lib/guest_sprintf.c
>





[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux