perf jevents: Add support for Hisi hip08 DDRC PMU aliasing
authorJohn Garry <john.garry@huawei.com>
Fri, 28 Jun 2019 14:35:50 +0000 (22:35 +0800)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Tue, 2 Jul 2019 19:08:15 +0000 (16:08 -0300)
Add support for Hisi hip08 DDRC PMU aliasing. We can now do something like
this:

$perf list

[snip]

uncore ddrc:
  uncore_hisi_ddrc.act_cmd
       [DDRC active commands. Unit: hisi_sccl,ddrc]
  uncore_hisi_ddrc.flux_rcmd
       [DDRC read commands. Unit: hisi_sccl,ddrc]
  uncore_hisi_ddrc.flux_wcmd
       [DDRC write commands. Unit: hisi_sccl,ddrc]
  uncore_hisi_ddrc.flux_wr
       [DDRC precharge commands. Unit: hisi_sccl,ddrc]
  uncore_hisi_ddrc.rnk_chg
       [DDRC rank commands. Unit: hisi_sccl,ddrc]
  uncore_hisi_ddrc.rw_chg
       [DDRC read and write changes. Unit: hisi_sccl,ddrc]

Performance counter stats for 'system wide':

                 0      uncore_hisi_ddrc.flux_rcmd [hisi_sccl1_ddrc0]
                 0      uncore_hisi_ddrc.flux_rcmd [hisi_sccl3_ddrc1]
                 0      uncore_hisi_ddrc.flux_rcmd [hisi_sccl5_ddrc2]
                 0      uncore_hisi_ddrc.flux_rcmd [hisi_sccl7_ddrc3]
                 0      uncore_hisi_ddrc.flux_rcmd [hisi_sccl5_ddrc0]
                 0      uncore_hisi_ddrc.flux_rcmd [hisi_sccl7_ddrc1]
                 0      uncore_hisi_ddrc.flux_rcmd [hisi_sccl1_ddrc3]
                 0      uncore_hisi_ddrc.flux_rcmd [hisi_sccl1_ddrc1]
                 0      uncore_hisi_ddrc.flux_rcmd [hisi_sccl3_ddrc2]
                 0      uncore_hisi_ddrc.flux_rcmd [hisi_sccl5_ddrc3]
                 0      uncore_hisi_ddrc.flux_rcmd [hisi_sccl3_ddrc0]
                 0      uncore_hisi_ddrc.flux_rcmd [hisi_sccl5_ddrc1]
                 0      uncore_hisi_ddrc.flux_rcmd [hisi_sccl7_ddrc2]
                 0      uncore_hisi_ddrc.flux_rcmd [hisi_sccl7_ddrc0]
            20,421      uncore_hisi_ddrc.flux_rcmd [hisi_sccl1_ddrc2]
                 0      uncore_hisi_ddrc.flux_rcmd [hisi_sccl3_ddrc3]

       1.001559011 seconds time elapsed

The kernel driver is in drivers/perf/hisilicon/hisi_uncore_ddrc_pmu.c

Signed-off-by: John Garry <john.garry@huawei.com>
Acked-by: Jiri Olsa <jolsa@kernel.org>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: Ben Hutchings <ben@decadent.org.uk>
Cc: Hendrik Brueckner <brueckner@linux.ibm.com>
Cc: Kan Liang <kan.liang@linux.intel.com>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Mathieu Poirier <mathieu.poirier@linaro.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Shaokun Zhang <zhangshaokun@hisilicon.com>
Cc: Thomas Richter <tmricht@linux.ibm.com>
Cc: Will Deacon <will.deacon@arm.com>
Cc: linux-arm-kernel@lists.infradead.org
Cc: linuxarm@huawei.com
Link: http://lkml.kernel.org/r/1561732552-143038-3-git-send-email-john.garry@huawei.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/pmu-events/arch/arm64/hisilicon/hip08/uncore-ddrc.json [new file with mode: 0644]
tools/perf/pmu-events/jevents.c

diff --git a/tools/perf/pmu-events/arch/arm64/hisilicon/hip08/uncore-ddrc.json b/tools/perf/pmu-events/arch/arm64/hisilicon/hip08/uncore-ddrc.json
new file mode 100644 (file)
index 0000000..0d1556f
--- /dev/null
@@ -0,0 +1,44 @@
+[
+   {
+           "EventCode": "0x02",
+           "EventName": "uncore_hisi_ddrc.flux_wcmd",
+           "BriefDescription": "DDRC write commands",
+           "PublicDescription": "DDRC write commands",
+           "Unit": "hisi_sccl,ddrc",
+   },
+   {
+           "EventCode": "0x03",
+           "EventName": "uncore_hisi_ddrc.flux_rcmd",
+           "BriefDescription": "DDRC read commands",
+           "PublicDescription": "DDRC read commands",
+           "Unit": "hisi_sccl,ddrc",
+   },
+   {
+           "EventCode": "0x04",
+           "EventName": "uncore_hisi_ddrc.flux_wr",
+           "BriefDescription": "DDRC precharge commands",
+           "PublicDescription": "DDRC precharge commands",
+           "Unit": "hisi_sccl,ddrc",
+   },
+   {
+           "EventCode": "0x05",
+           "EventName": "uncore_hisi_ddrc.act_cmd",
+           "BriefDescription": "DDRC active commands",
+           "PublicDescription": "DDRC active commands",
+           "Unit": "hisi_sccl,ddrc",
+   },
+   {
+           "EventCode": "0x06",
+           "EventName": "uncore_hisi_ddrc.rnk_chg",
+           "BriefDescription": "DDRC rank commands",
+           "PublicDescription": "DDRC rank commands",
+           "Unit": "hisi_sccl,ddrc",
+   },
+   {
+           "EventCode": "0x07",
+           "EventName": "uncore_hisi_ddrc.rw_chg",
+           "BriefDescription": "DDRC read and write changes",
+           "PublicDescription": "DDRC read and write changes",
+           "Unit": "hisi_sccl,ddrc",
+   },
+]
index a1184ea64cc6e83c7cf741b4753bfd842522002c..d5997741f1d8d3aa9b9e58c3e7db08459d00ded8 100644 (file)
@@ -236,6 +236,7 @@ static struct map {
        { "CPU-M-CF", "cpum_cf" },
        { "CPU-M-SF", "cpum_sf" },
        { "UPI LL", "uncore_upi" },
+       { "hisi_sccl,ddrc", "hisi_sccl,ddrc" },
        {}
 };