Re: Hang in XFS reclaim on 3.7.0-rc3

From: Torsten Kaiser
Date: Mon Nov 19 2012 - 01:50:00 EST


On Mon, Nov 19, 2012 at 12:51 AM, Dave Chinner <david@xxxxxxxxxxxxx> wrote:
> On Sun, Nov 18, 2012 at 04:29:22PM +0100, Torsten Kaiser wrote:
>> On Sun, Nov 18, 2012 at 11:24 AM, Torsten Kaiser
>> <just.for.lkml@xxxxxxxxxxxxxx> wrote:
>> > On Tue, Oct 30, 2012 at 9:37 PM, Torsten Kaiser
>> > <just.for.lkml@xxxxxxxxxxxxxx> wrote:
>> >> I will keep LOCKDEP enabled on that system, and if there really is
>> >> another splat, I will report back here. But I rather doubt that this
>> >> will be needed.
>> >
>> > After the patch, I did not see this problem again, but today I found
>> > another LOCKDEP report that also looks XFS related.
>> > I found it twice in the logs, and as both were slightly different, I
>> > will attach both versions.
>>
>> > Nov 6 21:57:09 thoregon kernel: [ 9941.104353] 3.7.0-rc4 #1 Not tainted
>> > Nov 6 21:57:09 thoregon kernel: [ 9941.104355] inconsistent
>> > {RECLAIM_FS-ON-W} -> {IN-RECLAIM_FS-W} usage.
>> > Nov 6 21:57:09 thoregon kernel: [ 9941.104430] CPU0
>> > Nov 6 21:57:09 thoregon kernel: [ 9941.104431] ----
>> > Nov 6 21:57:09 thoregon kernel: [ 9941.104432] lock(&(&ip->i_lock)->mr_lock);
>> > Nov 6 21:57:09 thoregon kernel: [ 9941.104433] <Interrupt>
>> > Nov 6 21:57:09 thoregon kernel: [ 9941.104434]
>> > lock(&(&ip->i_lock)->mr_lock);
>> > Nov 6 21:57:09 thoregon kernel: [ 9941.104435]
>> > Nov 6 21:57:09 thoregon kernel: [ 9941.104435] *** DEADLOCK ***
>>
>> Sorry! Copied the wrong report. Your fix only landed in -rc5, so my
>> vanilla -rc4 did (also) report the old problem again.
>> And I copy&pasted that report instead of the second appearance of the
>> new problem.
>
> Can you repost it with line wrapping turned off? The output simply
> becomes unreadable when it wraps....
>
> Yeah, I know I can put it back together, but I've got better things
> to do with my time than stitch a couple of hundred lines of debug
> back into a readable format....

Sorry about that, but I can't find any option to turn that off in Gmail.

I have added the reports as attachment, I hope thats OK for you.

Thanks for looking into this.

