[PATCH v3 6/8] cpufreq: CPPC: Add sysfs for min/max_perf and perf_limited

Sumit Gupta posted 8 patches 4 months, 1 week ago
There is a newer version of this series
[PATCH v3 6/8] cpufreq: CPPC: Add sysfs for min/max_perf and perf_limited
Posted by Sumit Gupta 4 months, 1 week ago
Add sysfs interfaces for Minimum Performance, Maximum Performance
and Performance Limited Register in the cppc_cpufreq driver.

Reviewed-by: Randy Dunlap <rdunlap@infradead.org>
Signed-off-by: Sumit Gupta <sumitg@nvidia.com>
---
 .../ABI/testing/sysfs-devices-system-cpu      | 43 +++++++++++++++++++
 1 file changed, 43 insertions(+)

diff --git a/Documentation/ABI/testing/sysfs-devices-system-cpu b/Documentation/ABI/testing/sysfs-devices-system-cpu
index ab8cd337f43a..82141b45d58c 100644
--- a/Documentation/ABI/testing/sysfs-devices-system-cpu
+++ b/Documentation/ABI/testing/sysfs-devices-system-cpu
@@ -327,6 +327,49 @@ Description:	Energy performance preference
 
 		This file is only present if the cppc-cpufreq driver is in use.
 
+What:		/sys/devices/system/cpu/cpuX/cpufreq/min_perf
+Date:		September 2025
+Contact:	linux-pm@vger.kernel.org
+Description:	Minimum Performance
+
+		Read/write a 32 bits value from/to this file. This file
+		conveys the minimum performance level at which the platform
+		may run. Minimum performance may be set to any performance
+		value in the range [Lowest Performance, Highest Performance],
+		inclusive but must be set to a value that is less than or
+		equal to that specified by the Maximum Performance Register.
+
+		Writing to this file only has meaning when Autonomous Selection
+		is enabled.
+
+		This file is only present if the cppc-cpufreq driver is in use.
+
+What:		/sys/devices/system/cpu/cpuX/cpufreq/max_perf
+Date:		September 2025
+Contact:	linux-pm@vger.kernel.org
+Description:	Minimum Performance
+
+		Read/write a 32 bits value from/to this file. This file conveys
+		the maximum performance level at which the platform may run.
+		Maximum performance may be set to any performance value in the
+		range [Lowest Performance, Highest Performance], inclusive.
+
+		Writing to this file only has meaning when Autonomous Selection is
+		enabled.
+
+		This file is only present if the cppc-cpufreq driver is in use.
+
+What:		/sys/devices/system/cpu/cpuX/cpufreq/perf_limited
+Date:		September 2025
+Contact:	linux-pm@vger.kernel.org
+Description:	Minimum Performance
+
+		Read/write a 32 bits value from/to this file. This file indicates
+		to OSPM that an unpredictable event has limited processor
+		performance, and the delivered performance may be less than
+		desired/minimum performance.
+
+		This file is only present if the cppc-cpufreq driver is in use.
 
 What:		/sys/devices/system/cpu/cpu*/cache/index3/cache_disable_{0,1}
 Date:		August 2008
-- 
2.34.1
Re: [PATCH v3 6/8] cpufreq: CPPC: Add sysfs for min/max_perf and perf_limited
Posted by Ionela Voinescu 3 months, 2 weeks ago
Hi,

On Wednesday 01 Oct 2025 at 20:31:02 (+0530), Sumit Gupta wrote:
> Add sysfs interfaces for Minimum Performance, Maximum Performance
> and Performance Limited Register in the cppc_cpufreq driver.
> 
> Reviewed-by: Randy Dunlap <rdunlap@infradead.org>
> Signed-off-by: Sumit Gupta <sumitg@nvidia.com>
> ---
>  .../ABI/testing/sysfs-devices-system-cpu      | 43 +++++++++++++++++++
>  1 file changed, 43 insertions(+)
> 
> diff --git a/Documentation/ABI/testing/sysfs-devices-system-cpu b/Documentation/ABI/testing/sysfs-devices-system-cpu
> index ab8cd337f43a..82141b45d58c 100644
> --- a/Documentation/ABI/testing/sysfs-devices-system-cpu
> +++ b/Documentation/ABI/testing/sysfs-devices-system-cpu
> @@ -327,6 +327,49 @@ Description:	Energy performance preference
>  
>  		This file is only present if the cppc-cpufreq driver is in use.
>  
> +What:		/sys/devices/system/cpu/cpuX/cpufreq/min_perf
> +Date:		September 2025
> +Contact:	linux-pm@vger.kernel.org
> +Description:	Minimum Performance
> +
> +		Read/write a 32 bits value from/to this file. This file
> +		conveys the minimum performance level at which the platform
> +		may run. Minimum performance may be set to any performance
> +		value in the range [Lowest Performance, Highest Performance],
> +		inclusive but must be set to a value that is less than or
> +		equal to that specified by the Maximum Performance Register.
> +
> +		Writing to this file only has meaning when Autonomous Selection
> +		is enabled.

