lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20230901231330.3608891-1-seanjc@google.com>
Date:   Fri,  1 Sep 2023 16:13:30 -0700
From:   Sean Christopherson <seanjc@...gle.com>
To:     Paolo Bonzini <pbonzini@...hat.com>
Cc:     kvm@...r.kernel.org, linux-kernel@...r.kernel.org,
        Sean Christopherson <seanjc@...gle.com>
Subject: [kvm-unit-tests GIT PULL] x86: Fixes, cleanups and new testscases

This is essentially v2 of the previous attempt[*], sans the fix for exectuable
stack warnings (now fixed for all architectures), plus fixes for nVMX testcases
related to 64-bit hosts (these *just* got posted, but it's not like anyone else
is reviewing KUT x86 changes these days, so I don't see any point in waiting).

There's one non-x86 change to fix a bug in processing "check" entries in
unittests.cfg files.  The majority of the x86 changes revolve around nSVM, PMU,
and emulator tests.

[*] https://lore.kernel.org/all/20230622211440.2595272-1-seanjc@google.com

The following changes since commit e8f8554f810821e37f05112a46ae9775a029b5d1:

  Makefile: Move -no-pie from CFLAGS into LDFLAGS (2023-08-22 11:26:00 +0200)

are available in the Git repository at:

  https://github.com/kvm-x86/kvm-unit-tests.git tags/kvm-x86-2023.09.01

for you to fetch changes up to d4fba74a42d222d2cfdde65351fac3531a1d6f5c:

  nVMX: Fix the noncanonical HOST_RIP testcase (2023-09-01 15:58:19 -0700)

----------------------------------------------------------------
x86 fixes, cleanups, and new testcases, and a few generic changes

 - Fix a bug in runtime.bash that caused it to mishandle "check" strings with
   multiple entries, e.g. a test that depends on multiple module params
 - Make the PMU tests depend on vPMU support being enabled in KVM
 - Fix PMU's forced emulation test on CPUs with full-width writes
 - Add a PMU testcase for measuring TSX transactional cycles
 - Nested SVM testcase for virtual NMIs
 - Move a pile of code to ASM_TRY() and "safe" helpers
 - Set up the guest stack in the LBRV tests so that the tests don't fail if the
   compiler decides to generate function calls in guest code
 - Ignore the "mispredict" flag in nSVM's LBRV tests to fix false failures
 - Clean up usage of helpers that disable interrupts, e.g. stop inserting
   unnecessary nops
 - Add helpers to dedup code for programming the APIC timer
 - Fix a variety of bugs in nVMX testcases related to being a 64-bit host

----------------------------------------------------------------
Like Xu (2):
      x86/pmu: Add Intel Guest Transactional (commited) cycles testcase
      x86/pmu: Wrap the written counter value with gp_counter_width

Mathias Krause (15):
      x86: Drop types.h
      x86: Use symbolic names in exception_mnemonic()
      x86: Add vendor specific exception vectors
      x86/cet: Use symbolic name for #CP
      x86/access: Use 'bool' type as defined via libcflat.h
      x86/run_in_user: Preserve exception handler
      x86/run_in_user: Relax register constraints of inline asm
      x86/run_in_user: Reload SS after successful return
      x86/fault_test: Preserve exception handler
      x86/emulator64: Relax register constraints for usr_gs_mov()
      x86/emulator64: Switch test_sreg() to ASM_TRY()
      x86/emulator64: Add non-null selector test
      x86/emulator64: Switch test_jmp_noncanonical() to ASM_TRY()
      x86/emulator64: Switch test_mmx_movq_mf() to ASM_TRY()
      x86/emulator64: Test non-canonical memory access exceptions

Maxim Levitsky (8):
      x86: replace irq_{enable|disable}() with sti()/cli()
      x86: introduce sti_nop() and sti_nop_cli()
      x86: add few helper functions for apic local timer
      x86: nSVM: Remove nop after stgi/clgi
      x86: nSVM: make svm_intr_intercept_mix_if/gif test a bit more robust
      x86: nSVM: use apic_start_timer/apic_stop_timer instead of open coding it
      x86: nSVM: Add nested shutdown interception test
      x86: nSVM: Remove defunct get_npt_pte() declaration

Santosh Shukla (1):
      x86: nSVM: Add support for VNMI test

Sean Christopherson (21):
      nSVM: Add helper to report fatal errors in guest
      x86: Add macros to wrap ASM_TRY() for single instructions
      x86: Convert inputs-only "safe" instruction helpers to asm_safe()
      x86: Add macros to wrap ASM_TRY() for single instructions with output(s)
      x86: Move invpcid_safe() to processor.h and convert to asm_safe()
      x86: Move XSETBV and XGETBV "safe" helpers to processor.h
      x86: nSVM: Set up a guest stack in LBRV tests
      lib: Expose a subset of VMX's assertion macros
      x86: Add defines for the various LBR record bit definitions
      x86: nSVM: Ignore mispredict bit in LBR records
      x86: nSVM: Replace check_dbgctl() with TEST_EXPECT_EQ() in LBRV test
      x86: nSVM: Print out RIP and LBRs from VMCB if LBRV guest test fails
      runtime: Convert "check" from string to array so that iterating works
      x86/pmu: Make PMU testcases dependent on vPMU being enabled in KVM
      nVMX: Test CR4.PCIDE can be set for 64-bit host iff PCID is supported
      nVMX: Assert CR4.PAE is set when testing 64-bit host
      nVMX: Assert that the test is configured for 64-bit mode
      nVMX: Rename vmlaunch_succeeds() to vmlaunch()
      nVMX: Shuffle test_host_addr_size() tests to "restore" CR4 and RIP
      nVMX: Drop testcase that falsely claims to verify vmcs.HOST_RIP[63:32]
      nVMX: Fix the noncanonical HOST_RIP testcase

 lib/util.h                |  31 ++++
 lib/x86/apic.c            |  38 ++++
 lib/x86/apic.h            |   6 +
 lib/x86/desc.c            |  43 +++--
 lib/x86/desc.h            |  48 ++++++
 lib/x86/fault_test.c      |   4 +-
 lib/x86/msr.h             |  11 ++
 lib/x86/processor.h       | 137 +++++++++------
 lib/x86/smp.c             |   2 +-
 lib/x86/usermode.c        |  38 ++--
 scripts/runtime.bash      |   1 +
 x86/access.c              |  11 +-
 x86/apic.c                |   6 +-
 x86/asyncpf.c             |   6 +-
 x86/cet.c                 |   2 +-
 x86/cmpxchg8b.c           |   1 -
 x86/emulator.c            |   1 -
 x86/emulator64.c          | 105 +++++++-----
 x86/eventinj.c            |  22 +--
 x86/hyperv_connections.c  |   2 +-
 x86/hyperv_stimer.c       |   4 +-
 x86/hyperv_synic.c        |   6 +-
 x86/intel-iommu.c         |   2 +-
 x86/ioapic.c              |  15 +-
 x86/memory.c              |  60 ++-----
 x86/pcid.c                |   8 -
 x86/pmu.c                 |  52 +++++-
 x86/pmu_pebs.c            |   1 -
 x86/svm.c                 |  17 +-
 x86/svm.h                 |  11 +-
 x86/svm_tests.c           | 429 +++++++++++++++++++++++-----------------------
 x86/taskswitch2.c         |   4 +-
 x86/tscdeadline_latency.c |   4 +-
 x86/types.h               |  21 ---
 x86/unittests.cfg         |   7 +-
 x86/vmexit.c              |  18 +-
 x86/vmx.h                 |  32 +---
 x86/vmx_tests.c           | 170 +++++++++---------
 x86/xsave.c               |  31 +---
 39 files changed, 779 insertions(+), 628 deletions(-)
 delete mode 100644 x86/types.h

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