mbox series

[kvm-unit-tests,v3,00/27] kvm-unit-tests: set of fixes and new tests

Message ID 20221122161152.293072-1-mlevitsk@redhat.com (mailing list archive)
Headers show
Series kvm-unit-tests: set of fixes and new tests | expand

Message

Maxim Levitsky Nov. 22, 2022, 4:11 p.m. UTC
This is set of fixes and new unit tests that I developed for the
KVM unit tests.

I also did some work to separate the SVM code into a minimal
support library so that you could use it from an arbitrary test.

V2:

  - addressed review feedback, and futher cleaned up the svm tests
    set to use less global variables
    (the patches are large, but each changes one thing all over the tests, so hopefully not hard to review).

Best regards,
    Maxim Levitsky

Maxim Levitsky (27):
  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
  svm: remove nop after stgi/clgi
  svm: make svm_intr_intercept_mix_if/gif test a bit more robust
  svm: use apic_start_timer/apic_stop_timer instead of open coding it
  x86: Add test for #SMI during interrupt window
  x86: Add a simple test for SYSENTER instruction.
  svm: add simple nested shutdown test.
  SVM: add two tests for exitintinto on exception
  lib: Add random number generator
  x86: add IPI stress test
  svm: remove get_npt_pte extern
  svm: move svm spec definitions to lib/x86/svm.h
  svm: move some svm support functions into lib/x86/svm_lib.h
  svm: move setup_svm() to svm_lib.c
  svm: correctly skip if NPT not supported
  svm: move vmcb_ident to svm_lib.c
  svm: rewerite vm entry macros
  svm: move v2 tests run into test_run
  svm: cleanup the default_prepare
  svm: introduce svm_vcpu
  svm: introduce struct svm_test_context
  svm: use svm_test_context in v2 tests
  svm: move nested vcpu to test context
  svm: move test_guest_func to test context
  x86: ipi_stress: add optional SVM support

 Makefile                  |    3 +-
 README.md                 |    1 +
 lib/prng.c                |   41 ++
 lib/prng.h                |   23 +
 lib/x86/apic.c            |   38 ++
 lib/x86/apic.h            |    6 +
 lib/x86/processor.h       |   39 +-
 lib/x86/random.c          |   33 +
 lib/x86/random.h          |   17 +
 lib/x86/smp.c             |    2 +-
 lib/x86/svm.h             |  367 +++++++++++
 lib/x86/svm_lib.c         |  179 ++++++
 lib/x86/svm_lib.h         |  151 +++++
 scripts/arch-run.bash     |    2 +-
 x86/Makefile.common       |    5 +-
 x86/Makefile.x86_64       |    5 +
 x86/apic.c                |    6 +-
 x86/asyncpf.c             |    6 +-
 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/ipi_stress.c          |  244 +++++++
 x86/pmu.c                 |    4 +-
 x86/smm_int_window.c      |  118 ++++
 x86/svm.c                 |  341 ++--------
 x86/svm.h                 |  495 +-------------
 x86/svm_npt.c             |   81 ++-
 x86/svm_tests.c           | 1278 ++++++++++++++++++++++---------------
 x86/sysenter.c            |  203 ++++++
 x86/taskswitch2.c         |    4 +-
 x86/tscdeadline_latency.c |    4 +-
 x86/unittests.cfg         |   20 +
 x86/vmexit.c              |   18 +-
 x86/vmx_tests.c           |   47 +-
 37 files changed, 2454 insertions(+), 1378 deletions(-)
 create mode 100644 lib/prng.c
 create mode 100644 lib/prng.h
 create mode 100644 lib/x86/random.c
 create mode 100644 lib/x86/random.h
 create mode 100644 lib/x86/svm.h
 create mode 100644 lib/x86/svm_lib.c
 create mode 100644 lib/x86/svm_lib.h
 create mode 100644 x86/ipi_stress.c
 create mode 100644 x86/smm_int_window.c
 create mode 100644 x86/sysenter.c

Comments

Sean Christopherson June 7, 2023, 11:25 p.m. UTC | #1
On Tue, 22 Nov 2022 18:11:25 +0200, Maxim Levitsky wrote:
> This is set of fixes and new unit tests that I developed for the
> KVM unit tests.
> 
> I also did some work to separate the SVM code into a minimal
> support library so that you could use it from an arbitrary test.
> 
> V2:
> 
> [...]

Applied select patches to kvm-x86 next, mostly things that are smallish and
straightforward.

Please, please split all of this stuff into more manageable series, with
one theme per series.  Even with the patches I applied out of the way, there
are at least 4 or 5 distinct series here.

[01/27] x86: replace irq_{enable|disable}() with sti()/cli()
        https://github.com/kvm-x86/kvm-unit-tests/commit/ed31b56333aa
[02/27] x86: introduce sti_nop() and sti_nop_cli()
        https://github.com/kvm-x86/kvm-unit-tests/commit/a159f4c91608
[03/27] x86: add few helper functions for apic local timer
        https://github.com/kvm-x86/kvm-unit-tests/commit/7a507c9f5b74
[04/27] svm: remove nop after stgi/clgi
        https://github.com/kvm-x86/kvm-unit-tests/commit/783f817a17f1
[05/27] svm: make svm_intr_intercept_mix_if/gif test a bit more robust
        https://github.com/kvm-x86/kvm-unit-tests/commit/d0ffdee8f95b
[06/27] svm: use apic_start_timer/apic_stop_timer instead of open coding it
        https://github.com/kvm-x86/kvm-unit-tests/commit/2e4e8a4fe921
[09/27] svm: add simple nested shutdown test.
        https://github.com/kvm-x86/kvm-unit-tests/commit/e5bedc838c3b

[13/27] svm: remove get_npt_pte extern
        https://github.com/kvm-x86/kvm-unit-tests/commit/cc15e55699e9

--
https://github.com/kvm-x86/kvm-unit-tests/tree/next