Skip to content

Commit

Permalink
KVM: selftests: Use error codes to signal errors in PMU event filter …
Browse files Browse the repository at this point in the history
…test

Use '0' to signal success and '-errno' to signal failure in the PMU event
filter test so that the values are slightly less magical/arbitrary.  Using
'0' in the error paths is especially confusing as understanding it's an
error value requires following the breadcrumbs to the host code that
ultimately consumes the value.

Arguably there should also be a #define for "success", but 0/-errno is a
common enough pattern that defining another macro on top would likely do
more harm than good.

Link: https://lore.kernel.org/r/20230407233254.957013-5-seanjc@google.com
Reviewed by: Aaron Lewis <aaronlewis@google.com>
Signed-off-by: Sean Christopherson <seanjc@google.com>
  • Loading branch information
sean-jc committed Apr 14, 2023
1 parent c140e93 commit c02c744
Showing 1 changed file with 8 additions and 8 deletions.
16 changes: 8 additions & 8 deletions tools/testing/selftests/kvm/x86_64/pmu_event_filter_test.c
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ static const uint64_t event_list[] = {
*/
static void guest_gp_handler(struct ex_regs *regs)
{
GUEST_SYNC(0);
GUEST_SYNC(-EFAULT);
}

/*
Expand All @@ -92,12 +92,12 @@ static void check_msr(uint32_t msr, uint64_t bits_to_flip)

wrmsr(msr, v);
if (rdmsr(msr) != v)
GUEST_SYNC(0);
GUEST_SYNC(-EIO);

v ^= bits_to_flip;
wrmsr(msr, v);
if (rdmsr(msr) != v)
GUEST_SYNC(0);
GUEST_SYNC(-EIO);
}

static uint64_t run_and_measure_loop(uint32_t msr_base)
Expand All @@ -114,7 +114,7 @@ static void intel_guest_code(void)
check_msr(MSR_CORE_PERF_GLOBAL_CTRL, 1);
check_msr(MSR_P6_EVNTSEL0, 0xffff);
check_msr(MSR_IA32_PMC0, 0xffff);
GUEST_SYNC(1);
GUEST_SYNC(0);

for (;;) {
uint64_t count;
Expand All @@ -138,7 +138,7 @@ static void amd_guest_code(void)
{
check_msr(MSR_K7_EVNTSEL0, 0xffff);
check_msr(MSR_K7_PERFCTR0, 0xffff);
GUEST_SYNC(1);
GUEST_SYNC(0);

for (;;) {
uint64_t count;
Expand Down Expand Up @@ -178,13 +178,13 @@ static uint64_t run_vcpu_to_sync(struct kvm_vcpu *vcpu)
*/
static bool sanity_check_pmu(struct kvm_vcpu *vcpu)
{
bool success;
uint64_t r;

vm_install_exception_handler(vcpu->vm, GP_VECTOR, guest_gp_handler);
success = run_vcpu_to_sync(vcpu);
r = run_vcpu_to_sync(vcpu);
vm_install_exception_handler(vcpu->vm, GP_VECTOR, NULL);

return success;
return !r;
}

static struct kvm_pmu_event_filter *alloc_pmu_event_filter(uint32_t nevents)
Expand Down

0 comments on commit c02c744

Please sign in to comment.