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>
This commit is contained in:
parent
d4e3616682
commit
740d087e7f
|
@ -838,6 +838,19 @@ static uint64_t test_with_fixed_counter_filter(struct kvm_vcpu *vcpu,
|
|||
return run_vcpu_to_sync(vcpu);
|
||||
}
|
||||
|
||||
static uint64_t test_set_gp_and_fixed_event_filter(struct kvm_vcpu *vcpu,
|
||||
uint32_t action,
|
||||
uint32_t bitmap)
|
||||
{
|
||||
struct __kvm_pmu_event_filter f = base_event_filter;
|
||||
|
||||
f.action = action;
|
||||
f.fixed_counter_bitmap = bitmap;
|
||||
set_pmu_event_filter(vcpu, &f);
|
||||
|
||||
return run_vcpu_to_sync(vcpu);
|
||||
}
|
||||
|
||||
static void __test_fixed_counter_bitmap(struct kvm_vcpu *vcpu, uint8_t idx,
|
||||
uint8_t nr_fixed_counters)
|
||||
{
|
||||
|
@ -864,6 +877,20 @@ static void __test_fixed_counter_bitmap(struct kvm_vcpu *vcpu, uint8_t idx,
|
|||
count = test_with_fixed_counter_filter(vcpu, KVM_PMU_EVENT_DENY,
|
||||
bitmap);
|
||||
TEST_ASSERT_EQ(!!count, !(bitmap & BIT(idx)));
|
||||
|
||||
/*
|
||||
* Check that fixed_counter_bitmap has higher priority than
|
||||
* events[] when both are set.
|
||||
*/
|
||||
count = test_set_gp_and_fixed_event_filter(vcpu,
|
||||
KVM_PMU_EVENT_ALLOW,
|
||||
bitmap);
|
||||
TEST_ASSERT_EQ(!!count, !!(bitmap & BIT(idx)));
|
||||
|
||||
count = test_set_gp_and_fixed_event_filter(vcpu,
|
||||
KVM_PMU_EVENT_DENY,
|
||||
bitmap);
|
||||
TEST_ASSERT_EQ(!!count, !(bitmap & BIT(idx)));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue