From: Nick Piggin <npiggin@suse.de>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Anton Blanchard <anton@samba.org>,
akpm@linux-foundation.org, willy@linux.intel.com,
benh@kernel.crashing.org, paulus@samba.org,
linux-arch@vger.kernel.org, linux-kernel@vger.kernel.org,
"Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
Subject: Re: [PATCH 2/2]: atomic_t: Remove volatile from atomic_t definition
Date: Wed, 19 May 2010 23:03:27 +1000 [thread overview]
Message-ID: <20100519130327.GW2516@laptop> (raw)
In-Reply-To: <alpine.LFD.2.00.1005170800100.4195@i5.linux-foundation.org>
On Mon, May 17, 2010 at 08:01:54AM -0700, Linus Torvalds wrote:
>
>
> On Mon, 17 May 2010, Anton Blanchard wrote:
> >
> > It turns out this bad code is a result of us defining atomic_t as a
> > volatile int.
>
> Heh. Ok, as you point out in the commit message, I obviously agree with
> this patch. "volatile" on data is evil, with the possible exception of
> "jiffies" type things.
>
> So applied.
I wonder, Linus, is there a good reason to use volatile for these at
all?
I asked you about it quite a while back, and IIRC you said it might
be OK to remove volatile from bitops, provided that callers were audited
(ie. that nobody used bitops on volatile variables).
For atomic_read it shouldn't matter unless gcc is *really* bad at it.
Ah, for atomic_read, the required semantic is surely ACCESS_ONCE, so
that's where the volatile is needed? (maybe it would be clearer to
explicitly use ACCESS_ONCE?)
The case I was thinking about for bitops was for multiple non-atomic
bitops, which would be nice to combine. In reality a lot of performance
critical code (like page allocator) bites the bullet and does the
open-coded bitwise ops. But it would be nice if that just worked for
__set_bit / __clear_bit too.
next prev parent reply other threads:[~2010-05-19 13:03 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-05-17 4:33 [PATCH 1/2]: atomic_t: Cast to volatile when accessing atomic variables Anton Blanchard
2010-05-17 4:34 ` [PATCH 2/2]: atomic_t: Remove volatile from atomic_t definition Anton Blanchard
2010-05-17 8:58 ` Heiko Carstens
2010-05-17 15:01 ` Linus Torvalds
2010-05-17 20:13 ` Jamie Lokier
2010-05-17 20:20 ` Linus Torvalds
2010-05-19 13:03 ` Nick Piggin [this message]
2010-05-19 14:55 ` Linus Torvalds
2010-05-19 15:01 ` Paul E. McKenney
2010-05-19 19:54 ` David Miller
2010-05-19 22:50 ` Paul E. McKenney
2010-05-21 5:27 ` Nick Piggin
2010-05-21 5:54 ` David Miller
2010-05-21 6:06 ` Nick Piggin
2010-05-21 6:10 ` David Miller
2010-05-21 6:44 ` Eric Dumazet
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=20100519130327.GW2516@laptop \
--to=npiggin@suse.de \
--cc=akpm@linux-foundation.org \
--cc=anton@samba.org \
--cc=benh@kernel.crashing.org \
--cc=linux-arch@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=paulmck@linux.vnet.ibm.com \
--cc=paulus@samba.org \
--cc=torvalds@linux-foundation.org \
--cc=willy@linux.intel.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.