Re: [RFC][PATCH v1 02/15] perf: export generic hardware events viasysfs

From: Robert Richter
Date: Wed Jul 28 2010 - 06:02:40 EST


On 27.07.10 13:51:55, Corey Ashford wrote:
> On 07/27/2010 01:27 AM, Robert Richter wrote:
> > On 26.07.10 22:18:23, Lin Ming wrote:
> >
> >>>> /sys/devices/system/cpu/cpu0/events
> >>>> |-- L1-dcache-load-misses
> >>>> | |-- config
> >>>> | `-- type
> >
> > vs.
> >
> >>> |-- L1-dcache-load-misses ===> event name
> >>> | `-- id ===> event id
> >
> >>> This is very simple and flexible and solves the original problem too.
> >>
> >> Yeah, this is flexible. I'll think about this closely.
> >
> > The thing is, if you start introducing the config/type i/f, we will
> > stick with it for a long time. I want to avoid this from the
> > beginning.
> >
> > Using an id only would work with your current implementation too, you
> > only need to maintain an id -> config/type mapping, maybe in some
> > private data section, without exporting it to userspace.
>
> Now that I understand that the sysfs id essentially points to a kernel
> data structure, I like this idea a lot. Before I was thinking that you
> were trying to place a lot of info into the id itself.
>
> The only downside I see, and maybe it's a very minor one, is that you'll
> no longer have the ability to specify an event without specifying a
> sysfs path... there's no other mechanism.

Right, the id is generated dynamically, it could be an incremented u64
value, a pointer to a kernel structure or something else. Its
implementation could even change from kernel to kernel without
breaking the i/f.

Note also, that you will still be able to setup current events using
the traditional way of filling in the syscall structure. Nothing will
change for this.

But yes, a new event could only support a sysfs id setup. And then,
you need sysfs. But you could also implement a non-sysfs setup in
addition.

-Robert

--
Advanced Micro Devices, Inc.
Operating System Research Center

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