Skip to content

Commit

Permalink
Merge tag 'kvm-selftests-6.2-1' of https://github.com/kvm-x86/linux i…
Browse files Browse the repository at this point in the history
…nto HEAD

KVM selftests updates for 6.2

perf_util:
 - Add support for pinning vCPUs in dirty_log_perf_test.
 - Add a lightweight psuedo RNG for guest use, and use it to randomize
   the access pattern and write vs. read percentage in the so called
   "perf util" tests.
 - Rename the so called "perf_util" framework to "memstress".

ucall:
 - Add a common pool-based ucall implementation (code dedup and pre-work
   for running SEV (and beyond) guests in selftests.
 - Fix an issue in ARM's single-step test when using the new pool-based
   implementation; LDREX/STREX don't play nice with single-step exceptions.

init:
 - Provide a common constructor and arch hook, which will eventually be
   used by x86 to automatically select the right hypercall (AMD vs. Intel).

x86:
 - Clean up x86's page tabe management.
 - Clean up and enhance the "smaller maxphyaddr" test, and add a related
   test to cover generic emulation failure.
 - Clean up the nEPT support checks.
 - Add X86_PROPERTY_* framework to retrieve multi-bit CPUID values.
  • Loading branch information
Paolo Bonzini committed Nov 17, 2022
2 parents ecb89a5 + 5c107f7 commit 92292c1
Show file tree
Hide file tree
Showing 3 changed files with 3 additions and 1 deletion.
1 change: 1 addition & 0 deletions tools/testing/selftests/kvm/lib/x86_64/memstress.c
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,7 @@ void memstress_setup_nested(struct kvm_vm *vm, int nr_vcpus, struct kvm_vcpu *vc
int vcpu_id;

TEST_REQUIRE(kvm_cpu_has(X86_FEATURE_VMX));
TEST_REQUIRE(kvm_cpu_has_ept());

for (vcpu_id = 0; vcpu_id < nr_vcpus; vcpu_id++) {
vmx = vcpu_alloc_vmx(vm, &vmx_gva);
Expand Down
2 changes: 1 addition & 1 deletion tools/testing/selftests/kvm/lib/x86_64/vmx.c
Original file line number Diff line number Diff line change
Expand Up @@ -559,7 +559,7 @@ bool kvm_cpu_has_ept(void)
void prepare_eptp(struct vmx_pages *vmx, struct kvm_vm *vm,
uint32_t eptp_memslot)
{
TEST_REQUIRE(kvm_cpu_has_ept());
TEST_ASSERT(kvm_cpu_has_ept(), "KVM doesn't support nested EPT");

vmx->eptp = (void *)vm_vaddr_alloc_page(vm);
vmx->eptp_hva = addr_gva2hva(vm, (uintptr_t)vmx->eptp);
Expand Down
1 change: 1 addition & 0 deletions tools/testing/selftests/kvm/x86_64/vmx_dirty_log_test.c
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,7 @@ int main(int argc, char *argv[])
bool done = false;

TEST_REQUIRE(kvm_cpu_has(X86_FEATURE_VMX));
TEST_REQUIRE(kvm_cpu_has_ept());

/* Create VM */
vm = vm_create_with_one_vcpu(&vcpu, l1_guest_code);
Expand Down

0 comments on commit 92292c1

Please sign in to comment.