mirror of
https://github.com/torvalds/linux.git
synced 2026-05-22 14:12:07 +02:00
KVM: selftests: re-map Xen's vcpu_info using HVA rather than GPA
If the relevant capability (KVM_XEN_HVM_CONFIG_SHARED_INFO_HVA) is present then re-map vcpu_info using the HVA part way through the tests to make sure then there is no functional change. Signed-off-by: Paul Durrant <pdurrant@amazon.com> Reviewed-by: David Woodhouse <dwmw@amazon.co.uk> Link: https://lore.kernel.org/r/20240215152916.1158-16-paul@xen.org Signed-off-by: Sean Christopherson <seanjc@google.com>
This commit is contained in:
parent
9397b5334a
commit
b4dfbfdc95
|
|
@ -62,6 +62,7 @@ enum {
|
|||
TEST_POLL_TIMEOUT,
|
||||
TEST_POLL_MASKED,
|
||||
TEST_POLL_WAKE,
|
||||
SET_VCPU_INFO,
|
||||
TEST_TIMER_PAST,
|
||||
TEST_LOCKING_SEND_RACE,
|
||||
TEST_LOCKING_POLL_RACE,
|
||||
|
|
@ -321,6 +322,10 @@ static void guest_code(void)
|
|||
|
||||
GUEST_SYNC(TEST_POLL_WAKE);
|
||||
|
||||
/* Set the vcpu_info to point at exactly the place it already is to
|
||||
* make sure the attribute is functional. */
|
||||
GUEST_SYNC(SET_VCPU_INFO);
|
||||
|
||||
/* A timer wake an *unmasked* port which should wake us with an
|
||||
* actual interrupt, while we're polling on a different port. */
|
||||
ports[0]++;
|
||||
|
|
@ -888,6 +893,16 @@ int main(int argc, char *argv[])
|
|||
alarm(1);
|
||||
break;
|
||||
|
||||
case SET_VCPU_INFO:
|
||||
if (has_shinfo_hva) {
|
||||
struct kvm_xen_vcpu_attr vih = {
|
||||
.type = KVM_XEN_VCPU_ATTR_TYPE_VCPU_INFO_HVA,
|
||||
.u.hva = (unsigned long)vinfo
|
||||
};
|
||||
vcpu_ioctl(vcpu, KVM_XEN_VCPU_SET_ATTR, &vih);
|
||||
}
|
||||
break;
|
||||
|
||||
case TEST_TIMER_PAST:
|
||||
TEST_ASSERT(!evtchn_irq_expected,
|
||||
"Expected event channel IRQ but it didn't happen");
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user