Received: by 2002:a05:6358:1087:b0:cb:c9d3:cd90 with SMTP id j7csp8313730rwi; Tue, 25 Oct 2022 05:19:51 -0700 (PDT) X-Google-Smtp-Source: AMsMyM4PGOeAYbqwle1PRE1aHmLgETP3hS0IHGH79J9Rw6qt/KxxJITxAR6tU3AknEsLpGQoi5iX X-Received: by 2002:a05:6402:5191:b0:45c:dea0:2c7 with SMTP id q17-20020a056402519100b0045cdea002c7mr34806635edd.239.1666700391042; Tue, 25 Oct 2022 05:19:51 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1666700391; cv=none; d=google.com; s=arc-20160816; b=Bs+fa7dnvvU4Dzlmhnp31utcZ524beyubj+Sn+B1E/YDljc59VTWCUuMlHxECFqGMv 3upzycNuIPVcaqFg1fFAb2jIC9LkjGJi/Eh1H5CX8OItIGsT0cwjP6UXJhoHEClwC/mi L1hI5L25M3PW6jmFU1kxpsr02csTLObmoGNEwpmQEH0RRZL17uyUeo4Xlbta9oErQncg 3q5xr2g7UBq5aMqRQpwjWXNiJcC94/5M+UYlKkejBPPjZjDBVk/nAyG1isbYZI9MRL4A W2uYpZIakhb0X8YGQWQJ+fBBhlOiThWOFJxq3LnpbZQE34VA3krc2q58eP3G1yV2p6cN Mmhg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-disposition:mime-version :references:message-id:subject:cc:to:from:date; bh=8dIY6f73YIaJ0+x/I1VHLzh8+p4ZJPit0HjUdzIJz7c=; b=uOlAZWo5CAss72Wz/zx1jr7IwkJ8AJx7Yo/z4lGyJRGHki8HfFSE8A7l0LvoDgUqBF FtKkNYCfcgaldzpfDMdEt5UEKK0IHO0SHJ6NjgQ0A4sAqHivmYYEfWfDJRmYnEz9S7pR OyN3SO6jKDNcuB55SgygrbeMiVd3oWbNI/KixNpP/q44wFTCVbarygeU2ot9RJg+/0nO npqpKW+dcN9NYAPph82n5W10cWxZ9wIfY85Rk1Zp+pyk/1EXbeMg4htQdUUIBxvHX1QB 0ORCNA8svujQ238PGpViIHMa6py3l4FA9dlZzo2MPYrzcY+G8gtn2pKoBAobcRV3KhLc Dl8g== ARC-Authentication-Results: i=1; mx.google.com; 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=fail (p=NONE sp=NONE dis=NONE) header.from=arm.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id a14-20020aa7cf0e000000b004604e9d477dsi2301036edy.265.2022.10.25.05.19.24; Tue, 25 Oct 2022 05:19:51 -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; 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=fail (p=NONE sp=NONE dis=NONE) header.from=arm.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231193AbiJYMMh (ORCPT + 99 others); Tue, 25 Oct 2022 08:12:37 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60370 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230345AbiJYMMf (ORCPT ); Tue, 25 Oct 2022 08:12:35 -0400 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id C8D0E4B0FA; Tue, 25 Oct 2022 05:12:34 -0700 (PDT) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id CFF96D6E; Tue, 25 Oct 2022 05:12:40 -0700 (PDT) Received: from bogus (e103737-lin.cambridge.arm.com [10.1.197.49]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 0DAD53F7B4; Tue, 25 Oct 2022 05:12:32 -0700 (PDT) Date: Tue, 25 Oct 2022 13:12:30 +0100 From: Sudeep Holla To: Amit Pundir Cc: Ulf Hansson , Bjorn Andersson , Andy Gross , Maulik Shah , Dmitry Baryshkov , Rob Herring , Konrad Dybcio , Krzysztof Kozlowski , linux-arm-msm , dt , lkml Subject: Re: [PATCH] arm64: dts: qcom: qrb5165-rb5: Disable cpuidle states Message-ID: <20221025121230.xmdkfn55wmw3cg7s@bogus> References: <20221018145348.4051809-1-amit.pundir@linaro.org> <20221020093057.zrrvxlgghn27bpes@bogus> <20221020161628.nyimwuni4zboasjo@bogus> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED, SPF_HELO_NONE,SPF_NONE 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 Tue, Oct 25, 2022 at 04:53:51PM +0530, Amit Pundir wrote: > On Fri, 21 Oct 2022 at 18:33, Ulf Hansson wrote: > > > > On Thu, 20 Oct 2022 at 18:16, Sudeep Holla wrote: > > > > > > On Thu, Oct 20, 2022 at 04:40:15PM +0200, Ulf Hansson wrote: > > > > On Thu, 20 Oct 2022 at 16:09, Amit Pundir wrote: > > > > > > > > > > On Thu, 20 Oct 2022 at 15:01, Sudeep Holla wrote: > > > > > > > > > > > > On Wed, Oct 19, 2022 at 01:57:34PM +0200, Ulf Hansson wrote: > > > > > > > On Tue, 18 Oct 2022 at 16:53, Amit Pundir wrote: > > > > > > > > > > > > > > > > Disable cpuidle states for RB5. These cpuidle states > > > > > > > > made the device highly unstable and it runs into the > > > > > > > > following crash frequently: > > > > > > > > > > > > > > > > [ T1] vreg_l11c_3p3: failed to enable: -ETIMEDOUT > > > > > > > > [ T1] qcom-rpmh-regulator 18200000.rsc:pm8150l-rpmh-regulators: ldo11: devm_regulator_register() failed, ret=-110 > > > > > > > > [ T1] qcom-rpmh-regulator: probe of 18200000.rsc:pm8150l-rpmh-regulators failed with error -110 > > > > > > > > > > > > > > > > Fixes: 32bc936d7321 ("arm64: dts: qcom: sm8250: Add cpuidle states") > > > > > > > > Signed-off-by: Amit Pundir > > > > > > > > --- > > > > > > > > arch/arm64/boot/dts/qcom/qrb5165-rb5.dts | 8 ++++++++ > > > > > > > > 1 file changed, 8 insertions(+) > > > > > > > > > > > > > > > > diff --git a/arch/arm64/boot/dts/qcom/qrb5165-rb5.dts b/arch/arm64/boot/dts/qcom/qrb5165-rb5.dts > > > > > > > > index cc003535a3c5..f936c41bfbea 100644 > > > > > > > > --- a/arch/arm64/boot/dts/qcom/qrb5165-rb5.dts > > > > > > > > +++ b/arch/arm64/boot/dts/qcom/qrb5165-rb5.dts > > > > > > > > @@ -251,6 +251,14 @@ qca639x: qca639x { > > > > > > > > > > > > > > > > }; > > > > > > > > > > > > > > > > +&LITTLE_CPU_SLEEP_0 { > > > > > > > > + status = "disabled"; > > > > > > > > +}; > > > > > > > > + > > > > > > > > +&BIG_CPU_SLEEP_0 { > > > > > > > > + status = "disabled"; > > > > > > > > +}; > > > > > > > > + > > > > > > > > &adsp { > > > > > > > > status = "okay"; > > > > > > > > firmware-name = "qcom/sm8250/adsp.mbn"; > > > > > > > > -- > > > > > > > > 2.25.1 > > > > > > > > > > > > > > Disabling the CPU idlestates, will revert us back to using only the WFI state. > > > > > > > > > > > > > > An option that probably works too is to just drop the idlestate for > > > > > > > the CPU cluster. Would you mind trying the below and see if that works > > > > > > > too? > > > > > > > > > > > > > > > > > > > Indeed this is was I suggested to check initially. But I was surprised to > > > > > > see IIUC, Amit just disabled CPU states with above change and got it working. > > > > > > So it is not cluster state alone causing the issue, is it somehow presence > > > > > > of both cpu and cluster states ? Am I missing something here. > > > > > > > > > > > > > diff --git a/arch/arm64/boot/dts/qcom/sm8250.dtsi > > > > > > > b/arch/arm64/boot/dts/qcom/sm8250.dtsi > > > > > > > index c32227ea40f9..c707a49e8001 100644 > > > > > > > --- a/arch/arm64/boot/dts/qcom/sm8250.dtsi > > > > > > > +++ b/arch/arm64/boot/dts/qcom/sm8250.dtsi > > > > > > > @@ -700,7 +700,6 @@ CPU_PD7: cpu7 { > > > > > > > > > > > > > > CLUSTER_PD: cpu-cluster0 { > > > > > > > #power-domain-cells = <0>; > > > > > > > - domain-idle-states = <&CLUSTER_SLEEP_0>; > > > > > > > > > > > > How about just marking CLUSTER_SLEEP_0 state disabled ? That looks cleaner > > > > > > than deleting this domain-idle-states property here. Also not sure if DTS > > > > > > warnings will appear if you delete this ? > > > > > > > > > > Hi, I did try disabling CLUSTER_SLEEP_0: cluster-sleep-0 {} in > > > > > domain-idle-states {} but that didn't help. That's why I end up > > > > > disabling individual cpu states in idle-states {}. > > > > > > > > Yep, this boils down to the fact that genpd doesn't check whether the > > > > domain-idle-state is disabled by using of_device_is_available(). See > > > > genpd_iterate_idle_states(). > > > > > > > > > > Yes I found that but can't that be fixed with a simple patch like below ? > > > > Sure, yes it can. > > > > Although, it does complicate things a bit, as we would need two > > patches instead of one, to get things working. > > > > > > > > > That said, I suggest we go with the above one-line change. It may not > > > > be as clean as it could be, but certainly easy to revert when the > > > > support for it has been added in a newer kernel. > > > > > > > > > > I don't like removing the state. It means it doesn't have the state rather > > > than i"it has state but is not working and hence disabled". > > > > > > Will handling the availability of the state cause any issues ? > > > > No, this works fine. It's already been proven by Amit's test. > > > > > > > > Regards, > > > Sudeep > > > > > > -->8 > > > > > > diff --git i/drivers/base/power/domain.c w/drivers/base/power/domain.c > > > index ead135c7044c..6471b559230e 100644 > > > --- i/drivers/base/power/domain.c > > > +++ w/drivers/base/power/domain.c > > > @@ -2952,6 +2952,10 @@ static int genpd_iterate_idle_states(struct device_node *dn, > > > np = it.node; > > > if (!of_match_node(idle_state_match, np)) > > > continue; > > > + > > > + if (!of_device_is_available(np)) > > > + continue; > > > + > > > if (states) { > > > ret = genpd_parse_state(&states[i], np); > > > if (ret) { > > > > > > > The above code looks correct to me. Anyone that wants to submit the > > patches? Otherwise I can try to manage it... > > Just out of curiosity, I gave this patch a test run and, as Ulf also > mentioned above, this patch alone is not enough to fix the boot > regression I see on RB5. > Indeed, Ulf has posted the other changes needed and I have reviewed it just now. I can post this one. I agree it is multiple change but I think it is right set as we need to fix all these anyways, why not at once. Though they are multiple changes, the delta is not too much in my opinion. -- Regards, Sudeep