In the ACPI specification I don't see a clear dependency between the
minimum and maximum performance registers and autonomous selection.
There's nothing to say that min and max do not have meaning with
autonomous selection is disabled.

Thanks,
Ionela.

> +
> +		This file is only present if the cppc-cpufreq driver is in use.
> +
> +What:		/sys/devices/system/cpu/cpuX/cpufreq/max_perf
> +Date:		September 2025
> +Contact:	linux-pm@vger.kernel.org
> +Description:	Minimum Performance
> +
> +		Read/write a 32 bits value from/to this file. This file conveys
> +		the maximum performance level at which the platform may run.
> +		Maximum performance may be set to any performance value in the
> +		range [Lowest Performance, Highest Performance], inclusive.
> +
> +		Writing to this file only has meaning when Autonomous Selection is
> +		enabled.
> +
> +		This file is only present if the cppc-cpufreq driver is in use.
> +
> +What:		/sys/devices/system/cpu/cpuX/cpufreq/perf_limited
> +Date:		September 2025
> +Contact:	linux-pm@vger.kernel.org
> +Description:	Minimum Performance
> +
> +		Read/write a 32 bits value from/to this file. This file indicates
> +		to OSPM that an unpredictable event has limited processor
> +		performance, and the delivered performance may be less than
> +		desired/minimum performance.
> +
> +		This file is only present if the cppc-cpufreq driver is in use.
>  
>  What:		/sys/devices/system/cpu/cpu*/cache/index3/cache_disable_{0,1}
>  Date:		August 2008
> -- 
> 2.34.1
> 
>
Re: [PATCH v3 6/8] cpufreq: CPPC: Add sysfs for min/max_perf and perf_limited
Posted by Sumit Gupta 3 months, 2 weeks ago
On 22/10/25 17:32, Ionela Voinescu wrote:
> External email: Use caution opening links or attachments
>
>
> Hi,
>
> On Wednesday 01 Oct 2025 at 20:31:02 (+0530), Sumit Gupta wrote:
>> Add sysfs interfaces for Minimum Performance, Maximum Performance
>> and Performance Limited Register in the cppc_cpufreq driver.
>>
>> Reviewed-by: Randy Dunlap <rdunlap@infradead.org>
>> Signed-off-by: Sumit Gupta <sumitg@nvidia.com>
>> ---
>>   .../ABI/testing/sysfs-devices-system-cpu      | 43 +++++++++++++++++++
>>   1 file changed, 43 insertions(+)
>>
>> diff --git a/Documentation/ABI/testing/sysfs-devices-system-cpu b/Documentation/ABI/testing/sysfs-devices-system-cpu
>> index ab8cd337f43a..82141b45d58c 100644
>> --- a/Documentation/ABI/testing/sysfs-devices-system-cpu
>> +++ b/Documentation/ABI/testing/sysfs-devices-system-cpu
>> @@ -327,6 +327,49 @@ Description:     Energy performance preference
>>
>>                This file is only present if the cppc-cpufreq driver is in use.
>>
>> +What:                /sys/devices/system/cpu/cpuX/cpufreq/min_perf
>> +Date:                September 2025
>> +Contact:     linux-pm@vger.kernel.org
>> +Description: Minimum Performance
>> +
>> +             Read/write a 32 bits value from/to this file. This file
>> +             conveys the minimum performance level at which the platform
>> +             may run. Minimum performance may be set to any performance
>> +             value in the range [Lowest Performance, Highest Performance],
>> +             inclusive but must be set to a value that is less than or
>> +             equal to that specified by the Maximum Performance Register.
>> +
>> +             Writing to this file only has meaning when Autonomous Selection
>> +             is enabled.
> In the ACPI specification I don't see a clear dependency between the
> minimum and maximum performance registers and autonomous selection.
> There's nothing to say that min and max do not have meaning with
> autonomous selection is disabled.
>
> Thanks,
> Ionela. 

