]> git.baikalelectronics.ru Git - kernel.git/commit
powerpc: Fix problem with time going backwards
authorPaul Mackerras <paulus@samba.org>
Wed, 15 Mar 2006 02:47:15 +0000 (13:47 +1100)
committerPaul Mackerras <paulus@samba.org>
Thu, 16 Mar 2006 05:54:55 +0000 (16:54 +1100)
commit811dd9e6d1dea58a8e8712cf113cfda20579e3ba
treef3f3465d4a24704518e7625334d78add58008b1f
parentf410b957e71a21b507a4a36e35d7951016241b1f
powerpc: Fix problem with time going backwards

The recent changes to keep gettimeofday in sync with xtime had the side
effect that it was occasionally possible for the time reported by
gettimeofday to go back by a microsecond.  There were two reasons:
(1) when we recalculated the offsets used by gettimeofday every 2^31
timebase ticks, we lost an accumulated fractional microsecond, and
(2) because the update is done some time after the notional start of
jiffy, if ntp is slowing the clock, it is possible to see time go backwards
when the timebase factor gets reduced.

This fixes it by (a) slowing the gettimeofday clock by about 1us in
2^31 timebase ticks (a factor of less than 1 in 3.7 million), and (b)
adjusting the timebase offsets in the rare case that the gettimeofday
result could possibly go backwards (i.e. when ntp is slowing the clock
and the timer interrupt is late).  In this case the adjustment will
reduce to zero eventually because of (a).

Signed-off-by: Paul Mackerras <paulus@samba.org>
arch/powerpc/kernel/time.c