Experimental Physics and Industrial Control System
|
Ø Not sure about windows, but since priority inversion is a major issue only for Ø systems with strict priority-based scheduling I'm not sure that it's that big a Ø deal there anyhow. So I can confirm that Windows does not support such options, and agree that this is probably because it isn’t that type of (strict priority scheduled) OS. I am going to guess that Windows CE also doesn’t allow for such options. Perhaps the application developers guide should say something like this. “Where possible and reasonably efficient the OS specific implementation of the event semaphore should select options which provide priority based queuing, but portable source codes who are consumers of the epicsEvent interface should not depend of this feature nor allow its absence to substantially change their run-time behavior.” Jeff ______________________________________________________ Jeffrey O. Hill Email [email protected] LANL MS H820 Voice 505 665 1831 Los Alamos NM 87545 USA FAX 505 665 5107 Message content: TSPA With sufficient thrust, pigs fly just fine. However, this is not necessarily a good idea. It is hard to be sure where they are going to land, and it could be dangerous sitting under them as they fly overhead. -- RFC 1925 Are you suggesting that we require priority-based queueing for multiple readers? At the moment the appDevGuide does not specify this requirement, though as you point out, non-priority queueing can lead to priority inversion. The current vxWorks and RTEMS implementations provide FIFO queueing but it would be a one-word change to get them provide priority queueing. Not sure about windows, but since priority inversion is a major issue only for systems with strict priority-based scheduling I'm not sure that it's that big a deal there anyhow.
Removing the thread wakeup FIFO and sharing the wakeup event is essential for correct scheduling behaviour otherwise a low priority thread can block a high priority thread on a message queue read even with priority inheritance enabled. EpicsEvent will also need patching to enable PTHREAD_PRIO_INHERIT, the code is present in EpicsMutex but EpicsEvent initializes a pthread_mutex directly. I'll nominate this as a job for the codeathon. |
- Replies:
- Re: epicsEvent (posix implementation) bug ? Eric Norum
- References:
- epicsEvent (posix implementation) bug ? Till Straumann
- RE: epicsEvent (posix implementation) bug ? james.rowland
- Re: epicsEvent (posix implementation) bug ? Eric Norum
- Navigate by Date:
- Prev:
Re: ca_create_channel memory management pthomas
- Next:
Re: epicsEvent (posix implementation) bug ? Eric Norum
- 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: epicsEvent (posix implementation) bug ? Eric Norum
- Next:
Re: epicsEvent (posix implementation) bug ? Eric Norum
- 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
|
ANJ, 18 Nov 2013 |
·
Home
·
News
·
About
·
Base
·
Modules
·
Extensions
·
Distributions
·
Download
·
·
Search
·
EPICS V4
·
IRMIS
·
Talk
·
Bugs
·
Documents
·
Links
·
Licensing
·
|