From: Pierre Gondois <pierre.gondois@arm.com>
To: Jie Zhan <zhanjie9@hisilicon.com>,
viresh.kumar@linaro.org, rafael@kernel.org,
ionela.voinescu@arm.com, beata.michalska@arm.com,
zhenglifeng1@huawei.com
Cc: linux-pm@vger.kernel.org, linux-acpi@vger.kernel.org,
linux-arm-kernel@lists.infradead.org, linuxarm@huawei.com,
jonathan.cameron@huawei.com, prime.zeng@hisilicon.com,
yubowen8@huawei.com, lihuisong@huawei.com,
zhangpengjie2@huawei.com, wangzhi12@huawei.com
Subject: Re: [PATCH v4 3/3] cpufreq: CPPC: Update FIE arch_freq_scale in ticks for non-PCC regs
Date: Mon, 8 Dec 2025 11:08:28 +0100 [thread overview]
Message-ID: <270216de-e7d1-4552-a04f-8b0fd7b79552@arm.com> (raw)
In-Reply-To: <20251203032422.3232957-4-zhanjie9@hisilicon.com>
Hello Jie Zhan,
On 12/3/25 04:24, Jie Zhan wrote:
> Currently, the CPPC Frequency Invariance Engine (FIE) is invoked from the
> scheduler tick but defers the update of arch_freq_scale to a separate
> thread because cppc_get_perf_ctrs() would sleep if the CPC regs are in PCC.
>
> However, this deferred update mechanism is unnecessary and introduces extra
> overhead for non-PCC register spaces (e.g. System Memory or FFH), where
> accessing the regs won't sleep and can be safely performed from the tick
> context.
>
> Furthermore, with the CPPC FIE registered, it throws repeated warnings of
> "cppc_scale_freq_workfn: failed to read perf counters" on our platform with
> the CPC regs in System Memory and a power-down idle state enabled. That's
> because the remote CPU can be in a power-down idle state, and reading its
> perf counters returns 0. Moving the FIE handling back to the scheduler
> tick process makes the CPU handle its own perf counters, so it won't be
> idle and the issue would be inherently solved.
>
> To address the above issues, update arch_freq_scale directly in ticks for
> non-PCC regs and keep the deferred update mechanism for PCC regs.
>
> Signed-off-by: Jie Zhan<zhanjie9@hisilicon.com>
> ---
> drivers/cpufreq/cppc_cpufreq.c | 77 +++++++++++++++++++++++-----------
> 1 file changed, 52 insertions(+), 25 deletions(-)
>
> diff --git a/drivers/cpufreq/cppc_cpufreq.c b/drivers/cpufreq/cppc_cpufreq.c
> index 947b4e2e1d4e..36e8a75a37f1 100644
> --- a/drivers/cpufreq/cppc_cpufreq.c
> +++ b/drivers/cpufreq/cppc_cpufreq.c
[...]
> @@ -236,10 +265,8 @@ static void __init cppc_freq_invariance_init(void)
>
> static void cppc_freq_invariance_exit(void)
> {
> - if (fie_disabled)
> - return;
> -
> - kthread_destroy_worker(kworker_fie);
> + if (kworker_fie)
> + kthread_destroy_worker(kworker_fie);
Shouldn't we have:
kworker_fie = NULL;
here aswell ?
> }
>
> #else
Otherwise, for the 3 patches:
Reviewed-by: Pierre Gondois <pierre.gondois@arm.com>
next prev parent reply other threads:[~2025-12-08 10:09 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-12-03 3:24 [PATCH v4 0/3] cpufreq: CPPC: Update FIE arch_freq_scale in ticks for non-PCC regs Jie Zhan
2025-12-03 3:24 ` [PATCH v4 1/3] ACPI: CPPC: Factor out and export per-cpu cppc_perf_ctrs_in_pcc_cpu() Jie Zhan
2025-12-05 15:13 ` Rafael J. Wysocki
2025-12-08 4:02 ` Jie Zhan
2025-12-08 16:17 ` Beata Michalska
2025-12-09 13:37 ` Jie Zhan
2025-12-03 3:24 ` [PATCH v4 2/3] cpufreq: CPPC: Factor out cppc_fie_kworker_init() Jie Zhan
2025-12-03 3:24 ` [PATCH v4 3/3] cpufreq: CPPC: Update FIE arch_freq_scale in ticks for non-PCC regs Jie Zhan
2025-12-08 10:08 ` Pierre Gondois [this message]
2025-12-09 13:23 ` Jie Zhan
2025-12-03 7:55 ` [PATCH v4 0/3] " zhenglifeng (A)
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=270216de-e7d1-4552-a04f-8b0fd7b79552@arm.com \
--to=pierre.gondois@arm.com \
--cc=beata.michalska@arm.com \
--cc=ionela.voinescu@arm.com \
--cc=jonathan.cameron@huawei.com \
--cc=lihuisong@huawei.com \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-pm@vger.kernel.org \
--cc=linuxarm@huawei.com \
--cc=prime.zeng@hisilicon.com \
--cc=rafael@kernel.org \
--cc=viresh.kumar@linaro.org \
--cc=wangzhi12@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).