mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH 0/5] KVM: selftests: Introduce vcpu_arch_put_guest()
@ 2024-03-14 18:54 Sean Christopherson
  2024-03-14 18:54 ` [PATCH 1/5] KVM: selftests: Provide a global pseudo-RNG instance for all tests Sean Christopherson
                   ` (5 more replies)
  0 siblings, 6 replies; 7+ messages in thread
From: Sean Christopherson @ 2024-03-14 18:54 UTC (permalink / raw)
  To: Paolo Bonzini, Sean Christopherson; +Cc: kvm, linux-kernel

The end goal of this series is to add a regression test for commit
910c57dfa4d1 ("KVM: x86: Mark target gfn of emulated atomic instruction
as dirty"), *without* polluting the common dirty_log_test.c code with
gory x86 details.

The regression test requires forcing KVM to emulate a guest atomic RMW
access, which is done via a magic instruction prefix/opcode that is
guarded by an off-by-default KVM module param.

To allow x86 to (a) detect the param, (b) shove in the unique instruction,
and (c) do all of that conditionally so that selftests doesn't test _only_
the forced emulation path, this series provides a pseudo-RNG instance for
all tests, and a new arch hook for doing "interesting" guest writes
(vcpu_arch_put_guest()).

Tested on x86 and ARM, compile tested on s390 and RISC-V.

Sean Christopherson (5):
  KVM: selftests: Provide a global pseudo-RNG instance for all tests
  KVM: selftests: Provide an API for getting a random bool from an RNG
  KVM: selftests: Add global snapshot of
    kvm_is_forced_emulation_enabled()
  KVM: selftests: Add vcpu_arch_put_guest() to do writes from guest code
  KVM: selftests: Randomly force emulation on x86 writes from guest code

 .../selftests/kvm/dirty_log_perf_test.c       |  9 ++++----
 tools/testing/selftests/kvm/dirty_log_test.c  | 22 ++++--------------
 .../selftests/kvm/include/kvm_util_base.h     |  3 +++
 .../testing/selftests/kvm/include/memstress.h |  1 -
 .../testing/selftests/kvm/include/test_util.h | 19 +++++++++++++++
 .../kvm/include/x86_64/kvm_util_arch.h        | 23 +++++++++++++++++++
 tools/testing/selftests/kvm/lib/kvm_util.c    |  9 ++++++++
 tools/testing/selftests/kvm/lib/memstress.c   | 10 ++------
 .../selftests/kvm/lib/x86_64/processor.c      |  3 +++
 .../selftests/kvm/x86_64/pmu_counters_test.c  |  3 ---
 .../kvm/x86_64/userspace_msr_exit_test.c      | 10 ++------
 .../selftests/kvm/x86_64/xen_shinfo_test.c    |  5 ++--
 12 files changed, 72 insertions(+), 45 deletions(-)


base-commit: e9a2bba476c8332ed547fce485c158d03b0b9659
-- 
2.44.0.291.gc1ea87d7ee-goog


^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2024-04-29 21:02 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-03-14 18:54 [PATCH 0/5] KVM: selftests: Introduce vcpu_arch_put_guest() Sean Christopherson
2024-03-14 18:54 ` [PATCH 1/5] KVM: selftests: Provide a global pseudo-RNG instance for all tests Sean Christopherson
2024-03-14 18:54 ` [PATCH 2/5] KVM: selftests: Provide an API for getting a random bool from an RNG Sean Christopherson
2024-03-14 18:54 ` [PATCH 3/5] KVM: selftests: Add global snapshot of kvm_is_forced_emulation_enabled() Sean Christopherson
2024-03-14 18:54 ` [PATCH 4/5] KVM: selftests: Add vcpu_arch_put_guest() to do writes from guest code Sean Christopherson
2024-03-14 18:54 ` [PATCH 5/5] KVM: selftests: Randomly force emulation on x86 " Sean Christopherson
2024-04-29 20:45 ` [PATCH 0/5] KVM: selftests: Introduce vcpu_arch_put_guest() Sean Christopherson

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®