Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1283744

[tip:perf/core] perf/x86: Use INST_RETIRED.TOTAL_CYCLES_PS for cycles:pp for Skylake

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

Show all headers | View raw


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 | NextPrevious in thread | Find similar | Unroll thread


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