time: Clean up offs_real/wall_to_mono and offs_boot/total_sleep_time updates
authorJohn Stultz <john.stultz@linaro.org>
Fri, 27 Jul 2012 18:48:12 +0000 (14:48 -0400)
committerIngo Molnar <mingo@kernel.org>
Tue, 31 Jul 2012 15:09:14 +0000 (17:09 +0200)
commit6d0ef903e2bda70da124c10d8ad89f2382c87991
treefae52a865dbe0757e4e5ff49ce4a7f65447e0343
parentd4e3ab384b2343c7074f713ac330f839c38c52ee
time: Clean up offs_real/wall_to_mono and offs_boot/total_sleep_time updates

For performance reasons, we maintain ktime_t based duplicates of
wall_to_monotonic (offs_real) and total_sleep_time (offs_boot).

Since large problems could occur (such as the resume regression
on 3.5-rc7, or the leapsecond hrtimer issue) if these value
pairs were to be inconsistently updated, this patch this cleans
up how we modify these value pairs to ensure we are always
consistent.

As a side-effect this is also more efficient as we only
caulculate the duplicate values when they are changed,
rather then every update_wall_time call.

This also provides WARN_ONs to detect if future changes break
the invariants.

Signed-off-by: John Stultz <john.stultz@linaro.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Richard Cochran <richardcochran@gmail.com>
Cc: Prarit Bhargava <prarit@redhat.com>
Link: http://lkml.kernel.org/r/1343414893-45779-5-git-send-email-john.stultz@linaro.org
[ Cleaned up minor style issues. ]
Signed-off-by: Ingo Molnar <mingo@kernel.org>
kernel/time/timekeeping.c