timekeeping: Add debugging checks to warn if we see delays
authorJohn Stultz <john.stultz@linaro.org>
Thu, 12 Mar 2015 04:16:32 +0000 (21:16 -0700)
committerIngo Molnar <mingo@kernel.org>
Fri, 13 Mar 2015 07:06:58 +0000 (08:06 +0100)
commit3c17ad19f0697ffe5ef7438cdafc2d2b7757d8a5
tree9d47ff591a06ab8ed93df330b01964da3fbff8d7
parentfb82fe2fe8588745edd73aa3a6229facac5c1e15
timekeeping: Add debugging checks to warn if we see delays

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: John 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: Ingo Molnar <mingo@kernel.org>
kernel/time/jiffies.c
kernel/time/timekeeping.c
lib/Kconfig.debug