Date: Sat, 21 Mar 2009 01:57:39 +0100 From: =?ISO-8859-1?Q?Marius_N=FCnnerich?= <marius@nuenneri.ch> To: Ivan Voras <ivoras@freebsd.org> Cc: freebsd-geom@freebsd.org Subject: Re: RFC: adding 'proxy' nodes to provider ports (with patch) Message-ID: <b649e5e0903201757s7189890as69ba839042dea83c@mail.gmail.com> In-Reply-To: <gq1975$p1k$1@ger.gmane.org> References: <20090319081936.GA32750@onelab2.iet.unipi.it> <b649e5e0903190441m2d511107qd95cb3cd566b11f7@mail.gmail.com> <20090319130137.GB40489__3492.42561865157$1237467521$gmane$org@onelab2.iet.unipi.it> <gq1975$p1k$1@ger.gmane.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, Mar 21, 2009 at 00:34, Ivan Voras <ivoras@freebsd.org> wrote: > Luigi Rizzo wrote: >> On Thu, Mar 19, 2009 at 12:41:13PM +0100, Marius N?nnerich wrote: >>> 2009/3/19 Luigi Rizzo <rizzo@iet.unipi.it>: >>>> Hi, >>>> >>>> Fabio Checconi and I have been thinking on how to implement "proxy" >>>> geom nodes, i.e. nodes that have exactly 1 provider and 1 consumer >>>> port, do not do any data transformation, and can be transparently >>>> inserted or removed on top of a provider port while the tree is >>>> actively moving data. >> ... >>>> The idea is to intercept requests coming on a provider port, pp, and >>>> redirect them to a geom node acting as a proxy if the port >>>> is configured in this way: >> ... >>> I wonder if it's really necessary to alter the GEOM infrastructure or >>> if it is possible to do this with what's there already. Just an idea: >>> Lock g_topology, put g_down and g_up to sleep, alter the consumer and >>> provider pointers where you need it so the everything is routed >>> through your proxy class (which isn't special in any way) and restart >>> g_down and g_up. >> >> we'll look into this, thanks. If we can spare the extra fields >> in the g_provider, the thing is even easier to do. >> >> I just don't know how your suggestion interferes with the naming: >> if I change the pointers, the name of a provider will not >> be anymore a prefix of the name of the node attached above. >> But maybe that is not an architectural requirements but just >> a convenient convention. > > Not only with naming and device creation - the proxy classes cannot be > "normal" classes because it's common that "normal" classes do a lot of > initialization in .taste. (i.e. there at least needs to be a flag for > proxy classes) Take a look at geom_nop, it doesn't taste. It is like a proxy already as far as I can see. I don't know what to do about the naming though.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?b649e5e0903201757s7189890as69ba839042dea83c>