atomic operations in user space

Xupei Liang tliang at
Tue Aug 29 10:43:36 EST 2006

I think it is less expensive using atomic operation
sometimes in the user space, e.g. when updating a
counter. If this counter is to be updated by a lot of
processes, using semaphore can potentially cause a lot
of task switching. 


Terry Liang

> -----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
> > 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
> 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

Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 

More information about the Linuxppc-embedded mailing list