[PATCH v5 0/4] selftests: KVM: AMD Nested SVM test infrastructure

From: Eric Auger
Date: Fri Feb 07 2020 - 09:27:30 EST


Add the basic infrastructure needed to test AMD nested SVM.
Also add a first basic vmcall test.

Best regards

Eric

This series can be found at:
https://github.com/eauger/linux/tree/v5.5-amd-svm-v5

History:
v4 -> v5:
- Added "selftests: KVM: Remove unused x86_register enum"
- reorder GPRs within gpr64_regs
- removed vmcb_hva and save_area_hva from svm_test_data
- remove the naming for vmcb_gpa in run_guest

v3 -> v4:
- gpr64_regs struct just contains 64b mode GPRs ordered
as in x86_register
- cleanup in run_guest (vm* instructions) and reduce
clubber list.
- add some comments

v2 -> v3:
- Took into account Vitaly's comment:
- added "selftests: KVM: Replace get_gdt/idt_base() by
get_gdt/idt()"
- svm.h now is a copy of arch/x86/include/asm/svm.h
- avoid duplicates

v1 -> v2:
- split into 2 patches
- remove the infrastructure to run low-level sub-tests and only
keep vmmcall's one.
- move struct regs into processor.h
- force vmcb_gpa into rax in run_guest()

Eric Auger (4):
selftests: KVM: Replace get_[gdt | idt]_base() by get_[gdt | idt]()
selftests: KVM: Remove unused x86_register enum
selftests: KVM: AMD Nested test infrastructure
selftests: KVM: SVM: Add vmcall test

tools/testing/selftests/kvm/Makefile | 3 +-
.../selftests/kvm/include/x86_64/processor.h | 44 +--
.../selftests/kvm/include/x86_64/svm.h | 297 ++++++++++++++++++
.../selftests/kvm/include/x86_64/svm_util.h | 36 +++
tools/testing/selftests/kvm/lib/x86_64/svm.c | 159 ++++++++++
tools/testing/selftests/kvm/lib/x86_64/vmx.c | 6 +-
.../selftests/kvm/x86_64/svm_vmcall_test.c | 79 +++++
7 files changed, 598 insertions(+), 26 deletions(-)
create mode 100644 tools/testing/selftests/kvm/include/x86_64/svm.h
create mode 100644 tools/testing/selftests/kvm/include/x86_64/svm_util.h
create mode 100644 tools/testing/selftests/kvm/lib/x86_64/svm.c
create mode 100644 tools/testing/selftests/kvm/x86_64/svm_vmcall_test.c

--
2.20.1