Messages in this thread | | | Subject | Re: [BUG] perf_event: inst_retired:any_p:c=16:i=1 is not equivalent to cpu_clk_unhalted:thread_p | From | Peter Zijlstra <> | Date | Tue, 18 Jan 2011 19:36:33 +0100 |
| |
On Tue, 2011-01-18 at 19:05 +0100, Stephane Eranian wrote: > Peter, > > commit 7639dae0ca11038286bbbcda05f2bef601c1eb8d > Author: Peter Zijlstra <a.p.zijlstra@chello.nl> > 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.
| |