Re: [PATCH 1/2] net: Enable 64-bit net device statistics on 32-bit architectures

Ben Hutchings
2010-06-04T20:47:09Z

On Fri, 2010-06-04 at 13:39 -0700, Stephen Hemminger wrote:
> On Fri, 04 Jun 2010 19:15:18 +0100
> Ben Hutchings <bhutchings@solarflare.com> wrote:
>
> > On Fri, 2010-06-04 at 10:28 -0700, Stephen Hemminger wrote:
> > > On Thu, 03 Jun 2010 20:11:38 +0100
> > > Ben Hutchings <bhutchings@solarflare.com> wrote:
> > >
> > > > static inline u64 rtnl_link_stats64_read(const u64 *field)
> > > > {
> > > > return ACCESS_ONCE(*field);
> > > > }
> > > > static inline u32 rtnl_link_stats64_read32(const u64 *field)
> > > > {
> > > > return ACCESS_ONCE(*field);
> > > > }
> > >
> > > Do we really care if compiler reorders access. I think not.
> > > There was no order guarantee in the past.
> >
> > Since these reads are potentially racing with writes, we want to ensure
> > that they are atomic. Without the volatile-qualification, the compiler
> > can legitimately split or repeat the reads, though I don't see any
> > particular reason why this is a likely optimisation.
> >
> > Ben.
> >
>
> But this part of the code is only being run on on 64 bit machines.
> Updates of basic types for the CPU are atomic, lots of other code
> already assumes this.
> Take off your tin hat, this is excessive paranoia.

I like my tin hat, I'm sure I saw more oopses before I put it on. ;-)

Ben.

--
Ben Hutchings, Senior Software Engineer, Solarflare Communications
Not speaking for my employer; that's the marketing department's job.
They asked us to note that Solarflare product names are trademarked.