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
- Replies:
- Re: Prioritizing Channel Access per Record? Brian Bevins
- References:
- Prioritizing Channel Access per Record? Brian Bevins
- Re: Prioritizing Channel Access per Record? Ralph Lange
- Re: Prioritizing Channel Access per Record? Brian Bevins
- Navigate by Date:
- Prev:
Re: Prioritizing Channel Access per Record? Ralph Lange
- 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? Brian Bevins
- 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
|