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
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.