.TH TURBOSTAT 8
.SH NAME
turbostat \- Report processor frequency and idle statistics
.SH SYNOPSIS
.ft B
.B turbostat
.RB [ "\-v" ]
.RB [ "\-M MSR#" ]
.RB command
.br
.B turbostat
.RB [ "\-v" ]
.RB [ "\-M MSR#" ]
.RB [ "\-i interval_sec" ]
.SH DESCRIPTION
\fBturbostat \fP reports processor topology, frequency
and idle power state statistics on modern X86 processors.
Either \fBcommand\fP is forked and statistics are printed
upon its completion, or statistics are printed periodically.

\fBturbostat \fP
requires that the processor
supports an "invariant" TSC, plus the APERF and MPERF MSRs.
\fBturbostat \fP will report idle cpu power state residency
on processors that additionally support C-state residency counters.

.SS Options
The \fB-v\fP option increases verbosity.
.PP
The \fB-M MSR#\fP option dumps the specified MSR,
in addition to the usual frequency and idle statistics.
.PP
The \fB-i interval_sec\fP option prints statistics every \fiinterval_sec\fP seconds.
The default is 5 seconds.
.PP
The \fBcommand\fP parameter forks \fBcommand\fP and upon its exit,
displays the statistics gathered since it was forked.
.PP
.SH FIELD DESCRIPTIONS
.nf
\fBpkg\fP processor package number.
\fBcore\fP processor core number.
\fBCPU\fP Linux CPU (logical processor) number.
\fB%c0\fP percent of the interval that the CPU retired instructions.
\fBGHz\fP average clock rate while the CPU was in c0 state.
\fBTSC\fP average GHz that the TSC ran during the entire interval.
\fB%c1, %c3, %c6\fP show the percentage residency in hardware core idle states.
\fB%pc3, %pc6\fP percentage residency in hardware package idle states.
.fi
.PP
.SH EXAMPLE
Without any parameters, turbostat prints out counters ever 5 seconds.
(override interval with "-i sec" option, or specify a command
for turbostat to fork).

The first row of statistics reflect the average for the entire system.
Subsequent rows show per-CPU statistics.

.nf
[root@x980]# ./turbostat
core CPU   %c0   GHz  TSC   %c1    %c3    %c6   %pc3   %pc6
          0.04 1.62 3.38   0.11   0.00  99.85   0.00  95.07
  0   0   0.04 1.62 3.38   0.06   0.00  99.90   0.00  95.07
  0   6   0.02 1.62 3.38   0.08   0.00  99.90   0.00  95.07
  1   2   0.10 1.62 3.38   0.29   0.00  99.61   0.00  95.07
  1   8   0.11 1.62 3.38   0.28   0.00  99.61   0.00  95.07
  2   4   0.01 1.62 3.38   0.01   0.00  99.98   0.00  95.07
  2  10   0.01 1.61 3.38   0.02   0.00  99.98   0.00  95.07
  8   1   0.07 1.62 3.38   0.15   0.00  99.78   0.00  95.07
  8   7   0.03 1.62 3.38   0.19   0.00  99.78   0.00  95.07
  9   3   0.01 1.62 3.38   0.02   0.00  99.98   0.00  95.07
  9   9   0.01 1.62 3.38   0.02   0.00  99.98   0.00  95.07
 10   5   0.01 1.62 3.38   0.13   0.00  99.86   0.00  95.07
 10  11   0.08 1.62 3.38   0.05   0.00  99.86   0.00  95.07
.fi
.SH VERBOSE EXAMPLE
The "-v" option adds verbosity to the output:

.nf
GenuineIntel 11 CPUID levels; family:model:stepping 0x6:2c:2 (6:44:2)
12 * 133 = 1600 MHz max efficiency
25 * 133 = 3333 MHz TSC frequency
26 * 133 = 3467 MHz max turbo 4 active cores
26 * 133 = 3467 MHz max turbo 3 active cores
27 * 133 = 3600 MHz max turbo 2 active cores
27 * 133 = 3600 MHz max turbo 1 active cores

