Skip to content

Commit

Permalink
Revert "tools/power turbostat: adjust for temperature offset"
Browse files Browse the repository at this point in the history
This reverts commit 6ff7cb3.

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: 6ff7cb3

Signed-off-by: Len Brown <[email protected]>
  • Loading branch information
lenb committed May 4, 2021
1 parent 6c5c656 commit b2b94be
Showing 1 changed file with 33 additions and 29 deletions.
62 changes: 33 additions & 29 deletions tools/power/x86/turbostat/turbostat.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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;
}
Expand Down

0 comments on commit b2b94be

Please sign in to comment.