xfs
[Top] [All Lists]

Re: shutdown umount hangs

To: Russell Cattelan <cattelan@xxxxxxxxxxx>
Subject: Re: shutdown umount hangs
From: Utz Lehmann <leh@xxxxxxxxxx>
Date: Thu, 5 Apr 2001 22:11:41 +0200
Cc: linux-xfs@xxxxxxxxxxx
In-reply-to: <3ACCB6A7.EA84241@thebarn.com>; from cattelan@thebarn.com on Thu, Apr 05, 2001 at 02:17:11PM -0400
References: <leh@tecosim.de> <200104051412.f35ECMU25857@jen.americas.sgi.com> <20010405172344.A1151@tecosim.de> <3ACC9D13.33DA7299@thebarn.com> <3ACCB6A7.EA84241@thebarn.com>
Sender: owner-linux-xfs@xxxxxxxxxxx
User-agent: Mutt/1.2.5i
Russell Cattelan [cattelan@xxxxxxxxxxx] 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 <addr>.
> 
> 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 <q> to end, <cr> 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 <q> to end, <cr> 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 <q> to end, <cr> 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 <q> to end, <cr> 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 <q> to end, <cr> 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 <q> to end, <cr> 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 <q> to end, <cr> 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 <q> to end, <cr> 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 <q> to end, <cr> 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 <q> to end, <cr> 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 <q> to end, <cr> 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 <q> to end, <cr> 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

<Prev in Thread] Current Thread [Next in Thread>