Re: [RFC][PATCH] perf: sysfs type id

From: Peter Zijlstra
Date: Wed Nov 17 2010 - 14:57:16 EST


On Wed, 2010-11-17 at 11:47 -0800, Corey Ashford wrote:
>
> This is an interesting approach, though for the IBM WSP (aka PowerEN)
> chip, the config_format would have to be at a deeper level than the PMU,
> because the modifiers that affect the event, vary from event to event.
> Either that or you'd have to provide a complex union structure.

Eew.. how uhm creative ;-), yeah, not quite sure how to deal with that,
I wasn't planning to make a directory for each event, just a single file
with the u64 in it.

> However, above you say that you want to have "a few frequently
> used/common events". I thought that was the job of the perf "generic
> events". My understanding was that the sysfs tree was the solution for
> all events, including arch-specific, and seldom-used events.

My intent for the sysfs bits is to replace all the static stuff encoded
in PERF_TYPE_ and PERF_COUNT_ because it simply doesn't extend to a much
more dynamic world.

And GPUs/DSPs might have radically different common events than CPUs do.

Doing exhaustive lists in sysfs is simply going to waste tons of memory
for no real gain.

> Ingo
> pushed back on a user-space library solution (like libpfm4) because he
> wanted event info in sysfs (or some other mechanism by which the kernel
> could expose event info to user space).

I can't fully remember the details of that discussion.

> If there is going to be no place in sysfs for arch-specific events, I'll
> want to start pushing for perf to be able to use a user space library again.
>
> How about a compromise position: all of the arch-specific events are
> exposed to user space via sysfs iff some CONFIG_* variable to set to
> true. Something like CONFIG_EXPOSE_ALL_HW_PERF_EVENTS_IN_SYSFS.
> This way you would only use all that memory when it's explicitly
> configured in.

Ingo, any opinions?
--
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/