From patchwork Wed Nov 3 16:10:15 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lukasz Luba X-Patchwork-Id: 12601159 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 mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id F0C8AC433EF for ; Wed, 3 Nov 2021 16:15:12 +0000 (UTC) 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 mail.kernel.org (Postfix) with ESMTPS id B788C60F58 for ; Wed, 3 Nov 2021 16:15:12 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org B788C60F58 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=arm.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=lists.infradead.org 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: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=4ISEvs4ugu9w9LnYcC8WvZMkaZeu5baMX6KmczY6dv8=; b=PHCPQDVbwl9mFr VizKX8c2jp0gcDo1W9bRh+n3rNXGAQCuBfK55fKTi5JKUU8fYiruVs/c9yvPDYZWmQxlzsvQhuIag x7vPlkgfQB41aphY5vFnNpYc7tWaY69w1UQb1jsFgnKwRkDOWo9O+hnvAr/u8x0Irude6CxbI3GTr c7pkXqnO31wR47vRFrMAf0OKOwjP4YyKEnBkGlm1brkxMA8VYGUG3JvHRkT/xImli0Q4FbgytSHhG bqVpU1A/tf2kiI3zWWnCc3yIp/7S95UZ1kNkfbRCJ1stNE5Dt+t8bvsSaF/r1CboO10qGVSEgWIwR KEWyLskhINf/J+pn6low==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1miItM-005guj-CK; Wed, 03 Nov 2021 16:13:36 +0000 Received: from foss.arm.com ([217.140.110.172]) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1miIqd-005fn5-PL for linux-arm-kernel@lists.infradead.org; Wed, 03 Nov 2021 16:10:51 +0000 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 49C8EED1; Wed, 3 Nov 2021 09:10:37 -0700 (PDT) Received: from e123648.arm.com (unknown [10.57.26.226]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id D1DA23F7D7; Wed, 3 Nov 2021 09:10:32 -0700 (PDT) From: Lukasz Luba To: linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org Cc: linux-arm-kernel@lists.infradead.org, linux-arm-msm@vger.kernel.org, lukasz.luba@arm.com, sudeep.holla@arm.com, will@kernel.org, catalin.marinas@arm.com, linux@armlinux.org.uk, gregkh@linuxfoundation.org, rafael@kernel.org, viresh.kumar@linaro.org, amitk@kernel.org, daniel.lezcano@linaro.org, amit.kachhap@gmail.com, thara.gopinath@linaro.org, bjorn.andersson@linaro.org, agross@kernel.org Subject: [PATCH v3 0/5] Refactor thermal pressure update to avoid code duplication Date: Wed, 3 Nov 2021 16:10:15 +0000 Message-Id: <20211103161020.26714-1-lukasz.luba@arm.com> X-Mailer: git-send-email 2.17.1 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20211103_091047_989763_9895BA95 X-CRM114-Status: GOOD ( 11.05 ) 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 Hi all, This patch set v3 aims to refactor the thermal pressure update code. There are already two clients which do similar thing: convert the capped frequency value into the capacity of affected CPU and call the 'set' function to store the reduced capacity into the per-cpu variable. There might be more than two of these users. In near future it will be scmi-cpufreq driver, which receives notification from FW about reduced frequency due to thermal. Other vendors might follow. Let's avoid code duplication and potential conversion bugs. Move the conversion code into the arch_topology.c where the capacity calculation setup code and thermal pressure sit. Apart from that $subject patches, there is one patch (3/5) which fixes issue in qcom-cpufreq-hw.c when the thermal pressure is not updated for offline CPUs. It's similar fix that has been merged recently for cpufreq_cooling.c: 2ad8ccc17d1e4270cf65a3f2 Changes: v3: - added warning and check if provided capped frequency is lower than max (Viresh) - removed check for empty cpu mask (Viresh) - replaced tabs with spaces in the doxygen comment (Viresh) - renamed {arch|topology}_thermal_pressure_update() to {arch|topology}_update_thermal_pressure() so it's align with scheme (Dietmar) - added info about MHz in freq_factor into patch description (Dietmar) v2 [2]: - added Reviewed-by from Thara for patch 3/5 - changed the doxygen comment and used mult_frac() according to Thara's suggestion in patch 1/5 v1 -> [1] Regards, Lukasz Luba [1] https://lore.kernel.org/linux-pm/20211007080729.8262-1-lukasz.luba@arm.com/ [2] https://lore.kernel.org/linux-pm/20211015144550.23719-1-lukasz.luba@arm.com/ Lukasz Luba (5): arch_topology: Introduce thermal pressure update function thermal: cpufreq_cooling: Use new thermal pressure update function cpufreq: qcom-cpufreq-hw: Update offline CPUs per-cpu thermal pressure cpufreq: qcom-cpufreq-hw: Use new thermal pressure update function arch_topology: Remove unused topology_set_thermal_pressure() and related arch/arm/include/asm/topology.h | 2 +- arch/arm64/include/asm/topology.h | 2 +- drivers/base/arch_topology.c | 36 +++++++++++++++++++++++++++---- drivers/cpufreq/qcom-cpufreq-hw.c | 14 +++++------- drivers/thermal/cpufreq_cooling.c | 6 +----- include/linux/arch_topology.h | 4 ++-- include/linux/sched/topology.h | 6 +++--- init/Kconfig | 2 +- 8 files changed, 46 insertions(+), 26 deletions(-)