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: "Wang, Lin via Tech-talk" <tech-talk at aps.anl.gov>
To: "mark rivers" <rivers at cars.uchicago.edu>
Cc: "tech-talk at aps.anl.gov" <tech-talk at aps.anl.gov>
Date: Tue, 23 May 2023 09:58:52 +0800 (GMT+08:00)

Hi Mark,

Thanks for your reply, the only two modifications I made were "setIntegerParam(P_Run, 1)" and "asynSetTraceMask("testAPD", 0, 0x20)".

As you suggested, I installed base-7.0.7 and build asyn-R4-44-2 again, and the warning messages still displayed.

Please note that I added "asynSetTraceMask("testAPD", 0, 0x20)" after iocInit() in st.cmd, since I did not see this line when your IOC boots.


The complete output for my IOC is as follows and the attachment is my MEDM screen,

vagrant@localhost:~/epics/asyn-R4-44-2/iocBoot/ioctestAsynPortDriver$
vagrant@localhost:~/epics/asyn-R4-44-2/iocBoot/ioctestAsynPortDriver$
vagrant@localhost:~/epics/asyn-R4-44-2/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. 2023-05-22T18:15-0700
## Rev. Date build date/time:
############################################################################
iocRun: All initialization complete
asynSetTraceMask("testAPD", 0, 0x20)
epics> 2023/05/22 18:33:11.608 testAPD:scope1:Waveform_RBV devAsynXXXArray::process, warning: multiple interrupt callbacks between processing
2023/05/22 18:33:12.109 testAPD:scope1:Waveform_RBV devAsynXXXArray::process, warning: multiple interrupt callbacks between processing
2023/05/22 18:33:12.609 testAPD:scope1:Waveform_RBV devAsynXXXArray::process, warning: multiple interrupt callbacks between processing
2023/05/22 18:33:13.110 testAPD:scope1:Waveform_RBV devAsynXXXArray::process, warning: multiple interrupt callbacks between processing
2023/05/22 18:33:13.610 testAPD:scope1:Waveform_RBV devAsynXXXArray::process, warning: multiple interrupt callbacks between processing
2023/05/22 18:33:14.111 testAPD:scope1:Waveform_RBV devAsynXXXArray::process, warning: multiple interrupt callbacks between processing
2023/05/22 18:33:14.611 testAPD:scope1:Waveform_RBV devAsynXXXArray::process, warning: multiple interrupt callbacks between processing
2023/05/22 18:33:15.111 testAPD:scope1:Waveform_RBV devAsynXXXArray::process, warning: multiple interrupt callbacks between processing
2023/05/22 18:33:15.612 testAPD:scope1:Waveform_RBV devAsynXXXArray::process, warning: multiple interrupt callbacks between processing
2023/05/22 18:33:16.112 testAPD:scope1:Waveform_RBV devAsynXXXArray::process, warning: multiple interrupt callbacks between processing
2023/05/22 18:33:16.613 testAPD:scope1:Waveform_RBV devAsynXXXArray::process, warning: multiple interrupt callbacks between processing
2023/05/22 18:33:17.114 testAPD:scope1:Waveform_RBV devAsynXXXArray::process, warning: multiple interrupt callbacks between processing
2023/05/22 18:33:17.614 testAPD:scope1:Waveform_RBV devAsynXXXArray::process, warning: multiple interrupt callbacks between processing
2023/05/22 18:33:18.115 testAPD:scope1:Waveform_RBV devAsynXXXArray::process, warning: multiple interrupt callbacks between processing
2023/05/22 18:33:18.615 testAPD:scope1:Waveform_RBV devAsynXXXArray::process, warning: multiple interrupt callbacks between processing


Thanks,

Lin


-----Original Messages-----
From:"Mark Rivers" <rivers at cars.uchicago.edu>
Sent Time:2023-05-23 04:14:28 (Tuesday)
To: "Wang, Lin" <wanglin at ihep.ac.cn>, "tech-talk at aps.anl.gov" <tech-talk at aps.anl.gov>
Cc:
Subject: [SPAM] RE: warning: multiple interrupt callbacks between processing when running testAsynPortDriverApp

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: PNG image


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

Navigate by Date:
Prev: Re: PVA Gateway Logging Problem Michael Davidsaver via Tech-talk
Next: Re: makefile compilation question NICOLE Remi 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 Mark Rivers via Tech-talk
Next: RE: warning: multiple interrupt callbacks between processing when running testAsynPortDriverApp Mark Rivers 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, 24 May 2023 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·