Yes, will remove the text about dependency on autonomous selection in v4.

Thank you,
Sumit Gupta


>> +
>> +             This file is only present if the cppc-cpufreq driver is in use.
>> +
>> +What:                /sys/devices/system/cpu/cpuX/cpufreq/max_perf
>> +Date:                September 2025
>> +Contact:     linux-pm@vger.kernel.org
>> +Description: Minimum Performance
>> +
>> +             Read/write a 32 bits value from/to this file. This file conveys
>> +             the maximum performance level at which the platform may run.
>> +             Maximum performance may be set to any performance value in the
>> +             range [Lowest Performance, Highest Performance], inclusive.
>> +
>> +             Writing to this file only has meaning when Autonomous Selection is
>> +             enabled.
>> +
>> +             This file is only present if the cppc-cpufreq driver is in use.
>> +
>> +What:                /sys/devices/system/cpu/cpuX/cpufreq/perf_limited
>> +Date:                September 2025
>> +Contact:     linux-pm@vger.kernel.org
>> +Description: Minimum Performance
>> +
>> +             Read/write a 32 bits value from/to this file. This file indicates
>> +             to OSPM that an unpredictable event has limited processor
>> +             performance, and the delivered performance may be less than
>> +             desired/minimum performance.
>> +
>> +             This file is only present if the cppc-cpufreq driver is in use.
>>
>>   What:                /sys/devices/system/cpu/cpu*/cache/index3/cache_disable_{0,1}
>>   Date:                August 2008
>> --
>> 2.34.1
>>
>>
Re: [PATCH v3 6/8] cpufreq: CPPC: Add sysfs for min/max_perf and perf_limited
Posted by Jie Zhan 4 months ago

