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>