Isaku Yamahata <isaku.yamahata@xxxxxxxxx> 于2023年8月15日周二 07:49写道: > > On Thu, Aug 10, 2023 at 05:09:42PM +0800, > Jinrong Liang <ljr.kernel@xxxxxxxxx> wrote: > > > From: Jinrong Liang <cloudliang@xxxxxxxxxxx> > > > > Add custom "__kvm_pmu_event_filter" structure to improve pmu event > > filter settings. Simplifies event filter setup by organizing event > > filter parameters in a cleaner, more organized way. > > > > Suggested-by: Sean Christopherson <seanjc@xxxxxxxxxx> > > Signed-off-by: Jinrong Liang <cloudliang@xxxxxxxxxxx> > > --- > > .../kvm/x86_64/pmu_event_filter_test.c | 182 +++++++++--------- > > 1 file changed, 90 insertions(+), 92 deletions(-) > > > > diff --git a/tools/testing/selftests/kvm/x86_64/pmu_event_filter_test.c b/tools/testing/selftests/kvm/x86_64/pmu_event_filter_test.c > > index 5ac05e64bec9..94f5a89aac40 100644 > > --- a/tools/testing/selftests/kvm/x86_64/pmu_event_filter_test.c > > +++ b/tools/testing/selftests/kvm/x86_64/pmu_event_filter_test.c > > @@ -28,6 +28,10 @@ > > > > #define NUM_BRANCHES 42 > > > > +/* Matches KVM_PMU_EVENT_FILTER_MAX_EVENTS in pmu.c */ > > +#define MAX_FILTER_EVENTS 300 > > Can we simply use KVM_PMU_EVENT_FILTER_MAX_EVENTS and remove MAX_FILTER_EVENTS? I didn't find the definition of KVM_PMU_EVENT_FILTER_MAX_EVENTS in selftests. KVM_PMU_EVENT_FILTER_MAX_EVENTS is defined in pmu.c. To use it, we need to define it in selftests. > > > > +#define MAX_TEST_EVENTS 10 > > + > > /* > > * This is how the event selector and unit mask are stored in an AMD > > * core performance event-select register. Intel's format is similar, > > @@ -69,21 +73,33 @@ > > > > #define INST_RETIRED EVENT(0xc0, 0) > > > > +struct __kvm_pmu_event_filter { > > + __u32 action; > > + __u32 nevents; > > + __u32 fixed_counter_bitmap; > > + __u32 flags; > > + __u32 pad[4]; > > + __u64 events[MAX_FILTER_EVENTS]; > > +}; > > + > > Is this same to struct kvm_pmu_event_filter? In tools/arch/x86/include/uapi/asm/kvm.h /* for KVM_CAP_PMU_EVENT_FILTER */ struct kvm_pmu_event_filter { __u32 action; __u32 nevents; __u32 fixed_counter_bitmap; __u32 flags; __u32 pad[4]; __u64 events[]; }; > > Except two trivial issue, looks good to me. > -- > Isaku Yamahata <isaku.yamahata@xxxxxxxxx>