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

Pawel Jakub Dawidek pjd at FreeBSD.org
Sun Mar 22 23:02:56 PDT 2009


On Sun, Mar 22, 2009 at 08:22:01AM +0000, Poul-Henning Kamp wrote:
> In message <eb21ef440903211810gbe60b9bwee87eb441777aa62 at mail.gmail.com>, Luigi 
> Rizzo writes:
> 
> >        BEFORE  ---> [ pp --> gp ...   ]
> >        AFTER   ---> [ pp --> new_gp --> new_cp ] ---> [ new_pp --> gp ... ]
> 
> Correct.
> 
> There are many reasons for doing it this way, but the two major ones
> are:
> 
> Providers see essentially one-way traffic (going down), because the
> bio's have their return-path recorded (admittedly: for this very
> reason), whereas consumers see two way traffic.
> 
> If you wanted to substitute another provider, you would have to stall
> I/O activity on the consumers in order to get all the pointers set
> up right to not derail any bios while doing so.
> 
> If instead you insert under the provider, you can hold topology,
> fiddle the pointers in the right order, and release topology
> all while bios zip up and down over the construction site.

There is still a naming problem. pp and new_pp will end up with the same
name. I'd suggest instructing GEOM to expose only parent in /dev/.

> >[2] the GEOM_PROXY flag that we suggested is just an optimization to
> >    avoid calling taste() on a provider that nobody should be interested
> >    in attaching to. I think its presence does not change the model,
> >    but nothing bad happens if we don't use this flag.
> 
> You would not call taste() anyway, because all the new stuff is
> already open and active.

The taste is still going to be send on new class arrival and on the last
pp write close.

> But you need to add a new g_ctl verb to instantiate a transparant
> instance of the class, and this is where you can tell if inserting
> a given glass is even possible: classes that cannot will error out.
> 
> Similarly, you need a verb to remove a transparent geom, which
> will fail if the class doesn't understand this, or do not consider
> that geom to be transparant.

-- 
Pawel Jakub Dawidek                       http://www.wheel.pl
pjd at FreeBSD.org                           http://www.FreeBSD.org
FreeBSD committer                         Am I Evil? Yes, I Am!
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 187 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-geom/attachments/20090323/da9b4b48/attachment.pgp


More information about the freebsd-geom mailing list