* [PATCH v1] ACPI: CPPC: Drop two compliance checks involving nominal performance
@ 2026-11-12 17:35 Rafael J. Wysocki
2026-11-12 17:42 ` Rafael J. Wysocki (Intel)
0 siblings, 1 reply; 5+ messages in thread
From: Rafael J. Wysocki @ 2026-11-12 17:35 UTC (permalink / raw)
To: Linux ACPI; +Cc: Christian Loehle, Linux PM, Srinivas Pandruvada
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) is larger than the guaranteed
performance value and it may even be larger than the highest performance
value (that 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 useful, so drop them from the CPPC library.
If really necessary, they will need to be done elsewhere.
Fixes: 32299b29a887 ("ACPI: CPPC: Validate _CPC entry and control semantics")
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))) {
+ nom < min_nonlinear || min_nonlinear < low ||
+ (CPC_SUPPORTED(guaranteed_reg) && guaranteed < low)) {
ret = -EFAULT;
goto out_err;
}
^ permalink raw reply [flat|nested] 5+ messages in thread* Re: [PATCH v1] ACPI: CPPC: Drop two compliance checks involving nominal performance
2026-11-12 17:35 [PATCH v1] ACPI: CPPC: Drop two compliance checks involving nominal performance Rafael J. Wysocki
@ 2026-11-12 17:42 ` Rafael J. Wysocki (Intel)
2026-11-12 20:55 ` Christian Loehle
0 siblings, 1 reply; 5+ messages in thread
From: Rafael J. Wysocki (Intel) @ 2026-11-12 17:42 UTC (permalink / raw)
To: Linux PM; +Cc: Linux ACPI, Christian Loehle, Srinivas Pandruvada
On Thu, Nov 12, 2026 at 6:39 PM Rafael J. Wysocki <rafael@kernel.org> wrote:
>
> 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) is larger than the guaranteed
I said "larger", but should have said "less". Sorry about this.
Will fix this when applying the patch unless there are other comments.
> performance value and it may even be larger than the highest performance
> value (that 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 useful, so drop them from the CPPC library.
>
> If really necessary, they will need to be done elsewhere.
>
> Fixes: 32299b29a887 ("ACPI: CPPC: Validate _CPC entry and control semantics")
> 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))) {
> + nom < min_nonlinear || min_nonlinear < low ||
> + (CPC_SUPPORTED(guaranteed_reg) && guaranteed < low)) {
> ret = -EFAULT;
> goto out_err;
> }
>
>
>
>
^ permalink raw reply [flat|nested] 5+ messages in thread* Re: [PATCH v1] ACPI: CPPC: Drop two compliance checks involving nominal performance
2026-11-12 17:42 ` Rafael J. Wysocki (Intel)
@ 2026-11-12 20:55 ` Christian Loehle
2026-11-12 21:02 ` Rafael J. Wysocki (Intel)
0 siblings, 1 reply; 5+ messages in thread
From: Christian Loehle @ 2026-11-12 20:55 UTC (permalink / raw)
To: Rafael J. Wysocki (Intel), Linux PM; +Cc: Linux ACPI, Srinivas Pandruvada
On 11/12/26 17:42, Rafael J. Wysocki (Intel) wrote:
> On Thu, Nov 12, 2026 at 6:39 PM Rafael J. Wysocki <rafael@kernel.org> wrote:
>>
>> 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) is larger than the guaranteed
>
> I said "larger", but should have said "less". Sorry about this.
>
> Will fix this when applying the patch unless there are other comments.
>
>> performance value and it may even be larger than the highest performance
>> value (that 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 useful, so drop them from the CPPC library.
>>
>> If really necessary, they will need to be done elsewhere.
They would've made things a littler clearer but I don't see why
we strictly need them right now.
>>
>> Fixes: 32299b29a887 ("ACPI: CPPC: Validate _CPC entry and control semantics")
>> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Reviewed-by: Christian Loehle <christian.loehle@arm.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))) {
>> + nom < min_nonlinear || min_nonlinear < low ||
>> + (CPC_SUPPORTED(guaranteed_reg) && guaranteed < low)) {
>> ret = -EFAULT;
>> goto out_err;
>> }
>>
>>
>>
>>
^ permalink raw reply [flat|nested] 5+ messages in thread* Re: [PATCH v1] ACPI: CPPC: Drop two compliance checks involving nominal performance
2026-11-12 20:55 ` Christian Loehle
@ 2026-11-12 21:02 ` Rafael J. Wysocki (Intel)
2026-11-12 21:06 ` Christian Loehle
0 siblings, 1 reply; 5+ messages in thread
From: Rafael J. Wysocki (Intel) @ 2026-11-12 21:02 UTC (permalink / raw)
To: Christian Loehle
Cc: Rafael J. Wysocki (Intel), Linux PM, Linux ACPI,
Srinivas Pandruvada
On Thu, Nov 12, 2026 at 9:55 PM Christian Loehle
<christian.loehle@arm.com> wrote:
>
> On 11/12/26 17:42, Rafael J. Wysocki (Intel) wrote:
> > On Thu, Nov 12, 2026 at 6:39 PM Rafael J. Wysocki <rafael@kernel.org> wrote:
> >>
> >> 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) is larger than the guaranteed
> >
> > I said "larger", but should have said "less". Sorry about this.
> >
> > Will fix this when applying the patch unless there are other comments.
> >
> >> performance value and it may even be larger than the highest performance
> >> value (that 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 useful, so drop them from the CPPC library.
> >>
> >> If really necessary, they will need to be done elsewhere.
>
> They would've made things a littler clearer but I don't see why
> we strictly need them right now.
>
> >>
> >> Fixes: 32299b29a887 ("ACPI: CPPC: Validate _CPC entry and control semantics")
> >> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
>
> Reviewed-by: Christian Loehle <christian.loehle@arm.com>
Thank you!
I will need to update the patch because the nom vs min_nonlinear check
is also affected.
I'll send a v2 tomorrow with your R-by if that's OK.
> >> ---
> >> 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))) {
> >> + nom < min_nonlinear || min_nonlinear < low ||
> >> + (CPC_SUPPORTED(guaranteed_reg) && guaranteed < low)) {
> >> ret = -EFAULT;
> >> goto out_err;
> >> }
> >>
> >>
> >>
> >>
>
^ permalink raw reply [flat|nested] 5+ messages in thread* Re: [PATCH v1] ACPI: CPPC: Drop two compliance checks involving nominal performance
2026-11-12 21:02 ` Rafael J. Wysocki (Intel)
@ 2026-11-12 21:06 ` Christian Loehle
0 siblings, 0 replies; 5+ messages in thread
From: Christian Loehle @ 2026-11-12 21:06 UTC (permalink / raw)
To: Rafael J. Wysocki (Intel); +Cc: Linux PM, Linux ACPI, Srinivas Pandruvada
On 11/12/26 21:02, Rafael J. Wysocki (Intel) wrote:
> On Thu, Nov 12, 2026 at 9:55 PM Christian Loehle
> <christian.loehle@arm.com> wrote:
>>
>> On 11/12/26 17:42, Rafael J. Wysocki (Intel) wrote:
>>> On Thu, Nov 12, 2026 at 6:39 PM Rafael J. Wysocki <rafael@kernel.org> wrote:
>>>>
>>>> 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) is larger than the guaranteed
>>>
>>> I said "larger", but should have said "less". Sorry about this.
>>>
>>> Will fix this when applying the patch unless there are other comments.
>>>
>>>> performance value and it may even be larger than the highest performance
>>>> value (that 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 useful, so drop them from the CPPC library.
>>>>
>>>> If really necessary, they will need to be done elsewhere.
>>
>> They would've made things a littler clearer but I don't see why
>> we strictly need them right now.
>>
>>>>
>>>> Fixes: 32299b29a887 ("ACPI: CPPC: Validate _CPC entry and control semantics")
>>>> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
>>
>> Reviewed-by: Christian Loehle <christian.loehle@arm.com>
>
> Thank you!
>
> I will need to update the patch because the nom vs min_nonlinear check
> is also affected.
>
> I'll send a v2 tomorrow with your R-by if that's OK.
All good!
> [snip]
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2026-11-12 21:06 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-11-12 17:35 [PATCH v1] ACPI: CPPC: Drop two compliance checks involving nominal performance Rafael J. Wysocki
2026-11-12 17:42 ` Rafael J. Wysocki (Intel)
2026-11-12 20:55 ` Christian Loehle
2026-11-12 21:02 ` Rafael J. Wysocki (Intel)
2026-11-12 21:06 ` Christian Loehle
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox