perf/x86/intel: Fix bug for "cycles:p" and "cycles:pp" on SLM
authorKan Liang <kan.liang@intel.com>
Mon, 12 Jan 2015 17:42:21 +0000 (17:42 +0000)
committerIngo Molnar <mingo@kernel.org>
Fri, 16 Jan 2015 08:06:59 +0000 (09:06 +0100)
commit33636732dcd7cc738a5913bb730d663c6b03c8fb
treeace9f6093e59ba6fc62cfb7db1e963ad9299927c
parent433678bdc6ed39f053c55da96b51de5bf0aeebb1
perf/x86/intel: Fix bug for "cycles:p" and "cycles:pp" on SLM

cycles:p and cycles:pp do not work on SLM since commit:

   86a04461a99f ("perf/x86: Revamp PEBS event selection")

UOPS_RETIRED.ALL is not a PEBS capable event, so it should not be used
to count cycle number.

Actually SLM calls intel_pebs_aliases_core2() which uses INST_RETIRED.ANY_P
to count the number of cycles. It's a PEBS capable event. But inv and
cmask must be set to count cycles.

Considering SLM allows all events as PEBS with no flags, only
INST_RETIRED.ANY_P, inv=1, cmask=16 needs to handled specially.

Signed-off-by: Kan Liang <kan.liang@intel.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Link: http://lkml.kernel.org/r/1421084541-31639-1-git-send-email-kan.liang@intel.com
Cc: Arnaldo Carvalho de Melo <acme@kernel.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
arch/x86/kernel/cpu/perf_event_intel_ds.c