From owner-freebsd-stable@FreeBSD.ORG Fri Oct 3 05:13:28 2003 Return-Path: Delivered-To: freebsd-stable@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id BE07C16A4C0 for ; Fri, 3 Oct 2003 05:13:28 -0700 (PDT) Received: from smtp.covadmail.net (mx05.covadmail.net [63.65.120.65]) by mx1.FreeBSD.org (Postfix) with SMTP id B7F5B43FD7 for ; Fri, 3 Oct 2003 05:13:26 -0700 (PDT) (envelope-from strick@covad.net) Received: (covad.net 3433 invoked from network); 3 Oct 2003 12:13:21 -0000 Received: from unknown (HELO ice.nodomain) (68.164.194.155) by sun-qmail08 with SMTP; 3 Oct 2003 12:13:21 -0000 Received: from ice.nodomain (localhost [127.0.0.1]) by ice.nodomain (8.12.8p1/8.12.8) with ESMTP id h93CDNKW001188; Fri, 3 Oct 2003 05:13:24 -0700 (PDT) (envelope-from dan@ice.nodomain) Received: (from dan@localhost) by ice.nodomain (8.12.8p1/8.12.8/Submit) id h93CDN5t001187; Fri, 3 Oct 2003 05:13:23 -0700 (PDT) Date: Fri, 3 Oct 2003 05:13:23 -0700 (PDT) From: Dan Strick Message-Id: <200310031213.h93CDN5t001187@ice.nodomain> To: freebsd-stable@freebsd.org cc: dan@ice.nodomain Subject: Re: FreeBSD 4.9 RC1 (more bad news) X-BeenThere: freebsd-stable@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Production branch of FreeBSD source code List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 03 Oct 2003 12:13:28 -0000 On Mon, 29 Sep 2003, I wrote: >> > A few hours ago I downloaded .../i386/ISO-IMAGES/4.9-RC1-i386-disc1.iso > and made kern/mfsroot floppies from it. If I enable my ICH5R SATA > controller in "native" mode, the 4.9-RC1 GENERIC kernel hangs solidly > (only the system reset button can unwedge it) during device configuration. > The last line of bootstrap monologue written by the kernel is: > > ... >> Then I attempted to find out where in the system startup procedure the kernel was wedging by inserting printf()s in the kernel source and narrowed it down to a point in /sys/i386/i386/autoconf.c, near the end of the function configure(): /* * Now we're ready to handle (pending) interrupts. * XXX this is slightly misplaced. */ spl0(); Apparently one of the interrupt handlers is effectively stuck in an infinite loop at high priority. In retrospect this is not much of a surprise, given the problem symptom. I am not sure how to proceed. The FreeBSD kernel is a little strange to me. Since the kernel wedges so hard, there it no way to interrupt it and force a core dump or take a stack trace. The system reset button wipes out everything. I am not sure that my system can save a useful core dump anyway since I have 1 GB of main memory and only 64 MB of swap space. (This may seem like an odd configuration, but if you consider the current price of main memory and some other things it starts to make sense.) If necessary, I can find some disk space for the dump. I also don't know exactly how to force a core dump or use gdb on the FreeBSD kernel. My past kernel experience was with PDP-11/VAX Unix and SunOS. Is there any documentation or manual pages for such procedures? I can't really find any. (I am aware of the man pages for gdb, ddb, and savecore.) Suggestions would be appreciated. In the mean time, I may try to instrument the kernel interrupt routines. Does printf() work in an interrupt context? If not, is there an alternative? Dan Strick strick@covad.net