On 10/1/2025 11:01 PM, Sumit Gupta wrote:
> Add sysfs interfaces for Minimum Performance, Maximum Performance
> and Performance Limited Register in the cppc_cpufreq driver.
> 
> Reviewed-by: Randy Dunlap <rdunlap@infradead.org>
> Signed-off-by: Sumit Gupta <sumitg@nvidia.com>
> ---
>  .../ABI/testing/sysfs-devices-system-cpu      | 43 +++++++++++++++++++
>  1 file changed, 43 insertions(+)
> 
> diff --git a/Documentation/ABI/testing/sysfs-devices-system-cpu b/Documentation/ABI/testing/sysfs-devices-system-cpu
> index ab8cd337f43a..82141b45d58c 100644
> --- a/Documentation/ABI/testing/sysfs-devices-system-cpu
> +++ b/Documentation/ABI/testing/sysfs-devices-system-cpu
> @@ -327,6 +327,49 @@ Description:	Energy performance preference
>  
>  		This file is only present if the cppc-cpufreq driver is in use.
>  
> +What:		/sys/devices/system/cpu/cpuX/cpufreq/min_perf
> +Date:		September 2025
> +Contact:	linux-pm@vger.kernel.org
> +Description:	Minimum Performance
> +
> +		Read/write a 32 bits value from/to this file. This file
> +		conveys the minimum performance level at which the platform
> +		may run. Minimum performance may be set to any performance
> +		value in the range [Lowest Performance, Highest Performance],
> +		inclusive but must be set to a value that is less than or
> +		equal to that specified by the Maximum Performance Register.
> +
> +		Writing to this file only has meaning when Autonomous Selection
> +		is enabled.
> +
> +		This file is only present if the cppc-cpufreq driver is in use.
> +
> +What:		/sys/devices/system/cpu/cpuX/cpufreq/max_perf
> +Date:		September 2025
> +Contact:	linux-pm@vger.kernel.org
> +Description:	Minimum Performance
Not adapted
> +
> +		Read/write a 32 bits value from/to this file. This file conveys
> +		the maximum performance level at which the platform may run.
> +		Maximum performance may be set to any performance value in the
> +		range [Lowest Performance, Highest Performance], inclusive.
> +
> +		Writing to this file only has meaning when Autonomous Selection is
> +		enabled.
> +
> +		This file is only present if the cppc-cpufreq driver is in use.
> +
> +What:		/sys/devices/system/cpu/cpuX/cpufreq/perf_limited
> +Date:		September 2025
> +Contact:	linux-pm@vger.kernel.org
> +Description:	Minimum Performance
Not adapted
> +
> +		Read/write a 32 bits value from/to this file. This file indicates
> +		to OSPM that an unpredictable event has limited processor
> +		performance, and the delivered performance may be less than
> +		desired/minimum performance.
> +
> +		This file is only present if the cppc-cpufreq driver is in use.
>  
>  What:		/sys/devices/system/cpu/cpu*/cache/index3/cache_disable_{0,1}
>  Date:		August 2008
Re: [PATCH v3 6/8] cpufreq: CPPC: Add sysfs for min/max_perf and perf_limited
Posted by Sumit Gupta 3 months, 3 weeks ago
On 10/10/25 08:59, Jie Zhan wrote:
> External email: Use caution opening links or attachments
>
>
> On 10/1/2025 11:01 PM, Sumit Gupta wrote:
>> Add sysfs interfaces for Minimum Performance, Maximum Performance
>> and Performance Limited Register in the cppc_cpufreq driver.
>>
>> Reviewed-by: Randy Dunlap <rdunlap@infradead.org>
>> Signed-off-by: Sumit Gupta <sumitg@nvidia.com>
>> ---
>>   .../ABI/testing/sysfs-devices-system-cpu      | 43 +++++++++++++++++++
>>   1 file changed, 43 insertions(+)
>>
>> diff --git a/Documentation/ABI/testing/sysfs-devices-system-cpu b/Documentation/ABI/testing/sysfs-devices-system-cpu
>> index ab8cd337f43a..82141b45d58c 100644
>> --- a/Documentation/ABI/testing/sysfs-devices-system-cpu
>> +++ b/Documentation/ABI/testing/sysfs-devices-system-cpu
>> @@ -327,6 +327,49 @@ Description:     Energy performance preference
>>
>>                This file is only present if the cppc-cpufreq driver is in use.
>>
>> +What:                /sys/devices/system/cpu/cpuX/cpufreq/min_perf
>> +Date:                September 2025
>> +Contact:     linux-pm@vger.kernel.org
>> +Description: Minimum Performance
>> +
>> +             Read/write a 32 bits value from/to this file. This file
>> +             conveys the minimum performance level at which the platform
>> +             may run. Minimum performance may be set to any performance
>> +             value in the range [Lowest Performance, Highest Performance],
>> +             inclusive but must be set to a value that is less than or
>> +             equal to that specified by the Maximum Performance Register.
>> +
>> +             Writing to this file only has meaning when Autonomous Selection
>> +             is enabled.
>> +
>> +             This file is only present if the cppc-cpufreq driver is in use.
>> +
>> +What:                /sys/devices/system/cpu/cpuX/cpufreq/max_perf
>> +Date:                September 2025
>> +Contact:     linux-pm@vger.kernel.org
>> +Description: Minimum Performance
> Not adapted
Sorry, i missed this. Will update here and below.

Thank you,
Sumit

>> +
>> +             Read/write a 32 bits value from/to this file. This file conveys
>> +             the maximum performance level at which the platform may run.
>> +             Maximum performance may be set to any performance value in the
>> +             range [Lowest Performance, Highest Performance], inclusive.
>> +
>> +             Writing to this file only has meaning when Autonomous Selection is
>> +             enabled.
>> +
>> +             This file is only present if the cppc-cpufreq driver is in use.
>> +
>> +What:                /sys/devices/system/cpu/cpuX/cpufreq/perf_limited
>> +Date:                September 2025
>> +Contact:     linux-pm@vger.kernel.org
>> +Description: Minimum Performance
> Not adapted

Ack.


