Re: [PATCH 2/2]: atomic_t: Remove volatile from atomic_t definition

Eric Dumazet
2010-05-21T06:44:59Z

Le jeudi 20 mai 2010 à 23:10 -0700, David Miller a écrit :
> From: Nick Piggin <npiggin@suse.de>
> Date: Fri, 21 May 2010 16:06:00 +1000
>
> > Actually, I bet we have a lot of bugs there with loading integers and
> > pointers atomically, where the code assumes the loaded value will not
> > be reloaded by the compiler, because it is an easy thing to assume.
>
> Alexey Kuznetsov was aware of this problem 8+ years ago when we were
> first adding fine-grained locking the the networking.
>
> > atomic_read_light could be useful though, for sure.
>
> I definitely think so. And every usage of it should have a big fat
> comment right next to it explaining how it's usage is valid in that
> spot :-)
> -

I really doubt a valid (and dully commented) usage of
atomic_read_light() will bring anything, but added complexity to API.

Generated code will be the same than atomic_read() in these cases,
unless some real factorization can be done inside a loop.

We still have some uneeded RMW atomic ops to remove, before even
thinking to optimise reads ;)