Re: [PATCH v4 19/19] KVM: selftests: Add test for KVM_SET_USER_MEMORY_REGION

From: Sean Christopherson
Date: Wed Dec 18 2019 - 11:40:01 EST


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 :-(