>> +
>> +             Read/write a 32 bits value from/to this file. This file indicates
>> +             to OSPM that an unpredictable event has limited processor
>> +             performance, and the delivered performance may be less than
>> +             desired/minimum performance.
>> +
>> +             This file is only present if the cppc-cpufreq driver is in use.
>>
>>   What:                /sys/devices/system/cpu/cpu*/cache/index3/cache_disable_{0,1}
>>   Date:                August 2008
Re: [PATCH v3 6/8] cpufreq: CPPC: Add sysfs for min/max_perf and perf_limited
Posted by Mario Limonciello 4 months, 1 week ago
+linux-doc

On 10/1/25 10:01 AM, Sumit Gupta wrote:
> Add sysfs interfaces for Minimum Performance, Maximum Performance
> and Performance Limited Register in the cppc_cpufreq driver.
> 
> Reviewed-by: Randy Dunlap <rdunlap@infradead.org>
> Signed-off-by: Sumit Gupta <sumitg@nvidia.com>
> ---
>   .../ABI/testing/sysfs-devices-system-cpu      | 43 +++++++++++++++++++
>   1 file changed, 43 insertions(+)
> 
> diff --git a/Documentation/ABI/testing/sysfs-devices-system-cpu b/Documentation/ABI/testing/sysfs-devices-system-cpu
> index ab8cd337f43a..82141b45d58c 100644
> --- a/Documentation/ABI/testing/sysfs-devices-system-cpu
> +++ b/Documentation/ABI/testing/sysfs-devices-system-cpu
> @@ -327,6 +327,49 @@ Description:	Energy performance preference
>   
>   		This file is only present if the cppc-cpufreq driver is in use.
>   
> +What:		/sys/devices/system/cpu/cpuX/cpufreq/min_perf
> +Date:		September 2025

These dates will need to push out since this isn't 6.17 material.

That being said I have a general question to linux-doc.

Why is this is date based?  I would expect a date is meaningless to 
anyone reads this documentation.  People who want to know if an 
interface is available would normally look at their kernel version to tell.

So wouldn't it make more sense for this field to be something like:

Version: 6.19

> +Contact:	linux-pm@vger.kernel.org
> +Description:	Minimum Performance
> +
> +		Read/write a 32 bits value from/to this file. This file
> +		conveys the minimum performance level at which the platform
> +		may run. Minimum performance may be set to any performance
> +		value in the range [Lowest Performance, Highest Performance],

How will a user discover the lowest -> highest range?

IE I think you should document how to lookup those caps too.

> +		inclusive but must be set to a value that is less than or
> +		equal to that specified by the Maximum Performance Register.
> +
> +		Writing to this file only has meaning when Autonomous Selection
> +		is enabled.
> +
> +		This file is only present if the cppc-cpufreq driver is in use.
> +
> +What:		/sys/devices/system/cpu/cpuX/cpufreq/max_perf
> +Date:		September 2025
> +Contact:	linux-pm@vger.kernel.org
> +Description:	Minimum Performance
> +
> +		Read/write a 32 bits value from/to this file. This file conveys
> +		the maximum performance level at which the platform may run.
> +		Maximum performance may be set to any performance value in the
> +		range [Lowest Performance, Highest Performance], inclusive.
> +
> +		Writing to this file only has meaning when Autonomous Selection is
> +		enabled.
> +
> +		This file is only present if the cppc-cpufreq driver is in use.
> +
> +What:		/sys/devices/system/cpu/cpuX/cpufreq/perf_limited
> +Date:		September 2025
> +Contact:	linux-pm@vger.kernel.org
> +Description:	Minimum Performance
> +
> +		Read/write a 32 bits value from/to this file. This file indicates
> +		to OSPM that an unpredictable event has limited processor
> +		performance, and the delivered performance may be less than
> +		desired/minimum performance.
> +
> +		This file is only present if the cppc-cpufreq driver is in use.
>   
>   What:		/sys/devices/system/cpu/cpu*/cache/index3/cache_disable_{0,1}
>   Date:		August 2008
Re: [PATCH v3 6/8] cpufreq: CPPC: Add sysfs for min/max_perf and perf_limited
Posted by Sumit Gupta 4 months ago
On 01/10/25 22:33, Mario Limonciello wrote:
> External email: Use caution opening links or attachments
>
>
> +linux-doc
>
> On 10/1/25 10:01 AM, Sumit Gupta wrote:
>> Add sysfs interfaces for Minimum Performance, Maximum Performance
>> and Performance Limited Register in the cppc_cpufreq driver.
>>
>> Reviewed-by: Randy Dunlap <rdunlap@infradead.org>
>> Signed-off-by: Sumit Gupta <sumitg@nvidia.com>
>> ---
>>   .../ABI/testing/sysfs-devices-system-cpu      | 43 +++++++++++++++++++
>>   1 file changed, 43 insertions(+)
>>
>> diff --git a/Documentation/ABI/testing/sysfs-devices-system-cpu 
>> b/Documentation/ABI/testing/sysfs-devices-system-cpu
>> index ab8cd337f43a..82141b45d58c 100644
>> --- a/Documentation/ABI/testing/sysfs-devices-system-cpu
>> +++ b/Documentation/ABI/testing/sysfs-devices-system-cpu
>> @@ -327,6 +327,49 @@ Description:     Energy performance preference
>>
>>               This file is only present if the cppc-cpufreq driver is 
>> in use.
>>
>> +What: /sys/devices/system/cpu/cpuX/cpufreq/min_perf
>> +Date:                September 2025
>
> These dates will need to push out since this isn't 6.17 material.