.fi
The \fBmax efficiency\fP frequency, a.k.a. Low Frequency Mode, is the frequency
available at the minimum package voltage.  The \fBTSC frequency\fP is the nominal
maximum frequency of the processor if turbo-mode were not available.  This frequency
should be sustainable on all CPUs indefinitely, given nominal power and cooling.
The remaining rows show what maximum turbo frequency is possible
depending on the number of idle cores.  Note that this information is
not available on all processors.
.SH FORK EXAMPLE
If turbostat is invoked with a command, it will fork that command
and output the statistics gathered when the command exits.
eg. Here a cycle soaker is run on 1 CPU (see %c0) for a few seconds
until ^C while the other CPUs are mostly idle:

.nf
[root@x980 lenb]# ./turbostat cat /dev/zero > /dev/null

^Ccore CPU   %c0   GHz  TSC   %c1    %c3    %c6   %pc3   %pc6
           8.49 3.63 3.38  16.23   0.66  74.63   0.00   0.00
   0   0   1.22 3.62 3.38  32.18   0.00  66.60   0.00   0.00
   0   6   0.40 3.61 3.38  33.00   0.00  66.60   0.00   0.00
   1   2   0.11 3.14 3.38   0.19   3.95  95.75   0.00   0.00
   1   8   0.05 2.88 3.38   0.25   3.95  95.75   0.00   0.00
   2   4   0.00 3.13 3.38   0.02   0.00  99.98   0.00   0.00
   2  10   0.00 3.09 3.38   0.02   0.00  99.98   0.00   0.00
   8   1   0.04 3.50 3.38  14.43   0.00  85.54   0.00   0.00
   8   7   0.03 2.98 3.38  14.43   0.00  85.54   0.00   0.00
   9   3   0.00 3.16 3.38 100.00   0.00   0.00   0.00   0.00
   9   9  99.93 3.63 3.38   0.06   0.00   0.00   0.00   0.00
  10   5   0.01 2.82 3.38   0.08   0.00  99.91   0.00   0.00
  10  11   0.02 3.36 3.38   0.06   0.00  99.91   0.00   0.00
6.950866 sec

.fi
Above the cycle soaker drives cpu9 up 3.6 Ghz turbo limit
while the other processors are generally in various states of idle.

Note that cpu3 is an HT sibling sharing core9
with cpu9, and thus it is unable to get to an idle state
deeper than c1 while cpu9 is busy.

Note that turbostat reports average GHz of 3.61, while
the arithmetic average of the GHz column above is 3.24.
This is a weighted average, where the weight is %c0.  ie. it is the total number of
un-halted cycles elapsed per time divided by the number of CPUs.
.SH NOTES

.B "turbostat "
must be run as root.

.B "turbostat "
reads hardware counters, but doesn't write them.
So it will not interfere with the OS or other programs, including
multiple invocations of itself.

\fBturbostat \fP
may work poorly on Linux-2.6.20 through 2.6.29,
as \fBacpi-cpufreq \fPperiodically cleared the APERF and MPERF
in those kernels.

The APERF, MPERF MSRs are defined to count non-halted cycles.
Although it is not guaranteed by the architecture, turbostat assumes
that they count at TSC rate, which is true on all processors tested to date.

.SH REFERENCES
"Intel® Turbo Boost Technology
in Intel® Core™ Microarchitecture (Nehalem) Based Processors"
http://download.intel.com/design/processor/applnots/320354.pdf

"Intel® 64 and IA-32 Architectures Software Developer's Manual
Volume 3B: System Programming Guide"
http://www.intel.com/products/processor/manuals/

.SH FILES
.ta
.nf
/dev/cpu/*/msr
.fi

.SH "SEE ALSO"
msr(4), vmstat(8)
.PP
.SH AUTHORS
.nf
Written by Len Brown <len.brown@intel.com>
