Re: [PATCH 0/24] make atomic_read() behave consistently across all architectures
From: Segher Boessenkool <hidden>
Date: 2007-08-21 15:13:37
Also in:
linux-arch, lkml
From: Segher Boessenkool <hidden>
Date: 2007-08-21 15:13:37
Also in:
linux-arch, lkml
At some point in the future, barrier() will be universally regarded as a hammer too big for most purposes. Whether or not removing it now
You can't just remove it, it is needed in some places; you want to replace it in most places with a more fine-grained "compiler barrier", I presume?
constitutes premature optimization is arguable, but I think we should allow such optimization to happen (or not happen) in architecture-dependent code, and provide a consistent API that doesn't require the use of such things in arch-independent code where it might turn into a totally superfluous performance killer depending on what hardware it gets compiled for.
Explicit barrier()s won't be too hard to replace -- but what to do about the implicit barrier()s in rmb() etc. etc. -- *those* will be hard to get rid of, if only because it is hard enough to teach driver authors about how to use those primitives *already*. It is far from clear what a good interface like that would look like, anyway. Probably we should first start experimenting with a forget()-style micro-barrier (but please, find a better name), and see if a nice usage pattern shows up that can be turned into an API. Segher