EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  <20142015  2016  2017  2018  2019  2020  2021  2022  2023  2024  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  <20142015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: Prioritizing Channel Access per Record?
From: Brian Bevins <[email protected]>
To: Mark Rivers <[email protected]>
Cc: "[email protected]" <[email protected]>
Date: Tue, 18 Mar 2014 13:11:37 -0400
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  <20142015  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  <20142015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 17 Dec 2015 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·