]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
tools/power turbostat: decode more CPUID fields
authorLen Brown <len.brown@intel.com>
Sat, 21 Nov 2015 17:22:47 +0000 (12:22 -0500)
committerDhaval Giani <dhaval.giani@oracle.com>
Mon, 16 Jan 2017 20:11:02 +0000 (15:11 -0500)
Orabug: 24811361

for debugging, dump a few more fields:

CPUID(1): SSE3 MONITOR EIST TM2 TSC MSR ACPI-TM TM

cpu0: MSR_IA32_MISC_ENABLE: 0x00850089 (TCC EIST MONITOR)

Signed-off-by: Len Brown <len.brown@intel.com>
(cherry picked from commit 69807a638f91524ed75027f808cd277417ecee7a)
Signed-off-by: Brian Maly <brian.maly@oracle.com>
Signed-off-by: Dhaval Giani <dhaval.giani@oracle.com>
tools/power/x86/turbostat/turbostat.c

index 95d61c661542b728254cacb0f0d156835bc2d1e9..e8f0852f4015e74a44ef88e5d9622ad9fb257d5f 100644 (file)
@@ -2673,6 +2673,19 @@ guess:
 
        return 0;
 }
+
+void decode_misc_enable_msr(void)
+{
+       unsigned long long msr;
+
+       if (!get_msr(base_cpu, MSR_IA32_MISC_ENABLE, &msr))
+               fprintf(stderr, "cpu%d: MSR_IA32_MISC_ENABLE: 0x%08llx (%s %s %s)\n",
+                       base_cpu, msr,
+                       msr & (1 << 3) ? "TCC" : "",
+                       msr & (1 << 16) ? "EIST" : "",
+                       msr & (1 << 18) ? "MONITOR" : "");
+}
+
 void process_cpuid()
 {
        unsigned int eax, ebx, ecx, edx, max_level;
@@ -2696,9 +2709,19 @@ void process_cpuid()
        if (family == 6 || family == 0xf)
                model += ((fms >> 16) & 0xf) << 4;
 
-       if (debug)
+       if (debug) {
                fprintf(stderr, "%d CPUID levels; family:model:stepping 0x%x:%x:%x (%d:%d:%d)\n",
                        max_level, family, model, stepping, family, model, stepping);
+               fprintf(stderr, "CPUID(1): %s %s %s %s %s %s %s %s\n",
+                       ecx & (1 << 0) ? "SSE3" : "-",
+                       ecx & (1 << 3) ? "MONITOR" : "-",
+                       ecx & (1 << 7) ? "EIST" : "-",
+                       ecx & (1 << 8) ? "TM2" : "-",
+                       edx & (1 << 4) ? "TSC" : "-",
+                       edx & (1 << 5) ? "MSR" : "-",
+                       edx & (1 << 22) ? "ACPI-TM" : "-",
+                       edx & (1 << 29) ? "TM" : "-");
+       }
 
        if (!(edx & (1 << 5)))
                errx(1, "CPUID: no MSR");
@@ -2739,6 +2762,9 @@ void process_cpuid()
                        do_ptm ? "" : "No ",
                        has_epb ? "" : "No ");
 
+       if (debug)
+               decode_misc_enable_msr();
+
        if (max_level > 0x15) {
                unsigned int eax_crystal;
                unsigned int ebx_tsc;