Re: [Jfs-discussion] jfs: mangled lockdep splat

From: Dave Kleikamp
Date: Mon Dec 05 2016 - 17:45:14 EST


On 11/22/2016 06:05 PM, Christian Kujau wrote:
> For some time now, I always[0] receive a lockdep warning when there's some
> disk I/O on the system. But recently the warning looks kinda mangled,
> I suspect the recent printk change (4bcc595ccd80, "printk: reinstate
> KERN_CONT for printing continuation lines") to be the reason for that.
> In previous versions, the warning looked like this:
>
> http://nerdbynature.de/bits/4.6.0-rc7/dmesg.txt
>
> Below is the new warning, which is barely readable anymore. Of course,
> best would be for the warning to vanish (hehe) but maybe the printout
> could be fixed too?

Dmitry Vyukov has a fix for the lockdep formatting. I haven't tested it,
but none of this output is specific to jfs.

Maybe I should figure out how to get rid of the warning altogether.

Thanks for reporting this.

Shaggy

>
> Thanks,
> Christian.
>
> [ 2401.254353] =========================================================
> [ 2401.254410] [ INFO: possible irq lock inversion dependency detected ]
> [ 2401.254469] 4.9.0-rc6 #1 Not tainted
> [ 2401.254506] ---------------------------------------------------------
> [ 2401.254560] kswapd0/282 just changed the state of lock:
> [ 2401.254620] (
> [ 2401.254647] &jfs_ip->rdwrlock
> [ 2401.254685] #2
> [ 2401.254698] ){++++-.}
> [ 2401.254730] , at:
> [ 2401.254764] [<c01f9c38>] jfs_get_block+0x50/0x370
> [ 2401.254812] but this lock took another, RECLAIM_FS-unsafe lock in the past:
> [ 2401.254868] (
> [ 2401.254890] &jfs_ip->commit_mutex
> [ 2401.254927] ){+.+.+.}
> [ 2401.254945]
>
> and interrupts could create inverse lock ordering between them.
>
> [ 2401.255041]
> other info that might help us debug this:
> [ 2401.255097] Possible interrupt unsafe locking scenario:
>
> [ 2401.255160] CPU0 CPU1
> [ 2401.255203] ---- ----
> [ 2401.255243] lock(
> [ 2401.255273] &jfs_ip->commit_mutex
> [ 2401.255310] );
> [ 2401.255334] local_irq_disable();
> [ 2401.255381] lock(
> [ 2401.255420] &jfs_ip->rdwrlock
> [ 2401.255454] #2
> [ 2401.255467] );
> [ 2401.255494] lock(
> [ 2401.255536] &jfs_ip->commit_mutex
> [ 2401.255573] );
> [ 2401.255596] <Interrupt>
> [ 2401.255623] lock(
> [ 2401.255648] &jfs_ip->rdwrlock
> [ 2401.256059] #2
> [ 2401.256071] );
> [ 2401.256446]
> *** DEADLOCK ***
>
> [ 2401.257522] no locks held by kswapd0/282.
> [ 2401.257888]
> the shortest dependencies between 2nd lock and 1st lock:
> [ 2401.258622] ->
> [ 2401.258645] (
> [ 2401.259014] &jfs_ip->commit_mutex
> [ 2401.259047] ){+.+.+.}
> [ 2401.259418] ops: 31698
> [ 2401.259435] {
> [ 2401.259800] HARDIRQ-ON-W
> [ 2401.259829] at:
> [ 2401.260192]
> [ 2401.260236] [<c00633c8>] lock_acquire+0x4c/0x68
> [ 2401.260619]
> [ 2401.260657] [<c0652780>] mutex_lock_nested+0x38/0x2f8
> [ 2401.261048]
> [ 2401.261108] [<c01fafd0>] jfs_create+0x88/0x2c4
> [ 2401.261839]
> [ 2401.261996] [<c00ffe24>] path_openat+0xc1c/0x100c
> [ 2401.262689]
> [ 2401.262860] [<c0101224>] do_filp_open+0xb0/0x100
> [ 2401.263639]
> [ 2401.263678] [<c00ee44c>] do_sys_open+0x154/0x21c
> [ 2401.264368]
> [ 2401.264411] [<c00107e8>] ret_from_syscall+0x0/0x38
> [ 2401.265070] SOFTIRQ-ON-W
> [ 2401.265099] at:
> [ 2401.265579]
> [ 2401.265751] [<c00633c8>] lock_acquire+0x4c/0x68
> [ 2401.266268]
> [ 2401.266437] [<c0652780>] mutex_lock_nested+0x38/0x2f8
> [ 2401.266975]
> [ 2401.267135] [<c01fafd0>] jfs_create+0x88/0x2c4
> [ 2401.267679]
> [ 2401.267837] [<c00ffe24>] path_openat+0xc1c/0x100c
> [ 2401.268394]
> [ 2401.268560] [<c0101224>] do_filp_open+0xb0/0x100
> [ 2401.269104]
> [ 2401.269273] [<c00ee44c>] do_sys_open+0x154/0x21c
> [ 2401.269969]
> [ 2401.270040] [<c00107e8>] ret_from_syscall+0x0/0x38
> [ 2401.270727] RECLAIM_FS-ON-W
> [ 2401.270761] at:
> [ 2401.271279]
> [ 2401.271418] [<c0063960>] lockdep_trace_alloc+0x8c/0xe4
> [ 2401.272017]
> [ 2401.272122] [<c00e7f64>] __kmalloc+0x40/0x14c
> [ 2401.272706]
> [ 2401.272839] [<c021b638>] __jfs_set_acl+0xa0/0x1a4
> [ 2401.273428]
> [ 2401.273541] [<c021b898>] jfs_set_acl+0x50/0x9c
> [ 2401.274135]
> [ 2401.274267] [<c014bd20>] posix_acl_chmod+0xf0/0x130
> [ 2401.274824]
> [ 2401.274991] [<c0110a48>] notify_change+0x1c4/0x42c
> [ 2401.275690]
> [ 2401.275727] [<c00ecb00>] chmod_common+0x74/0x10c
> [ 2401.276382]
> [ 2401.276419] [<c00edc60>] SyS_fchmod+0x30/0x64
> [ 2401.277090]
> [ 2401.277129] [<c00107e8>] ret_from_syscall+0x0/0x38
> [ 2401.277805] INITIAL USE
> [ 2401.277834] at:
> [ 2401.278352]
> [ 2401.278525] [<c00633c8>] lock_acquire+0x4c/0x68
> [ 2401.279054]
> [ 2401.279224] [<c0652780>] mutex_lock_nested+0x38/0x2f8
> [ 2401.279783]
> [ 2401.279944] [<c01fafd0>] jfs_create+0x88/0x2c4
> [ 2401.280528]
> [ 2401.280645] [<c00ffe24>] path_openat+0xc1c/0x100c
> [ 2401.281287]
> [ 2401.281358] [<c0101224>] do_filp_open+0xb0/0x100
> [ 2401.282048]
> [ 2401.282084] [<c00ee44c>] do_sys_open+0x154/0x21c
> [ 2401.282840]
> [ 2401.282880] [<c00107e8>] ret_from_syscall+0x0/0x38
> [ 2401.283590] }
> [ 2401.284175] ... key at:
> [ 2401.284247] [<c105a23c>] __key.33791+0x0/0x8
> [ 2401.284978] ... acquired at:
> [ 2401.285526]
> [ 2401.285621] [<c0652780>] mutex_lock_nested+0x38/0x2f8
> [ 2401.286280]
> [ 2401.286378] [<c0210f78>] extAlloc+0x4c/0x650
> [ 2401.287025]
> [ 2401.287118] [<c01f9dc0>] jfs_get_block+0x1d8/0x370
> [ 2401.287787]
> [ 2401.287889] [<c012bf1c>] nobh_write_begin+0x174/0x48c
> [ 2401.288820]
> [ 2401.288855] [<c01fa6ac>] jfs_write_begin+0x34/0x94
> [ 2401.289605]
> [ 2401.289633] [<c00a6810>] generic_perform_write+0xb0/0x1bc
> [ 2401.290481]
> [ 2401.290508] [<c00a8258>] __generic_file_write_iter+0x1a4/0x1f8
> [ 2401.291290]
> [ 2401.291317] [<c00a8398>] generic_file_write_iter+0xec/0x240
> [ 2401.292110]
> [ 2401.292137] [<c00eec78>] __vfs_write+0xd8/0x188
> [ 2401.292905]
> [ 2401.292931] [<c00ef0bc>] vfs_write+0xc4/0x244
> [ 2401.293703]
> [ 2401.293731] [<c00f0f0c>] SyS_write+0x4c/0xc4
> [ 2401.294506]
> [ 2401.294533] [<c00107e8>] ret_from_syscall+0x0/0x38
>
> [ 2401.295992] ->
> [ 2401.296014] (
> [ 2401.296631] &jfs_ip->rdwrlock
> [ 2401.296745] #2
> [ 2401.297340] ){++++-.}
> [ 2401.297410] ops: 63559
> [ 2401.298054] {
> [ 2401.298663] HARDIRQ-ON-W
> [ 2401.298786] at:
> [ 2401.299442]
> [ 2401.299520] [<c00633c8>] lock_acquire+0x4c/0x68
> [ 2401.300438]
> [ 2401.300578] [<c005d548>] down_write_nested+0x30/0x7c
> [ 2401.301402]
> [ 2401.301554] [<c01f9c38>] jfs_get_block+0x50/0x370
> [ 2401.302369]
> [ 2401.302453] [<c012bf1c>] nobh_write_begin+0x174/0x48c
> [ 2401.303301]
> [ 2401.303367] [<c01fa6ac>] jfs_write_begin+0x34/0x94
> [ 2401.304219]
> [ 2401.304294] [<c00a6810>] generic_perform_write+0xb0/0x1bc
> [ 2401.305087]
> [ 2401.305141] [<c00a8258>] __generic_file_write_iter+0x1a4/0x1f8
> [ 2401.305913]
> [ 2401.305984] [<c00a8398>] generic_file_write_iter+0xec/0x240
> [ 2401.306728]
> [ 2401.306831] [<c00eec78>] __vfs_write+0xd8/0x188
> [ 2401.307532]
> [ 2401.307617] [<c00ef0bc>] vfs_write+0xc4/0x244
> [ 2401.308334]
> [ 2401.308394] [<c00f0f0c>] SyS_write+0x4c/0xc4
> [ 2401.309135]
> [ 2401.309172] [<c00107e8>] ret_from_syscall+0x0/0x38
> [ 2401.309924] HARDIRQ-ON-R
> [ 2401.309953] at:
> [ 2401.310662]
> [ 2401.310698] [<c00633c8>] lock_acquire+0x4c/0x68
> [ 2401.311456]
> [ 2401.311491] [<c005d454>] down_read_nested+0x30/0x74
> [ 2401.312277]
> [ 2401.312318] [<c01f9d00>] jfs_get_block+0x118/0x370
> [ 2401.313107]
> [ 2401.313173] [<c0134484>] do_mpage_readpage+0x444/0x814
> [ 2401.313959]
> [ 2401.314007] [<c0134954>] mpage_readpages+0x100/0x190
> [ 2401.314827]
> [ 2401.314975] [<c00b3e50>] __do_page_cache_readahead+0x260/0x32c
> [ 2401.315716]
> [ 2401.315853] [<c00a8be0>] generic_file_read_iter+0x638/0x898
> [ 2401.316569]
> [ 2401.316709] [<c00eeaf8>] __vfs_read+0xd8/0x180
> [ 2401.317374]
> [ 2401.317517] [<c00eeecc>] vfs_read+0x98/0x1c4
> [ 2401.318144]
> [ 2401.318266] [<c00f74dc>] prepare_binprm+0xd0/0x158
> [ 2401.318964]
> [ 2401.319081] [<c00f7d4c>] do_execveat_common+0x4d4/0x76c
> [ 2401.319791]
> [ 2401.319859] [<c00f8010>] do_execve+0x2c/0x3c
> [ 2401.320582]
> [ 2401.320620] [<c0003fa0>] try_to_run_init_process+0x18/0x58
> [ 2401.321398]
> [ 2401.321451] [<c00048b8>] kernel_init+0xc0/0x128
> [ 2401.322210]
> [ 2401.322259] [<c0010924>] ret_from_kernel_thread+0x5c/0x64
> [ 2401.323030] SOFTIRQ-ON-W
> [ 2401.323059] at:
> [ 2401.323764]
> [ 2401.323805] [<c00633c8>] lock_acquire+0x4c/0x68
> [ 2401.324553]
> [ 2401.324588] [<c005d548>] down_write_nested+0x30/0x7c
> [ 2401.325364]
> [ 2401.325400] [<c01f9c38>] jfs_get_block+0x50/0x370
> [ 2401.326149]
> [ 2401.326187] [<c012bf1c>] nobh_write_begin+0x174/0x48c
> [ 2401.326945]
> [ 2401.326981] [<c01fa6ac>] jfs_write_begin+0x34/0x94
> [ 2401.327737]
> [ 2401.327773] [<c00a6810>] generic_perform_write+0xb0/0x1bc
> [ 2401.328593]
> [ 2401.328628] [<c00a8258>] __generic_file_write_iter+0x1a4/0x1f8
> [ 2401.329415]
> [ 2401.329451] [<c00a8398>] generic_file_write_iter+0xec/0x240
> [ 2401.330214]
> [ 2401.330276] [<c00eec78>] __vfs_write+0xd8/0x188
> [ 2401.331014]
> [ 2401.331071] [<c00ef0bc>] vfs_write+0xc4/0x244
> [ 2401.331805]
> [ 2401.331847] [<c00f0f0c>] SyS_write+0x4c/0xc4
> [ 2401.332602]
> [ 2401.332639] [<c00107e8>] ret_from_syscall+0x0/0x38
> [ 2401.333385] SOFTIRQ-ON-R
> [ 2401.333414] at:
> [ 2401.334113]
> [ 2401.334149] [<c00633c8>] lock_acquire+0x4c/0x68
> [ 2401.334899]
> [ 2401.334934] [<c005d454>] down_read_nested+0x30/0x74
> [ 2401.335715]
> [ 2401.335755] [<c01f9d00>] jfs_get_block+0x118/0x370
> [ 2401.336541]
> [ 2401.336576] [<c0134484>] do_mpage_readpage+0x444/0x814
> [ 2401.337370]
> [ 2401.337405] [<c0134954>] mpage_readpages+0x100/0x190
> [ 2401.338181]
> [ 2401.338302] [<c00b3e50>] __do_page_cache_readahead+0x260/0x32c
> [ 2401.339068]
> [ 2401.339192] [<c00a8be0>] generic_file_read_iter+0x638/0x898
> [ 2401.339901]
> [ 2401.340042] [<c00eeaf8>] __vfs_read+0xd8/0x180
> [ 2401.340710]
> [ 2401.340844] [<c00eeecc>] vfs_read+0x98/0x1c4
> [ 2401.341513]
> [ 2401.341612] [<c00f74dc>] prepare_binprm+0xd0/0x158
> [ 2401.342326]
> [ 2401.342421] [<c00f7d4c>] do_execveat_common+0x4d4/0x76c
> [ 2401.343154]
> [ 2401.343202] [<c00f8010>] do_execve+0x2c/0x3c
> [ 2401.343949]
> [ 2401.344052] [<c0003fa0>] try_to_run_init_process+0x18/0x58
> [ 2401.344805]
> [ 2401.344883] [<c00048b8>] kernel_init+0xc0/0x128
> [ 2401.345615]
> [ 2401.345714] [<c0010924>] ret_from_kernel_thread+0x5c/0x64
> [ 2401.346442] IN-RECLAIM_FS-W
> [ 2401.346524] at:
> [ 2401.347190]
> [ 2401.347228] [<c00633c8>] lock_acquire+0x4c/0x68
> [ 2401.347984]
> [ 2401.348024] [<c005d548>] down_write_nested+0x30/0x7c
> [ 2401.348760]
> [ 2401.348798] [<c01f9c38>] jfs_get_block+0x50/0x370
> [ 2401.349559]
> [ 2401.349599] [<c012a10c>] __block_write_full_page+0x31c/0x4a0
> [ 2401.350372]
> [ 2401.350410] [<c00b9be4>] shrink_page_list+0x868/0xdc8
> [ 2401.351166]
> [ 2401.351248] [<c00ba920>] shrink_inactive_list+0x22c/0x404
> [ 2401.352021]
> [ 2401.352058] [<c00bb1e8>] shrink_node+0x388/0x67c
> [ 2401.352812]
> [ 2401.352851] [<c00bbdf0>] kswapd+0x3c4/0x560
> [ 2401.353582]
> [ 2401.353620] [<c004bd54>] kthread+0xbc/0xd0
> [ 2401.354361]
> [ 2401.354400] [<c0010924>] ret_from_kernel_thread+0x5c/0x64
> [ 2401.355140] INITIAL USE
> [ 2401.355169] at:
> [ 2401.355858]
> [ 2401.355898] [<c00633c8>] lock_acquire+0x4c/0x68
> [ 2401.356627]
> [ 2401.356662] [<c005d454>] down_read_nested+0x30/0x74
> [ 2401.357414]
> [ 2401.357456] [<c01f9d00>] jfs_get_block+0x118/0x370
> [ 2401.358208]
> [ 2401.358244] [<c0134484>] do_mpage_readpage+0x444/0x814
> [ 2401.359013]
> [ 2401.359051] [<c0134954>] mpage_readpages+0x100/0x190
> [ 2401.359789]
> [ 2401.359842] [<c00b3e50>] __do_page_cache_readahead+0x260/0x32c
> [ 2401.360659]
> [ 2401.360703] [<c00a8be0>] generic_file_read_iter+0x638/0x898
> [ 2401.361475]
> [ 2401.361616] [<c00eeaf8>] __vfs_read+0xd8/0x180
> [ 2401.362308]
> [ 2401.362413] [<c00eeecc>] vfs_read+0x98/0x1c4
> [ 2401.363099]
> [ 2401.363173] [<c00f74dc>] prepare_binprm+0xd0/0x158
> [ 2401.363895]
> [ 2401.363976] [<c00f7d4c>] do_execveat_common+0x4d4/0x76c
> [ 2401.364704]
> [ 2401.364744] [<c00f8010>] do_execve+0x2c/0x3c
> [ 2401.365478]
> [ 2401.365518] [<c0003fa0>] try_to_run_init_process+0x18/0x58
> [ 2401.366253]
> [ 2401.366289] [<c00048b8>] kernel_init+0xc0/0x128
> [ 2401.367046]
> [ 2401.367083] [<c0010924>] ret_from_kernel_thread+0x5c/0x64
> [ 2401.367865] }
> [ 2401.368531] ... key at:
> [ 2401.368566] [<c105a234>] __key.33790+0x0/0x8
> [ 2401.369316] ... acquired at:
> [ 2401.370021]
> [ 2401.370049] [<c0061108>] mark_lock+0x3dc/0x72c
> [ 2401.370682]
> [ 2401.370814] [<c0061ba0>] __lock_acquire+0x204/0x16b4
> [ 2401.371433]
> [ 2401.371540] [<c00633c8>] lock_acquire+0x4c/0x68
> [ 2401.372155]
> [ 2401.372249] [<c005d548>] down_write_nested+0x30/0x7c
> [ 2401.373188]
> [ 2401.373216] [<c01f9c38>] jfs_get_block+0x50/0x370
> [ 2401.373939]
> [ 2401.374003] [<c012a10c>] __block_write_full_page+0x31c/0x4a0
> [ 2401.374869]
> [ 2401.374901] [<c00b9be4>] shrink_page_list+0x868/0xdc8
> [ 2401.375675]
> [ 2401.375701] [<c00ba920>] shrink_inactive_list+0x22c/0x404
> [ 2401.376477]
> [ 2401.376504] [<c00bb1e8>] shrink_node+0x388/0x67c
> [ 2401.377262]
> [ 2401.377288] [<c00bbdf0>] kswapd+0x3c4/0x560
> [ 2401.378039]
> [ 2401.378065] [<c004bd54>] kthread+0xbc/0xd0
> [ 2401.378829]
> [ 2401.378857] [<c0010924>] ret_from_kernel_thread+0x5c/0x64
>
> [ 2401.380201]
> stack backtrace:
> [ 2401.381394] CPU: 0 PID: 282 Comm: kswapd0 Not tainted 4.9.0-rc6 #1
> [ 2401.382155] Call Trace:
> [ 2401.382873] [ef281a30] [c0657468] print_irq_inversion_bug.part.21+0x1d4/0x1f0 (unreliable)
> [ 2401.383704] [ef281a60] [c00603d8] check_usage_forwards+0x150/0x154
> [ 2401.384542] [ef281ab0] [c0061108] mark_lock+0x3dc/0x72c
> [ 2401.385482] [ef281ae0] [c0061ba0] __lock_acquire+0x204/0x16b4
> [ 2401.386399] [ef281b80] [c00633c8] lock_acquire+0x4c/0x68
> [ 2401.387158] [ef281ba0] [c005d548] down_write_nested+0x30/0x7c
> [ 2401.388085] [ef281bb0] [c01f9c38] jfs_get_block+0x50/0x370
> [ 2401.388747] [ef281c00] [c012a10c] __block_write_full_page+0x31c/0x4a0
> [ 2401.389539] [ef281c50] [c00b9be4] shrink_page_list+0x868/0xdc8
> [ 2401.390358] [ef281d10] [c00ba920] shrink_inactive_list+0x22c/0x404
> [ 2401.391171] [ef281d70] [c00bb1e8] shrink_node+0x388/0x67c
> [ 2401.391952] [ef281e10] [c00bbdf0] kswapd+0x3c4/0x560
> [ 2401.392709] [ef281eb0] [c004bd54] kthread+0xbc/0xd0
> [ 2401.393468] [ef281f40] [c0010924] ret_from_kernel_thread+0x5c/0x64
>
>
>
> [0] https://sourceforge.net/p/jfs/mailman/message/35093141/
>