From: Nick Piggin <nickpiggin@yahoo.com.au>
To: Alan Cox <alan@lxorguk.ukuu.org.uk>, paulmck@us.ibm.com
Cc: Pavel Machek <pavel@suse.cz>,
kernel list <linux-kernel@vger.kernel.org>,
Andrew Morton <akpm@osdl.org>,
mtk.manpages@gmail.com, rdunlap@xenotime.net,
linux-doc@vger.kernel.org
Subject: Re: atomics: document that linux expects certain atomic behaviour from unsigned long
Date: Mon, 5 Jan 2009 23:00:24 +1100 [thread overview]
Message-ID: <200901052300.24951.nickpiggin@yahoo.com.au> (raw)
In-Reply-To: <20090105112350.3e665114@lxorguk.ukuu.org.uk>
On Monday 05 January 2009 22:23:50 Alan Cox wrote:
> > Pretty much everywhere that uses RCU for example does so using atomic
> > pointer loads and stores. The nastiest issue IMO actually is reloading
> > the value through the pointer even if it isn't explicitly dereferenced.
> > RCU gets this right with ACCESS_ONCE. Probably a lot of code using basic
> > types does not. x86 atomic_read maybe should be using ACCESS_ONCE too...
>
> I'm pretty sure it should. gcc makes no guarantees about not being clever
> with accesses.
Arguably it should. I don't know what the concurrent C standard looks like,
but prohibiting reloads of potentially concurrently modified memory when
there is no explicit pointer dereference is the natural complement to
prohibiting stores to potentially concurrently read memory when there is
no explicit store (which I think is begrudgingly agreed to be a problem).
http://lkml.org/lkml/2007/10/24/673
I think I would like to see multiple reloads to local variables prohibited,
to avoid potential really subtle problems... But if ACCESS_ONCE is here to
stay, then I do think that atomic_read etc should use it.
next prev parent reply other threads:[~2009-01-05 12:00 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-01-03 12:44 Pavel Machek
2009-01-03 20:19 ` Alan Cox
2009-01-03 20:27 ` Pavel Machek
2009-01-03 20:30 ` Alan Cox
2009-01-03 20:56 ` Pavel Machek
2009-01-03 23:01 ` david
2009-01-03 23:14 ` Alan Cox
2009-01-05 10:54 ` Nick Piggin
2009-01-05 11:23 ` Alan Cox
2009-01-05 12:00 ` Nick Piggin [this message]
2009-01-05 16:05 ` Paul E. McKenney
2009-01-05 16:25 ` Nick Piggin
2009-01-05 17:30 ` Paul E. McKenney
2009-01-05 18:25 ` Nick Piggin
2009-01-05 22:01 ` Paul E. McKenney
2009-01-03 23:53 ` Robert Hancock
2009-01-04 18:05 ` Tilman Schmidt
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200901052300.24951.nickpiggin@yahoo.com.au \
--to=nickpiggin@yahoo.com.au \
--cc=akpm@osdl.org \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mtk.manpages@gmail.com \
--cc=paulmck@us.ibm.com \
--cc=pavel@suse.cz \
--cc=rdunlap@xenotime.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®