From owner-freebsd-current Wed Jan 21 03:15:56 1998 Return-Path: Received: (from daemon@localhost) by hub.freebsd.org (8.8.8/8.8.8) id DAA14594 for current-outgoing; Wed, 21 Jan 1998 03:15:56 -0800 (PST) (envelope-from owner-freebsd-current) Received: from gneiss.eps.nagoya-u.ac.jp (gneiss.eps.nagoya-u.ac.jp [133.6.124.148]) by hub.freebsd.org (8.8.8/8.8.8) with ESMTP id DAA14585 for ; Wed, 21 Jan 1998 03:15:51 -0800 (PST) (envelope-from kato@migmatite.eps.nagoya-u.ac.jp) Received: from localhost (localhost [127.0.0.1]) by gneiss.eps.nagoya-u.ac.jp (8.8.8/3.6Wbeta7) with ESMTP id UAA04818 for ; Wed, 21 Jan 1998 20:15:44 +0900 (JST) To: current@freebsd.org Subject: Panic while clustered I/O From: KATO Takenori X-Mailer: Mew version 1.92.4 on Emacs 19.28 / Mule 2.3 (SUETSUMUHANA) X-PGP-Fingerprint: 03 72 85 36 62 46 23 03 52 B1 10 22 44 10 0D 9E Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-Id: <19980121201543Z.kato@gneiss.eps.nagoya-u.ac.jp> Date: Wed, 21 Jan 1998 20:15:43 +0900 X-Dispatcher: imput version 971024 Lines: 342 Sender: owner-freebsd-current@freebsd.org X-Loop: FreeBSD.org Precedence: bulk Please help me. How to repeat: mount_union foo /usr/obj make world Workarround: disabling clustered I/O in ufs_readwrite.c :-(. # gdb -k 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. (kgdb) symbol-file kernel.debug Reading symbols from kernel.debug...done. (kgdb) exec-file /var/crash/kernel.0 (kgdb) core-file /var/crash/vmcore.0 IdlePTD 227000 current pcb at 1d7e10 panicstr: vm_bounce_alloc: Unmapped page panic messages: --- panic: vm_bounce_alloc: Unmapped page syncing disks... 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36 36 giving up dumping to dev 401, offset 93952 dump 42 41 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 --- #0 boot (howto=256) at ../../kern/kern_shutdown.c:285 285 dumppcb.pcb_cr3 = rcr3(); (kgdb) where #0 boot (howto=256) at ../../kern/kern_shutdown.c:285 #1 0xf011511f in panic (fmt=0xf01a7389 "vm_bounce_alloc: Unmapped page") at ../../kern/kern_shutdown.c:425 #2 0xf01a74a9 in vm_bounce_alloc (bp=0xf25028bc) at ../../i386/i386/vm_machdep.c:356 #3 0xf017a9dd in sd_strategy (bp=0xf25028bc, sc_link=0xf050af00) at ../../scsi/sd.c:477 #4 0xf017788c in scsi_strategy (bp=0xf25028bc, device=0xf01cf8a8) at ../../scsi/scsi_driver.c:220 #5 0xf017a3dc in sdstrategy (bp=0xf25028bc) at ../../scsi/sd.c:127 #6 0xf014025e in spec_strategy (ap=0xf43f1e10) at ../../miscfs/specfs/spec_vnops.c:557 #7 0xf013f939 in spec_vnoperate (ap=0xf43f1e10) at ../../miscfs/specfs/spec_vnops.c:127 #8 0xf0187e29 in ufs_vnoperatespec (ap=0xf43f1e10) at ../../ufs/ufs/ufs_vnops.c:2242 #9 0xf018784a in ufs_strategy (ap=0xf43f1e10) at ../../ufs/ufs/ufs_vnops.c:1721 #10 0xf0187df9 in ufs_vnoperate (ap=0xf43f1e10) at ../../ufs/ufs/ufs_vnops.c:2224 #11 0xf012cb76 in bwrite (bp=0xf25028bc) at vnode_if.h:1064 #12 0xf013124a in vop_stdbwrite (ap=0xf43f1e48) at ../../kern/vfs_default.c:283 #13 0xf0131091 in vop_defaultop (ap=0xf43f1e48) at ../../kern/vfs_default.c:130 #14 0xf0187df9 in ufs_vnoperate (ap=0xf43f1e48) at ../../ufs/ufs/ufs_vnops.c:2224 #15 0xf012cd30 in bawrite (bp=0xf25028bc) at vnode_if.h:1081 #16 0xf0130ed3 in cluster_wbuild (vp=0xf05ab400, size=8192, start_lbn=1, len=2) at ../../kern/vfs_cluster.c:750 #17 0xf012d59f in vfs_bio_awrite (bp=0xf2525c7c) at ../../kern/vfs_bio.c:886 #18 0xf01823c7 in ffs_fsync (ap=0xf43f1f3c) at ../../ufs/ffs/ffs_vnops.c:181 #19 0xf0180bae in ffs_sync (mp=0xf0542800, waitfor=2, cred=0xf050ad00, p=0xf0526800) at vnode_if.h:499 #20 0xf0134fc7 in sync (p=0xf0526800, uap=0x0) at ../../kern/vfs_syscalls.c:493 #21 0xf012ec21 in vfs_update () at ../../kern/vfs_bio.c:1974 #22 0xf0108b4e in kproc_start (udata=0xf01cca78) at ../../kern/init_main.c:264 #23 0xf019d573 in fork_trampoline () Cannot access memory at address 0x29ff000. (kgdb) up #1 0xf011511f in panic (fmt=0xf01a7389 "vm_bounce_alloc: Unmapped page") at ../../kern/kern_shutdown.c:425 425 boot(bootopt); (kgdb) up #2 0xf01a74a9 in vm_bounce_alloc (bp=0xf25028bc) at ../../i386/i386/vm_machdep.c:356 356 panic("vm_bounce_alloc: Unmapped page"); (kgdb) list 351 for (i = 0; i < countvmpg; i++) { 352 pa = pmap_kextract(va); 353 if (pa >= SIXTEENMEG) 354 ++dobounceflag; 355 if( pa == 0) 356 panic("vm_bounce_alloc: Unmapped page"); 357 va += PAGE_SIZE; 358 } 359 if (dobounceflag == 0) 360 return; (kgdb) print *bp $1 = {b_hash = {le_next = 0x0, le_prev = 0x0}, b_vnbufs = { le_next = 0x87654321, le_prev = 0x0}, b_freelist = {tqe_next = 0x0, tqe_prev = 0x0}, b_act = {tqe_next = 0x0, tqe_prev = 0x0}, b_proc = 0x0, b_flags = 1090519124, b_qindex = 0, b_usecount = 0 '\000', b_error = 0, b_bufsize = 8192, b_bcount = 8192, b_resid = 0, b_dev = 197637, b_data = 0xf3aaa000
, b_kvabase = 0xf3aaa000
, b_kvasize = 8192, b_lblkno = 0, b_blkno = 341728, b_iodone = 0xf0130904 , b_iodone_chain = 0x0, b_vp = 0xf05ab400, b_dirtyoff = 0, b_dirtyend = 8192, b_rcred = 0x0, b_wcred = 0x0, b_validoff = 0, b_validend = 0, b_pblkno = 2698976, b_saveaddr = 0x0, b_savekva = 0x0, b_driver1 = 0x0, b_driver2 = 0x0, b_spc = 0x0, b_cluster = {cluster_head = { tqh_first = 0xf2525c7c, tqh_last = 0xf2525d0c}, cluster_entry = { tqe_next = 0xf2525c7c, tqe_prev = 0xf2525d0c}}, b_pages = { 0x0 }, b_npages = 0} (kgdb) print bp $2 = (struct buf *) 0xf25028bc (kgdb) up #3 0xf017a9dd in sd_strategy (bp=0xf25028bc, sc_link=0xf050af00) at ../../scsi/sd.c:477 477 vm_bounce_alloc(bp); (kgdb) list 472 /* 473 * Use a bounce buffer if necessary 474 */ 475 #ifdef BOUNCE_BUFFERS 476 if (sc_link->flags & SDEV_BOUNCE) 477 vm_bounce_alloc(bp); 478 #endif 479 480 /* 481 * Place it in the queue of disk activities for this disk (kgdb) up #4 0xf017788c in scsi_strategy (bp=0xf25028bc, device=0xf01cf8a8) at ../../scsi/scsi_driver.c:220 220 (*device->dev_strategy)(bp, sc_link); (kgdb) up #5 0xf017a3dc in sdstrategy (bp=0xf25028bc) at ../../scsi/sd.c:127 127 SCSI_DEVICE_ENTRIES(sd) (kgdb) up #6 0xf014025e in spec_strategy (ap=0xf43f1e10) at ../../miscfs/specfs/spec_vnops.c:557 557 (*bdevsw[major(ap->a_bp->b_dev)]->d_strategy)(ap->a_bp); (kgdb) up #7 0xf013f939 in spec_vnoperate (ap=0xf43f1e10) at ../../miscfs/specfs/spec_vnops.c:127 127 return (VOCALL(spec_vnodeop_p, ap->a_desc->vdesc_offset, ap)); (kgdb) up #8 0xf0187e29 in ufs_vnoperatespec (ap=0xf43f1e10) at ../../ufs/ufs/ufs_vnops.c:2242 2242 return (VOCALL(ufs_specop_p, ap->a_desc->vdesc_offset, ap)); (kgdb) list 2237 ufs_vnoperatespec(ap) 2238 struct vop_generic_args /* { 2239 struct vnodeop_desc *a_desc; 2240 } */ *ap; 2241 { 2242 return (VOCALL(ufs_specop_p, ap->a_desc->vdesc_offset, ap)); 2243 } 2244 2245 (kgdb) up #9 0xf018784a in ufs_strategy (ap=0xf43f1e10) at ../../ufs/ufs/ufs_vnops.c:1721 1721 VOCALL (vp->v_op, VOFFSET(vop_strategy), ap); (kgdb) print ap $3 = (struct vop_strategy_args *) 0xf43f1e10 (kgdb) print *ap $4 = {a_desc = 0xf01ca784, a_bp = 0xf25028bc} (kgdb) print *ap->a_bp $5 = {b_hash = {le_next = 0x0, le_prev = 0x0}, b_vnbufs = { le_next = 0x87654321, le_prev = 0x0}, b_freelist = {tqe_next = 0x0, tqe_prev = 0x0}, b_act = {tqe_next = 0x0, tqe_prev = 0x0}, b_proc = 0x0, b_flags = 1090519124, b_qindex = 0, b_usecount = 0 '\000', b_error = 0, b_bufsize = 8192, b_bcount = 8192, b_resid = 0, b_dev = 197637, b_data = 0xf3aaa000
, b_kvabase = 0xf3aaa000
, b_kvasize = 8192, b_lblkno = 0, b_blkno = 341728, b_iodone = 0xf0130904 , b_iodone_chain = 0x0, b_vp = 0xf05ab400, b_dirtyoff = 0, b_dirtyend = 8192, b_rcred = 0x0, b_wcred = 0x0, b_validoff = 0, b_validend = 0, b_pblkno = 2698976, b_saveaddr = 0x0, b_savekva = 0x0, b_driver1 = 0x0, b_driver2 = 0x0, b_spc = 0x0, b_cluster = {cluster_head = { tqh_first = 0xf2525c7c, tqh_last = 0xf2525d0c}, cluster_entry = { tqe_next = 0xf2525c7c, tqe_prev = 0xf2525d0c}}, b_pages = { 0x0 }, b_npages = 0} (kgdb) up #10 0xf0187df9 in ufs_vnoperate (ap=0xf43f1e10) at ../../ufs/ufs/ufs_vnops.c:2224 2224 return (VOCALL(ufs_vnodeop_p, ap->a_desc->vdesc_offset, ap)); (kgdb) up #11 0xf012cb76 in bwrite (bp=0xf25028bc) at vnode_if.h:1064 1064 return (VCALL((bp)->b_vp, VOFFSET(vop_strategy), &a)); (kgdb) list 1059 { 1060 struct vop_strategy_args a; 1061 1062 a.a_desc = VDESC(vop_strategy); 1063 a.a_bp = bp; 1064 return (VCALL((bp)->b_vp, VOFFSET(vop_strategy), &a)); 1065 } 1066 1067 struct vop_bwrite_args { 1068 struct vnodeop_desc *a_desc; (kgdb) print *bp $6 = {b_hash = {le_next = 0x0, le_prev = 0x0}, b_vnbufs = { le_next = 0x87654321, le_prev = 0x0}, b_freelist = {tqe_next = 0x0, tqe_prev = 0x0}, b_act = {tqe_next = 0x0, tqe_prev = 0x0}, b_proc = 0x0, b_flags = 1090519124, b_qindex = 0, b_usecount = 0 '\000', b_error = 0, b_bufsize = 8192, b_bcount = 8192, b_resid = 0, b_dev = 197637, b_data = 0xf3aaa000
, b_kvabase = 0xf3aaa000
, b_kvasize = 8192, b_lblkno = 0, b_blkno = 341728, b_iodone = 0xf0130904 , b_iodone_chain = 0x0, b_vp = 0xf05ab400, b_dirtyoff = 0, b_dirtyend = 8192, b_rcred = 0x0, b_wcred = 0x0, b_validoff = 0, b_validend = 0, b_pblkno = 2698976, b_saveaddr = 0x0, b_savekva = 0x0, b_driver1 = 0x0, b_driver2 = 0x0, b_spc = 0x0, b_cluster = {cluster_head = { tqh_first = 0xf2525c7c, tqh_last = 0xf2525d0c}, cluster_entry = { tqe_next = 0xf2525c7c, tqe_prev = 0xf2525d0c}}, b_pages = { 0x0 }, b_npages = 0} (kgdb) up #12 0xf013124a in vop_stdbwrite (ap=0xf43f1e48) at ../../kern/vfs_default.c:283 283 return (bwrite(ap->a_bp)); (kgdb) print $7 = {b_hash = {le_next = 0x0, le_prev = 0x0}, b_vnbufs = { le_next = 0x87654321, le_prev = 0x0}, b_freelist = {tqe_next = 0x0, tqe_prev = 0x0}, b_act = {tqe_next = 0x0, tqe_prev = 0x0}, b_proc = 0x0, b_flags = 1090519124, b_qindex = 0, b_usecount = 0 '\000', b_error = 0, b_bufsize = 8192, b_bcount = 8192, b_resid = 0, b_dev = 197637, b_data = 0xf3aaa000
, b_kvabase = 0xf3aaa000
, b_kvasize = 8192, b_lblkno = 0, b_blkno = 341728, b_iodone = 0xf0130904 , b_iodone_chain = 0x0, b_vp = 0xf05ab400, b_dirtyoff = 0, b_dirtyend = 8192, b_rcred = 0x0, b_wcred = 0x0, b_validoff = 0, b_validend = 0, b_pblkno = 2698976, b_saveaddr = 0x0, b_savekva = 0x0, b_driver1 = 0x0, b_driver2 = 0x0, b_spc = 0x0, b_cluster = {cluster_head = { tqh_first = 0xf2525c7c, tqh_last = 0xf2525d0c}, cluster_entry = { tqe_next = 0xf2525c7c, tqe_prev = 0xf2525d0c}}, b_pages = { 0x0 }, b_npages = 0} (kgdb) up #13 0xf0131091 in vop_defaultop (ap=0xf43f1e48) at ../../kern/vfs_default.c:130 130 return (VOCALL(default_vnodeop_p, ap->a_desc->vdesc_offset, ap)); (kgdb) up #14 0xf0187df9 in ufs_vnoperate (ap=0xf43f1e48) at ../../ufs/ufs/ufs_vnops.c:2224 2224 return (VOCALL(ufs_vnodeop_p, ap->a_desc->vdesc_offset, ap)); (kgdb) up #15 0xf012cd30 in bawrite (bp=0xf25028bc) at vnode_if.h:1081 1081 return (VCALL((bp)->b_vp, VOFFSET(vop_bwrite), &a)); (kgdb) print *bp Cannot access memory at address 0x0. (kgdb) pritn bp Undefined command: "pritn". Try "help". (kgdb) print bp $8 = (struct buf *) 0x0 (kgdb) print *(struct buf *)(struct buf *)0xf225028bc Numeric constant too large. (kgdb) print *(struct buf *)0xf225028bc $9 = {b_hash = {le_next = 0x0, le_prev = 0x0}, b_vnbufs = { le_next = 0x87654321, le_prev = 0x0}, b_freelist = {tqe_next = 0x0, tqe_prev = 0x0}, b_act = {tqe_next = 0x0, tqe_prev = 0x0}, b_proc = 0x0, b_flags = 1090519124, b_qindex = 0, b_usecount = 0 '\000', b_error = 0, b_bufsize = 8192, b_bcount = 8192, b_resid = 0, b_dev = 197637, b_data = 0xf3aaa000
, b_kvabase = 0xf3aaa000
, b_kvasize = 8192, b_lblkno = 0, b_blkno = 341728, b_iodone = 0xf0130904 , b_iodone_chain = 0x0, b_vp = 0xf05ab400, b_dirtyoff = 0, b_dirtyend = 8192, b_rcred = 0x0, b_wcred = 0x0, b_validoff = 0, b_validend = 0, b_pblkno = 2698976, b_saveaddr = 0x0, b_savekva = 0x0, b_driver1 = 0x0, b_driver2 = 0x0, b_spc = 0x0, b_cluster = {cluster_head = { tqh_first = 0xf2525c7c, tqh_last = 0xf2525d0c}, cluster_entry = { tqe_next = 0xf2525c7c, tqe_prev = 0xf2525d0c}}, b_pages = { 0x0 }, b_npages = 0} (kgdb) up #16 0xf0130ed3 in cluster_wbuild (vp=0xf05ab400, size=8192, start_lbn=1, len=2) at ../../kern/vfs_cluster.c:750 750 bawrite(bp); (kgdb) print *vp $10 = {v_flag = 8192, v_usecount = 2, v_writecount = 0, v_holdcnt = 3, v_lastr = 0, v_id = 2731, v_mount = 0xf0542800, v_op = 0xf0517c00, v_freelist = {tqe_next = 0xf05b1e00, tqe_prev = 0xf01e077c}, v_mntvnodes = { le_next = 0xf05ac200, le_prev = 0xf0542814}, v_cleanblkhd = { lh_first = 0xf2525c7c}, v_dirtyblkhd = {lh_first = 0xf252a588}, v_numoutput = 2, v_type = VREG, v_un = {vu_mountedhere = 0x0, vu_socket = 0x0, vu_specinfo = 0x0, vu_fifoinfo = 0x0}, v_lease = 0x0, v_lastw = 1, v_cstart = 0, v_lasta = 341744, v_clen = 7, v_object = 0xf46d4000, v_interlock = {lock_data = 0}, v_vnlock = 0x0, v_tag = VT_UFS, v_data = 0xf05b1100, v_cache_src = {lh_first = 0x0}, v_cache_dst = {tqh_first = 0xf05a23c0, tqh_last = 0xf05a23d0}, v_dd = 0xf05ab400, v_ddid = 0, v_pollinfo = {vpi_lock = {lock_data = 0}, vpi_selinfo = {si_pid = 0, si_flags = 0}, vpi_events = 0, vpi_revents = 0}} (kgdb) print tbp $11 = (struct buf *) 0xf252a588 (kgdb) print *tbp $12 = {b_hash = {le_next = 0x0, le_prev = 0xf252b94c}, b_vnbufs = { le_next = 0xf252c7e8, le_prev = 0xf05ab434}, b_freelist = { tqe_next = 0xf252c7e8, tqe_prev = 0xf2507020}, b_act = {tqe_next = 0x0, tqe_prev = 0x0}, b_proc = 0x0, b_flags = 537002656, b_qindex = 2, b_usecount = 15 '\017', b_error = 0, b_bufsize = 8192, b_bcount = 8192, b_resid = 0, b_dev = 4294967295, b_data = 0xf2db9000 "ype.h /usr/include/runetype.h /usr/include/stdlib.h \\\n /usr/include/unistd.h /usr/src/usr.bin/make/sprite.h \\\n /usr/src/usr.bin/make/lst.h /usr/include/sys/param.h \\\n /usr/include/sys/syslimits.h /usr"..., b_kvabase = 0xf2db9000 "ype.h /usr/include/runetype.h /usr/include/stdlib.h \\\n /usr/include/unistd.h /usr/src/usr.bin/make/sprite.h \\\n /usr/src/usr.bin/make/lst.h /usr/include/sys/param.h \\\n /usr/include/sys/syslimits.h /usr"..., b_kvasize = 8192, b_lblkno = 1, b_blkno = 341744, b_iodone = 0, b_iodone_chain = 0x0, b_vp = 0xf05ab400, b_dirtyoff = 0, b_dirtyend = 0, b_rcred = 0x0, b_wcred = 0x0, b_validoff = 0, b_validend = 0, b_pblkno = 0, b_saveaddr = 0x0, b_savekva = 0x0, b_driver1 = 0x0, b_driver2 = 0x0, b_spc = 0x0, b_cluster = {cluster_head = {tqh_first = 0x0, tqh_last = 0x0}, cluster_entry = {tqe_next = 0x0, tqe_prev = 0x0}}, b_pages = {0xf02af100, 0xf02a2134, 0x0 }, b_npages = 2} (kgdb) up #17 0xf012d59f in vfs_bio_awrite (bp=0xf2525c7c) at ../../kern/vfs_bio.c:886 886 nwritten = cluster_wbuild(vp, size, lblkno, ncl); (kgdb) up #18 0xf01823c7 in ffs_fsync (ap=0xf43f1f3c) at ../../ufs/ffs/ffs_vnops.c:181 181 vfs_bio_awrite(bp); (kgdb) up #19 0xf0180bae in ffs_sync (mp=0xf0542800, waitfor=2, cred=0xf050ad00, p=0xf0526800) at vnode_if.h:499 499 return (VCALL(vp, VOFFSET(vop_fsync), &a)); (kgdb) print *vp $13 = {v_flag = 8192, v_usecount = 2, v_writecount = 0, v_holdcnt = 3, v_lastr = 0, v_id = 2731, v_mount = 0xf0542800, v_op = 0xf0517c00, v_freelist = {tqe_next = 0xf05b1e00, tqe_prev = 0xf01e077c}, v_mntvnodes = { le_next = 0xf05ac200, le_prev = 0xf0542814}, v_cleanblkhd = { lh_first = 0xf2525c7c}, v_dirtyblkhd = {lh_first = 0xf252a588}, v_numoutput = 2, v_type = VREG, v_un = {vu_mountedhere = 0x0, vu_socket = 0x0, vu_specinfo = 0x0, vu_fifoinfo = 0x0}, v_lease = 0x0, v_lastw = 1, v_cstart = 0, v_lasta = 341744, v_clen = 7, v_object = 0xf46d4000, v_interlock = {lock_data = 0}, v_vnlock = 0x0, v_tag = VT_UFS, v_data = 0xf05b1100, v_cache_src = {lh_first = 0x0}, v_cache_dst = {tqh_first = 0xf05a23c0, tqh_last = 0xf05a23d0}, v_dd = 0xf05ab400, v_ddid = 0, v_pollinfo = {vpi_lock = {lock_data = 0}, vpi_selinfo = {si_pid = 0, si_flags = 0}, vpi_events = 0, vpi_revents = 0}} (kgdb) up #20 0xf0134fc7 in sync (p=0xf0526800, uap=0x0) at ../../kern/vfs_syscalls.c:493 493 VFS_SYNC(mp, MNT_NOWAIT, p != NULL ? p->p_ucred : NOCRED, p); (kgdb) up #21 0xf012ec21 in vfs_update () at ../../kern/vfs_bio.c:1974 1974 sync(curproc, NULL); (kgdb) up #22 0xf0108b4e in kproc_start (udata=0xf01cca78) at ../../kern/init_main.c:264 264 (*kp->func)(); (kgdb) up #23 0xf019d573 in fork_trampoline () (kgdb) up Cannot access memory at address 0x29ff000. (kgdb) quit ---- KATO Takenori Dept. Earth Planet. Sci., Nagoya Univ., Nagoya, 464-01, Japan PGP public key: finger kato@eclogite.eps.nagoya-u.ac.jp ------------------- Powered by FreeBSD(98) -------------------