All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH V1 0/4] tools: perf: Add JSON metrics for i.MX8M platforms
@ 2021-01-19  2:56 ` Joakim Zhang
  0 siblings, 0 replies; 22+ messages in thread
From: Joakim Zhang @ 2021-01-19  2:56 UTC (permalink / raw)
  To: john.garry, acme, jolsa
  Cc: will, linux-perf-users, linux-imx, mark.rutland, linux-arm-kernel

Add JSON metrics for i.MX8M platforms

Joakim Zhang (4):
  perf vendor events: Add bandwidth metric for imx8mm
  perf vendor events: Add JSON metrics for imx8mn DDR Perf
  perf vendor events: Add JSON metrics for imx8mq DDR Perf
  perf vendor events: Add JSON metrics for imx8mp DDR Perf

 .../arm64/freescale/imx8mm/sys/metrics.json   |  20 +-
 .../arch/arm64/freescale/imx8mn/sys/ddrc.json |  37 ++
 .../arm64/freescale/imx8mn/sys/metrics.json   |  34 ++
 .../arch/arm64/freescale/imx8mp/sys/ddrc.json |  37 ++
 .../arm64/freescale/imx8mp/sys/metrics.json   | 474 ++++++++++++++++++
 .../arch/arm64/freescale/imx8mq/sys/ddrc.json |  37 ++
 .../arm64/freescale/imx8mq/sys/metrics.json   |  26 +
 7 files changed, 663 insertions(+), 2 deletions(-)
 create mode 100644 tools/perf/pmu-events/arch/arm64/freescale/imx8mn/sys/ddrc.json
 create mode 100644 tools/perf/pmu-events/arch/arm64/freescale/imx8mn/sys/metrics.json
 create mode 100644 tools/perf/pmu-events/arch/arm64/freescale/imx8mp/sys/ddrc.json
 create mode 100644 tools/perf/pmu-events/arch/arm64/freescale/imx8mp/sys/metrics.json
 create mode 100644 tools/perf/pmu-events/arch/arm64/freescale/imx8mq/sys/ddrc.json
 create mode 100644 tools/perf/pmu-events/arch/arm64/freescale/imx8mq/sys/metrics.json

-- 
2.17.1


^ permalink raw reply	[flat|nested] 22+ messages in thread

* [PATCH V1 0/4] tools: perf: Add JSON metrics for i.MX8M platforms
@ 2021-01-19  2:56 ` Joakim Zhang
  0 siblings, 0 replies; 22+ messages in thread
From: Joakim Zhang @ 2021-01-19  2:56 UTC (permalink / raw)
  To: john.garry, acme, jolsa
  Cc: linux-perf-users, mark.rutland, will, linux-imx, linux-arm-kernel

Add JSON metrics for i.MX8M platforms

Joakim Zhang (4):
  perf vendor events: Add bandwidth metric for imx8mm
  perf vendor events: Add JSON metrics for imx8mn DDR Perf
  perf vendor events: Add JSON metrics for imx8mq DDR Perf
  perf vendor events: Add JSON metrics for imx8mp DDR Perf

 .../arm64/freescale/imx8mm/sys/metrics.json   |  20 +-
 .../arch/arm64/freescale/imx8mn/sys/ddrc.json |  37 ++
 .../arm64/freescale/imx8mn/sys/metrics.json   |  34 ++
 .../arch/arm64/freescale/imx8mp/sys/ddrc.json |  37 ++
 .../arm64/freescale/imx8mp/sys/metrics.json   | 474 ++++++++++++++++++
 .../arch/arm64/freescale/imx8mq/sys/ddrc.json |  37 ++
 .../arm64/freescale/imx8mq/sys/metrics.json   |  26 +
 7 files changed, 663 insertions(+), 2 deletions(-)
 create mode 100644 tools/perf/pmu-events/arch/arm64/freescale/imx8mn/sys/ddrc.json
 create mode 100644 tools/perf/pmu-events/arch/arm64/freescale/imx8mn/sys/metrics.json
 create mode 100644 tools/perf/pmu-events/arch/arm64/freescale/imx8mp/sys/ddrc.json
 create mode 100644 tools/perf/pmu-events/arch/arm64/freescale/imx8mp/sys/metrics.json
 create mode 100644 tools/perf/pmu-events/arch/arm64/freescale/imx8mq/sys/ddrc.json
 create mode 100644 tools/perf/pmu-events/arch/arm64/freescale/imx8mq/sys/metrics.json

-- 
2.17.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 22+ messages in thread

* [PATCH V1 1/4] perf vendor events: Add bandwidth metric for imx8mm
  2021-01-19  2:56 ` Joakim Zhang
@ 2021-01-19  2:56   ` Joakim Zhang
  -1 siblings, 0 replies; 22+ messages in thread
From: Joakim Zhang @ 2021-01-19  2:56 UTC (permalink / raw)
  To: john.garry, acme, jolsa
  Cc: will, linux-perf-users, linux-imx, mark.rutland, linux-arm-kernel

Add bandwidth metric for imx8mm.

Signed-off-by: Joakim Zhang <qiangqing.zhang@nxp.com>
---
 .../arm64/freescale/imx8mm/sys/metrics.json   | 20 +++++++++++++++++--
 1 file changed, 18 insertions(+), 2 deletions(-)

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
index 8e553b67cae6..615be286ecaf 100644
--- a/tools/perf/pmu-events/arch/arm64/freescale/imx8mm/sys/metrics.json
+++ b/tools/perf/pmu-events/arch/arm64/freescale/imx8mm/sys/metrics.json
@@ -1,4 +1,20 @@
 [
+   {
+	    "BriefDescription": "bandwidth usage for lpddr4 evk board",
+	    "MetricName": "imx8mm_bandwidth_usage.lpddr4",
+	    "MetricExpr": "(( imx8_ddr0@read\\-cycles@ + imx8_ddr0@write\\-cycles@ ) * 4 * 4 / duration_time) / (750 * 1000000 * 4 * 4)",
+	    "ScaleUnit": "1e2%",
+	    "Unit": "imx8_ddr",
+	    "Compat": "i.MX8MM"
+   },
+   {
+	    "BriefDescription": "bandwidth usage for ddr4 evk board",
+	    "MetricName": "imx8mm_bandwidth_usage.ddr4",
+	    "MetricExpr": "(( imx8_ddr0@read\\-cycles@ + imx8_ddr0@write\\-cycles@ ) * 4 * 4 / duration_time) / (600 * 1000000 * 4 * 4)",
+	    "ScaleUnit": "1e2%",
+	    "Unit": "imx8_ddr",
+	    "Compat": "i.MX8MM"
+   },
    {
 	    "BriefDescription": "bytes all masters read from ddr based on read-cycles event",
 	    "MetricName": "imx8mm_ddr_read.all",
@@ -6,7 +22,7 @@
 	    "ScaleUnit": "9.765625e-4KB",
 	    "Unit": "imx8_ddr",
 	    "Compat": "i.MX8MM"
-    },
+   },
    {
 	    "BriefDescription": "bytes all masters write to ddr based on write-cycles event",
 	    "MetricName": "imx8mm_ddr_write.all",
@@ -14,5 +30,5 @@
 	    "ScaleUnit": "9.765625e-4KB",
 	    "Unit": "imx8_ddr",
 	    "Compat": "i.MX8MM"
-    }
+   }
 ]
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH V1 1/4] perf vendor events: Add bandwidth metric for imx8mm
@ 2021-01-19  2:56   ` Joakim Zhang
  0 siblings, 0 replies; 22+ messages in thread
From: Joakim Zhang @ 2021-01-19  2:56 UTC (permalink / raw)
  To: john.garry, acme, jolsa
  Cc: linux-perf-users, mark.rutland, will, linux-imx, linux-arm-kernel

Add bandwidth metric for imx8mm.

Signed-off-by: Joakim Zhang <qiangqing.zhang@nxp.com>
---
 .../arm64/freescale/imx8mm/sys/metrics.json   | 20 +++++++++++++++++--
 1 file changed, 18 insertions(+), 2 deletions(-)

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
index 8e553b67cae6..615be286ecaf 100644
--- a/tools/perf/pmu-events/arch/arm64/freescale/imx8mm/sys/metrics.json
+++ b/tools/perf/pmu-events/arch/arm64/freescale/imx8mm/sys/metrics.json
@@ -1,4 +1,20 @@
 [
+   {
+	    "BriefDescription": "bandwidth usage for lpddr4 evk board",
+	    "MetricName": "imx8mm_bandwidth_usage.lpddr4",
+	    "MetricExpr": "(( imx8_ddr0@read\\-cycles@ + imx8_ddr0@write\\-cycles@ ) * 4 * 4 / duration_time) / (750 * 1000000 * 4 * 4)",
+	    "ScaleUnit": "1e2%",
+	    "Unit": "imx8_ddr",
+	    "Compat": "i.MX8MM"
+   },
+   {
+	    "BriefDescription": "bandwidth usage for ddr4 evk board",
+	    "MetricName": "imx8mm_bandwidth_usage.ddr4",
+	    "MetricExpr": "(( imx8_ddr0@read\\-cycles@ + imx8_ddr0@write\\-cycles@ ) * 4 * 4 / duration_time) / (600 * 1000000 * 4 * 4)",
+	    "ScaleUnit": "1e2%",
+	    "Unit": "imx8_ddr",
+	    "Compat": "i.MX8MM"
+   },
    {
 	    "BriefDescription": "bytes all masters read from ddr based on read-cycles event",
 	    "MetricName": "imx8mm_ddr_read.all",
@@ -6,7 +22,7 @@
 	    "ScaleUnit": "9.765625e-4KB",
 	    "Unit": "imx8_ddr",
 	    "Compat": "i.MX8MM"
-    },
+   },
    {
 	    "BriefDescription": "bytes all masters write to ddr based on write-cycles event",
 	    "MetricName": "imx8mm_ddr_write.all",
@@ -14,5 +30,5 @@
 	    "ScaleUnit": "9.765625e-4KB",
 	    "Unit": "imx8_ddr",
 	    "Compat": "i.MX8MM"
-    }
+   }
 ]
-- 
2.17.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH V1 2/4] perf vendor events: Add JSON metrics for imx8mn DDR Perf
  2021-01-19  2:56 ` Joakim Zhang
@ 2021-01-19  2:56   ` Joakim Zhang
  -1 siblings, 0 replies; 22+ messages in thread
From: Joakim Zhang @ 2021-01-19  2:56 UTC (permalink / raw)
  To: john.garry, acme, jolsa
  Cc: will, linux-perf-users, linux-imx, mark.rutland, linux-arm-kernel

Add JSON metrics for imx8mn DDR Perf.

Signed-off-by: Joakim Zhang <qiangqing.zhang@nxp.com>
---
 .../arch/arm64/freescale/imx8mn/sys/ddrc.json | 37 +++++++++++++++++++
 .../arm64/freescale/imx8mn/sys/metrics.json   | 34 +++++++++++++++++
 2 files changed, 71 insertions(+)
 create mode 100644 tools/perf/pmu-events/arch/arm64/freescale/imx8mn/sys/ddrc.json
 create mode 100644 tools/perf/pmu-events/arch/arm64/freescale/imx8mn/sys/metrics.json

diff --git a/tools/perf/pmu-events/arch/arm64/freescale/imx8mn/sys/ddrc.json b/tools/perf/pmu-events/arch/arm64/freescale/imx8mn/sys/ddrc.json
new file mode 100644
index 000000000000..8352e73d6d35
--- /dev/null
+++ b/tools/perf/pmu-events/arch/arm64/freescale/imx8mn/sys/ddrc.json
@@ -0,0 +1,37 @@
+[
+   {
+           "BriefDescription": "ddr cycles event",
+           "EventCode": "0x00",
+           "EventName": "imx8mn_ddr.cycles",
+           "Unit": "imx8_ddr",
+           "Compat": "i.MX8MN"
+   },
+   {
+           "BriefDescription": "ddr read-cycles event",
+           "EventCode": "0x2a",
+           "EventName": "imx8mn_ddr.read_cycles",
+           "Unit": "imx8_ddr",
+           "Compat": "i.MX8MN"
+   },
+   {
+           "BriefDescription": "ddr write-cycles event",
+           "EventCode": "0x2b",
+           "EventName": "imx8mn_ddr.write_cycles",
+           "Unit": "imx8_ddr",
+           "Compat": "i.MX8MN"
+   },
+   {
+           "BriefDescription": "ddr read event",
+           "EventCode": "0x35",
+           "EventName": "imx8mn_ddr.read",
+           "Unit": "imx8_ddr",
+           "Compat": "i.MX8MN"
+   },
+   {
+           "BriefDescription": "ddr write event",
+           "EventCode": "0x38",
+           "EventName": "imx8mn_ddr.write",
+           "Unit": "imx8_ddr",
+           "Compat": "i.MX8MN"
+   }
+]
diff --git a/tools/perf/pmu-events/arch/arm64/freescale/imx8mn/sys/metrics.json b/tools/perf/pmu-events/arch/arm64/freescale/imx8mn/sys/metrics.json
new file mode 100644
index 000000000000..f71f6b0f3822
--- /dev/null
+++ b/tools/perf/pmu-events/arch/arm64/freescale/imx8mn/sys/metrics.json
@@ -0,0 +1,34 @@
+[
+   {
+	    "BriefDescription": "bandwidth usage for lpddr4 evk board",
+	    "MetricName": "imx8mn_bandwidth_usage.lpddr4",
+	    "MetricExpr": "(( imx8_ddr0@read\\-cycles@ + imx8_ddr0@write\\-cycles@ ) * 4 * 2 / duration_time) / (800 * 1000000 * 4 * 2)",
+	    "ScaleUnit": "1e2%",
+	    "Unit": "imx8_ddr",
+	    "Compat": "i.MX8MN"
+   },
+   {
+	    "BriefDescription": "bandwidth usage for ddr4 evk board",
+	    "MetricName": "imx8mn_bandwidth_usage.ddr4",
+	    "MetricExpr": "(( imx8_ddr0@read\\-cycles@ + imx8_ddr0@write\\-cycles@ ) * 4 * 2 / duration_time) / (600 * 1000000 * 4 * 2)",
+	    "ScaleUnit": "1e2%",
+	    "Unit": "imx8_ddr",
+	    "Compat": "i.MX8MN"
+   },
+   {
+	    "BriefDescription": "bytes all masters read from ddr based on read-cycles event",
+	    "MetricName": "imx8mn_ddr_read.all",
+	    "MetricExpr": "imx8mn_ddr.read_cycles * 4 * 4",
+	    "ScaleUnit": "9.765625e-4KB",
+	    "Unit": "imx8_ddr",
+	    "Compat": "i.MX8MN"
+   },
+   {
+	    "BriefDescription": "bytes all masters write to ddr based on write-cycles event",
+	    "MetricName": "imx8mn_ddr_write.all",
+	    "MetricExpr": "imx8mn_ddr.write_cycles * 4 * 4",
+	    "ScaleUnit": "9.765625e-4KB",
+	    "Unit": "imx8_ddr",
+	    "Compat": "i.MX8MN"
+   }
+]
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH V1 2/4] perf vendor events: Add JSON metrics for imx8mn DDR Perf
@ 2021-01-19  2:56   ` Joakim Zhang
  0 siblings, 0 replies; 22+ messages in thread
From: Joakim Zhang @ 2021-01-19  2:56 UTC (permalink / raw)
  To: john.garry, acme, jolsa
  Cc: linux-perf-users, mark.rutland, will, linux-imx, linux-arm-kernel

Add JSON metrics for imx8mn DDR Perf.

Signed-off-by: Joakim Zhang <qiangqing.zhang@nxp.com>
---
 .../arch/arm64/freescale/imx8mn/sys/ddrc.json | 37 +++++++++++++++++++
 .../arm64/freescale/imx8mn/sys/metrics.json   | 34 +++++++++++++++++
 2 files changed, 71 insertions(+)
 create mode 100644 tools/perf/pmu-events/arch/arm64/freescale/imx8mn/sys/ddrc.json
 create mode 100644 tools/perf/pmu-events/arch/arm64/freescale/imx8mn/sys/metrics.json

