diff mbox series

[GIT,PULL] cpupower update for Linux 6.13-rc1

Message ID c9e75c82-77c5-4f10-972f-14dbc2b70843@linuxfoundation.org (mailing list archive)
State In Next
Delegated to: Rafael Wysocki
Headers show
Series [GIT,PULL] cpupower update for Linux 6.13-rc1 | expand

Pull-request

git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux tags/linux-cpupower-6.13-rc1

Commit Message

Shuah Khan Oct. 11, 2024, 10:45 p.m. UTC
Hi Rafael,

Please pull the following cpupower update for Linux 6.13-rc1.

This cpupower update for Linux 6.13-rc1 consists of changes to:

-- bindings:
    - add generated files to gitignore
    - improve disable c_state block
    - new test to confirm cpu state is disabled

-- bench:
    - print config file path when open cpufreq-bench.conf fails

-- Makefile
    - override cross-compiling env params to make it easier for builds
      in Yocto environment.

-- add documentation for new EPP value change, amd_pstate mode change,
    and turbo-boost features.

diff is attached.

Sending it early to get the Yacto build available in next.

thanks,
-- Shuah

----------------------------------------------------------------
The following changes since commit 9852d85ec9d492ebef56dc5f229416c925758edc:

   Linux 6.12-rc1 (2024-09-29 15:06:19 -0700)

are available in the Git repository at:

   git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux tags/linux-cpupower-6.13-rc1

for you to fetch changes up to b6a2dbf88aa793a288f77e0eddb395f79594908f:

   pm: cpupower: bindings: Add test to confirm cpu state is disabled (2024-10-02 14:50:23 -0600)

----------------------------------------------------------------
linux-cpupower-6.13-rc1

This cpupower update for Linux 6.13-rc1 consists of changes to:

-- bindings:
    - add generated files to gitignore
    - improve disable c_state block
    - new test to confirm cpu state is disabled

-- bench:
    - print config file path when open cpufreq-bench.conf fails

-- Makefile
    - override cross-compiling env params to make it easier for builds
      in Yocto environment.

-- add documentation for new EPP value change, amd_pstate mode change,
    and turbo-boost features.

----------------------------------------------------------------
John B. Wyatt IV (3):
       pm: cpupower: gitignore: Add compile_commands.json
       pm: cpupower: bindings: Improve disable c_state block
       pm: cpupower: bindings: Add test to confirm cpu state is disabled

Peng Fan (2):
       pm: cpupower: bench: print config file path when open cpufreq-bench.conf fails
       pm: cpupower: Makefile: Allow overriding cross-compiling env params

Tor Vic (1):
       tools/power/cpupower: Add documentation for some recently introduced options

  tools/power/cpupower/.gitignore                    |  3 ++
  tools/power/cpupower/Makefile                      | 12 +++----
  tools/power/cpupower/bench/parse.c                 |  5 +--
  .../bindings/python/test_raw_pylibcpupower.py      | 28 ++++++++++++----
  tools/power/cpupower/man/cpupower-set.1            | 38 ++++++++++++++++++++--
  5 files changed, 70 insertions(+), 16 deletions(-)
----------------------------------------------------------------

Comments

Rafael J. Wysocki Oct. 15, 2024, 7:27 p.m. UTC | #1
Hi Shuah,

