Received: by 2002:a6b:fb09:0:0:0:0:0 with SMTP id h9csp4750969iog; Wed, 22 Jun 2022 05:16:50 -0700 (PDT) X-Google-Smtp-Source: AGRyM1uEBQquT1ewRJourjzHCnsE8RLlPRAqlWsLKFjijoCMGhMzlaO+9F6p7k0RtHvRCUzzIk6J X-Received: by 2002:a17:907:9727:b0:6fe:d943:312f with SMTP id jg39-20020a170907972700b006fed943312fmr2756424ejc.263.1655900210012; Wed, 22 Jun 2022 05:16:50 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1655900210; cv=none; d=google.com; s=arc-20160816; b=qRNd59g9M/NYoYSDDQmLkyDEnD6QcaPnkAxI9Tvetz0YD4CJ8mFKC/tzLEI4QFfW5t 61vpL4D9viXziLig+NzgKeq5tVL2mpr88iLfcMXL5NTZX+7kawZc2j9dL1LhbotGg3hB TCThtvCEMkWu988sECk5iudxWiu+qVNtv78QuXFUZvHXLzFsWHoMI2CudN+byht/3c0f bYNWR+xgqZrPu+JtHH5LL7Lo0bLWCMo+zB/OhAmAU8wZWbVVm3rRMsHgpt17irIVB4QP FwLGlptmVr1ZdY9roskaqK1O99d8SazWXLzE0jsT5QTFC9fawxlbKulDePyhNaKWYcAf zsvA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:in-reply-to:from :references:cc:to:content-language:subject:user-agent:mime-version :date:message-id:dkim-signature; bh=8tuqwvvGAA1I2+bfUhL95W2bszJ5rSEYU9bLqn3rgLU=; b=oXp+LEmIQZ6G1UJAsxvGe7Bz6mD1HShB3QKEP+sBfNow4uBQnmFNve5Pxmx6wmz6qX yp16VXfT7G8Qm9WE8CH6FsMIojVtw0KWvV0uhe1re3aDV5mq3d8He39I0hQzSqimvybk ROtl5cdy5zLcv2ePRx4jFv6yAVnQ6IvwZ63BNVSlsBE9IT4fxrgktkhCvoHZZCfwSe1z 7VCmX88RGtkcGDSqWxcZxUN/LCMEXWhtR9d2xDztwqc9777IVhflv+ekM21L/xI6+OmS HBP9EysFVCDT1b+kg3Yh1vsrx1HyIzOGVb+W1gSv+PUnHNmiH9Z7Q4uDWWRaNK8bfxNg kQNQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcdkim header.b=kpxf8nih; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=quicinc.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id nc33-20020a1709071c2100b006f4fe0c838bsi16851672ejc.270.2022.06.22.05.16.14; Wed, 22 Jun 2022 05:16:49 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcdkim header.b=kpxf8nih; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=quicinc.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1357769AbiFVLrs (ORCPT + 99 others); Wed, 22 Jun 2022 07:47:48 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57878 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1357760AbiFVLrr (ORCPT ); Wed, 22 Jun 2022 07:47:47 -0400 Received: from alexa-out.qualcomm.com (alexa-out.qualcomm.com [129.46.98.28]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 27E16344D4; Wed, 22 Jun 2022 04:47:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; i=@quicinc.com; q=dns/txt; s=qcdkim; t=1655898466; x=1687434466; h=message-id:date:mime-version:subject:to:cc:references: from:in-reply-to:content-transfer-encoding; bh=8tuqwvvGAA1I2+bfUhL95W2bszJ5rSEYU9bLqn3rgLU=; b=kpxf8nih8GC03J/TzPE3SSaPwYkDiQ+vS8uVVjduZMs5ji/jMQWb8EMA rSTSFsjVFYTvDnnoUOfgEgZJMcNfhs6wXu18/u5tI8DZiuEY3qb3Yu9sx VYdNRGOnAdVmhaF3N+flQ4QWZiV1Jnrkn7UP8e68NO9vAFW1+rF6kL8l0 k=; Received: from ironmsg09-lv.qualcomm.com ([10.47.202.153]) by alexa-out.qualcomm.com with ESMTP; 22 Jun 2022 04:47:45 -0700 X-QCInternal: smtphost Received: from nasanex01c.na.qualcomm.com ([10.47.97.222]) by ironmsg09-lv.qualcomm.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Jun 2022 04:47:45 -0700 Received: from nalasex01a.na.qualcomm.com (10.47.209.196) by nasanex01c.na.qualcomm.com (10.47.97.222) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.22; Wed, 22 Jun 2022 04:47:44 -0700 Received: from [10.216.32.54] (10.80.80.8) by nalasex01a.na.qualcomm.com (10.47.209.196) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.22; Wed, 22 Jun 2022 04:47:39 -0700 Message-ID: Date: Wed, 22 Jun 2022 17:16:48 +0530 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.8.1 Subject: Re: [PATCH v4 4/4] arm64: dts: qcom: sdm845: Add CPU BWMON Content-Language: en-US To: Krzysztof Kozlowski , Andy Gross , Bjorn Andersson , "Georgi Djakov" , Rob Herring , Catalin Marinas , Will Deacon , , , , , CC: Thara Gopinath References: <20220601101140.170504-1-krzysztof.kozlowski@linaro.org> <20220601101140.170504-5-krzysztof.kozlowski@linaro.org> From: Rajendra Nayak In-Reply-To: <20220601101140.170504-5-krzysztof.kozlowski@linaro.org> Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [10.80.80.8] X-ClientProxiedBy: nasanex01b.na.qualcomm.com (10.46.141.250) To nalasex01a.na.qualcomm.com (10.47.209.196) X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,NICE_REPLY_A,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 6/1/2022 3:41 PM, Krzysztof Kozlowski wrote: > Add device node for CPU-memory BWMON device (bandwidth monitoring) on > SDM845 measuring bandwidth between CPU (gladiator_noc) and Last Level > Cache (memnoc). Usage of this BWMON allows to remove fixed bandwidth > votes from cpufreq (CPU nodes) thus achieve high memory throughput even > with lower CPU frequencies. > > Performance impact (SDM845-MTP RB3 board, linux next-20220422): > 1. No noticeable impact when running with schedutil or performance > governors. > > 2. When comparing to customized kernel with synced interconnects and > without bandwidth votes from CPU freq, the sysbench memory tests > show significant improvement with bwmon for blocksizes past the L3 > cache. The results for such superficial comparison: > > sysbench memory test, results in MB/s (higher is better) > bs kB | type | V | V+no bw votes | bwmon | benefit % > 1 | W/seq | 14795 | 4816 | 4985 | 3.5% > 64 | W/seq | 41987 | 10334 | 10433 | 1.0% > 4096 | W/seq | 29768 | 8728 | 32007 | 266.7% > 65536 | W/seq | 17711 | 4846 | 18399 | 279.6% > 262144 | W/seq | 16112 | 4538 | 17429 | 284.1% > 64 | R/seq | 61202 | 67092 | 66804 | -0.4% > 4096 | R/seq | 23871 | 5458 | 24307 | 345.4% > 65536 | R/seq | 18554 | 4240 | 18685 | 340.7% > 262144 | R/seq | 17524 | 4207 | 17774 | 322.4% > 64 | W/rnd | 2663 | 1098 | 1119 | 1.9% > 65536 | W/rnd | 600 | 316 | 610 | 92.7% > 64 | R/rnd | 4915 | 4784 | 4594 | -4.0% > 65536 | R/rnd | 664 | 281 | 678 | 140.7% > > Legend: > bs kB: block size in KB (small block size means only L1-3 caches are > used > type: R - read, W - write, seq - sequential, rnd - random > V: vanilla (next-20220422) > V + no bw votes: vanilla without bandwidth votes from CPU freq > bwmon: bwmon without bandwidth votes from CPU freq > benefit %: difference between vanilla without bandwidth votes and bwmon > (higher is better) > > Co-developed-by: Thara Gopinath > Signed-off-by: Thara Gopinath > Signed-off-by: Krzysztof Kozlowski > --- > arch/arm64/boot/dts/qcom/sdm845.dtsi | 54 ++++++++++++++++++++++++++++ > 1 file changed, 54 insertions(+) > > diff --git a/arch/arm64/boot/dts/qcom/sdm845.dtsi b/arch/arm64/boot/dts/qcom/sdm845.dtsi > index 83e8b63f0910..adffb9c70566 100644 > --- a/arch/arm64/boot/dts/qcom/sdm845.dtsi > +++ b/arch/arm64/boot/dts/qcom/sdm845.dtsi > @@ -2026,6 +2026,60 @@ llcc: system-cache-controller@1100000 { > interrupts = ; > }; > > + pmu@1436400 { > + compatible = "qcom,sdm845-cpu-bwmon"; > + reg = <0 0x01436400 0 0x600>; > + > + interrupts = ; > + > + interconnects = <&gladiator_noc MASTER_APPSS_PROC 3 &mem_noc SLAVE_EBI1 3>, > + <&osm_l3 MASTER_OSM_L3_APPS &osm_l3 SLAVE_OSM_L3>; > + interconnect-names = "ddr", "l3c"; Is this the pmu/bwmon instance between the cpu and caches or the one between the caches and DDR? Depending on which one it is, shouldn;t we just be scaling either one and not both the interconnect paths? > + > + operating-points-v2 = <&cpu_bwmon_opp_table>; > + > + cpu_bwmon_opp_table: opp-table { > + compatible = "operating-points-v2"; > + > + /* > + * The interconnect paths bandwidths taken from > + * cpu4_opp_table bandwidth. > + * They also match different tables from > + * msm-4.9 downstream kernel: > + * - the gladiator_noc-mem_noc from bandwidth > + * table of qcom,llccbw (property qcom,bw-tbl); > + * bus width: 4 bytes; > + * - the OSM L3 from bandwidth table of > + * qcom,cpu4-l3lat-mon (qcom,core-dev-table); > + * bus width: 16 bytes; > + */ > + opp-0 { > + opp-peak-kBps = <800000 4800000>; > + }; > + opp-1 { > + opp-peak-kBps = <1804000 9216000>; > + }; > + opp-2 { > + opp-peak-kBps = <2188000 11980800>; > + }; > + opp-3 { > + opp-peak-kBps = <3072000 15052800>; > + }; > + opp-4 { > + opp-peak-kBps = <4068000 19353600>; > + }; > + opp-5 { > + opp-peak-kBps = <5412000 20889600>; > + }; > + opp-6 { > + opp-peak-kBps = <6220000 22425600>; > + }; > + opp-7 { > + opp-peak-kBps = <7216000 25497600>; > + }; > + }; > + }; > + > pcie0: pci@1c00000 { > compatible = "qcom,pcie-sdm845"; > reg = <0 0x01c00000 0 0x2000>,