]> git.baikalelectronics.ru Git - kernel.git/commitdiff
Revert "tools/power turbostat: adjust for temperature offset"
authorLen Brown <len.brown@intel.com>
Thu, 11 Mar 2021 23:36:35 +0000 (18:36 -0500)
committerLen Brown <len.brown@intel.com>
Tue, 4 May 2021 22:23:14 +0000 (18:23 -0400)
This reverts commit 7a4cc180adb5e3fbf6c993c8227d031206b3cf6f.

Apparently the TCC offset should not be used to adjust what temperature
we show the user after all.

(on most systems, TCC offset is 0, FWIW)

Fixes: 7a4cc180adb5
Signed-off-by: Len Brown <len.brown@intel.com>
tools/power/x86/turbostat/turbostat.c

index d27e899328f9ce82d2f073306cf881437018806b..98a0a731da8a406dff053789ecc0c1894268284c 100644 (file)
@@ -4879,33 +4879,12 @@ double discover_bclk(unsigned int family, unsigned int model)
  * below this value, including the Digital Thermal Sensor (DTS),
  * Package Thermal Management Sensor (PTM), and thermal event thresholds.
  */
-int read_tcc_activation_temp()
+int set_temperature_target(struct thread_data *t, struct core_data *c, struct pkg_data *p)
 {
        unsigned long long msr;
-       unsigned int tcc, target_c, offset_c;
-
-       /* Temperature Target MSR is Nehalem and newer only */
-       if (!do_nhm_platform_info)
-               return 0;
-
-       if (get_msr(base_cpu, MSR_IA32_TEMPERATURE_TARGET, &msr))
-               return 0;
-
-       target_c = (msr >> 16) & 0xFF;
-
-       offset_c = (msr >> 24) & 0xF;
-
-       tcc = target_c - offset_c;
-
-       if (!quiet)
-               fprintf(outf, "cpu%d: MSR_IA32_TEMPERATURE_TARGET: 0x%08llx (%d C) (%d default - %d offset)\n",
-                       base_cpu, msr, tcc, target_c, offset_c);
-
-       return tcc;
-}
+       unsigned int target_c_local;
+       int cpu;
 
-int set_temperature_target(struct thread_data *t, struct core_data *c, struct pkg_data *p)
-{
        /* tcc_activation_temp is used only for dts or ptm */
        if (!(do_dts || do_ptm))
                return 0;
@@ -4914,18 +4893,43 @@ int set_temperature_target(struct thread_data *t, struct core_data *c, struct pk
        if (!(t->flags & CPU_IS_FIRST_THREAD_IN_CORE) || !(t->flags & CPU_IS_FIRST_CORE_IN_PACKAGE))
                return 0;
 
+       cpu = t->cpu_id;
+       if (cpu_migrate(cpu)) {
+               fprintf(outf, "Could not migrate to CPU %d\n", cpu);
+               return -1;
+       }
+
        if (tcc_activation_temp_override != 0) {
                tcc_activation_temp = tcc_activation_temp_override;
-               fprintf(outf, "Using cmdline TCC Target (%d C)\n", tcc_activation_temp);
+               fprintf(outf, "cpu%d: Using cmdline TCC Target (%d C)\n",
+                       cpu, tcc_activation_temp);
                return 0;
        }
 
-       tcc_activation_temp = read_tcc_activation_temp();
-       if (tcc_activation_temp)
-               return 0;
+       /* Temperature Target MSR is Nehalem and newer only */
+       if (!do_nhm_platform_info)
+               goto guess;
+
+       if (get_msr(base_cpu, MSR_IA32_TEMPERATURE_TARGET, &msr))
+               goto guess;
+
+       target_c_local = (msr >> 16) & 0xFF;
+
+       if (!quiet)
+               fprintf(outf, "cpu%d: MSR_IA32_TEMPERATURE_TARGET: 0x%08llx (%d C)\n",
+                       cpu, msr, target_c_local);
+
+       if (!target_c_local)
+               goto guess;
+
+       tcc_activation_temp = target_c_local;
+
+       return 0;
 
+guess:
        tcc_activation_temp = TJMAX_DEFAULT;
-       fprintf(outf, "Guessing tjMax %d C, Please use -T to specify\n", tcc_activation_temp);
+       fprintf(outf, "cpu%d: Guessing tjMax %d C, Please use -T to specify\n",
+               cpu, tcc_activation_temp);
 
        return 0;
 }