Date: Sun, 29 Mar 1998 17:40:15 -0400 (AST) From: The Hermit Hacker <scrappy@hub.org> To: Chris Csanady <ccsanady@friley585.res.iastate.edu> Cc: freebsd-stable@FreeBSD.ORG, freebsd-scsi@FreeBSD.ORG Subject: panic: biodone: buffer not busy (Was: Re: Signal 11's.. (and SCB problems) ) Message-ID: <Pine.BSF.3.96.980329173723.1536J-300000@thelab.hub.org> In-Reply-To: <199803291535.JAA18988@friley585.res.iastate.edu>
next in thread | previous in thread | raw e-mail | index | archive | help
[-- Attachment #1 --]
On Sun, 29 Mar 1998, Chris Csanady wrote:
> I have actually tried removing the AHC_SCBPAGING_ENABLE and AHC_TAGENABLE
> lines, although that does not seem to help under SMP. I have not tried
> that without SMP though.
Well, I removed the AHC_SCBPAGING_ENABLE option, but left in the
TAGENABLE, and it panic'd a few hours later (panic'ng is better then
hanging...debuggable, at least)...
I've included here both the config file for my machine, as it
stands now, as well as the gdb output for the core dump. If there is any
more information that I can provide, please feel free to ask...I have lots
of space right now for /var/crash, so am in no hurry to remove it...
[-- Attachment #2 --]
Script started on Sun Mar 29 16:31:59 1998
# gdb -k kernel.Mar29 vmcore.0
GDB is free software and you are welcome to distribute copies of it
under certain conditions; type "show copying" to see the conditions.
There is absolutely no warranty for GDB; type "show warranty" for details.
GDB 4.16 (i386-unknown-freebsd),
Copyright 1996 Free Software Foundation, Inc...
IdlePTD 1c2000
current pcb at 1a9070
panic: biodone: buffer not busy
#0 boot (howto=260) at ../../kern/kern_shutdown.c:266
266 dumppcb.pcb_cr3 = rcr3();
(kgdb) where
#0 boot (howto=260) at ../../kern/kern_shutdown.c:266
#1 0xf010ec72 in panic (fmt=0xf01295b5 "biodone: buffer not busy")
at ../../kern/kern_shutdown.c:390
#2 0xf012971c in biodone (bp=0xf369c85c) at ../../kern/vfs_bio.c:1557
#3 0xf0154e1c in scsi_done (xs=0xf16ec100) at ../../scsi/scsi_base.c:449
#4 0xf0196d41 in ahc_done (ahc=0xf1669800, scb=0xf166aaa0)
at ../../i386/scsi/aic7xxx.c:1944
#5 0xf01947c7 in ahc_intr (arg=0xf1669800) at ../../i386/scsi/aic7xxx.c:814
#6 0xf01988ea in ahc_timeout (arg=0xf166aa40)
at ../../i386/scsi/aic7xxx.c:2882
#7 0xf010665c in softclock () at ../../kern/kern_clock.c:715
#8 0xf0176ad7 in doreti_swi ()
#9 0xf0129563 in biowait (bp=0xf36e2e24) at ../../kern/vfs_bio.c:1532
#10 0xf012791f in bread (vp=0xf169b200, blkno=3932448, size=8192, cred=0x0,
bpp=0xefbffdf4) at ../../kern/vfs_bio.c:244
#11 0xf015c3ff in ffs_update (ap=0xefbffe20) at ../../ufs/ffs/ffs_inode.c:137
#12 0xf015faf0 in ffs_fsync (ap=0xefbffe64) at vnode_if.h:1031
#13 0xf015e730 in ffs_sync (mp=0xf16b5e00, waitfor=2, cred=0xf1024a80,
p=0xf01b5fd0) at vnode_if.h:407
#14 0xf012e8a7 in sync (p=0xf01b5fd0, uap=0x0, retval=0x0)
at ../../kern/vfs_syscalls.c:360
#15 0xf010e87d in boot (howto=256) at ../../kern/kern_shutdown.c:199
#16 0xf010ec72 in panic (fmt=0xf01295b5 "biodone: buffer not busy")
at ../../kern/kern_shutdown.c:390
#17 0xf012971c in biodone (bp=0xf36f7590) at ../../kern/vfs_bio.c:1557
#18 0xf0154e1c in scsi_done (xs=0xf16eff80) at ../../scsi/scsi_base.c:449
#19 0xf0196d41 in ahc_done (ahc=0xf1669800, scb=0xf166aa40)
at ../../i386/scsi/aic7xxx.c:1944
#20 0xf01947c7 in ahc_intr (arg=0xf1669800) at ../../i386/scsi/aic7xxx.c:814
#21 0x2eefd in ?? ()
#22 0x2d5b2 in ?? ()
#23 0x39b6 in ?? ()
#24 0x16a8 in ?? ()
#25 0x1096 in ?? ()
(kgdb) up
#1 0xf010ec72 in panic (fmt=0xf01295b5 "biodone: buffer not busy")
at ../../kern/kern_shutdown.c:390
390 boot(bootopt);
(kgdb) up
#2 0xf012971c in biodone (bp=0xf369c85c) at ../../kern/vfs_bio.c:1557
1557 panic("biodone: buffer not busy");
(kgdb) list
1552 {
1553 int s;
1554
1555 s = splbio();
1556 if (!(bp->b_flags & B_BUSY))
1557 panic("biodone: buffer not busy");
1558
1559 if (bp->b_flags & B_DONE) {
1560 splx(s);
1561 printf("biodone: buffer already done\n");
(kgdb) up
#3 0xf0154e1c in scsi_done (xs=0xf16ec100) at ../../scsi/scsi_base.c:449
449 biodone(bp);
(kgdb) list
444 }
445 xs->flags |= ITSDONE;
446 }
447
448 free_xs(xs, sc_link, SCSI_NOSLEEP); /* does a start if needed */
449 biodone(bp);
450 }
451
452 /*
453 * ask the scsi driver to perform a command for us.
(kgdb) quit
# ^Dexit
Script done on Sun Mar 29 16:32:47 1998
[-- Attachment #3 --]
machine "i386"
#cpu "I486_CPU"
cpu "I586_CPU"
ident hub_org
maxusers 128
options "CHILD_MAX=128"
options "OPEN_MAX=128"
config kernel root on wd0
options "MAXMEM=(128*1024)"
options "MAXDSIZ=(256UL*1024*1024)"
options "COMPAT_43"
options SYSVSHM
options SYSVSEM
options SYSVMSG
#options "SHMSEG=128"
#options "SHMMAXPGS=4096"
options INET #Internet communications protocols
options FFS #Fast filesystem
options PROCFS #Process filesystem
options QUOTA #enable disk quotas
options NSWAPDEV=10
pseudo-device ether #Generic Ethernet
pseudo-device loop #Network loopback device
pseudo-device bpfilter 4 #Berkeley packet filter
pseudo-device pty 64 #Pseudo ttys - can go as high as 64
pseudo-device log #Kernel syslog interface (/dev/klog)
pseudo-device ccd 8 #Concatenated disk driver
controller isa0
#controller aha0 at isa? port "IO_AHA0" bio irq ? drq 5 vector ahaintr
controller scbus0 #base SCSI code
device sd0 #SCSI disks
device sc0 at isa? port "IO_KBD" tty irq 1 vector scintr
device npx0 at isa? port "IO_NPX" irq 13 vector npxintr
controller fdc0 at isa? port "IO_FD1" bio irq 6 drq 2 vector fdintr
disk fd0 at fdc0 drive 0
options "CMD640" # work around CMD640 chip deficiency
controller wdc0 at isa? port "IO_WD1" bio irq 14 vector wdintr
disk wd0 at wdc0 drive 0
disk wd1 at wdc0 drive 1
device sio0 at isa? port "IO_COM1" tty irq 4 vector siointr
device sio1 at isa? port "IO_COM2" tty irq 3 vector siointr
device vx0
#device ed0 at isa? port 0x280 net irq 5 iomem 0xd8000 vector edintr
controller pci0
device ncr0
controller ahc0
#options AHC_SCBPAGING_ENABLE
options AHC_TAGENABLE
options AHC_ALLOW_MEMIO
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.3.96.980329173723.1536J-300000>
