Thread (11 messages) 11 messages, 5 authors, 2006-08-29

RE: atomic operations in user space

From: Li Yang-r58472 <hidden>
Date: 2006-08-29 06:42:57

-----Original Message-----
From: linuxppc-embedded-bounces+leoli=3Dfreescale.com@ozlabs.org
[mailto:linuxppc-embedded-bounces+leoli=3Dfreescale.com@ozlabs.org] On
Behalf Of
Xupei Liang
Sent: Tuesday, August 29, 2006 8:44 AM
To: linuxppc-embedded@ozlabs.org
Subject: RE: atomic operations in user space
=20
I think it is less expensive using atomic operation
sometimes in the user space, e.g. when updating a
Atomic operations are working under strict restrictions.  Generally they
won't work for user space.  Your best bet is to use semaphore instead.
counter. If this counter is to be updated by a lot of
processes, using semaphore can potentially cause a lot
of task switching.
=20
Regards,
=20
Terry Liang
=20
=20
quoted
-----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:
quoted
quoted
Why do you need atomic operations in user land?
IPC will be
sufficient
quoted
quoted
to deal with race conditions between processes.
quoted
quoted
Best Regards,
quoted
Leo
What about multiple threads within a process
updating a counter?
=20
Is there anything preventing semaphore to be used in
threads?
quoted
Of course, if you look at these functions in the
kernel header,
they're just 2 or
quoted
3 inline assembly calls - you could easily rewrite
them. Google for
'PowerPC atomic
quoted
increment' and grab one of the unencumbered
implementations if you
need to use it
quoted
in a non-GPL program.

On the other hand, I see no license at the top of my
/usr/include/asm-i386/atomic.h
quoted
file at all, same for PowerPC - are Linux header
files actually GPL or
are they
quoted
more like the glibc headers, with exceptions made
for userspace
programs?
quoted
The atomic operations on x86 were accidentally
exported early on, so
they have to
quoted
hang around apparently for compatibility (there are
some mailing list
threads out
quoted
there to this effect.) Currently, you just have to
assume in Linux
that if you
quoted
include something from /usr/include/linux or asm
that it will not
necessarily be
quoted
cross-version or cross-architecture compatible. Not
every arch in
Linux even has
quoted
atomic operations of this nature, which I guess is
the main reason why
they are
quoted
not exported in general.

- Brent
=20
=20
=20
__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around
http://mail.yahoo.com
_______________________________________________
Linuxppc-embedded mailing list
Linuxppc-embedded@ozlabs.org
https://ozlabs.org/mailman/listinfo/linuxppc-embedded
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help