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
<2014>
2015
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
<2014>
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
|