EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  <20102011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  <20102011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: Thread model for EPICS on ARM CPU
From: Michael Abbott <[email protected]>
To: Rod Nussbaumer <[email protected]>
Cc: epics Techtalk <[email protected]>
Date: Wed, 7 Jul 2010 10:49:24 +0100 (BST)
On Tue, 6 Jul 2010, Rod Nussbaumer wrote:
> I'm trying to get EPICS running on an ARM CPU. So far I've got a build 
> of EPICS (3.14.10 & 3.14.11) against a glibc 2.3.6 and Linux 2.6.21, 
> where the only thread model supported is linuxthreads (not POSIX/nptl). 
> When I run an IOC, the iocShell crashes (segfault), although the rest of 
> the IOC (asyn device support), and record processing seem to stay 
> running. Is this a reason to suspect the tread model? I see in the EPICS 
> build commandline, the switch '-D_POSIX_THREADS'. Does this mean a 
> strict POSIX thread model is required?
> 
> The iocShell crashes right after iocInit. Running under gdb, I set a
> breakpoint on iocInit. I see:
> 
> 
> (gdb) step
> Single stepping until exit from function iocshBody,
> which has no line number information.
> epics>
> Program received signal SIGSEGV, Segmentation fault.
> [Switching to Thread 114696 (LWP 4439)]
> 0x0006be60 in ca_flush_io ()

I wouldn't suspect the thread model here.

I have successfully run EPICS on two ARM system architectures, old glibc 
with linuxthreads and old ABI and newer glibc with nptl and EABI.  
Although the newer glibc and EABI are superiour in many details both 
architectures ran EPICS just fine, and I don't remember having to take any 
particular precautions.

Regarding the advantage of nptl over linuxthreads, I am aware of an 
inadequate implementation of the core synchronisation "compare and set" 
functionality in linuxthreads, but that's more of a Hiesenbug with very 
low probability of occurrence (requires two interrupts very close together 
at precisely the wrong time).  This does somewhat depend on your ARM 
architecture, I'm working with a PXA ARMv5 processor.

At Diamond we have a build process for generating a complete standalone 
busybox based Linux system for ARM with our choice of target system 
libraries.  This works very well.

References:
Thread model for EPICS on ARM CPU Rod Nussbaumer

Navigate by Date:
Prev: RE: Thread model for EPICS on ARM CPU Hinko Kocevar
Next: RE: Thread model for EPICS on ARM CPU michael.abbott
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  <20102011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: RE: Thread model for EPICS on ARM CPU Hinko Kocevar
Next: RE: Thread model for EPICS on ARM CPU michael.abbott
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  <20102011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 02 Sep 2010 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·