On Sat, Oct 12, 2024 at 12:45 AM Shuah Khan <skhan@linuxfoundation.org> wrote:
>
> Hi Rafael,
>
> Please pull the following cpupower update for Linux 6.13-rc1.
>
> This cpupower update for Linux 6.13-rc1 consists of changes to:
>
> -- bindings:
>     - add generated files to gitignore
>     - improve disable c_state block
>     - new test to confirm cpu state is disabled
>
> -- bench:
>     - print config file path when open cpufreq-bench.conf fails
>
> -- Makefile
>     - override cross-compiling env params to make it easier for builds
>       in Yocto environment.
>
> -- add documentation for new EPP value change, amd_pstate mode change,
>     and turbo-boost features.
>
> diff is attached.
>
> Sending it early to get the Yacto build available in next.
>
> thanks,
> -- Shuah
>
> ----------------------------------------------------------------
> The following changes since commit 9852d85ec9d492ebef56dc5f229416c925758edc:
>
>    Linux 6.12-rc1 (2024-09-29 15:06:19 -0700)
>
> are available in the Git repository at:
>
>    git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux tags/linux-cpupower-6.13-rc1
>
> for you to fetch changes up to b6a2dbf88aa793a288f77e0eddb395f79594908f:
>
>    pm: cpupower: bindings: Add test to confirm cpu state is disabled (2024-10-02 14:50:23 -0600)
>
> ----------------------------------------------------------------
> linux-cpupower-6.13-rc1
>
> This cpupower update for Linux 6.13-rc1 consists of changes to:
>
> -- bindings:
>     - add generated files to gitignore
>     - improve disable c_state block
>     - new test to confirm cpu state is disabled
>
> -- bench:
>     - print config file path when open cpufreq-bench.conf fails
>
> -- Makefile
>     - override cross-compiling env params to make it easier for builds
>       in Yocto environment.
>
> -- add documentation for new EPP value change, amd_pstate mode change,
>     and turbo-boost features.
>
> ----------------------------------------------------------------
> John B. Wyatt IV (3):
>        pm: cpupower: gitignore: Add compile_commands.json
>        pm: cpupower: bindings: Improve disable c_state block
>        pm: cpupower: bindings: Add test to confirm cpu state is disabled
>
> Peng Fan (2):
>        pm: cpupower: bench: print config file path when open cpufreq-bench.conf fails
>        pm: cpupower: Makefile: Allow overriding cross-compiling env params
>
> Tor Vic (1):
>        tools/power/cpupower: Add documentation for some recently introduced options
>
>   tools/power/cpupower/.gitignore                    |  3 ++
>   tools/power/cpupower/Makefile                      | 12 +++----
>   tools/power/cpupower/bench/parse.c                 |  5 +--
>   .../bindings/python/test_raw_pylibcpupower.py      | 28 ++++++++++++----
>   tools/power/cpupower/man/cpupower-set.1            | 38 ++++++++++++++++++++--
>   5 files changed, 70 insertions(+), 16 deletions(-)
> ----------------------------------------------------------------

Pulled, thanks!

Sorry for the delay, I'll add it to the linux-next branch tomorrow.
diff mbox series

Patch

diff --git a/tools/power/cpupower/.gitignore b/tools/power/cpupower/.gitignore
index 7677329c42a6..5113d5a7aee0 100644
--- a/tools/power/cpupower/.gitignore
+++ b/tools/power/cpupower/.gitignore
@@ -27,3 +27,6 @@  debug/i386/intel_gsic
 debug/i386/powernow-k8-decode
 debug/x86_64/centrino-decode
 debug/x86_64/powernow-k8-decode
+
+# Clang's compilation database file
+compile_commands.json
diff --git a/tools/power/cpupower/Makefile b/tools/power/cpupower/Makefile
index 6c02f401069e..e2a48af6fa2a 100644
--- a/tools/power/cpupower/Makefile
+++ b/tools/power/cpupower/Makefile
@@ -86,12 +86,12 @@  INSTALL_SCRIPT = ${INSTALL} -m 644
 # If you are running a cross compiler, you may want to set this
 # to something more interesting, like "arm-linux-".  If you want
 # to compile vs uClibc, that can be done here as well.
-CROSS = #/usr/i386-linux-uclibc/usr/bin/i386-uclibc-
-CC = $(CROSS)gcc
-LD = $(CROSS)gcc
-AR = $(CROSS)ar
-STRIP = $(CROSS)strip
-RANLIB = $(CROSS)ranlib
+CROSS ?= #/usr/i386-linux-uclibc/usr/bin/i386-uclibc-
+CC ?= $(CROSS)gcc
+LD ?= $(CROSS)gcc
+AR ?= $(CROSS)ar
+STRIP ?= $(CROSS)strip
+RANLIB ?= $(CROSS)ranlib
 HOSTCC = gcc
 MKDIR = mkdir
 
diff --git a/tools/power/cpupower/bench/parse.c b/tools/power/cpupower/bench/parse.c
index e63dc11fa3a5..080678d9d74e 100644
--- a/tools/power/cpupower/bench/parse.c
+++ b/tools/power/cpupower/bench/parse.c
@@ -4,6 +4,7 @@ 
  *  Copyright (C) 2008 Christian Kornacker <ckornacker@suse.de>
  */
 
