atomic operations in user space

Li Yang-r58472 LeoLi at
Fri Aug 25 12:33:28 EST 2006

> -----Original Message-----
> From: Brent Cook [mailto:bcook at]
> Sent: Thursday, August 24, 2006 10:18 PM
> To: linuxppc-embedded at
> Cc: Li Yang-r58472; Terry Liang
> Subject: Re: atomic operations in user space
> On Thursday 24 August 2006 05:39, Li Yang-r58472 wrote:
> > Why do you need atomic operations in user land? IPC will be
> > to deal with race conditions between processes.
> >
> > Best Regards,
> > Leo
> What about multiple threads within a process updating a counter?

Is there anything preventing semaphore to be used in threads?
> Of course, if you look at these functions in the kernel header,
they're just 2 or
> 3 inline assembly calls - you could easily rewrite them. Google for
'PowerPC atomic
> increment' and grab one of the unencumbered implementations if you
need to use it
> in a non-GPL program.
> On the other hand, I see no license at the top of my
> file at all, same for PowerPC - are Linux header files actually GPL or
are they
> more like the glibc headers, with exceptions made for userspace
> The atomic operations on x86 were accidentally exported early on, so
they have to
> hang around apparently for compatibility (there are some mailing list
threads out
> there to this effect.) Currently, you just have to assume in Linux
that if you
> include something from /usr/include/linux or asm that it will not
necessarily be
> cross-version or cross-architecture compatible. Not every arch in
Linux even has
> atomic operations of this nature, which I guess is the main reason why
they are
> not exported in general.
> - Brent

More information about the Linuxppc-embedded mailing list