Messages in this thread | | | Subject | Re: [RFC][PATCH] perf: sysfs type id | From | Peter Zijlstra <> | Date | Wed, 10 Nov 2010 22:05:35 +0100 |
| |
On Wed, 2010-11-10 at 21:53 +0100, Stephane Eranian wrote: > On Wed, Nov 10, 2010 at 9:32 PM, Peter Zijlstra <peterz@infradead.org> wrote: > > On Wed, 2010-11-10 at 21:08 +0100, Stephane Eranian wrote: > >> Would that be by passing the full filename to the tool? > > > > possible, or something like <pmu-name>:<event-name>, cpu:cycles would > > map to /sys/class/pmu/cpu/events/cycles (given the previous patch). > > > > > Ok, but I think you're proposal is missing one bit. You are addressing > the class (or type) of PMU, but you are not addressing the naming of > an instance. > > Let's take an example, suppose you have counters on a graphic card. > Your system has two such graphic cards. In your scheme you would > end up with a sys/class/pmu/gfx/..... > > But now, suppose I want to count cycles on the first graphic card. > Seems to me you need to expose the instances as well. The instance > number needs to be passed in the attr struct somehow. > > You can either create multiple subdir under gfx, or have this info somewhere > else in the sysfs tree, if people really care about class vs. instance. > > I can see users doing: > $ perf stat -e gfx@1::cycles ... -> sys/class/gfx/1/event/cycles > > The reason I am using :: here is because libpfm4 is already using > this as a separator for PMU type vs. event.
right, so the idea is to have these pmu devices hooked into the existing sysfs topology, my proposed patch misses that bit because I wanted to get something out before having to dig through the topology code trying to figure out how all that works.
So the 'cpu' pmu device would be linked from:
/sys/devices/system/cpu/pmu -> /sys/class/pmu/cpu
and gfx things would be linked like:
/sys/devices/pci0000:00/0000:00:1e.0/0000:0b:01.0/drm/card0/pmu -> /sys/class/pmu/radeon0
| |