KVM: x86/xen: Add runstate tests for 32-bit mode and crossing page boundary
authorDavid Woodhouse <dwmw@amazon.co.uk>
Sat, 19 Nov 2022 09:27:46 +0000 (09:27 +0000)
committerPaolo Bonzini <pbonzini@redhat.com>
Wed, 30 Nov 2022 16:03:18 +0000 (11:03 -0500)
commit8acc35186ed63436bfaf60051c8bb53f344dcbfc
treeb54aa4a22c04b98c9e68a4cc2e392a78bc7c9b78
parentd8ba8ba4c801b794f47852a6f1821ea48f83b5d1
KVM: x86/xen: Add runstate tests for 32-bit mode and crossing page boundary

Torture test the cases where the runstate crosses a page boundary, and
and especially the case where it's configured in 32-bit mode and doesn't,
but then switching to 64-bit mode makes it go onto the second page.

To simplify this, make the KVM_XEN_VCPU_ATTR_TYPE_RUNSTATE_ADJUST ioctl
also update the guest runstate area. It already did so if the actual
runstate changed, as a side-effect of kvm_xen_update_runstate(). So
doing it in the plain adjustment case is making it more consistent, as
well as giving us a nice way to trigger the update without actually
running the vCPU again and changing the values.

Signed-off-by: David Woodhouse <dwmw@amazon.co.uk>
Reviewed-by: Paul Durrant <paul@xen.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
arch/x86/kvm/xen.c
tools/testing/selftests/kvm/x86_64/xen_shinfo_test.c