Skip to content

Commit

Permalink
KVM: selftests: Assert in prepare_eptp() that nEPT is supported
Browse files Browse the repository at this point in the history
Now that a VM isn't needed to check for nEPT support, assert that KVM
supports nEPT in prepare_eptp() instead of skipping the test, and push
the TEST_REQUIRE() check out to individual tests.  The require+assert are
somewhat redundant and will incur some amount of ongoing maintenance
burden, but placing the "require" logic in the test makes it easier to
find/understand a test's requirements and in this case, provides a very
strong hint that the test cares about nEPT.

Suggested-by: Sean Christopherson <seanjc@google.com>
Signed-off-by: David Matlack <dmatlack@google.com>
Link: https://lore.kernel.org/r/20220927165209.930904-1-dmatlack@google.com
[sean: rebase on merged code, write changelog]
Signed-off-by: Sean Christopherson <seanjc@google.com>
  • Loading branch information
David Matlack authored and Sean Christopherson committed Nov 17, 2022
1 parent ecb89a5 commit 5c107f7
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 5c107f7

Please sign in to comment.