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

From: Nick Piggin
Date: Thu Aug 16 2007 - 22:32:02 EST


Chris Snook wrote:
Herbert Xu wrote:

On Thu, Aug 16, 2007 at 03:48:54PM -0400, Chris Snook wrote:

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.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/