On Wed, Dec 18, 2019 at 12:39:43PM +0100, Christian Borntraeger wrote: > > On 17.12.19 21:40, Sean Christopherson wrote: > > 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 :-(