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  <20102011  2012  2013  2014  2015  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  <20102011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: No monitor refresh
From: Hinko Kocevar <[email protected]>
To: [email protected]
Date: Fri, 14 May 2010 10:17:45 +0200
Hi Mark,

On 05/13/10 12:16, Hinko Kocevar wrote:

>> devEpics
>>
>>
>> Undid the change that was done in R4-9 with direct calls to dbScanLock and process in the interrupt callback functions. This could lead to deadlocks in some circumstances. The original reason for changing from scanIoRequest to (dbScanLock, process) was because callback values would be lost if the callbacks came so close together in time that the single callback value stored in device support was overwritten before scanIoRequest could process the record. This problem has been fixed by adding a FIFO (ring buffer) to the device support for the scalar interfaces asynInt32, asynUInt32Digital, and asynFloat64. The ring buffer is only created when the record is put into I/O Intr scan, so the storage is not allocated for records that are not I/O Intr scanned. The ring buffer default size is 10 values, but this can be changed on a per-record basis using the dbInfo string "FIFO" with a value such as "100".
>>

I've upgraded the Asyn to 4-10 and I'm performing some tests.
How and where should I set the "FIFO" parameter? In each PV record?

I have several ports started in my IOC and some of them do periodic data
processing on external trigger signal - I/O Intr scanning. It looks like
some more intensive callbacks get all the attention and the slow (low
priority?) so not get serviced at all. Would this ring buffer size be
the solution ?


Is there a global 'ring buffer' for I/O Intr callbacks I need to worry
about - resize that is? My I/O Intr spawned callback rate is more than
15 per second, in different IOC ports/PVs. Looking at the debug output I
see that some callbacks do not get serviced. Only by disabling the port
initialization and processing relaxes the IOC and I/O Intr scanned
callback are processed in timely fashion.


Best regards,
Hinko


-- 
Hinko Kocevar
Technical support software engineer
Instrumentation Technologies
Velika pot 22, SI-5250 Solkan - Slovenia
T:+386 5 3352600, F:+386 5 3352601
mailto: [email protected]

http://www.i-tech.si - When your users demand stability

The information transmitted is intended solely for the addressee and may
contain confidential and/or privileged information. Any review, retention,
disclosure or other use by persons other than the intended recipient is
prohibited. If you received this in error, please notify the sender and
delete all copies.

Replies:
RE: No monitor refresh Mark Rivers
References:
Re: No monitor refresh Ralph Lange
Re: No monitor refresh Hinko Kocevar
RE: No monitor refresh Mark Rivers
Re: No monitor refresh Hinko Kocevar
RE: No monitor refresh Mark Rivers
Re: No monitor refresh Hinko Kocevar

Navigate by Date:
Prev: RE: cygwin 1.7 compatibility Wang Xiaoqiang
Next: RE: cygwin 1.7 compatibility Mark Rivers
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  <20102011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: No monitor refresh Hinko Kocevar
Next: RE: No monitor refresh Mark Rivers
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  <20102011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 02 Sep 2010 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·