Commit 94dbce6c authored by Juan Martinez's avatar Juan Martinez Committed by Viresh Kumar
Browse files

cpufreq/amd-pstate: Add comment explaining nominal_perf usage for performance policy



Add comment explaining why nominal_perf is used for MinPerf when the
CPU frequency policy is set to CPUFREQ_POLICY_PERFORMANCE, rather than
using highest_perf or lowest_nonlinear_perf.

Signed-off-by: default avatarJuan Martinez <juan.martinez@amd.com>
Signed-off-by: default avatarViresh Kumar <viresh.kumar@linaro.org>
parent 8c376f33
Loading
Loading
Loading
Loading
+13 −0
Original line number Diff line number Diff line
@@ -636,6 +636,19 @@ static void amd_pstate_update_min_max_limit(struct cpufreq_policy *policy)
	WRITE_ONCE(cpudata->max_limit_freq, policy->max);

	if (cpudata->policy == CPUFREQ_POLICY_PERFORMANCE) {
		/*
		 * For performance policy, set MinPerf to nominal_perf rather than
		 * highest_perf or lowest_nonlinear_perf.
		 *
		 * Per commit 0c411b39e4f4c, using highest_perf was observed
		 * to cause frequency throttling on power-limited platforms, leading to
		 * performance regressions. Using lowest_nonlinear_perf would limit
		 * performance too much for HPC workloads requiring high frequency
		 * operation and minimal wakeup latency from idle states.
		 *
		 * nominal_perf therefore provides a balance by avoiding throttling
		 * while still maintaining enough performance for HPC workloads.
		 */
		perf.min_limit_perf = min(perf.nominal_perf, perf.max_limit_perf);
		WRITE_ONCE(cpudata->min_limit_freq, min(cpudata->nominal_freq, cpudata->max_limit_freq));
	} else {