+#include <errno.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <stdarg.h>
@@ -165,8 +166,8 @@  int prepare_config(const char *path, struct config *config)
 
 	configfile = fopen(path, "r");
 	if (configfile == NULL) {
-		perror("fopen");
-		fprintf(stderr, "error: unable to read configfile\n");
+		fprintf(stderr, "error: unable to read configfile: %s, %s\n",
+			path, strerror(errno));
 		free(config);
 		return 1;
 	}
diff --git a/tools/power/cpupower/bindings/python/test_raw_pylibcpupower.py b/tools/power/cpupower/bindings/python/test_raw_pylibcpupower.py
index 3d6f62b9556a..ca5aa46c9b20 100755
--- a/tools/power/cpupower/bindings/python/test_raw_pylibcpupower.py
+++ b/tools/power/cpupower/bindings/python/test_raw_pylibcpupower.py
@@ -15,22 +15,38 @@  else:
     print(f"cstate count error: return code: {cpu_cstates_count}")
 
 """
-Disable cstate (will fail if the above is 0, ex: a virtual machine)
+Disable cstate (will fail if the above returns is under 1, ex: a virtual machine)
 """
 cstate_disabled = p.cpuidle_state_disable(0, 0, 1)
-if cpu_cstates_count == 0:
-    print(f"CPU 0 has {cpu_cstates_count} c-states")
-else:
-    print(f"cstate count error: return code: {cpu_cstates_count}")
 
 match cstate_disabled:
     case 0:
         print(f"CPU state disabled")
     case -1:
         print(f"Idlestate not available")
+    case -2:
+        print(f"Disabling is not supported by the kernel")
+    case -3:
+        print(f"No write access to disable/enable C-states: try using sudo")
     case _:
-        print(f"Not documented")
+        print(f"Not documented: {cstate_disabled}")
+
+"""
+Test cstate is disabled
+"""
+is_cstate_disabled = p.cpuidle_is_state_disabled(0, 0)
 
+match is_cstate_disabled:
+    case 1:
+        print(f"CPU is disabled")
+    case 0:
+        print(f"CPU is enabled")
+    case -1:
+        print(f"Idlestate not available")
+    case -2:
+        print(f"Disabling is not supported by kernel")
+    case _:
+        print(f"Not documented: {is_cstate_disabled}")
 
 # Pointer example
 
diff --git a/tools/power/cpupower/man/cpupower-set.1 b/tools/power/cpupower/man/cpupower-set.1
index 2bcc696f4496..500653ef98c7 100644
--- a/tools/power/cpupower/man/cpupower-set.1
+++ b/tools/power/cpupower/man/cpupower-set.1
@@ -3,7 +3,7 @@ 
 cpupower\-set \- Set processor power related kernel or hardware configurations
 .SH SYNOPSIS
 .ft B
-.B cpupower set [ \-b VAL ]
+.B cpupower set [ \-b VAL | \-e POLICY | \-m MODE | \-t BOOL ]
 
 
 .SH DESCRIPTION
@@ -19,7 +19,7 @@  described in the Options sections.
 Use \fBcpupower info \fP to read out current settings and whether they are
 supported on the system at all.
 
-.SH Options
+.SH OPTIONS
 .PP
 \-\-perf-bias, \-b
 .RS 4
@@ -56,6 +56,40 @@  Use \fBcpupower -c all info -b\fP to verify.
 This options needs the msr kernel driver (CONFIG_X86_MSR) loaded.
 .RE
 
+.PP
+\-\-epp, \-e
+.RS 4
+Sets the energy performance policy preference on supported Intel or AMD
+processors which use the Intel or AMD P-State cpufreq driver respectively.
+
+Available policies can be found with
+\fBcat /sys/devices/system/cpu/cpufreq/policy0/energy_performance_available_preferences\fP :
+.RS 4
+default performance balance_performance balance_power power
+.RE
+
+.RE
+
+.PP
+\-\-amd\-pstate\-mode, \-m
+.RS 4
+Sets the AMD P-State mode for supported AMD processors.
+Available modes are "active", "guided" or "passive".
+
+Refer to the AMD P-State kernel documentation for further information.
+
+.RE
+
+.PP
+\-\-turbo\-boost, \-t
+.RS 4
+This option is used to enable or disable the turbo boost feature on
+supported Intel and AMD processors.
+
+This option takes as parameter either \fB1\fP to enable, or \fB0\fP to disable the feature.
+
+.RE
+
 .SH "SEE ALSO"
 cpupower-info(1), cpupower-monitor(1), powertop(1)
 .PP