diff --git a/tools/perf/pmu-events/arch/arm64/freescale/imx8mn/sys/ddrc.json b/tools/perf/pmu-events/arch/arm64/freescale/imx8mn/sys/ddrc.json
new file mode 100644
index 000000000000..8352e73d6d35
--- /dev/null
+++ b/tools/perf/pmu-events/arch/arm64/freescale/imx8mn/sys/ddrc.json
@@ -0,0 +1,37 @@
+[
+   {
+           "BriefDescription": "ddr cycles event",
+           "EventCode": "0x00",
+           "EventName": "imx8mn_ddr.cycles",
+           "Unit": "imx8_ddr",
+           "Compat": "i.MX8MN"
+   },
+   {
+           "BriefDescription": "ddr read-cycles event",
+           "EventCode": "0x2a",
+           "EventName": "imx8mn_ddr.read_cycles",
+           "Unit": "imx8_ddr",
+           "Compat": "i.MX8MN"
+   },
+   {
+           "BriefDescription": "ddr write-cycles event",
+           "EventCode": "0x2b",
+           "EventName": "imx8mn_ddr.write_cycles",
+           "Unit": "imx8_ddr",
+           "Compat": "i.MX8MN"
+   },
+   {
+           "BriefDescription": "ddr read event",
+           "EventCode": "0x35",
+           "EventName": "imx8mn_ddr.read",
+           "Unit": "imx8_ddr",
+           "Compat": "i.MX8MN"
+   },
+   {
+           "BriefDescription": "ddr write event",
+           "EventCode": "0x38",
+           "EventName": "imx8mn_ddr.write",
+           "Unit": "imx8_ddr",
+           "Compat": "i.MX8MN"
+   }
+]
diff --git a/tools/perf/pmu-events/arch/arm64/freescale/imx8mn/sys/metrics.json b/tools/perf/pmu-events/arch/arm64/freescale/imx8mn/sys/metrics.json
new file mode 100644
index 000000000000..f71f6b0f3822
--- /dev/null
+++ b/tools/perf/pmu-events/arch/arm64/freescale/imx8mn/sys/metrics.json
@@ -0,0 +1,34 @@
+[
+   {
+	    "BriefDescription": "bandwidth usage for lpddr4 evk board",
+	    "MetricName": "imx8mn_bandwidth_usage.lpddr4",
+	    "MetricExpr": "(( imx8_ddr0@read\\-cycles@ + imx8_ddr0@write\\-cycles@ ) * 4 * 2 / duration_time) / (800 * 1000000 * 4 * 2)",
+	    "ScaleUnit": "1e2%",
+	    "Unit": "imx8_ddr",
+	    "Compat": "i.MX8MN"
+   },
+   {
+	    "BriefDescription": "bandwidth usage for ddr4 evk board",
+	    "MetricName": "imx8mn_bandwidth_usage.ddr4",
+	    "MetricExpr": "(( imx8_ddr0@read\\-cycles@ + imx8_ddr0@write\\-cycles@ ) * 4 * 2 / duration_time) / (600 * 1000000 * 4 * 2)",
+	    "ScaleUnit": "1e2%",
+	    "Unit": "imx8_ddr",
+	    "Compat": "i.MX8MN"
+   },
+   {
+	    "BriefDescription": "bytes all masters read from ddr based on read-cycles event",
+	    "MetricName": "imx8mn_ddr_read.all",
+	    "MetricExpr": "imx8mn_ddr.read_cycles * 4 * 4",
+	    "ScaleUnit": "9.765625e-4KB",
+	    "Unit": "imx8_ddr",
+	    "Compat": "i.MX8MN"
+   },
+   {
+	    "BriefDescription": "bytes all masters write to ddr based on write-cycles event",
+	    "MetricName": "imx8mn_ddr_write.all",
+	    "MetricExpr": "imx8mn_ddr.write_cycles * 4 * 4",
+	    "ScaleUnit": "9.765625e-4KB",
+	    "Unit": "imx8_ddr",
+	    "Compat": "i.MX8MN"
+   }
+]
-- 
2.17.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH V1 3/4] perf vendor events: Add JSON metrics for imx8mq DDR Perf
  2021-01-19  2:56 ` Joakim Zhang
@ 2021-01-19  2:56   ` Joakim Zhang
  -1 siblings, 0 replies; 22+ messages in thread
From: Joakim Zhang @ 2021-01-19  2:56 UTC (permalink / raw)
  To: john.garry, acme, jolsa
  Cc: will, linux-perf-users, linux-imx, mark.rutland, linux-arm-kernel

Add JSON metrics for imx8mq DDR Perf.

Signed-off-by: Joakim Zhang <qiangqing.zhang@nxp.com>
---
 .../arch/arm64/freescale/imx8mq/sys/ddrc.json | 37 +++++++++++++++++++
 .../arm64/freescale/imx8mq/sys/metrics.json   | 26 +++++++++++++
 2 files changed, 63 insertions(+)
 create mode 100644 tools/perf/pmu-events/arch/arm64/freescale/imx8mq/sys/ddrc.json
 create mode 100644 tools/perf/pmu-events/arch/arm64/freescale/imx8mq/sys/metrics.json

diff --git a/tools/perf/pmu-events/arch/arm64/freescale/imx8mq/sys/ddrc.json b/tools/perf/pmu-events/arch/arm64/freescale/imx8mq/sys/ddrc.json
new file mode 100644
index 000000000000..c8682728ddad
--- /dev/null
+++ b/tools/perf/pmu-events/arch/arm64/freescale/imx8mq/sys/ddrc.json
@@ -0,0 +1,37 @@
+[
+   {
+           "BriefDescription": "ddr cycles event",
+           "EventCode": "0x00",
+           "EventName": "imx8mq_ddr.cycles",
+           "Unit": "imx8_ddr",
+           "Compat": "i.MX8MQ"
+   },
+   {
+           "BriefDescription": "ddr read-cycles event",
+           "EventCode": "0x2a",
+           "EventName": "imx8mq_ddr.read_cycles",
+           "Unit": "imx8_ddr",
+           "Compat": "i.MX8MQ"
+   },
+   {
+           "BriefDescription": "ddr write-cycles event",
+           "EventCode": "0x2b",
+           "EventName": "imx8mq_ddr.write_cycles",
+           "Unit": "imx8_ddr",
+           "Compat": "i.MX8MQ"
+   },
+   {
+           "BriefDescription": "ddr read event",
+           "EventCode": "0x35",
+           "EventName": "imx8mq_ddr.read",
+           "Unit": "imx8_ddr",
+           "Compat": "i.MX8MQ"
+   },
+   {
+           "BriefDescription": "ddr write event",
+           "EventCode": "0x38",
+           "EventName": "imx8mq_ddr.write",
+           "Unit": "imx8_ddr",
+           "Compat": "i.MX8MQ"
+   }
+]
diff --git a/tools/perf/pmu-events/arch/arm64/freescale/imx8mq/sys/metrics.json b/tools/perf/pmu-events/arch/arm64/freescale/imx8mq/sys/metrics.json
new file mode 100644
index 000000000000..c3e9f89a4a4d
--- /dev/null
+++ b/tools/perf/pmu-events/arch/arm64/freescale/imx8mq/sys/metrics.json
@@ -0,0 +1,26 @@
+[
+   {
+	    "BriefDescription": "bandwidth usage for lpddr4 evk board",
+	    "MetricName": "imx8mq_bandwidth_usage.lpddr4",
+	    "MetricExpr": "(( imx8_ddr0@read\\-cycles@ + imx8_ddr0@write\\-cycles@ ) * 4 * 4 / duration_time) / (800 * 1000000 * 4 * 4)",
+	    "ScaleUnit": "1e2%",
+	    "Unit": "imx8_ddr",
+	    "Compat": "i.MX8MQ"
+   },
+   {
+	    "BriefDescription": "bytes all masters read from ddr based on read-cycles event",
+	    "MetricName": "imx8mq_ddr_read.all",
+	    "MetricExpr": "imx8mq_ddr.read_cycles * 4 * 4",
+	    "ScaleUnit": "9.765625e-4KB",
+	    "Unit": "imx8_ddr",
+	    "Compat": "i.MX8MQ"
+   },
+   {
+	    "BriefDescription": "bytes all masters write to ddr based on write-cycles event",
+	    "MetricName": "imx8mq_ddr_write.all",
+	    "MetricExpr": "imx8mq_ddr.write_cycles * 4 * 4",
+	    "ScaleUnit": "9.765625e-4KB",
+	    "Unit": "imx8_ddr",
+	    "Compat": "i.MX8MQ"
+    }
+]
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH V1 3/4] perf vendor events: Add JSON metrics for imx8mq DDR Perf
@ 2021-01-19  2:56   ` Joakim Zhang
  0 siblings, 0 replies; 22+ messages in thread
From: Joakim Zhang @ 2021-01-19  2:56 UTC (permalink / raw)
  To: john.garry, acme, jolsa
  Cc: linux-perf-users, mark.rutland, will, linux-imx, linux-arm-kernel

Add JSON metrics for imx8mq DDR Perf.

Signed-off-by: Joakim Zhang <qiangqing.zhang@nxp.com>
---
 .../arch/arm64/freescale/imx8mq/sys/ddrc.json | 37 +++++++++++++++++++
 .../arm64/freescale/imx8mq/sys/metrics.json   | 26 +++++++++++++
 2 files changed, 63 insertions(+)
 create mode 100644 tools/perf/pmu-events/arch/arm64/freescale/imx8mq/sys/ddrc.json
 create mode 100644 tools/perf/pmu-events/arch/arm64/freescale/imx8mq/sys/metrics.json

diff --git a/tools/perf/pmu-events/arch/arm64/freescale/imx8mq/sys/ddrc.json b/tools/perf/pmu-events/arch/arm64/freescale/imx8mq/sys/ddrc.json
new file mode 100644
index 000000000000..c8682728ddad
--- /dev/null
+++ b/tools/perf/pmu-events/arch/arm64/freescale/imx8mq/sys/ddrc.json
@@ -0,0 +1,37 @@
+[
+   {
+           "BriefDescription": "ddr cycles event",
+           "EventCode": "0x00",
+           "EventName": "imx8mq_ddr.cycles",
+           "Unit": "imx8_ddr",
+           "Compat": "i.MX8MQ"
+   },
+   {
+           "BriefDescription": "ddr read-cycles event",
+           "EventCode": "0x2a",
+           "EventName": "imx8mq_ddr.read_cycles",
+           "Unit": "imx8_ddr",
+           "Compat": "i.MX8MQ"
+   },
+   {
+           "BriefDescription": "ddr write-cycles event",
+           "EventCode": "0x2b",
+           "EventName": "imx8mq_ddr.write_cycles",
+           "Unit": "imx8_ddr",
+           "Compat": "i.MX8MQ"
+   },
+   {
+           "BriefDescription": "ddr read event",
+           "EventCode": "0x35",
+           "EventName": "imx8mq_ddr.read",
+           "Unit": "imx8_ddr",
+           "Compat": "i.MX8MQ"
+   },
+   {
+           "BriefDescription": "ddr write event",
+           "EventCode": "0x38",
+           "EventName": "imx8mq_ddr.write",
+           "Unit": "imx8_ddr",
+           "Compat": "i.MX8MQ"
+   }
+]
diff --git a/tools/perf/pmu-events/arch/arm64/freescale/imx8mq/sys/metrics.json b/tools/perf/pmu-events/arch/arm64/freescale/imx8mq/sys/metrics.json
new file mode 100644
index 000000000000..c3e9f89a4a4d
--- /dev/null
+++ b/tools/perf/pmu-events/arch/arm64/freescale/imx8mq/sys/metrics.json
@@ -0,0 +1,26 @@
+[
+   {
+	    "BriefDescription": "bandwidth usage for lpddr4 evk board",
+	    "MetricName": "imx8mq_bandwidth_usage.lpddr4",
+	    "MetricExpr": "(( imx8_ddr0@read\\-cycles@ + imx8_ddr0@write\\-cycles@ ) * 4 * 4 / duration_time) / (800 * 1000000 * 4 * 4)",
+	    "ScaleUnit": "1e2%",
+	    "Unit": "imx8_ddr",
+	    "Compat": "i.MX8MQ"
+   },
+   {
+	    "BriefDescription": "bytes all masters read from ddr based on read-cycles event",
+	    "MetricName": "imx8mq_ddr_read.all",
+	    "MetricExpr": "imx8mq_ddr.read_cycles * 4 * 4",
+	    "ScaleUnit": "9.765625e-4KB",
+	    "Unit": "imx8_ddr",
+	    "Compat": "i.MX8MQ"
+   },
+   {
+	    "BriefDescription": "bytes all masters write to ddr based on write-cycles event",
+	    "MetricName": "imx8mq_ddr_write.all",
+	    "MetricExpr": "imx8mq_ddr.write_cycles * 4 * 4",
+	    "ScaleUnit": "9.765625e-4KB",
+	    "Unit": "imx8_ddr",
+	    "Compat": "i.MX8MQ"
+    }
+]
-- 
2.17.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH V1 4/4] perf vendor events: Add JSON metrics for imx8mp DDR Perf
  2021-01-19  2:56 ` Joakim Zhang
