On 08/11, Oleg Nesterov wrote: > > On 08/09, Linus Torvalds wrote: > > > > I guess that instead of a "smp_wmb()", we could do another > > "smp_mb__before_spinlock()" thing, like we already allow for other > > architectures to do a weaker form of mb in case the spinlock is > > already a full mb. That would allow avoiding extra synchronization. Do > > a > > > > #ifndef smp_mb__before_spinlock > > #define smp_mb__before_spinlock() smp_wmb() > > #endif > > > > in <linux/spinlock.h> to not force everybody to implement it. Because > > a wmb+acquire should be close enough to a full mb that nobody cares > > (ok, so reads could move into the critical region from outside, but by > > the time anybody has called "schedule()", I can't see it mattering, so > > "close enough"). > > Yes, this is what I tried to suggest. And of course we should turn that > wmb() in try_to_wake_up() into smp_mb__before_spinlock(). > > I event started the patch, but we already have smp_mb__after_lock(), so > it should be smp_mb__before_lock() for consistency and we need to turn > it to "define" too. Or change ARCH_HAS_SMP_MB_AFTER_LOCK, or add > ARCH_HAS_SMP_MB_BEFORE_LOCK. Ah, please ignore. According to /bin/grep smp_mb__before_lock() no longer have users. So we can probably simply kill it in the same patch. I'll try to write the changelog and send it tomorrow. Oleg. -- To unsubscribe from this list: send the line "unsubscribe linux-arch" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html