> > On Wed, Jan 31, 2024 at 01:58:10PM +0800, Xu Yang wrote: > > The user can pass any counter ID to perf app. However, current pmu driver > > doesn't judge the validity of the counter ID. This will add necessary > > check for counter ID from user space. Besides, this pmu has 10 counters > > except cycle counter which can be used to count reference events and > > counter specific evnets. This will also add supports to auto allocate > > counter if the user doesn't pass it the perf. Then, the usage of counter > > will be optimized. > > > > Signed-off-by: Xu Yang <xu.yang_2@xxxxxxx> > > > > --- > > Changes in v2: > > - limit counter ID from user to 0-10 > > - combine dynamic and static allocation of counter > > Changes in v3: > > - no changes > > Changes in v4: > > - rename ddr_perf_is_specific_event() > > - use macro definitions to parse config attr > > --- > > drivers/perf/fsl_imx9_ddr_perf.c | 72 +++++++++++++++++++++++++++++++- > > 1 file changed, 71 insertions(+), 1 deletion(-) > > > > diff --git a/drivers/perf/fsl_imx9_ddr_perf.c b/drivers/perf/fsl_imx9_ddr_perf.c > > index 94041f06c152..e71496809c52 100644 > > --- a/drivers/perf/fsl_imx9_ddr_perf.c > > +++ b/drivers/perf/fsl_imx9_ddr_perf.c > > @@ -51,6 +51,7 @@ > > > > #define NUM_COUNTERS 11 > > #define CYCLES_COUNTER 0 > > +#define CYCLES_EVENT_ID 0 > > > > #define CONFIG_EVENT_MASK 0x00FF > > #define CONFIG_EVENT_OFFSET 0 > > @@ -240,6 +241,19 @@ static struct attribute *ddr_perf_events_attrs[] = { > > NULL, > > }; > > > > +/* > > + * An event is either reference evnet or counter specific event. > > + * For counter specific event, the event count will only be incremented > > + * on the corresponding counter. > > + */ > > +static bool ddr_perf_is_counter_specific_event(int event) > > +{ > > + if (event >= 64 && event <= 73) > > + return true; > > + else > > + return false; > > Just collapse this to 'return event >= 64 && event <= 73;' Okay. Thanks, Xu Yang > > Will