@ 2021-01-19  2:56   ` Joakim Zhang
  -1 siblings, 0 replies; 22+ messages in thread
From: Joakim Zhang @ 2021-01-19  2:56 UTC (permalink / raw)
  To: john.garry, acme, jolsa
  Cc: will, linux-perf-users, linux-imx, mark.rutland, linux-arm-kernel

Add JSON metrics for imx8mp DDR Perf.

Signed-off-by: Joakim Zhang <qiangqing.zhang@nxp.com>
---
 .../arch/arm64/freescale/imx8mp/sys/ddrc.json |  37 ++
 .../arm64/freescale/imx8mp/sys/metrics.json   | 474 ++++++++++++++++++
 2 files changed, 511 insertions(+)
 create mode 100644 tools/perf/pmu-events/arch/arm64/freescale/imx8mp/sys/ddrc.json
 create mode 100644 tools/perf/pmu-events/arch/arm64/freescale/imx8mp/sys/metrics.json

diff --git a/tools/perf/pmu-events/arch/arm64/freescale/imx8mp/sys/ddrc.json b/tools/perf/pmu-events/arch/arm64/freescale/imx8mp/sys/ddrc.json
new file mode 100644
index 000000000000..f9a89efc9b24
--- /dev/null
+++ b/tools/perf/pmu-events/arch/arm64/freescale/imx8mp/sys/ddrc.json
@@ -0,0 +1,37 @@
+[
+   {
+           "BriefDescription": "ddr cycles event",
+           "EventCode": "0x00",
+           "EventName": "imx8mp_ddr.cycles",
+           "Unit": "imx8_ddr",
+           "Compat": "i.MX8MP"
+   },
+   {
+           "BriefDescription": "ddr read-cycles event",
+           "EventCode": "0x2a",
+           "EventName": "imx8mp_ddr.read_cycles",
+           "Unit": "imx8_ddr",
+           "Compat": "i.MX8MP"
+   },
+   {
+           "BriefDescription": "ddr write-cycles event",
+           "EventCode": "0x2b",
+           "EventName": "imx8mp_ddr.write_cycles",
+           "Unit": "imx8_ddr",
+           "Compat": "i.MX8MP"
+   },
+   {
+           "BriefDescription": "ddr read event",
+           "EventCode": "0x35",
+           "EventName": "imx8mp_ddr.read",
+           "Unit": "imx8_ddr",
+           "Compat": "i.MX8MP"
+   },
+   {
+           "BriefDescription": "ddr write event",
+           "EventCode": "0x38",
+           "EventName": "imx8mp_ddr.write",
+           "Unit": "imx8_ddr",
+           "Compat": "i.MX8MP"
+   }
+]
diff --git a/tools/perf/pmu-events/arch/arm64/freescale/imx8mp/sys/metrics.json b/tools/perf/pmu-events/arch/arm64/freescale/imx8mp/sys/metrics.json
new file mode 100644
index 000000000000..862a45c4dbf5
--- /dev/null
+++ b/tools/perf/pmu-events/arch/arm64/freescale/imx8mp/sys/metrics.json
@@ -0,0 +1,474 @@
+[
+   {
+	    "BriefDescription": "bandwidth usage for lpddr4 evk board",
+	    "MetricName": "imx8mp_bandwidth_usage.lpddr4",
+	    "MetricExpr": "(( imx8_ddr0@axid\\-read\\,axi_mask\\=0xffff\\,axi_id\\=0x0000@ + imx8_ddr0@axid\\-write\\,axi_mask\\=0xffff\\,axi_id\\=0x0000@ ) / duration_time) / (1000 * 1000000 * 4 * 4)",
+	    "ScaleUnit": "1e2%",
+	    "Unit": "imx8_ddr",
+	    "Compat": "i.MX8MP"
+   },
+   {
+	    "BriefDescription": "bytes all masters read from ddr based on read-cycles event",
+	    "MetricName": "imx8mp_ddr_read.all",
+	    "MetricExpr": "imx8mp_ddr.read_cycles * 4 * 4",
+	    "ScaleUnit": "9.765625e-4KB",
+	    "Unit": "imx8_ddr",
+	    "Compat": "i.MX8MP"
+   },
+   {
+	    "BriefDescription": "bytes all masters write to ddr based on write-cycles event",
+	    "MetricName": "imx8mp_ddr_write.all",
+	    "MetricExpr": "imx8mp_ddr.write_cycles * 4 * 4",
+	    "ScaleUnit": "9.765625e-4KB",
+	    "Unit": "imx8_ddr",
+	    "Compat": "i.MX8MP"
+   },
+   {
+	    "BriefDescription": "bytes of a53 core read from ddr",
+	    "MetricName": "imx8mp_ddr_read.a53",
+	    "MetricExpr": "imx8_ddr0@axid\\-read\\,axi_mask\\=0x0000\\,axi_id\\=0x0000@",
+	    "ScaleUnit": "9.765625e-4KB",
+	    "Unit": "imx8_ddr",
+	    "Compat": "i.MX8MP"
+   },
+   {
+	    "BriefDescription": "bytes of a53 core write to ddr",
+	    "MetricName": "imx8mp_ddr_write.a53",
+	    "MetricExpr": "imx8_ddr0@axid\\-write\\,axi_mask\\=0x0000\\,axi_id\\=0x0000@",
+	    "ScaleUnit": "9.765625e-4KB",
+	    "Unit": "imx8_ddr",
+	    "Compat": "i.MX8MP"
+   },
+   {
+	    "BriefDescription": "bytes of supermix(m7) core read from ddr",
+	    "MetricName": "imx8mp_ddr_read.supermix",
+	    "MetricExpr": "imx8_ddr0@axid\\-read\\,axi_mask\\=0x000f\\,axi_id\\=0x0020@",
+	    "ScaleUnit": "9.765625e-4KB",
+	    "Unit": "imx8_ddr",
+	    "Compat": "i.MX8MP"
+   },
+   {
+	    "BriefDescription": "bytes of supermix(m7) write to ddr",
+	    "MetricName": "imx8mp_ddr_write.supermix",
+	    "MetricExpr": "imx8_ddr0@axid\\-write\\,axi_mask\\=0x000f\\,axi_id\\=0x0020@",
+	    "ScaleUnit": "9.765625e-4KB",
+	    "Unit": "imx8_ddr",
+	    "Compat": "i.MX8MP"
+   },
+   {
+	    "BriefDescription": "bytes of gpu 3d read from ddr",
+	    "MetricName": "imx8mp_ddr_read.3d",
+	    "MetricExpr": "imx8_ddr0@axid\\-read\\,axi_mask\\=0x0000\\,axi_id\\=0x0070@",
+	    "ScaleUnit": "9.765625e-4KB",
+	    "Unit": "imx8_ddr",
+	    "Compat": "i.MX8MP"
+   },
+   {
+	    "BriefDescription": "bytes of gpu 3d write to ddr",
+	    "MetricName": "imx8mp_ddr_write.3d",
+	    "MetricExpr": "imx8_ddr0@axid\\-write\\,axi_mask\\=0x0000\\,axi_id\\=0x0070@",
+	    "ScaleUnit": "9.765625e-4KB",
+	    "Unit": "imx8_ddr",
+	    "Compat": "i.MX8MP"
+   },
+   {
+	    "BriefDescription": "bytes of gpu 2d read from ddr",
+	    "MetricName": "imx8mp_ddr_read.2d",
+	    "MetricExpr": "imx8_ddr0@axid\\-read\\,axi_mask\\=0x0000\\,axi_id\\=0x0071@",
+	    "ScaleUnit": "9.765625e-4KB",
+	    "Unit": "imx8_ddr",
+	    "Compat": "i.MX8MP"
+   },
+   {
+	   "BriefDescription": "bytes of gpu 2d write to ddr",
+	   "MetricName": "imx8mp_ddr_write.2d",
+	   "MetricExpr": "imx8_ddr0@axid\\-write\\,axi_mask\\=0x0000\\,axi_id\\=0x0071@",
+	   "ScaleUnit": "9.765625e-4KB",
+	   "Unit": "imx8_ddr",
+	   "Compat": "i.MX8MP"
+   },
+   {
+	   "BriefDescription": "bytes of display lcdif1 read from ddr",
+	   "MetricName": "imx8mp_ddr_read.lcdif1",
+	   "MetricExpr": "imx8_ddr0@axid\\-read\\,axi_mask\\=0x0000\\,axi_id\\=0x0068@",
+	   "ScaleUnit": "9.765625e-4KB",
+	   "Unit": "imx8_ddr",
+	   "Compat": "i.MX8MP"
+   },
+   {
+	   "BriefDescription": "bytes of display lcdif1 write to ddr",
+	   "MetricName": "imx8mp_ddr_write.lcdif1",
+	   "MetricExpr": "imx8_ddr0@axid\\-write\\,axi_mask\\=0x0000\\,axi_id\\=0x0068@",
+	   "ScaleUnit": "9.765625e-4KB",
+	   "Unit": "imx8_ddr",
+	   "Compat": "i.MX8MP"
+   },
+   {
+	   "BriefDescription": "bytes of display lcdif2 read from ddr",
+	   "MetricName": "imx8mp_ddr_read.lcdif2",
+	   "MetricExpr": "imx8_ddr0@axid\\-read\\,axi_mask\\=0x0000\\,axi_id\\=0x0069@",
+	   "ScaleUnit": "9.765625e-4KB",
+	   "Unit": "imx8_ddr",
+	   "Compat": "i.MX8MP"
+   },
+   {
+	   "BriefDescription": "bytes of display lcdif2 write to ddr",
+	   "MetricName": "imx8mp_ddr_write.lcdif2",
+	   "MetricExpr": "imx8_ddr0@axid\\-write\\,axi_mask\\=0x0000\\,axi_id\\=0x0069@",
+	   "ScaleUnit": "9.765625e-4KB",
+	   "Unit": "imx8_ddr",
+	   "Compat": "i.MX8MP"
+   },
+   {
+	   "BriefDescription": "bytes of display isi1 read from ddr",
+	   "MetricName": "imx8mp_ddr_read.isi1",
+	   "MetricExpr": "imx8_ddr0@axid\\-read\\,axi_mask\\=0x0000\\,axi_id\\=0x006a@",
+	   "ScaleUnit": "9.765625e-4KB",
+	   "Unit": "imx8_ddr",
+	   "Compat": "i.MX8MP"
+   },
+   {
+	    "BriefDescription": "bytes of display isi1 write to ddr",
+	    "MetricName": "imx8mp_ddr_write.isi1",
+	    "MetricExpr": "imx8_ddr0@axid\\-write\\,axi_mask\\=0x0000\\,axi_id\\=0x006a@",
+	    "ScaleUnit": "9.765625e-4KB",
+	    "Unit": "imx8_ddr",
+	    "Compat": "i.MX8MP"
+   },
+   {
+	   "BriefDescription": "bytes of display isi2 read from ddr",
+	   "MetricName": "imx8mp_ddr_read.isi2",
+	   "MetricExpr": "imx8_ddr0@axid\\-read\\,axi_mask\\=0x0000\\,axi_id\\=0x006b@",
+	   "ScaleUnit": "9.765625e-4KB",
+	   "Unit": "imx8_ddr",
+	   "Compat": "i.MX8MP"
+   },
+   {
+	   "BriefDescription": "bytes of display isi2 write to ddr",
+	   "MetricName": "imx8mp_ddr_write.isi2",
+	   "MetricExpr": "imx8_ddr0@axid\\-write\\,axi_mask\\=0x0000\\,axi_id\\=0x006b@",
+	   "ScaleUnit": "9.765625e-4KB",
+	   "Unit": "imx8_ddr",
+	   "Compat": "i.MX8MP"
+   },
+   {
+	   "BriefDescription": "bytes of display isi3 read from ddr",
+	   "MetricName": "imx8mp_ddr_read.isi3",
+	   "MetricExpr": "imx8_ddr0@axid\\-read\\,axi_mask\\=0x0000\\,axi_id\\=0x006c@",
+	   "ScaleUnit": "9.765625e-4KB",
+	   "Unit": "imx8_ddr",
+	   "Compat": "i.MX8MP"
+   },
+   {
+	   "BriefDescription": "bytes of display isi3 write to ddr",
+	   "MetricName": "imx8mp_ddr_write.isi3",
+	   "MetricExpr": "imx8_ddr0@axid\\-write\\,axi_mask\\=0x0000\\,axi_id\\=0x006c@",
+	   "ScaleUnit": "9.765625e-4KB",
+	   "Unit": "imx8_ddr",
+	   "Compat": "i.MX8MP"
+   },
+   {
+	   "BriefDescription": "bytes of display isp1 read from ddr",
+	   "MetricName": "imx8mp_ddr_read.isp1",
+	   "MetricExpr": "imx8_ddr0@axid\\-read\\,axi_mask\\=0x0000\\,axi_id\\=0x006d@",
+	   "ScaleUnit": "9.765625e-4KB",
+	   "Unit": "imx8_ddr",
+	   "Compat": "i.MX8MP"
+   },
+   {
+	   "BriefDescription": "bytes of display isp1 write to ddr",
+	   "MetricName": "imx8mp_ddr_write.isp1",
+	   "MetricExpr": "imx8_ddr0@axid\\-write\\,axi_mask\\=0x0000\\,axi_id\\=0x006d@",
+	   "MetricGroup": "imx8_ddr_DDR_MON",
+	   "Unit": "imx8_ddr",
+	   "Compat": "i.MX8MP"
+   },
+   {
+	   "BriefDescription": "bytes of display isp2 read from ddr",
+	   "MetricName": "imx8mp_ddr_read.isp2",
+	   "MetricExpr": "imx8_ddr0@axid\\-read\\,axi_mask\\=0x0000\\,axi_id\\=0x006e@",
+	   "ScaleUnit": "9.765625e-4KB",
+	   "Unit": "imx8_ddr",
+	   "Compat": "i.MX8MP"
+   },
+   {
+	   "BriefDescription": "bytes of display isp2 write to ddr",
+	   "MetricName": "imx8mp_ddr_write.isp2",
+	   "MetricExpr": "imx8_ddr0@axid\\-write\\,axi_mask\\=0x0000\\,axi_id\\=0x006e@",
+	   "ScaleUnit": "9.765625e-4KB",
+	   "Unit": "imx8_ddr",
+	   "Compat": "i.MX8MP"
+   },
+   {
+	   "BriefDescription": "bytes of display dewarp read from ddr",
+	   "MetricName": "imx8mp_ddr_read.dewarp",
+	   "MetricExpr": "imx8_ddr0@axid\\-read\\,axi_mask\\=0x0000\\,axi_id\\=0x006f@",
+	   "ScaleUnit": "9.765625e-4KB",
+	   "Unit": "imx8_ddr",
+	   "Compat": "i.MX8MP"
+   },
+   {
+	   "BriefDescription": "bytes of display dewarp write to ddr",
+	   "MetricName": "imx8mp_ddr_write.dewarp",
+	   "MetricExpr": "imx8_ddr0@axid\\-write\\,axi_mask\\=0x0000\\,axi_id\\=0x006f@",
+	   "ScaleUnit": "9.765625e-4KB",
+	   "Unit": "imx8_ddr",
+	   "Compat": "i.MX8MP"
+   },
+   {
+	   "BriefDescription": "bytes of vpu1 read from ddr",
+	   "MetricName": "imx8mp_ddr_read.vpu1",
+	   "MetricExpr": "imx8_ddr0@axid\\-read\\,axi_mask\\=0x0000\\,axi_id\\=0x007c@",
+	   "ScaleUnit": "9.765625e-4KB",
+	   "Unit": "imx8_ddr",
+	   "Compat": "i.MX8MP"
+   },
+   {
+	   "BriefDescription": "bytes of vpu1 write to ddr",
+	   "MetricName": "imx8mp_ddr_write.vpu1",
+	   "MetricExpr": "imx8_ddr0@axid\\-write\\,axi_mask\\=0x0000\\,axi_id\\=0x007c@",
+	   "ScaleUnit": "9.765625e-4KB",
+	   "Unit": "imx8_ddr",
+	   "Compat": "i.MX8MP"
+   },
+   {
+	   "BriefDescription": "bytes of vpu2 read from ddr",
+	   "MetricName": "imx8mp_ddr_read.vpu2",
+	   "MetricExpr": "imx8_ddr0@axid\\-read\\,axi_mask\\=0x0000\\,axi_id\\=0x007d@",
+	   "ScaleUnit": "9.765625e-4KB",
+	   "Unit": "imx8_ddr",
+	   "Compat": "i.MX8MP"
+   },
+   {
+	   "BriefDescription": "bytes of vpu2 write to ddr",
+	   "MetricName": "imx8mp_ddr_write.vpu2",
+	   "MetricExpr": "imx8_ddr0@axid\\-write\\,axi_mask\\=0x0000\\,axi_id\\=0x007d@",
+	   "ScaleUnit": "9.765625e-4KB",
+	   "Unit": "imx8_ddr",
+	   "Compat": "i.MX8MP"
+   },
+   {
+	   "BriefDescription": "bytes of vpu3 read from ddr",
+	   "MetricName": "imx8mp_ddr_read.vpu3",
+	   "MetricExpr": "imx8_ddr0@axid\\-read\\,axi_mask\\=0x0000\\,axi_id\\=0x007e@",
+	   "ScaleUnit": "9.765625e-4KB",
+	   "Unit": "imx8_ddr",
+	   "Compat": "i.MX8MP"
+   },
+   {
+	   "BriefDescription": "bytes of vpu3 write to ddr",
+	   "MetricName": "imx8mp_ddr_write.vpu3",
+	   "MetricExpr": "imx8_ddr0@axid\\-write\\,axi_mask\\=0x0000\\,axi_id\\=0x007e@",
+	   "ScaleUnit": "9.765625e-4KB",
+	   "Unit": "imx8_ddr",
+	   "Compat": "i.MX8MP"
+   },
+   {
+	   "BriefDescription": "bytes of npu read from ddr",
+	   "MetricName": "imx8mp_ddr_read.npu",
+	   "MetricExpr": "imx8_ddr0@axid\\-read\\,axi_mask\\=0x0000\\,axi_id\\=0x0073@",
+	   "ScaleUnit": "9.765625e-4KB",
+	   "Unit": "imx8_ddr",
+	   "Compat": "i.MX8MP"
+   },
+   {
+	   "BriefDescription": "bytes of npu write to ddr",
+	   "MetricName": "imx8mp_ddr_write.npu",
+	   "MetricExpr": "imx8_ddr0@axid\\-write\\,axi_mask\\=0x0000\\,axi_id\\=0x0073@",
+	   "ScaleUnit": "9.765625e-4KB",
+	   "Unit": "imx8_ddr",
+	   "Compat": "i.MX8MP"
+   },
+   {
+	   "BriefDescription": "bytes of hsio usb1 read from ddr",
+	   "MetricName": "imx8mp_ddr_read.usb1",
+	   "MetricExpr": "imx8_ddr0@axid\\-read\\,axi_mask\\=0x0000\\,axi_id\\=0x0078@",
+	   "ScaleUnit": "9.765625e-4KB",
+	   "Unit": "imx8_ddr",
+	   "Compat": "i.MX8MP"
+   },
+   {
+	   "BriefDescription": "bytes of hsio usb1 write to ddr",
+	   "MetricName": "imx8mp_ddr_write.usb1",
+	   "MetricExpr": "imx8_ddr0@axid\\-write\\,axi_mask\\=0x0000\\,axi_id\\=0x0078@",
+	   "ScaleUnit": "9.765625e-4KB",
+	   "Unit": "imx8_ddr",
+	   "Compat": "i.MX8MP"
+   },
+   {
+	   "BriefDescription": "bytes of hsio usb2 read from ddr",
+	   "MetricName": "imx8mp_ddr_read.usb2",
+	   "MetricExpr": "imx8_ddr0@axid\\-read\\,axi_mask\\=0x0000\\,axi_id\\=0x0079@",
+	   "ScaleUnit": "9.765625e-4KB",
+	   "Unit": "imx8_ddr",
+	   "Compat": "i.MX8MP"
+   },
+   {
+	   "BriefDescription": "bytes of hsio usb2 write to ddr",
+	   "MetricName": "imx8mp_ddr_write.usb2",
+	   "MetricExpr": "imx8_ddr0@axid\\-write\\,axi_mask\\=0x0000\\,axi_id\\=0x0079@",
+	   "ScaleUnit": "9.765625e-4KB",
+	   "Unit": "imx8_ddr",
+	   "Compat": "i.MX8MP"
+   },
+   {
+	   "BriefDescription": "bytes of hsio pci read from ddr",
+	   "MetricName": "imx8mp_ddr_read.pci",
+	   "MetricExpr": "imx8_ddr0@axid\\-read\\,axi_mask\\=0x0000\\,axi_id\\=0x007a@",
+	   "ScaleUnit": "9.765625e-4KB",
+	   "Unit": "imx8_ddr",
+	   "Compat": "i.MX8MP"
+   },
+   {
+	   "BriefDescription": "bytes of hsio pci write to ddr",
+	   "MetricName": "imx8mp_ddr_write.pci",
+	   "MetricExpr": "imx8_ddr0@axid\\-write\\,axi_mask\\=0x0000\\,axi_id\\=0x007a@",
+	   "ScaleUnit": "9.765625e-4KB",
+	   "Unit": "imx8_ddr",
+	   "Compat": "i.MX8MP"
+   },
+   {
+	   "BriefDescription": "bytes of hdmi_tx hrv_mwr read from ddr",
+	   "MetricName": "imx8mp_ddr_read.hdmi_hrv_mwr",
+	   "MetricExpr": "imx8_ddr0@axid\\-read\\,axi_mask\\=0x0000\\,axi_id\\=0x0074@",
+	   "ScaleUnit": "9.765625e-4KB",
+	   "Unit": "imx8_ddr",
+	   "Compat": "i.MX8MP"
+   },
+   {
+	   "BriefDescription": "bytes of hdmi_tx hrv_mwr write to ddr",
+	   "MetricName": "imx8mp_ddr_write.hdmi_hrv_mwr",
+	   "MetricExpr": "imx8_ddr0@axid\\-write\\,axi_mask\\=0x0000\\,axi_id\\=0x0074@",
+	   "ScaleUnit": "9.765625e-4KB",
+	   "Unit": "imx8_ddr",
+	   "Compat": "i.MX8MP"
+   },
+   {
+	   "BriefDescription": "bytes of hdmi_tx lcdif read from ddr",
+	   "MetricName": "imx8mp_ddr_read.hdmi_lcdif",
+	   "MetricExpr": "imx8_ddr0@axid\\-read\\,axi_mask\\=0x0000\\,axi_id\\=0x0075@",
+	   "ScaleUnit": "9.765625e-4KB",
+	   "Unit": "imx8_ddr",
+	   "Compat": "i.MX8MP"
+   },
+   {
+	   "BriefDescription": "bytes of hdmi_tx lcdif write to ddr",
+	   "MetricName": "imx8mp_ddr_write.hdmi_lcdif",
+	   "MetricExpr": "imx8_ddr0@axid\\-write\\,axi_mask\\=0x0000\\,axi_id\\=0x0075@",
+	   "ScaleUnit": "9.765625e-4KB",
+	   "Unit": "imx8_ddr",
+	   "Compat": "i.MX8MP"
+   },
+   {
+	   "BriefDescription": "bytes of hdmi_tx tx_hdcp read from ddr",
+	   "MetricName": "imx8mp_ddr_read.hdmi_hdcp",
+	   "MetricExpr": "imx8_ddr0@axid\\-read\\,axi_mask\\=0x0000\\,axi_id\\=0x0076@",
+	   "ScaleUnit": "9.765625e-4KB",
+	   "Unit": "imx8_ddr",
+	   "Compat": "i.MX8MP"
+   },
+   {
+	   "BriefDescription": "bytes of hdmi_tx tx_hdcp write to ddr",
+	   "MetricName": "imx8mp_ddr_write.hdmi_hdcp",
+	   "MetricExpr": "imx8_ddr0@axid\\-write\\,axi_mask\\=0x0000\\,axi_id\\=0x0076@",
+	   "ScaleUnit": "9.765625e-4KB",
+	   "Unit": "imx8_ddr",
+	   "Compat": "i.MX8MP"
+   },
+   {
+	   "BriefDescription": "bytes of audio dsp read from ddr",
+	   "MetricName": "imx8mp_ddr_read.audio_dsp",
+	   "MetricExpr": "imx8_ddr0@axid\\-read\\,axi_mask\\=0x0000\\,axi_id\\=0x0041@",
+	   "ScaleUnit": "9.765625e-4KB",
+	   "Unit": "imx8_ddr",
+	   "Compat": "i.MX8MP"
+   },
+   {
+	   "BriefDescription": "bytes of audio dsp write to ddr",
+	   "MetricName": "imx8mp_ddr_write.audio_dsp",
+	   "MetricExpr": "imx8_ddr0@axid\\-write\\,axi_mask\\=0x0000\\,axi_id\\=0x0041@",
+	   "ScaleUnit": "9.765625e-4KB",
+	   "Unit": "imx8_ddr",
+	   "Compat": "i.MX8MP"
+   },
+   {
+	   "BriefDescription": "bytes of audio sdma2_per read from ddr",
+	   "MetricName": "imx8mp_ddr_read.audio_sdma2_per",
+	   "MetricExpr": "imx8_ddr0@axid\\-read\\,axi_mask\\=0x0000\\,axi_id\\=0x0062@",
+	   "ScaleUnit": "9.765625e-4KB",
+	   "Unit": "imx8_ddr",
+	   "Compat": "i.MX8MP"
+   },
+   {
+	   "BriefDescription": "bytes of audio sdma2_per write to ddr",
+	   "MetricName": "imx8mp_ddr_write.audio_sdma2_per",
+	   "MetricExpr": "imx8_ddr0@axid\\-write\\,axi_mask\\=0x0000\\,axi_id\\=0x0062@",
+	   "ScaleUnit": "9.765625e-4KB",
+	   "Unit": "imx8_ddr",
+	   "Compat": "i.MX8MP"
+   },
+   {
+	   "BriefDescription": "bytes of audio sdma2_burst read from ddr",
+	   "MetricName": "imx8mp_ddr_read.audio_sdma2_burst",
+	   "MetricExpr": "imx8_ddr0@axid\\-read\\,axi_mask\\=0x0000\\,axi_id\\=0x0063@",
+	   "ScaleUnit": "9.765625e-4KB",
+	   "Unit": "imx8_ddr",
+	   "Compat": "i.MX8MP"
+   },
+   {
+	   "BriefDescription": "bytes of audio sdma2_burst write to ddr",
+	   "MetricName": "imx8mp_ddr_write.audio_sdma2_burst",
+	   "MetricExpr": "imx8_ddr0@axid\\-write\\,axi_mask\\=0x0000\\,axi_id\\=0x0063@",
+	   "ScaleUnit": "9.765625e-4KB",
+	   "Unit": "imx8_ddr",
+	   "Compat": "i.MX8MP"
+   },
+   {
+	   "BriefDescription": "bytes of audio sdma3_per read from ddr",
+	   "MetricName": "imx8mp_ddr_read.audio_sdma3_per",
+	   "MetricExpr": "imx8_ddr0@axid\\-read\\,axi_mask\\=0x0000\\,axi_id\\=0x0064@",
+	   "ScaleUnit": "9.765625e-4KB",
+	   "Unit": "imx8_ddr",
+	   "Compat": "i.MX8MP"
+   },
+   {
+	   "BriefDescription": "bytes of audio sdma3_per write to ddr",
+	   "MetricName": "imx8mp_ddr_write.audio_sdma3_per",
+	   "MetricExpr": "imx8_ddr0@axid\\-write\\,axi_mask\\=0x0000\\,axi_id\\=0x0064@",
+	   "ScaleUnit": "9.765625e-4KB",
+	   "Unit": "imx8_ddr",
+	   "Compat": "i.MX8MP"
+   },
+   {
+	   "BriefDescription": "bytes of audio sdma3_burst read from ddr",
+	   "MetricName": "imx8mp_ddr_read.audio_sdma3_burst",
+	   "MetricExpr": "imx8_ddr0@axid\\-read\\,axi_mask\\=0x0000\\,axi_id\\=0x0065@",
+	   "ScaleUnit": "9.765625e-4KB",
+	   "Unit": "imx8_ddr",
+	   "Compat": "i.MX8MP"
+   },
+   {
+	   "BriefDescription": "bytes of audio sdma3_burst write to ddr",
+	   "MetricName": "imx8mp_ddr_write.audio_sdma3_burst",
+	   "MetricExpr": "imx8_ddr0@axid\\-write\\,axi_mask\\=0x0000\\,axi_id\\=0x0065@",
+	   "ScaleUnit": "9.765625e-4KB",
+	   "Unit": "imx8_ddr",
+	   "Compat": "i.MX8MP"
+   },
+   {
+	   "BriefDescription": "bytes of audio sdma_pif read from ddr",
+	   "MetricName": "imx8mp_ddr_read.audio_sdma_pif",
+	   "MetricExpr": "imx8_ddr0@axid\\-read\\,axi_mask\\=0x0000\\,axi_id\\=0x0066@",
+	   "ScaleUnit": "9.765625e-4KB",
+	   "Unit": "imx8_ddr",
+	   "Compat": "i.MX8MP"
+   },
+   {
+	   "BriefDescription": "bytes of audio sdma_pif write to ddr",
+	   "MetricName": "imx8mp_ddr_write.audio_sdma_pif",
+	   "MetricExpr": "imx8_ddr0@axid\\-write\\,axi_mask\\=0x0000\\,axi_id\\=0x0066@",
+	   "ScaleUnit": "9.765625e-4KB",
+	   "Unit": "imx8_ddr",
+	   "Compat": "i.MX8MP"
+   }
+]
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [PATCH V1 4/4] perf vendor events: Add JSON metrics for imx8mp DDR Perf
@ 2021-01-19  2:56   ` Joakim Zhang
  0 siblings, 0 replies; 22+ messages in thread
