lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


On Tue, Oct 10, 2006 at 02:07:51PM +0200, Mike Pall wrote:
> Please. If updates to a pointer sized quantity (32 bit on 32 bit
> systems, 64 bit on 64 bit systems) are non-atomic, fire the CPU
> designer team. AFAIK none of the 64 bit multi-core machines on
> the market do this.

The ARMv6 SMP code in the Linux kernel uses a small block of assembly
code, including a loop, to perform an atomic store.  It has a dire
warning that a normal store is not sufficient.

Sparc32 (which is certainly still out there in SMP configurations)
requires spinlocks and other mechanisms to get 32-bit atomic
operations.  It was famously limited to only 24 bits of atomicity in
the Linux kernel until relatively recently.

I'm sure there's more...

                                                  -Dave Dodge