On Sunday 10 October 2010 17:07:26 Akinobu Mita wrote: > Some architectures use spinlock to implement it > (asm-generic/bitops/ext2-atomic.h). Most other architectures use > test_and_set_bit() and test_and_clear_bit() as this patch shows. > > Why are there two implementations? test_and_{set,clear}_bit() are more > costly operations than spinlock for some architectures? I would guess that is only true on architectures that implement all atomics using a hashed spinlock like cris, sparc32 or parisc. This way the user can decide which spinlock to use rather than have the arch code calculate a hash on the pointer. This is an ext2 specific micro-optimization that I don't think makes sense in the generic le bitops code. Arnd -- 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