On Mon, Aug 20, 2018 at 06:22:26AM -0400, Mikulas Patocka wrote:
> Alpha already has a memory barrier inside arch_spin_unlock.
> 
> 
> BTW. I think that arch_spinlock_t (and atomic_t) on alpha should be 
> 8-byte. See this case - writing the variable "x" performs 
> read-modify-write cycle on the spinlock, corrupting it.
> 
> struct s {
>       spinlock_t lock;
>       unsigned char x;
> };

Yes, generic Alpha does not have atomic byte or 16-bit word writes. A
write of an 8-bit or 16-bit datum requires a read-modify-write
sequence of the containing 32-bit or 64-bit datum.

Later Alphas with the byte-word extension don't suffer from this
limitation.

Cheers
Michael.

Reply via email to