Re: [PATCH v4 19/19] KVM: selftests: Add test for KVM_SET_USER_MEMORY_REGION
From: Sean Christopherson <hidden>
Date: 2019-12-18 16:40:01
Also in:
kvm, kvmarm, linux-arm-kernel, lkml
From: Sean Christopherson <hidden>
Date: 2019-12-18 16:40:01
Also in:
kvm, kvmarm, linux-arm-kernel, lkml
On Wed, Dec 18, 2019 at 12:39:43PM +0100, Christian Borntraeger wrote:
On 17.12.19 21:40, Sean Christopherson wrote:quoted
Add a KVM selftest to test moving the base gfn of a userspace memory region. The test is primarily targeted at x86 to verify its memslot metadata is correctly updated, but also provides basic functionality coverage on other architectures. +static void *vcpu_worker(void *data) +{ + struct kvm_vm *vm = data; + struct kvm_run *run; + struct ucall uc; + uint64_t cmd; + + /* + * Loop until the guest is done. Re-enter the guest on all MMIO exits, + * which will occur if the guest attempts to access a memslot while it + * is being moved. + */ + run = vcpu_state(vm, VCPU_ID); + do { + vcpu_run(vm, VCPU_ID); + } while (run->exit_reason == KVM_EXIT_MMIO); + + TEST_ASSERT(run->exit_reason == KVM_EXIT_IO, + "Unexpected exit reason = %d", run->exit_reason);This will also not work for s390. Maybe just make this test x86 specific for now?
Doh, that's obvious in hindsight. I think the basic premise is also broken on arm64 as it returns -EFAULT on is_error_noslot_pfn(pfn). So yeah, x86 only for now :-(