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
<2010>
2011
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
<2010>
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
|