[EXT] Re: [PATCH v4 5/6] perf: imx_perf: limit counter ID from user space and optimize counter usage

Xu Yang xu.yang_2 at nxp.com
Thu Feb 29 02:29:45 PST 2024


> 
> 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 at nxp.com>
> >
> > ---
> > 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



More information about the linux-arm-kernel mailing list