From: John Garry <john.garry@huawei.com> To: <will@kernel.org>, <mathieu.poirier@linaro.org>, <leo.yan@linaro.org>, <peterz@infradead.org>, <mingo@redhat.com>, <acme@kernel.org>, <mark.rutland@arm.com>, <alexander.shishkin@linux.intel.com>, <jolsa@redhat.com>, <namhyung@kernel.org> Cc: <irogers@google.com>, <linux-kernel@vger.kernel.org>, <linux-arm-kernel@lists.infradead.org>, <linuxarm@huawei.com>, <zhangshaokun@hisilicon.com>, <qiangqing.zhang@nxp.com>, <kjain@linux.ibm.com>, John Garry <john.garry@huawei.com> Subject: [PATCH 0/5] perf arm64 metricgroup support Date: Wed, 3 Mar 2021 23:22:13 +0800 [thread overview] Message-ID: <1614784938-27080-1-git-send-email-john.garry@huawei.com> (raw) This series contains support to get basic metricgroups working for arm64 CPUs. Initial support is added for HiSilicon hip08 platform. Some sample usage on Huawei D06 board: $ ./perf list metric List of pre-defined events (to be used in -e): Metrics: bp_misp_flush [BP misp flush L3 topdown metric] branch_mispredicts [Branch mispredicts L2 topdown metric] core_bound [Core bound L2 topdown metric] divider [Divider L3 topdown metric] exe_ports_util [EXE ports util L3 topdown metric] fetch_bandwidth_bound [Fetch bandwidth bound L2 topdown metric] fetch_latency_bound [Fetch latency bound L2 topdown metric] fsu_stall [FSU stall L3 topdown metric] idle_by_icache_miss $ sudo ./perf stat -v -M core_bound sleep 1 Using CPUID 0x00000000480fd010 metric expr (exe_stall_cycle - (mem_stall_anyload + armv8_pmuv3_0@event\=0x7005@)) / cpu_cycles for core_bound found event cpu_cycles found event armv8_pmuv3_0/event=0x7005/ found event exe_stall_cycle found event mem_stall_anyload adding {cpu_cycles -> armv8_pmuv3_0/event=0x7001/ mem_stall_anyload -> armv8_pmuv3_0/event=0x7004/ Control descriptor is not initialized cpu_cycles: 989433 385050 385050 armv8_pmuv3_0/event=0x7005/: 19207 385050 385050 exe_stall_cycle: 900825 385050 385050 mem_stall_anyload: 253516 385050 385050 Performance counter stats for 'sleep': 989,433 cpu_cycles # 0.63 core_bound 19,207 armv8_pmuv3_0/event=0x7005/ 900,825 exe_stall_cycle 253,516 mem_stall_anyload 0.000805809 seconds time elapsed 0.000875000 seconds user 0.000000000 seconds sys perf stat --topdown is not supported, as this requires the CPU PMU to expose (alias) events for the TopDown L1 metrics from sysfs, which arm does not do. To get that to work, we probably need to make perf use the pmu-events cpumap to learn about those alias events. John Garry (5): perf metricgroup: Support printing metrics for arm64 perf metricgroup: Support adding metrics for arm64 perf vendor events arm64: Add Hisi hip08 L1 metrics perf vendor events arm64: Add Hisi hip08 L2 metrics perf vendor events arm64: Add Hisi hip08 L3 metrics .../arch/arm64/hisilicon/hip08/metrics.json | 233 ++++++++++++++++++ tools/perf/util/metricgroup.c | 27 +- 2 files changed, 257 insertions(+), 3 deletions(-) create mode 100644 tools/perf/pmu-events/arch/arm64/hisilicon/hip08/metrics.json -- 2.26.2
WARNING: multiple messages have this Message-ID (diff)
From: John Garry <john.garry@huawei.com> To: <will@kernel.org>, <mathieu.poirier@linaro.org>, <leo.yan@linaro.org>, <peterz@infradead.org>, <mingo@redhat.com>, <acme@kernel.org>, <mark.rutland@arm.com>, <alexander.shishkin@linux.intel.com>, <jolsa@redhat.com>, <namhyung@kernel.org> Cc: <irogers@google.com>, <linux-kernel@vger.kernel.org>, <linux-arm-kernel@lists.infradead.org>, <linuxarm@huawei.com>, <zhangshaokun@hisilicon.com>, <qiangqing.zhang@nxp.com>, <kjain@linux.ibm.com>, John Garry <john.garry@huawei.com> Subject: [PATCH 0/5] perf arm64 metricgroup support Date: Wed, 3 Mar 2021 23:22:13 +0800 [thread overview] Message-ID: <1614784938-27080-1-git-send-email-john.garry@huawei.com> (raw) This series contains support to get basic metricgroups working for arm64 CPUs. Initial support is added for HiSilicon hip08 platform. Some sample usage on Huawei D06 board: $ ./perf list metric List of pre-defined events (to be used in -e): Metrics: bp_misp_flush [BP misp flush L3 topdown metric] branch_mispredicts [Branch mispredicts L2 topdown metric] core_bound [Core bound L2 topdown metric] divider [Divider L3 topdown metric] exe_ports_util [EXE ports util L3 topdown metric] fetch_bandwidth_bound [Fetch bandwidth bound L2 topdown metric] fetch_latency_bound [Fetch latency bound L2 topdown metric] fsu_stall [FSU stall L3 topdown metric] idle_by_icache_miss $ sudo ./perf stat -v -M core_bound sleep 1 Using CPUID 0x00000000480fd010 metric expr (exe_stall_cycle - (mem_stall_anyload + armv8_pmuv3_0@event\=0x7005@)) / cpu_cycles for core_bound found event cpu_cycles found event armv8_pmuv3_0/event=0x7005/ found event exe_stall_cycle found event mem_stall_anyload adding {cpu_cycles -> armv8_pmuv3_0/event=0x7001/ mem_stall_anyload -> armv8_pmuv3_0/event=0x7004/ Control descriptor is not initialized cpu_cycles: 989433 385050 385050 armv8_pmuv3_0/event=0x7005/: 19207 385050 385050 exe_stall_cycle: 900825 385050 385050 mem_stall_anyload: 253516 385050 385050 Performance counter stats for 'sleep': 989,433 cpu_cycles # 0.63 core_bound 19,207 armv8_pmuv3_0/event=0x7005/ 900,825 exe_stall_cycle 253,516 mem_stall_anyload 0.000805809 seconds time elapsed 0.000875000 seconds user 0.000000000 seconds sys perf stat --topdown is not supported, as this requires the CPU PMU to expose (alias) events for the TopDown L1 metrics from sysfs, which arm does not do. To get that to work, we probably need to make perf use the pmu-events cpumap to learn about those alias events. John Garry (5): perf metricgroup: Support printing metrics for arm64 perf metricgroup: Support adding metrics for arm64 perf vendor events arm64: Add Hisi hip08 L1 metrics perf vendor events arm64: Add Hisi hip08 L2 metrics perf vendor events arm64: Add Hisi hip08 L3 metrics .../arch/arm64/hisilicon/hip08/metrics.json | 233 ++++++++++++++++++ tools/perf/util/metricgroup.c | 27 +- 2 files changed, 257 insertions(+), 3 deletions(-) create mode 100644 tools/perf/pmu-events/arch/arm64/hisilicon/hip08/metrics.json -- 2.26.2 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next reply other threads:[~2021-03-03 18:43 UTC|newest] Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-03-03 15:22 John Garry [this message] 2021-03-03 15:22 ` [PATCH 0/5] perf arm64 metricgroup support John Garry 2021-03-03 15:22 ` [PATCH 1/5] perf metricgroup: Support printing metrics for arm64 John Garry 2021-03-03 15:22 ` John Garry 2021-03-04 20:05 ` Jiri Olsa 2021-03-04 20:05 ` Jiri Olsa 2021-03-05 11:06 ` John Garry 2021-03-05 11:06 ` John Garry 2021-03-06 19:34 ` Jiri Olsa 2021-03-06 19:34 ` Jiri Olsa 2021-03-08 16:34 ` John Garry 2021-03-08 16:34 ` John Garry 2021-03-11 8:47 ` John Garry 2021-03-11 8:47 ` John Garry 2021-03-03 15:22 ` [PATCH 2/5] perf metricgroup: Support adding " John Garry 2021-03-03 15:22 ` John Garry 2021-03-03 15:22 ` [PATCH 3/5] perf vendor events arm64: Add Hisi hip08 L1 metrics John Garry 2021-03-03 15:22 ` John Garry 2021-03-03 15:22 ` [PATCH 4/5] perf vendor events arm64: Add Hisi hip08 L2 metrics John Garry 2021-03-03 15:22 ` John Garry 2021-03-03 15:22 ` [PATCH 5/5] perf vendor events arm64: Add Hisi hip08 L3 metrics John Garry 2021-03-03 15:22 ` John Garry
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=1614784938-27080-1-git-send-email-john.garry@huawei.com \ --to=john.garry@huawei.com \ --cc=acme@kernel.org \ --cc=alexander.shishkin@linux.intel.com \ --cc=irogers@google.com \ --cc=jolsa@redhat.com \ --cc=kjain@linux.ibm.com \ --cc=leo.yan@linaro.org \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linuxarm@huawei.com \ --cc=mark.rutland@arm.com \ --cc=mathieu.poirier@linaro.org \ --cc=mingo@redhat.com \ --cc=namhyung@kernel.org \ --cc=peterz@infradead.org \ --cc=qiangqing.zhang@nxp.com \ --cc=will@kernel.org \ --cc=zhangshaokun@hisilicon.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
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.