Re: [PATCH] time: Add locking to xtime access in get_seconds()

Andi Kleen
2011-05-05T20:57:01Z

On Thu, May 05, 2011 at 01:17:01PM -0700, john stultz wrote:
> On Thu, 2011-05-05 at 19:57 +0200, Andi Kleen wrote:
> > > I suspect the reason this hasn't been triggered on x86 or power6 is due
> > > to compiler or processor optimizations reordering the assignment to in
> > > effect make it atomic. Or maybe the timing window to see the issue is
> > > harder to observe?
> >
> > On x86 all aligned stores are atomic. So I don't see how this
> > could be a problem ever.
>
> No no. The issue was with the fact that in update_xtime_cache we modify
> xtime_cache twice (once setting it possibly backwards to xtime, then
> adding in the nsec offset).

Ok makes sense. So the obvious fix is to compute the values first
in temporaries, then write them with appropiate wmb()s?

For the reader it should not make any difference.

-Andi