EPICS Home

Experimental Physics and Industrial Control System


 
1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  <20072008  2009  2010  2011  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  <20072008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: task priorities, busy cpu, and timeout
From: Dennis Nicklaus <[email protected]>
To: [email protected]
Date: Wed, 28 Feb 2007 09:23:25 -0600
We have a Motorola MVME 5500 CPU running Epics on VxWorks. It'sdoing some cpu-intensive computations and runs about 37% idle. Our problem is that this makes EPICS connectivity iffy, resulting in a timeout to a client doing a caget (for example) about 20% of the time.
A large fraction (about half) of the used cpu time is spent in the Epics cbLow task, processing genSub record routines which are processed based on an epics "event" scan field (posted at about 1Hz). (see spy output below)




Is there an existing document/web page describing the duties and relative priorities of the various Epics tasks somewhere? Which task(s) are responsible for responding to a CA Client (the CAS-client tasks, I'm guessing)?
Can I lower the priorty of the cbLow task (to below that of the CAS-client tasks) and still expect
epics to work correctly? Why do the genSub event-driven records get processed in cbLow? Is it because they are genSubs or because they are event-driven?


It's a relatively new system and re-designing our software in light of the cpu-usage is certainly possible, but we'd like to know more about the epics priorities and how exactly a client gets a channel access timeout before proceeding. We're running epics 3.14.8 on vxworks 6.1 if it makes any difference.

Thanks for any help with the above questions or other suggestions!

Dennis
[email protected]


Attached below is spy() output from a typical session.


NAME          ENTRY         TID   PRI   total % (ticks)  delta % (ticks)
--------     --------      -----  ---   ---------------  ---------------
tJobTask     jobTask     261d110    0     0% (       0)    0% (       0)
tNbioLog                 261fa20    0     0% (       0)    0% (       0)
tMeasure     Measuremen  264b190    0     0% (     178)    3% (      18)
tExcTask     excTask     261d730    1     0% (       0)    0% (       0)
tShell0      shellTask   27ff920    1     0% (       0)    0% (       0)
tShellRem1   shellTask  10baed20    1     0% (       0)    0% (       0)
tWdbTask     wdbTask     263f010    3     0% (       0)    0% (       0)
tSpyTask     spyComTask 17639870    5     1% (     662)    1% (       7)
tNetTask     netTask     2623af0   50     0% (       8)    0% (       0)
tPortmapd    portmapd    2637490   54     0% (       0)    0% (       0)
tTelnetd     telnetd     26397f0   55     0% (       0)    0% (       0)
tTelnetOut_2 telnetOutT  301f140   55     0% (       2)    0% (       0)
tTelnetIn_26 telnetInTa  301f3c0   55     0% (       0)    0% (       0)
tBDEvent     BackDoor::  2677cb0   98    35% (   18487)   34% (     174)
tBDReply     BackDoor::  2671ce0   99     0% (       1)    0% (       0)
tBDTick      BackDoor::  30235d0   99     0% (       0)    0% (       0)
t1BackDoor   TcpDaemonS  2647c70   99     0% (       0)    0% (       0)
t4BackDoor   TcpDaemonS 1763c6a0   99     0% (       0)    0% (       0)
t5BackDoor   TcpDaemonS 1763e240   99     0% (       0)    0% (       0)
tBackDoord   TcpDaemonT  2679cd0  100     0% (       0)    0% (       0)
syncNTP                  d93a8f0  109     0% (       1)    0% (       0)
cbHigh                   d93a670  128     0% (       0)    0% (       0)
timerQueue               c608dc0  129     0% (       0)    0% (       0)
scanOnce                108f73b0  129     0% (       0)    0% (       0)
scan0.1                 109267a0  133     0% (       0)    0% (       0)
scan0.2                 1091fde0  134     0% (       0)    0% (       0)
cbMedium                 3035870  135     0% (       0)    0% (       0)
scan0.5                 10919420  135     0% (       0)    0% (       0)
scan1                   10912a60  136     0% (       0)    0% (       0)
scan2                   1090c0a0  137     0% (       3)    0% (       0)
scan5                   109056e0  138     0% (       0)    0% (       0)
scan10                  108fed20  139     0% (       0)    0% (       0)
cbLow                    d80c9a0  140    22% (   11844)   23% (     119)
dbCaLink                 d93c5f0  149     0% (       0)    0% (       0)
poolPoll                 3027b10  149     0% (       0)    0% (       0)
CAS-TCP                 109377c0  181     0% (       0)    0% (       0)
CAS-beacon               d80bc10  182     0% (       0)    0% (       0)
CAS-UDP                  264d010  183     0% (       7)    0% (       0)
errlog                   d92a080  189     0% (       1)    0% (       0)
taskwd                   d8006e0  189     0% (       0)    0% (       0)
tLogTask     logTask     261dae0  250     0% (       0)    0% (       0)
KERNEL                                    0% (      15)    0% (       0)
INTERRUPT                                 0% (       0)    0% (       0)
IDLE                                     36% (   18686)   37% (     188)
TOTAL                                    94% (   51638)   98% (     506)

Typical epics task priorities are shown below:

tWdbTask wdbTask f24b590 3 PEND 22bed8 f24b460 0 0
tKdbDaq KdbDaqDoneTa f1425d0 5 PEND 22bed8 f1424f0 3d0002 0
tNetTask netTask f282ac0 50 PEND 22bed8 f2829d0 41 0
tPortmapd portmapd f251ca0 54 PEND 22bed8 f251a40 3d0002 0
tTelnetd telnetd f24edc0 55 PEND 22bed8 f24ec50 360003 0
tTelnetOut_telnetOutTas ead4e70 55 READY 22bed8 ead4b50 0 0
tTelnetIn_etelnetInTask fffec50 55 READY 22bd24 fffe8d0 0 0
tBDEvntHdlrEventHandler f15f2d0 98 PEND 2381a8 f15f190 0 0
tBDTick DefaultBackD f1eb4e0 99 DELAY 231158 f1eb430 0 1
tBDRplyHdlrReplyHandler f1e72c0 99 PEND 2381a8 f1e7190 0 0
tBDd ServrDaemon_ f15b0b0 100 PEND 22bed8 f15ae70 0 0
syncNTP ee8658c f0400e0 109 DELAY 231158 f03ff60 3d0002 266
cbHigh ee8658c f0458f0 128 PEND 22bed8 f0457c0 0 0
timerQueue ee8658c f059830 129 PEND+T 22bed8 f0593a0 0 2055764176
scanOnce ee8658c efc95f0 129 PEND 22bed8 efc94e0 0 0
scan0.1 ee8658c ef9e090 133 DELAY 231158 ef9df30 0 2
scan0.2 ee8658c efa3a20 134 DELAY 231158 efa38c0 0 8
cbMedium ee8658c f04d060 135 PEND 22bed8 f04cf30 0 0
scan0.5 ee8658c efa93b0 135 DELAY 231158 efa9250 0 4
scan1 ee8658c efaed40 136 DELAY 231158 efaebe0 0 12
scan2 ee8658c efb46d0 137 DELAY 231158 efb4570 0 74
scan5 ee8658c efba060 138 DELAY 231158 efb9f00 0 259
scan10 ee8658c efbf9f0 139 DELAY 231158 efbf890 0 558
cbLow ee8658c f0547d0 140 PEND 22bed8 f0546a0 0 0
CAC-UDP ee8658c ef78680 147 PEND 22bed8 ef780a0 0 0
CAC-UDP ee8658c eba6d20 147 PEND 22bed8 eba6740 0 0
timerQueue ee8658c ef8c090 148 PEND+T 22bed8 ef8bc00 3d0004 248
CAC-TCP-senee8658c ef406c0 148 PEND 22bed8 ef40020 0 0
seqAux ee8658c ecd91b0 148 DELAY 231158 ecd8db0 0 82
CAC-event ee8658c ecd5d50 148 PEND 22bed8 ecd5c20 0 0
timerQueue ee8658c ebba2f0 148 PEND+T 22bed8 ebb9e60 3d0004 584
CAC-TCP-senee8658c eb796b0 148 PEND 22bed8 eb79010 0 0
dbCaLink ee8658c f03df80 149 PEND 22bed8 f03de50 0 0
poolPoll ee8658c ef29fe0 149 DELAY 231158 ef29eb0 0 49
coupler ee8658c eee0630 149 PEND+T 22bed8 eee0440 3d0002 200
CAC-TCP-recee8658c ef45ed0 150 PEND 22bed8 ef45440 0 0
CAC-TCP-recee8658c eb7eec0 150 PEND 22bed8 eb7e430 0 0
CAS-client ee8658c eada680 179 PEND 22bed8 eada3d0 0 0
CAS-event ee8658c ef03aa0 180 PEND 22bed8 ef03970 0 0
CAS-TCP ee8658c ef33940 181 PEND 22bed8 ef33660 0 0
CAS-beacon ee8658c ef30160 182 DELAY 231158 ef2fe50 0 372
CAS-UDP ee8658c ef2d0e0 183 PEND 22bed8 ef2cd90 0 0
errlog ee8658c f074760 189 PEND 22bed8 f074630 3d0002 0
taskwd ee8658c f05b990 189 DELAY 231158 f05b7d0 0 319
ipToAsciiPree8658c ef8e770 189 PEND 22bed8 ef8e2d0 0 0
CAC-repeateee8658c ef74160 189 PEND 22bed8 ef73e70 16 0




Replies:
Re: task priorities, busy cpu, and timeout Andrew Johnson

Navigate by Date:
Prev: Re: Setting an IOC clock from the vxWorks shell Ralph Lange
Next: ca_sg_put problem with DISP=1 Dirk Zimoch
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  <20072008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: Setting an IOC clock from the vxWorks shell Ralph Lange
Next: Re: task priorities, busy cpu, and timeout Andrew Johnson
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  <20072008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024