• Stephane Eranian's avatar
    perf/x86/msr: Add support for MSR_IA32_THERM_STATUS · 9ae21dd6
    Stephane Eranian authored
    This patch adds support for the Digital Readout provided by the
    IA32_THERM_STATUS MSR (0x19C) on Intel X86 processors. The readout
    shows the number of degrees Celcius to the TCC (critical temperature)
    supported by the processor. Thus, the larger, the better.
    
    The perf_event support is provided via the msr PMU. The new
    logical event is called cpu_thermal_margin. It comes with a unit and
    snapshot files. The event shows the current temprature distance (margin).
    It is not an accumulating event. The unit is degrees C. The event
    is provided per logical CPU to make things simpler but it is the
    same for both hyper-threads sharing a physical core.
    
    $ perf stat -I 1000 -a -A -e msr/cpu_thermal_margin/
    
    This will print the temperature for all logical CPUs.
                 time CPU                counts unit events
         1.000123741 CPU0                    38 C    msr/cpu_thermal_margin/
         1.000161837 CPU1                    37 C    msr/cpu_thermal_margin/
         1.000187906 CPU2                    36 C    msr/cpu_thermal_margin/
         1.000189046 CPU3                    39 C    msr/cpu_thermal_margin/
         1.000283044 CPU4                    40 C    msr/cpu_thermal_margin/
         1.000344297 CPU5                    40 C    msr/cpu_thermal_margin/
         1.000365832 CPU6                    39 C    msr/cpu_thermal_margin/
         ...
    
    In case the temperature margin cannot be read, the reported value would be -1.
    
    Works on all processors supporting the Digital Readout (dtherm in cpuinfo)
    Signed-off-by: default avatarStephane Eranian <eranian@google.com>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Vince Weaver <vincent.weaver@maine.edu>
    Cc: kan.liang@intel.com
    Link: http://lkml.kernel.org/r/1515169132-3980-1-git-send-email-eranian@google.comSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
    9ae21dd6
msr.c 6.9 KB