aboutsummaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorLen Brown <len.brown@intel.com>2015-02-23 00:34:57 -0500
committerLen Brown <len.brown@intel.com>2015-04-13 15:52:54 -0400
commit1cc21f7b6b747220c29b42cfd1c84b5648d12407 (patch)
tree8c33778e2be01bc8f06c85bb918ccacda9313807 /tools
parent39a8804455fb23f09157341d3ba7db6d7ae6ee76 (diff)
tools/power turbostat: simplify default output
Casual turbostat users generally just want to know MHz. So by default, just print enough information to make sense of MHz. All the other configuration data and columns for C-states and temperature etc, are printed with the --debug option. Signed-off-by: Len Brown <len.brown@intel.com>
Diffstat (limited to 'tools')
-rw-r--r--tools/power/x86/turbostat/turbostat.8138
-rw-r--r--tools/power/x86/turbostat/turbostat.c30
2 files changed, 98 insertions, 70 deletions
diff --git a/tools/power/x86/turbostat/turbostat.8 b/tools/power/x86/turbostat/turbostat.8
index feea7ad9500b..05b8fc38dc8b 100644
--- a/tools/power/x86/turbostat/turbostat.8
+++ b/tools/power/x86/turbostat/turbostat.8
@@ -20,9 +20,11 @@ upon its completion.
20The second method is to omit the command, 20The second method is to omit the command,
21and turbostat displays statistics every 5 seconds. 21and turbostat displays statistics every 5 seconds.
22The 5-second interval can be changed using the --interval option. 22The 5-second interval can be changed using the --interval option.
23 23.PP
24Some information is not available on older processors. 24Some information is not available on older processors.
25.SS Options 25.SS Options
26Options can be specified with a single or double '-', and only as much of the option
27name as necessary to disambiguate it from others is necessary. Note that options are case-sensitive.
26\fB--Counter MSR#\fP shows the delta of the specified 64-bit MSR counter. 28\fB--Counter MSR#\fP shows the delta of the specified 64-bit MSR counter.
27.PP 29.PP
28\fB--counter MSR#\fP shows the delta of the specified 32-bit MSR counter. 30\fB--counter MSR#\fP shows the delta of the specified 32-bit MSR counter.
@@ -55,16 +57,20 @@ more than once may also enable internal turbostat debug information.
55The \fBcommand\fP parameter forks \fBcommand\fP, and upon its exit, 57The \fBcommand\fP parameter forks \fBcommand\fP, and upon its exit,
56displays the statistics gathered since it was forked. 58displays the statistics gathered since it was forked.
57.PP 59.PP
58.SH FIELD DESCRIPTIONS 60.SH DEFAULT FIELD DESCRIPTIONS
59.nf 61.nf
60\fBPackage\fP processor package number. 62\fBCPU\fP Linux CPU (logical processor) number. Yes, it is okay that on many systems the CPUs are not listed in numerical order -- for efficiency reasons, turbostat runs in topology order, so HT siblings appear together.
61\fBCore\fP processor core number.
62\fBCPU\fP Linux CPU (logical processor) number.
63Note that multiple CPUs per core indicate support for Intel(R) Hyper-Threading Technology.
64\fBAVG_MHz\fP number of cycles executed divided by time elapsed. 63\fBAVG_MHz\fP number of cycles executed divided by time elapsed.
65\fB%Busy\fP percent of the interval that the CPU retired instructions, aka. % of time in "C0" state. 64\fB%Busy\fP percent of the interval that the CPU retired instructions, aka. % of time in "C0" state.
66\fBBzy_MHz\fP average clock rate while the CPU was busy (in "c0" state). 65\fBBzy_MHz\fP average clock rate while the CPU was busy (in "c0" state).
67\fBTSC_MHz\fP average MHz that the TSC ran during the entire interval. 66\fBTSC_MHz\fP average MHz that the TSC ran during the entire interval.
67.fi
68.PP
69.SH DEBUG FIELD DESCRIPTIONS
70.nf
71\fBPackage\fP processor package number.
72\fBCore\fP processor core number.
73Note that multiple CPUs per core indicate support for Intel(R) Hyper-Threading Technology (HT).
68\fBCPU%c1, CPU%c3, CPU%c6, CPU%c7\fP show the percentage residency in hardware core idle states. 74\fBCPU%c1, CPU%c3, CPU%c6, CPU%c7\fP show the percentage residency in hardware core idle states.
69\fBCoreTmp\fP Degrees Celsius reported by the per-core Digital Thermal Sensor. 75\fBCoreTmp\fP Degrees Celsius reported by the per-core Digital Thermal Sensor.
70\fBPkgTtmp\fP Degrees Celsius reported by the per-package Package Thermal Monitor. 76\fBPkgTtmp\fP Degrees Celsius reported by the per-package Package Thermal Monitor.
@@ -81,63 +87,76 @@ Note that multiple CPUs per core indicate support for Intel(R) Hyper-Threading T
81Without any parameters, turbostat displays statistics ever 5 seconds. 87Without any parameters, turbostat displays statistics ever 5 seconds.
82(override interval with "-i sec" option, or specify a command 88(override interval with "-i sec" option, or specify a command
83for turbostat to fork). 89for turbostat to fork).
90.nf
91[root@hsw]# ./turbostat
92 CPU Avg_MHz %Busy Bzy_MHz TSC_MHz
93 - 488 12.51 3898 3498
94 0 0 0.01 3885 3498
95 4 3897 99.99 3898 3498
96 1 0 0.00 3861 3498
97 5 0 0.00 3882 3498
98 2 1 0.02 3894 3498
99 6 2 0.06 3898 3498
100 3 0 0.00 3849 3498
101 7 0 0.00 3877 3498
102
103.fi
104.SH DEBUG EXAMPLE
105The "--debug" option prints additional system information before measurements:
84 106
85The first row of statistics is a summary for the entire system. 107The first row of statistics is a summary for the entire system.
86For residency % columns, the summary is a weighted average. 108For residency % columns, the summary is a weighted average.
87For Temperature columns, the summary is the column maximum. 109For Temperature columns, the summary is the column maximum.
88For Watts columns, the summary is a system total. 110For Watts columns, the summary is a system total.
89Subsequent rows show per-CPU statistics. 111Subsequent rows show per-CPU statistics.
90
91.nf
92[root@ivy]# ./turbostat
93 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
94 - - 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
95 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
96 0 4 1 0.07 1596 3492 0 0.79
97 1 1 10 0.65 1596 3492 0 0.59 0.00 98.76 0.00 23
98 1 5 5 0.28 1596 3492 0 0.95
99 2 2 10 0.66 1596 3492 0 0.41 0.01 98.92 0.00 23
100 2 6 2 0.10 1597 3492 0 0.97
101 3 3 3 0.20 1596 3492 0 0.44 0.00 99.37 0.00 23
102 3 7 5 0.31 1596 3492 0 0.33
103.fi
104.SH DEBUG EXAMPLE
105The "--debug" option prints additional system information before measurements:
106
107.nf 112.nf
108turbostat version 4.0 10-Feb, 2015 - Len Brown <lenb@kernel.org> 113turbostat version 4.1 10-Feb, 2015 - Len Brown <lenb@kernel.org>
109CPUID(0): GenuineIntel 13 CPUID levels; family:model:stepping 0x6:3a:9 (6:58:9) 114CPUID(0): GenuineIntel 13 CPUID levels; family:model:stepping 0x6:3c:3 (6:60:3)
110CPUID(6): APERF, DTS, PTM, EPB 115CPUID(6): APERF, DTS, PTM, EPB
111RAPL: 851 sec. Joule Counter Range, at 77 Watts 116RAPL: 3121 sec. Joule Counter Range, at 84 Watts
112cpu0: MSR_NHM_PLATFORM_INFO: 0x81010f0012300 117cpu0: MSR_NHM_PLATFORM_INFO: 0x80838f3012300
11316 * 100 = 1600 MHz max efficiency 1188 * 100 = 800 MHz max efficiency
11435 * 100 = 3500 MHz TSC frequency 11935 * 100 = 3500 MHz TSC frequency
115cpu0: MSR_IA32_POWER_CTL: 0x0014005d (C1E auto-promotion: DISabled) 120cpu0: MSR_IA32_POWER_CTL: 0x0004005d (C1E auto-promotion: DISabled)
116cpu0: MSR_NHM_SNB_PKG_CST_CFG_CTL: 0x1e008402 (UNdemote-C3, UNdemote-C1, demote-C3, demote-C1, locked: pkg-cstate-limit=2: pc6n) 121cpu0: MSR_NHM_SNB_PKG_CST_CFG_CTL: 0x1e000400 (UNdemote-C3, UNdemote-C1, demote-C3, demote-C1, UNlocked: pkg-cstate-limit=0: pc0)
117cpu0: MSR_NHM_TURBO_RATIO_LIMIT: 0x25262727 122cpu0: MSR_NHM_TURBO_RATIO_LIMIT: 0x25262727
11837 * 100 = 3700 MHz max turbo 4 active cores 12337 * 100 = 3700 MHz max turbo 4 active cores
11938 * 100 = 3800 MHz max turbo 3 active cores 12438 * 100 = 3800 MHz max turbo 3 active cores
12039 * 100 = 3900 MHz max turbo 2 active cores 12539 * 100 = 3900 MHz max turbo 2 active cores
12139 * 100 = 3900 MHz max turbo 1 active cores 12639 * 100 = 3900 MHz max turbo 1 active cores
122cpu0: MSR_IA32_ENERGY_PERF_BIAS: 0x00000006 (balanced) 127cpu0: MSR_IA32_ENERGY_PERF_BIAS: 0x00000006 (balanced)
123cpu0: MSR_RAPL_POWER_UNIT: 0x000a1003 (0.125000 Watts, 0.000015 Joules, 0.000977 sec.) 128cpu0: MSR_CORE_PERF_LIMIT_REASONS, 0x31200000 (Active: ) (Logged: Auto-HWP, Amps, MultiCoreTurbo, Transitions, )
124cpu0: MSR_PKG_POWER_INFO: 0x01e00268 (77 W TDP, RAPL 60 - 0 W, 0.000000 sec.) 129cpu0: MSR_GFX_PERF_LIMIT_REASONS, 0x00000000 (Active: ) (Logged: )
125cpu0: MSR_PKG_POWER_LIMIT: 0x30000148268 (UNlocked) 130cpu0: MSR_RING_PERF_LIMIT_REASONS, 0x0d000000 (Active: ) (Logged: Amps, PkgPwrL1, PkgPwrL2, )
126cpu0: PKG Limit #1: ENabled (77.000000 Watts, 1.000000 sec, clamp DISabled) 131cpu0: MSR_RAPL_POWER_UNIT: 0x000a0e03 (0.125000 Watts, 0.000061 Joules, 0.000977 sec.)
127cpu0: PKG Limit #2: DISabled (96.000000 Watts, 0.000977* sec, clamp DISabled) 132cpu0: MSR_PKG_POWER_INFO: 0x000002a0 (84 W TDP, RAPL 0 - 0 W, 0.000000 sec.)
133cpu0: MSR_PKG_POWER_LIMIT: 0x428348001a82a0 (UNlocked)
134cpu0: PKG Limit #1: ENabled (84.000000 Watts, 8.000000 sec, clamp DISabled)
135cpu0: PKG Limit #2: ENabled (105.000000 Watts, 0.002441* sec, clamp DISabled)
128cpu0: MSR_PP0_POLICY: 0 136cpu0: MSR_PP0_POLICY: 0
129cpu0: MSR_PP0_POWER_LIMIT: 0x00000000 (UNlocked) 137cpu0: MSR_PP0_POWER_LIMIT: 0x00000000 (UNlocked)
130cpu0: Cores Limit: DISabled (0.000000 Watts, 0.000977 sec, clamp DISabled) 138cpu0: Cores Limit: DISabled (0.000000 Watts, 0.000977 sec, clamp DISabled)
131cpu0: MSR_PP1_POLICY: 0 139cpu0: MSR_PP1_POLICY: 0
132cpu0: MSR_PP1_POWER_LIMIT: 0x00000000 (UNlocked) 140cpu0: MSR_PP1_POWER_LIMIT: 0x00000000 (UNlocked)
133cpu0: GFX Limit: DISabled (0.000000 Watts, 0.000977 sec, clamp DISabled) 141cpu0: GFX Limit: DISabled (0.000000 Watts, 0.000977 sec, clamp DISabled)
134cpu0: MSR_IA32_TEMPERATURE_TARGET: 0x00691400 (105 C) 142cpu0: MSR_IA32_TEMPERATURE_TARGET: 0x00641400 (100 C)
135cpu0: MSR_IA32_PACKAGE_THERM_STATUS: 0x884e0000 (27 C) 143cpu0: MSR_IA32_PACKAGE_THERM_STATUS: 0x88340800 (48 C)
136cpu0: MSR_IA32_THERM_STATUS: 0x88580000 (17 C +/- 1) 144cpu0: MSR_IA32_THERM_STATUS: 0x88340000 (48 C +/- 1)
137cpu1: MSR_IA32_THERM_STATUS: 0x885a0000 (15 C +/- 1) 145cpu1: MSR_IA32_THERM_STATUS: 0x88440000 (32 C +/- 1)
138cpu2: MSR_IA32_THERM_STATUS: 0x88570000 (18 C +/- 1) 146cpu2: MSR_IA32_THERM_STATUS: 0x88450000 (31 C +/- 1)
139cpu3: MSR_IA32_THERM_STATUS: 0x884e0000 (27 C +/- 1) 147cpu3: MSR_IA32_THERM_STATUS: 0x88490000 (27 C +/- 1)
140 ... 148 Core CPU Avg_MHz %Busy Bzy_MHz TSC_MHz SMI CPU%c1 CPU%c3 CPU%c6 CPU%c7 CoreTmp PkgTmp PkgWatt CorWatt GFXWatt
149 - - 493 12.64 3898 3498 0 12.64 0.00 0.00 74.72 47 47 21.62 13.74 0.00
150 0 0 4 0.11 3894 3498 0 99.89 0.00 0.00 0.00 47 47 21.62 13.74 0.00
151 0 4 3897 99.98 3898 3498 0 0.02
152 1 1 7 0.17 3887 3498 0 0.04 0.00 0.00 99.79 32
153 1 5 0 0.00 3885 3498 0 0.21
154 2 2 29 0.76 3895 3498 0 0.10 0.01 0.01 99.13 32
155 2 6 2 0.06 3896 3498 0 0.80
156 3 3 1 0.02 3832 3498 0 0.03 0.00 0.00 99.95 28
157 3 7 0 0.00 3879 3498 0 0.04
158^C
159
141.fi 160.fi
142The \fBmax efficiency\fP frequency, a.k.a. Low Frequency Mode, is the frequency 161The \fBmax efficiency\fP frequency, a.k.a. Low Frequency Mode, is the frequency
143available at the minimum package voltage. The \fBTSC frequency\fP is the base 162available at the minimum package voltage. The \fBTSC frequency\fP is the base
@@ -147,6 +166,9 @@ should be sustainable on all CPUs indefinitely, given nominal power and cooling.
147The remaining rows show what maximum turbo frequency is possible 166The remaining rows show what maximum turbo frequency is possible
148depending on the number of idle cores. Note that not all information is 167depending on the number of idle cores. Note that not all information is
149available on all processors. 168available on all processors.
169.PP
170The --debug option adds additional columns to the measurement ouput, including CPU idle power-state residency processor temperature sensor readinds.
171See the field definitions above.
150.SH FORK EXAMPLE 172.SH FORK EXAMPLE
151If turbostat is invoked with a command, it will fork that command 173If turbostat is invoked with a command, it will fork that command
152and output the statistics gathered when the command exits. 174and output the statistics gathered when the command exits.
@@ -154,27 +176,23 @@ eg. Here a cycle soaker is run on 1 CPU (see %c0) for a few seconds
154until ^C while the other CPUs are mostly idle: 176until ^C while the other CPUs are mostly idle:
155 177
156.nf 178.nf
157root@ivy: turbostat cat /dev/zero > /dev/null 179root@hsw: turbostat cat /dev/zero > /dev/null
158^C 180^C
159 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 181 CPU Avg_MHz %Busy Bzy_MHz TSC_MHz
160 - - 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 182 - 482 12.51 3854 3498
161 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 183 0 0 0.01 1960 3498
162 0 4 9 0.24 3829 3492 0 1.15 184 4 0 0.00 2128 3498
163 1 1 4 0.09 3783 3492 0 99.91 0.00 0.00 0.00 36 185 1 0 0.00 3003 3498
164 1 5 3880 99.82 3888 3492 0 0.18 186 5 3854 99.98 3855 3498
165 2 2 17 0.44 3813 3492 0 0.77 0.04 98.75 0.00 28 187 2 0 0.01 3504 3498
166 2 6 12 0.32 3823 3492 0 0.89 188 6 3 0.08 3884 3498
167 3 3 16 0.43 3844 3492 0 0.63 0.11 98.84 0.00 30 189 3 0 0.00 2553 3498
168 3 7 4 0.11 3827 3492 0 0.94 190 7 0 0.00 2126 3498
16930.372243 sec 19110.783983 sec
170 192
171.fi 193.fi
172Above the cycle soaker drives cpu5 up its 3.8 GHz turbo limit 194Above the cycle soaker drives cpu5 up its 3.9 GHz turbo limit.
173while the other processors are generally in various states of idle. 195The first row shows the average MHz and %Busy across all the processors in the system.
174
175Note that cpu1 and cpu5 are HT siblings within core1.
176As cpu5 is very busy, it prevents its sibling, cpu1,
177from entering a c-state deeper than c1.
178 196
179Note that the Avg_MHz column reflects the total number of cycles executed 197Note that the Avg_MHz column reflects the total number of cycles executed
180divided by the measurement interval. If the %Busy column is 100%, 198divided by the measurement interval. If the %Busy column is 100%,
diff --git a/tools/power/x86/turbostat/turbostat.c b/tools/power/x86/turbostat/turbostat.c
index 2d089cac8580..1bc6e6c163a5 100644
--- a/tools/power/x86/turbostat/turbostat.c
+++ b/tools/power/x86/turbostat/turbostat.c
@@ -292,8 +292,7 @@ void print_header(void)
292 if (has_aperf) 292 if (has_aperf)
293 outp += sprintf(outp, " Bzy_MHz"); 293 outp += sprintf(outp, " Bzy_MHz");
294 outp += sprintf(outp, " TSC_MHz"); 294 outp += sprintf(outp, " TSC_MHz");
295 if (do_smi) 295
296 outp += sprintf(outp, " SMI");
297 if (extra_delta_offset32) 296 if (extra_delta_offset32)
298 outp += sprintf(outp, " count 0x%03X", extra_delta_offset32); 297 outp += sprintf(outp, " count 0x%03X", extra_delta_offset32);
299 if (extra_delta_offset64) 298 if (extra_delta_offset64)
@@ -302,6 +301,13 @@ void print_header(void)
302 outp += sprintf(outp, " MSR 0x%03X", extra_msr_offset32); 301 outp += sprintf(outp, " MSR 0x%03X", extra_msr_offset32);
303 if (extra_msr_offset64) 302 if (extra_msr_offset64)
304 outp += sprintf(outp, " MSR 0x%03X", extra_msr_offset64); 303 outp += sprintf(outp, " MSR 0x%03X", extra_msr_offset64);
304
305 if (!debug)
306 goto done;
307
308 if (do_smi)
309 outp += sprintf(outp, " SMI");
310
305 if (do_nhm_cstates) 311 if (do_nhm_cstates)
306 outp += sprintf(outp, " CPU%%c1"); 312 outp += sprintf(outp, " CPU%%c1");
307 if (do_nhm_cstates && !do_slm_cstates) 313 if (do_nhm_cstates && !do_slm_cstates)
@@ -359,6 +365,7 @@ void print_header(void)
359 outp += sprintf(outp, " time"); 365 outp += sprintf(outp, " time");
360 366
361 } 367 }
368 done:
362 outp += sprintf(outp, "\n"); 369 outp += sprintf(outp, "\n");
363} 370}
364 371
@@ -487,10 +494,6 @@ int format_counters(struct thread_data *t, struct core_data *c,
487 /* TSC_MHz */ 494 /* TSC_MHz */
488 outp += sprintf(outp, "%8.0f", 1.0 * t->tsc/units/interval_float); 495 outp += sprintf(outp, "%8.0f", 1.0 * t->tsc/units/interval_float);
489 496
490 /* SMI */
491 if (do_smi)
492 outp += sprintf(outp, "%8d", t->smi_count);
493
494 /* delta */ 497 /* delta */
495 if (extra_delta_offset32) 498 if (extra_delta_offset32)
496 outp += sprintf(outp, " %11llu", t->extra_delta32); 499 outp += sprintf(outp, " %11llu", t->extra_delta32);
@@ -506,6 +509,13 @@ int format_counters(struct thread_data *t, struct core_data *c,
506 if (extra_msr_offset64) 509 if (extra_msr_offset64)
507 outp += sprintf(outp, " 0x%016llx", t->extra_msr64); 510 outp += sprintf(outp, " 0x%016llx", t->extra_msr64);
508 511
512 if (!debug)
513 goto done;
514
515 /* SMI */
516 if (do_smi)
517 outp += sprintf(outp, "%8d", t->smi_count);
518
509 if (do_nhm_cstates) { 519 if (do_nhm_cstates) {
510 if (!skip_c1) 520 if (!skip_c1)
511 outp += sprintf(outp, "%8.2f", 100.0 * t->c1/t->tsc); 521 outp += sprintf(outp, "%8.2f", 100.0 * t->c1/t->tsc);
@@ -1068,7 +1078,7 @@ int slv_pkg_cstate_limits[8] = {PCL__0, PCL__1, PCLRSV, PCLRSV, PCL__4, PCLRSV,
1068int amt_pkg_cstate_limits[8] = {PCL__0, PCL__1, PCL__2, PCLRSV, PCLRSV, PCLRSV, PCL__6, PCL__7}; 1078int amt_pkg_cstate_limits[8] = {PCL__0, PCL__1, PCL__2, PCLRSV, PCLRSV, PCLRSV, PCL__6, PCL__7};
1069int phi_pkg_cstate_limits[8] = {PCL__0, PCL__2, PCL_6N, PCL_6R, PCLRSV, PCLRSV, PCLRSV, PCLUNL}; 1079int phi_pkg_cstate_limits[8] = {PCL__0, PCL__2, PCL_6N, PCL_6R, PCLRSV, PCLRSV, PCLRSV, PCLUNL};
1070 1080
1071void print_verbose_header(void) 1081void dump_system_config_info(void)
1072{ 1082{
1073 unsigned long long msr; 1083 unsigned long long msr;
1074 unsigned int ratio; 1084 unsigned int ratio;
@@ -2428,14 +2438,14 @@ void topology_probe()
2428 if (debug > 1) 2438 if (debug > 1)
2429 fprintf(stderr, "max_core_id %d, sizing for %d cores per package\n", 2439 fprintf(stderr, "max_core_id %d, sizing for %d cores per package\n",
2430 max_core_id, topo.num_cores_per_pkg); 2440 max_core_id, topo.num_cores_per_pkg);
2431 if (!summary_only && topo.num_cores_per_pkg > 1) 2441 if (debug && !summary_only && topo.num_cores_per_pkg > 1)
2432 show_core = 1; 2442 show_core = 1;
2433 2443
2434 topo.num_packages = max_package_id + 1; 2444 topo.num_packages = max_package_id + 1;
2435 if (debug > 1) 2445 if (debug > 1)
2436 fprintf(stderr, "max_package_id %d, sizing for %d packages\n", 2446 fprintf(stderr, "max_package_id %d, sizing for %d packages\n",
2437 max_package_id, topo.num_packages); 2447 max_package_id, topo.num_packages);
2438 if (!summary_only && topo.num_packages > 1) 2448 if (debug && !summary_only && topo.num_packages > 1)
2439 show_pkg = 1; 2449 show_pkg = 1;
2440 2450
2441 topo.num_threads_per_core = max_siblings; 2451 topo.num_threads_per_core = max_siblings;
@@ -2555,7 +2565,7 @@ void turbostat_init()
2555 setup_all_buffers(); 2565 setup_all_buffers();
2556 2566
2557 if (debug) 2567 if (debug)
2558 print_verbose_header(); 2568 dump_system_config_info();
2559 2569
2560 if (debug) 2570 if (debug)
2561 for_all_cpus(print_epb, ODD_COUNTERS); 2571 for_all_cpus(print_epb, ODD_COUNTERS);