Re: [PATCH] Documentation: coresight: Update the generic device names

From: Leo Yan
Date: Fri Jun 07 2019 - 09:47:02 EST


Hi Suzuki,

On Fri, Jun 07, 2019 at 09:40:48AM +0100, Suzuki K Poulose wrote:
> Hi Leo,
>
> > > > > A Coresight PMU works the same way as any other PMU, i.e the name of the PMU is
> > > > > listed along with configuration options within forward slashes '/'. Since a
> > > > > Coresight system will typically have more than one sink, the name of the sink to
> > > > > -work with needs to be specified as an event option. Names for sink to choose
> > > > > -from are listed in sysFS under ($SYSFS)/bus/coresight/devices:
> > > > > +work with needs to be specified as an event option.
> > > > > +On newer kernels the available sinks are listed in sysFS under:
> > > > > +($SYSFS)/bus/event_source/devices/cs_etm/sinks/
> > > > > - root@linaro-nano:~# ls /sys/bus/coresight/devices/
> > > > > - 20010000.etf 20040000.funnel 20100000.stm 22040000.etm
> > > > > - 22140000.etm 230c0000.funnel 23240000.etm 20030000.tpiu
> > > > > - 20070000.etr 20120000.replicator 220c0000.funnel
> > > > > - 23040000.etm 23140000.etm 23340000.etm
> > > > > + root@localhost:/sys/bus/event_source/devices/cs_etm/sinks# ls
> > > > > + tmc_etf0 tmc_etr0 tpiu0
> > > > > - root@linaro-nano:~# perf record -e cs_etm/@20070000.etr/u --per-thread program
> > > > > +On older kernels, this may need to be found from the list of coresight devices,
> > > > > +available under ($SYSFS)/bus/coresight/devices/:
> > > > > +
> > > > > + root@localhost:/sys/bus/coresight/devices# ls
> > > > > + etm0 etm1 etm2 etm3 etm4 etm5 funnel0 funnel1 funnel2 replicator0 stm0 tmc_etf0 tmc_etr0 tpiu0
> > > > > +
> > > > > + root@linaro-nano:~# perf record -e cs_etm/@tmc_etr0/u --per-thread program
> > > >
> > > > On the "older" kernels you are referring to one would find the original naming
> > > > convention. Everything else looks good to me.
> > >
> > > True, but do we care what we see there ? All we care about is the location,
> > > where to find them. I could fix it, if you think thats needed.
> >
> > IIUC, either the old kernel or newer kernel, both we can find the event
> > from ($SYSFS)/bus/event_source/devices/cs_etm/sinks/; the only
> > difference between them is the naming convention.
>
> The cs_etm/sinks was only added with the CPU-wide trace support. So, if someone
> refers to this document alone and then tries to do something on on older kernel,
> which is quite possible for a production device running a stable kernel, {s,}he
> might be surprised.

Okay, understand now. Thanks for clarification.

> > So the doc can use the same location to find event for both new and
> > old kernel, and explain the naming convention difference?
>
> My question is really, does the naming convention matter ? What you see
> under the directory is the name. But yes, I am open to add a section to
> explain the fact that we changed the naming scheme, if everyone agrees
> to it.

The naming convention is not important for the developers who are
familiar with CoreSight development; later who is the first time to
access kernel CoreSight modules and don't know the history for naming
scheme, the related documentation will be friendly and reduce the
barrier for using it.

I have no strong opinion for this, seems to me another choice is to
describe the older kernel with old naming scheme, something like below:

On older kernels, this may need to be found from the list of coresight devices,
available under ($SYSFS)/bus/coresight/devices/ with old naming scheme:

root@linaro-nano:~# ls /sys/bus/coresight/devices/
20010000.etf 20040000.funnel 20100000.stm 22040000.etm> Cheers
22140000.etm 230c0000.funnel 23240000.etm 20030000.tpiu > Suzuki
20070000.etr 20120000.replicator 220c0000.funnel
23040000.etm 23140000.etm 23340000.etm

root@linaro-nano:~# perf record -e cs_etm/@20070000.etr/u --per-thread program


Thanks,
Leo Yan