Commit c6e2a4c9 authored by Rafael J. Wysocki's avatar Rafael J. Wysocki
Browse files

Merge branch 'pm-tools'

Merge power management utilities updates for 6.13-rc1:

 - Update pm-graph to v5.13 (Todd Brandt).

 - Add documentation for some recently introduced cpupower utility
   options (Tor Vic).

 - Make cpupower inform users where cpufreq-bench.conf should be located
   when opening it fails (Peng Fan).

 - Allow overriding cross-compiling env params in cpupower (Peng Fan).

 - Add compile_commands.json to .gitignore in cpupower (John B. Wyatt
   IV).

 - Improve disable c_state block in cpupower bindings and add a test to
   confirm that CPU state is disabled to it (John B. Wyatt IV).

 - Add Chinese Simplified translation to cpupower (Kieran Moy).

 - Add checks for xgettext and msgfmt to cpupower (Siddharth Menon).

* pm-tools:
  cpupower: add checks for xgettext and msgfmt
  cpupower: Add Chinese Simplified translation
  pm-graph v5.13
  pm: cpupower: bindings: Add test to confirm cpu state is disabled
  pm: cpupower: bindings: Improve disable c_state block
  pm: cpupower: gitignore: Add compile_commands.json
  pm: cpupower: Makefile: Allow overriding cross-compiling env params
  pm: cpupower: bench: print config file path when open cpufreq-bench.conf fails
  tools/power/cpupower: Add documentation for some recently introduced options
parents 923c256e 7954c4fd
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -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
+19 −7
Original line number Diff line number Diff line
@@ -57,7 +57,7 @@ LIB_MIN= 1

PACKAGE =			cpupower
PACKAGE_BUGREPORT =		linux-pm@vger.kernel.org
LANGUAGES = 			de fr it cs pt ka
LANGUAGES = 			de fr it cs pt ka zh_CN


# Directory definitions. These are default and most probably
@@ -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

@@ -218,17 +218,28 @@ else
endif
	$(QUIET) $(STRIPCMD) $@

ifeq (, $(shell which xgettext))
$(warning "Install xgettext to extract translatable strings.")
else
$(OUTPUT)po/$(PACKAGE).pot: $(UTIL_SRC)
	$(ECHO) "  GETTEXT " $@
	$(QUIET) xgettext --default-domain=$(PACKAGE) --add-comments \
		--keyword=_ --keyword=N_ $(UTIL_SRC) -p $(@D) -o $(@F)
endif

ifeq (, $(shell which msgfmt))
$(warning "Install msgfmt to generate binary message catalogs.")
else
$(OUTPUT)po/%.gmo: po/%.po
	$(ECHO) "  MSGFMT  " $@
	$(QUIET) msgfmt -o $@ po/$*.po
endif

create-gmo: ${GMO_FILES}

ifeq (, $(shell which msgmerge))
$(warning "Install msgmerge to merge translations.")
else
update-po: $(OUTPUT)po/$(PACKAGE).pot
	$(ECHO) "  MSGMRG  " $@
	$(QUIET) @for HLANG in $(LANGUAGES); do \
@@ -241,6 +252,7 @@ update-po: $(OUTPUT)po/$(PACKAGE).pot
			rm -f $(OUTPUT)po/$$HLANG.new.po; \
		fi; \
	done;
endif

compile-bench: $(OUTPUT)libcpupower.so.$(LIB_MAJ)
	@V=$(V) confdir=$(confdir) $(MAKE) -C bench O=$(OUTPUT)
+3 −2
Original line number Diff line number Diff line
@@ -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;
	}
+22 −6
Original line number Diff line number Diff line
@@ -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

+36 −2
Original line number Diff line number Diff line
@@ -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
Loading