public inbox for linux-acpi@vger.kernel.org
 help / color / mirror / Atom feed
From: Sumit Gupta <sumitg@nvidia.com>
To: <rafael@kernel.org>, <viresh.kumar@linaro.org>, <lenb@kernel.org>,
	<robert.moore@intel.com>, <corbet@lwn.net>,
	<linux-pm@vger.kernel.org>, <linux-acpi@vger.kernel.org>,
	<linux-doc@vger.kernel.org>, <acpica-devel@lists.linux.dev>,
	<linux-kernel@vger.kernel.org>
Cc: <linux-tegra@vger.kernel.org>, <treding@nvidia.com>,
	<jonathanh@nvidia.com>, <sashal@nvidia.com>, <vsethi@nvidia.com>,
	<ksitaraman@nvidia.com>, <sanjayc@nvidia.com>, <bbasu@nvidia.com>,
	<sumitg@nvidia.com>
Subject: [Patch 0/5] Support Autonomous Selection mode in cppc_cpufreq
Date: Tue, 11 Feb 2025 16:07:32 +0530	[thread overview]
Message-ID: <20250211103737.447704-1-sumitg@nvidia.com> (raw)

This patchset supports the Autonomous Performance Level Selection mode
in the cppc_cpufreq driver. The feature is part of the existing CPPC
specification and already present in Intel and AMD specific pstate
cpufreq drivers. The patchset adds the support in generic acpi cppc
cpufreq driver.

It adds a new 'cppc_cpufreq_epp' instance of the 'cppc_cpufreq' driver
for supporting the Autonomous Performance Level Selection and Energy
Performance Preference (EPP).
Autonomous selection will get enabled during boot if 'cppc_auto_sel'
boot argument is passed or the 'Autonomous Selection Enable' register
is already set before kernel boot. When enabled, the hardware is
allowed to autonomously select the CPU frequency within the min and
max perf boundaries using the Engergy Performance Preference hints.
The EPP values range from '0x0'(performance preference) to '0xFF'
(energy efficiency preference).

It also exposes the acpi_cppc sysfs nodes to update the epp, auto_sel
and {min|max_perf} registers for changing the hints to hardware for
Autonomous selection.

In a followup patch, plan to add support to dynamically switch the
cpufreq driver instance from 'cppc_cpufreq_epp' to 'cppc_cpufreq' and
vice-versa without reboot.

The patches are divided into below groups:
- Patch [1-2]: Improvements. Can be applied independently.
- Patch [3-4]: sysfs store nodes for Auto mode. Depend on Patch [1-2].
- Patch [5]: Support for 'cppc_cpufreq_epp'. Uses a macro from [3].

Sumit Gupta (5):
  ACPI: CPPC: add read perf ctrls api and rename few existing
  ACPI: CPPC: expand macro to create store acpi_cppc sysfs node
  ACPI: CPPC: support updating epp, auto_sel and {min|max_perf} from
    sysfs
  Documentation: ACPI: add autonomous mode ctrls info in cppc_sysfs.txt
  cpufreq: CPPC: Add cppc_cpufreq_epp instance for Autonomous mode

 Documentation/admin-guide/acpi/cppc_sysfs.rst |  28 ++
 .../admin-guide/kernel-parameters.txt         |  11 +
 drivers/acpi/cppc_acpi.c                      | 311 ++++++++++++++++--
 drivers/cpufreq/cppc_cpufreq.c                | 260 ++++++++++++++-
 include/acpi/cppc_acpi.h                      |  19 +-
 5 files changed, 572 insertions(+), 57 deletions(-)

-- 
2.25.1


             reply	other threads:[~2025-02-11 10:38 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-02-11 10:37 Sumit Gupta [this message]
2025-02-11 10:37 ` [Patch 1/5] ACPI: CPPC: add read perf ctrls api and rename few existing Sumit Gupta
2025-02-12  8:03   ` kernel test robot
2025-02-12  8:25   ` kernel test robot
2025-02-11 10:37 ` [Patch 2/5] ACPI: CPPC: expand macro to create store acpi_cppc sysfs node Sumit Gupta
2025-02-11 10:37 ` [Patch 3/5] ACPI: CPPC: support updating epp, auto_sel and {min|max_perf} from sysfs Sumit Gupta
2025-02-24 10:24   ` Pierre Gondois
2025-03-14 13:11     ` Sumit Gupta
2025-02-11 10:37 ` [Patch 4/5] Documentation: ACPI: add autonomous mode ctrls info in cppc_sysfs.txt Sumit Gupta
2025-02-11 10:37 ` [Patch 5/5] cpufreq: CPPC: Add cppc_cpufreq_epp instance for Autonomous mode Sumit Gupta
2025-02-12  9:27   ` kernel test robot
2025-02-11 10:44 ` [Patch 0/5] Support Autonomous Selection mode in cppc_cpufreq Viresh Kumar
2025-02-11 12:01   ` zhenglifeng (A)
2025-02-11 14:08     ` Sumit Gupta
2025-02-12 10:52       ` zhenglifeng (A)
2025-02-14  7:08         ` Sumit Gupta
2025-02-18 19:23           ` Rafael J. Wysocki
2025-02-21 13:14             ` Sumit Gupta
2025-02-22 10:06               ` zhenglifeng (A)
2025-02-26 10:22               ` zhenglifeng (A)
2025-03-14 12:48                 ` Sumit Gupta
2025-04-01 13:56                   ` zhenglifeng (A)
2025-04-19  7:44                     ` zhenglifeng (A)
2025-04-27  6:23                       ` zhenglifeng (A)
2025-04-30 15:00                         ` Sumit Gupta

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=20250211103737.447704-1-sumitg@nvidia.com \
    --to=sumitg@nvidia.com \
    --cc=acpica-devel@lists.linux.dev \
    --cc=bbasu@nvidia.com \
    --cc=corbet@lwn.net \
    --cc=jonathanh@nvidia.com \
    --cc=ksitaraman@nvidia.com \
    --cc=lenb@kernel.org \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=linux-tegra@vger.kernel.org \
    --cc=rafael@kernel.org \
    --cc=robert.moore@intel.com \
    --cc=sanjayc@nvidia.com \
    --cc=sashal@nvidia.com \
    --cc=treding@nvidia.com \
    --cc=viresh.kumar@linaro.org \
    --cc=vsethi@nvidia.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