[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20251105113844.4086250-1-sumitg@nvidia.com>
Date: Wed, 5 Nov 2025 17:08:36 +0530
From: Sumit Gupta <sumitg@...dia.com>
To: <rafael@...nel.org>, <viresh.kumar@...aro.org>, <lenb@...nel.org>,
<robert.moore@...el.com>, <corbet@....net>, <pierre.gondois@....com>,
<zhenglifeng1@...wei.com>, <rdunlap@...radead.org>, <ray.huang@....com>,
<gautham.shenoy@....com>, <mario.limonciello@....com>, <perry.yuan@....com>,
<ionela.voinescu@....com>, <zhanjie9@...ilicon.com>,
<linux-pm@...r.kernel.org>, <linux-acpi@...r.kernel.org>,
<linux-doc@...r.kernel.org>, <acpica-devel@...ts.linux.dev>,
<linux-kernel@...r.kernel.org>
CC: <linux-tegra@...r.kernel.org>, <treding@...dia.com>,
<jonathanh@...dia.com>, <vsethi@...dia.com>, <ksitaraman@...dia.com>,
<sanjayc@...dia.com>, <nhartman@...dia.com>, <bbasu@...dia.com>,
<sumitg@...dia.com>
Subject: [PATCH v4 0/8] Enhanced autonomous selection and improvements
This patch series enhances the ACPI CPPC CPUFREQ driver with
comprehensive support for autonomous performance selection, expanded
runtime control interfaces and improvements.
It adds support for below:
- Expose sysfs to read/write the Minimum/Maximum Performance Registers
using frequency (kHz), with internal conversion to performance values.
Also, update the policy min/max accordingly.
/sys/.../cpufreq/policy*/min_perf and max_perf
- Expose sysfs to read/write the Performance Limited Register.
/sys/.../cpufreq/policy*/perf_limited
- When toggling autonomous selection, synchronize the policy limits
by updating the policy min/max.
- System-wide autonomous mode configuration via 'auto_sel_mode' boot
parameter. Mode can be switched dynamically on individual CPUs.
- Generic sysfs helper functions to reduce code duplication.
The patches are grouped as below:
- Patch 1, 2 & 3: Improvements. Can be applied independently.
- Patch 4: Sysfs to update min/max_perf. Can be applied independently.
- Patch 5: Sysfs to update perf_limited. Can be applied independently.
- Patch 6: add sysfs documentation. Depends on 'Patch 4 and 5'.
- Patch 7: sync policy min/max with auto_select. Depends on 'Patch 4'.
- Patch 8: Boot Parameter Support. Depends on 'Patch 4 and 7'.
---
v3[3] -> v4:
- patch1: changed param order for show/store and moved them above use.
- patch3: write epp and auto_sel registers independently.
- patch4:
- move mutex define outside macro.
- return EOPNOTSUPP error also to the caller to handle appropriately.
- change min/max_perf sysfs to accept freq, convert to perf internally
- patch6:
- update dates and corrected names in description.
- remove dependency of min/max_perf on auto_sel.
- add info about highest_perf and lowest_perf interfaces.
- update info about min/max_perf interface to read/write freq in kHz.
v2[2] -> v3:
- drop changes to rename exisiting APIs.
- add new 'patch 1' with generic helpers for sysfs show/store.
- used guard(mutex)() in place of mutex_lock/unlock.
- update kernel-parameters text to 'enable if supported by hardware'.
- disable auto_sel for all cpus if one fails in auto_sel_mode.
- use min/max_perf values if set from bootloader.
- general code improvements, error handling and reduced redundancies.
v1[1] -> v2:
- Move CPC register set sysfs from acpi_cppc to cpufreq directory.
- No sysfs to set auto_sel and epp. They were merged from diff series.
- Remove 'cppc_cpufreq_epp' instance of the 'cppc_cpufreq' driver.
- Synchronize perf_min/max with policy min/max.
- Update policy min/max Toggling auto_select.
- add sysfs to update the perf_limited register.
Sumit Gupta (8):
cpufreq: CPPC: Add generic helpers for sysfs show/store
ACPI: CPPC: Add cppc_get_perf() API to read performance controls
ACPI: CPPC: extend APIs to support auto_sel and epp
ACPI: CPPC: add APIs and sysfs interface for min/max_perf
ACPI: CPPC: add APIs and sysfs interface for perf_limited register
cpufreq: CPPC: Add sysfs for min/max_perf and perf_limited
cpufreq: CPPC: update policy min/max when toggling auto_select
cpufreq: CPPC: add autonomous mode boot parameter support
.../ABI/testing/sysfs-devices-system-cpu | 46 ++
.../admin-guide/kernel-parameters.txt | 12 +
drivers/acpi/cppc_acpi.c | 196 +++++++-
drivers/cpufreq/cppc_cpufreq.c | 425 ++++++++++++++++--
include/acpi/cppc_acpi.h | 39 +-
5 files changed, 676 insertions(+), 42 deletions(-)
[1] https://lore.kernel.org/lkml/20250211103737.447704-1-sumitg@nvidia.com/
[2] https://lore.kernel.org/lkml/20250823200121.1320197-1-sumitg@nvidia.com/
[3] https://lore.kernel.org/lkml/20251001150104.1275188-1-sumitg@nvidia.com/
--
2.34.1
Powered by blists - more mailing lists