I forgot to CC tech-talk.
-----Original Message-----
From: Mark Rivers
Sent: Thursday, May 30, 2019 11:24 AM
To: 'Klemen Vodopivec' <[email protected]>
Subject: RE: How to share asyn's queue thread among ports?
Hi Klemen,
I have some ideas on this, but I need to have a little more information.
About how many detectors do you have? You said 500 ports, so I assume that means 500 detectors? You would have one asyn port per detector?
Would all ports be running in a single IOC, or multiple IOCs?
You have about 500 parameters per detector, i.e. per port?
How many parameters are being written to, and at about what rate?
How many parameters are being read, and about what rate?
How are your detectors communicating, i.e. TCP/IP or some other mechanism?
Are you currently using the asyn "addr" parameter, or just the "port" to specify the detector and the drvUser field to specify the parameter?
Is it important that a write operation actually have completed before the record processing completes?
Would it be OK to have status be periodically polled and use SCAN=I/O Intr?
Mark
-----Original Message-----
From: [email protected] <[email protected]> On Behalf Of Klemen Vodopivec via Tech-talk
Sent: Thursday, May 30, 2019 9:56 AM
To: [email protected]
Subject: How to share asyn's queue thread among ports?
Hi,
in a fast data-acquisiting application that also controls hundreds of neutron detectors we are using asynPortDriver interface for detector configuration and status communication which results in many asynPortDriver params. The communication is fast (less than 1ms for request/response round trip) but is probably still considered blocking.
Especially because there's approx 500 params per port, many are written/read in groups and if every request blocks for 1ms it could block CA thread significantly. Our workaround so far was done in database but is overly complex. The obvious solution is to use asyn's blocking mode, but there's up to 500 ports resulting in as many threads.
Ideally there would be an asynPortDriver interface to manage queue threading, which we could then overload and do custom thread management.
Is there any other approach to keep number of threads low while providing blocking mode? Would asyn patch that allows asynPortDriver do queue thread management be of broader interest?
-- Klemen
- References:
- How to share asyn's queue thread among ports? Klemen Vodopivec via Tech-talk
- Navigate by Date:
- Prev:
Re: Camonitor with client dictated update rate Ralph Lange via Tech-talk
- Next:
Re: Camonitor with client dictated update rate Johnson, Andrew N. 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
2023
2024
- Navigate by Thread:
- Prev:
How to share asyn's queue thread among ports? Klemen Vodopivec via Tech-talk
- Next:
Re: [EXTERNAL] RE: How to share asyn's queue thread among ports? Klemen Vodopivec 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
2023
2024
|