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  2014  2015  2016  2017  2018  2019  2020  2021  2022  <20232024  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  <20232024 
<== Date ==> <== Thread ==>

Subject: RE: warning: multiple interrupt callbacks between processing when running testAsynPortDriverApp
From: Mark Rivers via Tech-talk <tech-talk at aps.anl.gov>
To: "Wang, Lin" <wanglin at ihep.ac.cn>, "tech-talk at aps.anl.gov" <tech-talk at aps.anl.gov>
Date: Mon, 22 May 2023 20:14:28 +0000

Hi Lin,

 

I cannot reproduce this problem.  Like you I am running asyn R4-44-2, with only the change you listed to the testAsynPortDriver.cpp source file:

 

diff --git a/testAsynPortDriverApp/src/testAsynPortDriver.cpp b/testAsynPortDriverApp/src/testAsynPortDriver.cpp

index 359c89a..fa4534a 100644

--- a/testAsynPortDriverApp/src/testAsynPortDriver.cpp

+++ b/testAsynPortDriverApp/src/testAsynPortDriver.cpp

@@ -99,7 +99,7 @@ testAsynPortDriver::testAsynPortDriver(const char *portName, int maxPoints)

 

     /* Set the initial values of some parameters */

     setIntegerParam(P_MaxPoints,         maxPoints);

-    setIntegerParam(P_Run,               0);

+    setIntegerParam(P_Run,               1);

     setIntegerParam(P_VertGainSelect,    10);

     setVertGain();

     setDoubleParam (P_VoltsPerDiv,       1.0);

 

I also set the TraceMask to 0x20.  I see this when the IOC boots:

 

corvette:asyn/iocBoot/ioctestAsynPortDriver>../../bin/linux-x86_64/testAsynPortDriver st.cmd

dbLoadDatabase("../../dbd/testAsynPortDriver.dbd")

testAsynPortDriver_registerRecordDeviceDriver(pdbbase)

# Turn on asynTraceFlow and asynTraceError for global trace, i.e. no connected asynUser.

#asynSetTraceMask("", 0, 17)

testAsynPortDriverConfigure("testAPD", 1000)

dbLoadRecords("../../db/testAsynPortDriver.db","P=testAPD:,R=scope1:,PORT=testAPD,ADDR=0,TIMEOUT=1,NPOINTS=1000")

dbLoadRecords("../../db/asynRecord.db","P=testAPD:,R=asyn1,PORT=testAPD,ADDR=0,OMAX=80,IMAX=80")

#asynSetTraceMask("testAPD",0,0xff)

asynSetTraceIOMask("testAPD",0,0x2)

iocInit()

Starting iocInit

############################################################################

## EPICS R7.0.7

## Rev. R7.0.7-dirty

## Rev. Date Git: 2022-09-07 13:50:35 -0500

############################################################################

cas WARNING: Configured TCP port was unavailable.

cas WARNING: Using dynamically assigned TCP port 34051,

cas WARNING: but now two or more servers share the same UDP port.

cas WARNING: Depending on your IP kernel this server may not be

cas WARNING: reachable with UDP unicast (a host's IP in EPICS_CA_ADDR_LIST)

iocRun: All initialization complete

epics>

 

I do not get any warning messages.

 

I have attached a screenshot showing the testAsynPortDriver.adl screen.  Note that the update time is 0.5 seconds and the waveform record has SCAN=I/O Intr.  This seems to be what you were using, because the warning messages were every 0.5 seconds and you seem to be using interrupt callbacks as well.

 

I am running on Centos 7, using base 7.0.7.  You are running a much older version of base, 3.14.12.5.  I don’t think that should cause this problem, but it is possible.  You can build your IOC with a new version of base, even if you are using an old version for medm.

 

Mark

 

 

From: Tech-talk <tech-talk-bounces at aps.anl.gov> On Behalf Of Wang, Lin via Tech-talk
Sent: Monday, May 22, 2023 3:49 AM
To: tech-talk at aps.anl.gov
Subject: warning: multiple interrupt callbacks between processing when running testAsynPortDriverApp

 

Dear all,

testAsynPortDriver is a pretty good example for learning basic usage of asynPortDriver, however I encountered a warning message that I do not understand when made some modifications and ran it.

 

The initial status of the digital scope simulator is "Stop", if I try to set the initial status to "Run" by changing Line 102 of https://github.com/epics-modules/asyn/blob/master/testAsynPortDriverApp/src/testAsynPortDriver.cpp 

from

setIntegerParam(P_Run,               0);

to 

setIntegerParam(P_Run,               1);

then make and add "asynSetTraceMask("testAPD", 0, 0x20)" to the end of st.cmd, the following warning will display continuously,

epics>
epics>
epics> 2023/05/22 01:05:14.319 testAPD:scope1:Waveform_RBV devAsynXXXArray::process, warning: multiple interrupt callbacks between processing
2023/05/22 01:05:14.819 testAPD:scope1:Waveform_RBV devAsynXXXArray::process, warning: multiple interrupt callbacks between processing
2023/05/22 01:05:15.320 testAPD:scope1:Waveform_RBV devAsynXXXArray::process, warning: multiple interrupt callbacks between processing
2023/05/22 01:05:15.820 testAPD:scope1:Waveform_RBV devAsynXXXArray::process, warning: multiple interrupt callbacks between processing
2023/05/22 01:05:16.320 testAPD:scope1:Waveform_RBV devAsynXXXArray::process, warning: multiple interrupt callbacks between processing
2023/05/22 01:05:16.820 testAPD:scope1:Waveform_RBV devAsynXXXArray::process, warning: multiple interrupt callbacks between processing
2023/05/22 01:05:17.321 testAPD:scope1:Waveform_RBV devAsynXXXArray::process, warning: multiple interrupt callbacks between processing
2023/05/22 01:05:17.821 testAPD:scope1:Waveform_RBV devAsynXXXArray::process, warning: multiple interrupt callbacks between processing
2023/05/22 01:05:18.322 testAPD:scope1:Waveform_RBV devAsynXXXArray::process, warning: multiple interrupt callbacks between processing
2023/05/22 01:05:18.822 testAPD:scope1:Waveform_RBV devAsynXXXArray::process, warning: multiple interrupt callbacks between processing

 

In order to install the old MEDM, the test environment is old as follows,

Debian 7 wheezy

base-3.14.12.5

asyn-R4-44-2

 

Any hint or suggestion is appreciated.

 

Thanks,

Lin

 

Attachment: testAsynPortDriver.png
Description: testAsynPortDriver.png


Replies:
RE: warning: multiple interrupt callbacks between processing when running testAsynPortDriverApp Wang, Lin via Tech-talk
References:
warning: multiple interrupt callbacks between processing when running testAsynPortDriverApp Wang, Lin via Tech-talk

Navigate by Date:
Prev: RE: no bin file Mark Rivers via Tech-talk
Next: Re: PVA Gateway Logging Problem Murray, Doug via Tech-talk
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  <20232024 
Navigate by Thread:
Prev: Re: warning: multiple interrupt callbacks between processing when running testAsynPortDriverApp Maren Purves via Tech-talk
Next: RE: warning: multiple interrupt callbacks between processing when running testAsynPortDriverApp Wang, Lin via Tech-talk
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  <20232024 
ANJ, 22 May 2023 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·