• Andi Kleen's avatar
    perf/x86/intel, watchdog: Switch NMI watchdog to ref cycles on x86 · 2c95afc1
    Andi Kleen authored
    The NMI watchdog uses either the fixed cycles or a generic cycles
    counter. This causes a lot of conflicts with users of the PMU who want
    to run a full group including the cycles fixed counter, for example
    the --topdown support recently added to perf stat. The code needs to
    fall back to not use groups, which can cause measurement inaccuracy
    due to multiplexing errors.
    
    This patch switches the NMI watchdog to use reference cycles
    on Intel systems.  This is actually more accurate than cycles,
    because cycles can tick faster than the measured CPU Frequency
    due to Turbo mode.
    
    The ref cycles always tick at their frequency, or slower when
    the system is idling. That means the NMI watchdog can never
    expire too early, unlike with cycles.
    
    The reference cycles tick roughly at the frequency of the TSC,
    so the same period computation can be used.
    Signed-off-by: default avatarAndi Kleen <ak@linux.intel.com>
    Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
    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: Stephane Eranian <eranian@google.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Vince Weaver <vincent.weaver@maine.edu>
    Cc: acme@kernel.org
    Cc: jolsa@kernel.org
    Link: http://lkml.kernel.org/r/1465478079-19993-1-git-send-email-andi@firstfloor.orgSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
    2c95afc1
watchdog.c 29.8 KB