Re: [PATCH/RFC] perfcounters: record time running and time enabledfor each counter

From: Corey Ashford
Date: Fri Mar 20 2009 - 16:14:17 EST


Paul Mackerras wrote:
Impact: new functionality

Currently, if there are more counters enabled than can fit on the CPU,
the kernel will multiplex the counters on to the hardware using
round-robin scheduling. That isn't too bad for sampling counters, but
for counting counters it means that the value read from a counter
represents some unknown fraction of the true count of events that
occurred while the counter was enabled.

This remedies the situation by keeping track of how long each counter
is enabled for, and how long it is actually on the cpu and counting
events. These times are recorded in nanoseconds using the task clock
for per-task counters and the cpu clock for per-cpu counters.

These values can be supplied to userspace on a read from the counter.
Userspace requests that they be supplied after the counter value by
setting the PERF_FORMAT_TIME_ENABLED and/or PERF_FORMAT_TIME_RUNNING
bits in the hw_event.read_format field when creating the counter.
(There is no way to change the read format after the counter is
created, though it would be possible to add some way to do that.)
[snip]

This would make the implementation of PAPI simpler than using software CPU timers attached to each group (which I have prototyped).

I'm a little confused about the ABI, though. I see that I can specify which times I want to be able to read, but the order that they appear in the stream seems to be unstated. I tried to figure it out by looking at the kernel code, but there is no reference to PERF_FORMAT_TIME_ENABLED or PERF_FORMAT_TIME_RUNNING in the patch (besides the definition).


Regards,

- Corey

Corey Ashford
Software Engineer
IBM Linux Technology Center, Linux Toolchain
Beaverton, OR
503-578-3507
cjashfor@xxxxxxxxxx

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