Russell Cattelan [cattelan@xxxxxxxxxxx] wrote:
> Utz Lehmann wrote:
>
> >
> > xfs_unmountfs_writesb pre strat flags 0xa08017e pb_iodonesema cnt(0,0)sl
> > xfs_unmountfs_writesb prot strat flags 0xa08017e pb_iodonesema cnt(0,0)sl
>
> yup the flags are wrong... ok I have another patch for you to try.
> I think this will fix the problem.
> I haven't tested it yet but you can give it a try if you want.
Ok, I tried it. It hangs.
The output of the umount and the printks are not in sync on serial console.
On vt they are.
At one try, it even umount not one xfs partition:
Unmounting file systems
shmfs umounted
/dev/sda2 umounted
Entering kdb (current=0xc0334000, pid 0) due to Keyboard Entry
kdb> ps
Task Addr Pid Parent [*] cpu State Thread Command
0xc15fe000 00000001 00000000 0 000 stop 0xc15fe260 init
0xc15ee000 00000002 00000001 0 000 stop 0xc15ee260 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
0xc15be000 00000007 00000001 0 000 stop 0xc15be260 scsi_eh_0
0xc1574000 00000008 00000001 0 000 stop 0xc1574260 pagebuf_daemon
0xcd510000 00001007 00000001 0 000 stop 0xcd510260 rc
0xcdade000 00001388 00001007 0 000 stop 0xcdade260 S20reboot
0xce65a000 00001408 00001388 0 000 stop 0xce65a260 umount
kdb> btp 1408
EBP EIP Function(args)
0xce65bca0 0xc01108ae schedule+0x2de (0xc1571e00)
kernel .text 0xc0100000 0xc01105d0 0xc0110a10
0xce65bcb8 0xc0105a2f __down+0x5f
kernel .text 0xc0100000 0xc01059d0 0xc0105a80
0xc0105b94 __down_failed+0x8 (0xc015ebc6, 0xc1571e00, 0xce5e3500,
0xce65bdd0, 0x8000)
kernel .text 0xc0100000 0xc0105b8c 0xc0105b98
0xc025b9b3 stext_lock+0x9d7
kernel .text.lock 0xc025afdc 0xc025afdc
0xc025c060
0xc015eac0 _pagebuf_grab_lock+0x10 (0xc1571e00)
kernel .text 0xc0100000 0xc015eab0 0xc015ead0
0xc015ebc6 _pagebuf_find_lockable_buffer+0xf6 (0xce5e3500,
0xc1573280, 0x8000, 0x0, 0x2000)
kernel .text 0xc0100000 0xc015ead0 0xc015eca0
0xc015eccf _pagebuf_get_lockable_buffer+0x2f (0xce5e3500,
0xc1573280, 0x8000, 0x0, 0x2000)
kernel .text 0xc0100000 0xc015eca0 0xc015ed70
0xc015b03a pagebuf_get+0xaa (0xce5e3500, 0x8000, 0x0, 0x2000,
0x22201)
kernel .text 0xc0100000 0xc015af90 0xc015b130
0xc01afade xfs_trans_read_buf+0x5e (0xce54a000, 0x0, 0xce54a164,
0x40, 0x0)
kernel .text 0xc0100000 0xc01afa80 0xc01afdc0
0xc019af42 xfs_itobp+0x112 (0xce54a000, 0x0, 0xce63daf8, 0xce65be9c,
0xce65bea0)
kernel .text 0xc0100000 0xc019ae30 0xc019b000
0xc019dff5 xfs_iflush+0xb5 (0xce63daf8, 0x3)
more>
kernel .text 0xc0100000 0xc019df40 0xc019e330
0xc01b20b3 xfs_unmount_flush+0xa3 (0xce54a000, 0x0, 0xce5e3500,
0x3a03)
kernel .text 0xc0100000 0xc01b2010 0xc01b2150
0xc01b1f6b xfs_unmount+0xdb (0xce54a000, 0x0, 0xc0382fa0)
kernel .text 0xc0100000 0xc01b1e90 0xc01b2010
0xc01bcfca fs_dounmount+0x5a (0xce54a000, 0x0, 0x0, 0xc0382fa0,
0xce5e3808)
kernel .text 0xc0100000 0xc01bcf70 0xc01bcff0
0xc01c42d8 linvfs_put_super+0x58 (0xce5e8e00)
kernel .text 0xc0100000 0xc01c4280 0xc01c4350
0xc0134237 kill_super+0x87 (0xce5e8e00, 0x0, 0xc156ddc0, 0xffffffff,
0xcfb829c0)
kernel .text 0xc0100000 0xc01341b0 0xc01342f0
0xc0134641 do_umount+0x1c1 (0xc156ddc0, 0x0, 0x0)
kernel .text 0xc0100000 0xc0134480 0xc0134650
0xc0134716 sys_umount+0xc6 (0x8052518, 0x0)
kernel .text 0xc0100000 0xc0134650 0xc0134750
0xc013475c sys_oldumount+0xc (0x8052518, 0x804ee27, 0x8052558,
0x8052519, 0x804ee20)
kernel .text 0xc0100000 0xc0134750 0xc0134760
0xc0106f17 system_call+0x33
kernel .text 0xc0100000 0xc0106ee4 0xc0106f1c
And here is the normal hang (after /dev/vg00/opt umounted):
Turning off swap
fs_unmountfs_writesb pre strat flags 0xa08012e pb_iodonesema cnt(0,0)sl
1;32m done
xfs_unmountfs_writesb prot strat flags 0xa08012e pb_iodonesema cnt(0,0)sl
Unmounting filxfs_unmountfs_writesb pre strat flags 0xa08002e pb_iodonesema
cnt(0,0)sl
e systems
shmfsxfs_unmountfs_writesb prot strat flags 0xa08002e pb_iodonesema cnt(0,0)sl
umounted
/dev/sda2 umounted
/dev/vg00/tmp umounted
/dev/vg00/opt umounted
Entering kdb (current=0xc0334000, pid 0) due to Keyboard Entry
kdb> ps
Task Addr Pid Parent [*] cpu State Thread Command
0xc15fe000 00000001 00000000 0 000 stop 0xc15fe260 init
0xc15ee000 00000002 00000001 0 000 stop 0xc15ee260 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
0xc15be000 00000007 00000001 0 000 stop 0xc15be260 scsi_eh_0
0xc1574000 00000008 00000001 0 000 stop 0xc1574260 pagebuf_daemon
0xce3e0000 00001071 00000001 0 000 stop 0xce3e0260 rc
0xce29e000 00001453 00001071 0 000 stop 0xce29e260 S20reboot
0xcf224000 00001473 00001453 0 000 stop 0xcf224260 umount
kdb> btp 1473
EBP EIP Function(args)
0xcf225c58 0xc01108ae schedule+0x2de (0xcf5c2cc0)
kernel .text 0xc0100000 0xc01105d0 0xc0110a10
0xcf225c70 0xc0105a2f __down+0x5f
kernel .text 0xc0100000 0xc01059d0 0xc0105a80
0xc0105b94 __down_failed+0x8 (0xc015ebc6, 0xcf5c2cc0, 0xcf7f9ac0,
0xcf225d88, 0x1baf6000)
kernel .text 0xc0100000 0xc0105b8c 0xc0105b98
0xc025b9b3 stext_lock+0x9d7
kernel .text.lock 0xc025afdc 0xc025afdc
0xc025c060
0xc015eac0 _pagebuf_grab_lock+0x10 (0xcf5c2cc0)
kernel .text 0xc0100000 0xc015eab0 0xc015ead0
0xc015ebc6 _pagebuf_find_lockable_buffer+0xf6 (0xcf7f9ac0,
0xc1573240, 0x1baf6000, 0x0, 0x2000)
kernel .text 0xc0100000 0xc015ead0 0xc015eca0
0xc015eccf _pagebuf_get_lockable_buffer+0x2f (0xcf7f9ac0,
0xc1573240, 0x1baf6000, 0x0, 0x2000)
kernel .text 0xc0100000 0xc015eca0 0xc015ed70
0xc015b03a pagebuf_get+0xaa (0xcf7f9ac0, 0x1baf6000, 0x0, 0x2000,
0x22201)
kernel .text 0xc0100000 0xc015af90 0xc015b130
0xc01afade xfs_trans_read_buf+0x5e (0xcfc97800, 0x0, 0xcfc97964,
0xdd7b0, 0x0)
kernel .text 0xc0100000 0xc01afa80 0xc01afdc0
0xc019af42 xfs_itobp+0x112 (0xcfc97800, 0x0, 0xce02e960, 0xcf225e54,
0xcf225e58)
kernel .text 0xc0100000 0xc019ae30 0xc019b000
0xc019dff5 xfs_iflush+0xb5 (0xce02e960, 0x1)
more>
kernel .text 0xc0100000 0xc019df40 0xc019e330
0xc01b9e9a xfs_finish_reclaim+0xca (0xce02e960, 0x0, 0xcfc97914)
kernel .text 0xc0100000 0xc01b9dd0 0xc01b9ef0
0xc019e75d xfs_iflush_all+0x13d (0xcfc97800, 0x1)
kernel .text 0xc0100000 0xc019e620 0xc019e7a0
0xc01a97be xfs_unmountfs+0xe (0xcfc97800, 0x3, 0xc0382fa0)
kernel .text 0xc0100000 0xc01a97b0 0xc01a9890
0xc01b1ff8 xfs_unmount+0x168 (0xcfc97800, 0x0, 0xc0382fa0)
kernel .text 0xc0100000 0xc01b1e90 0xc01b2010
0xc01bcfca fs_dounmount+0x5a (0xcfc97800, 0x0, 0x0, 0xc0382fa0,
0xcf7f9dc8)
kernel .text 0xc0100000 0xc01bcf70 0xc01bcff0
0xc01c42d8 linvfs_put_super+0x58 (0xcf91be00)
kernel .text 0xc0100000 0xc01c4280 0xc01c4350
0xc0134237 kill_super+0x87 (0xcf91be00, 0x0, 0xc156dc40, 0xffffffff,
0xcfb81ac0)
kernel .text 0xc0100000 0xc01341b0 0xc01342f0
0xc0134641 do_umount+0x1c1 (0xc156dc40, 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
more>
kdb> pb 0xcf5c2cc0
page_buf_t at 0xcf5c2cc0
pb_flags MAPPABLE LOCK LOCKABLE ALL_PAGES_MAPPED MEM_ALLOCATED
pb_target 0xcf7f9ac0 pb_hold 2 pb_next 0xc1571440 pb_prev 0xcf18d140
pb_file_offset 0x1baf6000 pb_buffer_length 0x2000 pb_addr 0x00000000
pb_bn 0xdd7b0 pb_count_desired 0x2000
pb_io_remaining 0 pb_error 0 pb_mem 0xcf60f440
pb_iodonesema (1,0) pb_sema (-1,1) pincount (0)
kdb> pb 0xcf7f9ac0
page_buf_t at 0xcf7f9ac0
pb_flags PARTIAL DELWRI FREED MAPPABLE FS_RESERVED_1 RELEASE ALLOCATE
FILE_ALLOCATE DONT_BLOCK DIRECT LOCKABLE NEXT_KEY ENTER_PAGES
ALL_PAGES_MAPPED ADDR_ALLOCATED MEM_ALLOCATED GRIO FORCEIO
pb_target 0xcf970888 pb_hold -813720880 pb_next 0xcf7f9ac0 pb_prev 0xcf7f9ac0
pb_file_offset 0x731cf7f9ad8 pb_buffer_length 0x1 pb_addr 0x00000000
pb_bn 0xcf7f9ad8cf7f9ad0 pb_count_desired 0x80003a01
pb_io_remaining -813720792 pb_error 0 pb_mem 0x3ace02c3
pb_iodonesema (1,0) pb_sema (0,0) pincount (-1070444320)
pb_fspriv 0x3ace02c3 pb_fspriv2 0x3ace02c3
kdb> pb 0xcf7f9ac0
page_buf_t at 0xcf7f9ac0
pb_flags PARTIAL DELWRI FREED MAPPABLE FS_RESERVED_1 RELEASE ALLOCATE
FILE_ALLOCATE DONT_BLOCK DIRECT LOCKABLE NEXT_KEY ENTER_PAGES
ALL_PAGES_MAPPED ADDR_ALLOCATED MEM_ALLOCATED GRIO FORCEIO
pb_target 0xcf970888 pb_hold -813720880 pb_next 0xcf7f9ac0 pb_prev 0xcf7f9ac0
pb_file_offset 0x731cf7f9ad8 pb_buffer_length 0x1 pb_addr 0x00000000
pb_bn 0xcf7f9ad8cf7f9ad0 pb_count_desired 0x80003a01
pb_io_remaining -813720792 pb_error 0 pb_mem 0x3ace02c3
pb_iodonesema (1,0) pb_sema (0,0) pincount (-1070444320)
pb_fspriv 0x3ace02c3 pb_fspriv2 0x3ace02c3
kdb> pb 0xcf7f9ac0
page_buf_t at 0xcf7f9ac0
pb_flags PARTIAL DELWRI FREED MAPPABLE FS_RESERVED_1 RELEASE ALLOCATE
FILE_ALLOCATE DONT_BLOCK DIRECT LOCKABLE NEXT_KEY ENTER_PAGES
ALL_PAGES_MAPPED ADDR_ALLOCATED MEM_ALLOCATED GRIO FORCEIO
pb_target 0xcf970888 pb_hold -813720880 pb_next 0xcf7f9ac0 pb_prev 0xcf7f9ac0
pb_file_offset 0x731cf7f9ad8 pb_buffer_length 0x1 pb_addr 0x00000000
pb_bn 0xcf7f9ad8cf7f9ad0 pb_count_desired 0x80003a01
pb_io_remaining -813720792 pb_error 0 pb_mem 0x3ace02c3
pb_iodonesema (1,0) pb_sema (0,0) pincount (-1070444320)
pb_fspriv 0x3ace02c3 pb_fspriv2 0x3ace02c3
kdb> reboot
I dont find any pagebuf_io* function, so i did a pb on all pagebuf things.
It's time for weekend now!
I will help you again on monday.
utz
|