Nested SVM test improvements
Summary: Implement tests for AMD SVM nested virtualization
KVM supports both AMD SVM and Intel VMX technologies for hardware-assisted virtualization on x86 and while similar in concept, these technologies have significant differences between them. When we want to test nested virtualization we need to make the test familiar with these differences (as the test, in fact, is a small hypervisor running on top of KVM). Currently, we have two frameworks which test nested virtualization: kvm-unit-tests and kvm selftests. SVM support in kvm-unit-tests lags behind VMX and kvm selftest framework doesn't support it at all. The project will have the following parts:
- Implementing SVM support in kvm selftest framework, writing a generic 'nesting' test utilizing vmx/svm depending on the host's hardware.
- Improving SVM support in kvm-unit-tests making it match (where possible) VMX and adding SVM-specific features.
The applicant must have access to modern physical AMD hardware (Opteron 62xx/63xx, Epyc) to be able to accomplish the task.
- AMD developer manual: https://developer.amd.com/resources/developer-guides-manuals/
- kvm-unit-tests: https://www.linux-kvm.org/page/KVM-unit-tests
- kvm selftest framework: https://git.kernel.org/pub/scm/virt/kvm/kvm.git/tree/tools/testing/selftests/kvm
- Skill level: intermediate or advanced
- Language: C
- Mentor: Vitaly Kuznetsov <firstname.lastname@example.org>, Paolo Bonzini <email@example.com> ("bonzini" on IRC)