130 likes | 318 Views
RTEMS Use at SLAC. EPICS Collaboration Legnaro, Italy October 15-17, 2008. Ernest Williams. RTEM-based IOCs. Large number of IOCs running reliably for LCLS Accelerator 136 Coldfire-based embedded IOCs Mainly used for BPM and LLRF front-end processors 104 MVME6100 IOCs 33 MVME3100 IOCs
E N D
RTEMS Use at SLAC EPICS Collaboration Legnaro, Italy October 15-17, 2008 Ernest Williams
RTEM-based IOCs • Large number of IOCs running reliably for LCLS Accelerator • 136 Coldfire-based embedded IOCs • Mainly used for BPM and LLRF front-end processors • 104 MVME6100 IOCs • 33 MVME3100 IOCs • Beamlines will also use some number RTEMS-based IOCs for Slow controls.
RTEMS • All production IOCs are running RTEMS version 4.7.1; except for the IOCs responsible for Undulator motion controls which runs RTEMS version 4.9.0 • RTEMS distro used at SLAC is supported by Till Strauman from SSRL who works closely with LCLS on a number of projects. • We have found the technical support provided by Till to be very responsive and reliable
RTEMS [Some new Features for 4.9.0] • Added NFS client developed at SLAC to the main distribution at OAR. • Modifications to telnet for supporting epicsThreadCreate. • High resolution timer when reading system clock. • BSP support for the MVME3100 • New CEXP features: • new ELF/BFD replacement library (written from scratch). Eliminates the dependency on GPL-licensed third-party libs (which can still be usedif desired)
RTEMS [Some new Features for 4.9.0] • New CEXP features: • support for loading into multiple memory segments. This can be used on PPCto load text + data into different areas -> solves 32MB branch-limitproblem. {no need to compile with -mlong flag} • changeable shell prompt • can load modules with weak undefined symbols • added special user variable 'ans' which holds the result of the last evaluated line (like matlab 'ans' or bash '$?')
RTEMS RoadMap for SLAC • New CEXP will be posted soon along with the SLAC-based distro of RTEMS. • CEXP will be part of the RTEMS main distro at OAR in future releases. • Continue to work closely with Eric Norum and others in the community to provide “One Stop Shopping” for an EPICS-ready RTEMs distribution • Improve the distribution and packaging so that interested users can configure and run RTEMS at their site. Till is working to make all of the SLAC developed RTEMS add-ons use autoconf. • Support for IOC health monitoring for RTEMS-based IOCs
RTEMS – and – IOC Health GOAL: New module called iocAdmin which merges work from vxStats into a generic framework for platform independent IOC health monitoring. Work done by Stephanie Allison
devIocStats – OSI-fied devVxStats/linuxStats from SNS with added RTEMS hooks • Provides IOC health PVs: • CPU load, Memory • # free FDs, # suspended tasks, # CA connections, # CA PVs, # IF input/output errors • MBUF cluster information • Strings – up time, startup, cwd, IOC engineer, location, logname, hostname, EPICS version, BSP, Kernel, boot line
OSI implementation similar to Marty’s OSI devLib • src/devIocStats* – general code • src/os/RTEMS, vxWorks, default/devIocStatsOSD.* – OS-specific hooks • Similar in concept to devIocStats from Phil Sorensen at CHESS. • Does not have the features that SLS added to their own devVxStats. • Till Straumann did RTEMS hooks (turns out to be very similar to the CHESS implementation) and got vxStats “cpuBurn” logic working for RTEMS. However, we decided to use Phil’s CPU load calculation instead which is based on IDLE task usage. • Can use the same DB for both soft and hard IOCs – some records will have “unimplemented” values, depending on OS. • Will be available from soft support soon.
Conclusion • At SLAC We plan to support iocAdmin: • vxWorks 5.4.2 and up • WindRiver continues to change the network stack. • rtems 4.7.1 and rtems 4.9.x • Work closely with EPICS community for future enhancements and features. • After our operational experience with RTEMS at the LCLS, I can now seriously recommend RTEMS as an alternative or complement to using vxWorks for new sites.
Acknowledgements • Till Strauman • Stephanie Allison