From owner-freebsd-stable@FreeBSD.ORG Wed Nov 16 16:24:23 2005 Return-Path: X-Original-To: freebsd-stable@freebsd.org Delivered-To: freebsd-stable@freebsd.org Received: from green.homeunix.org (freefall.freebsd.org [216.136.204.21]) by hub.freebsd.org (Postfix) with ESMTP id 8571416A41F; Wed, 16 Nov 2005 16:24:23 +0000 (GMT) (envelope-from green@green.homeunix.org) Received: from green.homeunix.org (green@localhost [127.0.0.1]) by green.homeunix.org (8.13.4/8.13.1) with ESMTP id jAGGOMHk021982; Wed, 16 Nov 2005 11:24:22 -0500 (EST) (envelope-from green@green.homeunix.org) Received: (from green@localhost) by green.homeunix.org (8.13.4/8.13.1/Submit) id jAGGOLHD021981; Wed, 16 Nov 2005 11:24:21 -0500 (EST) (envelope-from green) Date: Wed, 16 Nov 2005 11:24:21 -0500 From: Brian Fundakowski Feldman To: Lars Kristiansen Message-ID: <20051116162421.GE76352@green.homeunix.org> References: <20051115065740.GH39882@cirb503493.alcatel.com.au> <20051115100813.74195.qmail@web36214.mail.mud.yahoo.com> <20051115103821.GJ39882@cirb503493.alcatel.com.au> <54759.213.236.228.129.1132153296.squirrel@mail.adventuras.no> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <54759.213.236.228.129.1132153296.squirrel@mail.adventuras.no> User-Agent: Mutt/1.5.11 Cc: freebsd-stable@freebsd.org Subject: Re: Swapfile problem in 6? X-BeenThere: freebsd-stable@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Production branch of FreeBSD source code List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 16 Nov 2005 16:24:23 -0000 On Wed, Nov 16, 2005 at 04:01:36PM +0100, Lars Kristiansen wrote: > > On Tue, 2005-Nov-15 02:08:12 -0800, Rob wrote: > >> makeoptions DEBUG=-g > >> options INVARIANTS > >> options WITNESS > >> options WITNESS_KDB > >> options KDB > >> options DDB > >> options DDB_NUMSYM > >> options GDB > >> > >>Is that enough? > > > > If your system is headless, you probably want 'options BREAK_TO_DEBUGGER' > > as well. > > > > First question is: Does the system still deadlock? INVARIANTS and > > WITNESS will have added sanity checks which might have picked up the > > problem. > > > >>1) Can I debug a kernel that does not crash, but > >> just hangs in a deadlock? Everything seems to > >> be frozen, except pinging the PC.... > > > > Have a look at > > http://www.freebsd.org/doc/en_US.ISO8859-1/books/developers-handbook/kerneldebug-online-ddb.html > > and ddb(4). Unless you have another system handy, you might like to print > > out ddb(4) - it's difficult to read man pages when you're in the kernel > > debugger :-). > > > >>2) Is such debugging possible on a headless PC > >> without a keyboard attached? > >> I do have serial console access. > > > > Yes. See above URL. The advantage is that you can (hopefully) > > capture a log of your debug session. Send a serial BREAK and you > > should get a DDB> prompt. > > > > Basically, wait until your system deadlocks. BREAK into DDB. > > As a start, run 'show lockedvnods', 'ps'. My guess is that you'll > > see a lock that has a number of waiters - which is probably the > > culprit. Use 'panic' to get a crashdump and then you can use kgdb > > to rummage around once you reboot - see > > http://www.freebsd.org/doc/en_US.ISO8859-1/books/developers-handbook/kerneldebug-gdb.html > > > > If in doubt, post the output from the above commands here and someone > > will hopefully provide further input. > > Hello again, I am the "me too"-guy with console-access. > I am not a programmer and it is the first time I see debugging screen. > > It deadlocked again, and I did as advised above: > (ddb: show lockedvnods; ps ; panic) > but did not understand much of the output. > Looked maybe like syncer and swap_pager was locked? > Do i need to write all this down or can I get the output saved somewhere? > > I got a 32MB coredump but the same lack of understanding applies. > > Please tell me if I can be of any help! This is fun. Do you have the ability to connect another computer by RS-232? It's easy to get a serial terminal console going (err that is if you find the right guide as opposed to stabbing blindly and just referencing man pages as I like to do.) The coredump should supply the same (and more) information, and someone can walk through with you doing a post-mortem gdb session. For example, try doing the following now that you have the coredump: # ps wwwauxlH -N /boot/kernel/kernel -M /var/crash/vmcore.whatever -- Brian Fundakowski Feldman \'[ FreeBSD ]''''''''''\ <> green@FreeBSD.org \ The Power to Serve! \ Opinions expressed are my own. \,,,,,,,,,,,,,,,,,,,,,,\