Re: light weight counters: race free through local_t?

Christoph Lameter
2006-06-15T18:14:47Z

Given what you just said it seems that an atomic op is better than first
reading the cacheline and then incrementing a value in it right? Because
if we first read then we acquire the cacheline in shared more. Later when
we write to it we have to acquire it again in exclusive mode. The fetchadd
would acquire the cacheline immediately in exclusive mode and thus save
the acquisition in shared mode.

> Yes, it is a one-direction barrier.
> However, if there is not too many stuff in the OzQ, it has not too much
> impact.

It serializes prior accesses and has a simiar effect as an unlock
operation. The processor cannot freely reorder instructions around the
increment. That must have some sort of an impact on performance.

> I still prefer the atomic operations.

Noted. Andi: It seems that we can fall back on ia64 to an atomic
operation without concern for performance.