EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

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

Subject: RE: Dynamic Loading and Unloading of EPICS Device Support and Record.
From: "Dalesio, Leo" <[email protected]>
To: "Geng, Zheqiao" <[email protected]>, "Andrew Johnson" <[email protected]>, "Williams Jr., Ernest L." <[email protected]>
Cc: Core-Talk <[email protected]>
Date: Wed, 8 Sep 2010 13:44:07 -0400
Title: RE: Dynamic Loading and Unloading of EPICS Device Support and Record.

Marty should chime in here too.
There were two large issues with dynamically adding records -
1) recomputing the lock sets - which was handled when modifying database links was implemented.
2) I believe was the record initialization and device support initialization issues. To be clear on this, it would be best to read through the record type and instance initialization, the device type and device instance initialization, and the driver initialization. Most likely, existing device and driver support would need to be reworked. For a while, I would just not write an initialization routine and take care of that in the read or write. That way I knew it could be done at any time.

I would not delete records. This really opens a can of worms. It would be more straight forward to disable them. Create a new alarm severity - disabled. Then the action to take on disabled can be configured. No channel access to it through access security rules for instance.
The deletion is more complex, as references to that record within an IOC, resolve to the memory location to improve the performance. A record does not know everyone that refers to it. To further complicate things, there are also state programs that would have to deal with records going away. Currently they support channel access disconnects - so perhaps this is not as difficult as I think.

In any case - start with being able to add them dynamically. If that goes well and you're feeling brave - then go for delete second.



-----Original Message-----
From: [email protected] on behalf of Geng, Zheqiao
Sent: Wed 9/8/2010 1:20 PM
To: Andrew Johnson; Williams Jr., Ernest L.
Cc: Core-Talk
Subject: RE: Dynamic Loading and Unloading of EPICS Device Support and Record.

Hi Andrew,

   I work for Ernest and I am currently working on the EPICS applying on uTCA.
I would like to take some time to investigate the dynamic record loading for
EPICS base 3.x, so that we can estimate the feasibility and efforts for introducing
this new feature.

   Could you please kindly offer me some materials about the current design of the
EPICS base? Such as the requirements specification, design report and so on. I have
only in hand the IOC design manual, which is far from enough to study into the core
codes.

   If you have any suggestions, please do not hesitate to tell me.

   Thank you very much!

Best wishes,
Qiao

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Zheqiao Geng
SLAC National Accelerator Laboratory
2575 Sand Hill Road, Mail Stop 64, Menlo Park, CA 94025-7015, USA
phone:  +1(650)926-4262                              
e-mail: [email protected]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 


-----Original Message-----
From: Andrew Johnson [mailto:[email protected]]
Sent: Tuesday, September 07, 2010 1:44 PM
To: Williams Jr., Ernest L.
Cc: Core-Talk; Geng, Zheqiao
Subject: Re: Dynamic Loading and Unloading of EPICS Device Support and Record.

Hi Ernest,

On Tuesday 07 September 2010 14:54:51 Ernest L. Williams Jr. wrote:
>
> What is the current project status of EPICS Dynamic Record loading?
> Is that only on the 3.15 trunk?

It's not even planned for implementation there at the moment, let alone
available.  The problem is that there are *no* locks for the data structures
that describe the currently loaded records, and any attempt to retro-fit them
will probably cause a major performance hit on the IOC runtime.

> As we embark upon uTCA here at SLAC; we will need that functionality.

Then you're going to need to allocate a lot of *talented* manpower to help us
implement it in version 3.x, or take a step back and re-think what you need to
do.

One possibility might be to write code that probes the crate and works out
what devices the IOC has to control, then generate the necessary .db file(s)
from that information.  At that point you can fire up the IOC, load those .db
files and start controlling stuff.  If you need to shut down just a part of an
active IOC without affecting the rest of it, you would regenerate the .db
files with the necessary devices removed and restart the IOC with the now
reduced .db files, then you're free to take out the relevant hardware without
it disturbing the IOC.  You might want to look into the DESY/KEK work on
redundant IOCs for making the restart as fast as possible.

Alternatively start looking at Marty Kraimer's Java IOC which I believe was
designed to allow dynamic record creation and deletion.

- Andrew
--
The best FOSS code is written to be read by other humans -- Harald Welte




Replies:
Re: Dynamic Loading and Unloading of EPICS Device Support and Record. Marty Kraimer
References:
Dynamic Loading and Unloading of EPICS Device Support and Record. Ernest L. Williams Jr.
Re: Dynamic Loading and Unloading of EPICS Device Support and Record. Andrew Johnson
RE: Dynamic Loading and Unloading of EPICS Device Support and Record. Geng, Zheqiao

Navigate by Date:
Prev: RE: Dynamic Loading and Unloading of EPICS Device Support and Record. Geng, Zheqiao
Next: Re: Dynamic Loading and Unloading of EPICS Device Support and Record. Marty Kraimer
Index: 2002  2003  2004  2005  2006  2007  2008  2009  <20102011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: RE: Dynamic Loading and Unloading of EPICS Device Support and Record. Geng, Zheqiao
Next: Re: Dynamic Loading and Unloading of EPICS Device Support and Record. Marty Kraimer
Index: 2002  2003  2004  2005  2006  2007  2008  2009  <20102011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 02 Feb 2012 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·