Messages in this thread | | | Date | Wed, 15 Aug 2007 10:18:41 +0200 | From | Heiko Carstens <> | Subject | Re: [PATCH 0/24] make atomic_read() behave consistently across all architectures |
| |
On Wed, Aug 15, 2007 at 02:49:03PM +0800, Herbert Xu wrote: > Chris Snook <csnook@redhat.com> wrote: > > > > Because atomic operations are generally used for synchronization, which requires > > volatile behavior. Most such codepaths currently use an inefficient barrier(). > > Some forget to and we get bugs, because people assume that atomic_read() > > actually reads something, and atomic_write() actually writes something. Worse, > > these are architecture-specific, even compiler version-specific bugs that are > > often difficult to track down. > > I'm yet to see a single example from the current tree where > this patch series is the correct solution. So far the only > example has been a buggy piece of code which has since been > fixed with a cpu_relax.
Btw.: we still have
include/asm-i386/mach-es7000/mach_wakecpu.h: while (!atomic_read(deassert)); include/asm-i386/mach-default/mach_wakecpu.h: while (!atomic_read(deassert));
Looks like they need to be fixed as well. - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |