From patchwork Fri May 5 11:38:35 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sascha Hauer X-Patchwork-Id: 13232612 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 CB06CC77B7C for ; Fri, 5 May 2023 11:41:08 +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: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:In-Reply-To:References: List-Owner; bh=ckxOhbq3RWSWVO1LiBPwzBYwRvvLt6bmKneNwrPuq7E=; b=2QW14bR+pg6h4J 2+8qs8TOwyjK/cozZ08yxGPb9riuZGRw38UG0Vkl4/qslIonqfuJl67VXucwpqC8TPzBmUVHtB3Pv RvsvR4nslFsyO9yFtBWFKWUdfz79ENnsQakp4G8PQlWcsd1nmBUgvbnescT7X1mLbT75YtRjJEr/l QD6GkPbLZ0q0pfyS/VNt1/i+CQ2Px2IT0HZg26hboGu58JNyvPzYh8EoksIvB9i07UkCd5y7KbEj/ YOSIBjj+LeeuT60lIIK57NQZcjVgf+Kj3DRYOuigBJHq+DhgJDKgYu3pvC3xF0p+HY8kvkxZjiMV/ VcNoMVnILxV1ciMzohmQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1putnC-00Ajfg-07; Fri, 05 May 2023 11:40:06 +0000 Received: from desiato.infradead.org ([2001:8b0:10b:1:d65d:64ff:fe57:4e05]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1putmW-00Aj7s-0e for linux-arm-kernel@bombadil.infradead.org; Fri, 05 May 2023 11:39:24 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=desiato.20200630; h=Content-Transfer-Encoding:MIME-Version :Message-Id:Date:Subject:Cc:To:From:Sender:Reply-To:Content-Type:Content-ID: Content-Description:In-Reply-To:References; bh=IWoYqjNohyECJ5RXAqoifLE+MQvnQ5u+b3CR90br26I=; b=XwMy0o9ZdbLJc25EwMTR1neOgd bp7+yjNf4a7/QkbP9ff/JTZXLv5aW6QcgDn3M50Msq0iKNJx78hj6E9JD0Qd0DuqgZl4a/ZUau1zd PaBX2N95cizuPUsg3hBw1VU/SVbh2PXlLMFzOUHA/2aaArbveIxLhqFAO/+BqkmEjCJnwd1k64ez4 3H7TxUeCsrcV3HlrtFbMR2iZU7cXETLaa0PjA3wfidSgcf+R/EEoLrZ2NurGZbS0BxYm18jW6lFNq OKru4Rx5sB4Mf5jPLexgorXjPjIgaHKZn5s5F6sqv28kBx/yC12iqZGnqKMCnOO9dK7lNs5Zrpb9o +Azc9oqQ==; Received: from metis.ext.pengutronix.de ([2001:67c:670:201:290:27ff:fe1d:cc33]) by desiato.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1putmN-003EU8-0N for linux-arm-kernel@lists.infradead.org; Fri, 05 May 2023 11:39:19 +0000 Received: from drehscheibe.grey.stw.pengutronix.de ([2a0a:edc0:0:c01:1d::a2]) by metis.ext.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1putmC-0001ZG-KU; Fri, 05 May 2023 13:39:04 +0200 Received: from [2a0a:edc0:0:1101:1d::28] (helo=dude02.red.stw.pengutronix.de) by drehscheibe.grey.stw.pengutronix.de with esmtp (Exim 4.94.2) (envelope-from ) id 1putmB-001HcD-To; Fri, 05 May 2023 13:39:03 +0200 Received: from sha by dude02.red.stw.pengutronix.de with local (Exim 4.94.2) (envelope-from ) id 1putm7-003RmW-Ux; Fri, 05 May 2023 13:38:59 +0200 From: Sascha Hauer To: linux-rockchip@lists.infradead.org Cc: linux-arm-kernel@lists.infradead.org, Heiko Stuebner , Kyungmin Park , MyungJoo Ham , Will Deacon , Mark Rutland , kernel@pengutronix.de, Michael Riesch , Sascha Hauer Subject: [PATCH v4 00/21] Add perf support to the rockchip-dfi driver Date: Fri, 5 May 2023 13:38:35 +0200 Message-Id: <20230505113856.463650-1-s.hauer@pengutronix.de> X-Mailer: git-send-email 2.39.2 MIME-Version: 1.0 X-SA-Exim-Connect-IP: 2a0a:edc0:0:c01:1d::a2 X-SA-Exim-Mail-From: sha@pengutronix.de X-SA-Exim-Scanned: No (on metis.ext.pengutronix.de); SAEximRunCond expanded to false X-PTX-Original-Recipient: linux-arm-kernel@lists.infradead.org X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230505_123915_454367_DF74E58E X-CRM114-Status: GOOD ( 19.23 ) 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 This is v4 of the patches adding DDR perf support to the rockchip-dfi driver. There was no reaction to v3 of this series. Heiko, as the devfreq maintainers are unreactive, would it be an option to take this through your tree? Compared to the last version I added RK3588 support this time which required some minor refactoring of the driver code. Only the driver changes are included, not yet the device tree changes. To make a bit of advertisement for this series: It allows us to measure the DDR utilization which can be quite nice to identify performance bottlenecks. Usage can be something like: perf stat -a -e rockchip_ddr/cycles/,\ rockchip_ddr/read-bytes/,\ rockchip_ddr/write-bytes/,\ rockchip_ddr/bytes/ sleep 1 Performance counter stats for 'system wide': 1582524826 rockchip_ddr/cycles/ 1802.25 MB rockchip_ddr/read-bytes/ 1793.72 MB rockchip_ddr/write-bytes/ 3595.90 MB rockchip_ddr/bytes/ 1.014369709 seconds time elapsed The above was called with running a test program in the background which copies memory around. The measurements actually match quite well to the amount of memory really copied as output by the test program. Sascha Changes since v3: - Add RK3588 support Changes since v2: - Fix broken reference to binding - Add Reviewed-by from Rob Changes since v1: - Fix example to actually match the binding and fix the warnings resulted thereof - Make addition of rockchip,rk3568-dfi an extra patch Sascha Hauer (21): PM / devfreq: rockchip-dfi: Embed desc into private data struct PM / devfreq: rockchip-dfi: use consistent name for private data struct PM / devfreq: rockchip-dfi: Make pmu regmap mandatory PM / devfreq: rockchip-dfi: Add SoC specific init function PM / devfreq: rockchip-dfi: dfi store raw values in counter struct PM / devfreq: rockchip-dfi: Use free running counter PM / devfreq: rockchip-dfi: introduce channel mask PM / devfreq: rk3399_dmc,dfi: generalize DDRTYPE defines PM / devfreq: rockchip-dfi: Clean up DDR type register defines PM / devfreq: rockchip-dfi: Add RK3568 support PM / devfreq: rockchip-dfi: Handle LPDDR2 correctly PM / devfreq: rockchip-dfi: Handle LPDDR4X PM / devfreq: rockchip-dfi: Pass private data struct to internal functions PM / devfreq: rockchip-dfi: Prepare for multiple users PM / devfreq: rockchip-dfi: Add perf support PM / devfreq: rockchip-dfi: make register stride SoC specific PM / devfreq: rockchip-dfi: account for multiple DDRMON_CTRL registers PM / devfreq: rockchip-dfi: add support for RK3588 arm64: dts: rockchip: rk3399: Enable DFI arm64: dts: rockchip: rk356x: Add DFI dt-bindings: devfreq: event: convert Rockchip DFI binding to yaml .../bindings/devfreq/event/rockchip-dfi.txt | 18 - .../bindings/devfreq/event/rockchip-dfi.yaml | 39 + arch/arm64/boot/dts/rockchip/rk3399.dtsi | 1 - arch/arm64/boot/dts/rockchip/rk356x.dtsi | 6 + drivers/devfreq/event/rockchip-dfi.c | 723 +++++++++++++++--- drivers/devfreq/rk3399_dmc.c | 10 +- include/soc/rockchip/rk3399_grf.h | 9 +- include/soc/rockchip/rk3568_grf.h | 13 + include/soc/rockchip/rk3588_grf.h | 18 + include/soc/rockchip/rockchip_grf.h | 16 + 10 files changed, 718 insertions(+), 135 deletions(-) delete mode 100644 Documentation/devicetree/bindings/devfreq/event/rockchip-dfi.txt create mode 100644 Documentation/devicetree/bindings/devfreq/event/rockchip-dfi.yaml create mode 100644 include/soc/rockchip/rk3568_grf.h create mode 100644 include/soc/rockchip/rk3588_grf.h create mode 100644 include/soc/rockchip/rockchip_grf.h Tested-by: Vincent Legoll