Messages in this thread | | | Date | Thu, 13 Nov 2014 22:51:28 -0500 | From | Steven Rostedt <> | Subject | Re: [RFC PATCH] printk: Use ACCESS_ONCE() instead of a volatile type |
| |
On Thu, 13 Nov 2014 19:41:00 -0800 Joe Perches <joe@perches.com> wrote:
> On Thu, 2014-11-13 at 22:21 -0500, Pranith Kumar wrote: > > Remove volatile type qualifier and use ACCESS_ONCE() in its place for each > > access. Using volatile is not recommended as documented in > > Documentation/volatile-considered-harmful.txt. > > > > Here logbuf_cpu is a local variable and it is not clear how it is being accessed > > concurrently. We should remove volatile accesses entirely here, but for now make > > a safer change of using ACCESS_ONCE(). > > Not recommended does not mean "don't ever use".
I would argue that the use of volatile in open code is evil and prone to bugs. I agree that this is one of the few occasions that this is not the case.
> > Forcing the volatile at each use site instead > of the declaration isn't necessarily better. > > I think the code is more readable as-is but I'm > not going to object if Andrew picks this up... >
The ACCESS_ONCE() calls at each location makes it a bit uglier, but it drives in the point of what that is doing. Where as the volatile may be missed.
-- Steve
| |