From patchwork Tue Mar 12 08:34:28 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Beata Michalska X-Patchwork-Id: 13589607 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 B70FBC54E58 for ; Tue, 12 Mar 2024 08:35:28 +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=W3HX4sGIcNYbvnV6KULw7K+heOvbwRuAY7+DFG1C/As=; b=X5RZPdj4s5jp7h tvAo6n2aNXcPOnYHfnu1H5lfnHaKt62dadti0HuHtGV3V27fKxyWUKZSQpx6xasCk3ydGB3bKKCVd 6kQhSIIzzDw2p+gtSFrISggmCHdMn36pKGzD9txEnmuX5PjGYj2vCZ3H3hWXtBoAo/fiWk2qeM3Bt 3AtaZB2oVjgzi3i9dGxVfx9pRC6X5VpEbPDkiyzuFhTB4RYTYaVk2JVFEEMYjAjmnMPGflhpaw7UP dphKfYMHcSxNBbS5tpcul8AeYuMiAVCRWsD91j1khQ4OWC5leVvYXYiBLBghH3bPdPDAM9j44+XrN zK/IOB73dDLAIMqJVwlA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1rjxbM-00000004u6E-0czs; Tue, 12 Mar 2024 08:35:12 +0000 Received: from foss.arm.com ([217.140.110.172]) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1rjxbJ-00000004u4c-3UTA for linux-arm-kernel@lists.infradead.org; Tue, 12 Mar 2024 08:35:11 +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 54B201007; Tue, 12 Mar 2024 01:35:43 -0700 (PDT) Received: from e125905.cambridge.arm.com (e125905.cambridge.arm.com [10.1.194.73]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 7CBA33F73F; Tue, 12 Mar 2024 01:35:04 -0700 (PDT) From: Beata Michalska To: linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, ionela.voinescu@arm.com, vanshikonda@os.amperecomputing.com Cc: sudeep.holla@arm.com, will@kernel.org, catalin.marinas@arm.com, vincent.guittot@linaro.org, sumitg@nvidia.com, yang@os.amperecomputing.com, lihuisong@huawei.com Subject: [PATCH v3 0/3] Add support for AArch64 AMUv1-based arch_freq_get_on_cpu Date: Tue, 12 Mar 2024 08:34:28 +0000 Message-Id: <20240312083431.3239989-1-beata.michalska@arm.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240312_013509_942888_78B9A203 X-CRM114-Status: UNSURE ( 9.97 ) X-CRM114-Notice: Please train this message. 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 Introducing arm64 specific version of arch_freq_get_on_cpu, cashing on existing implementation for FIE and AMUv1 support: the frequency scale factor, updated on each sched tick, serves as a base for retrieving the frequency for a given CPU, representing an average frequency reported between the ticks - thus its accuracy is limited. The changes have been rather lightly (due to some limitations) tested on an FVP model. Relevant discussions: [1] https://lore.kernel.org/all/20240229162520.970986-1-vanshikonda@os.amperecomputing.com/ [2] https://lore.kernel.org/all/7eozim2xnepacnnkzxlbx34hib4otycnbn4dqymfziqou5lw5u@5xzpv3t7sxo3/ [3] https://lore.kernel.org/all/20231212072617.14756-1-lihuisong@huawei.com/ [4] https://lore.kernel.org/lkml/ZIHpd6unkOtYVEqP@e120325.cambridge.arm.com/T/#m4e74cb5a0aaa353c60fedc6cfb95ab7a6e381e3c v3: - dropping changes to cpufreq_verify_current_freq - pulling in changes from Ionela initializing capacity_freq_ref to 0 (thanks for that!) and applying suggestions made by her during last review: - switching to arch_scale_freq_capacity and arch_scale_freq_ref when reversing freq scale factor computation - swapping shift with multiplication - adding time limit for considering last scale update as valid - updating frequency scale factor upon entering idle v2: - Splitting the patches - Adding comment for full dyntick mode - Plugging arch_freq_get_on_cpu into cpufreq_verify_current_freq instead of in show_cpuinfo_cur_freq to allow the framework to stay more in sync with potential freq changes Beata Michalska (2): arm64: Provide an AMU-based version of arch_freq_get_on_cpu arm64: Update AMU-based frequency scale factor on entering idle Ionela Voinescu (1): arch_topology: init capacity_freq_ref to 0 arch/arm64/kernel/topology.c | 116 +++++++++++++++++++++++++++++++---- drivers/base/arch_topology.c | 8 ++- 2 files changed, 110 insertions(+), 14 deletions(-)