Home / Alt manpages / cpupower-info(1)

  • cpupower-info(1)
  • User command
  • linux

Read CPU Power Settings with cpupower info

cpupower info gives you a read-only look at the processor power settings Linux exposes.

This guide tells apart a missing tool, an unsupported feature and a result that only describes CPU 0. Allow about ten minutes. You need a shell and the Linux tools package that provides cpupower. No command in this guide changes a setting.

1. Know which command the manpage describes

The manpage is named cpupower-info(1), but its command syntax is cpupower info. It is normally a subcommand of the cpupower front end, not a separate executable called cpupower-info. That distinction is the first useful check when a shell reports that a command cannot be found.

Check the front end and the package metadata:

$ command -v cpupower
/usr/bin/cpupower
$ dpkg-query -W -f='${Package} ${Version}\n' linux-tools-common
linux-tools-common 6.8.0-139.139

The path and version will vary. On this host the generic manpage is installed, but the executable warns that the kernel-specific cpupower tool is missing. Install the matching kernel tools package through your normal system administration process if your machine gives the same warning. Do not treat the presence of a manpage as proof that the runnable binary is available.

Checkpoint

You should have either a usable cpupower path or a clear package mismatch to resolve before continuing.

2. Run the default inspection

Run the inspection without elevated privileges first:

$ cpupower info

This reads kernel configuration values or processor registers that affect power-saving policy. The exact lines depend on the processor, kernel, drivers and permissions on the machine. A successful run may show several settings, while an unsupported feature can be reported as unavailable. Read the labels rather than assuming every line applies to every CPU.

The important default is scope: cpupower info displays values for core zero only. It does not silently provide a complete inventory of every logical CPU. Capture the exit status when using it in a script:

$ cpupower info
$ status=$?
$ printf 'cpupower info exit status: %s\n' "$status"
cpupower info exit status: 0

The displayed status is an example of a successful run, not a promise that every host returns zero. Keep a non-zero status visible in monitoring or troubleshooting instead of parsing partial output as if it were complete.

3. Inspect every CPU when the scope matters

Use the global CPU selector when you need to compare cores:

$ cpupower --cpu all info

The front end also accepts the short form:

$ cpupower -c all info

These commands ask for all cores. For a smaller comparison, use a CPU list such as 0-3 or 1,3,5-7:

$ cpupower --cpu 0-3 info

Do not confuse a CPU list with a physical socket list. The selector follows the kernel's logical CPU numbering, and hardware may share or mirror a setting across related CPUs. If the values appear identical, that is evidence to investigate, not proof that the command ignored the selector.

Checkpoint

Repeat the inspection with --cpu all whenever you are recording a machine-wide baseline or comparing a change across cores.

4. Query the performance-bias register separately

The -b option asks for performance-bias information on systems that support it:

$ cpupower info -b
$ cpupower --cpu all info -b

This is an observation command. The related cpupower set -b VALUE operation is the one that changes a performance-bias register, so do not substitute set into a read-only diagnostic script. The documented value range for setting the bias is 0 to 15, from maximum performance towards maximum energy efficiency, but that does not mean every processor implements the feature.

The bias query may require the processor's MSR support and driver. If it is unavailable, check the command's error and exit status. A failed bias query is not evidence that every other power-related value is unreadable.

5. Diagnose the common failures

  • Command not found. If the shell says cpupower: command not found, the executable is absent from PATH.
  • Wrapper warns cpupower is not available for the running kernel. The generic package and the kernel-specific tools are out of step: check the running kernel and the package names suggested by your distribution.
$ uname -r
$ dpkg-query -W -f='${Package} ${Version}\n' linux-tools-common
$ cpupower --version

Package installation is a system change and may require elevated privileges. Use your distribution's approved package workflow, then rerun command -v cpupower and cpupower --version. There is nothing to undo in the inspection commands themselves.

If the command runs but a value is unsupported, keep that result distinct from a missing driver or insufficient permission. The manpage deliberately describes the command at a high level; the hardware and kernel decide which registers can be read. Avoid enabling an MSR driver or changing boot parameters just to make a diagnostic line appear, especially on a production host.

6. Keep read and write operations separate

cpupower info is for reading. cpupower set changes kernel settings or hardware registers, and its effects can be system-wide or hardware-dependent. Do not copy a value from an information report into a set command without first confirming the processor support, the intended CPU scope and a rollback plan. A setting on one CPU can affect related CPUs because of hardware restrictions.

For a repeatable read-only report, save the command output without changing the machine:

$ cpupower --cpu all info > cpupower-info.txt
$ test -s cpupower-info.txt && printf '%s\n' 'report captured'
report captured

The output file is ordinary local data. Remove it with rm -- cpupower-info.txt when it is no longer needed, or retain it as part of your approved diagnostic record. Do not publish it blindly: hardware details and kernel information can be sensitive in some environments.

Done means

  • Right command used. You used cpupower info, not an assumed cpupower-info executable.
  • Tool version checked. You checked the installed tool version and distinguished generic from kernel-specific packages.
  • Scope known. You know that the default report describes core zero only.
  • Whole machine covered where needed. You used --cpu all when a machine-wide result was required.
  • Read and write kept apart. You treated -b as a read and kept it separate from the write-capable cpupower set command.
  • Results recorded honestly. You recorded exit status and unsupported features instead of guessing from incomplete output.