Commit 53635ec2 authored by Sean Christopherson's avatar Sean Christopherson

KVM: selftests: Move platform_info_test's main assert into guest code

As a first step toward gracefully handling the expected #GP on RDMSR in
platform_info_test, move the test's assert on the non-faulting RDMSR
result into the guest itself.  This will allow using a unified flow for
the host userspace side of things.

Link: https://lore.kernel.org/r/20240314232637.2538648-6-seanjc@google.comSigned-off-by: default avatarSean Christopherson <seanjc@google.com>
parent 0d95817e
...@@ -27,7 +27,9 @@ static void guest_code(void) ...@@ -27,7 +27,9 @@ static void guest_code(void)
for (;;) { for (;;) {
msr_platform_info = rdmsr(MSR_PLATFORM_INFO); msr_platform_info = rdmsr(MSR_PLATFORM_INFO);
GUEST_SYNC(msr_platform_info); GUEST_ASSERT_EQ(msr_platform_info & MSR_PLATFORM_INFO_MAX_TURBO_RATIO,
MSR_PLATFORM_INFO_MAX_TURBO_RATIO);
GUEST_SYNC(0);
asm volatile ("inc %r11"); asm volatile ("inc %r11");
} }
} }
...@@ -40,13 +42,15 @@ static void test_msr_platform_info_enabled(struct kvm_vcpu *vcpu) ...@@ -40,13 +42,15 @@ static void test_msr_platform_info_enabled(struct kvm_vcpu *vcpu)
vcpu_run(vcpu); vcpu_run(vcpu);
TEST_ASSERT_KVM_EXIT_REASON(vcpu, KVM_EXIT_IO); TEST_ASSERT_KVM_EXIT_REASON(vcpu, KVM_EXIT_IO);
get_ucall(vcpu, &uc); switch (get_ucall(vcpu, &uc)) {
TEST_ASSERT(uc.cmd == UCALL_SYNC, case UCALL_SYNC:
"Received ucall other than UCALL_SYNC: %lu", uc.cmd); break;
TEST_ASSERT((uc.args[1] & MSR_PLATFORM_INFO_MAX_TURBO_RATIO) == case UCALL_ABORT:
MSR_PLATFORM_INFO_MAX_TURBO_RATIO, REPORT_GUEST_ASSERT(uc);
"Expected MSR_PLATFORM_INFO to have max turbo ratio mask: %i.", default:
MSR_PLATFORM_INFO_MAX_TURBO_RATIO); TEST_FAIL("Unexpected ucall %lu", uc.cmd);
break;
}
} }
static void test_msr_platform_info_disabled(struct kvm_vcpu *vcpu) static void test_msr_platform_info_disabled(struct kvm_vcpu *vcpu)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment