Re: [RFC PATCH 3/3 v3] perf: Update perf tool to monitor uncoreevents

From: Peter Zijlstra
Date: Tue Dec 14 2010 - 07:34:31 EST


On Tue, 2010-12-14 at 10:15 +0800, Lin Ming wrote:

> > First of all, "uncore" is an x86-specific term and so it's not clear to
> > me if you meant for all arches to utilize this encoding for all "not
> > core but on the same die" events (IBM Power arch refers to this as
> > "nest" logic).

I don't think the x86 uncore matches the "not on core but on the same
die" definition. The x86-uncore thing is more like a memory controller
PMU (and since the memory controller is on die it is of course on die,
but its not just any random on-die thing).

The wire-speed thing has tons of special purpose 'cores' on die, each of
them having a PMU.

Using the sysfs stuff you could actually expose each individually.

> Yes, they are temporary solution. I use it to easily test uncore
> patches. Sorry I should mention that.
>
> sysfs is the final solution, but I'm not clear how the sysfs structures
> should be.
>
> As we discussed before,
>
> 1. Should we list all events under sysfs?
>
> /sys/devices/system/cpu/cpuN/events/event0
> ...
> /sys/devices/system/cpu/cpuN/events/eventN
>
> /sys/devices/system/node/nodeN/pmuN/events/event0
> ...
> /sys/devices/system/node/nodeN/pmuN/events/eventN

I'd not put _all_ events there, maybe a key few. Then again, Corey would
like to make all optional on module load or somesuch.

> 2. Or should we use a sysfs file to pass in raw config value?

That's not mutually exclusive with 1), the way I've implemented it is
that the sysfs event files provide the raw config values needed for that
event.

> /sys/devices/system/cpu/cpuN/raw
> /sys/devices/system/node/nodeN/pmuN/raw?
>
> 3. How will the additional attributes(needed by IBM PowerEN chip, etc)
> be passed in?

>From what I understood they all still fit in the single u64 config
field.

--
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/