perf event grouping for dummies (was Re: [PATCH] arc: perf: Enable generic "cache-references" and "cache-misses" events)
From: Vineet Gupta
Date: Tue Sep 20 2016 - 16:56:43 EST
On 09/01/2016 01:33 AM, Peter Zijlstra wrote:
>> - is that what perf event grouping is ?
>
> Again, nope. Perf event groups are single counter (so no implicit
> addition) that are co-scheduled on the PMU.
I'm not sure I understand - does this require specific PMU/arch support - as in
multiple conditions feeding to same counter. How does perf user make use of this
info - I tried googling around but can't seem to find anything which explains the
semantics.
I can see that group events to work on ARC (although in our case a counter can
cont one condition at a time only) and the results seem to be similar whther we
group or not.
------------->8------------
[ARCLinux]# perf stat -e {cycles,instructions} hackbench
Running with 10*40 (== 400) tasks.
Time: 37.430
Performance counter stats for 'hackbench':
3487777173 cycles
1351709784 instructions # 0.39 insn per cycle
38.957481536 seconds time elapsed
[ARCLinux]# perf stat -e cycles hackbench
Running with 10*40 (== 400) tasks.
Time: 36.735
Performance counter stats for 'hackbench':
3426151391 cycles
38.247235981 seconds time elapsed
[ARCLinux]#
[ARCLinux]# perf stat -e instructions hackbench
Running with 10*40 (== 400) tasks.
Time: 37.537
Performance counter stats for 'hackbench':
1355421559 instructions
39.061784281 seconds time elapsed
------------->8------------
...
>
> You can do it like:
>
> perf stat -e '{cycles,instructions}'
>
> Which will place the cycles event and the instructions event in a group
> and thereby guarantee they're co-scheduled.
Again when you say co-scheduled what do you mean - why would anyone use the event
grouping - is it when they only have 1 counter and they want to count 2
conditions/events at the same time - isn't this same as event multiplexing ?
-Vineet