mbox series

[00/10] KVM: selftests: Add KVM_SET_MEMORY_REGION tests

Message ID 20200410231707.7128-1-sean.j.christopherson@intel.com (mailing list archive)
Headers show
Series KVM: selftests: Add KVM_SET_MEMORY_REGION tests | expand

Message

Sean Christopherson April 10, 2020, 11:16 p.m. UTC
This is v2-ish of my series to add a "delete" testcase[1], and v5.1 of
Wainer's series to add a "max" testcase[2].

I've only tested on x86_64.  I fudged compile testing on !x86_64 by
inverting the ifdefs, e.g. to squish unused var warnings, but by no means
is the code actually tested on other architectures.

I kept Andrew's review for the "max" test.  Other than the 1MB->2MB
change (see below), it was basically a straight copy-paste of code.

v1->v2 of delete:
  - Drop patch to expose primary memslot. [Peter]
  - Add explicit synchronization to MOVE and DELETE tests. [Peter]
  - Use list.h instead of open coding linked lists. [Peter]
  - Clean up the code and separate the testcases into separate functions.
  - Expand GUEST_ASSERT() to allow passing a value back to the host for
    printing.
  - Move to common KVM, with ifdefs to hide the x86_64-only stuff (which
    is a lot at this point).
  - Do KVM_SET_NR_MMU_PAGES in the "zero" testcase to get less obscure
    behavior for KVM_RUN. [Christian]

v5.1 of max:
  - Fix a whitespace issue in vm_get_fd(). [checkpatch]
  - Move the code to set_memory_region_test.  The only _intended_
    functional change is to create 2MB regions instead of 1MB regions.
    The only motivation for doing so was to reuse an existing define in
    set_memory_region_test.

[1] https://lkml.kernel.org/r/20200320205546.2396-1-sean.j.christopherson@intel.com
[2] https://lkml.kernel.org/r/20200409220905.26573-1-wainersm@redhat.com

Sean Christopherson (8):
  KVM: selftests: Take vcpu pointer instead of id in vm_vcpu_rm()
  KVM: selftests: Use kernel's list instead of homebrewed replacement
  KVM: selftests: Add util to delete memory region
  KVM: selftests: Add GUEST_ASSERT variants to pass values to host
  KVM: sefltests: Add explicit synchronization to move mem region test
  KVM: selftests: Add "delete" testcase to set_memory_region_test
  KVM: selftests: Add "zero" testcase to set_memory_region_test
  KVM: selftests: Make set_memory_region_test common to all
    architectures

Wainer dos Santos Moschetta (2):
  selftests: kvm: Add vm_get_fd() in kvm_util
  selftests: kvm: Add testcase for creating max number of memslots

 tools/testing/selftests/kvm/.gitignore        |   2 +-
 tools/testing/selftests/kvm/Makefile          |   4 +-
 .../testing/selftests/kvm/include/kvm_util.h  |  28 +-
 tools/testing/selftests/kvm/lib/kvm_util.c    | 154 +++----
 .../selftests/kvm/lib/kvm_util_internal.h     |   8 +-
 .../selftests/kvm/lib/s390x/processor.c       |   5 +-
 .../selftests/kvm/set_memory_region_test.c    | 403 ++++++++++++++++++
 .../kvm/x86_64/set_memory_region_test.c       | 141 ------
 8 files changed, 520 insertions(+), 225 deletions(-)
 create mode 100644 tools/testing/selftests/kvm/set_memory_region_test.c
 delete mode 100644 tools/testing/selftests/kvm/x86_64/set_memory_region_test.c

Comments

Paolo Bonzini April 15, 2020, 3:40 p.m. UTC | #1
On 11/04/20 01:16, Sean Christopherson wrote:
> This is v2-ish of my series to add a "delete" testcase[1], and v5.1 of
> Wainer's series to add a "max" testcase[2].
> 
> I've only tested on x86_64.  I fudged compile testing on !x86_64 by
> inverting the ifdefs, e.g. to squish unused var warnings, but by no means
> is the code actually tested on other architectures.
> 
> I kept Andrew's review for the "max" test.  Other than the 1MB->2MB
> change (see below), it was basically a straight copy-paste of code.
> 
> v1->v2 of delete:
>   - Drop patch to expose primary memslot. [Peter]
>   - Add explicit synchronization to MOVE and DELETE tests. [Peter]
>   - Use list.h instead of open coding linked lists. [Peter]
>   - Clean up the code and separate the testcases into separate functions.
>   - Expand GUEST_ASSERT() to allow passing a value back to the host for
>     printing.
>   - Move to common KVM, with ifdefs to hide the x86_64-only stuff (which
>     is a lot at this point).
>   - Do KVM_SET_NR_MMU_PAGES in the "zero" testcase to get less obscure
>     behavior for KVM_RUN. [Christian]
> 
> v5.1 of max:
>   - Fix a whitespace issue in vm_get_fd(). [checkpatch]
>   - Move the code to set_memory_region_test.  The only _intended_
>     functional change is to create 2MB regions instead of 1MB regions.
>     The only motivation for doing so was to reuse an existing define in
>     set_memory_region_test.
> 
> [1] https://lkml.kernel.org/r/20200320205546.2396-1-sean.j.christopherson@intel.com
> [2] https://lkml.kernel.org/r/20200409220905.26573-1-wainersm@redhat.com
> 
> Sean Christopherson (8):
>   KVM: selftests: Take vcpu pointer instead of id in vm_vcpu_rm()
>   KVM: selftests: Use kernel's list instead of homebrewed replacement
>   KVM: selftests: Add util to delete memory region
>   KVM: selftests: Add GUEST_ASSERT variants to pass values to host
>   KVM: sefltests: Add explicit synchronization to move mem region test
>   KVM: selftests: Add "delete" testcase to set_memory_region_test
>   KVM: selftests: Add "zero" testcase to set_memory_region_test
>   KVM: selftests: Make set_memory_region_test common to all
>     architectures
> 
> Wainer dos Santos Moschetta (2):
>   selftests: kvm: Add vm_get_fd() in kvm_util
>   selftests: kvm: Add testcase for creating max number of memslots
> 
>  tools/testing/selftests/kvm/.gitignore        |   2 +-
>  tools/testing/selftests/kvm/Makefile          |   4 +-
>  .../testing/selftests/kvm/include/kvm_util.h  |  28 +-
>  tools/testing/selftests/kvm/lib/kvm_util.c    | 154 +++----
>  .../selftests/kvm/lib/kvm_util_internal.h     |   8 +-
>  .../selftests/kvm/lib/s390x/processor.c       |   5 +-
>  .../selftests/kvm/set_memory_region_test.c    | 403 ++++++++++++++++++
>  .../kvm/x86_64/set_memory_region_test.c       | 141 ------
>  8 files changed, 520 insertions(+), 225 deletions(-)
>  create mode 100644 tools/testing/selftests/kvm/set_memory_region_test.c
>  delete mode 100644 tools/testing/selftests/kvm/x86_64/set_memory_region_test.c
> 

Queued, thanks -- while keeping the zero region test x86-only.

Paolo