 fc04cc67ea
			
		
	
	
	fc04cc67ea
	
	
	
		
			
			Use 8 columns for each number ouput. We don't fit into 80 columns on most machines, so keep the format simple. Print frequency in MHz instead of GHz. We've got 8 columns now, so use them to show low frequency in a more natural unit. Many users didn't understand what %c0 meant, so re-name it to be %Busy. Add Avg_MHz column, which is the frequency that many users expect to see -- the total number of cycles executed over the measurement interval. People found the previous GHz to be confusing, since it was the speed only over the non-idle interval. That measurement has been re-named Bzy_MHz. Suggested-by: Dirk J. Brandewie Signed-off-by: Len Brown <len.brown@intel.com>
		
			
				
	
	
		
			221 lines
		
	
	
	
		
			9.9 KiB
			
		
	
	
	
		
			Groff
		
	
	
	
	
	
			
		
		
	
	
			221 lines
		
	
	
	
		
			9.9 KiB
			
		
	
	
	
		
			Groff
		
	
	
	
	
	
| .TH TURBOSTAT 8
 | |
| .SH NAME
 | |
| turbostat \- Report processor frequency and idle statistics
 | |
| .SH SYNOPSIS
 | |
| .ft B
 | |
| .B turbostat
 | |
| .RB [ Options ]
 | |
| .RB command
 | |
| .br
 | |
| .B turbostat
 | |
| .RB [ Options ]
 | |
| .RB [ "\-i interval_sec" ]
 | |
| .SH DESCRIPTION
 | |
| \fBturbostat \fP reports processor topology, frequency,
 | |
| idle power-state statistics, temperature and power on modern X86 processors.
 | |
| Either \fBcommand\fP is forked and statistics are printed
 | |
| upon its completion, or statistics are printed periodically.
 | |
| 
 | |
| \fBturbostat \fP
 | |
| must be run on root, and
 | |
| minimally requires that the processor
 | |
| supports an "invariant" TSC, plus the APERF and MPERF MSRs.
 | |
| Additional information is reported depending on hardware counter support.
 | |
| 
 | |
| .SS Options
 | |
| The \fB-p\fP option limits output to the 1st thread in 1st core of each package.
 | |
| .PP
 | |
| The \fB-P\fP option limits output to the 1st thread in each Package.
 | |
| .PP
 | |
| The \fB-S\fP option limits output to a 1-line System Summary for each interval.
 | |
| .PP
 | |
| The \fB-v\fP option increases verbosity.
 | |
| .PP
 | |
| The \fB-c MSR#\fP option includes the delta of the specified 32-bit MSR counter.
 | |
| .PP
 | |
| The \fB-C MSR#\fP option includes the delta of the specified 64-bit MSR counter.
 | |
| .PP
 | |
| The \fB-m MSR#\fP option includes the the specified 32-bit MSR value.
 | |
| .PP
 | |
| The \fB-M MSR#\fP option includes the the specified 64-bit MSR value.
 | |
| .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
 | |
| \fBPackage\fP processor package number.
 | |
| \fBCore\fP processor core number.
 | |
| \fBCPU\fP Linux CPU (logical processor) number.
 | |
| Note that multiple CPUs per core indicate support for Intel(R) Hyper-Threading Technology.
 | |
| \fBAVG_MHz\fP number of cycles executed divided by time elapsed.
 | |
| \fB%Buzy\fP percent of the interval that the CPU retired instructions, aka. % of time in "C0" state.
 | |
| \fBBzy_MHz\fP average clock rate while the CPU was busy (in "c0" state).
 | |
| \fBTSC_MHz\fP average MHz that the TSC ran during the entire interval.
 | |
| \fBCPU%c1, CPU%c3, CPU%c6, CPU%c7\fP show the percentage residency in hardware core idle states.
 | |
| \fBCoreTmp\fP Degrees Celsius reported by the per-core Digital Thermal Sensor.
 | |
| \fBPkgTtmp\fP Degrees Celsius reported by the per-package Package Thermal Monitor.
 | |
| \fBPkg%pc2, Pkg%pc3, Pkg%pc6, Pkg%pc7\fP percentage residency in hardware package idle states.
 | |
| \fBPkgWatt\fP Watts consumed by the whole package.
 | |
