atomic operations in user space

Esben Nielsen nielsen.esben at gogglemail.com
Tue Aug 29 19:56:30 EST 2006



On Tue, 29 Aug 2006, Liu Dave-r63238 wrote:

>>> 2) These mutexes are based on futexes which requires atomic
>>> operations in userspace. These are available on most architectures.
> Look at
>>> the glibc code in
>>> nptl/sysdeps/unix/sysv/linux/powerpc/lowlevellock.h for instance.
>>> Use that and your PPC manual to implement your atomic operations.
>>
>> No matter semaphore or futex, it uses system calls to kernel.

There is only a system call if there is congestion - that is the whole idea
behind the futex.

>> And the
>> true atomic operation is in kernel not user space.

"True" atomic operations are available in user space on most architectures.

>> Maybe
>> it's feasible
>> for other architectures to do atomic operations directly in
>> user space.
>> IMHO, not for powerpc.

It is available for PowerPC, but not in POWER and POWER2 instructionsets 
according to http://www.nersc.gov/vendor_docs/ibm/asm/lwarx.htm#idx607
It is the same in the ARM world: Atomic instructions was introduced in 
ARMv6 I believe. Older ARM processors don't have them.

>
> Are you meaning that we didn't do atomic operations directly in user
> space
> on powerpc platform ?
>

Well, that is not the conclusion I get either when reading the glibc code.
Try to look at glibc-2.3.5/sysdeps/powerpc/bits/atomic.h.

This is by the way probably what the original post in this thread wanted 
in the first place!

Esben


> -DAve
> _______________________________________________
> Linuxppc-embedded mailing list
> Linuxppc-embedded at ozlabs.org
> https://ozlabs.org/mailman/listinfo/linuxppc-embedded
>



More information about the Linuxppc-embedded mailing list