summaryrefslogtreecommitdiffstats
path: root/tools/testing/selftests/kvm/lib/x86.c
Commit message (Collapse)AuthorAgeFilesLines
* kvm: selftests: move arch-specific files to arch-specific locationsAndrew Jones2018-10-171-888/+0
| | | | | Signed-off-by: Andrew Jones <drjones@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
* kvm: selftests: vcpu_setup: set cr4.osfxsrAndrew Jones2018-10-171-1/+1
| | | | | | | | | | | Guest code may want to call functions that have variable arguments. To do so, we either need to compile with -mno-sse or enable SSE in the VCPUs. As it should be pretty safe to turn on the feature, and -mno-sse would make linking test code with standard libraries difficult, we choose the feature enabling. Signed-off-by: Andrew Jones <drjones@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
* kvm: selftest: pass in extra memory when create vmPeter Xu2018-08-221-2/+16
| | | | | | | | This information can be used to decide the size of the default memory slot, which will need to cover the extra pages with page tables. Signed-off-by: Peter Xu <peterx@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
* kvm: selftests: add test for nested state save/restorePaolo Bonzini2018-08-061-0/+29
| | | | Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
* kvm: selftests: add basic test for state save and restorePaolo Bonzini2018-08-061-0/+116
| | | | | | | | | | | | | | | The test calls KVM_RUN repeatedly, and creates an entirely new VM with the old memory and vCPU state on every exit to userspace. The kvm_util API is expanded with two functions that manage the lifetime of a kvm_vm struct: the first closes the file descriptors and leaves the memory allocated, and the second opens the file descriptors and reuses the memory from the previous incarnation of the kvm_vm struct. For now the test is very basic, as it does not test for example XSAVE or vCPU events. However, it will test nested virtualization state starting with the next patch. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
* kvm: selftests: create a GDT and TSSPaolo Bonzini2018-08-061-41/+70
| | | | | | | | | | | | The GDT and the TSS base were left to zero, and this has interesting effects when the TSS descriptor is later read to set up a VMCS's TR_BASE. Basically it worked by chance, and this patch fixes it by setting up all the protected mode data structures properly. Because the GDT and TSS addresses are virtual, the page tables now always exist at the time of vcpu setup. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
* kvm: selftests: add sync_regs_testPaolo Bonzini2018-04-041-0/+3
| | | | | | | | This includes the infrastructure to map the test into the guest and run code from the test program inside a VM. Signed-off-by: Ken Hofsass <hofsass@google.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
* kvm: selftests: add API testing infrastructurePaolo Bonzini2018-04-041-0/+697
Testsuite contributed by Google and cleaned up by myself for inclusion in Linux. Signed-off-by: Ken Hofsass <hofsass@google.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
OpenPOWER on IntegriCloud