linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: Beata Michalska <beata.michalska@arm.com>
To: Bowen Yu <yubowen8@huawei.com>
Cc: linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org, catalin.marinas@arm.com,
	will@kernel.org, ptsm@linux.microsoft.com, linuxarm@huawei.com,
	jonathan.cameron@huawei.com, zhanjie9@hisilicon.com,
	prime.zeng@hisilicon.com, wanghuiqiang@huawei.com,
	xuwei5@huawei.com, zhenglifeng1@huawei.com,
	zhangpengjie2@huawei.com
Subject: Re: [PATCH 2/3] arm64: topology: Use current freq in governor for idle cpus in cpuinfo_avg_freq
Date: Mon, 10 Nov 2025 18:11:55 +0100	[thread overview]
Message-ID: <aRIc20ErWTQr4dRa@arm.com> (raw)
In-Reply-To: <20251104075544.3243606-3-yubowen8@huawei.com>

On Tue, Nov 04, 2025 at 03:55:43PM +0800, Bowen Yu wrote:
> The current cpuinfo_avg_freq interface returns an error when all CPUs
> under a policy are idle, which is relatively common. To address this, it
> is better to use the current frequency stored in the governor. This
> implementation is also used on x86 architecture.
Well, the very reason of having this knob was not to mix hardware and software
view of so called 'current frequency'. Note that for x86 there is a dedicated
config option that keeps the behaviour you have mentioned for backward
compatibility.


cpuinfo_avg_freq -> average freq as seen by hw
cpuinfo_cur_freq -> closes one can get to current frequency - hw feedback
scaling_cur_freq -> requested freq, so smth the software believes should be the
		    current freq (often might not be)

The following thread might be useful -> [1]

---
[1] https://lore.kernel.org/all/20240603114811.oio3uemniib5uaa2@vireshk-i7/
---

BR
Beata

> 
> Since the current frequency in the governor is the last known frequency,
> it should be more user-friendly.
> 
> This patch also removes redundant !housekeeping_cpu() check since it is
> inherently done when checking jiffies.
> 
> Original output when all cpus under a policy are idle:
> [root@localhost home]# cat /sys/devices/system/cpu/cpufreq/policy0/
> cpuinfo_avg_freq
> cat: /sys/devices/system/cpu/cpufreq/policy0/cpuinfo_avg_freq: Resource
>  temporarily unavailable
> 
> Output after changes:
> [root@localhost home]# cat /sys/devices/system/cpu/cpufreq/policy0
> /cpuinfo_avg_freq
> 1200000
> 
> Signed-off-by: Bowen Yu <yubowen8@huawei.com>
> ---
>  arch/arm64/kernel/topology.c | 11 +++++------
>  1 file changed, 5 insertions(+), 6 deletions(-)
> 
> diff --git a/arch/arm64/kernel/topology.c b/arch/arm64/kernel/topology.c
> index c0dbc27289ea..f1370a4a4df9 100644
> --- a/arch/arm64/kernel/topology.c
> +++ b/arch/arm64/kernel/topology.c
> @@ -333,14 +333,13 @@ int arch_freq_get_on_cpu(int cpu)
>  				if (!idle_cpu(ref_cpu))
>  					break;
>  			}
> +
> +			if (ref_cpu >= nr_cpu_ids) {
> +				cpufreq_cpu_put(policy);
> +				return cpufreq_quick_get(start_cpu);
> +			}
>  
>  			cpufreq_cpu_put(policy);
> -
> -			if (ref_cpu >= nr_cpu_ids)
> -				/* No alternative to pull info from */
> -				return -EAGAIN;
> -
> -			cpu = ref_cpu;
>  		} else {
>  			break;
>  		}
> -- 
> 2.33.0


  reply	other threads:[~2025-11-10 17:12 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-11-04  7:55 [PATCH 0/3] arm64: topology: Improve cpuinfo_avg_freq for ARM64 Bowen Yu
2025-11-04  7:55 ` [PATCH 1/3] arm64: topology: Improve AMU-based frequency calculation Bowen Yu
2025-11-06  4:12   ` Jie Zhan
2025-11-10 17:04   ` Beata Michalska
2025-11-04  7:55 ` [PATCH 2/3] arm64: topology: Use current freq in governor for idle cpus in cpuinfo_avg_freq Bowen Yu
2025-11-10 17:11   ` Beata Michalska [this message]
2025-11-16  7:46     ` yubowen (H)
2025-11-04  7:55 ` [PATCH 3/3] arm64: topology: Remove redundant housekeeping_cpu() checks in arch_freq_get_on_cpu Bowen Yu
2025-11-10 17:15   ` Beata Michalska

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=aRIc20ErWTQr4dRa@arm.com \
    --to=beata.michalska@arm.com \
    --cc=catalin.marinas@arm.com \
    --cc=jonathan.cameron@huawei.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linuxarm@huawei.com \
    --cc=prime.zeng@hisilicon.com \
    --cc=ptsm@linux.microsoft.com \
    --cc=wanghuiqiang@huawei.com \
    --cc=will@kernel.org \
    --cc=xuwei5@huawei.com \
    --cc=yubowen8@huawei.com \
    --cc=zhangpengjie2@huawei.com \
    --cc=zhanjie9@hisilicon.com \
    --cc=zhenglifeng1@huawei.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).