Received: (from majordomo@localhost) by oss.sgi.com (8.11.3/8.11.3) id f35KBj205447 for linux-xfs-outgoing; Thu, 5 Apr 2001 13:11:45 -0700 Received: from ns.tecosim.de (ns.tecosim.de [194.24.222.9]) by oss.sgi.com (8.11.3/8.11.3) with ESMTP id f35KBgM05444 for ; Thu, 5 Apr 2001 13:11:42 -0700 Received: from donner.tecosim.de (root@donner.tecosim.de [194.24.222.109]) by ns.tecosim.de (8.9.3/8.9.3/SuSE Linux 8.9.3-0.1) with ESMTP id WAA18660; Thu, 5 Apr 2001 22:11:41 +0200 Received: (from leh@localhost) by donner.tecosim.de (8.11.2/8.11.2/SuSE Linux 8.11.1-0.5) id f35KBfL01266; Thu, 5 Apr 2001 22:11:41 +0200 Date: Thu, 5 Apr 2001 22:11:41 +0200 From: Utz Lehmann To: Russell Cattelan Cc: linux-xfs@oss.sgi.com Subject: Re: shutdown umount hangs Message-ID: <20010405221141.A1151@tecosim.de> References: <200104051412.f35ECMU25857@jen.americas.sgi.com> <20010405172344.A1151@tecosim.de> <3ACC9D13.33DA7299@thebarn.com> <3ACCB6A7.EA84241@thebarn.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2.5i In-Reply-To: <3ACCB6A7.EA84241@thebarn.com>; from cattelan@thebarn.com on Thu, Apr 05, 2001 at 02:17:11PM -0400 Sender: owner-linux-xfs@oss.sgi.com Precedence: bulk Russell Cattelan [cattelan@thebarn.com] wrote: > Ok one more shot at it. > > I'm not convinced this is entirely correct, but is closer to the irix semantics > > notable exception; the pagebuf lock is not grabbed before checking the pin count. > > I'm trying to think of a scenario where is this matters, it is much cheaper to > > just check the count rather than grabbing the lock checking the count and then dropping the > > lock. > > If this still hangs please send the bt and the output of kdb's pb . > > I've tested doing busy umounts: > > mount /xfs2; cd /xfs2/dbench/; ./dbench 10 ; cd / ; umount /xfs2 > > seems to work?! > > I'm going toss a lvm volume on top of this and see if that makes a difference. > > -- > Russell Cattelan > -- > Digital Elves inc. -- Currently on loan to SGI > Linux XFS core developer. > it still hangs. utz Entering kdb (current=0xc0358000, pid 0) due to Keyboard Entry kdb> ps Task Addr Pid Parent [*] cpu State Thread Command 0xc15fe000 00000001 00000000 0 000 stop 0xc15fe260 init 0xc15f0000 00000002 00000001 0 000 stop 0xc15f0260 keventd 0xc15ec000 00000003 00000001 0 000 stop 0xc15ec260 kswapd 0xc15ea000 00000004 00000001 0 000 stop 0xc15ea260 kreclaimd 0xc15e8000 00000005 00000001 0 000 stop 0xc15e8260 bdflush 0xc15e6000 00000006 00000001 0 000 stop 0xc15e6260 kupdated 0xc15c0000 00000007 00000001 0 000 stop 0xc15c0260 scsi_eh_0 0xc157e000 00000008 00000001 0 000 stop 0xc157e260 mdrecoveryd 0xc1572000 00000009 00000001 0 000 stop 0xc1572260 pagebuf_daemon 0xcb622000 00001228 00000001 0 000 stop 0xcb622260 rc 0xcbe80000 00001615 00001228 0 000 stop 0xcbe80260 S20reboot 0xcf7fe000 00001636 00001615 0 000 stop 0xcf7fe260 umount kdb> bta Stack traceback for pid 1 EBP EIP Function(args) 0xc15ffefc 0xc01108ae schedule+0x2de (0xc15fff10) kernel .text 0xc0100000 0xc01105d0 0xc0110a10 0xc15fff24 0xc011059a schedule_timeout+0x7a kernel .text 0xc0100000 0xc0110520 0xc01105c0 0xc013d613 do_select+0x93 (0xb, 0xc15fffa8, 0xc15fffa4) kernel .text 0xc0100000 0xc013d580 0xc013d790 0xc013dbf2 sys_select+0x432 (0xb, 0xbffff93c, 0x0, 0x0, 0xbffff884) kernel .text 0xc0100000 0xc013d7c0 0xc013dd70 0xc0106f17 system_call+0x33 kernel .text 0xc0100000 0xc0106ee4 0xc0106f1c Enter to end, to continue: Stack traceback for pid 2 EBP EIP Function(args) 0xc15f1fa8 0xc01108ae schedule+0x2de (0x700) kernel .text 0xc0100000 0xc01105d0 0xc0110a10 0xc011dd05 context_thread+0x115 kernel .text 0xc0100000 0xc011dbf0 0xc011ddb0 0xc01054b3 kernel_thread+0x23 kernel .text 0xc0100000 0xc0105490 0xc01054c0 Enter to end, to continue: Stack traceback for pid 3 EBP EIP Function(args) 0xc15edf90 0xc01108ae schedule+0x2de (0xc15edfa4) kernel .text 0xc0100000 0xc01105d0 0xc0110a10 0xc15edfb8 0xc011059a schedule_timeout+0x7a (0x10f00, 0xc027bbb1, 0xc15ec239) kernel .text 0xc0100000 0xc0110520 0xc01105c0 0xc15edfdc 0xc0110c16 interruptible_sleep_on_timeout+0x46 (0xc15fffbc) kernel .text 0xc0100000 0xc0110bd0 0xc0110c40 0xc01293b9 kswapd+0xe9 kernel .text 0xc0100000 0xc01292d0 0xc01293e0 0xc01054b3 kernel_thread+0x23 kernel .text 0xc0100000 0xc0105490 0xc01054c0 Enter to end, to continue: Stack traceback for pid 4 EBP EIP Function(args) 0xc15ebfb0 0xc01108ae schedule+0x2de (0x10f00) kernel .text 0xc0100000 0xc01105d0 0xc0110a10 0xc15ebfcc 0xc0110bb0 interruptible_sleep_on+0x40 (0x10f00, 0xc15fffb0) kernel .text 0xc0100000 0xc0110b70 0xc0110bd0 0xc012948b kreclaimd+0x5b kernel .text 0xc0100000 0xc0129430 0xc0129510 0xc01054b3 kernel_thread+0x23 kernel .text 0xc0100000 0xc0105490 0xc01054c0 Enter to end, to continue: Stack traceback for pid 5 EBP EIP Function(args) 0xc15e9fd8 0xc01108ae schedule+0x2de (0x10f00) kernel .text 0xc0100000 0xc01105d0 0xc0110a10 0xc0132c3e bdflush+0xce kernel .text 0xc0100000 0xc0132b70 0xc0132c50 0xc01054b3 kernel_thread+0x23 kernel .text 0xc0100000 0xc0105490 0xc01054c0 Enter to end, to continue: Stack traceback for pid 6 EBP EIP Function(args) 0xc15e7f88 0xc01108ae schedule+0x2de kernel .text 0xc0100000 0xc01105d0 0xc0110a10 0xc0133a83 __wait_on_super+0x73 (0xcf909e00) kernel .text 0xc0100000 0xc0133a10 0xc0133aa0 0xc0133ae5 sync_supers+0x45 (0x0) kernel .text 0xc0100000 0xc0133aa0 0xc0133b50 0xc0132a67 sync_old_buffers+0x7 (0x10f00) kernel .text 0xc0100000 0xc0132a60 0xc0132aa0 0xc0132d2c kupdate+0xdc kernel .text 0xc0100000 0xc0132c50 0xc0132d30 0xc01054b3 kernel_thread+0x23 kernel .text 0xc0100000 0xc0105490 0xc01054c0 Enter to end, to continue: Stack traceback for pid 7 EBP EIP Function(args) 0xc15c1f78 0xc01108ae schedule+0x2de (0xc15c20c0, 0xc15c0000) kernel .text 0xc0100000 0xc01105d0 0xc0110a10 0xc0105b00 __down_interruptible+0x80 kernel .text 0xc0100000 0xc0105a80 0xc0105b50 0xc0105b9f __down_failed_interruptible+0x7 (0x100, 0xc15fff68, 0xc15fffc0, 0xc15c20c0, 0x0) kernel .text 0xc0100000 0xc0105b98 0xc0105ba4 0xc0271403 stext_lock+0xdab kernel .text.lock 0xc0270658 0xc0270658 0xc0271800 0xc01f660e scsi_error_handler+0xbe kernel .text 0xc0100000 0xc01f6550 0xc01f6680 0xc01054b3 kernel_thread+0x23 kernel .text 0xc0100000 0xc0105490 0xc01054c0 Enter to end, to continue: Stack traceback for pid 8 EBP EIP Function(args) 0xc157ffb4 0xc01108ae schedule+0x2de kernel .text 0xc0100000 0xc01105d0 0xc0110a10 0xc022d694 md_thread+0x104 kernel .text 0xc0100000 0xc022d590 0xc022d700 0xc01054b3 kernel_thread+0x23 kernel .text 0xc0100000 0xc0105490 0xc01054c0 Enter to end, to continue: Stack traceback for pid 9 EBP EIP Function(args) 0xc1573f90 0xc01108ae schedule+0x2de (0xc144ac08) kernel .text 0xc0100000 0xc01105d0 0xc0110a10 0xc1573fac 0xc0110bb0 interruptible_sleep_on+0x40 (0xc1573fdc, 0xc1573fdc, 0xf00) kernel .text 0xc0100000 0xc0110b70 0xc0110bd0 0xc015d604 pagebuf_daemon+0xd4 kernel .text 0xc0100000 0xc015d530 0xc015d760 0xc01054b3 kernel_thread+0x23 kernel .text 0xc0100000 0xc0105490 0xc01054c0 Enter to end, to continue: Stack traceback for pid 1228 EBP EIP Function(args) 0xcb623f80 0xc01108ae schedule+0x2de (0xcb622000) kernel .text 0xc0100000 0xc01105d0 0xc0110a10 0xc0115caf sys_wait4+0x37f (0xffffffff, 0xbffff8a0, 0x0, 0x0, 0x0) kernel .text 0xc0100000 0xc0115930 0xc0115ce0 0xc0106f17 system_call+0x33 kernel .text 0xc0100000 0xc0106ee4 0xc0106f1c Enter to end, to continue: Stack traceback for pid 1615 EBP EIP Function(args) 0xcbe81f80 0xc01108ae schedule+0x2de (0xcbe80000) kernel .text 0xc0100000 0xc01105d0 0xc0110a10 0xc0115caf sys_wait4+0x37f (0xffffffff, 0xbffffa00, 0x0, 0x0, 0x0) kernel .text 0xc0100000 0xc0115930 0xc0115ce0 0xc0106f17 system_call+0x33 kernel .text 0xc0100000 0xc0106ee4 0xc0106f1c Enter to end, to continue: Stack traceback for pid 1636 EBP EIP Function(args) 0xcf7ffe58 0xc01108ae schedule+0x2de (0xcfc14ec0) kernel .text 0xc0100000 0xc01105d0 0xc0110a10 0xcf7ffe70 0xc0105a2f __down+0x5f kernel .text 0xc0100000 0xc01059d0 0xc0105a80 0xc0105b94 __down_failed+0x8 (0xcfc14ec0, 0xc01aa9c2, 0xcfc14ec0, 0xcfc85800, 0xcfc14ec0) kernel .text 0xc0100000 0xc0105b8c 0xc0105b98 0xc0271025 stext_lock+0x9cd kernel .text.lock 0xc0270658 0xc0270658 0xc0271800 0xc015cfea pagebuf_iowait+0x2a (0xcfc14ec0, 0xcfc85800, 0xcfc14ec0, 0xcfc14ec0) kernel .text 0xc0100000 0xc015cfc0 0xc015cff0 0xc01aa9c2 xfs_unmountfs_writesb+0x92 (0xcfc85800) kernel .text 0xc0100000 0xc01aa930 0xc01aaa10 0xc01aa88a xfs_unmountfs+0x5a (0xcfc85800, 0x3, 0xc03ac360) kernel .text 0xc0100000 0xc01aa830 0xc01aa8e0 0xc01b2f78 xfs_unmount+0x168 (0xcfc85800, 0x0, 0xc03ac360) kernel .text 0xc0100000 0xc01b2e10 0xc01b2f90 0xc01bdf4a fs_dounmount+0x5a (0xcfc85800, 0x0, 0x0, 0xc03ac360, 0xcf7e5dc8) kernel .text 0xc0100000 0xc01bdef0 0xc01bdf70 0xc01c52b8 linvfs_put_super+0x58 (0xcf909e00) kernel .text 0xc0100000 0xc01c5260 0xc01c5330 more> 0xc0134237 kill_super+0x87 (0xcf909e00, 0x0, 0xc1575f40, 0xffffffff, 0xcfb6fac0) kernel .text 0xc0100000 0xc01341b0 0xc01342f0 0xc0134641 do_umount+0x1c1 (0xc1575f40, 0x0, 0x0) kernel .text 0xc0100000 0xc0134480 0xc0134650 0xc0134716 sys_umount+0xc6 (0x8052428, 0x0) kernel .text 0xc0100000 0xc0134650 0xc0134750 0xc013475c sys_oldumount+0xc (0x8052428, 0x804ee27, 0x8052468, 0x8052429, 0x804ee20) kernel .text 0xc0100000 0xc0134750 0xc0134760 0xc0106f17 system_call+0x33 kernel .text 0xc0100000 0xc0106ee4 0xc0106f1c Enter to end, to continue: kdb> pb 0xcfc14ec0 page_buf_t at 0xcfc14ec0 pb_flags MAPPED SYNC LOCKABLE MEM_ALLOCATED FORCEIO pb_target 0xcf7e5ac0 pb_hold 1 pb_next 0xcfc14ec0 pb_prev 0xcfc14ec0 pb_file_offset 0x0 pb_buffer_length 0x200 pb_addr 0xcf7d0200 pb_bn 0x0 pb_count_desired 0x200 pb_io_remaining 0 pb_error 0 pb_mem 0xcfc15c40 pb_iodonesema (-1,1) pb_sema (1,0) pincount (0) kdb> reboot