EPICS Home

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: [email protected]
Date: Thu, 20 Mar 2014 11:45:48 -0400
Thanks Andrew. That really helped me nail it down.

It turns out that I was conflating two separate effects. Contrary to what I originally thought, there was a brief periodic CA hiccup for all clients when my long-running calculation thread ran with a priority just above the low end of CA. There was also a synchronized much larger slow down for any client that was monitoring both the fast records and the waveforms.

The first seems to be solved by dropping the calculation priority to just below CA. I was afraid that would be too low, but surprisingly the overall effect on the timing of the calcs is small.

The second is worked around by always spawning a separate client (EDM) to view the waveforms. Even though the CA client threads have equal priority, the fast records don't seem to get delayed.

Many thanks for all the helpful suggestions!

--Brian

On 03/18/14 16:43, Andrew Johnson wrote:
Hi Brian,

On 03/18/2014 02:57 PM, Brian Bevins wrote:
Hmm. When I run casr on my ioc, I get back one priority value per
client, not one per channel. And all of the priorities are currently
zero. Should this output look different if I were setting priority on a
per channel basis from the client?
The CA client has to use a separate TCP connection to the server for
each priority, so internally the server groups them by connection and
hence by priority.

For experimental purposes the caget and camonitor programs can be
configured to use a particular priority (-p <prio> where <prio> is 0-99
with 0 as the default & lowest priority). I would suggest setting up one
camonitor of your waveform records with default priority and a second
one with higher priority on the faster channels. If this resolves the
stuttering it tells you that it's probably worth exploring this approach
further.

HTH,

- Andrew


--
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? Ralph Lange
Re: Prioritizing Channel Access per Record? Brian Bevins
Re: Prioritizing Channel Access per Record? Andrew Johnson

Navigate by Date:
Prev: CSS BOY and 16-bit Images Gabriele Salvato
Next: using C# dll's Christian Roehrig
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? Andrew Johnson
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