Commit 04aa9d07 authored by Pierre Gondois's avatar Pierre Gondois Committed by Rafael J. Wysocki
Browse files

cpufreq: Remove max_freq_req update for pre-existing policy



policy->max_freq_req QoS constraint represents the maximal allowed
frequency than can be requested. It is set by:
 - writing to policyX/scaling_max sysfs file
 - toggling the cpufreq/boost sysfs file

Upon calling freq_qos_update_request(), a successful update
of the max_freq_req value triggers cpufreq_notifier_max(),
followed by cpufreq_set_policy() which update the requested
frequency for the policy.
If the new max_freq_req value is not different from the
original value, no frequency update is triggered.

In a specific sequence of toggling:
 - cpufreq/boost sysfs file
 - CPU hot-plugging
a CPU could end up with boost enabled but running at the
maximal non-boost frequency, cpufreq_notifier_max() not being
triggered. The following fixed that:
commit 1608f023 ("cpufreq: Fix re-boost issue after hotplugging
a CPU")

The following:
commit dd016f37 ("cpufreq: Introduce a more generic way to
set default per-policy boost flag")
also fixed the issue by correctly setting the max_freq_req
constraint of a policy that is re-activated. This makes the
first fix unnecessary.

As the original issue is fixed by another method,
this patch reverts:
commit 1608f023 ("cpufreq: Fix re-boost issue after hotplugging
a CPU")

Reviewed-by: default avatarLifeng Zheng <zhenglifeng1@huawei.com>
Signed-off-by: default avatarPierre Gondois <pierre.gondois@arm.com>
Acked-by: default avatarViresh Kumar <viresh.kumar@linaro.org>
Link: https://patch.msgid.link/20260326204404.1401849-2-pierre.gondois@arm.com


Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
parent 65dea119
Loading
Loading
Loading
Loading
+0 −4
Original line number Diff line number Diff line
@@ -1484,10 +1484,6 @@ static int cpufreq_policy_online(struct cpufreq_policy *policy,

		blocking_notifier_call_chain(&cpufreq_policy_notifier_list,
				CPUFREQ_CREATE_POLICY, policy);
	} else {
		ret = freq_qos_update_request(policy->max_freq_req, policy->max);
		if (ret < 0)
			goto out_destroy_policy;
	}

	if (cpufreq_driver->get && has_target()) {