Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1283744
| From | tip-bot for Andi Kleen <tipbot@zytor.com> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | [tip:perf/core] perf/x86: Use INST_RETIRED.TOTAL_CYCLES_PS for cycles:pp for Skylake |
| Date | 2015-12-04 13:00 +0100 |
| Message-ID | <qBXbS-2b5-51@gated-at.bofh.it> (permalink) |
| References | <qAGZs-2kK-3@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
Commit-ID: ac1e1d30cf90fdc7716150a9c130bdd7d7b9fdd9
Gitweb: http://git.kernel.org/tip/ac1e1d30cf90fdc7716150a9c130bdd7d7b9fdd9
Author: Andi Kleen <ak@linux.intel.com>
AuthorDate: Mon, 30 Nov 2015 16:28:08 -0800
Committer: Ingo Molnar <mingo@kernel.org>
CommitDate: Fri, 4 Dec 2015 10:08:04 +0100
perf/x86: Use INST_RETIRED.TOTAL_CYCLES_PS for cycles:pp for Skylake
I added UOPS_RETIRED.ALL by mistake to the Skylake PEBS event list for
cycles:pp. But the event is not documented for Skylake, and has some
issues.
The recommended replacement for cycles:pp is to use
INST_RETIRED.ANY+pebs as a base, similar to what CPUs before Sandy
Bridge did. This new event is called INST_RETIRED.TOTAL_CYCLES_PS. The
event is not really new, but has been already used by perf before
Sandy Bridge for the original cycles:p
Note the SDM doesn't document that event either, but it's being
documented in the latest version of the event list on:
https://download.01.org/perfmon/SKL
This patch does:
- Remove UOPS_RETIRED.ALL from the Skylake PEBS event list
- Add INST_RETIRED.ANY to the Skylake PEBS event list, and an table entry to
allow cmask=16,inv=1 for cycles:pp
- We don't need an extra entry for the base INST_RETIRED event,
because it is already covered by the catch-all PEBS table entry.
- Switch Skylake to use the Core2 PEBS alias (which is
INST_RETIRED.TOTAL_CYCLES_PS)
Signed-off-by: Andi Kleen <ak@linux.intel.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Stephane Eranian <eranian@google.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Vince Weaver <vincent.weaver@maine.edu>
Link: http://lkml.kernel.org/r/1448929689-13771-1-git-send-email-andi@firstfloor.org
Signed-off-by: Ingo Molnar <mingo@kernel.org>
---
arch/x86/kernel/cpu/perf_event_intel.c | 2 +-
arch/x86/kernel/cpu/perf_event_intel_ds.c | 5 ++---
2 files changed, 3 insertions(+), 4 deletions(-)
diff --git a/arch/x86/kernel/cpu/perf_event_intel.c b/arch/x86/kernel/cpu/perf_event_intel.c
index f63360b..e7daab3 100644
--- a/arch/x86/kernel/cpu/perf_event_intel.c
+++ b/arch/x86/kernel/cpu/perf_event_intel.c
@@ -3521,7 +3521,7 @@ __init int intel_pmu_init(void)
x86_pmu.event_constraints = intel_skl_event_constraints;
x86_pmu.pebs_constraints = intel_skl_pebs_event_constraints;
x86_pmu.extra_regs = intel_skl_extra_regs;
- x86_pmu.pebs_aliases = intel_pebs_aliases_snb;
+ x86_pmu.pebs_aliases = intel_pebs_aliases_core2;
/* all extra regs are per-cpu when HT is on */
x86_pmu.flags |= PMU_FL_HAS_RSP_1;
x86_pmu.flags |= PMU_FL_NO_HT_SHARING;
diff --git a/arch/x86/kernel/cpu/perf_event_intel_ds.c b/arch/x86/kernel/cpu/perf_event_intel_ds.c
index 5db1c77..dcab005 100644
--- a/arch/x86/kernel/cpu/perf_event_intel_ds.c
+++ b/arch/x86/kernel/cpu/perf_event_intel_ds.c
@@ -718,9 +718,8 @@ struct event_constraint intel_hsw_pebs_event_constraints[] = {
struct event_constraint intel_skl_pebs_event_constraints[] = {
INTEL_FLAGS_UEVENT_CONSTRAINT(0x1c0, 0x2), /* INST_RETIRED.PREC_DIST */
- INTEL_FLAGS_UEVENT_CONSTRAINT_DATALA_NA(0x01c2, 0xf), /* UOPS_RETIRED.ALL */
- /* UOPS_RETIRED.ALL, inv=1, cmask=16 (cycles:p). */
- INTEL_FLAGS_EVENT_CONSTRAINT(0x108001c2, 0xf),
+ /* INST_RETIRED.TOTAL_CYCLES_PS (inv=1, cmask=16) (cycles:p). */
+ INTEL_FLAGS_EVENT_CONSTRAINT(0x108000c0, 0x01),
INTEL_PLD_CONSTRAINT(0x1cd, 0xf), /* MEM_TRANS_RETIRED.* */
INTEL_FLAGS_UEVENT_CONSTRAINT_DATALA_LD(0x11d0, 0xf), /* MEM_INST_RETIRED.STLB_MISS_LOADS */
INTEL_FLAGS_UEVENT_CONSTRAINT_DATALA_ST(0x12d0, 0xf), /* MEM_INST_RETIRED.STLB_MISS_STORES */
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Back to linux.kernel | Previous | Next — Previous in thread | Find similar | Unroll thread
[PATCH 1/2] perf, x86: Use INST_RETIRED.TOTAL_CYCLES_PS for cycles:pp for Skylake Andi Kleen <andi@firstfloor.org> - 2015-12-01 01:30 +0100
[PATCH 2/2] x86, perf: Use INST_RETIRED.PREC_DIST for cycles:ppp Andi Kleen <andi@firstfloor.org> - 2015-12-01 01:30 +0100
Re: [PATCH 2/2] x86, perf: Use INST_RETIRED.PREC_DIST for cycles:ppp Peter Zijlstra <peterz@infradead.org> - 2015-12-01 14:50 +0100
Re: [PATCH 2/2] x86, perf: Use INST_RETIRED.PREC_DIST for cycles:ppp Peter Zijlstra <peterz@infradead.org> - 2015-12-01 16:00 +0100
Re: [PATCH 2/2] x86, perf: Use INST_RETIRED.PREC_DIST for cycles:ppp Andi Kleen <ak@linux.intel.com> - 2015-12-01 16:00 +0100
[tip:perf/core] perf/x86: Use INST_RETIRED.PREC_DIST for cycles: ppp tip-bot for Andi Kleen <tipbot@zytor.com> - 2015-12-04 13:00 +0100
Re: [tip:perf/core] perf/x86: Use INST_RETIRED.PREC_DIST for cycles: ppp Ingo Molnar <mingo@kernel.org> - 2015-12-06 14:20 +0100
Re: [tip:perf/core] perf/x86: Use INST_RETIRED.PREC_DIST for cycles: ppp Peter Zijlstra <peterz@infradead.org> - 2015-12-06 23:10 +0100
Re: [tip:perf/core] perf/x86: Use INST_RETIRED.PREC_DIST for cycles: ppp Ingo Molnar <mingo@kernel.org> - 2015-12-07 07:50 +0100
Re: [tip:perf/core] perf/x86: Use INST_RETIRED.PREC_DIST for cycles: ppp Peter Zijlstra <peterz@infradead.org> - 2015-12-07 11:30 +0100
Re: [tip:perf/core] perf/x86: Use INST_RETIRED.PREC_DIST for cycles: ppp Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-12-07 15:10 +0100
Re: [tip:perf/core] perf/x86: Use INST_RETIRED.PREC_DIST for cycles: ppp Peter Zijlstra <peterz@infradead.org> - 2015-12-07 15:20 +0100
Re: [tip:perf/core] perf/x86: Use INST_RETIRED.PREC_DIST for cycles: ppp Peter Zijlstra <peterz@infradead.org> - 2015-12-07 15:00 +0100
Re: [tip:perf/core] perf/x86: Use INST_RETIRED.PREC_DIST for cycles: ppp Ingo Molnar <mingo@kernel.org> - 2015-12-08 06:40 +0100
Re: [tip:perf/core] perf/x86: Use INST_RETIRED.PREC_DIST for cycles: ppp Peter Zijlstra <peterz@infradead.org> - 2015-12-08 10:00 +0100
Re: [tip:perf/core] perf/x86: Use INST_RETIRED.PREC_DIST for cycles: ppp Peter Zijlstra <peterz@infradead.org> - 2015-12-08 14:30 +0100
Re: [tip:perf/core] perf/x86: Use INST_RETIRED.PREC_DIST for cycles: ppp Ingo Molnar <mingo@kernel.org> - 2015-12-09 09:30 +0100
Re: [tip:perf/core] perf/x86: Use INST_RETIRED.PREC_DIST for cycles: ppp Peter Zijlstra <peterz@infradead.org> - 2015-12-08 10:00 +0100
Re: [PATCH 1/2] perf, x86: Use INST_RETIRED.TOTAL_CYCLES_PS for cycles:pp for Skylake Peter Zijlstra <peterz@infradead.org> - 2015-12-01 14:20 +0100
[tip:perf/core] perf/x86: Use INST_RETIRED.TOTAL_CYCLES_PS for cycles:pp for Skylake tip-bot for Andi Kleen <tipbot@zytor.com> - 2015-12-04 13:00 +0100
csiph-web