From owner-freebsd-current@FreeBSD.ORG Sun May 30 20:02:10 2004 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 6D7F116A4CE for ; Sun, 30 May 2004 20:02:10 -0700 (PDT) Received: from smtp01.syd.iprimus.net.au (smtp01.syd.iprimus.net.au [210.50.30.52]) by mx1.FreeBSD.org (Postfix) with ESMTP id 9937B43D54 for ; Sun, 30 May 2004 20:02:07 -0700 (PDT) (envelope-from tim@robbins.dropbear.id.au) Received: from robbins.dropbear.id.au (210.50.202.23) by smtp01.syd.iprimus.net.au (7.0.024) id 40B7A0DA00087D88; Mon, 31 May 2004 13:02:06 +1000 Received: by robbins.dropbear.id.au (Postfix, from userid 1000) id 33FB841CE; Mon, 31 May 2004 13:02:58 +1000 (EST) Date: Mon, 31 May 2004 13:02:58 +1000 From: Tim Robbins To: Don Bowman Message-ID: <20040531030258.GA13448@cat.robbins.dropbear.id.au> References: Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.4.1i cc: "'current@freebsd.org'" Subject: Re: sysctl lock, system lockup X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 31 May 2004 03:02:10 -0000 On Sun, May 30, 2004 at 10:18:34PM -0400, Don Bowman wrote: > From: Tim Robbins [mailto:tim@robbins.dropbear.id.au] > > On Sun, May 30, 2004 at 04:35:55PM -0400, Don Bowman wrote: > > > From: Don Bowman [mailto:don@sandvine.com] > > > > On the console i ran 'top', but it wouldn't start, > > > > giving: > > > > > > > > load: 0.00 cmd: top 4282 [sysctl lock] 0.00u 0.00s 0% 180k > > > > > > > > as the status. I can't ^C it, can't ssh in. > > > > can still ping the device. > > > > > > > > It was doing a backgound fsck from an earlier hang. > > > > > > > > i have called panic from db, not sure if the core will > > > > work properly or not. > > > > > > As a followup... i did get a vmcore, and matching kernel.debug, > > > if someone can suggest what i might look @? > > > > print sysctllock (or just sysctllock.sx_xholder if you don't have a > > serial console set up.) > > (kgdb) print sysctllock > $1 = {sx_object = {lo_class = 0xc070dacc, lo_name = 0xc06ce43d "sysctl > lock", > lo_type = 0xc06ce43d "sysctl lock", lo_flags = 3866624, lo_list = { > tqe_next = 0xc074f9e0, tqe_prev = 0xc0747ab0}, lo_witness = > 0xc0751410}, > sx_lock = 0xc0748e80, sx_cnt = -1, sx_shrd_cv = { > cv_description = 0xc06ce43d "sysctl lock", cv_waiters = 0}, > sx_shrd_wcnt = 0, sx_excl_cv = {cv_description = 0xc06ce43d "sysctl lock", > > cv_waiters = 9}, sx_excl_wcnt = 9, sx_xholder = 0xc8ee2150} Hmm. How about the value of sysctllock.sx_xholder->td_proc? Then, if possible, switch to that process (with gdb's proc command) and try to get a backtrace. (I admit to not having used this feature recently; I'm not completely sure that it still works. You may need to pass it a thread pointer instead.) Tim