Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 20 May 2004 21:28:46 +0200 (CEST)
From:      Lukas Ertl <le@FreeBSD.org>
To:        Pawel Jakub Dawidek <pjd@FreeBSD.org>
Cc:        Poul-Henning Kamp <phk@phk.freebsd.dk>
Subject:   Re: Unloading GEOM classes
Message-ID:  <20040520212020.Q643@korben>
In-Reply-To: <20040519161957.GA845@darkness.comp.waw.pl>
References:  <20040519165626.W4275@pcle2.cc.univie.ac.at> <20040519161957.GA845@darkness.comp.waw.pl>

next in thread | previous in thread | raw e-mail | index | archive | help
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@FreeBSD.org                       http://people.freebsd.org/~le/



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20040520212020.Q643>