From: kajoljain <kjain@linux.ibm.com>
To: John Garry <john.garry@huawei.com>,
acme@kernel.org, will@kernel.org, mark.rutland@arm.com,
jolsa@redhat.com, irogers@google.com, leo.yan@linaro.org,
peterz@infradead.org, mingo@redhat.com,
alexander.shishkin@linux.intel.com, namhyung@kernel.org,
mathieu.poirier@linaro.org
Cc: linuxarm@huawei.com, linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org, qiangqing.zhang@nxp.com,
zhangshaokun@hisilicon.com, james.clark@arm.com,
linux-imx@nxp.com
Subject: Re: [PATCH RFC v4 00/13] perf pmu-events: Support event aliasing for system PMUs
Date: Thu, 8 Oct 2020 16:57:16 +0530 [thread overview]
Message-ID: <1f1c4537-2224-cd83-a10a-947ef8cd2864@linux.ibm.com> (raw)
In-Reply-To: <1602152121-240367-1-git-send-email-john.garry@huawei.com>
On 10/8/20 3:45 PM, John Garry wrote:
> Currently event aliasing and metrics for only CPU and uncore PMUs is
> supported. In fact, only uncore PMUs aliasing is supported for when the
> uncore PMUs are fixed for a CPU, which may not always be the case for
> certain architectures.
>
> This series adds support for PMU event aliasing and metrics for system and
> other uncore PMUs which are not tied to a specific CPU.
>
> For this, we introduce system event tables in generated pmu-events.c,
> which contain a per-SoC table of events of all its system PMUs. Each
> per-PMU event is matched by a "COMPAT" property.
>
> When creating aliased and metrics PMUs, we treat core/uncore and
> system PMUs differently:
>
> - For CPU PMUs, we always match for the event mapfile based on the CPUID.
> This has not changed.
>
> - For an system PMUs, we iterate through all the events in all the system
> PMU tables.
>
> Matches are based on the "COMPAT" property matching the PMU sysfs
> identifier contents, in /sys/bus/event_source/devices/<PMU>/identifier
>
> Uncore PMUs, may be matched via CPUID or same as system PMU, depending
> on whether the uncore PMU is tied to a specific CPUID.
>
> Initial reference support is also added for ARM SMMUv3 PMCG (Performance
> Monitor Event Group) PMU for HiSilicon hip09 platform with only a single
> event so far - see driver in drivers/perf/arm_smmuv3_pmu.c reference.
>
> Here is a sample output with this series on Huawei D06CS board:
>
> root@ubuntu:/# ./perf list
> [...]
>
> smmu v3 pmcg:
> smmuv3_pmcg.config_cache_miss
> [Configuration cache miss caused by transaction or(ATS or
> non-ATS)translation request. Unit: smmuv3_pmcg]
> smmuv3_pmcg.config_struct_access
> [Configuration structure access. Unit: smmuv3_pmcg]
> smmuv3_pmcg.cycles
> [Clock cycles. Unit: smmuv3_pmcg]
> smmuv3_pmcg.l1_tlb
> [SMMUv3 PMCG L1 TABLE transation. Unit: smmuv3_pmcg]
> smmuv3_pmcg.pcie_ats_trans_passed
> [PCIe ATS Translated Transaction passed through SMMU. Unit:
> smmuv3_pmcg]
> smmuv3_pmcg.pcie_ats_trans_rq
> [PCIe ATS Translation Request received. Unit: smmuv3_pmcg]
> smmuv3_pmcg.tlb_miss
> [TLB miss caused by incomingtransaction or (ATS or non-ATS)
> translation request. Unit: smmuv3_pmcg]
> smmuv3_pmcg.trans_table_walk_access
> [Translation table walk access. Unit: smmuv3_pmcg]
> smmuv3_pmcg.transaction
> [Transaction. Unit: smmuv3_pmcg]
>
>
> root@ubuntu:/# ./perf stat -v -e smmuv3_pmcg.l1_tlb sleep 1
> Using CPUID 0x00000000480fd010
> Using SYSID HIP08
> -> smmuv3_pmcg_200100020/event=0x8a/
> -> smmuv3_pmcg_200140020/event=0x8a/
> -> smmuv3_pmcg_100020/event=0x8a/
> -> smmuv3_pmcg_140020/event=0x8a/
> -> smmuv3_pmcg_200148020/event=0x8a/
> -> smmuv3_pmcg_148020/event=0x8a/
> smmuv3_pmcg.l1_tlb: 0 1001221690 1001221690
> smmuv3_pmcg.l1_tlb: 0 1001220090 1001220090
> smmuv3_pmcg.l1_tlb: 101 1001219660 1001219660
> smmuv3_pmcg.l1_tlb: 0 1001219010 1001219010
> smmuv3_pmcg.l1_tlb: 0 1001218360 1001218360
> smmuv3_pmcg.l1_tlb: 134 1001217850 1001217850
>
> Performance counter stats for 'system wide':
>
> 235 smmuv3_pmcg.l1_tlb
>
> 1.001263128 seconds time elapsed
>
> root@ubuntu:/#
>
> Support is also added for imx8mm DDR PMU and HiSilicon hip09 uncore events.
> Some events for hip09 may not be accurate at the moment.
>
> Series is here:
> https://github.com/hisilicon/kernel-dev/tree/private-topic-perf-5.9-sys-pmu-events-v4
>
> Kernel part is here:
> https://lore.kernel.org/lkml/1602149181-237415-1-git-send-email-john.garry@huawei.com/T/#mc34f758ab72f3d4a90d854b9bda7e6bbb90835b2
>
> Differences to v3:
> - Rebase to v5.9-rc7
> - Includes Ian's uncore metric expressions Fix and another fix
> - Add hip09 uncore events
> - Tidy jevents.c changes a bit
>
> Differences to v2:
> - fixups for imx8mm JSONs
> - fix for metrics being repeated per PMU
> - use sysfs__read_str()
> - fix typo in PMCG JSON
> - drop evsel fix, which someone else fixed
>
> Differences to v1:
> - Stop using SoC id and use a per-PMU identifier instead
> - Add metric group sys events support
> - This is a bit hacky
> - Add imx8mm DDR Perf support
> - Add fix for parse events sel
> - without it, I get this spewed for metric event:
>
> assertion failed at util/parse-events.c:1637
>
> Ian Rogers (1):
> perf metricgroup: Fix uncore metric expressions
>
> Joakim Zhang (1):
> perf vendor events: Add JSON metrics for imx8mm DDR Perf
>
> John Garry (11):
> perf jevents: Add support for an extra directory level
> perf jevents: Add support for system events tables
> perf pmu: Add pmu_id()
> perf pmu: Add pmu_add_sys_aliases()
> perf vendor events arm64: Add Architected events smmuv3-pmcg.json
> perf vendor events arm64: Add hip09 SMMUv3 PMCG events
> perf vendor events arm64: Add hip09 uncore events
> perf metricgroup: Hack a fix for aliases when covering multiple PMUs
> perf metricgroup: Split up metricgroup__print()
> perf metricgroup: Support printing metric groups for system PMUs
> perf metricgroup: Support adding metrics for system PMUs
>
Hi John,
I am looking into these patches, it seems they are not re-based on top of
latest Arnaldo's perf/core branch. Can you rebase these changes. I think we are missing
multiple updates.
Thanks,
Kajol Jain
> .../arch/arm64/freescale/imx8mm/sys/ddrc.json | 39 +++
> .../arm64/freescale/imx8mm/sys/metrics.json | 18 +
> .../hisilicon/hip09/sys/smmu-v3-pmcg.json | 42 +++
> .../hisilicon/hip09/sys/uncore-ddrc.json | 58 ++++
> .../arm64/hisilicon/hip09/sys/uncore-hha.json | 82 +++++
> .../arm64/hisilicon/hip09/sys/uncore-l3c.json | 106 ++++++
> .../pmu-events/arch/arm64/smmuv3-pmcg.json | 58 ++++
> tools/perf/pmu-events/jevents.c | 136 ++++++--
> tools/perf/pmu-events/jevents.h | 11 +-
> tools/perf/pmu-events/pmu-events.h | 6 +
> tools/perf/util/metricgroup.c | 322 +++++++++++++-----
> tools/perf/util/pmu.c | 96 ++++++
> tools/perf/util/pmu.h | 3 +
> 13 files changed, 863 insertions(+), 114 deletions(-)
> create mode 100644 tools/perf/pmu-events/arch/arm64/freescale/imx8mm/sys/ddrc.json
> create mode 100644 tools/perf/pmu-events/arch/arm64/freescale/imx8mm/sys/metrics.json
> create mode 100644 tools/perf/pmu-events/arch/arm64/hisilicon/hip09/sys/smmu-v3-pmcg.json
> create mode 100644 tools/perf/pmu-events/arch/arm64/hisilicon/hip09/sys/uncore-ddrc.json
> create mode 100644 tools/perf/pmu-events/arch/arm64/hisilicon/hip09/sys/uncore-hha.json
> create mode 100644 tools/perf/pmu-events/arch/arm64/hisilicon/hip09/sys/uncore-l3c.json
> create mode 100644 tools/perf/pmu-events/arch/arm64/smmuv3-pmcg.json
>
next prev parent reply other threads:[~2020-10-08 11:28 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-10-08 10:15 John Garry
2020-10-08 10:15 ` [PATCH RFC v4 01/13] perf jevents: Add support for an extra directory level John Garry
2020-10-08 10:15 ` [PATCH RFC v4 02/13] perf jevents: Add support for system events tables John Garry
2020-10-08 10:15 ` [PATCH RFC v4 03/13] perf pmu: Add pmu_id() John Garry
2020-10-08 10:15 ` [PATCH RFC v4 04/13] perf pmu: Add pmu_add_sys_aliases() John Garry
2020-10-08 10:15 ` [PATCH RFC v4 05/13] perf vendor events arm64: Add Architected events smmuv3-pmcg.json John Garry
2020-10-08 10:15 ` [PATCH RFC v4 06/13] perf vendor events arm64: Add hip09 SMMUv3 PMCG events John Garry
2020-10-14 18:06 ` Robin Murphy
2020-10-15 7:47 ` John Garry
2020-10-08 10:15 ` [PATCH RFC v4 07/13] perf vendor events arm64: Add hip09 uncore events John Garry
2020-10-08 10:15 ` [PATCH RFC v4 08/13] perf metricgroup: Fix uncore metric expressions John Garry
2020-10-08 10:15 ` [PATCH RFC v4 09/13] perf metricgroup: Hack a fix for aliases when covering multiple PMUs John Garry
2020-10-18 8:50 ` [perf metricgroup] fcc9c5243c: perf-sanity-tests.Parse_and_process_metrics.fail kernel test robot
2020-10-18 23:30 ` Ian Rogers
2020-10-19 1:52 ` Andi Kleen
2020-10-19 8:02 ` Jin, Yao
2020-10-19 9:48 ` John Garry
2020-10-19 11:49 ` Jin, Yao
2020-10-19 16:20 ` Ian Rogers
2020-10-19 17:04 ` John Garry
2020-10-20 8:56 ` kajoljain
2020-10-20 16:53 ` Ian Rogers
2020-11-03 14:43 ` John Garry
2020-11-03 16:05 ` Ian Rogers
2020-11-03 16:54 ` John Garry
2020-11-04 4:58 ` kajoljain
2020-10-08 10:15 ` [PATCH RFC v4 10/13] perf metricgroup: Split up metricgroup__print() John Garry
2020-10-08 10:15 ` [PATCH RFC v4 11/13] perf metricgroup: Support printing metric groups for system PMUs John Garry
2020-10-08 10:15 ` [PATCH RFC v4 12/13] perf metricgroup: Support adding metrics " John Garry
2020-10-08 10:15 ` [PATCH RFC v4 13/13] perf vendor events: Add JSON metrics for imx8mm DDR Perf John Garry
2020-10-12 10:03 ` Joakim Zhang
2020-10-12 10:34 ` John Garry
2020-10-08 11:27 ` kajoljain [this message]
2020-10-08 11:49 ` [PATCH RFC v4 00/13] perf pmu-events: Support event aliasing for system PMUs John Garry
2020-10-14 11:16 ` Jiri Olsa
2020-10-14 17:41 ` 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=1f1c4537-2224-cd83-a10a-947ef8cd2864@linux.ibm.com \
--to=kjain@linux.ibm.com \
--cc=acme@kernel.org \
--cc=alexander.shishkin@linux.intel.com \
--cc=irogers@google.com \
--cc=james.clark@arm.com \
--cc=john.garry@huawei.com \
--cc=jolsa@redhat.com \
--cc=leo.yan@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-imx@nxp.com \
--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: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®