Re: [PATCH 13/15] perf_counter: provide generic callchain bits

From: Corey Ashford
Date: Tue Mar 31 2009 - 13:12:21 EST


Peter Zijlstra wrote:
On Tue, 2009-03-31 at 20:12 +1100, Paul Mackerras wrote:
Corey Ashford writes:

If this is the case, what is the exact meaning of PERF_COUNTER_SIMPLE now? and PERF_COUNTER_GROUP? One simplification would be that reading the fd of a group leader would always read up all of the counters in the group (along with their enabled and running times if those bits are set), and that reading a single counter's fd would yield only that counter's values and times (if enabled). In effect, these two values, PERF_COUNTER_GROUP and PERF_COUNTER_SIMPLE would no longer be necessary at all. Other bits would be used to determine what's in the mmap'd samples.
Now that events are only read through mmap, it's quite simple -
hw_event.read_format controls what read() gives you, and
hw_event.record_type controls what gets put into the pages that you
get with mmap.

Currently read_format and record_type don't use the same set of bit
definitions. Maybe they should? I don't have a strong feeling about
it, but that might be a nice simplification.

Something like the below?

That still has the record and read things separate, but as one unified
overflow output.

I reduced record and read fields to 32bits, as the output type only has
32bits.

diff did a wonderful job making the patch unreadable :/


This looks great! I like the idea of two bit vectors to describe what you get when you read and the format of the mmap'd data. And I like the ability not to include the header on each record if the user space program knows the exact format of the sample records.

Paul is right, too, that having a read_format bit to determine whether reading the leader gives all of the counters or just the leader is a nice addition. I can't think of when I'd use it, but it's a good capability.

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