From: Joakim Zhang @ 2021-01-19  2:56 UTC (permalink / raw)
  To: john.garry, acme, jolsa
  Cc: linux-perf-users, mark.rutland, will, linux-imx, linux-arm-kernel

Add JSON metrics for imx8mp DDR Perf.

Signed-off-by: Joakim Zhang <qiangqing.zhang@nxp.com>
---
 .../arch/arm64/freescale/imx8mp/sys/ddrc.json |  37 ++
 .../arm64/freescale/imx8mp/sys/metrics.json   | 474 ++++++++++++++++++
 2 files changed, 511 insertions(+)
 create mode 100644 tools/perf/pmu-events/arch/arm64/freescale/imx8mp/sys/ddrc.json
 create mode 100644 tools/perf/pmu-events/arch/arm64/freescale/imx8mp/sys/metrics.json

diff --git a/tools/perf/pmu-events/arch/arm64/freescale/imx8mp/sys/ddrc.json b/tools/perf/pmu-events/arch/arm64/freescale/imx8mp/sys/ddrc.json
new file mode 100644
index 000000000000..f9a89efc9b24
--- /dev/null
+++ b/tools/perf/pmu-events/arch/arm64/freescale/imx8mp/sys/ddrc.json
@@ -0,0 +1,37 @@
+[
+   {
+           "BriefDescription": "ddr cycles event",
+           "EventCode": "0x00",
+           "EventName": "imx8mp_ddr.cycles",
+           "Unit": "imx8_ddr",
+           "Compat": "i.MX8MP"
+   },
+   {
+           "BriefDescription": "ddr read-cycles event",
+           "EventCode": "0x2a",
+           "EventName": "imx8mp_ddr.read_cycles",
+           "Unit": "imx8_ddr",
+           "Compat": "i.MX8MP"
+   },
+   {
+           "BriefDescription": "ddr write-cycles event",
+           "EventCode": "0x2b",
+           "EventName": "imx8mp_ddr.write_cycles",
+           "Unit": "imx8_ddr",
+           "Compat": "i.MX8MP"
+   },
+   {
+           "BriefDescription": "ddr read event",
+           "EventCode": "0x35",
+           "EventName": "imx8mp_ddr.read",
+           "Unit": "imx8_ddr",
+           "Compat": "i.MX8MP"
+   },
+   {
+           "BriefDescription": "ddr write event",
+           "EventCode": "0x38",
+           "EventName": "imx8mp_ddr.write",
+           "Unit": "imx8_ddr",
+           "Compat": "i.MX8MP"
+   }
+]
diff --git a/tools/perf/pmu-events/arch/arm64/freescale/imx8mp/sys/metrics.json b/tools/perf/pmu-events/arch/arm64/freescale/imx8mp/sys/metrics.json
new file mode 100644
index 000000000000..862a45c4dbf5
--- /dev/null
+++ b/tools/perf/pmu-events/arch/arm64/freescale/imx8mp/sys/metrics.json
@@ -0,0 +1,474 @@
+[
+   {
+	    "BriefDescription": "bandwidth usage for lpddr4 evk board",
+	    "MetricName": "imx8mp_bandwidth_usage.lpddr4",
+	    "MetricExpr": "(( imx8_ddr0@axid\\-read\\,axi_mask\\=0xffff\\,axi_id\\=0x0000@ + imx8_ddr0@axid\\-write\\,axi_mask\\=0xffff\\,axi_id\\=0x0000@ ) / duration_time) / (1000 * 1000000 * 4 * 4)",
+	    "ScaleUnit": "1e2%",
+	    "Unit": "imx8_ddr",
+	    "Compat": "i.MX8MP"
+   },
+   {
+	    "BriefDescription": "bytes all masters read from ddr based on read-cycles event",
+	    "MetricName": "imx8mp_ddr_read.all",
+	    "MetricExpr": "imx8mp_ddr.read_cycles * 4 * 4",
+	    "ScaleUnit": "9.765625e-4KB",
+	    "Unit": "imx8_ddr",
+	    "Compat": "i.MX8MP"
+   },
+   {
+	    "BriefDescription": "bytes all masters write to ddr based on write-cycles event",
+	    "MetricName": "imx8mp_ddr_write.all",
+	    "MetricExpr": "imx8mp_ddr.write_cycles * 4 * 4",
+	    "ScaleUnit": "9.765625e-4KB",
+	    "Unit": "imx8_ddr",
+	    "Compat": "i.MX8MP"
+   },
+   {
+	    "BriefDescription": "bytes of a53 core read from ddr",
+	    "MetricName": "imx8mp_ddr_read.a53",
+	    "MetricExpr": "imx8_ddr0@axid\\-read\\,axi_mask\\=0x0000\\,axi_id\\=0x0000@",
+	    "ScaleUnit": "9.765625e-4KB",
+	    "Unit": "imx8_ddr",
+	    "Compat": "i.MX8MP"
+   },
+   {
+	    "BriefDescription": "bytes of a53 core write to ddr",
+	    "MetricName": "imx8mp_ddr_write.a53",
+	    "MetricExpr": "imx8_ddr0@axid\\-write\\,axi_mask\\=0x0000\\,axi_id\\=0x0000@",
+	    "ScaleUnit": "9.765625e-4KB",
+	    "Unit": "imx8_ddr",
+	    "Compat": "i.MX8MP"
+   },
+   {
+	    "BriefDescription": "bytes of supermix(m7) core read from ddr",
+	    "MetricName": "imx8mp_ddr_read.supermix",
+	    "MetricExpr": "imx8_ddr0@axid\\-read\\,axi_mask\\=0x000f\\,axi_id\\=0x0020@",
+	    "ScaleUnit": "9.765625e-4KB",
+	    "Unit": "imx8_ddr",
+	    "Compat": "i.MX8MP"
+   },
+   {
+	    "BriefDescription": "bytes of supermix(m7) write to ddr",
+	    "MetricName": "imx8mp_ddr_write.supermix",
+	    "MetricExpr": "imx8_ddr0@axid\\-write\\,axi_mask\\=0x000f\\,axi_id\\=0x0020@",
+	    "ScaleUnit": "9.765625e-4KB",
+	    "Unit": "imx8_ddr",
+	    "Compat": "i.MX8MP"
+   },
+   {
+	    "BriefDescription": "bytes of gpu 3d read from ddr",
+	    "MetricName": "imx8mp_ddr_read.3d",
+	    "MetricExpr": "imx8_ddr0@axid\\-read\\,axi_mask\\=0x0000\\,axi_id\\=0x0070@",
+	    "ScaleUnit": "9.765625e-4KB",
+	    "Unit": "imx8_ddr",
+	    "Compat": "i.MX8MP"
+   },
+   {
+	    "BriefDescription": "bytes of gpu 3d write to ddr",
+	    "MetricName": "imx8mp_ddr_write.3d",
+	    "MetricExpr": "imx8_ddr0@axid\\-write\\,axi_mask\\=0x0000\\,axi_id\\=0x0070@",
+	    "ScaleUnit": "9.765625e-4KB",
+	    "Unit": "imx8_ddr",
+	    "Compat": "i.MX8MP"
+   },
+   {
+	    "BriefDescription": "bytes of gpu 2d read from ddr",
+	    "MetricName": "imx8mp_ddr_read.2d",
+	    "MetricExpr": "imx8_ddr0@axid\\-read\\,axi_mask\\=0x0000\\,axi_id\\=0x0071@",
+	    "ScaleUnit": "9.765625e-4KB",
+	    "Unit": "imx8_ddr",
+	    "Compat": "i.MX8MP"
+   },
+   {
+	   "BriefDescription": "bytes of gpu 2d write to ddr",
+	   "MetricName": "imx8mp_ddr_write.2d",
+	   "MetricExpr": "imx8_ddr0@axid\\-write\\,axi_mask\\=0x0000\\,axi_id\\=0x0071@",
+	   "ScaleUnit": "9.765625e-4KB",
+	   "Unit": "imx8_ddr",
+	   "Compat": "i.MX8MP"
+   },
+   {
+	   "BriefDescription": "bytes of display lcdif1 read from ddr",
+	   "MetricName": "imx8mp_ddr_read.lcdif1",
+	   "MetricExpr": "imx8_ddr0@axid\\-read\\,axi_mask\\=0x0000\\,axi_id\\=0x0068@",
+	   "ScaleUnit": "9.765625e-4KB",
+	   "Unit": "imx8_ddr",
+	   "Compat": "i.MX8MP"
+   },
+   {
+	   "BriefDescription": "bytes of display lcdif1 write to ddr",
+	   "MetricName": "imx8mp_ddr_write.lcdif1",
+	   "MetricExpr": "imx8_ddr0@axid\\-write\\,axi_mask\\=0x0000\\,axi_id\\=0x0068@",
+	   "ScaleUnit": "9.765625e-4KB",
+	   "Unit": "imx8_ddr",
+	   "Compat": "i.MX8MP"
+   },
+   {
+	   "BriefDescription": "bytes of display lcdif2 read from ddr",
+	   "MetricName": "imx8mp_ddr_read.lcdif2",
+	   "MetricExpr": "imx8_ddr0@axid\\-read\\,axi_mask\\=0x0000\\,axi_id\\=0x0069@",
+	   "ScaleUnit": "9.765625e-4KB",
+	   "Unit": "imx8_ddr",
+	   "Compat": "i.MX8MP"
+   },
+   {
+	   "BriefDescription": "bytes of display lcdif2 write to ddr",
+	   "MetricName": "imx8mp_ddr_write.lcdif2",
+	   "MetricExpr": "imx8_ddr0@axid\\-write\\,axi_mask\\=0x0000\\,axi_id\\=0x0069@",
+	   "ScaleUnit": "9.765625e-4KB",
+	   "Unit": "imx8_ddr",
+	   "Compat": "i.MX8MP"
+   },
+   {
+	   "BriefDescription": "bytes of display isi1 read from ddr",
+	   "MetricName": "imx8mp_ddr_read.isi1",
+	   "MetricExpr": "imx8_ddr0@axid\\-read\\,axi_mask\\=0x0000\\,axi_id\\=0x006a@",
+	   "ScaleUnit": "9.765625e-4KB",
+	   "Unit": "imx8_ddr",
+	   "Compat": "i.MX8MP"
+   },
+   {
+	    "BriefDescription": "bytes of display isi1 write to ddr",
+	    "MetricName": "imx8mp_ddr_write.isi1",
+	    "MetricExpr": "imx8_ddr0@axid\\-write\\,axi_mask\\=0x0000\\,axi_id\\=0x006a@",
+	    "ScaleUnit": "9.765625e-4KB",
+	    "Unit": "imx8_ddr",
+	    "Compat": "i.MX8MP"
+   },
+   {
+	   "BriefDescription": "bytes of display isi2 read from ddr",
+	   "MetricName": "imx8mp_ddr_read.isi2",
+	   "MetricExpr": "imx8_ddr0@axid\\-read\\,axi_mask\\=0x0000\\,axi_id\\=0x006b@",
+	   "ScaleUnit": "9.765625e-4KB",
+	   "Unit": "imx8_ddr",
+	   "Compat": "i.MX8MP"
+   },
+   {
+	   "BriefDescription": "bytes of display isi2 write to ddr",
+	   "MetricName": "imx8mp_ddr_write.isi2",
+	   "MetricExpr": "imx8_ddr0@axid\\-write\\,axi_mask\\=0x0000\\,axi_id\\=0x006b@",
+	   "ScaleUnit": "9.765625e-4KB",
+	   "Unit": "imx8_ddr",
+	   "Compat": "i.MX8MP"
+   },
+   {
+	   "BriefDescription": "bytes of display isi3 read from ddr",
+	   "MetricName": "imx8mp_ddr_read.isi3",
+	   "MetricExpr": "imx8_ddr0@axid\\-read\\,axi_mask\\=0x0000\\,axi_id\\=0x006c@",
+	   "ScaleUnit": "9.765625e-4KB",
+	   "Unit": "imx8_ddr",
+	   "Compat": "i.MX8MP"
+   },
+   {
+	   "BriefDescription": "bytes of display isi3 write to ddr",
+	   "MetricName": "imx8mp_ddr_write.isi3",
+	   "MetricExpr": "imx8_ddr0@axid\\-write\\,axi_mask\\=0x0000\\,axi_id\\=0x006c@",
+	   "ScaleUnit": "9.765625e-4KB",
+	   "Unit": "imx8_ddr",
+	   "Compat": "i.MX8MP"
+   },
+   {
+	   "BriefDescription": "bytes of display isp1 read from ddr",
+	   "MetricName": "imx8mp_ddr_read.isp1",
+	   "MetricExpr": "imx8_ddr0@axid\\-read\\,axi_mask\\=0x0000\\,axi_id\\=0x006d@",
+	   "ScaleUnit": "9.765625e-4KB",
+	   "Unit": "imx8_ddr",
+	   "Compat": "i.MX8MP"
+   },
+   {
+	   "BriefDescription": "bytes of display isp1 write to ddr",
+	   "MetricName": "imx8mp_ddr_write.isp1",
+	   "MetricExpr": "imx8_ddr0@axid\\-write\\,axi_mask\\=0x0000\\,axi_id\\=0x006d@",
+	   "MetricGroup": "imx8_ddr_DDR_MON",
+	   "Unit": "imx8_ddr",
+	   "Compat": "i.MX8MP"
+   },
+   {
+	   "BriefDescription": "bytes of display isp2 read from ddr",
+	   "MetricName": "imx8mp_ddr_read.isp2",
+	   "MetricExpr": "imx8_ddr0@axid\\-read\\,axi_mask\\=0x0000\\,axi_id\\=0x006e@",
+	   "ScaleUnit": "9.765625e-4KB",
+	   "Unit": "imx8_ddr",
+	   "Compat": "i.MX8MP"
+   },
+   {
+	   "BriefDescription": "bytes of display isp2 write to ddr",
+	   "MetricName": "imx8mp_ddr_write.isp2",
+	   "MetricExpr": "imx8_ddr0@axid\\-write\\,axi_mask\\=0x0000\\,axi_id\\=0x006e@",
+	   "ScaleUnit": "9.765625e-4KB",
+	   "Unit": "imx8_ddr",
+	   "Compat": "i.MX8MP"
+   },
+   {
+	   "BriefDescription": "bytes of display dewarp read from ddr",
+	   "MetricName": "imx8mp_ddr_read.dewarp",
+	   "MetricExpr": "imx8_ddr0@axid\\-read\\,axi_mask\\=0x0000\\,axi_id\\=0x006f@",
+	   "ScaleUnit": "9.765625e-4KB",
+	   "Unit": "imx8_ddr",
+	   "Compat": "i.MX8MP"
+   },
+   {
+	   "BriefDescription": "bytes of display dewarp write to ddr",
+	   "MetricName": "imx8mp_ddr_write.dewarp",
+	   "MetricExpr": "imx8_ddr0@axid\\-write\\,axi_mask\\=0x0000\\,axi_id\\=0x006f@",
+	   "ScaleUnit": "9.765625e-4KB",
+	   "Unit": "imx8_ddr",
+	   "Compat": "i.MX8MP"
+   },
+   {
+	   "BriefDescription": "bytes of vpu1 read from ddr",
+	   "MetricName": "imx8mp_ddr_read.vpu1",
+	   "MetricExpr": "imx8_ddr0@axid\\-read\\,axi_mask\\=0x0000\\,axi_id\\=0x007c@",
+	   "ScaleUnit": "9.765625e-4KB",
+	   "Unit": "imx8_ddr",
+	   "Compat": "i.MX8MP"
+   },
+   {
+	   "BriefDescription": "bytes of vpu1 write to ddr",
+	   "MetricName": "imx8mp_ddr_write.vpu1",
+	   "MetricExpr": "imx8_ddr0@axid\\-write\\,axi_mask\\=0x0000\\,axi_id\\=0x007c@",
+	   "ScaleUnit": "9.765625e-4KB",
+	   "Unit": "imx8_ddr",
+	   "Compat": "i.MX8MP"
+   },
+   {
+	   "BriefDescription": "bytes of vpu2 read from ddr",
+	   "MetricName": "imx8mp_ddr_read.vpu2",
+	   "MetricExpr": "imx8_ddr0@axid\\-read\\,axi_mask\\=0x0000\\,axi_id\\=0x007d@",
+	   "ScaleUnit": "9.765625e-4KB",
+	   "Unit": "imx8_ddr",
+	   "Compat": "i.MX8MP"
+   },
+   {
+	   "BriefDescription": "bytes of vpu2 write to ddr",
+	   "MetricName": "imx8mp_ddr_write.vpu2",
+	   "MetricExpr": "imx8_ddr0@axid\\-write\\,axi_mask\\=0x0000\\,axi_id\\=0x007d@",
+	   "ScaleUnit": "9.765625e-4KB",
+	   "Unit": "imx8_ddr",
+	   "Compat": "i.MX8MP"
+   },
+   {
+	   "BriefDescription": "bytes of vpu3 read from ddr",
+	   "MetricName": "imx8mp_ddr_read.vpu3",
+	   "MetricExpr": "imx8_ddr0@axid\\-read\\,axi_mask\\=0x0000\\,axi_id\\=0x007e@",
+	   "ScaleUnit": "9.765625e-4KB",
+	   "Unit": "imx8_ddr",
+	   "Compat": "i.MX8MP"
+   },
+   {
+	   "BriefDescription": "bytes of vpu3 write to ddr",
+	   "MetricName": "imx8mp_ddr_write.vpu3",
+	   "MetricExpr": "imx8_ddr0@axid\\-write\\,axi_mask\\=0x0000\\,axi_id\\=0x007e@",
+	   "ScaleUnit": "9.765625e-4KB",
+	   "Unit": "imx8_ddr",
+	   "Compat": "i.MX8MP"
+   },
+   {
+	   "BriefDescription": "bytes of npu read from ddr",
+	   "MetricName": "imx8mp_ddr_read.npu",
+	   "MetricExpr": "imx8_ddr0@axid\\-read\\,axi_mask\\=0x0000\\,axi_id\\=0x0073@",
+	   "ScaleUnit": "9.765625e-4KB",
+	   "Unit": "imx8_ddr",
+	   "Compat": "i.MX8MP"
+   },
+   {
+	   "BriefDescription": "bytes of npu write to ddr",
+	   "MetricName": "imx8mp_ddr_write.npu",
+	   "MetricExpr": "imx8_ddr0@axid\\-write\\,axi_mask\\=0x0000\\,axi_id\\=0x0073@",
+	   "ScaleUnit": "9.765625e-4KB",
+	   "Unit": "imx8_ddr",
+	   "Compat": "i.MX8MP"
+   },
+   {
+	   "BriefDescription": "bytes of hsio usb1 read from ddr",
+	   "MetricName": "imx8mp_ddr_read.usb1",
+	   "MetricExpr": "imx8_ddr0@axid\\-read\\,axi_mask\\=0x0000\\,axi_id\\=0x0078@",
+	   "ScaleUnit": "9.765625e-4KB",
+	   "Unit": "imx8_ddr",
+	   "Compat": "i.MX8MP"
+   },
+   {
+	   "BriefDescription": "bytes of hsio usb1 write to ddr",
+	   "MetricName": "imx8mp_ddr_write.usb1",
+	   "MetricExpr": "imx8_ddr0@axid\\-write\\,axi_mask\\=0x0000\\,axi_id\\=0x0078@",
+	   "ScaleUnit": "9.765625e-4KB",
+	   "Unit": "imx8_ddr",
+	   "Compat": "i.MX8MP"
+   },
+   {
+	   "BriefDescription": "bytes of hsio usb2 read from ddr",
+	   "MetricName": "imx8mp_ddr_read.usb2",
+	   "MetricExpr": "imx8_ddr0@axid\\-read\\,axi_mask\\=0x0000\\,axi_id\\=0x0079@",
+	   "ScaleUnit": "9.765625e-4KB",
+	   "Unit": "imx8_ddr",
+	   "Compat": "i.MX8MP"
+   },
+   {
+	   "BriefDescription": "bytes of hsio usb2 write to ddr",
+	   "MetricName": "imx8mp_ddr_write.usb2",
+	   "MetricExpr": "imx8_ddr0@axid\\-write\\,axi_mask\\=0x0000\\,axi_id\\=0x0079@",
+	   "ScaleUnit": "9.765625e-4KB",
+	   "Unit": "imx8_ddr",
+	   "Compat": "i.MX8MP"
+   },
+   {
+	   "BriefDescription": "bytes of hsio pci read from ddr",
+	   "MetricName": "imx8mp_ddr_read.pci",
+	   "MetricExpr": "imx8_ddr0@axid\\-read\\,axi_mask\\=0x0000\\,axi_id\\=0x007a@",
+	   "ScaleUnit": "9.765625e-4KB",
+	   "Unit": "imx8_ddr",
+	   "Compat": "i.MX8MP"
+   },
+   {
+	   "BriefDescription": "bytes of hsio pci write to ddr",
+	   "MetricName": "imx8mp_ddr_write.pci",
+	   "MetricExpr": "imx8_ddr0@axid\\-write\\,axi_mask\\=0x0000\\,axi_id\\=0x007a@",
+	   "ScaleUnit": "9.765625e-4KB",
+	   "Unit": "imx8_ddr",
+	   "Compat": "i.MX8MP"
+   },
+   {
+	   "BriefDescription": "bytes of hdmi_tx hrv_mwr read from ddr",
+	   "MetricName": "imx8mp_ddr_read.hdmi_hrv_mwr",
+	   "MetricExpr": "imx8_ddr0@axid\\-read\\,axi_mask\\=0x0000\\,axi_id\\=0x0074@",
+	   "ScaleUnit": "9.765625e-4KB",
+	   "Unit": "imx8_ddr",
+	   "Compat": "i.MX8MP"
+   },
+   {
+	   "BriefDescription": "bytes of hdmi_tx hrv_mwr write to ddr",
+	   "MetricName": "imx8mp_ddr_write.hdmi_hrv_mwr",
+	   "MetricExpr": "imx8_ddr0@axid\\-write\\,axi_mask\\=0x0000\\,axi_id\\=0x0074@",
+	   "ScaleUnit": "9.765625e-4KB",
+	   "Unit": "imx8_ddr",
+	   "Compat": "i.MX8MP"
+   },
+   {
+	   "BriefDescription": "bytes of hdmi_tx lcdif read from ddr",
+	   "MetricName": "imx8mp_ddr_read.hdmi_lcdif",
+	   "MetricExpr": "imx8_ddr0@axid\\-read\\,axi_mask\\=0x0000\\,axi_id\\=0x0075@",
+	   "ScaleUnit": "9.765625e-4KB",
+	   "Unit": "imx8_ddr",
+	   "Compat": "i.MX8MP"
+   },
+   {
+	   "BriefDescription": "bytes of hdmi_tx lcdif write to ddr",
+	   "MetricName": "imx8mp_ddr_write.hdmi_lcdif",
+	   "MetricExpr": "imx8_ddr0@axid\\-write\\,axi_mask\\=0x0000\\,axi_id\\=0x0075@",
+	   "ScaleUnit": "9.765625e-4KB",
+	   "Unit": "imx8_ddr",
+	   "Compat": "i.MX8MP"
+   },
+   {
+	   "BriefDescription": "bytes of hdmi_tx tx_hdcp read from ddr",
+	   "MetricName": "imx8mp_ddr_read.hdmi_hdcp",
+	   "MetricExpr": "imx8_ddr0@axid\\-read\\,axi_mask\\=0x0000\\,axi_id\\=0x0076@",
+	   "ScaleUnit": "9.765625e-4KB",
+	   "Unit": "imx8_ddr",
+	   "Compat": "i.MX8MP"
+   },
+   {
+	   "BriefDescription": "bytes of hdmi_tx tx_hdcp write to ddr",
+	   "MetricName": "imx8mp_ddr_write.hdmi_hdcp",
+	   "MetricExpr": "imx8_ddr0@axid\\-write\\,axi_mask\\=0x0000\\,axi_id\\=0x0076@",
+	   "ScaleUnit": "9.765625e-4KB",
+	   "Unit": "imx8_ddr",
+	   "Compat": "i.MX8MP"
+   },
+   {
+	   "BriefDescription": "bytes of audio dsp read from ddr",
+	   "MetricName": "imx8mp_ddr_read.audio_dsp",
+	   "MetricExpr": "imx8_ddr0@axid\\-read\\,axi_mask\\=0x0000\\,axi_id\\=0x0041@",
+	   "ScaleUnit": "9.765625e-4KB",
+	   "Unit": "imx8_ddr",
+	   "Compat": "i.MX8MP"
+   },
+   {
+	   "BriefDescription": "bytes of audio dsp write to ddr",
+	   "MetricName": "imx8mp_ddr_write.audio_dsp",
+	   "MetricExpr": "imx8_ddr0@axid\\-write\\,axi_mask\\=0x0000\\,axi_id\\=0x0041@",
+	   "ScaleUnit": "9.765625e-4KB",
+	   "Unit": "imx8_ddr",
+	   "Compat": "i.MX8MP"
+   },
+   {
+	   "BriefDescription": "bytes of audio sdma2_per read from ddr",
+	   "MetricName": "imx8mp_ddr_read.audio_sdma2_per",
+	   "MetricExpr": "imx8_ddr0@axid\\-read\\,axi_mask\\=0x0000\\,axi_id\\=0x0062@",
+	   "ScaleUnit": "9.765625e-4KB",
+	   "Unit": "imx8_ddr",
+	   "Compat": "i.MX8MP"
+   },
+   {
+	   "BriefDescription": "bytes of audio sdma2_per write to ddr",
+	   "MetricName": "imx8mp_ddr_write.audio_sdma2_per",
+	   "MetricExpr": "imx8_ddr0@axid\\-write\\,axi_mask\\=0x0000\\,axi_id\\=0x0062@",
+	   "ScaleUnit": "9.765625e-4KB",
+	   "Unit": "imx8_ddr",
+	   "Compat": "i.MX8MP"
+   },
+   {
+	   "BriefDescription": "bytes of audio sdma2_burst read from ddr",
+	   "MetricName": "imx8mp_ddr_read.audio_sdma2_burst",
+	   "MetricExpr": "imx8_ddr0@axid\\-read\\,axi_mask\\=0x0000\\,axi_id\\=0x0063@",
+	   "ScaleUnit": "9.765625e-4KB",
+	   "Unit": "imx8_ddr",
+	   "Compat": "i.MX8MP"
+   },
+   {
+	   "BriefDescription": "bytes of audio sdma2_burst write to ddr",
+	   "MetricName": "imx8mp_ddr_write.audio_sdma2_burst",
+	   "MetricExpr": "imx8_ddr0@axid\\-write\\,axi_mask\\=0x0000\\,axi_id\\=0x0063@",
+	   "ScaleUnit": "9.765625e-4KB",
+	   "Unit": "imx8_ddr",
+	   "Compat": "i.MX8MP"
+   },
+   {
+	   "BriefDescription": "bytes of audio sdma3_per read from ddr",
+	   "MetricName": "imx8mp_ddr_read.audio_sdma3_per",
+	   "MetricExpr": "imx8_ddr0@axid\\-read\\,axi_mask\\=0x0000\\,axi_id\\=0x0064@",
+	   "ScaleUnit": "9.765625e-4KB",
+	   "Unit": "imx8_ddr",
+	   "Compat": "i.MX8MP"
+   },
+   {
+	   "BriefDescription": "bytes of audio sdma3_per write to ddr",
+	   "MetricName": "imx8mp_ddr_write.audio_sdma3_per",
+	   "MetricExpr": "imx8_ddr0@axid\\-write\\,axi_mask\\=0x0000\\,axi_id\\=0x0064@",
+	   "ScaleUnit": "9.765625e-4KB",
+	   "Unit": "imx8_ddr",
+	   "Compat": "i.MX8MP"
+   },
+   {
+	   "BriefDescription": "bytes of audio sdma3_burst read from ddr",
+	   "MetricName": "imx8mp_ddr_read.audio_sdma3_burst",
+	   "MetricExpr": "imx8_ddr0@axid\\-read\\,axi_mask\\=0x0000\\,axi_id\\=0x0065@",
+	   "ScaleUnit": "9.765625e-4KB",
+	   "Unit": "imx8_ddr",
+	   "Compat": "i.MX8MP"
+   },
+   {
+	   "BriefDescription": "bytes of audio sdma3_burst write to ddr",
+	   "MetricName": "imx8mp_ddr_write.audio_sdma3_burst",
+	   "MetricExpr": "imx8_ddr0@axid\\-write\\,axi_mask\\=0x0000\\,axi_id\\=0x0065@",
+	   "ScaleUnit": "9.765625e-4KB",
+	   "Unit": "imx8_ddr",
+	   "Compat": "i.MX8MP"
+   },
+   {
+	   "BriefDescription": "bytes of audio sdma_pif read from ddr",
+	   "MetricName": "imx8mp_ddr_read.audio_sdma_pif",
+	   "MetricExpr": "imx8_ddr0@axid\\-read\\,axi_mask\\=0x0000\\,axi_id\\=0x0066@",
+	   "ScaleUnit": "9.765625e-4KB",
+	   "Unit": "imx8_ddr",
+	   "Compat": "i.MX8MP"
+   },
+   {
+	   "BriefDescription": "bytes of audio sdma_pif write to ddr",
+	   "MetricName": "imx8mp_ddr_write.audio_sdma_pif",
+	   "MetricExpr": "imx8_ddr0@axid\\-write\\,axi_mask\\=0x0000\\,axi_id\\=0x0066@",
+	   "ScaleUnit": "9.765625e-4KB",
+	   "Unit": "imx8_ddr",
+	   "Compat": "i.MX8MP"
+   }
+]
-- 
2.17.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 22+ messages in thread

