In the current iteration, the big ones are 65536 floats and there are 13
of them. Much more data is available from the underlying hardware, and
I'd like to get up to ~500K floats each if I can do it without choking
all the other records.
Thanks,
--Brian
On 03/18/14 13:05, Mark Rivers wrote:
Hi Brian,
How big are your waveform records?
Mark
-----Original Message-----
From: [email protected] [mailto:[email protected]] On Behalf Of Brian Bevins
Sent: Tuesday, March 18, 2014 11:27 AM
To: [email protected]
Subject: Re: Prioritizing Channel Access per Record?
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
- References:
- Prioritizing Channel Access per Record? Brian Bevins
- Re: Prioritizing Channel Access per Record? Ralph Lange
- Re: Prioritizing Channel Access per Record? Brian Bevins
- RE: Prioritizing Channel Access per Record? Mark Rivers
- Navigate by Date:
- Prev:
RE: Prioritizing Channel Access per Record? Mark Rivers
- Next:
Re: Prioritizing Channel Access per Record? Andrew Johnson
- 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? Mark Rivers
- Next:
RE: Prioritizing Channel Access per Record? Mark Rivers
- 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
|