Skip to content

Commit 740d087

Browse files
Jinrong Liangsean-jc
authored andcommitted
KVM: selftests: Test gp event filters don't affect fixed event filters
Add a test to ensure that setting both generic and fixed performance event filters does not affect the consistency of the fixed event filter behavior in KVM. Signed-off-by: Jinrong Liang <cloudliang@tencent.com> Link: https://lore.kernel.org/r/20230810090945.16053-7-cloudliang@tencent.com Signed-off-by: Sean Christopherson <seanjc@google.com>
1 parent d4e3616 commit 740d087

File tree

1 file changed

+27
-0
lines changed

1 file changed

+27
-0
lines changed

tools/testing/selftests/kvm/x86_64/pmu_event_filter_test.c

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -838,6 +838,19 @@ static uint64_t test_with_fixed_counter_filter(struct kvm_vcpu *vcpu,
838838
return run_vcpu_to_sync(vcpu);
839839
}
840840

841+
static uint64_t test_set_gp_and_fixed_event_filter(struct kvm_vcpu *vcpu,
842+
uint32_t action,
843+
uint32_t bitmap)
844+
{
845+
struct __kvm_pmu_event_filter f = base_event_filter;
846+
847+
f.action = action;
848+
f.fixed_counter_bitmap = bitmap;
849+
set_pmu_event_filter(vcpu, &f);
850+
851+
return run_vcpu_to_sync(vcpu);
852+
}
853+
841854
static void __test_fixed_counter_bitmap(struct kvm_vcpu *vcpu, uint8_t idx,
842855
uint8_t nr_fixed_counters)
843856
{
@@ -864,6 +877,20 @@ static void __test_fixed_counter_bitmap(struct kvm_vcpu *vcpu, uint8_t idx,
864877
count = test_with_fixed_counter_filter(vcpu, KVM_PMU_EVENT_DENY,
865878
bitmap);
866879
TEST_ASSERT_EQ(!!count, !(bitmap & BIT(idx)));
880+
881+
/*
882+
* Check that fixed_counter_bitmap has higher priority than
883+
* events[] when both are set.
884+
*/
885+
count = test_set_gp_and_fixed_event_filter(vcpu,
886+
KVM_PMU_EVENT_ALLOW,
887+
bitmap);
888+
TEST_ASSERT_EQ(!!count, !!(bitmap & BIT(idx)));
889+
890+
count = test_set_gp_and_fixed_event_filter(vcpu,
891+
KVM_PMU_EVENT_DENY,
892+
bitmap);
893+
TEST_ASSERT_EQ(!!count, !(bitmap & BIT(idx)));
867894
}
868895
}
869896

0 commit comments

Comments
 (0)