Chen, Kenneth W wrote:
Nick Piggin wrote on Tuesday, March 28, 2006 12:11 AMAlso, I think there is still the issue of ia64 not having the correct memory consistency semantics. To start with, all the bitops and atomic ops which both modify their operand and return a value should be full memory barriers before and after the operation, according to Documentation/atomic_ops.txt.I suppose the usage of atomic ops is abused, it is used in both lock and unlock path. And it naturally suck because it now requires full memory barrier. A better way is to define 3 variants: one for lock path, one for unlock path, and one with full memory fence.
I agree. As I wrote a few days ago: Why not to use separate bit operations for different purposes? - e.g. "test_and_set_bit_N_acquire()" for lock acquisition - "test_and_set_bit()", "clear_bit()" as they are today - "release_N_clear_bit()"... Thanks, Zoltan - : 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
![]() |