RE: Synchronizing Bit operations V2

From: Chen, Kenneth W
Date: Fri Mar 31 2006 - 16:20:56 EST


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