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