* Re: [PATCH V1 3/4] perf vendor events: Add JSON metrics for imx8mq DDR Perf
  2021-01-19  2:56   ` Joakim Zhang
@ 2021-01-19 10:40     ` John Garry
  -1 siblings, 0 replies; 22+ messages in thread
From: John Garry @ 2021-01-19 10:40 UTC (permalink / raw)
  To: Joakim Zhang, acme, jolsa
  Cc: will, linux-perf-users, linux-imx, mark.rutland, linux-arm-kernel

On 19/01/2021 02:56, Joakim Zhang wrote:
> index 000000000000..c3e9f89a4a4d
> --- /dev/null
> +++ b/tools/perf/pmu-events/arch/arm64/freescale/imx8mq/sys/metrics.json
> @@ -0,0 +1,26 @@
> +[
> +   {
> +	    "BriefDescription": "bandwidth usage for lpddr4 evk board",

Why mention the evk board specifically? Is this metric only specific to 
that board, and not all i.MX8MQ platforms?

Thanks,
John

> +	    "MetricName": "imx8mq_bandwidth_usage.lpddr4",
> +	    "MetricExpr": "(( imx8_ddr0@read\\-cycles@ + imx8_ddr0@write\\-cycles@ ) * 4 * 4 / duration_time) / (800 * 1000000 * 4 * 4)",
> +	    "ScaleUnit": "1e2%",
> +	    "Unit": "imx8_ddr",
> +	    "Compat": "i.MX8MQ"
> +   },


^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH V1 3/4] perf vendor events: Add JSON metrics for imx8mq DDR Perf
@ 2021-01-19 10:40     ` John Garry
  0 siblings, 0 replies; 22+ messages in thread
From: John Garry @ 2021-01-19 10:40 UTC (permalink / raw)
  To: Joakim Zhang, acme, jolsa
  Cc: linux-perf-users, mark.rutland, will, linux-imx, linux-arm-kernel

On 19/01/2021 02:56, Joakim Zhang wrote:
> index 000000000000..c3e9f89a4a4d
> --- /dev/null
> +++ b/tools/perf/pmu-events/arch/arm64/freescale/imx8mq/sys/metrics.json
> @@ -0,0 +1,26 @@
> +[
> +   {
> +	    "BriefDescription": "bandwidth usage for lpddr4 evk board",

Why mention the evk board specifically? Is this metric only specific to 
that board, and not all i.MX8MQ platforms?

Thanks,
John

> +	    "MetricName": "imx8mq_bandwidth_usage.lpddr4",
> +	    "MetricExpr": "(( imx8_ddr0@read\\-cycles@ + imx8_ddr0@write\\-cycles@ ) * 4 * 4 / duration_time) / (800 * 1000000 * 4 * 4)",
> +	    "ScaleUnit": "1e2%",
> +	    "Unit": "imx8_ddr",
> +	    "Compat": "i.MX8MQ"
> +   },


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 22+ messages in thread

* RE: [PATCH V1 3/4] perf vendor events: Add JSON metrics for imx8mq DDR Perf
  2021-01-19 10:40     ` John Garry
