RFC: adding 'proxy' nodes to provider ports (with patch)

Marius Nünnerich marius at nuenneri.ch
Fri Mar 20 18:25:23 PDT 2009


On Sat, Mar 21, 2009 at 00:34, Ivan Voras <ivoras at 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 at 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.


More information about the freebsd-geom mailing list