[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20251001150104.1275188-1-sumitg@nvidia.com>
Date: Wed, 1 Oct 2025 20:30:56 +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>,
<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>, <bbasu@...dia.com>, <sumitg@...dia.com>
Subject: [PATCH v3 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 Mininum/Maximum Performance Register
and 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 syfs 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'.
---
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 | 43 ++
.../admin-guide/kernel-parameters.txt | 12 +
drivers/acpi/cppc_acpi.c | 184 +++++++-
drivers/cpufreq/cppc_cpufreq.c | 392 ++++++++++++++++--
include/acpi/cppc_acpi.h | 39 +-
5 files changed, 629 insertions(+), 41 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/
--
2.34.1
Powered by blists - more mailing lists