atomic operations in user space

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


> -----Original Message-----
> From: Brent Cook [mailto:bcook at bpointsys.com]
> Sent: Thursday, August 24, 2006 10:18 PM
> To: linuxppc-embedded at ozlabs.org
> 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
sufficient
> 
> > 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
/usr/include/asm-i386/atomic.h
> 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
programs?
> 
> 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