EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  <20192020  2021  2022  2023  2024  Index 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  <20192020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: pvPutLog?
From: "Zimoch Dirk \(PSI\) via Core-talk" <[email protected]>
To: "[email protected]" <[email protected]>, "[email protected]" <[email protected]>
Cc: "[email protected]" <[email protected]>
Date: Tue, 3 Sep 2019 08:01:20 +0000
On Mon, 2019-09-02 at 08:57 -0700, Michael Davidsaver wrote:
> The main concern I see is locking and callbacks.  Current calls to asTrap*() happen
> without holding the record lock.  The asTrap* functions can't be moved entirely into
> dbChannelPut() without changing this.
> 
> This concern is also why I can't trivially add asTrap*() calls to QSRV.  The PVA to DBR
> data type conversion is currently happening under the record lock.  (Not required,
> just convenient)
> 
> If this were to change then some answer/plan would need to be made to address the
> possibility of deadlocks and slowdown.  Maybe it is enough to say that asTrap handlers
> should never be locking records or blocking?  
> 
> Also, I hadn't noticed asTrapWritePvt::lock before.  So many singleton locks...

In the context of caPutLog that means to read the value of the record without a lock.
That may lead to inconsistent data, in particular in the case of arrays, but for some architectures maybe even for doubles.
Extended to PVA, structures may be read inconsistently too.
However caPutLog does not read the full arrays anyway.

The original purpose of asTrap, deciding if writing is allowed, would probably not need to read the record at all.

> 
> 
> On 9/2/19 4:39 AM, Johnson, Andrew N. wrote:
> > I don’t think that would be trivial even for just the Trap Write calls, the dbChannel layer doesn’t have access to the asClientPVT context pointer. For the other interfaces dbChannel doesn’t know anything about the client that is requesting access. I suspect the current arrangement may be the simplest, but I haven’t looked at it too closely.
> > 
> > - Andrew
> > 
> > 
> > > On Sep 2, 2019, at 9:08 AM, Zimoch Dirk (PSI) via Core-talk <[email protected]> wrote:
> > > 
> > > On Mon, 2019-09-02 at 07:00 +0000, Zimoch Dirk (PSI) via Core-talk wrote:
> > > > Shouldn't PVA be implemented one level lower in dbChannel instead of in each network protocol?
> > > 
> > > Sorry typo, I meant: Shouldn't access security be implemented in dbChannel?
> > > Dirk
> 
> 

Replies:
Re: pvPutLog? Michael Davidsaver via Core-talk
References:
pvPutLog? Timo Korhonen via Core-talk
Re: pvPutLog? Zimoch Dirk (PSI) via Core-talk
Re: pvPutLog? Michael Davidsaver via Core-talk
Re: pvPutLog? Zimoch Dirk (PSI) via Core-talk
Re: pvPutLog? Michael Davidsaver via Core-talk
Re: pvPutLog? Timo Korhonen via Core-talk
Re: pvPutLog? Michael Davidsaver via Core-talk
Re: pvPutLog? Zimoch Dirk (PSI) via Core-talk
Re: pvPutLog? Zimoch Dirk (PSI) via Core-talk
Re: pvPutLog? Johnson, Andrew N. via Core-talk
Re: pvPutLog? Michael Davidsaver via Core-talk

Navigate by Date:
Prev: Re: Core-talk Digest, Vol 13, Issue 213 Basawashri Biradar via Core-talk
Next: Help Basawashri Biradar via Core-talk
Index: 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  <20192020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: pvPutLog? Michael Davidsaver via Core-talk
Next: Re: pvPutLog? Michael Davidsaver via Core-talk
Index: 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  <20192020  2021  2022  2023  2024 
ANJ, 03 Sep 2019 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·