Torsten
[110926.972477]
[110926.972482] =========================================================
[110926.972484] [ INFO: possible irq lock inversion dependency detected ]
[110926.972486] 3.7.0-rc4 #1 Not tainted
[110926.972487] ---------------------------------------------------------
[110926.972489] kswapd0/725 just changed the state of lock:
[110926.972490] (sb_internal){.+.+.?}, at: [<ffffffff8122b268>] xfs_trans_alloc+0x28/0x50
[110926.972499] but this lock took another, RECLAIM_FS-unsafe lock in the past:
[110926.972500] (&(&ip->i_lock)->mr_lock/1){+.+.+.}
[110926.972500]
[110926.972500] and interrupts could create inverse lock ordering between them.
[110926.972500]
[110926.972503]
[110926.972503] other info that might help us debug this:
[110926.972504] Possible interrupt unsafe locking scenario:
[110926.972504]
[110926.972505] CPU0 CPU1
[110926.972506] ---- ----
[110926.972507] lock(&(&ip->i_lock)->mr_lock/1);
[110926.972509] local_irq_disable();
[110926.972509] lock(sb_internal);
[110926.972511] lock(&(&ip->i_lock)->mr_lock/1);
[110926.972512] <Interrupt>
[110926.972513] lock(sb_internal);
[110926.972514]
[110926.972514] *** DEADLOCK ***
[110926.972514]
[110926.972516] 2 locks held by kswapd0/725:
[110926.972517] #0: (shrinker_rwsem){++++..}, at: [<ffffffff810bbd22>] shrink_slab+0x32/0x1f0
[110926.972522] #1: (&type->s_umount_key#20){++++.+}, at: [<ffffffff810f5a8e>] grab_super_passive+0x3e/0x90
[110926.972527]
[110926.972527] the shortest dependencies between 2nd lock and 1st lock:
[110926.972533] -> (&(&ip->i_lock)->mr_lock/1){+.+.+.} ops: 58117 {
[110926.972536] HARDIRQ-ON-W at:
[110926.972537] [<ffffffff8107f091>] __lock_acquire+0x631/0x1c00
[110926.972540] [<ffffffff81080b55>] lock_acquire+0x55/0x70
[110926.972542] [<ffffffff8106126a>] down_write_nested+0x4a/0x70
[110926.972545] [<ffffffff811e8164>] xfs_ilock+0x84/0xb0
[110926.972548] [<ffffffff811f5194>] xfs_create+0x1d4/0x5a0
[110926.972550] [<ffffffff811eca1a>] xfs_vn_mknod+0x8a/0x1b0
[110926.972552] [<ffffffff811ecb6e>] xfs_vn_create+0xe/0x10
[110926.972554] [<ffffffff81100332>] vfs_create+0x72/0xc0
[110926.972556] [<ffffffff81100b8e>] do_last.isra.69+0x80e/0xc80
[110926.972558] [<ffffffff811010ab>] path_openat.isra.70+0xab/0x490
[110926.972560] [<ffffffff8110184d>] do_filp_open+0x3d/0xa0
[110926.972562] [<ffffffff810f2139>] do_sys_open+0xf9/0x1e0
[110926.972565] [<ffffffff810f223c>] sys_open+0x1c/0x20
[110926.972567] [<ffffffff816b2d12>] system_call_fastpath+0x16/0x1b
[110926.972570] SOFTIRQ-ON-W at:
[110926.972571] [<ffffffff8107f0c7>] __lock_acquire+0x667/0x1c00
[110926.972573] [<ffffffff81080b55>] lock_acquire+0x55/0x70
[110926.972574] [<ffffffff8106126a>] down_write_nested+0x4a/0x70
[110926.972576] [<ffffffff811e8164>] xfs_ilock+0x84/0xb0
[110926.972578] [<ffffffff811f5194>] xfs_create+0x1d4/0x5a0
[110926.972580] [<ffffffff811eca1a>] xfs_vn_mknod+0x8a/0x1b0
[110926.972581] [<ffffffff811ecb6e>] xfs_vn_create+0xe/0x10
[110926.972583] [<ffffffff81100332>] vfs_create+0x72/0xc0
[110926.972585] [<ffffffff81100b8e>] do_last.isra.69+0x80e/0xc80
[110926.972587] [<ffffffff811010ab>] path_openat.isra.70+0xab/0x490
[110926.972589] [<ffffffff8110184d>] do_filp_open+0x3d/0xa0
[110926.972591] [<ffffffff810f2139>] do_sys_open+0xf9/0x1e0
[110926.972593] [<ffffffff810f223c>] sys_open+0x1c/0x20
[110926.972595] [<ffffffff816b2d12>] system_call_fastpath+0x16/0x1b
[110926.972597] RECLAIM_FS-ON-W at:
[110926.972598] [<ffffffff8108137e>] mark_held_locks+0x7e/0x130
[110926.972600] [<ffffffff81081a63>] lockdep_trace_alloc+0x63/0xc0
[110926.972601] [<ffffffff810e9dd5>] kmem_cache_alloc+0x35/0xe0
[110926.972603] [<ffffffff810dba31>] vm_map_ram+0x271/0x770
[110926.972606] [<ffffffff811e1316>] _xfs_buf_map_pages+0x46/0xe0
[110926.972609] [<ffffffff811e222a>] xfs_buf_get_map+0x8a/0x130
[110926.972610] [<ffffffff81233ab9>] xfs_trans_get_buf_map+0xa9/0xd0
[110926.972613] [<ffffffff8121bced>] xfs_ialloc_inode_init+0xcd/0x1d0
[110926.972616] [<ffffffff8121c25e>] xfs_ialloc_ag_alloc+0x1be/0x560
[110926.972618] [<ffffffff8121da65>] xfs_dialloc+0x185/0x2a0
[110926.972619] [<ffffffff8121f198>] xfs_ialloc+0x58/0x650
[110926.972621] [<ffffffff811f3985>] xfs_dir_ialloc+0x65/0x270
[110926.972623] [<ffffffff811f536c>] xfs_create+0x3ac/0x5a0
[110926.972624] [<ffffffff811eca1a>] xfs_vn_mknod+0x8a/0x1b0
[110926.972626] [<ffffffff811ecb6e>] xfs_vn_create+0xe/0x10
[110926.972628] [<ffffffff81100332>] vfs_create+0x72/0xc0
[110926.972630] [<ffffffff81100b8e>] do_last.isra.69+0x80e/0xc80
[110926.972632] [<ffffffff811010ab>] path_openat.isra.70+0xab/0x490
[110926.972634] [<ffffffff8110184d>] do_filp_open+0x3d/0xa0
[110926.972636] [<ffffffff810f2139>] do_sys_open+0xf9/0x1e0
[110926.972638] [<ffffffff810f223c>] sys_open+0x1c/0x20
[110926.972640] [<ffffffff816b2d12>] system_call_fastpath+0x16/0x1b
[110926.972642] INITIAL USE at:
[110926.972642] [<ffffffff8107ed49>] __lock_acquire+0x2e9/0x1c00
[110926.972644] [<ffffffff81080b55>] lock_acquire+0x55/0x70
[110926.972646] [<ffffffff8106126a>] down_write_nested+0x4a/0x70
[110926.972648] [<ffffffff811e8164>] xfs_ilock+0x84/0xb0
[110926.972650] [<ffffffff811f5194>] xfs_create+0x1d4/0x5a0
[110926.972651] [<ffffffff811eca1a>] xfs_vn_mknod+0x8a/0x1b0
[110926.972653] [<ffffffff811ecb6e>] xfs_vn_create+0xe/0x10
[110926.972655] [<ffffffff81100332>] vfs_create+0x72/0xc0
[110926.972657] [<ffffffff81100b8e>] do_last.isra.69+0x80e/0xc80
[110926.972659] [<ffffffff811010ab>] path_openat.isra.70+0xab/0x490
[110926.972661] [<ffffffff8110184d>] do_filp_open+0x3d/0xa0
[110926.972663] [<ffffffff810f2139>] do_sys_open+0xf9/0x1e0
[110926.972664] [<ffffffff810f223c>] sys_open+0x1c/0x20
[110926.972666] [<ffffffff816b2d12>] system_call_fastpath+0x16/0x1b
[110926.972668] }
[110926.972669] ... key at: [<ffffffff825b4b81>] __key.41355+0x1/0x8
[110926.972672] ... acquired at:
[110926.972672] [<ffffffff81080b55>] lock_acquire+0x55/0x70
[110926.972674] [<ffffffff8106126a>] down_write_nested+0x4a/0x70
[110926.972676] [<ffffffff811e8164>] xfs_ilock+0x84/0xb0
[110926.972678] [<ffffffff811f5194>] xfs_create+0x1d4/0x5a0
[110926.972679] [<ffffffff811eca1a>] xfs_vn_mknod+0x8a/0x1b0
[110926.972681] [<ffffffff811ecb6e>] xfs_vn_create+0xe/0x10
[110926.972683] [<ffffffff81100332>] vfs_create+0x72/0xc0
[110926.972684] [<ffffffff81100b8e>] do_last.isra.69+0x80e/0xc80
[110926.972686] [<ffffffff811010ab>] path_openat.isra.70+0xab/0x490
[110926.972688] [<ffffffff8110184d>] do_filp_open+0x3d/0xa0
[110926.972690] [<ffffffff810f2139>] do_sys_open+0xf9/0x1e0
[110926.972692] [<ffffffff810f223c>] sys_open+0x1c/0x20
[110926.972694] [<ffffffff816b2d12>] system_call_fastpath+0x16/0x1b
[110926.972696]
[110926.972696] -> (sb_internal){.+.+.?} ops: 1710064 {
[110926.972699] HARDIRQ-ON-R at:
[110926.972700] [<ffffffff8107ef6a>] __lock_acquire+0x50a/0x1c00
[110926.972702] [<ffffffff81080b55>] lock_acquire+0x55/0x70
[110926.972704] [<ffffffff810f452b>] __sb_start_write+0xab/0x190
[110926.972705] [<ffffffff8122b268>] xfs_trans_alloc+0x28/0x50
[110926.972707] [<ffffffff811f5147>] xfs_create+0x187/0x5a0
[110926.972709] [<ffffffff811eca1a>] xfs_vn_mknod+0x8a/0x1b0
[110926.972711] [<ffffffff811ecb6e>] xfs_vn_create+0xe/0x10
[110926.972712] [<ffffffff81100332>] vfs_create+0x72/0xc0
[110926.972714] [<ffffffff81100b8e>] do_last.isra.69+0x80e/0xc80
[110926.972716] [<ffffffff811010ab>] path_openat.isra.70+0xab/0x490
[110926.972718] [<ffffffff8110184d>] do_filp_open+0x3d/0xa0
[110926.972720] [<ffffffff810f2139>] do_sys_open+0xf9/0x1e0
[110926.972722] [<ffffffff810f223c>] sys_open+0x1c/0x20
[110926.972724] [<ffffffff816b2d12>] system_call_fastpath+0x16/0x1b
[110926.972726] SOFTIRQ-ON-R at:
[110926.972727] [<ffffffff8107f0c7>] __lock_acquire+0x667/0x1c00
[110926.972728] [<ffffffff81080b55>] lock_acquire+0x55/0x70
[110926.972730] [<ffffffff810f452b>] __sb_start_write+0xab/0x190
[110926.972732] [<ffffffff8122b268>] xfs_trans_alloc+0x28/0x50
[110926.972734] [<ffffffff811f5147>] xfs_create+0x187/0x5a0
[110926.972735] [<ffffffff811eca1a>] xfs_vn_mknod+0x8a/0x1b0
[110926.972737] [<ffffffff811ecb6e>] xfs_vn_create+0xe/0x10
[110926.972739] [<ffffffff81100332>] vfs_create+0x72/0xc0
[110926.972741] [<ffffffff81100b8e>] do_last.isra.69+0x80e/0xc80
[110926.972743] [<ffffffff811010ab>] path_openat.isra.70+0xab/0x490
[110926.972745] [<ffffffff8110184d>] do_filp_open+0x3d/0xa0
[110926.972747] [<ffffffff810f2139>] do_sys_open+0xf9/0x1e0
[110926.972749] [<ffffffff810f223c>] sys_open+0x1c/0x20
[110926.972750] [<ffffffff816b2d12>] system_call_fastpath+0x16/0x1b
[110926.972752] IN-RECLAIM_FS-R at:
[110926.972753] [<ffffffff8107efdf>] __lock_acquire+0x57f/0x1c00
[110926.972755] [<ffffffff81080b55>] lock_acquire+0x55/0x70
[110926.972757] [<ffffffff810f452b>] __sb_start_write+0xab/0x190
[110926.972758] [<ffffffff8122b268>] xfs_trans_alloc+0x28/0x50
[110926.972760] [<ffffffff811f3e54>] xfs_free_eofblocks+0x104/0x250
[110926.972762] [<ffffffff811f4b29>] xfs_inactive+0xa9/0x480
[110926.972763] [<ffffffff811efe00>] xfs_fs_evict_inode+0x70/0x80
[110926.972765] [<ffffffff8110cb8f>] evict+0xaf/0x1b0
[110926.972768] [<ffffffff8110d219>] dispose_list+0x39/0x50
[110926.972770] [<ffffffff8110dc73>] prune_icache_sb+0x183/0x340
[110926.972772] [<ffffffff810f5bd3>] prune_super+0xf3/0x1a0
[110926.972773] [<ffffffff810bbe0e>] shrink_slab+0x11e/0x1f0
[110926.972775] [<ffffffff810be400>] kswapd+0x690/0xa10
[110926.972777] [<ffffffff8105c246>] kthread+0xd6/0xe0
[110926.972779] [<ffffffff816b2c6c>] ret_from_fork+0x7c/0xb0
[110926.972781] RECLAIM_FS-ON-R at:
[110926.972782] [<ffffffff8108137e>] mark_held_locks+0x7e/0x130
[110926.972784] [<ffffffff81081a63>] lockdep_trace_alloc+0x63/0xc0
[110926.972785] [<ffffffff810e9dd5>] kmem_cache_alloc+0x35/0xe0
[110926.972787] [<ffffffff811f6d3f>] kmem_zone_alloc+0x5f/0xe0
[110926.972789] [<ffffffff811f6dd8>] kmem_zone_zalloc+0x18/0x50
[110926.972790] [<ffffffff8122b1e2>] _xfs_trans_alloc+0x32/0x90
[110926.972792] [<ffffffff8122b278>] xfs_trans_alloc+0x38/0x50
[110926.972794] [<ffffffff811f5147>] xfs_create+0x187/0x5a0
[110926.972796] [<ffffffff811eca1a>] xfs_vn_mknod+0x8a/0x1b0
[110926.972797] [<ffffffff811ecb6e>] xfs_vn_create+0xe/0x10
[110926.972799] [<ffffffff81100332>] vfs_create+0x72/0xc0
[110926.972801] [<ffffffff81100b8e>] do_last.isra.69+0x80e/0xc80
[110926.972803] [<ffffffff811010ab>] path_openat.isra.70+0xab/0x490
[110926.972805] [<ffffffff8110184d>] do_filp_open+0x3d/0xa0
[110926.972807] [<ffffffff810f2139>] do_sys_open+0xf9/0x1e0
[110926.972809] [<ffffffff810f223c>] sys_open+0x1c/0x20
[110926.972811] [<ffffffff816b2d12>] system_call_fastpath+0x16/0x1b
[110926.972813] INITIAL USE at:
[110926.972814] [<ffffffff8107ed49>] __lock_acquire+0x2e9/0x1c00
[110926.972815] [<ffffffff81080b55>] lock_acquire+0x55/0x70
[110926.972817] [<ffffffff810f452b>] __sb_start_write+0xab/0x190
[110926.972819] [<ffffffff8122b268>] xfs_trans_alloc+0x28/0x50
[110926.972820] [<ffffffff811f5147>] xfs_create+0x187/0x5a0
[110926.972822] [<ffffffff811eca1a>] xfs_vn_mknod+0x8a/0x1b0
[110926.972824] [<ffffffff811ecb6e>] xfs_vn_create+0xe/0x10
[110926.972826] [<ffffffff81100332>] vfs_create+0x72/0xc0
[110926.972827] [<ffffffff81100b8e>] do_last.isra.69+0x80e/0xc80
[110926.972829] [<ffffffff811010ab>] path_openat.isra.70+0xab/0x490
[110926.972831] [<ffffffff8110184d>] do_filp_open+0x3d/0xa0
[110926.972833] [<ffffffff810f2139>] do_sys_open+0xf9/0x1e0
[110926.972835] [<ffffffff810f223c>] sys_open+0x1c/0x20
[110926.972837] [<ffffffff816b2d12>] system_call_fastpath+0x16/0x1b
[110926.972839] }
[110926.972840] ... key at: [<ffffffff81c34e40>] xfs_fs_type+0x60/0x80
[110926.972842] ... acquired at:
[110926.972843] [<ffffffff8107df3b>] check_usage_forwards+0x10b/0x140
[110926.972845] [<ffffffff8107e900>] mark_lock+0x190/0x2f0
[110926.972846] [<ffffffff8107efdf>] __lock_acquire+0x57f/0x1c00
[110926.972848] [<ffffffff81080b55>] lock_acquire+0x55/0x70
[110926.972850] [<ffffffff810f452b>] __sb_start_write+0xab/0x190
[110926.972851] [<ffffffff8122b268>] xfs_trans_alloc+0x28/0x50
[110926.972853] [<ffffffff811f3e54>] xfs_free_eofblocks+0x104/0x250
[110926.972855] [<ffffffff811f4b29>] xfs_inactive+0xa9/0x480
[110926.972856] [<ffffffff811efe00>] xfs_fs_evict_inode+0x70/0x80
[110926.972858] [<ffffffff8110cb8f>] evict+0xaf/0x1b0
[110926.972860] [<ffffffff8110d219>] dispose_list+0x39/0x50
[110926.972861] [<ffffffff8110dc73>] prune_icache_sb+0x183/0x340
[110926.972863] [<ffffffff810f5bd3>] prune_super+0xf3/0x1a0
[110926.972865] [<ffffffff810bbe0e>] shrink_slab+0x11e/0x1f0
[110926.972866] [<ffffffff810be400>] kswapd+0x690/0xa10
[110926.972868] [<ffffffff8105c246>] kthread+0xd6/0xe0
[110926.972870] [<ffffffff816b2c6c>] ret_from_fork+0x7c/0xb0
[110926.972871]
[110926.972872]
[110926.972872] stack backtrace:
[110926.972874] Pid: 725, comm: kswapd0 Not tainted 3.7.0-rc4 #1
[110926.972875] Call Trace:
[110926.972878] [<ffffffff8107de28>] print_irq_inversion_bug.part.37+0x1e8/0x1f0
[110926.972880] [<ffffffff8107df3b>] check_usage_forwards+0x10b/0x140
[110926.972883] [<ffffffff8107e900>] mark_lock+0x190/0x2f0
[110926.972885] [<ffffffff8107de30>] ? print_irq_inversion_bug.part.37+0x1f0/0x1f0
[110926.972887] [<ffffffff8107efdf>] __lock_acquire+0x57f/0x1c00
[110926.972889] [<ffffffff81220424>] ? xfs_iext_bno_to_ext+0x84/0x160
[110926.972892] [<ffffffff8120a0e3>] ? xfs_bmbt_get_all+0x13/0x20
[110926.972895] [<ffffffff81201104>] ? xfs_bmap_search_multi_extents+0xa4/0x110
[110926.972897] [<ffffffff81080b55>] lock_acquire+0x55/0x70
[110926.972899] [<ffffffff8122b268>] ? xfs_trans_alloc+0x28/0x50
[110926.972901] [<ffffffff810f452b>] __sb_start_write+0xab/0x190
[110926.972903] [<ffffffff8122b268>] ? xfs_trans_alloc+0x28/0x50
[110926.972905] [<ffffffff8122b268>] ? xfs_trans_alloc+0x28/0x50
[110926.972907] [<ffffffff8122b268>] xfs_trans_alloc+0x28/0x50
[110926.972908] [<ffffffff811f3e54>] xfs_free_eofblocks+0x104/0x250
[110926.972910] [<ffffffff816b1efb>] ? _raw_spin_unlock_irq+0x2b/0x50
[110926.972912] [<ffffffff811f4b29>] xfs_inactive+0xa9/0x480
[110926.972914] [<ffffffff816b1efb>] ? _raw_spin_unlock_irq+0x2b/0x50
[110926.972916] [<ffffffff811efe00>] xfs_fs_evict_inode+0x70/0x80
[110926.972918] [<ffffffff8110cb8f>] evict+0xaf/0x1b0
[110926.972920] [<ffffffff8110d219>] dispose_list+0x39/0x50
[110926.972922] [<ffffffff8110dc73>] prune_icache_sb+0x183/0x340
[110926.972924] [<ffffffff810f5bd3>] prune_super+0xf3/0x1a0
[110926.972926] [<ffffffff810bbe0e>] shrink_slab+0x11e/0x1f0
[110926.972928] [<ffffffff810be400>] kswapd+0x690/0xa10
[110926.972930] [<ffffffff8105ca30>] ? __init_waitqueue_head+0x60/0x60
[110926.972932] [<ffffffff810bdd70>] ? shrink_lruvec+0x540/0x540
[110926.972934] [<ffffffff8105c246>] kthread+0xd6/0xe0
[110926.972936] [<ffffffff816b1efb>] ? _raw_spin_unlock_irq+0x2b/0x50
[110926.972938] [<ffffffff8105c170>] ? flush_kthread_worker+0xe0/0xe0
[110926.972940] [<ffffffff816b2c6c>] ret_from_fork+0x7c/0xb0
[110926.972942] [<ffffffff8105c170>] ? flush_kthread_worker+0xe0/0xe0

