code in GEOM thread could not use vnode API (Was:
alq_open_flags() panics in _mtx_lock_flags())
Kostik Belousov
kostikbel at gmail.com
Mon Oct 3 16:31:06 UTC 2011
On Mon, Oct 03, 2011 at 08:27:28PM +0400, Lev Serebryakov wrote:
> Hello, Kostik.
> You wrote 3 октября 2011 г., 20:01:45:
>
> > Look at the body of e.g. g_io_schedule_down(), the
> > THREAD_NO_SLEEPING();
> > call right before the call to geom start method.
>
> > Basically, you cannot use any kernel subsystem in the context of
> > the up/down threads that could sleep. This includes VFS, VM and
> > everything that is layered on top of it.
> VM too? Allocating of new element to put into working queue is
> prohibited? It is what (almost) every GEOM class does.
> Even geom_nop() allocate new struct bio from g_down thread.
Sleeping (and thus non-failing) allocation is prohibited.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 196 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-fs/attachments/20111003/607a030b/attachment.pgp
More information about the freebsd-fs
mailing list