Date: Thu, 30 Nov 2000 14:10:01 -0800 (PST) From: John Baldwin <jhb@FreeBSD.org> To: current@FreeBSD.org, dillon@FreeBSD.org Subject: Weird ffs panic Message-ID: <XFMail.001130141001.jhb@FreeBSD.org>
next in thread | raw e-mail | index | archive | help
I got this weird panic a few days ago on one of my SMP testboxes, but I don't
think it is SMPng related:
Fatal trap 12: page fault while in kernel mode
cpuid = 1; lapic.id = 01000000
fault virtual address = 0x7c
fault code = supervisor read, page not present
...
current process = 7421 (make)
kernel: type 12 trap, code=0
Stopped at bread+0x29L testb $0x20,0x7c(%esi)
db> trace
bread(c8a63d00,2,1000,0,c8b41bcc) at bread+0x29
ffs_blkatoff()
ufs_lookup()
ufs_vnoperate()
ufs_cache_lookup()
ufs_vnoperate()
lookup()
namei()
vn_open()
open()
syscall2()
Xint0x80_syscall()
Now, 0xc8b41bcc is the bpp argument, and from bread in vfs_bio.c:
int
bread(struct vnode * vp, daddr_t blkno, int size, struct ucred * cred,
struct buf ** bpp)
{
struct buf *bp;
bp = getblk(vp, blkno, size, 0, 0);
*bpp = bp;
/* if not found in cache, do some I/O */
if ((bp->b_flags & B_CACHE) == 0) {
I'm fairly sure it is dying trying to do the deref of bp, so I figured bp was
NULL. Checking *bpp confirmed this:
db> x/x 0xc8b41bcc
0xc8b41bcc: 0
This means that getblk() returned NULL. I've looked at getblk() and have no
idea why it would return NULL when passed in a timeout of 0. Any ideas? The
panic was during a buildworld -j 128 btw. Current being in the wonderful state
that it is, I don't think I can get a crashdump, so I'm leaving the machine up
at a ddb prompt if more info is needed.
--
John Baldwin <jhb@FreeBSD.org> -- http://www.FreeBSD.org/~jhb/
PGP Key: http://www.baldwin.cx/~john/pgpkey.asc
"Power Users Use the Power to Serve!" - http://www.FreeBSD.org/
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?XFMail.001130141001.jhb>
