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.