• John Stultz's avatar
    timekeeping: Add warnings when overflows or underflows are observed · 4ca22c26
    John Stultz authored
    It was suggested that the underflow/overflow protection
    should probably throw some sort of warning out, rather
    than just silently fixing the issue.
    
    So this patch adds some warnings here. The flag variables
    used are not protected by locks, but since we can't print
    from the reading functions, just being able to say we
    saw an issue in the update interval is useful enough,
    and can be slightly racy without real consequence.
    
    The big complication is that we're only under a read
    seqlock, so the data could shift under us during
    our calculation to see if there was a problem. This
    patch avoids this issue by nesting another seqlock
    which allows us to snapshot the just required values
    atomically. So we shouldn't see false positives.
    
    I also added some basic rate-limiting here, since
    on one build machine w/ skewed TSCs it was fairly
    noisy at bootup.
    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-8-git-send-email-john.stultz@linaro.orgSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
    4ca22c26
timekeeping.c 53.9 KB