| \fBCorWatt\fP Watts consumed by the core part of the package.
 | |
| \fBGFXWatt\fP Watts consumed by the Graphics part of the package -- available only on client processors.
 | |
| \fBRAMWatt\fP Watts consumed by the DRAM DIMMS -- available only on server processors.
 | |
| \fBPKG_%\fP percent of the interval that RAPL throttling was active on the Package.
 | |
| \fBRAM_%\fP percent of the interval that RAPL throttling was active on DRAM.
 | |
| .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 is a summary for the entire system.
 | |
| For residency % columns, the summary is a weighted average.
 | |
| For Temperature columns, the summary is the column maximum.
 | |
| For Watts columns, the summary is a system total.
 | |
| Subsequent rows show per-CPU statistics.
 | |
| 
 | |
| .nf
 | |
| [root@ivy]# ./turbostat
 | |
|     Core     CPU Avg_MHz   %Busy Bzy_MHz TSC_MHz     SMI  CPU%c1  CPU%c3  CPU%c6  CPU%c7 CoreTmp  PkgTmp Pkg%pc2 Pkg%pc3 Pkg%pc6 Pkg%pc7 PkgWatt CorWatt GFXWatt 
 | |
|        -       -       6    0.36    1596    3492       0    0.59    0.01   99.04    0.00      23      24   23.82    0.01   72.47    0.00    6.40    1.01    0.00
 | |
|        0       0       9    0.58    1596    3492       0    0.28    0.01   99.13    0.00      23      24   23.82    0.01   72.47    0.00    6.40    1.01    0.00
 | |
|        0       4       1    0.07    1596    3492       0    0.79
 | |
|        1       1      10    0.65    1596    3492       0    0.59    0.00   98.76    0.00      23
 | |
|        1       5       5    0.28    1596    3492       0    0.95
 | |
|        2       2      10    0.66    1596    3492       0    0.41    0.01   98.92    0.00      23
 | |
|        2       6       2    0.10    1597    3492       0    0.97
 | |
|        3       3       3    0.20    1596    3492       0    0.44    0.00   99.37    0.00      23
 | |
|        3       7       5    0.31    1596    3492       0    0.33
 | |
| .fi
 | |
| .SH VERBOSE EXAMPLE
 | |
| The "-v" option adds verbosity to the output:
 | |
| 
 | |
| .nf
 | |
| [root@ivy]# turbostat -v
 | |
| turbostat v3.0 November 23, 2012 - Len Brown <lenb@kernel.org>
 | |
| CPUID(0): GenuineIntel 13 CPUID levels; family:model:stepping 0x6:3a:9 (6:58:9)
 | |
| CPUID(6): APERF, DTS, PTM, EPB
 | |
| RAPL: 851 sec. Joule Counter Range
 | |
| cpu0: MSR_NHM_PLATFORM_INFO: 0x81010f0012300
 | |
| 16 * 100 = 1600 MHz max efficiency
 | |
| 35 * 100 = 3500 MHz TSC frequency
 | |
| cpu0: MSR_NHM_SNB_PKG_CST_CFG_CTL: 0x1e008402 (UNdemote-C3, UNdemote-C1, demote-C3, demote-C1, locked: pkg-cstate-limit=2: pc6-noret)
 | |
| cpu0: MSR_NHM_TURBO_RATIO_LIMIT: 0x25262727
 | |
| 37 * 100 = 3700 MHz max turbo 4 active cores
 | |
| 38 * 100 = 3800 MHz max turbo 3 active cores
 | |
| 39 * 100 = 3900 MHz max turbo 2 active cores
 | |
| 39 * 100 = 3900 MHz max turbo 1 active cores
 | |
| cpu0: MSR_IA32_ENERGY_PERF_BIAS: 0x00000006 (balanced)
 | |
| cpu0: MSR_RAPL_POWER_UNIT: 0x000a1003 (0.125000 Watts, 0.000015 Joules, 0.000977 sec.)
 | |
| cpu0: MSR_PKG_POWER_INFO: 0x01e00268 (77 W TDP, RAPL 60 - 0 W, 0.000000 sec.)
 | |
| cpu0: MSR_PKG_POWER_LIMIT: 0x830000148268 (UNlocked)
 | |
| cpu0: PKG Limit #1: ENabled (77.000000 Watts, 1.000000 sec, clamp DISabled)
 | |
