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? > +#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? Except two trivial issue, looks good to me. -- Isaku Yamahata <isaku.yamahata@xxxxxxxxx>