看板 DFBSD_bugs 關於我們 聯絡資訊
Hello. Caught this panic this morning during `hammer cleanup' on a Atom D510 based system with 4G bytes of RAM installed and running x86_64 kernel. It was running pbulk at the same time. The kernel was built from source s of 8d2576868. The `insufficient buffers to rebalance the tree' warnings have been observed before the system panicked. The global variable nbuf (which holds the value for vfs.nbuf sysctl node) contains 1475 in the kgdb session, which is much lower than the value seen on other systems running 32-bit kernel. : Feb 9 05:05:09 atom64 kernel: hammer: System has insufficient buffers to rebalance the tree. nbuf < 3969 Feb 9 05:19:01 atom64 kernel: hammer: System has insufficient buffers to rebalance the tree. nbuf < 3969 Feb 9 05:27:23 atom64 syslogd: kernel boot file is /boot/kernel/kernel Feb 9 05:27:23 atom64 kernel: panic: reassignbuf: dup lblk vp 0xffffffe0136df000 bp 0xffffffe00df730b0 And the backtrace follows: #4 0xffffffff802a9c1e in panic ( fmt=0xffffffff80530140 "reassignbuf: dup lblk vp %p bp %p") at /usr/src/sys/kern/kern_shutdown.c:799 #5 0xffffffff8031262f in reassignbuf (bp=0xffffffe00df730b0) at /usr/src/sys/kern/vfs_subr.c:1046 #6 0xffffffff802fa526 in bundirty (bp=0xffffffe00df730b0) at /usr/src/sys/kern/vfs_bio.c:1247 #7 0xffffffff802fe705 in bawrite (bp=0xffffffe00df730b0) at /usr/src/sys/kern/vfs_bio.c:1025 #8 0xffffffff802fe98a in vfs_bio_awrite (bp=0xffffffe00df730b0) at /usr/src/sys/kern/vfs_bio.c:1937 #9 0xffffffff802fedae in flushbufqueues (q=BQUEUE_DIRTY) at /usr/src/sys/kern/vfs_bio.c:2694 #10 0xffffffff802ff041 in buf_daemon () at /usr/src/sys/kern/vfs_bio.c:2525 #11 0xffffffff8029961e in suspend_kproc (td=0x0, timo=0) at /usr/src/sys/kern/kern_kthread.c:189 Backtrace stopped: previous frame inner to this frame (corrupt stack?) (kgdb) fr 5 #5 0xffffffff8031262f in reassignbuf (bp=0xffffffe00df730b0) at /usr/src/sys/kern/vfs_subr.c:1046 1046 panic("reassignbuf: dup lblk vp %p bp %p", (kgdb) l 1041 buf_rb_tree_RB_REMOVE(&vp->v_rbdirty_tree, bp); 1042 bp->b_flags &= ~B_VNDIRTY; 1043 } 1044 if ((bp->b_flags & B_VNCLEAN) == 0) { 1045 if (buf_rb_tree_RB_INSERT(&vp->v_rbclean_tree, bp)) { 1046 panic("reassignbuf: dup lblk vp %p bp %p", 1047 vp, bp); 1048 } 1049 bp->b_flags |= B_VNCLEAN; 1050 } (kgdb) Best Regards, YONETANI Tomokazu.