From: Zihuan Zhang <zhangzihuan@kylinos.cn>
To: Viresh Kumar <viresh.kumar@linaro.org>
Cc: "Rafael J . wysocki" <rafael@kernel.org>,
Saravana Kannan <saravanak@google.com>,
zhenglifeng <zhenglifeng1@huawei.com>,
linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v1 2/3] cpufreq: Always enforce policy limits even without frequency table
Date: Thu, 4 Sep 2025 13:23:55 +0800 [thread overview]
Message-ID: <540469c3-9bc5-444e-87da-95dc27fc481b@kylinos.cn> (raw)
In-Reply-To: <20250904044812.cpadajrtz3mrz2ke@vireshk-i7>
在 2025/9/4 12:48, Viresh Kumar 写道:
> On 04-09-25, 11:22, Zihuan Zhang wrote:
>> Currently, cpufreq_frequency_table_verify() simply returns when the driver’s
>> frequency table is missing (policy->freq_table == NULL).
>> This means that cpufreq_verify_within_cpu_limits() is not invoked in such
>> cases, leaving policy->min and policy->max unchecked.
>>
>> Some cpufreq drivers handle this manually by calling
>> cpufreq_verify_within_cpu_limits() even when no frequency table is present,
>> in order to ensure the policy stays within CPU limits.
>>
>> To avoid this inconsistency and potential misuse, make
>> cpufreq_generic_frequency_table_verify() always call
>> cpufreq_verify_within_cpu_limits(), regardless of whether policy->freq_table
>> is available. This unifies the behavior across all drivers and makes the helper
>> safe to use universally.
>>
>> Signed-off-by: Zihuan Zhang <zhangzihuan@kylinos.cn>
>> ---
>> drivers/cpufreq/freq_table.c | 1 +
>> 1 file changed, 1 insertion(+)
>>
>> diff --git a/drivers/cpufreq/freq_table.c b/drivers/cpufreq/freq_table.c
>> index d5111ee56e38..f4b05dcc479b 100644
>> --- a/drivers/cpufreq/freq_table.c
>> +++ b/drivers/cpufreq/freq_table.c
>> @@ -105,6 +105,7 @@ EXPORT_SYMBOL_GPL(cpufreq_frequency_table_verify);
>> */
>> int cpufreq_generic_frequency_table_verify(struct cpufreq_policy_data *policy)
>> {
>> + cpufreq_verify_within_cpu_limits(policy);
> So if we have a freq-table, we will call this twice now. Why make it
> bad for the existing users ?
Just to clarify, in the third patch of this series we remove
cpufreq_generic_frequency_table_verify() from the table_verify path,
so cpufreq_verify_within_cpu_limits() is now only called here. There
won’t be any duplicate invocation for drivers that already have a
frequency table.
This also resolves the semantic concern, since the helper is no
longer invoked outside of this context.
Thanks!
> And then the name of this function, it is all about freq-table. If it
> isn't there, not sure we should call it at all.
As it stands, only drivers that have a frequency table actually call
cpufreq_generic_frequency_table_verify(). Drivers without a table
implement their own verification logic. So in practice, this helper
is still only used in the context of a frequency table, keeping the
semantics consistent with its name.
>> if (!policy->freq_table)
>> return -ENODEV;
>>
>> --
>> 2.25.1
next prev parent reply other threads:[~2025-09-04 5:24 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-09-04 3:22 [PATCH v1 0/3] cpufreq: Clean up frequency table handling Zihuan Zhang
2025-09-04 3:22 ` [PATCH v1 1/3] cpufreq: Drop redundant freq_table parameter Zihuan Zhang
2025-09-04 13:31 ` Rafael J. Wysocki
2025-09-05 1:16 ` Zihuan Zhang
2025-09-04 3:22 ` [PATCH v1 2/3] cpufreq: Always enforce policy limits even without frequency table Zihuan Zhang
2025-09-04 4:48 ` Viresh Kumar
2025-09-04 5:23 ` Zihuan Zhang [this message]
2025-09-04 5:37 ` Viresh Kumar
2025-09-04 5:48 ` Zihuan Zhang
2025-09-08 6:13 ` Viresh Kumar
2025-09-08 6:51 ` Zihuan Zhang
2025-09-08 6:55 ` Viresh Kumar
2025-09-08 7:08 ` Zihuan Zhang
2025-09-08 7:19 ` Viresh Kumar
2025-09-08 7:36 ` Zihuan Zhang
2025-09-08 7:44 ` Viresh Kumar
2025-09-04 3:22 ` [PATCH v1 3/3] cpufreq: Make cpufreq_frequency_table_verify() internal Zihuan Zhang
2025-09-04 4:45 ` Viresh Kumar
2025-09-04 5:34 ` Zihuan Zhang
2025-09-08 6:46 ` Viresh Kumar
2025-09-04 4:24 ` [PATCH v1 0/3] cpufreq: Clean up frequency table handling Viresh Kumar
2025-09-04 4:36 ` Zihuan Zhang
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=540469c3-9bc5-444e-87da-95dc27fc481b@kylinos.cn \
--to=zhangzihuan@kylinos.cn \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=rafael@kernel.org \
--cc=saravanak@google.com \
--cc=viresh.kumar@linaro.org \
--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
all inboxes | Powered by JetHome®