Re: [RFC][PATCH 3/9] perf: export registerred pmus via sysfs

From: Ingo Molnar
Date: Mon May 10 2010 - 07:43:52 EST



* Peter Zijlstra <peterz@xxxxxxxxxxxxx> wrote:

> [...]
>
> This way we can create:
>
> /sys/devices/system/cpu/cpuN/cpu_hardware_events
> cpu_hardware_events/event_source_id
> cpu_hardware_events/cpu_cycles
> cpu_hardware_events/instructions
> /...
>
> /sys/devices/system/cpu/cpuN/cpu_raw_events
> cpu_raw_events/event_source_id
>
>
> These would match the current PERF_TYPE_* values for compatibility
>
> For new PMUs we can start a dynamic range of PERF_TYPE_ (say at 64k but
> that's not ABI and can be changed at any time, we've got u32 to play
> with).
>
> For uncore this would result in:
>
> /sys/devices/system/node/nodeN/node_raw_events
> node_raw_events/event_source_id
>
> and maybe:
>
> /sys/devices/system/node/nodeN/node_events
> node_events/event_source_id
> node_events/local_misses
> /local_hits
> /remote_misses
> /remote_hits
> /...
>
> The software events and tracepoints and kprobes stuff we could hang off
> of /sys/kernel/ or something

Yeah, we really want a mechanism like this in place instead of continuing with
the somewhat ad-hoc extensions to the event enumeration space.

One detail: i think we want one more level. Instead of:

/sys/devices/system/node/nodeN/node_events
node_events/event_source_id
node_events/local_misses
/local_hits
/remote_misses
/remote_hits
/...

We want the individual events to be a directory, containing the event_id:

/sys/devices/system/node/nodeN/node_events
node_events/event_source_id
node_events/local_misses/event_id
/local_hits/event_id
/remote_misses/event_id
/remote_hits/event_id
/...

The reason is that we want to keep our options open to add more attributes to
individual events. (In fact extended attributes already exist for certain
event classes - such as the 'format' info for tracepoints.)

Thanks,

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