@ 2021-01-19 11:00       ` Joakim Zhang
  -1 siblings, 0 replies; 22+ messages in thread
From: Joakim Zhang @ 2021-01-19 11:00 UTC (permalink / raw)
  To: John Garry, acme, jolsa
  Cc: will, linux-perf-users, dl-linux-imx, mark.rutland, linux-arm-kernel


> -----Original Message-----
> From: John Garry <john.garry@huawei.com>
> Sent: 2021年1月19日 18:40
> To: Joakim Zhang <qiangqing.zhang@nxp.com>; acme@kernel.org;
> jolsa@redhat.com
> Cc: will@kernel.org; linux-perf-users@vger.kernel.org; dl-linux-imx
> <linux-imx@nxp.com>; mark.rutland@arm.com;
> linux-arm-kernel@lists.infradead.org
> Subject: Re: [PATCH V1 3/4] perf vendor events: Add JSON metrics for imx8mq
> DDR Perf
> 
> On 19/01/2021 02:56, Joakim Zhang wrote:
> > index 000000000000..c3e9f89a4a4d
> > --- /dev/null
> > +++ b/tools/perf/pmu-events/arch/arm64/freescale/imx8mq/sys/metrics.js
> > +++ on
> > @@ -0,0 +1,26 @@
> > +[
> > +   {
> > +	    "BriefDescription": "bandwidth usage for lpddr4 evk board",
> 
> Why mention the evk board specifically? Is this metric only specific to that
> board, and not all i.MX8MQ platforms?

Yes, John, we have lpddr4 evk board and ddr4 evk borad......

John, change to your new framework, I found it can't support all features which is supported in 5.10 kernel.

Best Regards,
Joakim Zhang
> Thanks,
> John
> 
> > +	    "MetricName": "imx8mq_bandwidth_usage.lpddr4",
> > +	    "MetricExpr": "(( imx8_ddr0@read\\-cycles@ +
> imx8_ddr0@write\\-cycles@ ) * 4 * 4 / duration_time) / (800 * 1000000 * 4 *
> 4)",
> > +	    "ScaleUnit": "1e2%",
> > +	    "Unit": "imx8_ddr",
> > +	    "Compat": "i.MX8MQ"
> > +   },


^ permalink raw reply	[flat|nested] 22+ messages in thread

* RE: [PATCH V1 3/4] perf vendor events: Add JSON metrics for imx8mq DDR Perf
@ 2021-01-19 11:00       ` Joakim Zhang
  0 siblings, 0 replies; 22+ messages in thread
From: Joakim Zhang @ 2021-01-19 11:00 UTC (permalink / raw)
  To: John Garry, acme, jolsa
  Cc: linux-perf-users, mark.rutland, will, dl-linux-imx, linux-arm-kernel


> -----Original Message-----
> From: John Garry <john.garry@huawei.com>
> Sent: 2021年1月19日 18:40
> To: Joakim Zhang <qiangqing.zhang@nxp.com>; acme@kernel.org;
> jolsa@redhat.com
> Cc: will@kernel.org; linux-perf-users@vger.kernel.org; dl-linux-imx
> <linux-imx@nxp.com>; mark.rutland@arm.com;
> linux-arm-kernel@lists.infradead.org
> Subject: Re: [PATCH V1 3/4] perf vendor events: Add JSON metrics for imx8mq
> DDR Perf
> 
> On 19/01/2021 02:56, Joakim Zhang wrote:
> > index 000000000000..c3e9f89a4a4d
> > --- /dev/null
> > +++ b/tools/perf/pmu-events/arch/arm64/freescale/imx8mq/sys/metrics.js
> > +++ on
> > @@ -0,0 +1,26 @@
> > +[
> > +   {
> > +	    "BriefDescription": "bandwidth usage for lpddr4 evk board",
> 
> Why mention the evk board specifically? Is this metric only specific to that
> board, and not all i.MX8MQ platforms?

Yes, John, we have lpddr4 evk board and ddr4 evk borad......

John, change to your new framework, I found it can't support all features which is supported in 5.10 kernel.

Best Regards,
Joakim Zhang
> Thanks,
> John
> 
> > +	    "MetricName": "imx8mq_bandwidth_usage.lpddr4",
> > +	    "MetricExpr": "(( imx8_ddr0@read\\-cycles@ +
> imx8_ddr0@write\\-cycles@ ) * 4 * 4 / duration_time) / (800 * 1000000 * 4 *
> 4)",
> > +	    "ScaleUnit": "1e2%",
> > +	    "Unit": "imx8_ddr",
> > +	    "Compat": "i.MX8MQ"
> > +   },

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH V1 3/4] perf vendor events: Add JSON metrics for imx8mq DDR Perf
  2021-01-19 11:00       ` Joakim Zhang
@ 2021-01-19 12:27         ` John Garry
  -1 siblings, 0 replies; 22+ messages in thread
From: John Garry @ 2021-01-19 12:27 UTC (permalink / raw)
  To: Joakim Zhang, acme, jolsa
  Cc: will, linux-perf-users, dl-linux-imx, mark.rutland, linux-arm-kernel

