From: "Rafael J. Wysocki" <rafael@kernel.org>
To: Linux ACPI <linux-acpi@vger.kernel.org>
Cc: Christian Loehle <christian.loehle@arm.com>,
Linux PM <linux-pm@vger.kernel.org>,
Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Subject: [PATCH v2] ACPI: CPPC: Drop compliance checks involving nominal performance
Date: Fri, 13 Nov 2026 14:17:51 +0100 [thread overview]
Message-ID: <2869679.mvXUDI8C0e@rafael.j.wysocki> (raw)
From: "Rafael J. Wysocki" <rafael.j.wysocki@intel.com>
On a number of Intel platforms in the field, the nominal performance
value in ACPI _CPC (which is an integer embedded in the _CPC package)
is less than the guaranteed performance value, and it may be even less
than the minimum nonlinear performance value or greater than the highest
performance value (that all come from register reads).
The new specification compliance checks involving those values added
by commit 32299b29a887 ("ACPI: CPPC: Validate _CPC entry and control
semantics") cause the CPPC library to refuse to work for some CPUs
on the affected systems which in turn causes the intel_pstate driver
to overestimate the maximum performance levels for those CPUs. One
of the affected systems is Dell Pro 5 14 P514260.
In this particular case, the fact that the specification is not
exactly followed has no implications and the checks enforcing
compliance are not really useful, so drop the checks in question
from the CPPC library.
If really necessary, they will need to be done elsewhere.
Fixes: 32299b29a887 ("ACPI: CPPC: Validate _CPC entry and control semantics")
Reviewed-by: Christian Loehle <christian.loehle@arm.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
---
drivers/acpi/cppc_acpi.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
--- a/drivers/acpi/cppc_acpi.c
+++ b/drivers/acpi/cppc_acpi.c
@@ -2940,9 +2940,8 @@ int cppc_get_perf_caps(int cpunum, struc
if (!high || !low || !nom || !ref || !min_nonlinear ||
high > U32_MAX || low > U32_MAX || guaranteed > U32_MAX ||
nom > U32_MAX || ref > U32_MAX || min_nonlinear > U32_MAX ||
- high < nom || nom < min_nonlinear || min_nonlinear < low ||
- (CPC_SUPPORTED(guaranteed_reg) &&
- (guaranteed < low || guaranteed > nom))) {
+ min_nonlinear < low ||
+ (CPC_SUPPORTED(guaranteed_reg) && guaranteed < low)) {
ret = -EFAULT;
goto out_err;
}
reply other threads:[~2026-11-13 13:17 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
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=2869679.mvXUDI8C0e@rafael.j.wysocki \
--to=rafael@kernel.org \
--cc=christian.loehle@arm.com \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=srinivas.pandruvada@linux.intel.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