Date: Mon, 3 Oct 2011 19:31:00 +0300 From: Kostik Belousov <kostikbel@gmail.com> To: Lev Serebryakov <lev@freebsd.org> Cc: Lawrence Stewart <lstewart@freebsd.org>, fs@freebsd.org Subject: Re: code in GEOM thread could not use vnode API (Was: alq_open_flags() panics in _mtx_lock_flags()) Message-ID: <20111003163100.GT1511@deviant.kiev.zoral.com.ua> In-Reply-To: <1298204673.20111003202728@serebryakov.spb.ru> References: <1258376930.20111002193223@serebryakov.spb.ru> <228926402.20111002231459@serebryakov.spb.ru> <349860851.20111003113417@serebryakov.spb.ru> <4E8986F0.3050007@freebsd.org> <1223820108.20111003161859@serebryakov.spb.ru> <20111003160145.GP1511@deviant.kiev.zoral.com.ua> <1298204673.20111003202728@serebryakov.spb.ru>
next in thread | previous in thread | raw e-mail | index | archive | help
--n+Pw2xyN35UiJQWs Content-Type: text/plain; charset=koi8-r Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Mon, Oct 03, 2011 at 08:27:28PM +0400, Lev Serebryakov wrote: > Hello, Kostik. > You wrote 3 =CF=CB=D4=D1=C2=D2=D1 2011 =C7., 20:01:45: >=20 > > Look at the body of e.g. g_io_schedule_down(), the > > THREAD_NO_SLEEPING(); > > call right before the call to geom start method. >=20 > > 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. --n+Pw2xyN35UiJQWs Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.18 (FreeBSD) iEYEARECAAYFAk6J40QACgkQC3+MBN1Mb4jbxACdGA87XkTHUnq29kstAeQqLaR8 V6sAoNMMc/eMzTJ+xOtAJboXOdt8qu7S =SnrY -----END PGP SIGNATURE----- --n+Pw2xyN35UiJQWs--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20111003163100.GT1511>