On 19/01/2021 11:00, Joakim Zhang wrote:
>> -----Original Message-----
>> From: John Garry<john.garry@huawei.com>
>> Sent: 2021年1月19日 18:40
>> To: Joakim Zhang<qiangqing.zhang@nxp.com>;acme@kernel.org;
>> jolsa@redhat.com
>> Cc:will@kernel.org;linux-perf-users@vger.kernel.org; dl-linux-imx
>> <linux-imx@nxp.com>;mark.rutland@arm.com;
>> linux-arm-kernel@lists.infradead.org
>> Subject: Re: [PATCH V1 3/4] perf vendor events: Add JSON metrics for imx8mq
>> DDR Perf
>>
>> On 19/01/2021 02:56, Joakim Zhang wrote:
>>> index 000000000000..c3e9f89a4a4d
>>> --- /dev/null
>>> +++ b/tools/perf/pmu-events/arch/arm64/freescale/imx8mq/sys/metrics.js
>>> +++ on
>>> @@ -0,0 +1,26 @@
>>> +[
>>> +   {
>>> +	    "BriefDescription": "bandwidth usage for lpddr4 evk board",
>> Why mention the evk board specifically? Is this metric only specific to that
>> board, and not all i.MX8MQ platforms?
> Yes, John, we have lpddr4 evk board and ddr4 evk borad......
> 

How is this supposed to work?

So perf matches on the identifier file for system PMUs; however the 
contents of this file are based on the HW implementation for imx DDR 
PMU, not the board.

> John, change to your new framework, I found it can't support all features which is supported in 5.10 kernel.

Yes, so let me know about all the problems.

Thanks,
john



^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH V1 3/4] perf vendor events: Add JSON metrics for imx8mq DDR Perf
@ 2021-01-19 12:27         ` John Garry
  0 siblings, 0 replies; 22+ messages in thread
From: John Garry @ 2021-01-19 12:27 UTC (permalink / raw)
  To: Joakim Zhang, acme, jolsa
  Cc: linux-perf-users, mark.rutland, will, dl-linux-imx, linux-arm-kernel

On 19/01/2021 11:00, Joakim Zhang wrote:
>> -----Original Message-----
>> From: John Garry<john.garry@huawei.com>
>> Sent: 2021年1月19日 18:40
>> To: Joakim Zhang<qiangqing.zhang@nxp.com>;acme@kernel.org;
>> jolsa@redhat.com
>> Cc:will@kernel.org;linux-perf-users@vger.kernel.org; dl-linux-imx
>> <linux-imx@nxp.com>;mark.rutland@arm.com;
>> linux-arm-kernel@lists.infradead.org
>> Subject: Re: [PATCH V1 3/4] perf vendor events: Add JSON metrics for imx8mq
>> DDR Perf
>>
>> On 19/01/2021 02:56, Joakim Zhang wrote:
>>> index 000000000000..c3e9f89a4a4d
>>> --- /dev/null
>>> +++ b/tools/perf/pmu-events/arch/arm64/freescale/imx8mq/sys/metrics.js
>>> +++ on
>>> @@ -0,0 +1,26 @@
>>> +[
>>> +   {
>>> +	    "BriefDescription": "bandwidth usage for lpddr4 evk board",
>> Why mention the evk board specifically? Is this metric only specific to that
>> board, and not all i.MX8MQ platforms?
> Yes, John, we have lpddr4 evk board and ddr4 evk borad......
> 

How is this supposed to work?

So perf matches on the identifier file for system PMUs; however the 
contents of this file are based on the HW implementation for imx DDR 
PMU, not the board.

> John, change to your new framework, I found it can't support all features which is supported in 5.10 kernel.

Yes, so let me know about all the problems.

Thanks,
john



_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 22+ messages in thread

* RE: [PATCH V1 3/4] perf vendor events: Add JSON metrics for imx8mq DDR Perf
  2021-01-19 12:27         ` John Garry
@ 2021-01-20  5:46           ` Joakim Zhang
  -1 siblings, 0 replies; 22+ messages in thread
From: Joakim Zhang @ 2021-01-20  5:46 UTC (permalink / raw)
  To: John Garry, acme, jolsa
  Cc: will, linux-perf-users, dl-linux-imx, mark.rutland, linux-arm-kernel


> -----Original Message-----
> From: John Garry <john.garry@huawei.com>
> Sent: 2021年1月19日 20:27
> To: Joakim Zhang <qiangqing.zhang@nxp.com>; acme@kernel.org;
> jolsa@redhat.com
> Cc: will@kernel.org; linux-perf-users@vger.kernel.org; dl-linux-imx
> <linux-imx@nxp.com>; mark.rutland@arm.com;
> linux-arm-kernel@lists.infradead.org
> Subject: Re: [PATCH V1 3/4] perf vendor events: Add JSON metrics for imx8mq
> DDR Perf
> 
> On 19/01/2021 11:00, Joakim Zhang wrote:
> >> -----Original Message-----
> >> From: John Garry<john.garry@huawei.com>
> >> Sent: 2021年1月19日 18:40
> >> To: Joakim Zhang<qiangqing.zhang@nxp.com>;acme@kernel.org;
> >> jolsa@redhat.com
> >> Cc:will@kernel.org;linux-perf-users@vger.kernel.org; dl-linux-imx
> >> <linux-imx@nxp.com>;mark.rutland@arm.com;
> >> linux-arm-kernel@lists.infradead.org
> >> Subject: Re: [PATCH V1 3/4] perf vendor events: Add JSON metrics for
> >> imx8mq DDR Perf
> >>
> >> On 19/01/2021 02:56, Joakim Zhang wrote:
> >>> index 000000000000..c3e9f89a4a4d
> >>> --- /dev/null
> >>> +++ b/tools/perf/pmu-events/arch/arm64/freescale/imx8mq/sys/metrics.
> >>> +++ js
> >>> +++ on
> >>> @@ -0,0 +1,26 @@
> >>> +[
> >>> +   {
> >>> +	    "BriefDescription": "bandwidth usage for lpddr4 evk board",
> >> Why mention the evk board specifically? Is this metric only specific
> >> to that board, and not all i.MX8MQ platforms?
> > Yes, John, we have lpddr4 evk board and ddr4 evk borad......
> >
> 
> How is this supposed to work?
> 
> So perf matches on the identifier file for system PMUs; however the contents of
> this file are based on the HW implementation for imx DDR PMU, not the board.

Yes, I know this feature is for system PMU, not board. You know DDR bandwidth calculation is based on DDR clock frequency, which is vary form boards.

e.g.
lpddr4 board, DDR clock frequency is 750MHZ:
"MetricExpr": "(( imx8_ddr0@read\\-cycles@ + imx8_ddr0@write\\-cycles@ ) * 4 * 4 / duration_time) / (750 * 1000000 * 4 * 4)"    

ddr4 board, DDR clock frequency is 600MHZ.
"MetricExpr": "(( imx8_ddr0@read\\-cycles@ + imx8_ddr0@write\\-cycles@ ) * 4 * 4 / duration_time) / (600 * 1000000 * 4 * 4)"

I give different metric names, 
"MetricName": "imx8mm_bandwidth_usage.lpddr4"
"MetricName": "imx8mm_bandwidth_usage.ddr4"

So users can select correct bandwidth metric according to their own board types. To a certain extent, it can also support some board-level metrics.

If it is okay for you, I will send a V2 to replace ( imx8_ddr0@read\\-cycles@ + imx8_ddr0@write\\-cycles@ ) with ( imx8mm_ddr.read_cycles + imx8mm_ddr.write_cycles ).

> > John, change to your new framework, I found it can't support all features
> which is supported in 5.10 kernel.
> 
> Yes, so let me know about all the problems.

It should have worked as 5.10 kernel at my side. Thanks.

Best Regards,
Joakim Zhang
> Thanks,
> john
> 


^ permalink raw reply	[flat|nested] 22+ messages in thread

* RE: [PATCH V1 3/4] perf vendor events: Add JSON metrics for imx8mq DDR Perf
@ 2021-01-20  5:46           ` Joakim Zhang
  0 siblings, 0 replies; 22+ messages in thread
From: Joakim Zhang @ 2021-01-20  5:46 UTC (permalink / raw)
  To: John Garry, acme, jolsa
  Cc: linux-perf-users, mark.rutland, will, dl-linux-imx, linux-arm-kernel


> -----Original Message-----
> From: John Garry <john.garry@huawei.com>
> Sent: 2021年1月19日 20:27
> To: Joakim Zhang <qiangqing.zhang@nxp.com>; acme@kernel.org;
> jolsa@redhat.com
> Cc: will@kernel.org; linux-perf-users@vger.kernel.org; dl-linux-imx
> <linux-imx@nxp.com>; mark.rutland@arm.com;
> linux-arm-kernel@lists.infradead.org
> Subject: Re: [PATCH V1 3/4] perf vendor events: Add JSON metrics for imx8mq
> DDR Perf
> 
> On 19/01/2021 11:00, Joakim Zhang wrote:
> >> -----Original Message-----
> >> From: John Garry<john.garry@huawei.com>
> >> Sent: 2021年1月19日 18:40
> >> To: Joakim Zhang<qiangqing.zhang@nxp.com>;acme@kernel.org;
> >> jolsa@redhat.com
> >> Cc:will@kernel.org;linux-perf-users@vger.kernel.org; dl-linux-imx
> >> <linux-imx@nxp.com>;mark.rutland@arm.com;
> >> linux-arm-kernel@lists.infradead.org
> >> Subject: Re: [PATCH V1 3/4] perf vendor events: Add JSON metrics for
> >> imx8mq DDR Perf
> >>
> >> On 19/01/2021 02:56, Joakim Zhang wrote:
> >>> index 000000000000..c3e9f89a4a4d
> >>> --- /dev/null
> >>> +++ b/tools/perf/pmu-events/arch/arm64/freescale/imx8mq/sys/metrics.
> >>> +++ js
> >>> +++ on
> >>> @@ -0,0 +1,26 @@
> >>> +[
> >>> +   {
> >>> +	    "BriefDescription": "bandwidth usage for lpddr4 evk board",
> >> Why mention the evk board specifically? Is this metric only specific
> >> to that board, and not all i.MX8MQ platforms?
> > Yes, John, we have lpddr4 evk board and ddr4 evk borad......
> >
> 
> How is this supposed to work?
> 
> So perf matches on the identifier file for system PMUs; however the contents of
> this file are based on the HW implementation for imx DDR PMU, not the board.

Yes, I know this feature is for system PMU, not board. You know DDR bandwidth calculation is based on DDR clock frequency, which is vary form boards.

e.g.
lpddr4 board, DDR clock frequency is 750MHZ:
"MetricExpr": "(( imx8_ddr0@read\\-cycles@ + imx8_ddr0@write\\-cycles@ ) * 4 * 4 / duration_time) / (750 * 1000000 * 4 * 4)"    

ddr4 board, DDR clock frequency is 600MHZ.
"MetricExpr": "(( imx8_ddr0@read\\-cycles@ + imx8_ddr0@write\\-cycles@ ) * 4 * 4 / duration_time) / (600 * 1000000 * 4 * 4)"

I give different metric names, 
"MetricName": "imx8mm_bandwidth_usage.lpddr4"
"MetricName": "imx8mm_bandwidth_usage.ddr4"

So users can select correct bandwidth metric according to their own board types. To a certain extent, it can also support some board-level metrics.

If it is okay for you, I will send a V2 to replace ( imx8_ddr0@read\\-cycles@ + imx8_ddr0@write\\-cycles@ ) with ( imx8mm_ddr.read_cycles + imx8mm_ddr.write_cycles ).

> > John, change to your new framework, I found it can't support all features
> which is supported in 5.10 kernel.
> 
> Yes, so let me know about all the problems.

It should have worked as 5.10 kernel at my side. Thanks.

Best Regards,
Joakim Zhang
> Thanks,
> john
> 

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH V1 3/4] perf vendor events: Add JSON metrics for imx8mq DDR Perf
  2021-01-20  5:46           ` Joakim Zhang
@ 2021-01-20  9:25             ` John Garry
  -1 siblings, 0 replies; 22+ messages in thread
From: John Garry @ 2021-01-20  9:25 UTC (permalink / raw)
  To: Joakim Zhang, acme, jolsa
  Cc: will, linux-perf-users, dl-linux-imx, mark.rutland, linux-arm-kernel

On 20/01/2021 05:46, Joakim Zhang wrote:
>> -----Original Message-----
>> From: John Garry<john.garry@huawei.com>
>> Sent: 2021年1月19日 20:27
>> To: Joakim Zhang<qiangqing.zhang@nxp.com>;acme@kernel.org;
>> jolsa@redhat.com
>> Cc:will@kernel.org;linux-perf-users@vger.kernel.org; dl-linux-imx
>> <linux-imx@nxp.com>;mark.rutland@arm.com;
>> linux-arm-kernel@lists.infradead.org
>> Subject: Re: [PATCH V1 3/4] perf vendor events: Add JSON metrics for imx8mq
>> DDR Perf
>>
>> On 19/01/2021 11:00, Joakim Zhang wrote:
>>>> -----Original Message-----
>>>> From: John Garry<john.garry@huawei.com>
>>>> Sent: 2021年1月19日 18:40
>>>> To: Joakim Zhang<qiangqing.zhang@nxp.com>;acme@kernel.org;
>>>> jolsa@redhat.com
>>>> Cc:will@kernel.org;linux-perf-users@vger.kernel.org; dl-linux-imx
>>>> <linux-imx@nxp.com>;mark.rutland@arm.com;
>>>> linux-arm-kernel@lists.infradead.org
>>>> Subject: Re: [PATCH V1 3/4] perf vendor events: Add JSON metrics for
>>>> imx8mq DDR Perf
>>>>
>>>> On 19/01/2021 02:56, Joakim Zhang wrote:
>>>>> index 000000000000..c3e9f89a4a4d
>>>>> --- /dev/null
>>>>> +++ b/tools/perf/pmu-events/arch/arm64/freescale/imx8mq/sys/metrics.
>>>>> +++ js
>>>>> +++ on
>>>>> @@ -0,0 +1,26 @@
>>>>> +[
>>>>> +   {
>>>>> +	    "BriefDescription": "bandwidth usage for lpddr4 evk board",
>>>> Why mention the evk board specifically? Is this metric only specific
>>>> to that board, and not all i.MX8MQ platforms?
>>> Yes, John, we have lpddr4 evk board and ddr4 evk borad......
>>>
>> How is this supposed to work?
>>
>> So perf matches on the identifier file for system PMUs; however the contents of
>> this file are based on the HW implementation for imx DDR PMU, not the board.
> Yes, I know this feature is for system PMU, not board. You know DDR bandwidth calculation is based on DDR clock frequency, which is vary form boards.
> 
> e.g.
> lpddr4 board, DDR clock frequency is 750MHZ:
> "MetricExpr": "(( imx8_ddr0@read\\-cycles@ + imx8_ddr0@write\\-cycles@ ) * 4 * 4 / duration_time) / (750 * 1000000 * 4 * 4)"
> 
> ddr4 board, DDR clock frequency is 600MHZ.
> "MetricExpr": "(( imx8_ddr0@read\\-cycles@ + imx8_ddr0@write\\-cycles@ ) * 4 * 4 / duration_time) / (600 * 1000000 * 4 * 4)"
> 
> I give different metric names,
> "MetricName": "imx8mm_bandwidth_usage.lpddr4"
> "MetricName": "imx8mm_bandwidth_usage.ddr4"
> 

But that is just not how things are done. We - or I - would expect that 
perf tool would have the intelligence to know the appropriate metric for 
that specific platform. Or, more specifically, we should not present the 
user with many metrics and expect him/her to know the appropriate metric 
for the specific board.

Are there other cases for other architectures where things are done like 
this?

Thanks,
John

> So users can select correct bandwidth metric according to their own board types. To a certain extent, it can also support some board-level metrics.
> 
> If it is okay for you, I will send a V2 to replace ( imx8_ddr0@read\\-cycles@ + imx8_ddr0@write\\-cycles@ ) with ( imx8mm_ddr.read_cycles + imx8mm_ddr.write_cycles ).
> 
>>> John, change to your new framework, I found it can't support all features
>> which is supported in 5.10 kernel.
>>
>> Yes, so let me know about all the problems.
> It should have worked as 5.10 kernel at my side. Thanks.


^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [PATCH V1 3/4] perf vendor events: Add JSON metrics for imx8mq DDR Perf
@ 2021-01-20  9:25             ` John Garry
  0 siblings, 0 replies; 22+ messages in thread
From: John Garry @ 2021-01-20  9:25 UTC (permalink / raw)
  To: Joakim Zhang, acme, jolsa
  Cc: linux-perf-users, mark.rutland, will, dl-linux-imx, linux-arm-kernel

On 20/01/2021 05:46, Joakim Zhang wrote:
>> -----Original Message-----
>> From: John Garry<john.garry@huawei.com>
>> Sent: 2021年1月19日 20:27
>> To: Joakim Zhang<qiangqing.zhang@nxp.com>;acme@kernel.org;
>> jolsa@redhat.com
>> Cc:will@kernel.org;linux-perf-users@vger.kernel.org; dl-linux-imx
>> <linux-imx@nxp.com>;mark.rutland@arm.com;
>> linux-arm-kernel@lists.infradead.org
>> Subject: Re: [PATCH V1 3/4] perf vendor events: Add JSON metrics for imx8mq
>> DDR Perf
>>
>> On 19/01/2021 11:00, Joakim Zhang wrote:
>>>> -----Original Message-----
>>>> From: John Garry<john.garry@huawei.com>
>>>> Sent: 2021年1月19日 18:40
>>>> To: Joakim Zhang<qiangqing.zhang@nxp.com>;acme@kernel.org;
>>>> jolsa@redhat.com
>>>> Cc:will@kernel.org;linux-perf-users@vger.kernel.org; dl-linux-imx
>>>> <linux-imx@nxp.com>;mark.rutland@arm.com;
>>>> linux-arm-kernel@lists.infradead.org
>>>> Subject: Re: [PATCH V1 3/4] perf vendor events: Add JSON metrics for
>>>> imx8mq DDR Perf
>>>>
>>>> On 19/01/2021 02:56, Joakim Zhang wrote:
>>>>> index 000000000000..c3e9f89a4a4d
>>>>> --- /dev/null
>>>>> +++ b/tools/perf/pmu-events/arch/arm64/freescale/imx8mq/sys/metrics.
>>>>> +++ js
>>>>> +++ on
>>>>> @@ -0,0 +1,26 @@
>>>>> +[
>>>>> +   {
>>>>> +	    "BriefDescription": "bandwidth usage for lpddr4 evk board",
>>>> Why mention the evk board specifically? Is this metric only specific
>>>> to that board, and not all i.MX8MQ platforms?
>>> Yes, John, we have lpddr4 evk board and ddr4 evk borad......
>>>
>> How is this supposed to work?
>>
>> So perf matches on the identifier file for system PMUs; however the contents of
>> this file are based on the HW implementation for imx DDR PMU, not the board.
> Yes, I know this feature is for system PMU, not board. You know DDR bandwidth calculation is based on DDR clock frequency, which is vary form boards.
> 
> e.g.
> lpddr4 board, DDR clock frequency is 750MHZ:
> "MetricExpr": "(( imx8_ddr0@read\\-cycles@ + imx8_ddr0@write\\-cycles@ ) * 4 * 4 / duration_time) / (750 * 1000000 * 4 * 4)"
> 
> ddr4 board, DDR clock frequency is 600MHZ.
> "MetricExpr": "(( imx8_ddr0@read\\-cycles@ + imx8_ddr0@write\\-cycles@ ) * 4 * 4 / duration_time) / (600 * 1000000 * 4 * 4)"
> 
> I give different metric names,
> "MetricName": "imx8mm_bandwidth_usage.lpddr4"
> "MetricName": "imx8mm_bandwidth_usage.ddr4"
> 

But that is just not how things are done. We - or I - would expect that 
perf tool would have the intelligence to know the appropriate metric for 
that specific platform. Or, more specifically, we should not present the 
user with many metrics and expect him/her to know the appropriate metric 
for the specific board.

Are there other cases for other architectures where things are done like 
this?

Thanks,
John

> So users can select correct bandwidth metric according to their own board types. To a certain extent, it can also support some board-level metrics.
> 
> If it is okay for you, I will send a V2 to replace ( imx8_ddr0@read\\-cycles@ + imx8_ddr0@write\\-cycles@ ) with ( imx8mm_ddr.read_cycles + imx8mm_ddr.write_cycles ).
> 
>>> John, change to your new framework, I found it can't support all features
>> which is supported in 5.10 kernel.
>>
>> Yes, so let me know about all the problems.
> It should have worked as 5.10 kernel at my side. Thanks.


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 22+ messages in thread

* RE: [PATCH V1 3/4] perf vendor events: Add JSON metrics for imx8mq DDR Perf
  2021-01-20  9:25             ` John Garry
@ 2021-01-21 10:24               ` Joakim Zhang
  -1 siblings, 0 replies; 22+ messages in thread
From: Joakim Zhang @ 2021-01-21 10:24 UTC (permalink / raw)
  To: John Garry, acme, jolsa
  Cc: will, linux-perf-users, dl-linux-imx, mark.rutland, linux-arm-kernel


> -----Original Message-----
> From: John Garry <john.garry@huawei.com>
> Sent: 2021年1月20日 17:26
> To: Joakim Zhang <qiangqing.zhang@nxp.com>; acme@kernel.org;
> jolsa@redhat.com
> Cc: will@kernel.org; linux-perf-users@vger.kernel.org; dl-linux-imx
> <linux-imx@nxp.com>; mark.rutland@arm.com;
> linux-arm-kernel@lists.infradead.org
> Subject: Re: [PATCH V1 3/4] perf vendor events: Add JSON metrics for imx8mq
> DDR Perf
> 
> On 20/01/2021 05:46, Joakim Zhang wrote:
> >> -----Original Message-----
> >> From: John Garry<john.garry@huawei.com>
> >> Sent: 2021年1月19日 20:27
> >> To: Joakim Zhang<qiangqing.zhang@nxp.com>;acme@kernel.org;
> >> jolsa@redhat.com
> >> Cc:will@kernel.org;linux-perf-users@vger.kernel.org; dl-linux-imx
> >> <linux-imx@nxp.com>;mark.rutland@arm.com;
> >> linux-arm-kernel@lists.infradead.org
> >> Subject: Re: [PATCH V1 3/4] perf vendor events: Add JSON metrics for
> >> imx8mq DDR Perf
> >>
> >> On 19/01/2021 11:00, Joakim Zhang wrote:
> >>>> -----Original Message-----
> >>>> From: John Garry<john.garry@huawei.com>
> >>>> Sent: 2021年1月19日 18:40
> >>>> To: Joakim Zhang<qiangqing.zhang@nxp.com>;acme@kernel.org;
> >>>> jolsa@redhat.com
> >>>> Cc:will@kernel.org;linux-perf-users@vger.kernel.org; dl-linux-imx
> >>>> <linux-imx@nxp.com>;mark.rutland@arm.com;
> >>>> linux-arm-kernel@lists.infradead.org
> >>>> Subject: Re: [PATCH V1 3/4] perf vendor events: Add JSON metrics
> >>>> for imx8mq DDR Perf
> >>>>
> >>>> On 19/01/2021 02:56, Joakim Zhang wrote:
> >>>>> index 000000000000..c3e9f89a4a4d
> >>>>> --- /dev/null
> >>>>> +++
> b/tools/perf/pmu-events/arch/arm64/freescale/imx8mq/sys/metrics.
> >>>>> +++ js
> >>>>> +++ on
> >>>>> @@ -0,0 +1,26 @@
> >>>>> +[
> >>>>> +   {
> >>>>> +	    "BriefDescription": "bandwidth usage for lpddr4 evk board",
> >>>> Why mention the evk board specifically? Is this metric only
> >>>> specific to that board, and not all i.MX8MQ platforms?
> >>> Yes, John, we have lpddr4 evk board and ddr4 evk borad......
> >>>
> >> How is this supposed to work?
> >>
> >> So perf matches on the identifier file for system PMUs; however the
> >> contents of this file are based on the HW implementation for imx DDR PMU,
> not the board.
> > Yes, I know this feature is for system PMU, not board. You know DDR
> bandwidth calculation is based on DDR clock frequency, which is vary form
> boards.
> >
> > e.g.
> > lpddr4 board, DDR clock frequency is 750MHZ:
> > "MetricExpr": "(( imx8_ddr0@read\\-cycles@ + imx8_ddr0@write\\-cycles@ )
> * 4 * 4 / duration_time) / (750 * 1000000 * 4 * 4)"
> >
> > ddr4 board, DDR clock frequency is 600MHZ.
> > "MetricExpr": "(( imx8_ddr0@read\\-cycles@ + imx8_ddr0@write\\-cycles@ )
> * 4 * 4 / duration_time) / (600 * 1000000 * 4 * 4)"
> >
> > I give different metric names,
> > "MetricName": "imx8mm_bandwidth_usage.lpddr4"
> > "MetricName": "imx8mm_bandwidth_usage.ddr4"
> >
> 
> But that is just not how things are done. We - or I - would expect that perf tool
> would have the intelligence to know the appropriate metric for that specific
> platform. Or, more specifically, we should not present the user with many
> metrics and expect him/her to know the appropriate metric for the specific
> board.
> 
> Are there other cases for other architectures where things are done like this?


I don't know if exist other cases. If you can’t accept it, I can only push part of it first, and let bandwidth metric locally.


Best Regards,
Joakim Zhang
> Thanks,
> John
> 
> > So users can select correct bandwidth metric according to their own board
> types. To a certain extent, it can also support some board-level metrics.
> >
> > If it is okay for you, I will send a V2 to replace ( imx8_ddr0@read\\-cycles@ +
> imx8_ddr0@write\\-cycles@ ) with ( imx8mm_ddr.read_cycles +
> imx8mm_ddr.write_cycles ).
> >
> >>> John, change to your new framework, I found it can't support all
> >>> features
> >> which is supported in 5.10 kernel.
> >>
> >> Yes, so let me know about all the problems.
> > It should have worked as 5.10 kernel at my side. Thanks.


^ permalink raw reply	[flat|nested] 22+ messages in thread

* RE: [PATCH V1 3/4] perf vendor events: Add JSON metrics for imx8mq DDR Perf
@ 2021-01-21 10:24               ` Joakim Zhang
  0 siblings, 0 replies; 22+ messages in thread
From: Joakim Zhang @ 2021-01-21 10:24 UTC (permalink / raw)
  To: John Garry, acme, jolsa
  Cc: linux-perf-users, mark.rutland, will, dl-linux-imx, linux-arm-kernel


> -----Original Message-----
> From: John Garry <john.garry@huawei.com>
> Sent: 2021年1月20日 17:26
> To: Joakim Zhang <qiangqing.zhang@nxp.com>; acme@kernel.org;
> jolsa@redhat.com
> Cc: will@kernel.org; linux-perf-users@vger.kernel.org; dl-linux-imx
> <linux-imx@nxp.com>; mark.rutland@arm.com;
> linux-arm-kernel@lists.infradead.org
> Subject: Re: [PATCH V1 3/4] perf vendor events: Add JSON metrics for imx8mq
> DDR Perf
> 
> On 20/01/2021 05:46, Joakim Zhang wrote:
> >> -----Original Message-----
> >> From: John Garry<john.garry@huawei.com>
> >> Sent: 2021年1月19日 20:27
> >> To: Joakim Zhang<qiangqing.zhang@nxp.com>;acme@kernel.org;
> >> jolsa@redhat.com
> >> Cc:will@kernel.org;linux-perf-users@vger.kernel.org; dl-linux-imx
> >> <linux-imx@nxp.com>;mark.rutland@arm.com;
> >> linux-arm-kernel@lists.infradead.org
> >> Subject: Re: [PATCH V1 3/4] perf vendor events: Add JSON metrics for
> >> imx8mq DDR Perf
> >>
> >> On 19/01/2021 11:00, Joakim Zhang wrote:
> >>>> -----Original Message-----
> >>>> From: John Garry<john.garry@huawei.com>
> >>>> Sent: 2021年1月19日 18:40
> >>>> To: Joakim Zhang<qiangqing.zhang@nxp.com>;acme@kernel.org;
> >>>> jolsa@redhat.com
> >>>> Cc:will@kernel.org;linux-perf-users@vger.kernel.org; dl-linux-imx
> >>>> <linux-imx@nxp.com>;mark.rutland@arm.com;
> >>>> linux-arm-kernel@lists.infradead.org
> >>>> Subject: Re: [PATCH V1 3/4] perf vendor events: Add JSON metrics
> >>>> for imx8mq DDR Perf
> >>>>
> >>>> On 19/01/2021 02:56, Joakim Zhang wrote:
> >>>>> index 000000000000..c3e9f89a4a4d
> >>>>> --- /dev/null
> >>>>> +++
> b/tools/perf/pmu-events/arch/arm64/freescale/imx8mq/sys/metrics.
> >>>>> +++ js
> >>>>> +++ on
> >>>>> @@ -0,0 +1,26 @@
> >>>>> +[
> >>>>> +   {
> >>>>> +	    "BriefDescription": "bandwidth usage for lpddr4 evk board",
> >>>> Why mention the evk board specifically? Is this metric only
> >>>> specific to that board, and not all i.MX8MQ platforms?
> >>> Yes, John, we have lpddr4 evk board and ddr4 evk borad......
> >>>
> >> How is this supposed to work?
> >>
> >> So perf matches on the identifier file for system PMUs; however the
> >> contents of this file are based on the HW implementation for imx DDR PMU,
> not the board.
> > Yes, I know this feature is for system PMU, not board. You know DDR
> bandwidth calculation is based on DDR clock frequency, which is vary form
> boards.
> >
> > e.g.
> > lpddr4 board, DDR clock frequency is 750MHZ:
> > "MetricExpr": "(( imx8_ddr0@read\\-cycles@ + imx8_ddr0@write\\-cycles@ )
> * 4 * 4 / duration_time) / (750 * 1000000 * 4 * 4)"
> >
> > ddr4 board, DDR clock frequency is 600MHZ.
> > "MetricExpr": "(( imx8_ddr0@read\\-cycles@ + imx8_ddr0@write\\-cycles@ )
> * 4 * 4 / duration_time) / (600 * 1000000 * 4 * 4)"
> >
> > I give different metric names,
> > "MetricName": "imx8mm_bandwidth_usage.lpddr4"
> > "MetricName": "imx8mm_bandwidth_usage.ddr4"
> >
> 
> But that is just not how things are done. We - or I - would expect that perf tool
> would have the intelligence to know the appropriate metric for that specific
> platform. Or, more specifically, we should not present the user with many
> metrics and expect him/her to know the appropriate metric for the specific
> board.
> 
> Are there other cases for other architectures where things are done like this?


I don't know if exist other cases. If you can’t accept it, I can only push part of it first, and let bandwidth metric locally.


Best Regards,
Joakim Zhang
> Thanks,
> John
> 
> > So users can select correct bandwidth metric according to their own board
> types. To a certain extent, it can also support some board-level metrics.
> >
> > If it is okay for you, I will send a V2 to replace ( imx8_ddr0@read\\-cycles@ +
> imx8_ddr0@write\\-cycles@ ) with ( imx8mm_ddr.read_cycles +
> imx8mm_ddr.write_cycles ).
> >
> >>> John, change to your new framework, I found it can't support all
> >>> features
> >> which is supported in 5.10 kernel.
> >>
> >> Yes, so let me know about all the problems.
> > It should have worked as 5.10 kernel at my side. Thanks.

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 22+ messages in thread

end of thread, other threads:[~2021-01-21 18:07 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-01-19  2:56 [PATCH V1 0/4] tools: perf: Add JSON metrics for i.MX8M platforms Joakim Zhang
2021-01-19  2:56 ` Joakim Zhang
2021-01-19  2:56 ` [PATCH V1 1/4] perf vendor events: Add bandwidth metric for imx8mm Joakim Zhang
2021-01-19  2:56   ` Joakim Zhang
2021-01-19  2:56 ` [PATCH V1 2/4] perf vendor events: Add JSON metrics for imx8mn DDR Perf Joakim Zhang
2021-01-19  2:56   ` Joakim Zhang
2021-01-19  2:56 ` [PATCH V1 3/4] perf vendor events: Add JSON metrics for imx8mq " Joakim Zhang
2021-01-19  2:56   ` Joakim Zhang
2021-01-19 10:40   ` John Garry
2021-01-19 10:40     ` John Garry
2021-01-19 11:00     ` Joakim Zhang
2021-01-19 11:00       ` Joakim Zhang
2021-01-19 12:27       ` John Garry
2021-01-19 12:27         ` John Garry
2021-01-20  5:46         ` Joakim Zhang
2021-01-20  5:46           ` Joakim Zhang
2021-01-20  9:25           ` John Garry
2021-01-20  9:25             ` John Garry
2021-01-21 10:24             ` Joakim Zhang
2021-01-21 10:24               ` Joakim Zhang
2021-01-19  2:56 ` [PATCH V1 4/4] perf vendor events: Add JSON metrics for imx8mp " Joakim Zhang
2021-01-19  2:56   ` Joakim Zhang

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.