Re: [rfc] Describe events in a structured way via sysfs

From: Corey Ashford
Date: Tue Jul 20 2010 - 13:50:39 EST


On 07/20/2010 08:19 AM, Robert Richter wrote:
On 20.07.10 01:48:28, Lin Ming wrote:
The caller reads config and type and pass them into perf_event_attr.

1. Hardware events
/sys/devices/system/cpu/cpu0...cpuN/events
|-- L1-dcache-load-misses ===> event name
| |-- config ===> config value for the event
| `-- type ===> event type

Wouldn't it be much easier to have a unique sysfs id (could be an
u64):

|-- L1-dcache-load-misses ===> event name
| `-- id ===> event id

... and then extend the syscall to enable an event by its sysfs id:

memset(&attr, 0, sizeof(attr));
attr.type = PERF_TYPE_SYSFS;
attr.sysfs_id = sysfs_id;
attr.sample_type = PERF_SAMPLE_CPU | PERF_SAMPLE_RAW;
attr.config = config;
...

The kerrnel then knows which event is meant and the don't have to
provide event specific paramaters such as type/config that requires an
event specific setup. The advantage would be that we can open an event
file descriptor of every kind of event in a standardized way.

Your example above still shows the .config member being set. Was that intentional?

Maybe another way to accomplish this would be to reuse the .config field for the sysfs_id.

We still need a way to deal with event attributes though, so something more than a single sysfs_id would be needed to specify the event completely.

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