Re: [BUG] perf_event: inst_retired:any_p:c=16:i=1 is notequivalent to cpu_clk_unhalted:thread_p

From: Peter Zijlstra
Date: Tue Jan 18 2011 - 13:36:12 EST


On Tue, 2011-01-18 at 19:05 +0100, Stephane Eranian wrote:
> Peter,
>
> commit 7639dae0ca11038286bbbcda05f2bef601c1eb8d
> Author: Peter Zijlstra <a.p.zijlstra@xxxxxxxxx>
> Date: Tue Dec 14 21:26:40 2010 +0100
>
> perf, x86: Provide a PEBS capable cycle event
>
>
>
> Even with the transformation cmask=16:invert=1, you are not quite
> counting the same thing.
>
> inst_retired:any_p:c=16:i=1 is different from cpu_clk_unhalted:thread_p
>
> Simply because, I think, this form of inst_retired counts in HALTED state.

Drad it does indeed:

# perf stat -a -e cycles:p -e cycles sleep 1

Performance counter stats for 'sleep 1':

61,634,870 cycles
26,703,249 cycles

1.000860820 seconds time elapsed


> This automatic transformation would be "okay" in per-thread mode, but
> not in system-wide mode. It should not be done under the cover. I would
> rather have this option at the user level.

Agreed, since its not identical it had best be done in userspace, too
bad :/ I'll revert this patch.
--
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/