From owner-freebsd-bugs Thu Apr 6 21:10: 6 2000 Delivered-To: freebsd-bugs@freebsd.org Received: from freefall.freebsd.org (freefall.FreeBSD.ORG [204.216.27.21]) by hub.freebsd.org (Postfix) with ESMTP id 7A60D37BD46 for ; Thu, 6 Apr 2000 21:10:02 -0700 (PDT) (envelope-from gnats@FreeBSD.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.9.3/8.9.2) id VAA24903; Thu, 6 Apr 2000 21:10:02 -0700 (PDT) (envelope-from gnats@FreeBSD.org) Received: from smtp.whitebarn.com (Spin.WhiteBarn.Com [216.0.13.113]) by hub.freebsd.org (Postfix) with ESMTP id 5F37A37BA30 for ; Thu, 6 Apr 2000 21:04:01 -0700 (PDT) (envelope-from bob@smtp.whitebarn.com) Received: (from bob@localhost) by smtp.whitebarn.com (8.9.3/8.9.3) id XAA80210; Thu, 6 Apr 2000 23:03:42 -0500 (CDT) (envelope-from bob) Message-Id: <200004070403.XAA80210@smtp.whitebarn.com> Date: Thu, 6 Apr 2000 23:03:42 -0500 (CDT) From: Bob@WhiteBarn.Com Reply-To: Bob@WhiteBarn.Com To: FreeBSD-gnats-submit@freebsd.org X-Send-Pr-Version: 3.2 Subject: kern/17839: ad driver and SMP kernel panic (vinum may be involved) Sender: owner-freebsd-bugs@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org >Number: 17839 >Category: kern >Synopsis: ad driver and SMP kernel panic (vinum may be involved) >Confidential: no >Severity: serious >Priority: medium >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Thu Apr 6 21:10:01 PDT 2000 >Closed-Date: >Last-Modified: >Originator: Bob Van Valzah >Release: FreeBSD 4.0-RELEASE i386, FreeBSD 4.0-STABLE >Organization: >Environment: ASUS P2B-D Dual 500 MHz P-III 256M 3x Seagate 7200 RPM ATAPI UDMA33 drives >Description: "Page fault while in kernel mode" panic whenever /etc/security is run. (This is very inconvenient since /etc/periodic/daily runs it daily.) The instruction pointer at the time of the page fault is bogus, apparently since biodone() is jumping off the deep end. I suspect the ad driver since a traceback shows ad_interrupt() calling biodone() leading up to the panic. See below. I suspect the biodone() code is failing in an SMP environment since it runs fine on my uniprocessor hardware. I am running some of my filesytems under vinum so it may have a role in this too. It gave up trying to sync 492 dirty buffers following the panic. That seems like a lot to me so perhaps that's related to the panic? FWIW, crash dumps work fine through the ata driver once it is reset following the panic. (kgdb) where #0 0xc0151390 in boot () #1 0xc0151748 in poweroff_wait () #2 0xc028670f in trap_fatal () #3 0xc02863a5 in trap_pfault () #4 0xc0285f77 in trap () #5 0xc0ef8ef4 in ?? () <-- instruction pointer at time of page fault #6 0xc01752d7 in biodone () #7 0xc0258a5e in ad_interrupt () #8 0xc025544e in ata_intr () This line printed by panic() may be helpful: interrupt mask = bio <- SMP: XXX since it seems to have something to do with the SMP code. >How-To-Repeat: Just run /etc/security on the above hardware. Blamo. The panic happens about 5 minutes into /etc/security, perhaps since I have several filesystems. Some use vinum and some don't. Other activity may well also cause the panic, but /etc/security kills it every time. >Fix: Don't have one yet, but I'll tell you what I've tried: I tried running a kernel with INVARIANT set and that didn't catch anything. I tried running a kernel with VFS_BIO_DEBUG set and that didn't even make it throught /etc/rc before panicing. I don't know what to try next, but I'll happily run any further tests you can propose on my hardware. Should I try -CURENT? >Release-Note: >Audit-Trail: >Unformatted: To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message