• John Stultz's avatar
    timekeeping: Add debugging checks to warn if we see delays · 3c17ad19
    John Stultz authored
    Recently there's been requests for better sanity
    checking in the time code, so that it's more clear
    when something is going wrong, since timekeeping issues
    could manifest in a large number of strange ways in
    various subsystems.
    
    Thus, this patch adds some extra infrastructure to
    add a check to update_wall_time() to print two new
    warnings:
    
     1) if we see the call delayed beyond the 'max_cycles'
        overflow point,
    
     2) or if we see the call delayed beyond the clocksource's
        'max_idle_ns' value, which is currently 50% of the
        overflow point.
    
    This extra infrastructure is conditional on
    a new CONFIG_DEBUG_TIMEKEEPING option, also
    added in this patch - default off.
    
    Tested this a bit by halting qemu for specified
    lengths of time to trigger the warnings.
    Signed-off-by: default avatarJohn Stultz <john.stultz@linaro.org>
    Cc: Dave Jones <davej@codemonkey.org.uk>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Prarit Bhargava <prarit@redhat.com>
    Cc: Richard Cochran <richardcochran@gmail.com>
    Cc: Stephen Boyd <sboyd@codeaurora.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Link: http://lkml.kernel.org/r/1426133800-29329-5-git-send-email-john.stultz@linaro.org
    [ Improved the changelog and the messages a bit. ]
    Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
    3c17ad19
timekeeping.c 51.5 KB