Dear base maintainers and Linux users
For ITER, we'll need to be able to tune the RT behavior of the control application for RHEL and RHEL-MRG on multi-core platforms.
This means not only controlling the threads' priority and the scheduling policy but also the threads' "CPU affinity" (distribution to given sub sets of the cores).
Cosylab provided us with a proposal for configuring these parameters either with the IOC shell or with system commands by naming the IOC threads.
It implies some extensions in the code that have been prototyped already (code / patch available).
It is also proposed to change the EPICS-POSIX mapping to have the EPICS priorities 0 and 1 mapped to priority 1 and the other priorities equal.
The changes consist in:
1) 2 new commands: epicsThreadSetPosixPriority and epicsThreadSetPosixPriorityByName to set the priority and scheduling policy of a thread.
2 ) 2 new commands: epicsThreadSetCPUAffinity and epicsThreadSetCPUAffinityByName to set the CPU affinity of a thread.
3) Extensions of the epicsThreadShow and epicsThreadShowAll to add lightweight process ID, scheduling policy and CPU affinity
4) An extension to allow the Linux thread to have the EPICS name in their status (via the Linux prctl function).
5) A change in the POSIX priority mapping (have EPICS prio 0 and 1 mapped to POSIX 1 and all other identical).
A technical note describing these changes is available on the Cosylab site:
http://pub.cosylab.com/EPICS/EPICS_Real_Time.pdf
As well as the patches for prototyping these changes on 3.1.4.2:
http://pub.cosylab.com/EPICS/epics-affinity-patch.txt
It would be nice to discuss this at the next collaboration meeting.
Franck Di Maio / ITER
Klemen Zagar / Cosylab
---
Franck Di Maio
CODAC System Designer
CODAC Section
ITER Organization, Building 519/027, CHD, Control System Division
Route de Vinon sur Verdon - 13115 St Paul Lez Durance - France
- Navigate by Date:
- Prev:
Re: Asub record problems to update waveforms of string-type Tim Mooney
- Next:
problem running Channel Archiver on 64-bit Scientific Linux 6 Leonid Flaks
- Index:
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
<2011>
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
- Navigate by Thread:
- Prev:
Re: Asub record problems to update waveforms of string-type Tim Mooney
- Next:
problem running Channel Archiver on 64-bit Scientific Linux 6 Leonid Flaks
- Index:
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
<2011>
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
|