Sure.


>
> That being said I have a general question to linux-doc.
>
> Why is this is date based?  I would expect a date is meaningless to
> anyone reads this documentation.  People who want to know if an
> interface is available would normally look at their kernel version to 
> tell.
>
> So wouldn't it make more sense for this field to be something like:
>
> Version: 6.19
>
>> +Contact:     linux-pm@vger.kernel.org
>> +Description: Minimum Performance
>> +
>> +             Read/write a 32 bits value from/to this file. This file
>> +             conveys the minimum performance level at which the 
>> platform
>> +             may run. Minimum performance may be set to any performance
>> +             value in the range [Lowest Performance, Highest 
>> Performance],
>
> How will a user discover the lowest -> highest range?
>
> IE I think you should document how to lookup those caps too.

Ok, will add the info about these nodes as below.

  Minimum performance may be set to any performance
  value in the range [Lowest Performance, Highest Performance],
  inclusive but must be set to a value that is less than or
  equal to that specified by the Maximum Performance Register.
  The range can be checked from nodes:
    /sys/devices/system/cpu/cpuX/acpi_cppc/highest_perf
    /sys/devices/system/cpu/cpuX/acpi_cppc/lowest_perf

Thank you,
Sumit


>
>> +             inclusive but must be set to a value that is less than or
>> +             equal to that specified by the Maximum Performance 
>> Register.
>> +
>> +             Writing to this file only has meaning when Autonomous 
>> Selection
>> +             is enabled.
>> +
>> +             This file is only present if the cppc-cpufreq driver is 
>> in use.
>> +
>> +What: /sys/devices/system/cpu/cpuX/cpufreq/max_perf
>> +Date:                September 2025
>> +Contact:     linux-pm@vger.kernel.org
>> +Description: Minimum Performance
>> +
>> +             Read/write a 32 bits value from/to this file. This file 
>> conveys
>> +             the maximum performance level at which the platform may 
>> run.
>> +             Maximum performance may be set to any performance value 
>> in the
>> +             range [Lowest Performance, Highest Performance], 
>> inclusive.
>> +
>> +             Writing to this file only has meaning when Autonomous 
>> Selection is
>> +             enabled.
>> +
>> +             This file is only present if the cppc-cpufreq driver is 
>> in use.
>> +
>> +What: /sys/devices/system/cpu/cpuX/cpufreq/perf_limited
>> +Date:                September 2025
>> +Contact:     linux-pm@vger.kernel.org
>> +Description: Minimum Performance
>> +
>> +             Read/write a 32 bits value from/to this file. This file 
>> indicates
>> +             to OSPM that an unpredictable event has limited processor
>> +             performance, and the delivered performance may be less 
>> than
>> +             desired/minimum performance.
>> +
>> +             This file is only present if the cppc-cpufreq driver is 
>> in use.
>>
>>   What: /sys/devices/system/cpu/cpu*/cache/index3/cache_disable_{0,1}
>>   Date:               August 2008
>