[66571.610863]
[66571.610869] =========================================================
[66571.610870] [ INFO: possible irq lock inversion dependency detected ]
[66571.610873] 3.7.0-rc5 #1 Not tainted
[66571.610874] ---------------------------------------------------------
[66571.610875] cc1/21330 just changed the state of lock:
[66571.610877] (sb_internal){.+.+.?}, at: [<ffffffff8122b138>] xfs_trans_alloc+0x28/0x50
[66571.610885] but this lock took another, RECLAIM_FS-unsafe lock in the past:
[66571.610886] (&(&ip->i_lock)->mr_lock/1){+.+.+.}
[66571.610886]
[66571.610886] and interrupts could create inverse lock ordering between them.
[66571.610886]
[66571.610890]
[66571.610890] other info that might help us debug this:
[66571.610891] Possible interrupt unsafe locking scenario:
[66571.610891]
[66571.610892] CPU0 CPU1
[66571.610893] ---- ----
[66571.610894] lock(&(&ip->i_lock)->mr_lock/1);
[66571.610896] local_irq_disable();
[66571.610897] lock(sb_internal);
[66571.610898] lock(&(&ip->i_lock)->mr_lock/1);
[66571.610900] <Interrupt>
[66571.610901] lock(sb_internal);
[66571.610902]
[66571.610902] *** DEADLOCK ***
[66571.610902]
[66571.610904] 3 locks held by cc1/21330:
[66571.610905] #0: (&mm->mmap_sem){++++++}, at: [<ffffffff81029d8b>] __do_page_fault+0xfb/0x480
[66571.610910] #1: (shrinker_rwsem){++++..}, at: [<ffffffff810bbd02>] shrink_slab+0x32/0x1f0
[66571.610915] #2: (&type->s_umount_key#20){++++.+}, at: [<ffffffff810f5a7e>] grab_super_passive+0x3e/0x90
[66571.610921]
[66571.610921] the shortest dependencies between 2nd lock and 1st lock:
[66571.610927] -> (&(&ip->i_lock)->mr_lock/1){+.+.+.} ops: 169649 {
[66571.610931] HARDIRQ-ON-W at:
[66571.610932] [<ffffffff8107f091>] __lock_acquire+0x631/0x1c00
[66571.610935] [<ffffffff81080b55>] lock_acquire+0x55/0x70
[66571.610937] [<ffffffff8106126a>] down_write_nested+0x4a/0x70
[66571.610941] [<ffffffff811e8164>] xfs_ilock+0x84/0xb0
[66571.610944] [<ffffffff811f51a4>] xfs_create+0x1d4/0x5a0
[66571.610946] [<ffffffff811eca2a>] xfs_vn_mknod+0x8a/0x1b0
[66571.610948] [<ffffffff811ecb7e>] xfs_vn_create+0xe/0x10
[66571.610950] [<ffffffff81100322>] vfs_create+0x72/0xc0
[66571.610953] [<ffffffff81100b7e>] do_last.isra.69+0x80e/0xc80
[66571.610955] [<ffffffff8110109b>] path_openat.isra.70+0xab/0x490
[66571.610957] [<ffffffff8110183d>] do_filp_open+0x3d/0xa0
[66571.610959] [<ffffffff810f2129>] do_sys_open+0xf9/0x1e0
[66571.610962] [<ffffffff810f222c>] sys_open+0x1c/0x20
[66571.610964] [<ffffffff816b2e52>] system_call_fastpath+0x16/0x1b
[66571.610967] SOFTIRQ-ON-W at:
[66571.610968] [<ffffffff8107f0c7>] __lock_acquire+0x667/0x1c00
[66571.610970] [<ffffffff81080b55>] lock_acquire+0x55/0x70
[66571.610972] [<ffffffff8106126a>] down_write_nested+0x4a/0x70
[66571.610974] [<ffffffff811e8164>] xfs_ilock+0x84/0xb0
[66571.610976] [<ffffffff811f51a4>] xfs_create+0x1d4/0x5a0
[66571.610977] [<ffffffff811eca2a>] xfs_vn_mknod+0x8a/0x1b0
[66571.610979] [<ffffffff811ecb7e>] xfs_vn_create+0xe/0x10
[66571.610981] [<ffffffff81100322>] vfs_create+0x72/0xc0
[66571.610983] [<ffffffff81100b7e>] do_last.isra.69+0x80e/0xc80
[66571.610985] [<ffffffff8110109b>] path_openat.isra.70+0xab/0x490
[66571.610987] [<ffffffff8110183d>] do_filp_open+0x3d/0xa0
[66571.610989] [<ffffffff810f2129>] do_sys_open+0xf9/0x1e0
[66571.610991] [<ffffffff810f222c>] sys_open+0x1c/0x20
[66571.610993] [<ffffffff816b2e52>] system_call_fastpath+0x16/0x1b
[66571.610995] RECLAIM_FS-ON-W at:
[66571.610996] [<ffffffff8108137e>] mark_held_locks+0x7e/0x130
[66571.610998] [<ffffffff81081a63>] lockdep_trace_alloc+0x63/0xc0
[66571.610999] [<ffffffff810e9dc5>] kmem_cache_alloc+0x35/0xe0
[66571.611002] [<ffffffff810dba21>] vm_map_ram+0x271/0x770
[66571.611004] [<ffffffff811e12b6>] _xfs_buf_map_pages+0x46/0xe0
[66571.611008] [<ffffffff811e21ca>] xfs_buf_get_map+0x8a/0x130
[66571.611009] [<ffffffff81233989>] xfs_trans_get_buf_map+0xa9/0xd0
[66571.611011] [<ffffffff8121bc2d>] xfs_ialloc_inode_init+0xcd/0x1d0
[66571.611015] [<ffffffff8121c16f>] xfs_ialloc_ag_alloc+0x18f/0x500
[66571.611017] [<ffffffff8121d955>] xfs_dialloc+0x185/0x2a0
[66571.611019] [<ffffffff8121f068>] xfs_ialloc+0x58/0x650
[66571.611021] [<ffffffff811f3995>] xfs_dir_ialloc+0x65/0x270
[66571.611023] [<ffffffff811f537c>] xfs_create+0x3ac/0x5a0
[66571.611024] [<ffffffff811eca2a>] xfs_vn_mknod+0x8a/0x1b0
[66571.611026] [<ffffffff811ecb61>] xfs_vn_mkdir+0x11/0x20
[66571.611028] [<ffffffff8110016f>] vfs_mkdir+0x7f/0xd0
[66571.611030] [<ffffffff81101b83>] sys_mkdirat+0x43/0x80
[66571.611032] [<ffffffff81101bd4>] sys_mkdir+0x14/0x20
[66571.611034] [<ffffffff816b2e52>] system_call_fastpath+0x16/0x1b
[66571.611036] INITIAL USE at:
[66571.611037] [<ffffffff8107ed49>] __lock_acquire+0x2e9/0x1c00
[66571.611038] [<ffffffff81080b55>] lock_acquire+0x55/0x70
[66571.611040] [<ffffffff8106126a>] down_write_nested+0x4a/0x70
[66571.611042] [<ffffffff811e8164>] xfs_ilock+0x84/0xb0
[66571.611044] [<ffffffff811f51a4>] xfs_create+0x1d4/0x5a0
[66571.611046] [<ffffffff811eca2a>] xfs_vn_mknod+0x8a/0x1b0
[66571.611047] [<ffffffff811ecb7e>] xfs_vn_create+0xe/0x10
[66571.611049] [<ffffffff81100322>] vfs_create+0x72/0xc0
[66571.611051] [<ffffffff81100b7e>] do_last.isra.69+0x80e/0xc80
[66571.611053] [<ffffffff8110109b>] path_openat.isra.70+0xab/0x490
[66571.611055] [<ffffffff8110183d>] do_filp_open+0x3d/0xa0
[66571.611057] [<ffffffff810f2129>] do_sys_open+0xf9/0x1e0
[66571.611059] [<ffffffff810f222c>] sys_open+0x1c/0x20
[66571.611061] [<ffffffff816b2e52>] system_call_fastpath+0x16/0x1b
[66571.611063] }
[66571.611064] ... key at: [<ffffffff825b4b81>] __key.41357+0x1/0x8
[66571.611066] ... acquired at:
[66571.611067] [<ffffffff81080b55>] lock_acquire+0x55/0x70
[66571.611069] [<ffffffff8106126a>] down_write_nested+0x4a/0x70
[66571.611071] [<ffffffff811e8164>] xfs_ilock+0x84/0xb0
[66571.611073] [<ffffffff811f51a4>] xfs_create+0x1d4/0x5a0
[66571.611074] [<ffffffff811eca2a>] xfs_vn_mknod+0x8a/0x1b0
[66571.611076] [<ffffffff811ecb7e>] xfs_vn_create+0xe/0x10
[66571.611078] [<ffffffff81100322>] vfs_create+0x72/0xc0
[66571.611080] [<ffffffff81100b7e>] do_last.isra.69+0x80e/0xc80
[66571.611082] [<ffffffff8110109b>] path_openat.isra.70+0xab/0x490
[66571.611084] [<ffffffff8110183d>] do_filp_open+0x3d/0xa0
[66571.611086] [<ffffffff810f2129>] do_sys_open+0xf9/0x1e0
[66571.611088] [<ffffffff810f222c>] sys_open+0x1c/0x20
[66571.611090] [<ffffffff816b2e52>] system_call_fastpath+0x16/0x1b
[66571.611091]
[66571.611092] -> (sb_internal){.+.+.?} ops: 1341531 {
[66571.611095] HARDIRQ-ON-R at:
[66571.611096] [<ffffffff8107ef6a>] __lock_acquire+0x50a/0x1c00
[66571.611098] [<ffffffff81080b55>] lock_acquire+0x55/0x70
[66571.611100] [<ffffffff810f451b>] __sb_start_write+0xab/0x190
[66571.611102] [<ffffffff8122b138>] xfs_trans_alloc+0x28/0x50
[66571.611104] [<ffffffff811f5157>] xfs_create+0x187/0x5a0
[66571.611105] [<ffffffff811eca2a>] xfs_vn_mknod+0x8a/0x1b0
[66571.611107] [<ffffffff811ecb7e>] xfs_vn_create+0xe/0x10
[66571.611109] [<ffffffff81100322>] vfs_create+0x72/0xc0
[66571.611111] [<ffffffff81100b7e>] do_last.isra.69+0x80e/0xc80
[66571.611113] [<ffffffff8110109b>] path_openat.isra.70+0xab/0x490
[66571.611115] [<ffffffff8110183d>] do_filp_open+0x3d/0xa0
[66571.611117] [<ffffffff810f2129>] do_sys_open+0xf9/0x1e0
[66571.611119] [<ffffffff810f222c>] sys_open+0x1c/0x20
[66571.611121] [<ffffffff816b2e52>] system_call_fastpath+0x16/0x1b
[66571.611123] SOFTIRQ-ON-R at:
[66571.611124] [<ffffffff8107f0c7>] __lock_acquire+0x667/0x1c00
[66571.611126] [<ffffffff81080b55>] lock_acquire+0x55/0x70
[66571.611128] [<ffffffff810f451b>] __sb_start_write+0xab/0x190
[66571.611130] [<ffffffff8122b138>] xfs_trans_alloc+0x28/0x50
[66571.611132] [<ffffffff811f5157>] xfs_create+0x187/0x5a0
[66571.611133] [<ffffffff811eca2a>] xfs_vn_mknod+0x8a/0x1b0
[66571.611135] [<ffffffff811ecb7e>] xfs_vn_create+0xe/0x10
[66571.611137] [<ffffffff81100322>] vfs_create+0x72/0xc0
[66571.611139] [<ffffffff81100b7e>] do_last.isra.69+0x80e/0xc80
[66571.611141] [<ffffffff8110109b>] path_openat.isra.70+0xab/0x490
[66571.611143] [<ffffffff8110183d>] do_filp_open+0x3d/0xa0
[66571.611145] [<ffffffff810f2129>] do_sys_open+0xf9/0x1e0
[66571.611147] [<ffffffff810f222c>] sys_open+0x1c/0x20
[66571.611149] [<ffffffff816b2e52>] system_call_fastpath+0x16/0x1b
[66571.611151] IN-RECLAIM_FS-R at:
[66571.611152] [<ffffffff8107efdf>] __lock_acquire+0x57f/0x1c00
[66571.611154] [<ffffffff81080b55>] lock_acquire+0x55/0x70
[66571.611156] [<ffffffff810f451b>] __sb_start_write+0xab/0x190
[66571.611158] [<ffffffff8122b138>] xfs_trans_alloc+0x28/0x50
[66571.611159] [<ffffffff811f3e64>] xfs_free_eofblocks+0x104/0x250
[66571.611161] [<ffffffff811f4b39>] xfs_inactive+0xa9/0x480
[66571.611163] [<ffffffff811efe10>] xfs_fs_evict_inode+0x70/0x80
[66571.611165] [<ffffffff8110cb7f>] evict+0xaf/0x1b0
[66571.611168] [<ffffffff8110d209>] dispose_list+0x39/0x50
[66571.611170] [<ffffffff8110dc63>] prune_icache_sb+0x183/0x340
[66571.611172] [<ffffffff810f5bc3>] prune_super+0xf3/0x1a0
[66571.611173] [<ffffffff810bbdee>] shrink_slab+0x11e/0x1f0
[66571.611175] [<ffffffff810be98f>] try_to_free_pages+0x21f/0x4e0
[66571.611177] [<ffffffff810b5ec6>] __alloc_pages_nodemask+0x506/0x800
[66571.611179] [<ffffffff810ce56e>] handle_pte_fault+0x5ae/0x7a0
[66571.611182] [<ffffffff810cf769>] handle_mm_fault+0x1f9/0x2a0
[66571.611184] [<ffffffff81029dfc>] __do_page_fault+0x16c/0x480
[66571.611186] [<ffffffff8102a139>] do_page_fault+0x9/0x10
[66571.611188] [<ffffffff816b287f>] page_fault+0x1f/0x30
[66571.611190] RECLAIM_FS-ON-R at:
[66571.611191] [<ffffffff8108137e>] mark_held_locks+0x7e/0x130
[66571.611193] [<ffffffff81081a63>] lockdep_trace_alloc+0x63/0xc0
[66571.611195] [<ffffffff810e9dc5>] kmem_cache_alloc+0x35/0xe0
[66571.611197] [<ffffffff811f6d4f>] kmem_zone_alloc+0x5f/0xe0
[66571.611198] [<ffffffff811f6de8>] kmem_zone_zalloc+0x18/0x50
[66571.611200] [<ffffffff8122b0b2>] _xfs_trans_alloc+0x32/0x90
[66571.611202] [<ffffffff8122b148>] xfs_trans_alloc+0x38/0x50
[66571.611204] [<ffffffff811f5157>] xfs_create+0x187/0x5a0
[66571.611205] [<ffffffff811eca2a>] xfs_vn_mknod+0x8a/0x1b0
[66571.611207] [<ffffffff811ecb7e>] xfs_vn_create+0xe/0x10
[66571.611209] [<ffffffff81100322>] vfs_create+0x72/0xc0
[66571.611211] [<ffffffff81100b7e>] do_last.isra.69+0x80e/0xc80
[66571.611213] [<ffffffff8110109b>] path_openat.isra.70+0xab/0x490
[66571.611215] [<ffffffff8110183d>] do_filp_open+0x3d/0xa0
[66571.611217] [<ffffffff810f2129>] do_sys_open+0xf9/0x1e0
[66571.611219] [<ffffffff810f222c>] sys_open+0x1c/0x20
[66571.611221] [<ffffffff816b2e52>] system_call_fastpath+0x16/0x1b
[66571.611223] INITIAL USE at:
[66571.611224] [<ffffffff8107ed49>] __lock_acquire+0x2e9/0x1c00
[66571.611225] [<ffffffff81080b55>] lock_acquire+0x55/0x70
[66571.611227] [<ffffffff810f451b>] __sb_start_write+0xab/0x190
[66571.611229] [<ffffffff8122b138>] xfs_trans_alloc+0x28/0x50
[66571.611231] [<ffffffff811f5157>] xfs_create+0x187/0x5a0
[66571.611232] [<ffffffff811eca2a>] xfs_vn_mknod+0x8a/0x1b0
[66571.611234] [<ffffffff811ecb7e>] xfs_vn_create+0xe/0x10
[66571.611236] [<ffffffff81100322>] vfs_create+0x72/0xc0
[66571.611238] [<ffffffff81100b7e>] do_last.isra.69+0x80e/0xc80
[66571.611240] [<ffffffff8110109b>] path_openat.isra.70+0xab/0x490
[66571.611242] [<ffffffff8110183d>] do_filp_open+0x3d/0xa0
[66571.611244] [<ffffffff810f2129>] do_sys_open+0xf9/0x1e0
[66571.611246] [<ffffffff810f222c>] sys_open+0x1c/0x20
[66571.611248] [<ffffffff816b2e52>] system_call_fastpath+0x16/0x1b
[66571.611250] }
[66571.611251] ... key at: [<ffffffff81c34e40>] xfs_fs_type+0x60/0x80
[66571.611254] ... acquired at:
[66571.611254] [<ffffffff8107df3b>] check_usage_forwards+0x10b/0x140
[66571.611256] [<ffffffff8107e900>] mark_lock+0x190/0x2f0
[66571.611258] [<ffffffff8107efdf>] __lock_acquire+0x57f/0x1c00
[66571.611260] [<ffffffff81080b55>] lock_acquire+0x55/0x70
[66571.611261] [<ffffffff810f451b>] __sb_start_write+0xab/0x190
[66571.611263] [<ffffffff8122b138>] xfs_trans_alloc+0x28/0x50
[66571.611265] [<ffffffff811f3e64>] xfs_free_eofblocks+0x104/0x250
[66571.611266] [<ffffffff811f4b39>] xfs_inactive+0xa9/0x480
[66571.611268] [<ffffffff811efe10>] xfs_fs_evict_inode+0x70/0x80
[66571.611270] [<ffffffff8110cb7f>] evict+0xaf/0x1b0
[66571.611271] [<ffffffff8110d209>] dispose_list+0x39/0x50
[66571.611273] [<ffffffff8110dc63>] prune_icache_sb+0x183/0x340
[66571.611275] [<ffffffff810f5bc3>] prune_super+0xf3/0x1a0
[66571.611277] [<ffffffff810bbdee>] shrink_slab+0x11e/0x1f0
[66571.611278] [<ffffffff810be98f>] try_to_free_pages+0x21f/0x4e0
[66571.611280] [<ffffffff810b5ec6>] __alloc_pages_nodemask+0x506/0x800
[66571.611282] [<ffffffff810ce56e>] handle_pte_fault+0x5ae/0x7a0
[66571.611284] [<ffffffff810cf769>] handle_mm_fault+0x1f9/0x2a0
[66571.611286] [<ffffffff81029dfc>] __do_page_fault+0x16c/0x480
[66571.611287] [<ffffffff8102a139>] do_page_fault+0x9/0x10
[66571.611289] [<ffffffff816b287f>] page_fault+0x1f/0x30
[66571.611291]
[66571.611292]
[66571.611292] stack backtrace:
[66571.611294] Pid: 21330, comm: cc1 Not tainted 3.7.0-rc5 #1
[66571.611295] Call Trace:
[66571.611298] [<ffffffff8107de28>] print_irq_inversion_bug.part.37+0x1e8/0x1f0
[66571.611300] [<ffffffff8107df3b>] check_usage_forwards+0x10b/0x140
[66571.611303] [<ffffffff8107e900>] mark_lock+0x190/0x2f0
[66571.611306] [<ffffffff8150406e>] ? dm_request+0x2e/0x2a0
[66571.611308] [<ffffffff8107de30>] ? print_irq_inversion_bug.part.37+0x1f0/0x1f0
[66571.611310] [<ffffffff8107efdf>] __lock_acquire+0x57f/0x1c00
[66571.611313] [<ffffffff812202f4>] ? xfs_iext_bno_to_ext+0x84/0x160
[66571.611316] [<ffffffff8120a023>] ? xfs_bmbt_get_all+0x13/0x20
[66571.611318] [<ffffffff81200fb4>] ? xfs_bmap_search_multi_extents+0xa4/0x110
[66571.611320] [<ffffffff81080b55>] lock_acquire+0x55/0x70
[66571.611322] [<ffffffff8122b138>] ? xfs_trans_alloc+0x28/0x50
[66571.611324] [<ffffffff810f451b>] __sb_start_write+0xab/0x190
[66571.611326] [<ffffffff8122b138>] ? xfs_trans_alloc+0x28/0x50
[66571.611328] [<ffffffff8122b138>] ? xfs_trans_alloc+0x28/0x50
[66571.611330] [<ffffffff8122b138>] xfs_trans_alloc+0x28/0x50
[66571.611332] [<ffffffff811f3e64>] xfs_free_eofblocks+0x104/0x250
[66571.611334] [<ffffffff816b204b>] ? _raw_spin_unlock_irq+0x2b/0x50
[66571.611336] [<ffffffff811f4b39>] xfs_inactive+0xa9/0x480
[66571.611337] [<ffffffff816b204b>] ? _raw_spin_unlock_irq+0x2b/0x50
[66571.611340] [<ffffffff811efe10>] xfs_fs_evict_inode+0x70/0x80
[66571.611342] [<ffffffff8110cb7f>] evict+0xaf/0x1b0
[66571.611344] [<ffffffff8110d209>] dispose_list+0x39/0x50
[66571.611346] [<ffffffff8110dc63>] prune_icache_sb+0x183/0x340
[66571.611347] [<ffffffff810f5bc3>] prune_super+0xf3/0x1a0
[66571.611349] [<ffffffff810bbdee>] shrink_slab+0x11e/0x1f0
[66571.611352] [<ffffffff810be98f>] try_to_free_pages+0x21f/0x4e0
[66571.611354] [<ffffffff810b5ec6>] __alloc_pages_nodemask+0x506/0x800
[66571.611356] [<ffffffff810b9e40>] ? lru_deactivate_fn+0x1c0/0x1c0
[66571.611358] [<ffffffff810ce56e>] handle_pte_fault+0x5ae/0x7a0
[66571.611360] [<ffffffff810cf769>] handle_mm_fault+0x1f9/0x2a0
[66571.611363] [<ffffffff81029dfc>] __do_page_fault+0x16c/0x480
[66571.611366] [<ffffffff8129c7ad>] ? trace_hardirqs_off_thunk+0x3a/0x3c
[66571.611368] [<ffffffff8102a139>] do_page_fault+0x9/0x10
[66571.611370] [<ffffffff816b287f>] page_fault+0x1f/0x30