From owner-freebsd-hackers@FreeBSD.ORG Thu Sep 25 22:16:42 2008 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id BB1251065677 for ; Thu, 25 Sep 2008 22:16:42 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from server.baldwin.cx (bigknife-pt.tunnel.tserv9.chi1.ipv6.he.net [IPv6:2001:470:1f10:75::2]) by mx1.freebsd.org (Postfix) with ESMTP id 3DA6A8FC1E for ; Thu, 25 Sep 2008 22:16:42 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from localhost.corp.yahoo.com (john@localhost [IPv6:::1]) (authenticated bits=0) by server.baldwin.cx (8.14.2/8.14.2) with ESMTP id m8PMGZZ9099256; Thu, 25 Sep 2008 18:16:36 -0400 (EDT) (envelope-from jhb@freebsd.org) From: John Baldwin To: Jeff Wheelhouse Date: Thu, 25 Sep 2008 15:53:48 -0400 User-Agent: KMail/1.9.7 References: <200809250845.06042.jhb@freebsd.org> <61B6EB36-0E0C-4FFA-A84B-B434050B6244@wheelhouse.org> In-Reply-To: <61B6EB36-0E0C-4FFA-A84B-B434050B6244@wheelhouse.org> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200809251553.48978.jhb@freebsd.org> X-Greylist: Sender succeeded SMTP AUTH authentication, not delayed by milter-greylist-2.0.2 (server.baldwin.cx [IPv6:::1]); Thu, 25 Sep 2008 18:16:36 -0400 (EDT) X-Virus-Scanned: ClamAV 0.93.1/8340/Thu Sep 25 16:13:43 2008 on server.baldwin.cx X-Virus-Status: Clean X-Spam-Status: No, score=-2.6 required=4.2 tests=BAYES_00,NO_RELAYS autolearn=ham version=3.1.3 X-Spam-Checker-Version: SpamAssassin 3.1.3 (2006-06-01) on server.baldwin.cx Cc: freebsd-hackers@freebsd.org Subject: Re: panic: lockmgr on FreeBSD 7.0-RELEASE-p4 amd64 X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 25 Sep 2008 22:16:42 -0000 On Thursday 25 September 2008 03:29:20 pm Jeff Wheelhouse wrote: > > On Sep 25, 2008, at 8:45 AM, John Baldwin wrote: > > It's probably the one just before the NDINIT (note that the return > > address in > > the call stack is pointing to the next instruction to be executed > > after the > > call to VOP_UNLOCK(), so sometimes it can end up referring to the > > next line > > in the source code from the actual function call): > > Seems like we're six or seven lines of source down, not on the next > line, which was the source of my confusion. But if you're not > confused, I won't be. :) > > > Can you 'p *mp'? I'm curious if mp->mnt_vnodecovered is NULL (in > > which case, > > why didn't the two tests in the if() fail?) > > Apparently I can't; we're stuck with DDB since we can't get a crash > dump and the serial console goes to a hardware terminal server. I'm > afraid I'm not quite clever enough to find the right data structure > without symbols. > > I could try to throw a printf in there, or add a panic if mp- > >mt_vnodecovered is NULL, if you think that would help. The printf > will probably significantly alter timings, so I might need some > guidance as far as what to print, and under what conditions. You can use KTR instead of printf perhaps and then use 'show ktr' from DDB. This won't have the same impact on timing as printf(). I would include PIDs in any KTR traces you do so it's easier to parse the interleaved entries from multiple CPUs. Also, if you have a good test case, it might be worth grabbing a box w/o gmirror that can generate a crashdump and reproduce it there. -- John Baldwin