Thread (305 messages) 305 messages, 27 authors, 2007-09-11

Re: [PATCH 0/24] make atomic_read() behave consistently across all architectures

From: Nick Piggin <hidden>
Date: 2007-08-17 02:31:59
Also in: lkml, netdev

Chris Snook wrote:
Herbert Xu wrote:
quoted
On Thu, Aug 16, 2007 at 03:48:54PM -0400, Chris Snook wrote:
quoted
quoted
Can you find an actual atomic_read code snippet there that is
broken without the volatile modifier?
A whole bunch of atomic_read uses will be broken without the volatile 
modifier once we start removing barriers that aren't needed if 
volatile behavior is guaranteed.

Could you please cite the file/function names so we can
see whether removing the barrier makes sense?

Thanks,

At a glance, several architectures' implementations of 
smp_call_function() have one or more legitimate atomic_read() busy-waits 
that shouldn't be using CPU-relax.  Some of them do work in the loop.
sh looks like the only one there that would be broken (and that's only
because they don't have a cpu_relax there, but it should be added anyway).
Sure, if we removed volatile from other architectures, it would be wise
to audit arch code because arch maintainers do sometimes make assumptions
about their implementation details... however we can assume most generic
code is safe without volatile.

-- 
SUSE Labs, Novell Inc.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help