Message ID | 20240227165309.620422-1-quic_sibis@quicinc.com |
---|---|
Headers |
Return-Path: <linux-kernel+bounces-83664-ouuuleilei=gmail.com@vger.kernel.org> Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7300:a81b:b0:108:e6aa:91d0 with SMTP id bq27csp2827230dyb; Tue, 27 Feb 2024 08:59:31 -0800 (PST) X-Forwarded-Encrypted: i=3; AJvYcCXYjO4Okyfp55yed2BQUsZ0jF+5WexT2NqT4ArLJZtlyZllJa2zBoa6pNsfXFIXE1nDD98jDfHtqJ2PxaQMPxO0YfLzpg== X-Google-Smtp-Source: AGHT+IFyo3hp+jPMI2twsyDzsCWZ+e6NVFw6e1mzEEJMdQZgAm00KorDtFTid2Hf1ape5hwcVpdy X-Received: by 2002:a17:907:118e:b0:a3f:9c9b:2037 with SMTP id uz14-20020a170907118e00b00a3f9c9b2037mr6848788ejb.67.1709053171630; Tue, 27 Feb 2024 08:59:31 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1709053171; cv=pass; d=google.com; s=arc-20160816; b=x3r8TrIWO5HUHQ2jfJuDpZO20wx0Nrfkorc6YEQXsLTVY6EygbAzdH0WNauhb0yFtR OVyMYcERSva8lWmtIhWu0aRW7wuxbN6IKFy+oZDsfJWWJzx+5shsfb1ul2JWBkwacnO9 pUyKq3sXX9qLdCZg1LMn5SFg+cMIY1Q6wtZN7ayK0uZHKy0l7qV+85H56i1ulrZaCEtf LCK1mSObfQ7LU5gw1L7Vp4m3vSPw4yBMZPG6Uo6yNFEeH+ofq0aARVM8RrROTC32WvU7 XgI14hI0wPTKMnD+WOegXUBc5fWzaWwdyABtc2nThQ/oNxd0VTk3oFQLOg3MJlpds2is QABQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:message-id:date:subject:cc:to :from:dkim-signature; bh=ztHPw0MrfKKaicbtEazrwB1M2B9Fp4OILHUWsSe9udU=; fh=SW3oAFzmIMSRRq6hFptBHBaLCn96hJbAjtyHe/3Y908=; b=xes7O7QNtlWAB/dOJRAaV7IdlkCt9EXzN0En4o1fciRiLvmW31BHIyWtaJGm02pYRN 5Ot5xrSt4gKKpZV894f0wQs58sqE0gf6KAwskYk9is8ecvZD57rQ5BedbDvhiRwitoBx roaii2VxOZnoC3aSrzm8KPvAWK+AuGtGNzGnFKsg54z+eqrtWMk1O2e1ckZTaXFOjMcA oc4SORPLN0C0X7fss+BHHd7b0ikaarqVKEGYLRW/tgcd2AYSuaoryQYAxp7zrCtsZa3w EXdhrmN5nexRLDMyaQhS5gpzZT4KVv7Vo516Vi1dmZAFTF8qMgFSzpQadK1mjTg6EhH9 8/zQ==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=WEu5AY+5; arc=pass (i=1 spf=pass spfdomain=quicinc.com dkim=pass dkdomain=quicinc.com dmarc=pass fromdomain=quicinc.com); spf=pass (google.com: domain of linux-kernel+bounces-83664-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) smtp.mailfrom="linux-kernel+bounces-83664-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=quicinc.com Received: from am.mirrors.kernel.org (am.mirrors.kernel.org. [147.75.80.249]) by mx.google.com with ESMTPS id h25-20020a1709063b5900b00a4386dd88ffsi845355ejf.629.2024.02.27.08.59.31 for <ouuuleilei@gmail.com> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 27 Feb 2024 08:59:31 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-83664-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) client-ip=147.75.80.249; Authentication-Results: mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=WEu5AY+5; arc=pass (i=1 spf=pass spfdomain=quicinc.com dkim=pass dkdomain=quicinc.com dmarc=pass fromdomain=quicinc.com); spf=pass (google.com: domain of linux-kernel+bounces-83664-ouuuleilei=gmail.com@vger.kernel.org designates 147.75.80.249 as permitted sender) smtp.mailfrom="linux-kernel+bounces-83664-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=quicinc.com Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by am.mirrors.kernel.org (Postfix) with ESMTPS id 409A41F22737 for <ouuuleilei@gmail.com>; Tue, 27 Feb 2024 16:59:31 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id B421048CCD; Tue, 27 Feb 2024 16:59:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=quicinc.com header.i=@quicinc.com header.b="WEu5AY+5" Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E124520314; Tue, 27 Feb 2024 16:59:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709053152; cv=none; b=mxe0up6Gv8U45heQvjnmNTvRz1Ec0TQ1gK6VroZtbJtunZZXOaGcD1kt0aDh9u+AE5qieS4YZLx2B88xXovNyZ+uuXcJugEkurMklWjXhRuUcQX6zxW53i5HSPV4olhpTbDSyzGhjASJLX8WNPqJOYdmQkJWmZ7lUGT4z5f6WRc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1709053152; c=relaxed/simple; bh=tJQntz2HimOxkDqUs3Bko8vXdwa/USReYFCaj0wua9k=; h=From:To:CC:Subject:Date:Message-ID:MIME-Version:Content-Type; b=QVWywIJICPZAj+my0xtqnVQPjwsHD0JCPtJcx3F5guCTLJwsyt9DwMneoPOTbDD23CodPZDktg03Vc2/PfIBAPgPjoWmH7rhB7IAqbdNUH44D9FhXPk0PlX3MO8CJH2QWITC4jqSmwQexFcLEZnOL4oGhdPjbqM2+XoxfcFUo2Y= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=quicinc.com; spf=pass smtp.mailfrom=quicinc.com; dkim=pass (2048-bit key) header.d=quicinc.com header.i=@quicinc.com header.b=WEu5AY+5; arc=none smtp.client-ip=205.220.168.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=quicinc.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=quicinc.com Received: from pps.filterd (m0279866.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.24/8.17.1.24) with ESMTP id 41RGZhh2017175; Tue, 27 Feb 2024 16:53:40 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; h= from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding:content-type; s=qcppdkim1; bh=ztHPw0M rfKKaicbtEazrwB1M2B9Fp4OILHUWsSe9udU=; b=WEu5AY+57LnL/IpI6MiAriw 6iDTsue2QPCh/O7mGZaBzttuCgbE0AfnmrIBaHw+kUSaO9E/pRI4msUsm7m90yw+ aQf5bbF0FkFIMaGCN362hYkibzBGeyZz623ta1XFAs/J20zHBm68pcJF1J2hzdEX B57xrbK1PV4X7IqQk/+vedX/A1Lqf/YxSWr6XamYejOn7sny8Hajn4nCwJU+QGxj 1zqBj5BSiWbmHjMQimTV2vT9l99slejGx61havMnmYtGGH1+7ZYulK3LW/adOkzp JOIiVhOA1Vw42xAeeBGNN7Z+yCu/Kg++A6wbsJiztD/vDW8BGPXw7wbyaf4wwiw= = Received: from nalasppmta01.qualcomm.com (Global_NAT1.qualcomm.com [129.46.96.20]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3whkd5g1dv-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 27 Feb 2024 16:53:40 +0000 (GMT) Received: from nalasex01a.na.qualcomm.com (nalasex01a.na.qualcomm.com [10.47.209.196]) by NALASPPMTA01.qualcomm.com (8.17.1.5/8.17.1.5) with ESMTPS id 41RGrdw6027315 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 27 Feb 2024 16:53:39 GMT Received: from hu-sibis-blr.qualcomm.com (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.1118.40; Tue, 27 Feb 2024 08:53:34 -0800 From: Sibi Sankar <quic_sibis@quicinc.com> To: <dietmar.eggemann@arm.com>, <marcan@marcan.st>, <sven@svenpeter.dev>, <alyssa@rosenzweig.io>, <rafael@kernel.org>, <viresh.kumar@linaro.org>, <xuwei5@hisilicon.com>, <zhanjie9@hisilicon.com> CC: <sudeep.holla@arm.com>, <cristian.marussi@arm.com>, <linux-kernel@vger.kernel.org>, <linux-arm-msm@vger.kernel.org>, <quic_rgottimu@quicinc.com>, <linux-arm-kernel@lists.infradead.org>, <asahi@lists.linux.dev>, <linux-pm@vger.kernel.org>, Sibi Sankar <quic_sibis@quicinc.com> Subject: [PATCH 0/2] Fix per-policy boost behavior Date: Tue, 27 Feb 2024 22:23:07 +0530 Message-ID: <20240227165309.620422-1-quic_sibis@quicinc.com> X-Mailer: git-send-email 2.34.1 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: <linux-kernel.vger.kernel.org> List-Subscribe: <mailto:linux-kernel+subscribe@vger.kernel.org> List-Unsubscribe: <mailto:linux-kernel+unsubscribe@vger.kernel.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-ClientProxiedBy: nasanex01b.na.qualcomm.com (10.46.141.250) To nalasex01a.na.qualcomm.com (10.47.209.196) X-QCInternal: smtphost X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Proofpoint-GUID: o0L9HL1enTUEY6zBTZhXckawndGtb3Bg X-Proofpoint-ORIG-GUID: o0L9HL1enTUEY6zBTZhXckawndGtb3Bg X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.272,Aquarius:18.0.1011,Hydra:6.0.619,FMLib:17.11.176.26 definitions=2024-02-27_03,2024-02-27_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1011 impostorscore=0 lowpriorityscore=0 mlxscore=0 mlxlogscore=903 malwarescore=0 suspectscore=0 bulkscore=0 spamscore=0 adultscore=0 phishscore=0 priorityscore=1501 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.19.0-2402120000 definitions=main-2402270130 X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1792072138330420377 X-GMAIL-MSGID: 1792072138330420377 |
Series |
Fix per-policy boost behavior
|
|
Message
Sibi Sankar
Feb. 27, 2024, 4:53 p.m. UTC
Fix per-policy boost behavior by incorporating per-policy boost flag in the policy->max calculation and setting the correct per-policy boost_enabled value on devices that use cpufreq_enable_boost_support(). Logs reported-by Dietmar Eggemann [1]: [1] https://lore.kernel.org/lkml/265e5f2c-9b45-420f-89b1-44369aeb8418@arm.com/ Sibi Sankar (2): cpufreq: Fix per-policy boost behavior on SoCs using cpufreq_boost_set_sw cpufreq: apple-soc: Align per-policy and global boost flags drivers/cpufreq/apple-soc-cpufreq.c | 1 + drivers/cpufreq/cpufreq.c | 15 +++++++++------ drivers/cpufreq/freq_table.c | 2 +- 3 files changed, 11 insertions(+), 7 deletions(-)
Comments
Hi Sibi, Thanks for pointing this issue out. However, I can't clearly see how the existing code fails. cpufreq_frequency_table_cpuinfo() checks cpufreq_boost_enabled(), and that should be already set in cpufreq_boost_trigger_state() before calling cpufreq_boost_set_sw(), so presumably cpufreq_boost_set_sw() is supposed to work as expected. Can you explain this a bit further? Cheers, Jie On 28/02/2024 00:53, Sibi Sankar wrote: > Fix per-policy boost behavior by incorporating per-policy boost flag > in the policy->max calculation and setting the correct per-policy > boost_enabled value on devices that use cpufreq_enable_boost_support(). > > Logs reported-by Dietmar Eggemann [1]: > > [1] https://lore.kernel.org/lkml/265e5f2c-9b45-420f-89b1-44369aeb8418@arm.com/ > > Sibi Sankar (2): > cpufreq: Fix per-policy boost behavior on SoCs using > cpufreq_boost_set_sw > cpufreq: apple-soc: Align per-policy and global boost flags > > drivers/cpufreq/apple-soc-cpufreq.c | 1 + > drivers/cpufreq/cpufreq.c | 15 +++++++++------ > drivers/cpufreq/freq_table.c | 2 +- > 3 files changed, 11 insertions(+), 7 deletions(-) >
On 27-02-24, 22:23, Sibi Sankar wrote: > Fix per-policy boost behavior by incorporating per-policy boost flag > in the policy->max calculation and setting the correct per-policy > boost_enabled value on devices that use cpufreq_enable_boost_support(). I don't see the problem explained anywhere and the patches look incorrect too. The drivers aren't supposed to update the policy->boose_enabled value.
On 2/28/24 07:36, Jie Zhan wrote: > Hi Sibi, > > Thanks for pointing this issue out. > > However, I can't clearly see how the existing code fails. > > cpufreq_frequency_table_cpuinfo() checks cpufreq_boost_enabled(), > and that should be already set in cpufreq_boost_trigger_state() before > calling cpufreq_boost_set_sw(), so presumably cpufreq_boost_set_sw() > is supposed to work as expected. > > Can you explain this a bit further? In the existing code, per-policy flags doesn't have any impact i.e. if cpufreq_driver boost is enabled and one or more of the per-policy boost is disabled, the cpufreq driver will behave as if boost is enabled. The second issue was just book keeping, meaning some drivers enable boost by default, however the per-policy boost flags are set as disabled during boot. -Sibi > > Cheers, > Jie > > On 28/02/2024 00:53, Sibi Sankar wrote: >> Fix per-policy boost behavior by incorporating per-policy boost flag >> in the policy->max calculation and setting the correct per-policy >> boost_enabled value on devices that use cpufreq_enable_boost_support(). >> >> Logs reported-by Dietmar Eggemann [1]: >> >> [1] >> https://lore.kernel.org/lkml/265e5f2c-9b45-420f-89b1-44369aeb8418@arm.com/ you can also have a look at ^^ thread for more info. >> >> Sibi Sankar (2): >> cpufreq: Fix per-policy boost behavior on SoCs using >> cpufreq_boost_set_sw >> cpufreq: apple-soc: Align per-policy and global boost flags >> >> drivers/cpufreq/apple-soc-cpufreq.c | 1 + >> drivers/cpufreq/cpufreq.c | 15 +++++++++------ >> drivers/cpufreq/freq_table.c | 2 +- >> 3 files changed, 11 insertions(+), 7 deletions(-) >> >
On 2/28/24 10:37, Viresh Kumar wrote: > On 27-02-24, 22:23, Sibi Sankar wrote: >> Fix per-policy boost behavior by incorporating per-policy boost flag >> in the policy->max calculation and setting the correct per-policy >> boost_enabled value on devices that use cpufreq_enable_boost_support(). > > I don't see the problem explained anywhere and the patches look > incorrect too. The drivers aren't supposed to update the > policy->boose_enabled value. Hey Viresh, Thanks for taking time to review the series. In the existing code, per-policy flags doesn't have any impact i.e. if cpufreq_driver boost is enabled and one or more of the per-policy boost is disabled, the cpufreq driver will behave as if boost is enabled. I had to update the policy->boost_enabled value because we seem to allow enabling cpufreq_driver.boost_enabled from the driver, but I can drop that because it was just for book keeping. I didn't want to include redundant info from another mail thread that I referenced in the cover letter, but will add more info in the re-spin. -Sibi >
On 28-02-24, 10:44, Sibi Sankar wrote: > In the existing code, per-policy flags doesn't have any impact i.e. > if cpufreq_driver boost is enabled and one or more of the per-policy > boost is disabled, the cpufreq driver will behave as if boost is > enabled. I see. Good catch. The first patch is fine, just explain the problem properly and mention that no one is checking the policy->boost_enabled field. It is never read. > I had to update the policy->boost_enabled value because we seem > to allow enabling cpufreq_driver.boost_enabled from the driver, but I > can drop that because it was just for book keeping. So with cpufreq_driver->boost_enabled at init time, policy's boost_enabled must be set too. Do that in the core during initialization of the policy instead. > I didn't want > to include redundant info from another mail thread that I referenced in > the cover letter, but will add more info in the re-spin. You don't have to, but you need to explain the exact problem in a bit more detail since it wasn't obvious here.
On 2/28/24 12:05, Viresh Kumar wrote: > On 28-02-24, 10:44, Sibi Sankar wrote: >> In the existing code, per-policy flags doesn't have any impact i.e. >> if cpufreq_driver boost is enabled and one or more of the per-policy >> boost is disabled, the cpufreq driver will behave as if boost is >> enabled. > > I see. Good catch. The first patch is fine, just explain the problem > properly and mention that no one is checking the policy->boost_enabled > field. It is never read. > >> I had to update the policy->boost_enabled value because we seem >> to allow enabling cpufreq_driver.boost_enabled from the driver, but I >> can drop that because it was just for book keeping. > > So with cpufreq_driver->boost_enabled at init time, policy's > boost_enabled must be set too. Do that in the core during > initialization of the policy instead. > >> I didn't want >> to include redundant info from another mail thread that I referenced in >> the cover letter, but will add more info in the re-spin. > > You don't have to, but you need to explain the exact problem in a bit > more detail since it wasn't obvious here. ack, will make these changes in the next re-spin. -Sibi >