Features/KVMNestedVirtualizationTestsuite: Difference between revisions

From QEMU
mNo edit summary
No edit summary
Line 45: Line 45:


= Patches on the way =
= Patches on the way =
* [PATCH] KVM : Fix read/write to IA32_FEATURE_CONTROL MSR in nested virt [http://www.mail-archive.com/kvm@vger.kernel.org/msg92852.html v1] [http://www.mail-archive.com/kvm@vger.kernel.org/msg92981.html v2]
* [PATCH v3] KVM : Fix read/write to IA32_FEATURE_CONTROL MSR in nested virt [http://www.mail-archive.com/kvm@vger.kernel.org/msg93021.html]
** Previous version : [http://www.mail-archive.com/kvm@vger.kernel.org/msg92852.html v1] [http://www.mail-archive.com/kvm@vger.kernel.org/msg92981.html v2]
* [Qemu-devel] [PATCH] nVMX: Initialize IA32_FEATURE_CONTROL MSR in reset and migration [http://www.mail-archive.com/kvm@vger.kernel.org/msg93022.html]
 
= Other relevant patches =
* [PATCH] kvm-unit-tests: Test case of emulating multibyte NOP [http://www.mail-archive.com/kvm@vger.kernel.org/msg91823.html]
* [PATCH v4 1/3] kvm-unit-tests: Add memcpy to lib/string.c [http://www.mail-archive.com/kvm@vger.kernel.org/msg92369.html]
* [PATCH v4 2/3] kvm-unit-tests: Add a func to run instruction in emulator [http://www.mail-archive.com/kvm@vger.kernel.org/msg92370.html]
* [PATCH v4 3/3] kvm-unit-tests: Change two cases to use trap_emulator [http://www.mail-archive.com/kvm@vger.kernel.org/msg92371.html]

Revision as of 15:22, 7 July 2013

Notice

This a GSoC 2013 project accepted by QEMU.org, you can also see my proposal.

Summary

Provide a test suite of nested virtualization for KVM in kvm-unit-tests. It provides a test platform for nested virtualization, including a hypervisor and the link script to integrate current test suites.

Owner

Locations

Feature

This module of kvm-unit-tests aims at providing a suite of test cases for nested virtualization. It consists of two parts:

  • A mini hypervisor
  • Some relevant test cases specified for nested virtualization in KVM

Some codes of current kvm-unit-tests can be reused in the two parts above, e.g. link script to generate flat image. Some specific features will be listed here.

Mini hypervisor

A mini hypervisor is the basis of testing nested virtualization. Here is a mini hypervisor written in C++ named NOVA. But the mini hypervisor neeeded in this project doesn't need so many complicated features (e.g. Buddy system). Only CPU management, memory management, interrupt control and simple communication (hypercall) are necessary.

Nested virtualization test cases

On the basis of mini hypervisor, some nested virtualization features should be tested including VMX insructions, MSR, memory access and VM-enter & VM-exit tests. Some of test cases are have implemented in the current kvm-unit-tests and can be imported in some special ways.

Project status

The project is currently in development. Mini hypervisor is now in development.

Patches commit

  • [PATCH v2 1/2] KVM : Change location of 3 functions in vmx.c [1]
    • Previous version : v1
  • [PATCH v2 2/2] KVM : Set success rflags when emulate VMXON/VMXOFF in nested virt [2]
    • Previous version : v1

Patches on the way

  • [PATCH v3] KVM : Fix read/write to IA32_FEATURE_CONTROL MSR in nested virt [3]
    • Previous version : v1 v2
  • [Qemu-devel] [PATCH] nVMX: Initialize IA32_FEATURE_CONTROL MSR in reset and migration [4]

Other relevant patches

  • [PATCH] kvm-unit-tests: Test case of emulating multibyte NOP [5]
  • [PATCH v4 1/3] kvm-unit-tests: Add memcpy to lib/string.c [6]
  • [PATCH v4 2/3] kvm-unit-tests: Add a func to run instruction in emulator [7]
  • [PATCH v4 3/3] kvm-unit-tests: Change two cases to use trap_emulator [8]