From owner-svn-src-all@FreeBSD.ORG Sat Nov 12 21:09:02 2011 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 42B6C1065670; Sat, 12 Nov 2011 21:09:02 +0000 (UTC) (envelope-from marius@alchemy.franken.de) Received: from alchemy.franken.de (alchemy.franken.de [194.94.249.214]) by mx1.freebsd.org (Postfix) with ESMTP id 9B1B18FC0C; Sat, 12 Nov 2011 21:09:01 +0000 (UTC) Received: from alchemy.franken.de (localhost [127.0.0.1]) by alchemy.franken.de (8.14.4/8.14.4/ALCHEMY.FRANKEN.DE) with ESMTP id pACL902k067463; Sat, 12 Nov 2011 22:09:00 +0100 (CET) (envelope-from marius@alchemy.franken.de) Received: (from marius@localhost) by alchemy.franken.de (8.14.4/8.14.4/Submit) id pACL90ha067462; Sat, 12 Nov 2011 22:09:00 +0100 (CET) (envelope-from marius) Date: Sat, 12 Nov 2011 22:09:00 +0100 From: Marius Strobl To: Alexander Motin Message-ID: <20111112210900.GJ56603@alchemy.franken.de> References: <201111012312.pA1NCNuY089112@svn.freebsd.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201111012312.pA1NCNuY089112@svn.freebsd.org> User-Agent: Mutt/1.4.2.3i Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r227009 - head/sys/geom X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 Nov 2011 21:09:02 -0000 On Tue, Nov 01, 2011 at 11:12:23PM +0000, Alexander Motin wrote: > Author: mav > Date: Tue Nov 1 23:12:22 2011 > New Revision: 227009 > URL: http://svn.freebsd.org/changeset/base/227009 > > Log: > Make orphan() method in geom_dev asynchronous using destroy_dev_sched_cb() > instead of destroy_dev(). It moves device destruction waiting out of the > topology lock and so fixes dead lock between orphanization and closing. > Real provider and geom destruction called from swi context after device > destroyed as callback of the destroy_dev_sched_cb(). > This change causes fsck_ffs(8) and mount(8) to hang unkillably on sparc64 when the kernel is built with either GEOM_PART_GPT or GEOM_LABEL. When breaking into the kernel the backtrace so far looked like one of these two ways: g_wither_washer() at g_wither_washer+0x18 g_run_events() at g_run_events+0x4dc g_event_procbody() at g_event_procbody+0x8c fork_exit() at fork_exit+0x9c fork_trampoline() at fork_trampoline+0x8 find_instance() at find_instance+0x80 _sx_xlock() at _sx_xlock+0xf0 g_run_events() at g_run_events+0xb0 g_event_procbody() at g_event_procbody+0x8c fork_exit() at fork_exit+0x9c fork_trampoline() at fork_trampoline+0x8 I've no clue about geom(4) so I also have no idea how to debug this. Marius