Unloading GEOM classes

Lukas Ertl le at FreeBSD.org
Thu May 20 12:28:55 PDT 2004


On Wed, 19 May 2004, Pawel Jakub Dawidek wrote:

> Here is the patch:
>
> 	http://people.freebsd.org/~pjd/patches/g_unload_class.patch
>
> UNTESTED. Lukas, could you try it and see if it fix your problem.
> The whole trick could a g_waitidle() after calling destroy_geom method.

Thanks Pawel, but unfortunately, it didn't work out.  I subclass the
geom_slice class and end up in a panic in g_slice_spoiled() - the geom's
consumers have already been destroyed, but the providers have not (if I
check for a NULL cp in g_slice_spoiled I end up in an infinite loop, since
the geom isn't "empty").  I'm not sure how g_waitidle() can help here,
since I don't see where g_pending_events is incremented/decremented in
that path.

The last relevant thing I see in the g_topology trace is the call to
g_orphan_provider().  I haven't found out yet why g_orphan_register isn't
called, which would solve the problem, I guess.

cheers,
le

-- 
Lukas Ertl                           http://mailbox.univie.ac.at/~le/
le at FreeBSD.org                       http://people.freebsd.org/~le/


More information about the freebsd-geom mailing list