XFS: curcular locking re iprune_mutex vs ip->i_iolock->mr_lock

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



=======================================================
[ INFO: possible circular locking dependency detected ]
2.6.22-rc2 #1
-------------------------------------------------------
mplayer/16241 is trying to acquire lock:
 (iprune_mutex){--..}, at: [<c0158322>] shrink_icache_memory+0x2e/0x16b

but task is already holding lock:
 (&(&ip->i_iolock)->mr_lock){----}, at: [<c01fc4d8>] xfs_ilock+0x44/0x86

which lock already depends on the new lock.


the existing dependency chain (in reverse order) is:

-> #1 (&(&ip->i_iolock)->mr_lock){----}:
       [<c01274e6>] __lock_acquire+0x993/0xafa
       [<c01fc4b6>] xfs_ilock+0x22/0x86
       [<c012654c>] mark_held_locks+0x39/0x53
       [<c01279f7>] lock_acquire+0x54/0x6b
       [<c01fc4b6>] xfs_ilock+0x22/0x86
       [<c01218c6>] down_write_nested+0x3b/0x54
       [<c01fc4b6>] xfs_ilock+0x22/0x86
       [<c01fc4b6>] xfs_ilock+0x22/0x86
       [<c01fc67d>] xfs_ireclaim+0x1a/0x5f
       [<c0217c17>] xfs_finish_reclaim+0x118/0x121
       [<c0225401>] xfs_fs_clear_inode+0x52/0x74
       [<c0158008>] clear_inode+0x8b/0xd9
       [<c01583cc>] shrink_icache_memory+0xd8/0x16b
       [<c0158273>] dispose_list+0x36/0xb7
       [<c0158438>] shrink_icache_memory+0x144/0x16b
       [<c0135aff>] shrink_slab+0xd8/0x126
       [<c0135e27>] kswapd+0x25e/0x33a
       [<c011f1ad>] autoremove_wake_function+0x0/0x35
       [<c0135bc9>] kswapd+0x0/0x33a
       [<c011f0f8>] kthread+0x38/0x5c
       [<c011f0c0>] kthread+0x0/0x5c
       [<c01029e7>] kernel_thread_helper+0x7/0x10
       [<ffffffff>] 0xffffffff

-> #0 (iprune_mutex){--..}:
       [<c0125435>] print_circular_bug_entry+0x40/0x46
       [<c01273d2>] __lock_acquire+0x87f/0xafa
       [<c01279f7>] lock_acquire+0x54/0x6b
       [<c0158322>] shrink_icache_memory+0x2e/0x16b
       [<c0346fa1>] __mutex_lock_slowpath+0xd9/0x254
       [<c0158322>] shrink_icache_memory+0x2e/0x16b
       [<c0158322>] shrink_icache_memory+0x2e/0x16b
       [<c0135aff>] shrink_slab+0xd8/0x126
       [<c013600f>] try_to_free_pages+0x10c/0x1b9
       [<c0132732>] __alloc_pages+0x18c/0x290
       [<c034878c>] _read_unlock_irq+0x20/0x41
       [<c0133ad2>] __do_page_cache_readahead+0xc2/0x1d2
       [<c03486f3>] _spin_unlock_irq+0x20/0x41
       [<c03486fe>] _spin_unlock_irq+0x2b/0x41
       [<c034615b>] __sched_text_start+0x55b/0x575
       [<c0133c2f>] blockable_page_cache_readahead+0x4d/0x99
       [<c0133cfb>] make_ahead_window+0x80/0xa1
       [<c0133e95>] page_cache_readahead+0x179/0x1a4
       [<c012e25a>] file_read_actor+0x8e/0x11a
       [<c012ec25>] do_generic_mapping_read+0x170/0x4a9
       [<c0130a48>] generic_file_aio_read+0x16f/0x197
       [<c012e1cc>] file_read_actor+0x0/0x11a
       [<c0223ff3>] xfs_read+0x2af/0x30a
       [<c02210b2>] xfs_file_aio_read+0x66/0x70
       [<c014863a>] do_sync_read+0xc6/0x109
       [<c0138ae3>] __handle_mm_fault+0x79a/0x7b7
       [<c011f1ad>] autoremove_wake_function+0x0/0x35
       [<c010c3a0>] do_page_fault+0x151/0x51d
       [<c0121a91>] up_read+0x14/0x27
       [<c0148574>] do_sync_read+0x0/0x109
       [<c0148c91>] vfs_read+0x76/0x97
       [<c0148f8d>] sys_read+0x43/0x69
       [<c0102556>] sysenter_past_esp+0x5f/0x99
       [<ffffffff>] 0xffffffff

other info that might help us debug this:

2 locks held by mplayer/16241:
 #0:  (&(&ip->i_iolock)->mr_lock){----}, at: [<c01fc4d8>] xfs_ilock+0x44/0x86
 #1:  (shrinker_rwsem){----}, at: [<c0135a46>] shrink_slab+0x1f/0x126

stack backtrace:
 [<c0125cce>] print_circular_bug_tail+0x5e/0x66
 [<c01273d2>] __lock_acquire+0x87f/0xafa
 [<c01279f7>] lock_acquire+0x54/0x6b
 [<c0158322>] shrink_icache_memory+0x2e/0x16b
 [<c0346fa1>] __mutex_lock_slowpath+0xd9/0x254
 [<c0158322>] shrink_icache_memory+0x2e/0x16b
 [<c0158322>] shrink_icache_memory+0x2e/0x16b
 [<c0135aff>] shrink_slab+0xd8/0x126
 [<c013600f>] try_to_free_pages+0x10c/0x1b9
 [<c0132732>] __alloc_pages+0x18c/0x290
 [<c034878c>] _read_unlock_irq+0x20/0x41
 [<c0133ad2>] __do_page_cache_readahead+0xc2/0x1d2
 [<c03486f3>] _spin_unlock_irq+0x20/0x41
 [<c03486fe>] _spin_unlock_irq+0x2b/0x41
 [<c034615b>] __sched_text_start+0x55b/0x575
 [<c0133c2f>] blockable_page_cache_readahead+0x4d/0x99
 [<c0133cfb>] make_ahead_window+0x80/0xa1
 [<c0133e95>] page_cache_readahead+0x179/0x1a4
 [<c012e25a>] file_read_actor+0x8e/0x11a
 [<c012ec25>] do_generic_mapping_read+0x170/0x4a9
 [<c0130a48>] generic_file_aio_read+0x16f/0x197
 [<c012e1cc>] file_read_actor+0x0/0x11a
 [<c0223ff3>] xfs_read+0x2af/0x30a
 [<c02210b2>] xfs_file_aio_read+0x66/0x70
 [<c014863a>] do_sync_read+0xc6/0x109
 [<c0138ae3>] __handle_mm_fault+0x79a/0x7b7
 [<c011f1ad>] autoremove_wake_function+0x0/0x35
 [<c010c3a0>] do_page_fault+0x151/0x51d
 [<c0121a91>] up_read+0x14/0x27
 [<c0148574>] do_sync_read+0x0/0x109
 [<c0148c91>] vfs_read+0x76/0x97
 [<c0148f8d>] sys_read+0x43/0x69
 [<c0102556>] sysenter_past_esp+0x5f/0x99
 =======================

-
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [Samba]     [Device Mapper]     [CEPH Development]
  Powered by Linux