diff mbox series

[RFC,v4,13/13] perf vendor events: Add JSON metrics for imx8mm DDR Perf

Message ID 1602152121-240367-14-git-send-email-john.garry@huawei.com (mailing list archive)
State New, archived
Headers show
Series perf pmu-events: Support event aliasing for system PMUs | expand

Commit Message

John Garry Oct. 8, 2020, 10:15 a.m. UTC
From: Joakim Zhang <qiangqing.zhang@nxp.com>

Add JSON metrics for imx8mm DDR Perf.

Signed-off-by: Joakim Zhang <qiangqing.zhang@nxp.com>
Signed-off-by: John Garry <john.garry@huawei.com>
---
 .../arch/arm64/freescale/imx8mm/sys/ddrc.json | 39 +++++++++++++++++++
 .../arm64/freescale/imx8mm/sys/metrics.json   | 18 +++++++++
 tools/perf/pmu-events/jevents.c               |  1 +
 3 files changed, 58 insertions(+)
 create mode 100644 tools/perf/pmu-events/arch/arm64/freescale/imx8mm/sys/ddrc.json
 create mode 100644 tools/perf/pmu-events/arch/arm64/freescale/imx8mm/sys/metrics.json

Comments

Joakim Zhang Oct. 12, 2020, 10:03 a.m. UTC | #1
> -----Original Message-----
> From: John Garry <john.garry@huawei.com>
> Sent: 2020年10月8日 18:15
> To: acme@kernel.org; will@kernel.org; mark.rutland@arm.com;
> jolsa@redhat.com; irogers@google.com; leo.yan@linaro.org;
> peterz@infradead.org; mingo@redhat.com;
> alexander.shishkin@linux.intel.com; namhyung@kernel.org;
> mathieu.poirier@linaro.org
> Cc: linuxarm@huawei.com; linux-kernel@vger.kernel.org;
> linux-arm-kernel@lists.infradead.org; Joakim Zhang
> <qiangqing.zhang@nxp.com>; zhangshaokun@hisilicon.com;
> james.clark@arm.com; dl-linux-imx <linux-imx@nxp.com>; John Garry
> <john.garry@huawei.com>
> Subject: [PATCH RFC v4 13/13] perf vendor events: Add JSON metrics for
> imx8mm DDR Perf
> 
> From: Joakim Zhang <qiangqing.zhang@nxp.com>
> 
> Add JSON metrics for imx8mm DDR Perf.
> 
> Signed-off-by: Joakim Zhang <qiangqing.zhang@nxp.com>
> Signed-off-by: John Garry <john.garry@huawei.com>
> ---
>  .../arch/arm64/freescale/imx8mm/sys/ddrc.json | 39 +++++++++++++++++++
>  .../arm64/freescale/imx8mm/sys/metrics.json   | 18 +++++++++
>  tools/perf/pmu-events/jevents.c               |  1 +
>  3 files changed, 58 insertions(+)
>  create mode 100644
> tools/perf/pmu-events/arch/arm64/freescale/imx8mm/sys/ddrc.json
>  create mode 100644
> tools/perf/pmu-events/arch/arm64/freescale/imx8mm/sys/metrics.json
> 
> diff --git
> a/tools/perf/pmu-events/arch/arm64/freescale/imx8mm/sys/ddrc.json
> b/tools/perf/pmu-events/arch/arm64/freescale/imx8mm/sys/ddrc.json
> new file mode 100644
> index 000000000000..3404a880542d
> --- /dev/null
> +++ b/tools/perf/pmu-events/arch/arm64/freescale/imx8mm/sys/ddrc.json
> @@ -0,0 +1,39 @@
> +[
> +   {
> +           "BriefDescription": "ddr cycles event",
> +           "EventCode": "0x00",
> +           "EventName": "imx8_ddr.cycles",
Could you help change to imx8mm_ddr.cycles? Thanks a lot!

> +           "Unit": "imx8_ddr",
> +           "Compat": "i.MX8MM"
> +   },
> +   {
> +           "BriefDescription": "ddr read-cycles event",
> +           "EventCode": "0x2a",
> +           "EventName": "imx8_ddr.read_cycles",
Same here.

> +           "Unit": "imx8_ddr",
> +           "Compat": "i.MX8MM"
> +   },
> +   {
> +           "BriefDescription": "ddr write-cycles event",
> +           "EventCode": "0x2b",
> +           "EventName": "imx8_ddr.write_cycles",
Same here.

> +           "Unit": "imx8_ddr",
> +           "Compat": "i.MX8MM"
> +   },
> +   {
> +           "BriefDescription": "ddr read event",
> +           "EventCode": "0x35",
> +           "EventName": "imx8_ddr.read",
Same here.

> +           "Unit": "imx8_ddr",
> +           "Compat": "i.MX8MM"
> +   },
> +   {
> +           "BriefDescription": "ddr write event",
> +           "EventCode": "0x38",
> +           "EventName": "imx8_ddr.write",
Same here.

> +           "Unit": "imx8_ddr",
> +           "Compat": "i.MX8MM"
> +   }
> +]
> +
> +
> diff --git
> a/tools/perf/pmu-events/arch/arm64/freescale/imx8mm/sys/metrics.json
> b/tools/perf/pmu-events/arch/arm64/freescale/imx8mm/sys/metrics.json
> new file mode 100644
> index 000000000000..ec00212336de
> --- /dev/null
> +++ b/tools/perf/pmu-events/arch/arm64/freescale/imx8mm/sys/metrics.json
> @@ -0,0 +1,18 @@
> +[
> +   {
> +	    "BriefDescription": "bytes all masters read from ddr based on
> read-cycles event",
> +	    "MetricName": "imx8mm_ddr_read.all",
> +	    "MetricExpr": "imx8_ddr.read_cycles * 4 * 4",
> +	    "ScaleUnit": "9.765625e-KB",

A typo, should be "ScaleUnit": "9.765625e-4KB".

Best Regards,
Joakim Zhang
> +	    "Unit": "imx8_ddr",
> +	    "Compat": "i.MX8MM"
> +    },
> +   {
> +	    "BriefDescription": "bytes all masters write to ddr based on
> write-cycles event",
> +	    "MetricName": "imx8mm_ddr_write.all",
> +	    "MetricExpr": "imx8_ddr.write_cycles * 4 * 4",
> +	    "ScaleUnit": "9.765625e-4KB",
> +	    "Unit": "imx8_ddr",
> +	    "Compat": "i.MX8MM"
> +    }
> +]
> diff --git a/tools/perf/pmu-events/jevents.c b/tools/perf/pmu-events/jevents.c
> index 2e581bd9b0a6..b4bd48b076fd 100644
> --- a/tools/perf/pmu-events/jevents.c
> +++ b/tools/perf/pmu-events/jevents.c
> @@ -257,6 +257,7 @@ static struct map {
>  	{ "hisi_sccl,hha", "hisi_sccl,hha" },
>  	{ "hisi_sccl,l3c", "hisi_sccl,l3c" },
>  	/* it's not realistic to keep adding these, we need something more
> scalable ... */
> +	{ "imx8_ddr", "imx8_ddr" },
>  	{ "smmuv3_pmcg", "smmuv3_pmcg" },
>  	{ "L3PMC", "amd_l3" },
>  	{}
> --
> 2.26.2
John Garry Oct. 12, 2020, 10:34 a.m. UTC | #2
On 12/10/2020 11:03, Joakim Zhang wrote:
>> --- /dev/null
>> +++ b/tools/perf/pmu-events/arch/arm64/freescale/imx8mm/sys/ddrc.json
>> @@ -0,0 +1,39 @@
>> +[
>> +   {
>> +           "BriefDescription": "ddr cycles event",
>> +           "EventCode": "0x00",
>> +           "EventName": "imx8_ddr.cycles",
> Could you help change to imx8mm_ddr.cycles? Thanks a lot!

Can do.

Note that I want to improve perf list in future such that alias 
"imx8_ddr.cycles" removes kernel PMU events which this alias is 
matching. The motivation is that perf list can be swamped by kernel 
uncore PMU events listing.

> 
>> +           "Unit": "imx8_ddr",
>> +           "Compat": "i.MX8MM"
diff mbox series

Patch

diff --git a/tools/perf/pmu-events/arch/arm64/freescale/imx8mm/sys/ddrc.json b/tools/perf/pmu-events/arch/arm64/freescale/imx8mm/sys/ddrc.json
new file mode 100644
index 000000000000..3404a880542d
--- /dev/null
+++ b/tools/perf/pmu-events/arch/arm64/freescale/imx8mm/sys/ddrc.json
@@ -0,0 +1,39 @@ 
+[
+   {
+           "BriefDescription": "ddr cycles event",
+           "EventCode": "0x00",
+           "EventName": "imx8_ddr.cycles",
+           "Unit": "imx8_ddr",
+           "Compat": "i.MX8MM"
+   },
+   {
+           "BriefDescription": "ddr read-cycles event",
+           "EventCode": "0x2a",
+           "EventName": "imx8_ddr.read_cycles",
+           "Unit": "imx8_ddr",
+           "Compat": "i.MX8MM"
+   },
+   {
+           "BriefDescription": "ddr write-cycles event",
+           "EventCode": "0x2b",
+           "EventName": "imx8_ddr.write_cycles",
+           "Unit": "imx8_ddr",
+           "Compat": "i.MX8MM"
+   },
+   {
+           "BriefDescription": "ddr read event",
+           "EventCode": "0x35",
+           "EventName": "imx8_ddr.read",
+           "Unit": "imx8_ddr",
+           "Compat": "i.MX8MM"
+   },
+   {
+           "BriefDescription": "ddr write event",
+           "EventCode": "0x38",
+           "EventName": "imx8_ddr.write",
+           "Unit": "imx8_ddr",
+           "Compat": "i.MX8MM"
+   }
+]
+
+
diff --git a/tools/perf/pmu-events/arch/arm64/freescale/imx8mm/sys/metrics.json b/tools/perf/pmu-events/arch/arm64/freescale/imx8mm/sys/metrics.json
new file mode 100644
index 000000000000..ec00212336de
--- /dev/null
+++ b/tools/perf/pmu-events/arch/arm64/freescale/imx8mm/sys/metrics.json
@@ -0,0 +1,18 @@ 
+[
+   {
+	    "BriefDescription": "bytes all masters read from ddr based on read-cycles event",
+	    "MetricName": "imx8mm_ddr_read.all",
+	    "MetricExpr": "imx8_ddr.read_cycles * 4 * 4",
+	    "ScaleUnit": "9.765625e-KB",
+	    "Unit": "imx8_ddr",
+	    "Compat": "i.MX8MM"
+    },
+   {
+	    "BriefDescription": "bytes all masters write to ddr based on write-cycles event",
+	    "MetricName": "imx8mm_ddr_write.all",
+	    "MetricExpr": "imx8_ddr.write_cycles * 4 * 4",
+	    "ScaleUnit": "9.765625e-4KB",
+	    "Unit": "imx8_ddr",
+	    "Compat": "i.MX8MM"
+    }
+]
diff --git a/tools/perf/pmu-events/jevents.c b/tools/perf/pmu-events/jevents.c
index 2e581bd9b0a6..b4bd48b076fd 100644
--- a/tools/perf/pmu-events/jevents.c
+++ b/tools/perf/pmu-events/jevents.c
@@ -257,6 +257,7 @@  static struct map {
 	{ "hisi_sccl,hha", "hisi_sccl,hha" },
 	{ "hisi_sccl,l3c", "hisi_sccl,l3c" },
 	/* it's not realistic to keep adding these, we need something more scalable ... */
+	{ "imx8_ddr", "imx8_ddr" },
 	{ "smmuv3_pmcg", "smmuv3_pmcg" },
 	{ "L3PMC", "amd_l3" },
 	{}