From patchwork Mon Mar 27 02:46:09 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jing Zhang X-Patchwork-Id: 13188504 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id EE0B6C74A5B for ; Mon, 27 Mar 2023 02:47:23 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:MIME-Version:List-Subscribe:List-Help: List-Post:List-Archive:List-Unsubscribe:List-Id:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=jcqOWs8DnMGdiXSgMrRPCscpXvFFs3mMlr7huXwcKow=; b=p0guYKlTFKVolG FG7m5APKCndiDv1Q9bQ6d62MfWrctiiFXK+y1+X8X3+SkJ7XHcwc6EdxWZ6+5w7JOfxh0aPj2oM9+ 6mYz1CSDzhxOgc2H0azPuqvlNw91imVGRC7lb+OMiOZDahfZ1jnRMfOOLv70oUZQrVrRqThpXpGuz 5ZfIk3O1uxEwpFukFQ6kdgmALU8WN90X/Y6AizkcZRNX0rTSDONO1GqkKLS2tNlyyixMAOS38sVK7 up+ZlFSI6IgsXhVLk2fOsFfP6yfhv1hK4m1C1VzAbUEhK4Uos6iIiZ3bCmxQ8xE3T1yi2U9gq0IAn hejZJYWijQdGABGzUneA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1pgcsY-009YwZ-1x; Mon, 27 Mar 2023 02:46:38 +0000 Received: from out30-100.freemail.mail.aliyun.com ([115.124.30.100]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1pgcsT-009Ysf-2N for linux-arm-kernel@lists.infradead.org; Mon, 27 Mar 2023 02:46:35 +0000 X-Alimail-AntiSpam: AC=PASS;BC=-1|-1;BR=01201311R191e4;CH=green;DM=||false|;DS=||;FP=0|-1|-1|-1|0|-1|-1|-1;HT=ay29a033018046049;MF=renyu.zj@linux.alibaba.com;NM=1;PH=DS;RN=17;SR=0;TI=SMTPD_---0VeeqFPR_1679885183; Received: from srmbuffer011165236051.sqa.net(mailfrom:renyu.zj@linux.alibaba.com fp:SMTPD_---0VeeqFPR_1679885183) by smtp.aliyun-inc.com; Mon, 27 Mar 2023 10:46:24 +0800 From: Jing Zhang To: John Garry , Ian Rogers , Will Deacon , James Clark , Mike Leach , Leo Yan , Mark Rutland , Alexander Shishkin , Jiri Olsa , Namhyung Kim , Adrian Hunter Cc: linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-perf-users@vger.kernel.org, Shuai Xue , Zhuo Song , Jing Zhang Subject: [PATCH RFC 1/4] driver/perf: Add identifier sysfs file for CMN Date: Mon, 27 Mar 2023 10:46:09 +0800 Message-Id: <1679885172-95021-2-git-send-email-renyu.zj@linux.alibaba.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1679885172-95021-1-git-send-email-renyu.zj@linux.alibaba.com> References: <1679885172-95021-1-git-send-email-renyu.zj@linux.alibaba.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230326_194633_946346_799502E1 X-CRM114-Status: GOOD ( 12.24 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org To allow userspace to identify the specific implementation of the device, add an "identifier" sysfs file. The perf tool can match the arm CMN metric through the identifier. Signed-off-by: Jing Zhang --- drivers/perf/arm-cmn.c | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/drivers/perf/arm-cmn.c b/drivers/perf/arm-cmn.c index c968986..0c138ad 100644 --- a/drivers/perf/arm-cmn.c +++ b/drivers/perf/arm-cmn.c @@ -1168,10 +1168,53 @@ static ssize_t arm_cmn_cpumask_show(struct device *dev, .attrs = arm_cmn_cpumask_attrs, }; +static ssize_t arm_cmn_identifier_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + struct arm_cmn *cmn = to_cmn(dev_get_drvdata(dev)); + if (cmn->model == CMN700) { + return sysfs_emit(buf, "%s\n", "CMN700"); + } + else if (cmn->model == CMN650) { + return sysfs_emit(buf, "%s\n", "CMN650"); + } + else if (cmn->model == CMN600) { + return sysfs_emit(buf, "%s\n", "CMN600"); + } + else if (cmn->model == CI700) { + return sysfs_emit(buf, "%s\n", "CI700"); + } + return sysfs_emit(buf, "%s\n", "UNKNOWN"); +} + +static umode_t arm_cmn_identifier_attr_visible(struct kobject *kobj, + struct attribute *attr, int n) +{ + struct device *dev = kobj_to_dev(kobj); + struct arm_cmn *cmn = to_cmn(dev_get_drvdata(dev)); + if (cmn->model <= 0) + return 0; + return attr->mode; +}; + +static struct device_attribute arm_cmn_identifier_attr = +__ATTR(identifier, 0444, arm_cmn_identifier_show, NULL); + +static struct attribute *arm_cmn_identifier_attrs[] = { + &arm_cmn_identifier_attr.attr, + NULL, +}; + +static struct attribute_group arm_cmn_identifier_attr_group = { + .attrs = arm_cmn_identifier_attrs, + .is_visible = arm_cmn_identifier_attr_visible, +}; + static const struct attribute_group *arm_cmn_attr_groups[] = { &arm_cmn_event_attrs_group, &arm_cmn_format_attrs_group, &arm_cmn_cpumask_attr_group, + &arm_cmn_identifier_attr_group, NULL }; From patchwork Mon Mar 27 02:46:10 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Jing Zhang X-Patchwork-Id: 13188506 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 495E5C74A5B for ; Mon, 27 Mar 2023 02:47:44 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=IJBnWliOyuy+TKk2kpOdeFziR+1t1Xw5s9XXJrScGoA=; b=Wsy/Y7kjHlbh0i YLcHVOBs8Xh6udr6Xz/tSu2GlH/6fH0+/Py/QfhTdrwAYzA4/R7FIA4R3jOvSbTCBhhFIJYG6Ioca rmId42mgoVl3ZlLZExme3UEdNjW+c5YcEe85grk2wBzV+roIKlCbhXVLjBkBia25JGt6CohjQeNCK fbd7AZrKC/IOBioHdRyqN/HLmgdZihcT5J/5OlFVWGe8agquhPPXKeIXiucolQ4t3qziFQ0v/zRak jCTApyWEojPs3/wfnrfmObUfdlJgN1vm1aGIDt3ZGa9cfXv/IyUuKeL3kwgyevzPIFemdx5TRpepe NE38FmvZAZIOcdMnWJsg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1pgcsp-009Z1d-2j; Mon, 27 Mar 2023 02:46:55 +0000 Received: from out30-119.freemail.mail.aliyun.com ([115.124.30.119]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1pgcsT-009Ysh-2t for linux-arm-kernel@lists.infradead.org; Mon, 27 Mar 2023 02:46:37 +0000 X-Alimail-AntiSpam: AC=PASS;BC=-1|-1;BR=01201311R261e4;CH=green;DM=||false|;DS=||;FP=0|-1|-1|-1|0|-1|-1|-1;HT=ay29a033018046060;MF=renyu.zj@linux.alibaba.com;NM=1;PH=DS;RN=17;SR=0;TI=SMTPD_---0VeeqFPn_1679885184; Received: from srmbuffer011165236051.sqa.net(mailfrom:renyu.zj@linux.alibaba.com fp:SMTPD_---0VeeqFPn_1679885184) by smtp.aliyun-inc.com; Mon, 27 Mar 2023 10:46:25 +0800 From: Jing Zhang To: John Garry , Ian Rogers , Will Deacon , James Clark , Mike Leach , Leo Yan , Mark Rutland , Alexander Shishkin , Jiri Olsa , Namhyung Kim , Adrian Hunter Cc: linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-perf-users@vger.kernel.org, Shuai Xue , Zhuo Song , Jing Zhang Subject: [PATCH RFC 2/4] perf vendor events: Add JSON metrics for cmn700 Date: Mon, 27 Mar 2023 10:46:10 +0800 Message-Id: <1679885172-95021-3-git-send-email-renyu.zj@linux.alibaba.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1679885172-95021-1-git-send-email-renyu.zj@linux.alibaba.com> References: <1679885172-95021-1-git-send-email-renyu.zj@linux.alibaba.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230326_194634_260860_BA778603 X-CRM114-Status: GOOD ( 16.50 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Add JSON metrics for cmn700. Currently just add part of cmn700 PMU events and metrics which are general and compatible for any SoC. Signed-off-by: Jing Zhang --- .../pmu-events/arch/arm64/arm/cmn700/sys/cmn.json | 188 +++++++++++++++++++++ .../arch/arm64/arm/cmn700/sys/metrics.json | 74 ++++++++ tools/perf/pmu-events/jevents.py | 1 + 3 files changed, 263 insertions(+) create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cmn700/sys/cmn.json create mode 100644 tools/perf/pmu-events/arch/arm64/arm/cmn700/sys/metrics.json diff --git a/tools/perf/pmu-events/arch/arm64/arm/cmn700/sys/cmn.json b/tools/perf/pmu-events/arch/arm64/arm/cmn700/sys/cmn.json new file mode 100644 index 0000000..a060d1d --- /dev/null +++ b/tools/perf/pmu-events/arch/arm64/arm/cmn700/sys/cmn.json @@ -0,0 +1,188 @@ +[ + { + "EventName": "hnf_cache_miss", + "BriefDescription": "Counts total cache misses in first lookup result (high priority)", + "Unit": "cmn700", + "Compat": "CMN700" + }, + { + "EventName": "hnf_slc_sf_cache_access", + "BriefDescription": "Counts number of cache accesses in first access (high priority)", + "Unit": "cmn700", + "Compat": "CMN700" + }, + { + "EventName": "hnf_cache_fill", + "BriefDescription": "Counts total allocations in HN SLC (all cache line allocations to SLC)", + "Unit": "cmn700", + "Compat": "CMN700" + }, + { + "EventName": "hnf_pocq_retry", + "BriefDescription": "Counts number of retried requests", + "Unit": "cmn700", + "Compat": "CMN700" + }, + { + "EventName": "hnf_pocq_reqs_recvd", + "BriefDescription": "Counts number of requests that HN receives", + "Unit": "cmn700", + "Compat": "CMN700" + }, + { + "EventName": "hnf_sf_hit", + "BriefDescription": "Counts number of SF hits", + "Unit": "cmn700", + "Compat": "CMN700" + }, + { + "EventName": "hnf_sf_evictions", + "BriefDescription": "Counts number of SF eviction cache invalidations initiated", + "Unit": "cmn700", + "Compat": "CMN700" + }, + { + "EventName": "hnf_dir_snoops_sent", + "BriefDescription": "Counts number of directed snoops sent (not including SF back invalidation)", + "Unit": "cmn700", + "Compat": "CMN700" + }, + { + "EventName": "hnf_brd_snoops_sent", + "BriefDescription": "Counts number of multicast snoops sent (not including SF back invalidation)", + "Unit": "cmn700", + "Compat": "CMN700" + }, + { + "EventName": "hnf_mc_retries", + "BriefDescription": "Counts number of retried transactions by the MC", + "Unit": "cmn700", + "Compat": "CMN700" + }, + { + "EventName": "hnf_mc_reqs", + "BriefDescription": "Counts number of requests that are sent to MC", + "Unit": "cmn700", + "Compat": "CMN700" + }, + { + "EventName": "hnf_qos_hh_retry", + "BriefDescription": "Counts number of times a HighHigh priority request is protocolretried at the HN‑F", + "Unit": "cmn700", + "Compat": "CMN700" + }, + { + "EventName": "rnid_s0_rdata_beats", + "BriefDescription": "Number of RData beats (RVALID and RREADY) dispatched on port 0. This event measures the read bandwidth, including CMO responses.", + "Unit": "cmn700", + "Compat": "CMN700" + }, + { + "EventName": "rnid_s1_rdata_beats", + "BriefDescription": "Number of RData beats (RVALID and RREADY) dispatched on port 1. This event measures the read bandwidth, including CMO responses.", + "Unit": "cmn700", + "Compat": "CMN700" + }, + { + "EventName": "rnid_s2_rdata_beats", + "BriefDescription": "Number of RData beats (RVALID and RREADY) dispatched on port 2. This event measures the read bandwidth, including CMO responses.", + "Unit": "cmn700", + "Compat": "CMN700" + }, + { + "EventName": "rnid_rxdat_flits", + "BriefDescription": "Number of RXDAT flits received. This event measures the true read data bandwidth, excluding CMOs.", + "Unit": "cmn700", + "Compat": "CMN700" + }, + { + "EventName": "rnid_txdat_flits", + "BriefDescription": "Number of TXDAT flits dispatched. This event measures the write bandwidth.", + "Unit": "cmn700", + "Compat": "CMN700" + }, + { + "EventName": "rnid_txreq_flits_total", + "BriefDescription": "Number of TXREQ flits dispatched. This event measures the total request bandwidth.", + "Unit": "cmn700", + "Compat": "CMN700" + }, + { + "EventName": "rnid_txreq_flits_retried", + "BriefDescription": "Number of retried TXREQ flits dispatched. This event measures the retry rate.", + "Unit": "cmn700", + "Compat": "CMN700" + }, + { + "EventName": "sbsx_txdat_flitv", + "BriefDescription": "Number of TXDAT flits dispatched from XP to SBSX. This event is a measure of the write bandwidth.", + "Unit": "cmn700", + "Compat": "CMN700" + }, + { + "EventName": "sbsx_txrsp_retryack", + "BriefDescription": "Number of RXREQ flits dispatched. This event is a measure of the retry rate.", + "Unit": "cmn700", + "Compat": "CMN700" + }, + { + "EventName": "sbsx_arvalid_no_arready", + "BriefDescription": "Number of cycles the SBSX bridge is stalled because of backpressure on AR channel.", + "Unit": "cmn700", + "Compat": "CMN700" + }, + { + "EventName": "sbsx_awvalid_no_awready", + "BriefDescription": "Number of cycles the SBSX bridge is stalled because of backpressure on AW channel.", + "Unit": "cmn700", + "Compat": "CMN700" + }, + { + "EventName": "sbsx_wvalid_no_wready", + "BriefDescription": "Number of cycles the SBSX bridge is stalled because of backpressure on W channel.", + "Unit": "cmn700", + "Compat": "CMN700" + }, + { + "EventName": "hni_txdat_stall", + "BriefDescription": "TXDAT valid but no link credit available.", + "Unit": "cmn700", + "Compat": "CMN700" + }, + { + "EventName": "hni_txrsp_retryack", + "BriefDescription": "Number of RXREQ flits dispatched. This event is a measure of the retry rate.", + "Unit": "cmn700", + "Compat": "CMN700" + }, + { + "EventName": "hni_arvalid_no_arready", + "BriefDescription": "Number of cycles the HN-I bridge is stalled because of backpressure on AR channel.", + "Unit": "cmn700", + "Compat": "CMN700" + }, + { + "EventName": "hni_awvalid_no_awready", + "BriefDescription": "Number of cycles the HN-I bridge is stalled because of backpressure on AW channel.", + "Unit": "cmn700", + "Compat": "CMN700" + }, + { + "EventName": "hni_wvalid_no_wready", + "BriefDescription": "Number of cycles the HN-I bridge is stalled because of backpressure on W channel.", + "Unit": "cmn700", + "Compat": "CMN700" + }, + { + "EventName": "hni_arready_no_arvalid", + "BriefDescription": "Number of cycles the AR channel is waiting for new requests from HN-I bridge.", + "Unit": "cmn700", + "Compat": "CMN700" + }, + { + "EventName": "hni_awready_no_awvalid", + "BriefDescription": "Number of cycles the AW channel is waiting for new requests from HN-I bridge.", + "Unit": "cmn700", + "Compat": "CMN700" + } +] diff --git a/tools/perf/pmu-events/arch/arm64/arm/cmn700/sys/metrics.json b/tools/perf/pmu-events/arch/arm64/arm/cmn700/sys/metrics.json new file mode 100644 index 0000000..430567b --- /dev/null +++ b/tools/perf/pmu-events/arch/arm64/arm/cmn700/sys/metrics.json @@ -0,0 +1,74 @@ +[ + { + "MetricName": "slc_miss_rate", + "BriefDescription": "The system level cache miss rate include.", + "MetricGroup": "cmn700", + "MetricExpr": "hnf_cache_miss / hnf_slc_sf_cache_access", + "ScaleUnit": "100%", + "Unit": "cmn700", + "Compat": "CMN700" + }, + { + "MetricName": "hnf_message_retry_rate", + "BriefDescription": "HN-F message retry rate indicates whether a lack of credits is causing the bottlenecks.", + "MetricGroup": "cmn700", + "MetricExpr": "hnf_pocq_retry / hnf_pocq_reqs_recvd", + "ScaleUnit": "100%", + "Unit": "cmn700", + "Compat": "CMN700" + }, + { + "MetricName": "sf_hit_rate", + "BriefDescription": "Snoop filter hit rate can be used to measure the Snoop Filter efficiency.", + "MetricGroup": "cmn700", + "MetricExpr": "hnf_sf_hit / hnf_slc_sf_cache_access", + "ScaleUnit": "100%", + "Unit": "cmn700", + "Compat": "CMN700" + }, + { + "MetricName": "mc_message_retry_rate", + "BriefDescription": "The memory controller request retries rate indicates whether the memory controller is the bottleneck.", + "MetricGroup": "cmn700", + "MetricExpr": "hnf_mc_retries / hnf_mc_reqs", + "ScaleUnit": "100%", + "Unit": "cmn700", + "Compat": "CMN700" + }, + { + "MetricName": "rni_actual_read_bandwidth.all", + "BriefDescription": "This event measure the actual bandwidth(MB/sec) that RN-I bridge sends to the interconnect.", + "MetricGroup": "cmn700", + "MetricExpr": "rnid_rxdat_flits * 32 / 1e6 / duration_time", + "ScaleUnit": "1MB/s", + "Unit": "cmn700", + "Compat": "CMN700" + }, + { + "MetricName": "rni_actual_write_bandwidth.all", + "BriefDescription": "This event measures the actual write bandwidth(MB/sec) at RN-I bridges.", + "MetricGroup": "cmn700", + "MetricExpr": "rnid_txdat_flits * 32 / 1e6 / duration_time", + "ScaleUnit": "1MB/s", + "Unit": "cmn700", + "Compat": "CMN700" + }, + { + "MetricName": "rni_retry_rate", + "BriefDescription": "RN-I bridge retry rate indicates whether the memory controller is the bottleneck.", + "MetricGroup": "cmn700", + "MetricExpr": "rnid_txreq_flits_retried / rnid_txreq_flits_total", + "ScaleUnit": "100%", + "Unit": "cmn700", + "Compat": "CMN700" + }, + { + "MetricName": "sbsx_actual_write_bandwidth.all", + "BriefDescription": "sbsx actual write bandwidth(MB/sec).", + "MetricGroup": "cmn700", + "MetricExpr": "sbsx_txdat_flitv * 32 / 1e6 / duration_time", + "ScaleUnit": "1MB/s", + "Unit": "cmn700", + "Compat": "CMN700" + } +] diff --git a/tools/perf/pmu-events/jevents.py b/tools/perf/pmu-events/jevents.py index 2bcd07c..20ed492 100755 --- a/tools/perf/pmu-events/jevents.py +++ b/tools/perf/pmu-events/jevents.py @@ -256,6 +256,7 @@ class JsonEvent: 'DFPMC': 'amd_df', 'cpu_core': 'cpu_core', 'cpu_atom': 'cpu_atom', + 'cmn700': 'cmn700', } return table[unit] if unit in table else f'uncore_{unit.lower()}' From patchwork Mon Mar 27 02:46:11 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jing Zhang X-Patchwork-Id: 13188505 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 6B3BDC74A5B for ; Mon, 27 Mar 2023 02:47:41 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:MIME-Version:List-Subscribe:List-Help: List-Post:List-Archive:List-Unsubscribe:List-Id:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=9UX9OIP6AYJF7xtkir31kYm4NGDEMRUA6Qs53ZtS2Cw=; b=BT7XrV3gRbbWXR u0ryQxzm9VfRihBuef/wWm6KQ/aYdIYLgkgdjdOiMeDxofn12wB/+DZzrZlZefqoh5ZJ/4o4qNYcq 4F4x7aLkOzVs6f7h5euL55I0tlSUqpo8l9tWAGJZTxLGh+WiY9qcOQ37CkoAvARDcRfvz8u9TLm5y svnoURy6JHs0tGQuSdUgmyt8L94CGy2/xhBgx3b7Y2IvnRU3J0J7Jt1sH/HXnG6x7ayNYX5CsE9X+ MoVHmSuun8zbKc16xPdhDq1YnzCS+VSjXH+UhAdpUY3xEjPp4DU3iTuKffjv6AECPVQJr9roLvR0T zeGtUEz8X7o7jqnp/DQQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1pgcso-009Z0z-2O; Mon, 27 Mar 2023 02:46:54 +0000 Received: from out30-99.freemail.mail.aliyun.com ([115.124.30.99]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1pgcsT-009Ysk-3D for linux-arm-kernel@lists.infradead.org; Mon, 27 Mar 2023 02:46:37 +0000 X-Alimail-AntiSpam: AC=PASS;BC=-1|-1;BR=01201311R101e4;CH=green;DM=||false|;DS=||;FP=0|-1|-1|-1|0|-1|-1|-1;HT=ay29a033018046056;MF=renyu.zj@linux.alibaba.com;NM=1;PH=DS;RN=17;SR=0;TI=SMTPD_---0VeeqFQ2_1679885185; Received: from srmbuffer011165236051.sqa.net(mailfrom:renyu.zj@linux.alibaba.com fp:SMTPD_---0VeeqFQ2_1679885185) by smtp.aliyun-inc.com; Mon, 27 Mar 2023 10:46:26 +0800 From: Jing Zhang To: John Garry , Ian Rogers , Will Deacon , James Clark , Mike Leach , Leo Yan , Mark Rutland , Alexander Shishkin , Jiri Olsa , Namhyung Kim , Adrian Hunter Cc: linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-perf-users@vger.kernel.org, Shuai Xue , Zhuo Song , Jing Zhang Subject: [PATCH RFC 3/4] driver/perf: Add identifier sysfs file for Yitian 710 DDR Date: Mon, 27 Mar 2023 10:46:11 +0800 Message-Id: <1679885172-95021-4-git-send-email-renyu.zj@linux.alibaba.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1679885172-95021-1-git-send-email-renyu.zj@linux.alibaba.com> References: <1679885172-95021-1-git-send-email-renyu.zj@linux.alibaba.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230326_194634_202080_07CC90D5 X-CRM114-Status: GOOD ( 10.19 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org To allow userspace to identify the specific implementation of the device, add an "identifier" sysfs file. The perf tool can match the Yitian 710 DDR metric through the identifier. Signed-off-by: Jing Zhang --- drivers/perf/alibaba_uncore_drw_pmu.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/drivers/perf/alibaba_uncore_drw_pmu.c b/drivers/perf/alibaba_uncore_drw_pmu.c index a7689fe..6639a57 100644 --- a/drivers/perf/alibaba_uncore_drw_pmu.c +++ b/drivers/perf/alibaba_uncore_drw_pmu.c @@ -236,10 +236,37 @@ static ssize_t ali_drw_pmu_cpumask_show(struct device *dev, .attrs = ali_drw_pmu_cpumask_attrs, }; +static ssize_t ali_drw_pmu_identifier_show(struct device *dev, + struct device_attribute *attr, + char *page) +{ + return sysfs_emit(page, "%s\n", "ali_drw_yitian710"); +} + +static umode_t ali_drw_pmu_identifier_attr_visible(struct kobject *kobj, + struct attribute *attr, int n) +{ + return attr->mode; +} + +static struct device_attribute ali_drw_pmu_identifier_attr = + __ATTR(identifier, 0444, ali_drw_pmu_identifier_show, NULL); + +static struct attribute *ali_drw_pmu_identifier_attrs[] = { + &ali_drw_pmu_identifier_attr.attr, + NULL, +}; + +static const struct attribute_group ali_drw_pmu_identifier_attr_group = { + .attrs = ali_drw_pmu_identifier_attrs, + .is_visible = ali_drw_pmu_identifier_attr_visible, +}; + static const struct attribute_group *ali_drw_pmu_attr_groups[] = { &ali_drw_pmu_events_attr_group, &ali_drw_pmu_cpumask_attr_group, &ali_drw_pmu_format_group, + &ali_drw_pmu_identifier_attr_group, NULL, }; From patchwork Mon Mar 27 02:46:12 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jing Zhang X-Patchwork-Id: 13188507 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 09EF5C761AF for ; Mon, 27 Mar 2023 02:47:47 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:MIME-Version:List-Subscribe:List-Help: List-Post:List-Archive:List-Unsubscribe:List-Id:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=NU8FpHAVqrERmHWF2lHhGGqO7gwLBwyKYReW5Cbu+sc=; b=G8h5++V3F4pvpC AhlnEridBcN3A0cJTaYF5cZB4CZQNIPwMpGUzVVJahBqZBXstT48nkK+j1hNUvSkU+Vh2JAz7GLbc te4Jegl8WgWLNpWHmfCNOWyubcPCGSHnsLDvehW9JHoTSAdrVfGaq49znVULHv2ufyXj5yGLLC2DX iyoZnRCtP6nb15iSOZhQ9Ic8Ex29uCIrLHyBcmKKAiBdT9ljUOgJOWqC9oktxilU+JRZXcZzuDgy4 tFnk9/5dRGyB3krxEjE9SyzCMONmfZtYMa72/sLCwrSKjdfwKPUVTNT2mSUWsaF2gevlBZc/4pYVH RNsKef4Y4K5i0C1iP1vg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1pgcsr-009Z2q-1I; Mon, 27 Mar 2023 02:46:57 +0000 Received: from out30-119.freemail.mail.aliyun.com ([115.124.30.119]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1pgcsT-009Ysj-2m for linux-arm-kernel@lists.infradead.org; Mon, 27 Mar 2023 02:46:37 +0000 X-Alimail-AntiSpam: AC=PASS;BC=-1|-1;BR=01201311R171e4;CH=green;DM=||false|;DS=||;FP=0|-1|-1|-1|0|-1|-1|-1;HT=ay29a033018045192;MF=renyu.zj@linux.alibaba.com;NM=1;PH=DS;RN=17;SR=0;TI=SMTPD_---0VeeqFQN_1679885186; Received: from srmbuffer011165236051.sqa.net(mailfrom:renyu.zj@linux.alibaba.com fp:SMTPD_---0VeeqFQN_1679885186) by smtp.aliyun-inc.com; Mon, 27 Mar 2023 10:46:27 +0800 From: Jing Zhang To: John Garry , Ian Rogers , Will Deacon , James Clark , Mike Leach , Leo Yan , Mark Rutland , Alexander Shishkin , Jiri Olsa , Namhyung Kim , Adrian Hunter Cc: linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-perf-users@vger.kernel.org, Shuai Xue , Zhuo Song , Jing Zhang Subject: [PATCH RFC 4/4] perf vendor events: Add JSON metrics for Yitian 710 DDR Date: Mon, 27 Mar 2023 10:46:12 +0800 Message-Id: <1679885172-95021-5-git-send-email-renyu.zj@linux.alibaba.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1679885172-95021-1-git-send-email-renyu.zj@linux.alibaba.com> References: <1679885172-95021-1-git-send-email-renyu.zj@linux.alibaba.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230326_194634_068344_83C49886 X-CRM114-Status: GOOD ( 12.99 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Add JSON metrics for T-HEAD Yitian 710 SoC DDR. Signed-off-by: Jing Zhang --- .../arm64/freescale/yitian710/sys/ali_drw.json | 373 +++++++++++++++++++++ .../arm64/freescale/yitian710/sys/metrics.json | 20 ++ tools/perf/pmu-events/jevents.py | 1 + 3 files changed, 394 insertions(+) create mode 100644 tools/perf/pmu-events/arch/arm64/freescale/yitian710/sys/ali_drw.json create mode 100644 tools/perf/pmu-events/arch/arm64/freescale/yitian710/sys/metrics.json diff --git a/tools/perf/pmu-events/arch/arm64/freescale/yitian710/sys/ali_drw.json b/tools/perf/pmu-events/arch/arm64/freescale/yitian710/sys/ali_drw.json new file mode 100644 index 0000000..cb8694b --- /dev/null +++ b/tools/perf/pmu-events/arch/arm64/freescale/yitian710/sys/ali_drw.json @@ -0,0 +1,373 @@ +[ + { + "BriefDescription": "A Write or Read Op at HIF interface. 64B", + "ConfigCode": "0x0", + "EventName": "hif_rd_or_wr", + "Unit": "yitian710_ddr", + "Compat": "ali_drw_yitian710" + }, + { + "BriefDescription": "A Write Op at HIF interface. 64B", + "ConfigCode": "0x1", + "EventName": "hif_wr", + "Unit": "yitian710_ddr", + "Compat": "ali_drw_yitian710" + }, + { + "BriefDescription": "A Read Op at HIF interface. 64B", + "ConfigCode": "0x2", + "EventName": "hif_rd", + "Unit": "yitian710_ddr", + "Compat": "ali_drw_yitian710" + }, + { + "BriefDescription": "A Read-Modify-Write Op at HIF interface. 64B", + "ConfigCode": "0x3", + "EventName": "hif_rmw", + "Unit": "yitian710_ddr", + "Compat": "ali_drw_yitian710" + }, + { + "BriefDescription": "A high priority Read at HIF interface. 64B", + "ConfigCode": "0x4", + "EventName": "hif_hi_pri_rd", + "Unit": "yitian710_ddr", + "Compat": "ali_drw_yitian710" + }, + { + "BriefDescription": "A write data cycle at DFI interface (to DRAM)", + "ConfigCode": "0x7", + "EventName": "dfi_wr_data_cycles", + "Unit": "yitian710_ddr", + "Compat": "ali_drw_yitian710" + }, + { + "BriefDescription": "A read data cycle at DFI interface (to DRAM).", + "ConfigCode": "0x8", + "EventName": "dfi_rd_data_cycles", + "Unit": "yitian710_ddr", + "Compat": "ali_drw_yitian710" + }, + { + "BriefDescription": "A high priority read becomes critical.", + "ConfigCode": "0x9", + "EventName": "hpr_xact_when_critical", + "Unit": "yitian710_ddr", + "Compat": "ali_drw_yitian710" + }, + { + "BriefDescription": "A low priority read becomes critical.", + "ConfigCode": "0xA", + "EventName": "lpr_xact_when_critical", + "Unit": "yitian710_ddr", + "Compat": "ali_drw_yitian710" + }, + { + "BriefDescription": "A write becomes critical.", + "ConfigCode": "0xB", + "EventName": "wr_xact_when_critical", + "Unit": "yitian710_ddr", + "Compat": "ali_drw_yitian710" + }, + { + "BriefDescription": "An Activate (ACT) command to DRAM.", + "ConfigCode": "0xC", + "EventName": "op_is_activate", + "Unit": "yitian710_ddr", + "Compat": "ali_drw_yitian710" + }, + { + "BriefDescription": "A Read or Write CAS command to DRAM.", + "ConfigCode": "0xD", + "EventName": "op_is_rd_or_wr", + "Unit": "yitian710_ddr", + "Compat": "ali_drw_yitian710" + }, + { + "BriefDescription": "An ACT command for read to DRAM.", + "ConfigCode": "0xE", + "EventName": "op_is_rd_activate", + "Unit": "yitian710_ddr", + "Compat": "ali_drw_yitian710" + }, + { + "BriefDescription": "A Read CAS command to DRAM.", + "ConfigCode": "0xF", + "EventName": "op_is_rd", + "Unit": "yitian710_ddr", + "Compat": "ali_drw_yitian710" + }, + { + "BriefDescription": "A Write CAS command to DRAM.", + "ConfigCode": "0x10", + "EventName": "op_is_wr", + "Unit": "yitian710_ddr", + "Compat": "ali_drw_yitian710" + }, + { + "BriefDescription": "A Masked Write command to DRAM.", + "ConfigCode": "0x11", + "EventName": "op_is_mwr", + "Unit": "yitian710_ddr", + "Compat": "ali_drw_yitian710" + }, + { + "BriefDescription": "A Precharge (PRE) command to DRAM.", + "ConfigCode": "0x12", + "EventName": "op_is_precharge", + "Unit": "yitian710_ddr", + "Compat": "ali_drw_yitian710" + }, + { + "BriefDescription": "A PRE required by read or write.", + "ConfigCode": "0x13", + "EventName": "precharge_for_rdwr", + "Unit": "yitian710_ddr", + "Compat": "ali_drw_yitian710" + }, + { + "BriefDescription": "A PRE required by other conditions.", + "ConfigCode": "0x14", + "EventName": "precharge_for_other", + "Unit": "yitian710_ddr", + "Compat": "ali_drw_yitian710" + }, + { + "BriefDescription": "A read-write turnaround.", + "ConfigCode": "0x15", + "EventName": "rdwr_transitions", + "Unit": "yitian710_ddr", + "Compat": "ali_drw_yitian710" + }, + { + "BriefDescription": "A write combine (merge) in write data buffer.", + "ConfigCode": "0x16", + "EventName": "write_combine", + "Unit": "yitian710_ddr", + "Compat": "ali_drw_yitian710" + }, + { + "BriefDescription": "A Write-After-Read hazard.", + "ConfigCode": "0x17", + "EventName": "war_hazard", + "Unit": "yitian710_ddr", + "Compat": "ali_drw_yitian710" + }, + { + "BriefDescription": "A Read-After-Write hazard.", + "ConfigCode": "0x18", + "EventName": "raw_hazard", + "Unit": "yitian710_ddr", + "Compat": "ali_drw_yitian710" + }, + { + "BriefDescription": "A Write-After-Write hazard.", + "ConfigCode": "0x19", + "EventName": "waw_hazard", + "Unit": "yitian710_ddr", + "Compat": "ali_drw_yitian710" + }, + { + "BriefDescription": "Rank0 enters self-refresh (SRE).", + "ConfigCode": "0x1A", + "EventName": "op_is_enter_selfref_rk0", + "Unit": "yitian710_ddr", + "Compat": "ali_drw_yitian710" + }, + { + "BriefDescription": "Rank1 enters self-refresh (SRE).", + "ConfigCode": "0x1B", + "EventName": "op_is_enter_selfref_rk1", + "Unit": "yitian710_ddr", + "Compat": "ali_drw_yitian710" + }, + { + "BriefDescription": "Rank2 enters self-refresh (SRE).", + "ConfigCode": "0x1C", + "EventName": "op_is_enter_selfref_rk2", + "Unit": "yitian710_ddr", + "Compat": "ali_drw_yitian710" + }, + { + "BriefDescription": "Rank3 enters self-refresh (SRE).", + "ConfigCode": "0x1D", + "EventName": "op_is_enter_selfref_rk3", + "Unit": "yitian710_ddr", + "Compat": "ali_drw_yitian710" + }, + { + "BriefDescription": "Rank0 enters power-down (PDE).", + "ConfigCode": "0x1E", + "EventName": "op_is_enter_powerdown_rk0", + "Unit": "yitian710_ddr", + "Compat": "ali_drw_yitian710" + }, + { + "BriefDescription": "Rank1 enters power-down (PDE).", + "ConfigCode": "0x1F", + "EventName": "op_is_enter_powerdown_rk1", + "Unit": "yitian710_ddr", + "Compat": "ali_drw_yitian710" + }, + { + "BriefDescription": "Rank2 enters power-down (PDE).", + "ConfigCode": "0x20", + "EventName": "op_is_enter_powerdown_rk2", + "Unit": "yitian710_ddr", + "Compat": "ali_drw_yitian710" + }, + { + "BriefDescription": "Rank3 enters power-down (PDE).", + "ConfigCode": "0x21", + "EventName": "op_is_enter_powerdown_rk3", + "Unit": "yitian710_ddr", + "Compat": "ali_drw_yitian710" + }, + { + "BriefDescription": "A cycle that Rank0 stays in self-refresh mode.", + "ConfigCode": "0x26", + "EventName": "selfref_mode_rk0", + "Unit": "yitian710_ddr", + "Compat": "ali_drw_yitian710" + }, + { + "BriefDescription": "A cycle that Rank1 stays in self-refresh mode.", + "ConfigCode": "0x27", + "EventName": "selfref_mode_rk1", + "Unit": "yitian710_ddr", + "Compat": "ali_drw_yitian710" + }, + { + "BriefDescription": "A cycle that Rank2 stays in self-refresh mode.", + "ConfigCode": "0x28", + "EventName": "selfref_mode_rk2", + "Unit": "yitian710_ddr", + "Compat": "ali_drw_yitian710" + }, + { + "BriefDescription": "A cycle that Rank3 stays in self-refresh mode.", + "ConfigCode": "0x29", + "EventName": "selfref_mode_rk3", + "Unit": "yitian710_ddr", + "Compat": "ali_drw_yitian710" + }, + { + "BriefDescription": "An auto-refresh (REF) command to DRAM.", + "ConfigCode": "0x2A", + "EventName": "op_is_refresh", + "Unit": "yitian710_ddr", + "Compat": "ali_drw_yitian710" + }, + { + "BriefDescription": "A critical REF command to DRAM.", + "ConfigCode": "0x2B", + "EventName": "op_is_crit_ref", + "Unit": "yitian710_ddr", + "Compat": "ali_drw_yitian710" + }, + { + "BriefDescription": "An MRR or MRW command to DRAM.", + "ConfigCode": "0x2D", + "EventName": "op_is_load_mode", + "Unit": "yitian710_ddr", + "Compat": "ali_drw_yitian710" + }, + { + "BriefDescription": "A ZQCal command to DRAM.", + "ConfigCode": "0x2E", + "EventName": "op_is_zqcl", + "Unit": "yitian710_ddr", + "Compat": "ali_drw_yitian710" + }, + { + "BriefDescription": "At least one entry in read queue reaches the visible window limit.", + "ConfigCode": "0x30", + "EventName": "visible_window_limit_reached_rd", + "Unit": "yitian710_ddr", + "Compat": "ali_drw_yitian710" + }, + { + "BriefDescription": "At least one entry in write queue reaches the visible window limit.", + "ConfigCode": "0x31", + "EventName": "visible_window_limit_reached_wr", + "Unit": "yitian710_ddr", + "Compat": "ali_drw_yitian710" + }, + { + "BriefDescription": "A DQS Oscillator MPC command to DRAM.", + "ConfigCode": "0x34", + "EventName": "op_is_dqsosc_mpc", + "Unit": "yitian710_ddr", + "Compat": "ali_drw_yitian710" + }, + { + "BriefDescription": "A DQS Oscillator MRR command to DRAM.", + "ConfigCode": "0x35", + "EventName": "op_is_dqsosc_mrr", + "Unit": "yitian710_ddr", + "Compat": "ali_drw_yitian710" + }, + { + "BriefDescription": "A TCR (Temperature Compensated Refresh) MRR command to DRAM.", + "ConfigCode": "0x36", + "EventName": "op_is_tcr_mrr", + "Unit": "yitian710_ddr", + "Compat": "ali_drw_yitian710" + }, + { + "BriefDescription": "A ZQCal Start command to DRAM.", + "ConfigCode": "0x37", + "EventName": "op_is_zqstart", + "Unit": "yitian710_ddr", + "Compat": "ali_drw_yitian710" + }, + { + "BriefDescription": "A ZQCal Latch command to DRAM.", + "ConfigCode": "0x38", + "EventName": "op_is_zqlatch", + "Unit": "yitian710_ddr", + "Compat": "ali_drw_yitian710" + }, + { + "BriefDescription": "A packet at CHI TXREQ interface (request).", + "ConfigCode": "0x39", + "EventName": "chi_txreq", + "Unit": "yitian710_ddr", + "Compat": "ali_drw_yitian710" + }, + { + "BriefDescription": "A packet at CHI TXDAT interface (read data).", + "ConfigCode": "0x3A", + "EventName": "chi_txdat", + "Unit": "yitian710_ddr", + "Compat": "ali_drw_yitian710" + }, + { + "BriefDescription": "A packet at CHI RXDAT interface (write data).", + "ConfigCode": "0x3B", + "EventName": "chi_rxdat", + "Unit": "yitian710_ddr", + "Compat": "ali_drw_yitian710" + }, + { + "BriefDescription": "A packet at CHI RXRSP interface.", + "ConfigCode": "0x3C", + "EventName": "chi_rxrsp", + "Unit": "yitian710_ddr", + "Compat": "ali_drw_yitian710" + }, + { + "BriefDescription": "A violation detected in TZC.", + "ConfigCode": "0x3D", + "EventName": "tsz_vio", + "Unit": "yitian710_ddr", + "Compat": "ali_drw_yitian710" + }, + { + "BriefDescription": "The ddr cycle.", + "ConfigCode": "0x80", + "EventName": "cycle", + "Unit": "yitian710_ddr", + "Compat": "ali_drw_yitian710" + } +] diff --git a/tools/perf/pmu-events/arch/arm64/freescale/yitian710/sys/metrics.json b/tools/perf/pmu-events/arch/arm64/freescale/yitian710/sys/metrics.json new file mode 100644 index 0000000..c14ecac --- /dev/null +++ b/tools/perf/pmu-events/arch/arm64/freescale/yitian710/sys/metrics.json @@ -0,0 +1,20 @@ +[ + { + "MetricName": "ddr_read_bandwidth.all", + "BriefDescription": "The ddr read bandwidth(MB/s).", + "MetricGroup": "ddr", + "MetricExpr": "hif_rd * 64 / 1e6 / duration_time", + "ScaleUnit": "1MB/s", + "Unit": "yitian710_ddr", + "Compat": "ali_drw_yitian710" + }, + { + "MetricName": "ddr_write_bandwidth.all", + "BriefDescription": "The ddr write bandwidth(MB/s).", + "MetricGroup": "ddr", + "MetricExpr": "(hif_wr + hif_rmw) * 64 / 1e6 / duration_time", + "ScaleUnit": "1MB/s", + "Unit": "yitian710_ddr", + "Compat": "ali_drw_yitian710" + } +] diff --git a/tools/perf/pmu-events/jevents.py b/tools/perf/pmu-events/jevents.py index 20ed492..8cfb4b6 100755 --- a/tools/perf/pmu-events/jevents.py +++ b/tools/perf/pmu-events/jevents.py @@ -257,6 +257,7 @@ class JsonEvent: 'cpu_core': 'cpu_core', 'cpu_atom': 'cpu_atom', 'cmn700': 'cmn700', + 'yitian710_ddr': 'yitian710_ddr', } return table[unit] if unit in table else f'uncore_{unit.lower()}'