All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ionela Voinescu <ionela.voinescu@arm.com>
To: linux-kernel@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org, sudeep.holla@arm.com,
	catalin.marinas@arm.com, vincent.guittot@linaro.org,
	beata.michalska@arm.com
Cc: rafael@kernel.org, viresh.kumar@linaro.org,
	dietmar.eggemann@arm.com, pierre.gondois@arm.com
Subject: Re: [PATCH] arch_topology: init capacity_freq_ref to 0
Date: Mon, 17 Feb 2025 15:01:23 +0000	[thread overview]
Message-ID: <Z7NPEic3jxLAQBTd@arm.com> (raw)
In-Reply-To: <20240827154818.1195849-1-ionela.voinescu@arm.com>

Hi folks,

I just wanted to mention that this patch still applies cleanly on
next-20250217 as well, and it still builds/boots/works as expected.

I've rechecked it given that the patches at [1] seem ready to be picked
up, and those patches depend on this one.

Thanks,
Ionela.

[1] https://lore.kernel.org/lkml/20250131162439.3843071-1-beata.michalska@arm.com/

On Tuesday 27 Aug 2024 at 16:48:18 (+0100), Ionela Voinescu wrote:
> It's useful to have capacity_freq_ref initialized to 0 for users of
> arch_scale_freq_ref() to detect when capacity_freq_ref was not
> yet set.
> 
> The only scenario affected by this change in the init value is when a
> cpufreq driver is never loaded. As a result, the only setter of a
> cpu scale factor remains the call of topology_normalize_cpu_scale()
> from parse_dt_topology(). There we cannot use the value 0 of
> capacity_freq_ref so we have to compensate for its uninitialized state.
> 
> Signed-off-by: Ionela Voinescu <ionela.voinescu@arm.com>
> Signed-off-by: Beata Michalska <beata.michalska@arm.com>
> Reviewed-by: Vincent Guittot <vincent.guittot@linaro.org>
> Reviewed-by: Sudeep Holla <sudeep.holla@arm.com>
> ---
> 
> Hi,
> 
> This patch was previously part of the patch-set at [1], but we thought
> it's best to separate the standalone patches in that set to make
> further review easier on the remaining topics.
> 
> Based on v6.11-rc5 and tested on Juno with and without a cpufreq driver.
> 
> [1] https://lore.kernel.org/lkml/20240603082154.3830591-2-beata.michalska@arm.com/
> 
> Thanks,
> Ionela.
> 
>  drivers/base/arch_topology.c | 8 +++++---
>  1 file changed, 5 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/base/arch_topology.c b/drivers/base/arch_topology.c
> index 75fcb75d5515..c49ef1a712f4 100644
> --- a/drivers/base/arch_topology.c
> +++ b/drivers/base/arch_topology.c
> @@ -28,7 +28,7 @@
>  static DEFINE_PER_CPU(struct scale_freq_data __rcu *, sft_data);
>  static struct cpumask scale_freq_counters_mask;
>  static bool scale_freq_invariant;
> -DEFINE_PER_CPU(unsigned long, capacity_freq_ref) = 1;
> +DEFINE_PER_CPU(unsigned long, capacity_freq_ref) = 0;
>  EXPORT_PER_CPU_SYMBOL_GPL(capacity_freq_ref);
>  
>  static bool supports_scale_freq_counters(const struct cpumask *cpus)
> @@ -293,13 +293,15 @@ void topology_normalize_cpu_scale(void)
>  
>  	capacity_scale = 1;
>  	for_each_possible_cpu(cpu) {
> -		capacity = raw_capacity[cpu] * per_cpu(capacity_freq_ref, cpu);
> +		capacity = raw_capacity[cpu] *
> +			   (per_cpu(capacity_freq_ref, cpu) ?: 1);
>  		capacity_scale = max(capacity, capacity_scale);
>  	}
>  
>  	pr_debug("cpu_capacity: capacity_scale=%llu\n", capacity_scale);
>  	for_each_possible_cpu(cpu) {
> -		capacity = raw_capacity[cpu] * per_cpu(capacity_freq_ref, cpu);
> +		capacity = raw_capacity[cpu] *
> +			   (per_cpu(capacity_freq_ref, cpu) ?: 1);
>  		capacity = div64_u64(capacity << SCHED_CAPACITY_SHIFT,
>  			capacity_scale);
>  		topology_set_cpu_scale(cpu, capacity);
> -- 
> 2.25.1
> 
> 


  reply	other threads:[~2025-02-17 15:12 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-08-27 15:48 [PATCH] arch_topology: init capacity_freq_ref to 0 Ionela Voinescu
2025-02-17 15:01 ` Ionela Voinescu [this message]
2025-02-17 16:01   ` Sudeep Holla
2025-02-17 21:32 ` Catalin Marinas

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Z7NPEic3jxLAQBTd@arm.com \
    --to=ionela.voinescu@arm.com \
    --cc=beata.michalska@arm.com \
    --cc=catalin.marinas@arm.com \
    --cc=dietmar.eggemann@arm.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=pierre.gondois@arm.com \
    --cc=rafael@kernel.org \
    --cc=sudeep.holla@arm.com \
    --cc=vincent.guittot@linaro.org \
    --cc=viresh.kumar@linaro.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.