Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 14 May 2003 22:18:35 +0930
From:      Greg 'groggy' Lehey <grog@FreeBSD.org>
To:        Poul-Henning Kamp <phk@phk.freebsd.dk>
Cc:        cvs-all@FreeBSD.org
Subject:   Re: cvs commit: src/sys/geom geom_disk.c
Message-ID:  <20030514124835.GE4390@wantadilla.lemis.com>
In-Reply-To: <30440.1052912279@critter.freebsd.dk>
References:  <20030514081041.GD4390@wantadilla.lemis.com> <30440.1052912279@critter.freebsd.dk>

next in thread | previous in thread | raw e-mail | index | archive | help

--h56sxpGKRmy85csR
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

On Wednesday, 14 May 2003 at 13:37:59 +0200, Poul-Henning Kamp wrote:
> In message <20030514081041.GD4390@wantadilla.lemis.com>, "Greg 'groggy' Lehey"
> writes:
>
>> malloc() of "16" with the following non-sleepablelocks held:
>> exclusive sleep mutex g_xup r = 0 (0xc8612ca8) locked @ /src/FreeBSD/5-CURRENT-ZAPHOD/src/sys/geom/geom_io.c:363
>
> This is a problem, you cannot sleep in the primary I/O path (ie: strategy()
> and done()), if you sleep in the I/O path, you stop all I/O processing
> and if the system needs to page something out to make the ram available
> to you, you have a deadlock.

I wasn't sleeping.  This happened elsewhere as the result of a drive
going away.  I had expected that the panic stack trace would point me
at it, but it didn't.  I'll investigate further when I've fixed the
current panic.

>> panic: final g_dev_close() with outstanding bios
>
> This means that close was called before all the I/O requests had
> been delivered, this is not allowed.

Correct.

> You have to stop sending I/Os, wait for the ones you have sent to
> come back, then you can close.

They won't complete if the drive has gone away.  I had this solved
before with a call to vinvalbuf(), but the new code is calling the
hardware drivers ) directly rather than the vnode operations.  This
sounds like a mistake to me, unless you can see a good reason for it.

Greg
--
See complete headers for address and phone numbers

--h56sxpGKRmy85csR
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.0 (FreeBSD)

iD8DBQE+wjsjIubykFB6QiMRAl+fAJ9V7DTiHvEqMTKhtFA65M5y2dX5QQCeORzv
42YDh1/i4tIq722O66ycU5o=
=lm7h
-----END PGP SIGNATURE-----

--h56sxpGKRmy85csR--



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