Re: ARMv5 and atomic operations

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

On Tue, 24 Apr 2012, Andrew Haley wrote:

> On 04/24/2012 12:39 PM, Nicolas Pitre wrote:
> > On Tue, 24 Apr 2012, Andrew Haley wrote:
> > 
> >> On 04/23/2012 09:31 PM, Nicolas Pitre wrote:
> >>> On Mon, 23 Apr 2012, Andrew Haley wrote:
> >>>
> >>>> On 04/23/2012 06:36 PM, Thomas Meyer wrote:
> >>>>> I'm running the Ubuntun 2.6.38 Tegra2 kernel (because of their fbdev
> >>>>> support) on top of Fedora 17 armv5el on an Toshiba AC100 Laptop. The
> >>>>> rsyslog package crashed everytime because of the missing kernel support
> >>>>> of cmpxchg64. So when relying on the kernel helpers make sure that the
> >>>>> resp. kernel support exists.
> >>>>
> >>>> Indeed.  I had to write a workaround in IcedTea (i.e. java) on ARM for
> >>>> just this reason.  If you can't depend on a kernel helper being there I
> >>>> can't see it's of any use.
> >>>
> >>> Kernel helpers don't disappear with time.  You therefore can probe for 
> >>> their availability (see the documentation) in case the kernel support 
> >>> could be backported, or just refuse to run if the kernel version isn't 
> >>> recent enough.  This is not much different from relying on a new 
> >>> syscall.
> >>
> >> Indeed it is.  What would I gain from adding such a test?  All I can
> >> see is extra complication, untested code paths, and larger programs.
> > 
> > What alternative do you have, other than not using any atomic 
> > operations?
> What I've done already: I have my own routines.

You may get some atomicity with the SWP instruction, but that is not 
sufficient to implement atomic increments and the like. 

You may use the SWP to implement some locking and perform the "atomic" 
operations under the lock protection, but that doesn't work if atomic 
operations are also performed in signal handlers, and that scales badly 
if concurency is high.

So that really depends what your atomic needs are.  Implementing the 
latest library standards without any kernel help on ARMv5 or earlier is 
simply impossible.  But custom code can get away with less.

arm mailing list

[Linux ARM (Vger)]     [Linux ARM]     [ARM Kernel]     [Fedora User Discussion]     [Older Fedora Users Discussion]     [Fedora Advisory Board]     [Fedora Security]     [Fedora Maintainers]     [Fedora Devel Java]     [Fedora Legacy]     [Fedora Desktop]     [ATA RAID]     [Fedora Marketing]     [Fedora Mentors]     [Fedora Package Announce]     [Fedora Package Review]     [Fedora Music]     [Fedora Packaging]     [Centos]     [Fedora SELinux]     [Fedora Triage]     [Deep Creek Hot Springs]     [Coolkey]     [Yum Users]     [Tux]     [Big List of Linux Books]     [Yosemite News]     [Yosemite Photos]     [Linux Apps]     [KDE Users]     [Fedora Tools]     [Fedora Art]     [Fedora Docs]     [Asterisk PBX]

Powered by Linux