Messages in this thread | | | Date | Tue, 6 Sep 2011 10:08:33 +0800 | Subject | Re: [BUG] D state process after unplug and umount usb disk | From | Dave Young <> |
| |
On Mon, Sep 5, 2011 at 9:31 PM, Wu Fengguang <fengguang.wu@intel.com> wrote: > On Sat, Sep 03, 2011 at 06:31:11PM +0800, Dave Young wrote: >> Hi, >> >> Known issue? >> >> Reproduce by: >> mount /dev/sdb2 /mnt/sdb2 -t ext3 >> cat /mnt/sdb2/* >/dev/null >> unplug usb disk >> umount -f /mnt/sdb2 > > When I do the above sequence on a normal disk, umount will rightfully > fail. So the error is specific to unplugging a mounted USB disk.
Yes, unplugging is necessary.
> > root@fat /home/wfg# mount /dev/sda7 /fs/sda7 > root@fat /home/wfg# ls /fs/sda7 > root@fat /home/wfg# cp /dev/zero /fs/sda7& > [1] 7900 > root@fat /home/wfg# cat /fs/sda7/* > /dev/null&; umount -f /fs/sda7 > [2] 7909 > umount2: Device or resource busy > umount: /fs/sda7: device is busy. > (In some cases useful info about processes that use > the device is found by lsof(8) or fuser(1)) > umount2: Device or resource busy > >> dmesg as below: >> >> [ 1440.567271] SysRq : Show Blocked State >> [ 1440.567278] task PC stack pid father >> [ 1440.567312] cat D ffff880037a1e378 4296 2381 2310 0x00000004 >> [ 1440.567320] ffff88003cca5838 0000000000000046 ffff88003cca57e8 >> ffffffff00000000 >> [ 1440.567332] 00000000000134c0 00000000000134c0 00000000000134c0 >> ffff880037a1e000 >> [ 1440.567339] 00000000000134c0 ffff88003cca5fd8 00000000000134c0 >> 00000000000134c0 >> [ 1440.567347] Call Trace: >> [ 1440.567357] [<ffffffff810c0468>] ? lock_page+0x2a/0x2a >> [ 1440.567363] [<ffffffff815e452d>] io_schedule+0x5e/0x79 >> [ 1440.567368] [<ffffffff810c0471>] sleep_on_page+0x9/0xd >> [ 1440.567373] [<ffffffff815e4adf>] __wait_on_bit_lock+0x41/0x8a >> [ 1440.567378] [<ffffffff810c0437>] __lock_page+0x61/0x68 >> [ 1440.567384] [<ffffffff81058739>] ? autoremove_wake_function+0x34/0x34 >> [ 1440.567390] [<ffffffff8102f704>] ? should_resched+0x9/0x29 > >> [ 1440.567395] [<ffffffff810c9b0b>] lock_page+0x25/0x29 >> [ 1440.567400] [<ffffffff810ca1ac>] truncate_inode_pages_range+0x2a6/0x32d >> [ 1440.567406] [<ffffffff810ca240>] truncate_inode_pages+0xd/0xf > > Maybe the page is locked for read IO somewhere else, which never > managed to complete due to the unplugged USB disk? > > This can be (not strictly) confirmed by running this and check if > there are locked and !uptodate pages: > > page-types -lr -b locked > > If so the root cause should be, the IO requests are stuck rather than > being failed after some timeout value.
offset len flags 38e5d 3 L____l__________________d_________ 38e60 1 L____l____________________________ 531e7 1 L____l__________________d_____I___ 531e8 18 L____l__________________d_________
flags page-count MB symbolic-flags long-symbolic-flags 0x0000000400000021 27 0 L____l__________________d_________ locked,lru,mappedtodisk 0x0000000000000021 1 0 L____l____________________________ locked,lru 0x0001000400000021 1 0 L____l__________________d_____I___ locked,lru,mappedtodisk,readahead total 29 0
BTW, forgot to tell, my kernel applied NeilBrown's move-bdev_inode_switch_bdi-after-kill_bdev patch
> > Thanks, > Fengguang > >> [ 1440.567411] [<ffffffff811642cf>] ext3_evict_inode+0xc9/0x1d7 >> [ 1440.567417] [<ffffffff8111288e>] evict+0xa3/0x15e >> [ 1440.567422] [<ffffffff81112b34>] dispose_list+0x3d/0x49 >> [ 1440.567426] [<ffffffff81113475>] evict_inodes+0xf1/0x100 >> [ 1440.567431] [<ffffffff810ffd21>] generic_shutdown_super+0x47/0xc7 >> [ 1440.567436] [<ffffffff810ffdc3>] kill_block_super+0x22/0x65 >> [ 1440.567441] [<ffffffff811000da>] deactivate_locked_super+0x21/0x52 >> [ 1440.567445] [<ffffffff811009ab>] deactivate_super+0x35/0x39 >> [ 1440.567452] [<ffffffff81116395>] mntput_no_expire+0xcb/0xd0 >> [ 1440.567457] [<ffffffff811163bb>] mntput+0x21/0x23 >> [ 1440.567461] [<ffffffff810ff8e7>] fput+0x196/0x1a5 >> [ 1440.567467] [<ffffffff810fc7a1>] filp_close+0x6b/0x76 >> [ 1440.567472] [<ffffffff8103fa8a>] put_files_struct+0x73/0xd1 >> [ 1440.567477] [<ffffffff8103fb7b>] exit_files+0x46/0x4f >> [ 1440.567481] [<ffffffff8103fe01>] do_exit+0x27d/0x7b3 >> [ 1440.567487] [<ffffffff8104d97f>] ? get_signal_to_deliver+0x81/0x4ac >> [ 1440.567493] [<ffffffff812e5e27>] ? do_raw_spin_lock+0x6b/0x122 >> [ 1440.567497] [<ffffffff810405c5>] do_group_exit+0x7d/0xa8 >> [ 1440.567502] [<ffffffff8104dd8b>] get_signal_to_deliver+0x48d/0x4ac >> [ 1440.567509] [<ffffffff81001ea2>] do_signal+0x39/0x600 >> [ 1440.567514] [<ffffffff810fdb37>] ? fsnotify_access+0x5d/0x65 >> [ 1440.567519] [<ffffffff810024a4>] do_notify_resume+0x27/0x69 >> [ 1440.567524] [<ffffffff812e158e>] ? trace_hardirqs_on_thunk+0x3a/0x3f >> [ 1440.567529] [<ffffffff815ecd63>] int_signal+0x12/0x17 >> [ 1440.710163] INFO: task cat:2381 blocked for more than 120 seconds. >> [ 1440.710170] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" >> disables this message. >> [ 1440.710175] cat D ffff880037a1e378 4296 2381 2310 0x00000004 >> [ 1440.710188] ffff88003cca5838 0000000000000046 ffff88003cca57e8 >> ffffffff00000000 >> [ 1440.710201] 00000000000134c0 00000000000134c0 00000000000134c0 >> ffff880037a1e000 >> [ 1440.710218] 00000000000134c0 ffff88003cca5fd8 00000000000134c0 >> 00000000000134c0 >> [ 1440.710225] Call Trace: >> [ 1440.710233] [<ffffffff810c0468>] ? lock_page+0x2a/0x2a >> [ 1440.710239] [<ffffffff815e452d>] io_schedule+0x5e/0x79 >> [ 1440.710244] [<ffffffff810c0471>] sleep_on_page+0x9/0xd >> [ 1440.710249] [<ffffffff815e4adf>] __wait_on_bit_lock+0x41/0x8a >> [ 1440.710253] [<ffffffff810c0437>] __lock_page+0x61/0x68 >> [ 1440.710259] [<ffffffff81058739>] ? autoremove_wake_function+0x34/0x34 >> [ 1440.710264] [<ffffffff8102f704>] ? should_resched+0x9/0x29 >> [ 1440.710269] [<ffffffff810c9b0b>] lock_page+0x25/0x29 >> [ 1440.710274] [<ffffffff810ca1ac>] truncate_inode_pages_range+0x2a6/0x32d >> [ 1440.710279] [<ffffffff810ca240>] truncate_inode_pages+0xd/0xf >> [ 1440.710284] [<ffffffff811642cf>] ext3_evict_inode+0xc9/0x1d7 >> [ 1440.710289] [<ffffffff8111288e>] evict+0xa3/0x15e >> [ 1440.710294] [<ffffffff81112b34>] dispose_list+0x3d/0x49 >> [ 1440.710299] [<ffffffff81113475>] evict_inodes+0xf1/0x100 >> [ 1440.710303] [<ffffffff810ffd21>] generic_shutdown_super+0x47/0xc7 >> [ 1440.710308] [<ffffffff810ffdc3>] kill_block_super+0x22/0x65 >> [ 1440.710312] [<ffffffff811000da>] deactivate_locked_super+0x21/0x52 >> [ 1440.710316] [<ffffffff811009ab>] deactivate_super+0x35/0x39 >> [ 1440.710322] [<ffffffff81116395>] mntput_no_expire+0xcb/0xd0 >> [ 1440.710326] [<ffffffff811163bb>] mntput+0x21/0x23 >> [ 1440.710330] [<ffffffff810ff8e7>] fput+0x196/0x1a5 >> [ 1440.710335] [<ffffffff810fc7a1>] filp_close+0x6b/0x76 >> [ 1440.710342] [<ffffffff8103fa8a>] put_files_struct+0x73/0xd1 >> [ 1440.710346] [<ffffffff8103fb7b>] exit_files+0x46/0x4f >> [ 1440.710350] [<ffffffff8103fe01>] do_exit+0x27d/0x7b3 >> [ 1440.710356] [<ffffffff8104d97f>] ? get_signal_to_deliver+0x81/0x4ac >> [ 1440.710361] [<ffffffff812e5e27>] ? do_raw_spin_lock+0x6b/0x122 >> [ 1440.710366] [<ffffffff810405c5>] do_group_exit+0x7d/0xa8 >> [ 1440.710371] [<ffffffff8104dd8b>] get_signal_to_deliver+0x48d/0x4ac >> [ 1440.710376] [<ffffffff81001ea2>] do_signal+0x39/0x600 >> [ 1440.710381] [<ffffffff810fdb37>] ? fsnotify_access+0x5d/0x65 >> [ 1440.710386] [<ffffffff810024a4>] do_notify_resume+0x27/0x69 >> [ 1440.710391] [<ffffffff812e158e>] ? trace_hardirqs_on_thunk+0x3a/0x3f >> [ 1440.710396] [<ffffffff815ecd63>] int_signal+0x12/0x17 >> [ 1440.710399] INFO: lockdep is turned off. >> >> -- >> Regards >> Yang RuiRui >
-- Regards Yang RuiRui -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |