Re: [PATCH v2 6/6] perf tool: Parse general/raw events from sysfs

From: Lin Ming
Date: Sat Aug 06 2011 - 19:40:20 EST


On Sun, 2011-08-07 at 04:10 +0800, Stephane Eranian wrote:
> Hi,
>
> On Fri, Jul 15, 2011 at 7:35 AM, Lin Ming <ming.m.lin@xxxxxxxxx> wrote:
> > PMU can export general events to sysfs, for example,
> >
> > /sys/bus/event_source/devices/uncore/events
> > âââ cycle
> >
> > Then specify the event as <pmu>:<event>,
> >
> > $ sudo perf stat -a -C 0 -e uncore:cycle
>
> I think this event syntax should be adjusted a bit.
>
> How would the tool differentiate:
> perf stat -e uncore:cycle
> form:
> perf stat -e cycle:u
>
> It would have to scan sysfs for a 'cycle' PMU and conclude
> there is none, then resolve the 'cycle' event name. And if
> you're unlucky and you have a event name that matches
> the PMU name, you get into troubles.
>
> I think, one could instead do:
>
> perf stat -e uncore::cycle:k
>
> That way, by virtue of the '::' separator, the tool would know
> that it needs to first look into sysfs for an 'uncore' PMU, then
> it needs to look for the 'cycle' event.

Yes, I like this '::' separator too.
Will update to use it.

>
> I also use the '::' notation in libpfm4 to separate the PMU model
> form the event+umask+modifiers.
>
> I also suspect that with this sysfs interface for PMU models, you
> would simply add a number to differentiate each instance of a PMU.
> So for GPU, you would do:
> perf stat -e gfx0::cycles
>
> Is that right?

A number or other thing is OK.

int perf_pmu_register(struct pmu *pmu, char *name, int type)
will be called to register a PMU.

So I think any name that can differentiate each instance is OK.

Adding a number looks like the easiest way.

Thanks,
Lin Ming


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/