On 03/18/14 12:03, Ralph Lange wrote:
On 18.03.2014 16:47, Brian Bevins wrote:
Is there any way to specify that CA delivery of updates from certain
records should be prioritized over other records on the same ioc?
I've got an application where a bunch of ai's are processed at 10Hz
and some relatively big (for us) waveforms are processed at about
0.3-0.5 Hz. The ioc is not heavily loaded and all record processing
seems to happen in a timely way, but from the client end (EDM) the
"fast" records all pause for ~0.5 sec whenever the waveforms push out
their CA updates.
The ai's are already being processed at a higher priority, but this
doesn't seem to help their updates get pushed out with higher priority.
Is there some tinkering I can do with the priorities of the CA
threads to get what I want? How can I tell which thread will get
which record updates? Is there something more obvious I'm missing?
Thanks,
--Brian
The CA thread pairs on the server (IOC) are created per client.
The client can set the priority as an argument to the
ca_create_channel() call [1].
If the client-set priorities are honored on the server depends on the
server side OS and/or configuration.
On real-time Linux, the MCoreUtils module [2] (EPICS 3.15 only)
contains a rule-based engine to tinker with IOC thread priorities and
policies.
Cheers,
~Ralph
[1]
http://www.aps.anl.gov/epics/base/R3-14/12-docs/CAref.html#ca_create_channel
[2] http://epics.sourceforge.net/mcoreutils/
Thanks for the quick reply, Ralph.
Using client-set priorities occurred to me, but then it seems I would
need to write my own client to monitor and display the slow (or fast)
records. Standard clients are all pretty much going to use a default
priority in ca_create_channel(). If there is an existing general purpose
client that allows setting the priorities, I'd love to hear about it.
I'm currently using R3.14.12.3 on RTEMS, and I don't yet know if that
supports client-set priority. If it does, then writing a little display
program might work.
If I were to switch to rt linux and make use of mcoreutils, it sounds
like I would essentially run two virtual iocs on the same machine, one
at a higher priority. Is that right?
Thanks,
--Brian
--
Brian S. Bevins, PE
Computer Scientist / Mechanical Engineer
Thomas Jefferson National Accelerator Facility
"The urge to save humanity is almost always only a false-face
for the urge to rule it."
-- H. L. Mencken
- Replies:
- Re: Prioritizing Channel Access per Record? Ralph Lange
- RE: Prioritizing Channel Access per Record? Mark Rivers
- References:
- Prioritizing Channel Access per Record? Brian Bevins
- Re: Prioritizing Channel Access per Record? Ralph Lange
- Navigate by Date:
- Prev:
RE: Prioritizing Channel Access per Record? Mark Rivers
- Next:
Re: Prioritizing Channel Access per Record? Brian Bevins
- 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: Prioritizing Channel Access per Record? Ralph Lange
- Next:
Re: Prioritizing Channel Access per Record? Ralph Lange
- 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
|