• Stafford Horne's avatar
    timekeeping: Use proper timekeeper for debug code · a529bea8
    Stafford Horne authored
    When CONFIG_DEBUG_TIMEKEEPING is enabled the timekeeping_check_update()
    function will update status like last_warning and underflow_seen on the
    timekeeper.
    
    If there are issues found this state is used to rate limit the warnings
    that get printed.
    
    This rate limiting doesn't really really work if stored in real_tk as
    the shadow timekeeper is overwritten onto real_tk at the end of every
    update_wall_time() call, resetting last_warning and other statuses.
    
    Fix rate limiting by using the shadow_timekeeper for
    timekeeping_check_update().
    
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Ingo Molnar <mingo@kernel.org>
    Cc: Miroslav Lichvar <mlichvar@redhat.com>
    Cc: Richard Cochran <richardcochran@gmail.com>
    Cc: Prarit Bhargava <prarit@redhat.com>
    Cc: Stephen Boyd <stephen.boyd@linaro.org>
    Fixes: commit 57d05a93 ("time: Rework debugging variables so they aren't global")
    Signed-off-by: default avatarStafford Horne <shorne@gmail.com>
    Signed-off-by: default avatarJohn Stultz <john.stultz@linaro.org>
    a529bea8
timekeeping.c 64.7 KB