Home / Alt manpages / cpupower-idle-info(1)

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

Read Linux CPU Idle States with cpupower

You will finish with a read-only check of the CPU idle states exposed by Linux, a way to inspect a selected set of cores, and a reliable method for interpreting the counters. The examples follow the cpupower-idle-info(1) manpage installed with linux-tools-common version 6.8.0-139.139.

Allow about ten minutes. You need a shell and the matching cpupower tools for the running kernel. No command in this guide changes a CPU setting, disables an idle state, restarts a service or requires elevated privileges. The command reads kernel-exported information, so the figures will change while the machine runs.

1. Check that the matching tool is installed

Start by asking the wrapper which tool package it can find:

$ cpupower --version
$ cpupower help

A working installation prints the package version or a command summary. On the reference machine, the wrapper is present but the kernel-specific executable is absent. It reports a warning naming linux-tools-6.8.0-139-generic and exits with status 2. That is a packaging issue, not evidence that the CPU has no idle states.

Checkpoint: run uname -r and compare the kernel release with the package named in the warning. If the tool is missing, an administrator can install the matching package, but that changes the system and is outside this read-only check. Do not guess a package version from a different kernel.

2. Display the default idle information

Run the idle-info subcommand without options:

$ cpupower idle-info

The output is per-CPU idle information. By default, the command displays core zero only. It reads state descriptions and statistics from paths below /sys/devices/system/cpu/cpu*/cpuidle/state* and from the system cpuidle directory. A typical machine may report names such as POLL, C1, C1E, C3 and C6, but the available names are platform, firmware and driver dependent.

Do not treat a state name as a promise about the processor. The BIOS or hardware can export states that do not exactly describe the physical capability, and hardware may override a kernel request. The POLL state is a busy loop rather than a power-saving hardware state on x86.

3. Inspect specific cores

Use the global -c or --cpu option before the command when you need other cores:

$ cpupower -c 0,2,4 idle-info
$ cpupower --cpu 0-3 idle-info

The CPU list syntax accepts individual numbers, ranges, stepped ranges and all. For example, 0-7:2 selects 0, 2, 4 and 6. Keep the list explicit when comparing a workload pinned to a subset of CPUs. A broad all query can produce a large report and makes it easier to overlook that the default is only core zero.

Checkpoint: record the selected list alongside the output. Comparing core zero with a later all-core report can otherwise look like a change in firmware or scheduling when it is only a different query.

4. Request a compact summary

Use -f or --silent when you only need the summary of available C-states:

$ cpupower idle-info --silent

This is useful for a quick inventory, but it deliberately hides detail that may matter during diagnosis. Use the normal report when you need per-state descriptions or counters. The option is a display choice, not a power-management switch.

5. Read counters without overclaiming

Idle statistics are updated when the kernel enters or leaves a state. A system that is very quiet or very busy can therefore show a snapshot that is not representative of a longer interval. Run the same command twice with a known interval if you want to see whether the figures are moving:

cpupower idle-info > /tmp/idle-before.txt
sleep 5
cpupower idle-info > /tmp/idle-after.txt
diff -u /tmp/idle-before.txt /tmp/idle-after.txt

The files under /tmp are temporary observation data. Remove them when they are no longer useful with rm -- /tmp/idle-before.txt /tmp/idle-after.txt. This is reversible only in the sense that the next measurement can be collected; the command does not restore an old counter value.

For hardware residency measurements on recent x86 systems, use the separate cpupower monitor tool when it is installed. Idle-info reports the cpuidle subsystem's view, not a guarantee that hardware spent exactly that time in each state.

6. Avoid the obsolete proc format

The -e or --proc option prints the old /proc/acpi/processor/*/power format. The manpage marks it as deprecated and says the kernel interface has been removed for some time. Do not build new scripts around it. If an old script still requires that output, treat it as migration work and verify the target kernel rather than assuming the option will work.

Done means

  • The matching kernel-specific cpupower executable is installed, or its absence is recorded as a packaging failure.
  • You know that an unqualified query reports core zero only.
  • Any selected CPU list is written down with the measurement.
  • You distinguish changing cpuidle statistics from hardware residency measurements.
  • You use --silent only for a compact report and avoid the deprecated proc format for new work.