Christoph Lameter wrote on Friday, March 31, 2006 1:15 PM > > > They are not. They provide equivalent barrier when performed > > > before/after a clear_bit, there is a big difference. > > > > Just to give another blunt brutal example, what is said here is equivalent > > to say kernel requires: > > > > <end of critical section> > > smp_mb_before_spin_unlock > > spin_unlock > > > > Because it is undesirable to have spin_unlock to leak into the critical > > Section and allow critical section to leak after spin_unlock. This is > > just plain brain dead. > > I think we could say that lock semantics are different from barriers. They > are more like acquire and release on IA64. The problem with smb_mb_*** is > that the coder *explicitly* requested a barrier operation and we do not > give it to him. I was browsing sparc64 code and it defines: include/asm-sparc64/bitops.h: #define smp_mb__after_clear_bit() membar_storeload_storestore() With my very naïve knowledge of sparc64, it doesn't look like a full barrier. Maybe sparc64 is broken too ... - : send the line "unsubscribe linux-ia64" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html
![]() |