[kvm-unit-tests PATCH v5 0/8] Move npt test cases and NPT code improvements

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

 



If __setup_vm() is changed to setup_vm(), KUT will build tests with PT_USER_MASK
set on all PTEs. It is a better idea to move nNPT tests to their own file so
that tests don't need to fiddle with page tables midway.

The quick approach to do this would be to turn the current main into a small
helper, without calling __setup_vm() from helper.

setup_mmu_range() function in vm.c was modified to allocate new user pages to
implement nested page table.

Current implementation of nested page table does the page table build up
statically with 2048 PTEs and one pml4 entry. With newly implemented routine,
nested page table can be implemented dynamically based on the RAM size of VM
which enables us to have separate memory ranges to test various npt test cases.

Based on this implementation, minimal changes were required to be done in
below mentioned existing APIs:
npt_get_pde(), npt_get_pte(), npt_get_pdpe().

v1 -> v2
Added new patch for building up a nested page table dynamically and did minimal
changes required to make it adaptable with old test cases.

v2 -> v3
Added new patch to change setup_mmu_range to use it in implementation of
nested page table.
Added new patches to correct indentation errors in svm.c, svm_npt.c and
svm_tests.c.
Used scripts/Lindent from linux source code to fix indentation errors.

v3 -> v4
Lindent script was not working as expected. So corrected indentation errors in
svm.c and svm_tests.c without using Lindent

v4 -> v5
Corrected commit messages for patches.
Incorporated comments provided in setup_mmu_range() function.

Manali Shukla (8):
  x86: nSVM: Move common functionality of the main() to helper
    run_svm_tests
  x86: nSVM: Move all nNPT test cases from svm_tests.c to a separate
    file.
  x86: nSVM: Allow nSVM tests run with PT_USER_MASK enabled
  x86: Improve set_mmu_range() to implement npt
  x86: nSVM: Build up the nested page table dynamically
  x86: nSVM: Correct indentation for svm.c
  x86: nSVM: Correct indentation for svm_tests.c part-1
  x86: nSVM: Correct indentation for svm_tests.c part-2

 lib/x86/vm.c        |   25 +-
 lib/x86/vm.h        |    8 +
 x86/Makefile.common |    2 +
 x86/Makefile.x86_64 |    2 +
 x86/svm.c           |  227 ++-
 x86/svm.h           |    5 +-
 x86/svm_npt.c       |  391 +++++
 x86/svm_tests.c     | 3365 +++++++++++++++++++------------------------
 x86/unittests.cfg   |    6 +
 9 files changed, 2034 insertions(+), 1997 deletions(-)
 create mode 100644 x86/svm_npt.c

-- 
2.30.2




[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