]> www.infradead.org Git - users/willy/pagecache.git/commitdiff
tools/power turbostat: Read base_hz and bclk from CPUID.16H if available
authorPatryk Wlazlyn <patryk.wlazlyn@linux.intel.com>
Mon, 22 Jan 2024 14:22:35 +0000 (15:22 +0100)
committerLen Brown <len.brown@intel.com>
Tue, 2 Apr 2024 16:50:02 +0000 (12:50 -0400)
If MSRs cannot be read, values can be obtained from cpuid.

Signed-off-by: Patryk Wlazlyn <patryk.wlazlyn@linux.intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
tools/power/x86/turbostat/turbostat.c

index a4a40a6e1b957d8c11a23d8d7168b453aa5a1b7d..c35c48b6a99a7a1abe8eff87137ba18b719479d3 100644 (file)
@@ -5848,6 +5848,15 @@ void process_cpuid()
                base_mhz = max_mhz = bus_mhz = edx = 0;
 
                __cpuid(0x16, base_mhz, max_mhz, bus_mhz, edx);
+
+               bclk = bus_mhz;
+
+               base_hz = base_mhz * 1000000;
+               has_base_hz = 1;
+
+               if (platform->enable_tsc_tweak)
+                       tsc_tweak = base_hz / tsc_hz;
+
                if (!quiet)
                        fprintf(outf, "CPUID(0x16): base_mhz: %d max_mhz: %d bus_mhz: %d\n",
                                base_mhz, max_mhz, bus_mhz);