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>