Monitoring/controlling Intel Turbo Boost in Linux

Is there a nice way to monitor and/or control Intel Turbo Boost technology on Nehalem processors from a Linux host? I'm looking to do this RHEL/CentOS 5.5 hosts running stock or Realtime MRG kernels.

Has anyone here found a good way to leverage Turbo Boost in your environments?


i7z is a good tool for monitoring Intel Turbo Boost for Intel CPUs that support it (i7 and later) on Linux.

i7z screenshot of Turbo Boost at work

If it is working, you will see the current frequency change as you add load to the CPUs, due to the multiplier increasing dynamically under load. Try BurnP6 for this.

Basic description (pdf) of power states:

C0 - active state. While in C0, instructions are being executed by the core. For Intel® Turbo Boost technology, a core in C0 is considered an active core.

C1 - halt state. While in C1, no instructions are being executed. For Intel® Turbo Boost technology, a core in C1 is considered an active core.

C3 - While in C3 the core PLLs are turned off, and all the core caches are flushed. For Intel® Turbo Boost technology, a core in C3 is considered an inactive core.

C6 - While in C6, the core PLLs are turned off, the core caches are flushed and the core state is saved to the Last Level Cache. Power Gates are used to reduce power consumption to close to zero. For Intel® Turbo Boost technology, a core in C6 is considered an inactive core.

C7 - New, slightly deeper sleep state introduced with Sandy Bridge and later.

Be warned that C6 and C7 states are "deep" sleep modes and may have some latency penalties that might not be great for certain types of server workloads. For more detail see Intel's Power Management for Embedded Apps (pdf).

Turbo Boost is P0 state, kind of the opposite of sleep. It scales the CPU multipliers up when only a few cores are active, but ramps down under extreme multi-core load to prevent thermal issues with the CPU.

In general ACPI support must be enabled in Linux for i7z to show correct temps and Turbo Boost (dynamic multipliers above the default) to work. You can find useful information on how to enable Intel Turbo Boost on Linux in this post.