| cpu0: PKG Limit #2: ENabled (96.000000 Watts, 0.000977* sec, clamp DISabled)
 | |
| cpu0: MSR_PP0_POLICY: 0
 | |
| cpu0: MSR_PP0_POWER_LIMIT: 0x00000000 (UNlocked)
 | |
| cpu0: Cores Limit: DISabled (0.000000 Watts, 0.000977 sec, clamp DISabled)
 | |
| cpu0: MSR_PP1_POLICY: 0
 | |
| cpu0: MSR_PP1_POWER_LIMIT: 0x00000000 (UNlocked)
 | |
| cpu0: GFX Limit: DISabled (0.000000 Watts, 0.000977 sec, clamp DISabled)
 | |
| cpu0: MSR_IA32_TEMPERATURE_TARGET: 0x00691400 (105 C)
 | |
| cpu0: MSR_IA32_PACKAGE_THERM_STATUS: 0x884e0000 (27 C)
 | |
| cpu0: MSR_IA32_THERM_STATUS: 0x88560000 (19 C +/- 1)
 | |
| cpu1: MSR_IA32_THERM_STATUS: 0x88560000 (19 C +/- 1)
 | |
| cpu2: MSR_IA32_THERM_STATUS: 0x88540000 (21 C +/- 1)
 | |
| cpu3: MSR_IA32_THERM_STATUS: 0x884e0000 (27 C +/- 1)
 | |
|  ...
 | |
| .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@ivy: turbostat cat /dev/zero > /dev/null
 | |
| ^C
 | |
|     Core     CPU Avg_MHz   %Busy Bzy_MHz TSC_MHz     SMI  CPU%c1  CPU%c3  CPU%c6  CPU%c7 CoreTmp  PkgTmp Pkg%pc2 Pkg%pc3 Pkg%pc6 Pkg%pc7 PkgWatt CorWatt GFXWatt 
 | |
|        -       -     496   12.75    3886    3492       0   13.16    0.04   74.04    0.00      36      36    0.00    0.00    0.00    0.00   23.15   17.65    0.00
 | |
|        0       0      22    0.57    3830    3492       0    0.83    0.02   98.59    0.00      27      36    0.00    0.00    0.00    0.00   23.15   17.65    0.00
 | |
|        0       4       9    0.24    3829    3492       0    1.15
 | |
|        1       1       4    0.09    3783    3492       0   99.91    0.00    0.00    0.00      36
 | |
|        1       5    3880   99.82    3888    3492       0    0.18
 | |
|        2       2      17    0.44    3813    3492       0    0.77    0.04   98.75    0.00      28
 | |
|        2       6      12    0.32    3823    3492       0    0.89
 | |
|        3       3      16    0.43    3844    3492       0    0.63    0.11   98.84    0.00      30
 | |
|        3       7       4    0.11    3827    3492       0    0.94
 | |
| 30.372243 sec
 | |
| 
 | |
| .fi
 | |
| Above the cycle soaker drives cpu5 up its 3.8 GHz turbo limit
 | |
| while the other processors are generally in various states of idle.
 | |
| 
 | |
| Note that cpu1 and cpu5 are HT siblings within core1.
 | |
| As cpu5 is very busy, it prevents its sibling, cpu1,
 | |
| from entering a c-state deeper than c1.
 | |
| 
 | |
| Note that the Avg_MHz column reflects the total number of cycles executed
 | |
| divided by the measurement interval.  If the %Busy column is 100%,
 | |
| then the processor was running at that speed the entire interval.
 | |
| The Avg_MHz multiplied by the %Busy results in the Bzy_MHz --
 | |
| which is the average frequency while the processor was executing --
 | |
| not including any non-busy idle time.
 | |
| 
 | |
| .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.
 | |
| 
 | |
| If the TSC column does not make sense, then
 | |
| the other numbers will also make no sense.
 | |
| Turbostat is lightweight, and its data collection is not atomic.
 | |
| These issues are usually caused by an extremely short measurement
 | |
| interval (much less than 1 second), or system activity that prevents
 | |
| turbostat from being able to run on all CPUS to quickly collect data.
 | |
| 
 | |
| 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 AUTHOR
 | |
| .nf
 | |
| Written by Len Brown <len.brown@intel.com>
 |