Date: Sun, 1 Jan 2006 16:49:22 +0000 (GMT) From: Robert Watson <rwatson@FreeBSD.org> To: Armin Pirkovitsch <a.pirko@inode.at> Cc: freebsd-hackers@freebsd.org Subject: Re: Deadlock FreeBSD 6 / 7 Message-ID: <20060101163522.Y74401@fledge.watson.org> In-Reply-To: <43B6C134.6060802@inode.at> References: <43B6C134.6060802@inode.at>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, 31 Dec 2005, Armin Pirkovitsch wrote: > I have some troubles with my notebook and any version of FreeBSD (starting > with 6 since my sata controller wasn't supported earlier). It looks like as > it would end up in a deadlock which means i have no access to the debugger > nor to any other kind of tracing methods. Even with KTR, WITTNESS and > DIAGNOSTIC enabled in the kerenl I get no message what went wrong or what > might have caused the trouble. These fullstops always turn up when i compile > and install programs (or sometimes during the installation of FreeBSD > itself) Hardware: Intel Pentium-M 760 (Centrino, 2GHz) VIA VT 6421 SATA > Controller 80GB Samsung SATA HD > > I guess one of those parts creates the trouble, but I have no idea how to > trace it... Is there a way to run the whole thing in some kind of debugger? > Or is there a diffrent way to locate the problem? The usual first step to debug a deadlock, if WITNESS or INVARIANTS doesn't trigger dropping you into the debugger, is to break into the debugger using a console or serial break. To do this, you need to compile: options BREAK_TO_DEBUGGER options DDB into your kernel. On syscons (not in X11), you can hit Ctrl-Alt-Escape to try to get to the debugger, or send a serial break. The serial break is often more reliable, and the nice thing about running DDB on a serial console from a second machine is that you can easily copy/paste debug output. Once you're in the debugger, you can list the threads, locks held, trace stacks, and so on. If you can't get into the debugger using a serial break, then usually the next thing you have to try is using an NMI. Unfortunately, most hardware doesn't ship with an NMI button, although some server hardware vendors now provide them. In the vast majority of cases, a serial break will get to the debugger, and in many cases, so will a console break. Robert N M Watson
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20060101163522.Y74401>