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  <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: I/O Intr. scanning Thread
From: Mark Rivers <[email protected]>
To: Vikram Bhagat <[email protected]>, epics talk <[email protected]>
Date: Thu, 13 Feb 2014 22:29:52 +0000
Hi Vikram,

In standard asyn device support records with SCAN=I/O Intr are processed when the driver does a callback to device support.  Device support calls:

 scanIoRequest(pPvt->ioScanPvt);

If you look section 17.3.7 of the EPICS Application Developer's Guide it says:

*****************************************************
4. Whenever an I/O event is detected call scanIoRequest, e.g. scanIoRequest(ioscanpvt)
This routine can be called from interrupt level. The request is actually directed to one of the standard callback tasks. The actual one is determined by the PRIO field of dbCommon.
*****************************************************

So you can control the priority of the callback task via the PRIO field of the record.  For example, here is the output of dbpr on an ai record with asynFloat64 device support and SCAN=I/O Intr:

epics> dbpr 13PG1:cam1:AcquireTime_RBV 10
ACKS: NO_ALARM      ACKT: YES           ADEL: 0
ALST: 0.0060009360313416                AOFF: 0             ASG:
ASLO: 1             ASP: 0000000000000000                   BKPT: 00
DESC:               DISA: 0             DISP: 0             DISS: NO_ALARM
DISV: 1             DPVT: 0000000009A94870
DSET: 0000000140109300                  DTYP: asynFloat64   EGU:
EGUF: 0             EGUL: 0             EOFF: 0             ESLO: 1
EVNT: 0             FLNK:CONSTANT 0     HHSV: NO_ALARM      HIGH: 0
HIHI: 0             HOPR: 0             HSV: NO_ALARM       HYST: 0
INIT: 0             INP:INST_IO @asyn(PG1,0,1)ACQ_TIME
LALM: 0.0060009360313416                LBRK: 0             LCNT: 0
LINR: NO CONVERSION LLSV: NO_ALARM      LOLO: 0             LOPR: 0
LOW: 0              LSET: 0000000009EB6D70                  LSV: NO_ALARM
MDEL: 0
MLIS: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
MLOK: 60 55 7c 04 00 00 00 00           MLST: 0.0060009360313416
NAME: 13PG1:cam1:AcquireTime_RBV        NSEV: NO_ALARM      NSTA: NO_ALARM
ORAW: 0             PACT: 0             PBRK: 0000000000000000
PHAS: 0             PINI: NO            PPN: 0000000000000000
PPNR: 0000000000000000                  PREC: 3             PRIO: LOW
PROC: 0             PUTF: 0             RDES: 00000000027984E0
ROFF: 0             RPRO: 0             RSET: 00000001400FD3F0
RVAL: 0             SCAN: I/O Intr      SDIS:CONSTANT       SEVR: NO_ALARM
SIML:CONSTANT       SIMM: NO            SIMS: NO_ALARM      SIOL:CONSTANT
SMOO: 0             SPVT: 0000000009F29DA0                  STAT: NO_ALARM
SVAL: 0             TIME: 2014-02-13 16:01:42.133539808     TPRO: 0
TSE: 0              TSEL:CONSTANT       UDF: 0
VAL: 0.0060009360313416


So this record has PRIO=Low, so scanIoRequest will use the low priority callback task.

Do you have some indication that your callbacks need to run at higher priority?  What operating system are you using?  What is your evidence?

Mark


________________________________
From: [email protected] [[email protected]] on behalf of Vikram Bhagat [[email protected]]
Sent: Thursday, February 13, 2014 3:59 PM
To: epics talk
Subject: I/O Intr. scanning Thread

Hi,

I want to know at what priority the I/O Intr. scan thread will run and how it is possible to increase the priority of I/O Intr. scanning thread in the asynDriver.

Thanks


References:
I/O Intr. scanning Thread Vikram Bhagat

Navigate by Date:
Prev: I/O Intr. scanning Thread Vikram Bhagat
Next: RE: Query on TCP IP Emmanuel Mayssat
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: I/O Intr. scanning Thread Vikram Bhagat
Next: using caLab and LabVIEW to a chunk of data in LAN ccc1989
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 
ANJ, 17 Dec 2015 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·