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  <20122013  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  2007  2008  2009  2010  2011  <20122013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: Proposed change in asyn - request for comments
From: Eric Norum <[email protected]>
To: Andrew Johnson <[email protected]>
Cc: [email protected]
Date: Thu, 31 May 2012 08:42:59 -0700
On May 31, 2012, at 8:08 AM, Andrew Johnson wrote:

> Hi Eric,
> 
> On 2012-05-30 Eric Norum wrote:
>> 
>> Actually the asyn devEpics layer is simpler than described above.
>> - It always sets the record TIME field from the pasynUser->timestamp in
>> the device support interrupt callback or read method then returns to
>> higher level record processing code.
>> - The record processing code then
>> overwrites the TIME field unless the TSE field is -2.
> 
> If you do this it is possible for a client that is doing ca_get operations (or 
> even some other record that might have its TSEL pointing to this record's TIME 
> field) to see the time set by the devEpics layer, even if the record 
> subsequently overwrites the TIME field.  Since the TIME field is a structure 
> with two 32-bit components it is even possible for such a client or record to 
> see the seconds part of the old time-stamp and the nanoseconds from the new 
> one (or vice-versa) if the interrupt happened to occur in between it reading 
> the two parts.
> 
> I suspect some of them do, but I don't think device support should be updating 
> *any* publicly visible record fields from inside an ISR, since it can't be 
> sure that the record isn't currently locked and having field values being read 
> out of it.
> 

Who said that we were doing this from an ISR?   
I guess that I wasn't clear enough.    The devEPICS code that's writing to the .TIME field is actually in an interrupt callback thread -- at task-level. 
This is acceptable isn't it?   

-- 
Eric Norum
[email protected]



Replies:
Re: Proposed change in asyn - request for comments Andrew Johnson
References:
Proposed change in asyn - request for comments Mark Rivers
RE: Proposed change in asyn - request for comments Kim, Kukhee
Re: Proposed change in asyn - request for comments Eric Norum
Re: Proposed change in asyn - request for comments Andrew Johnson

Navigate by Date:
Prev: Re: errro running "ibtest" Rod Nussbaumer
Next: Re: [StreamDevice] parsing rapid inputs Dirk Zimoch
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  <20122013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: Proposed change in asyn - request for comments Andrew Johnson
Next: Re: Proposed change in asyn - request for comments Andrew Johnson
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  <20122013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 18 Nov 2013 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·