From patchwork Fri Jan 8 11:16:51 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Viresh Kumar X-Patchwork-Id: 12006371 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-17.0 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 3874AC433E0 for ; Fri, 8 Jan 2021 11:19:35 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (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 CE2B6235FC for ; Fri, 8 Jan 2021 11:19:34 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org CE2B6235FC Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linaro.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To:Message-Id:Date: Subject:To:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=cVTl9GtEi9z+LwyEE4bZSPxE7ztmpVF49aaPwvq4XHw=; b=02ApgrZJQ1m4N+E03DQ4+d54k TSccqIGtnhTWwm+CgM6c3khEJmCgLfWM25XonBJ6lPVrfi5XmqpjADEUOT7zFNhX9lTYBkD/x9YVt jwpj3ovqygsaaUBgeKRA8e7JQGHfbLXcZrntA00+Rdt0kySlC+CgmcvITyRWEoy8Prfpm6S9CX44v wF3WgB+/W8haXTdxT3wwTZZaHsqbc0Mg97oNCCnNcBoGq8JLRn6OnctR6PaiL68lcTxVlZUbMO+h9 zZhDTCY7ZkDfwfnb14xbjh1LTzI4WvRh25X0GeiUWfhqCdSOrkvlWNMG3+3O7rZVjS7iAorWPAWRd v0nE0ncSw==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1kxpm6-0003Mr-5e; Fri, 08 Jan 2021 11:17:46 +0000 Received: from mail-pj1-x102c.google.com ([2607:f8b0:4864:20::102c]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1kxplO-0003KR-WC for linux-arm-kernel@lists.infradead.org; Fri, 08 Jan 2021 11:17:04 +0000 Received: by mail-pj1-x102c.google.com with SMTP id l23so5980215pjg.1 for ; Fri, 08 Jan 2021 03:17:02 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=4nUNli654LtMfzP23uxOB/jn47gcZbp/cG1xs2NHv6k=; b=mNKEHbJlA6HRZVBSDNcDnB25syiwYDVv+zutOUNgGEzwmw25OpYs+JYD9XcNnhxOsm T02YJZ+7xtWfMLv+WicnpvPIssv9/SGPr9I77QkqRSzieEkp342eRkoHBv/Ro193j8Uz JojtJLAohak7pHxe6CItU8KS5CY3hLgQU1fd0fElqaVSTe7RaI+gg48gQV6dEgujDPre c/qeu3DmrEP73b2xBIG5Q50gnDE/e/W0Allh+irgKCBtm/8c/tdDjdO41pwt681dRiSd e1kGnQTbOJnj7pxulEWtDyFpOjEVXhUDr5IT+QktCKYf6nfrcJ5IS9DFdm6azGu+JxxH LOgw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=4nUNli654LtMfzP23uxOB/jn47gcZbp/cG1xs2NHv6k=; b=UJEBbMa46oQ5/65U7YX9q0Yt5ljEwp2PA+8SjGbJGZeXTIeICKAom5iI1aMWrytxtq DYcJPxK27ElV/SAks6A/7JJJKJBsVXl8BT5OVqflWbollT5HCaPJ2kkSm6ZulLeTBlBr /z5Sv3MAq1iHbBZuj2bddWmzsbG5iwaDh4gZTKFhsgOB0dKX7YDKbYJ7My0EWbQ7zLxe RBKZz7/9egLW8w8ZQlrMVpJC//Pz8FsCaZig3njFJpZ89feqR5FtGZGx47cjO44TPere FhuP9JckLf3ZQghfTdT1fqveUGC5+mH6XLSAso9ogfyxAgUNYqzrXjGX40lblAYtgOHv sWiA== X-Gm-Message-State: AOAM531WHP3Rd2/kcqlGKGOR+42C+5f4b5UCtiMqZgZySWsUs+tbyOJ5 AOQnSZXaue8R/LpOfGv3Q8McWQ== X-Google-Smtp-Source: ABdhPJwA52onY6PEwKGeVt3wn3g0aGel8Nb0QidDMBVRFfrnnId1jGiQ9xvq4jyACWlBAvymi13kRQ== X-Received: by 2002:a17:90b:1249:: with SMTP id gx9mr3263125pjb.146.1610104620576; Fri, 08 Jan 2021 03:17:00 -0800 (PST) Received: from localhost ([122.172.20.109]) by smtp.gmail.com with ESMTPSA id g202sm8383292pfb.196.2021.01.08.03.16.59 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 08 Jan 2021 03:16:59 -0800 (PST) From: Viresh Kumar To: Catalin Marinas , Will Deacon Subject: [PATCH V4 1/3] arm64: topology: Avoid the have_policy check Date: Fri, 8 Jan 2021 16:46:51 +0530 Message-Id: X-Mailer: git-send-email 2.25.0.rc1.19.g042ed3e048af In-Reply-To: References: MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210108_061703_188793_454D3819 X-CRM114-Status: GOOD ( 19.71 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Viresh Kumar , Ionela Voinescu , linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Vincent Guittot Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Every time I have stumbled upon this routine, I get confused with the way 'have_policy' is used and I have to dig in to understand why is it so. Here is an attempt to make it easier to understand, and hopefully it is an improvement. The 'have_policy' check was just an optimization to avoid writing to amu_fie_cpus in case we don't have to, but that optimization itself is creating more confusion than the real work. Lets just do that if all the CPUs support AMUs. It is much cleaner that way. Reviewed-by: Ionela Voinescu Signed-off-by: Viresh Kumar --- arch/arm64/kernel/topology.c | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) diff --git a/arch/arm64/kernel/topology.c b/arch/arm64/kernel/topology.c index f6faa697e83e..ebadc73449f9 100644 --- a/arch/arm64/kernel/topology.c +++ b/arch/arm64/kernel/topology.c @@ -199,14 +199,14 @@ static int freq_inv_set_max_ratio(int cpu, u64 max_rate, u64 ref_rate) return 0; } -static inline bool +static inline void enable_policy_freq_counters(int cpu, cpumask_var_t valid_cpus) { struct cpufreq_policy *policy = cpufreq_cpu_get(cpu); if (!policy) { pr_debug("CPU%d: No cpufreq policy found.\n", cpu); - return false; + return; } if (cpumask_subset(policy->related_cpus, valid_cpus)) @@ -214,8 +214,6 @@ enable_policy_freq_counters(int cpu, cpumask_var_t valid_cpus) amu_fie_cpus); cpufreq_cpu_put(policy); - - return true; } static DEFINE_STATIC_KEY_FALSE(amu_fie_key); @@ -225,7 +223,6 @@ static int __init init_amu_fie(void) { bool invariance_status = topology_scale_freq_invariant(); cpumask_var_t valid_cpus; - bool have_policy = false; int ret = 0; int cpu; @@ -245,17 +242,12 @@ static int __init init_amu_fie(void) continue; cpumask_set_cpu(cpu, valid_cpus); - have_policy |= enable_policy_freq_counters(cpu, valid_cpus); + enable_policy_freq_counters(cpu, valid_cpus); } - /* - * If we are not restricted by cpufreq policies, we only enable - * the use of the AMU feature for FIE if all CPUs support AMU. - * Otherwise, enable_policy_freq_counters has already enabled - * policy cpus. - */ - if (!have_policy && cpumask_equal(valid_cpus, cpu_present_mask)) - cpumask_or(amu_fie_cpus, amu_fie_cpus, valid_cpus); + /* Overwrite amu_fie_cpus if all CPUs support AMU */ + if (cpumask_equal(valid_cpus, cpu_present_mask)) + cpumask_copy(amu_fie_cpus, cpu_present_mask); if (!cpumask_empty(amu_fie_cpus)) { pr_info("CPUs[%*pbl]: counters will be used for FIE.",