From owner-cvs-all@FreeBSD.ORG Wed May 14 06:01:47 2003 Return-Path: Delivered-To: cvs-all@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 2762837B401; Wed, 14 May 2003 06:01:47 -0700 (PDT) Received: from harmony.village.org (rover.bsdimp.com [204.144.255.66]) by mx1.FreeBSD.org (Postfix) with ESMTP id E6F0B43FA3; Wed, 14 May 2003 06:01:45 -0700 (PDT) (envelope-from imp@bsdimp.com) Received: from localhost (warner@rover2.village.org [10.0.0.1]) by harmony.village.org (8.12.8/8.12.3) with ESMTP id h4ED1jkA033892; Wed, 14 May 2003 07:01:45 -0600 (MDT) (envelope-from imp@bsdimp.com) Date: Wed, 14 May 2003 07:00:14 -0600 (MDT) Message-Id: <20030514.070014.76083395.imp@bsdimp.com> To: grog@FreeBSD.org From: "M. Warner Losh" In-Reply-To: <20030514124835.GE4390@wantadilla.lemis.com> References: <20030514081041.GD4390@wantadilla.lemis.com> <30440.1052912279@critter.freebsd.dk> <20030514124835.GE4390@wantadilla.lemis.com> X-Mailer: Mew version 2.1 on Emacs 21.3 / Mule 5.0 (SAKAKI) Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit cc: cvs-src@FreeBSD.org cc: phk@phk.freebsd.dk cc: src-committers@FreeBSD.org cc: cvs-all@FreeBSD.org Subject: Re: cvs commit: src/sys/geom geom_disk.c X-BeenThere: cvs-all@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: CVS commit messages for the entire tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 May 2003 13:01:47 -0000 In message: <20030514124835.GE4390@wantadilla.lemis.com> "Greg 'groggy' Lehey" writes: : 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. Malloc might sleep, and the above warning is that it might sleep. You can't hold mutexes and call malloc. That's what that message is saying. Phk's explaination of what sleeping means is also correct, even if you aren't actually sleeping. Warner