• Thomas Gleixner's avatar
    x86/tsc: Verify TSC_ADJUST from idle · 1d0095fe
    Thomas Gleixner authored
    When entering idle, it's a good oportunity to verify that the TSC_ADJUST
    MSR has not been tampered with (BIOS hiding SMM cycles). If tampering is
    detected, emit a warning and restore it to the previous value.
    
    This is especially important for machines, which mark the TSC reliable
    because there is no watchdog clocksource available (SoCs).
    
    This is not sufficient for HPC (NOHZ_FULL) situations where a CPU never
    goes idle, but adding a timer to do the check periodically is not an option
    either. On a machine, which has this issue, the check triggeres right
    during boot, so there is a decent chance that the sysadmin will notice.
    
    Rate limit the check to once per second and warn only once per cpu.
    Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
    Reviewed-by: default avatarIngo Molnar <mingo@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Yinghai Lu <yinghai@kernel.org>
    Cc: Borislav Petkov <bp@alien8.de>
    Link: http://lkml.kernel.org/r/20161119134017.732180441@linutronix.deSigned-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
    1d0095fe
tsc.h 1.52 KB