[ INFO: possible circular locking dependency detected ] 4.9.194+ #0 Not tainted ------------------------------------------------------- kworker/u4:3/1609 is trying to acquire lock: (&mm->mmap_sem){++++++}, at: [<0000000074f9392b>] get_cmdline+0xa3/0x2d0 mm/util.c:641 but task is already holding lock: (&sbi->s_journal_flag_rwsem){.+.+.+}, at: [<0000000025e1c8dd>] do_writepages+0xfc/0x1e0 mm/page-writeback.c:2338 which lock already depends on the new lock. the existing dependency chain (in reverse order) is: -> #2 (&sbi->s_journal_flag_rwsem){.+.+.+}: lock_acquire+0x133/0x3d0 kernel/locking/lockdep.c:3756 percpu_down_read_preempt_disable include/linux/percpu-rwsem.h:35 [inline] percpu_down_read include/linux/percpu-rwsem.h:58 [inline] ext4_writepages+0x1a1/0x2de0 fs/ext4/inode.c:2658 do_writepages+0xfc/0x1e0 mm/page-writeback.c:2338 __filemap_fdatawrite_range+0x1ad/0x260 mm/filemap.c:392 filemap_write_and_wait_range mm/filemap.c:580 [inline] filemap_write_and_wait_range+0x5c/0xb0 mm/filemap.c:573 ext4_collapse_range+0x3cd/0xf30 fs/ext4/extents.c:5552 ext4_fallocate+0x643/0x2060 fs/ext4/extents.c:4971 vfs_fallocate+0x407/0x6a0 fs/open.c:329 SYSC_fallocate fs/open.c:352 [inline] SyS_fallocate+0x52/0x90 fs/open.c:346 do_syscall_64+0x1ad/0x5c0 arch/x86/entry/common.c:288 entry_SYSCALL_64_after_swapgs+0x5d/0xdb -> #1 (&ei->i_mmap_sem){++++++}: lock_acquire+0x133/0x3d0 kernel/locking/lockdep.c:3756 down_read+0x44/0xb0 kernel/locking/rwsem.c:22 ext4_filemap_fault+0x67/0xa0 fs/ext4/inode.c:5853 __do_fault+0x2a8/0x6c0 mm/memory.c:2855 do_cow_fault mm/memory.c:3236 [inline] do_fault mm/memory.c:3340 [inline] handle_pte_fault mm/memory.c:3547 [inline] __handle_mm_fault mm/memory.c:3634 [inline] handle_mm_fault+0x723/0x2420 mm/memory.c:3671 __do_page_fault+0x3f0/0xa60 arch/x86/mm/fault.c:1401 do_page_fault+0x28/0x30 arch/x86/mm/fault.c:1464 page_fault+0x25/0x30 arch/x86/entry/entry_64.S:956 clear_user+0x79/0xd0 arch/x86/lib/usercopy_64.c:52 padzero fs/binfmt_elf.c:119 [inline] load_elf_binary+0x2f63/0x4a90 fs/binfmt_elf.c:1042 search_binary_handler fs/exec.c:1621 [inline] search_binary_handler+0x14f/0x700 fs/exec.c:1599 exec_binprm fs/exec.c:1663 [inline] do_execveat_common.isra.0+0xf81/0x1db0 fs/exec.c:1785 do_execve+0x3a/0x50 fs/exec.c:1829 run_init_process+0x33/0x37 init/main.c:904 try_to_run_init_process+0x18/0x48 init/main.c:913 kernel_init+0xf2/0x163 init/main.c:984 ret_from_fork+0x5c/0x70 arch/x86/entry/entry_64.S:375 -> #0 (&mm->mmap_sem){++++++}: check_prev_add kernel/locking/lockdep.c:1828 [inline] check_prevs_add kernel/locking/lockdep.c:1938 [inline] validate_chain kernel/locking/lockdep.c:2265 [inline] __lock_acquire+0x2d22/0x4390 kernel/locking/lockdep.c:3345 lock_acquire+0x133/0x3d0 kernel/locking/lockdep.c:3756 down_read+0x44/0xb0 kernel/locking/rwsem.c:22 get_cmdline+0xa3/0x2d0 mm/util.c:641 handle_lmk_event+0x169/0x920 drivers/staging/android/lowmemorykiller.c:116 lowmem_scan+0x6f3/0xb70 drivers/staging/android/lowmemorykiller.c:354 do_shrink_slab mm/vmscan.c:399 [inline] shrink_slab.part.0+0x3cf/0xa20 mm/vmscan.c:502 shrink_slab mm/vmscan.c:466 [inline] shrink_node+0x1ed/0x750 mm/vmscan.c:2604 shrink_zones mm/vmscan.c:2751 [inline] do_try_to_free_pages mm/vmscan.c:2793 [inline] try_to_free_pages+0x397/0xbd0 mm/vmscan.c:3004 __perform_reclaim mm/page_alloc.c:3332 [inline] __alloc_pages_direct_reclaim mm/page_alloc.c:3354 [inline] __alloc_pages_slowpath mm/page_alloc.c:3704 [inline] __alloc_pages_nodemask+0x930/0x1a80 mm/page_alloc.c:3861 __alloc_pages include/linux/gfp.h:433 [inline] __alloc_pages_node include/linux/gfp.h:446 [inline] alloc_slab_page mm/slub.c:1408 [inline] allocate_slab mm/slub.c:1557 [inline] new_slab+0x33b/0x3e0 mm/slub.c:1635 new_slab_objects mm/slub.c:2419 [inline] ___slab_alloc.constprop.0+0x361/0x470 mm/slub.c:2576 __slab_alloc.isra.0.constprop.0+0x50/0xa0 mm/slub.c:2618 slab_alloc_node mm/slub.c:2681 [inline] slab_alloc mm/slub.c:2723 [inline] kmem_cache_alloc+0x212/0x2b0 mm/slub.c:2728 mempool_alloc_slab+0x47/0x60 mm/mempool.c:449 mempool_alloc+0x149/0x360 mm/mempool.c:329 bvec_alloc+0xce/0x2e0 block/bio.c:215 bio_alloc_bioset+0x4f5/0x7d0 block/bio.c:494 bio_alloc include/linux/bio.h:393 [inline] io_submit_init_bio fs/ext4/page-io.c:362 [inline] io_submit_add_bh fs/ext4/page-io.c:387 [inline] ext4_bio_write_page+0x5a6/0xb60 fs/ext4/page-io.c:492 mpage_submit_page+0x138/0x240 fs/ext4/inode.c:2144 mpage_process_page_bufs+0x3b7/0x4a0 fs/ext4/inode.c:2249 mpage_prepare_extent_to_map+0x449/0x9a0 fs/ext4/inode.c:2618 ext4_writepages+0xf2e/0x2de0 fs/ext4/inode.c:2780 do_writepages+0xfc/0x1e0 mm/page-writeback.c:2338 __writeback_single_inode+0xd9/0x1040 fs/fs-writeback.c:1364 writeback_sb_inodes+0x50f/0xea0 fs/fs-writeback.c:1628 __writeback_inodes_wb+0xc3/0x210 fs/fs-writeback.c:1697 wb_writeback+0x637/0xbd0 fs/fs-writeback.c:1806 wb_do_writeback fs/fs-writeback.c:1938 [inline] wb_workfn+0x1c4/0xe70 fs/fs-writeback.c:1974 process_one_work+0x88b/0x1600 kernel/workqueue.c:2114 worker_thread+0x5df/0x11d0 kernel/workqueue.c:2251 kthread+0x278/0x310 kernel/kthread.c:211 ret_from_fork+0x5c/0x70 arch/x86/entry/entry_64.S:375 other info that might help us debug this: Chain exists of: &mm->mmap_sem --> &ei->i_mmap_sem --> &sbi->s_journal_flag_rwsem Possible unsafe locking scenario: CPU0 CPU1 ---- ---- lock(&sbi->s_journal_flag_rwsem); lock(&ei->i_mmap_sem); lock(&sbi->s_journal_flag_rwsem); lock(&mm->mmap_sem); *** DEADLOCK *** 5 locks held by kworker/u4:3/1609: #0: ("writeback"){++++.+}, at: [<000000003d3cd625>] process_one_work+0x790/0x1600 kernel/workqueue.c:2107 #1: ((&(&wb->dwork)->work)){+.+.+.}, at: [<00000000f313251c>] process_one_work+0x7ce/0x1600 kernel/workqueue.c:2111 #2: (&type->s_umount_key#32){++++.+}, at: [<00000000cb7cd328>] trylock_super+0x20/0xf0 fs/super.c:403 #3: (&sbi->s_journal_flag_rwsem){.+.+.+}, at: [<0000000025e1c8dd>] do_writepages+0xfc/0x1e0 mm/page-writeback.c:2338 #4: (shrinker_rwsem){++++..}, at: [<0000000089a9a7bc>] shrink_slab.part.0+0xb2/0xa20 mm/vmscan.c:472 stack backtrace: CPU: 0 PID: 1609 Comm: kworker/u4:3 Not tainted 4.9.194+ #0 Workqueue: writeback wb_workfn (flush-8:0) ffff880115f5e308 ffffffff81b67001 ffffffff83cb0b40 ffffffff83cb8d30 ffffffff83cb18c0 ffffffff84252000 ffff8801d0e7c740 ffff880115f5e360 ffffffff81406d83 ffffffff81078ba6 ffffffff84002500 ffff8801d0e7d0b8 Call Trace: [<00000000d54ad02e>] __dump_stack lib/dump_stack.c:15 [inline] [<00000000d54ad02e>] dump_stack+0xc1/0x120 lib/dump_stack.c:51 [<000000002b91181c>] print_circular_bug.cold+0x2f6/0x454 kernel/locking/lockdep.c:1202 [<000000001769b2ae>] check_prev_add kernel/locking/lockdep.c:1828 [inline] [<000000001769b2ae>] check_prevs_add kernel/locking/lockdep.c:1938 [inline] [<000000001769b2ae>] validate_chain kernel/locking/lockdep.c:2265 [inline] [<000000001769b2ae>] __lock_acquire+0x2d22/0x4390 kernel/locking/lockdep.c:3345 [<00000000d2f396d6>] lock_acquire+0x133/0x3d0 kernel/locking/lockdep.c:3756 [<00000000896d6443>] down_read+0x44/0xb0 kernel/locking/rwsem.c:22 [<0000000074f9392b>] get_cmdline+0xa3/0x2d0 mm/util.c:641 [<00000000ddbcf4ac>] handle_lmk_event+0x169/0x920 drivers/staging/android/lowmemorykiller.c:116 [<0000000077dee117>] lowmem_scan+0x6f3/0xb70 drivers/staging/android/lowmemorykiller.c:354 [<00000000f4800378>] do_shrink_slab mm/vmscan.c:399 [inline] [<00000000f4800378>] shrink_slab.part.0+0x3cf/0xa20 mm/vmscan.c:502 [<000000004a856938>] shrink_slab mm/vmscan.c:466 [inline] [<000000004a856938>] shrink_node+0x1ed/0x750 mm/vmscan.c:2604 [<000000001e37c259>] shrink_zones mm/vmscan.c:2751 [inline] [<000000001e37c259>] do_try_to_free_pages mm/vmscan.c:2793 [inline] [<000000001e37c259>] try_to_free_pages+0x397/0xbd0 mm/vmscan.c:3004 [<000000003f0e3813>] __perform_reclaim mm/page_alloc.c:3332 [inline] [<000000003f0e3813>] __alloc_pages_direct_reclaim mm/page_alloc.c:3354 [inline] [<000000003f0e3813>] __alloc_pages_slowpath mm/page_alloc.c:3704 [inline] [<000000003f0e3813>] __alloc_pages_nodemask+0x930/0x1a80 mm/page_alloc.c:3861 [<00000000d359472b>] __alloc_pages include/linux/gfp.h:433 [inline] [<00000000d359472b>] __alloc_pages_node include/linux/gfp.h:446 [inline] [<00000000d359472b>] alloc_slab_page mm/slub.c:1408 [inline] [<00000000d359472b>] allocate_slab mm/slub.c:1557 [inline] [<00000000d359472b>] new_slab+0x33b/0x3e0 mm/slub.c:1635 [<0000000084eeca4a>] new_slab_objects mm/slub.c:2419 [inline] [<0000000084eeca4a>] ___slab_alloc.constprop.0+0x361/0x470 mm/slub.c:2576 [<00000000a2c646d7>] __slab_alloc.isra.0.constprop.0+0x50/0xa0 mm/slub.c:2618 [<00000000cc121c92>] slab_alloc_node mm/slub.c:2681 [inline] [<00000000cc121c92>] slab_alloc mm/slub.c:2723 [inline] [<00000000cc121c92>] kmem_cache_alloc+0x212/0x2b0 mm/slub.c:2728 [<00000000cebf46a8>] mempool_alloc_slab+0x47/0x60 mm/mempool.c:449 [<0000000091f7bbcf>] mempool_alloc+0x149/0x360 mm/mempool.c:329 [<00000000e2e7d861>] bvec_alloc+0xce/0x2e0 block/bio.c:215 [<00000000266516af>] bio_alloc_bioset+0x4f5/0x7d0 block/bio.c:494 [<000000004079875c>] bio_alloc include/linux/bio.h:393 [inline] [<000000004079875c>] io_submit_init_bio fs/ext4/page-io.c:362 [inline] [<000000004079875c>] io_submit_add_bh fs/ext4/page-io.c:387 [inline] [<000000004079875c>] ext4_bio_write_page+0x5a6/0xb60 fs/ext4/page-io.c:492 [<000000008f33ed23>] mpage_submit_page+0x138/0x240 fs/ext4/inode.c:2144 [<00000000b7e70cb2>] mpage_process_page_bufs+0x3b7/0x4a0 fs/ext4/inode.c:2249 [<00000000644d5a40>] mpage_prepare_extent_to_map+0x449/0x9a0 fs/ext4/inode.c:2618 [<00000000a6a1fb87>] ext4_writepages+0xf2e/0x2de0 fs/ext4/inode.c:2780 [<0000000025e1c8dd>] do_writepages+0xfc/0x1e0 mm/page-writeback.c:2338 [<00000000671b77b8>] __writeback_single_inode+0xd9/0x1040 fs/fs-writeback.c:1364 [<00000000616ef62e>] writeback_sb_inodes+0x50f/0xea0 fs/fs-writeback.c:1628 [<000000006ac93dc5>] __writeback_inodes_wb+0xc3/0x210 fs/fs-writeback.c:1697 [<00000000badb2953>] wb_writeback+0x637/0xbd0 fs/fs-writeback.c:1806 [<00000000b941cba4>] wb_do_writeback fs/fs-writeback.c:1938 [inline] [<00000000b941cba4>] wb_workfn+0x1c4/0xe70 fs/fs-writeback.c:1974 [<000000009b23c206>] process_one_work+0x88b/0x1600 kernel/workqueue.c:2114 [<00000000aeea98f9>] worker_thread+0x5df/0x11d0 kernel/workqueue.c:2251 [<00000000a53a91b3>] kthread+0x278/0x310 kernel/kthread.c:211 [<00000000f94df156>] ret_from_fork+0x5c/0x70 arch/x86/entry/entry_64.S:375 lowmemorykiller: Killing 'syz-executor.1' (4109) (tgid 4109), adj 1000, to free 52524kB on behalf of 'udevd' (470) because cache 65416kB is below limit 65536kB for oom_score_adj 12 Free memory is -5580kB above reserved lowmemorykiller: Killing 'syz-executor.0' (3259) (tgid 3259), adj 1000, to free 52520kB on behalf of 'udevd' (470) because cache 65216kB is below limit 65536kB for oom_score_adj 12 Free memory is -5480kB above reserved lowmemorykiller: Killing 'syz-executor.1' (4109) (tgid 4109), adj 1000, to free 52524kB on behalf of 'blkid' (22825) because cache 65316kB is below limit 65536kB for oom_score_adj 12 Free memory is -5580kB above reserved lowmemorykiller: Killing 'syz-executor.0' (3259) (tgid 3259), adj 1000, to free 52520kB on behalf of 'syz-executor.4' (27882) because cache 65216kB is below limit 65536kB for oom_score_adj 12 Free memory is -5480kB above reserved lowmemorykiller: Killing 'syz-executor.2' (10260) (tgid 10260), adj 1000, to free 52520kB on behalf of 'syz-executor.4' (27882) because cache 64548kB is below limit 65536kB for oom_score_adj 12 Free memory is -5216kB above reserved lowmemorykiller: Killing 'syz-executor.0' (3475) (tgid 3475), adj 1000, to free 52516kB on behalf of 'udevd' (3147) because cache 64448kB is below limit 65536kB for oom_score_adj 12 Free memory is -5112kB above reserved lowmemorykiller: Killing 'syz-executor.1' (4109) (tgid 4109), adj 1000, to free 52524kB on behalf of 'syz-executor.2' (2097) because cache 65516kB is below limit 65536kB for oom_score_adj 12 Free memory is -5364kB above reserved lowmemorykiller: Killing 'syz-executor.0' (3970) (tgid 3970), adj 1000, to free 52516kB on behalf of 'syz-executor.2' (2097) because cache 63748kB is below limit 65536kB for oom_score_adj 12 Free memory is -5020kB above reserved lowmemorykiller: Killing 'syz-executor.4' (10342) (tgid 10342), adj 1000, to free 52516kB on behalf of 'syz-executor.2' (2097) because cache 63648kB is below limit 65536kB for oom_score_adj 12 Free memory is -4920kB above reserved lowmemorykiller: Killing 'syz-executor.5' (3416) (tgid 3416), adj 1000, to free 52512kB on behalf of 'syz-executor.2' (2097) because cache 63648kB is below limit 65536kB for oom_score_adj 12 Free memory is -4920kB above reserved lowmemorykiller: Killing 'syz-executor.1' (3775) (tgid 3775), adj 1000, to free 52512kB on behalf of 'syz-executor.1' (22828) because cache 63448kB is below limit 65536kB for oom_score_adj 12 Free memory is -4880kB above reserved lowmemorykiller: Killing 'syz-executor.5' (4026) (tgid 4026), adj 1000, to free 52508kB on behalf of 'udevd' (3145) because cache 63616kB is below limit 65536kB for oom_score_adj 12 Free memory is -6444kB above reserved lowmemorykiller: Killing 'syz-executor.0' (3734) (tgid 3734), adj 1000, to free 52504kB on behalf of 'udevd' (3145) because cache 63616kB is below limit 65536kB for oom_score_adj 12 Free memory is -6568kB above reserved lowmemorykiller: Killing 'syz-executor.1' (12417) (tgid 12417), adj 1000, to free 52504kB on behalf of 'udevd' (3145) because cache 63516kB is below limit 65536kB for oom_score_adj 12 Free memory is -6692kB above reserved lowmemorykiller: Killing 'syz-executor.4' (22550) (tgid 22550), adj 1000, to free 52500kB on behalf of 'kworker/u4:1' (64) because cache 63316kB is below limit 65536kB for oom_score_adj 12 Free memory is -7268kB above reserved lowmemorykiller: Killing 'syz-executor.0' (3171) (tgid 3171), adj 1000, to free 52496kB on behalf of 'kworker/u4:1' (64) because cache 63016kB is below limit 65536kB for oom_score_adj 12 Free memory is -7696kB above reserved lowmemorykiller: Killing 'syz-executor.0' (3171) (tgid 3171), adj 1000, to free 52496kB on behalf of 'kworker/u4:3' (1609) because cache 63216kB is below limit 65536kB for oom_score_adj 12 Free memory is -7696kB above reserved lowmemorykiller: Killing 'syz-executor.0' (3171) (tgid 3171), adj 1000, to free 52496kB on behalf of 'udevd' (3145) because cache 63416kB is below limit 65536kB for oom_score_adj 12 Free memory is -6692kB above reserved lowmemorykiller: Killing 'syz-executor.0' (2664) (tgid 2664), adj 1000, to free 52492kB on behalf of 'udevd' (3145) because cache 62816kB is below limit 65536kB for oom_score_adj 12 Free memory is -9092kB above reserved lowmemorykiller: Killing 'syz-executor.0' (2664) (tgid 2664), adj 1000, to free 52492kB on behalf of 'syz-executor.5' (23224) because cache 62916kB is below limit 65536kB for oom_score_adj 12 Free memory is -8596kB above reserved lowmemorykiller: Killing 'syz-executor.0' (2664) (tgid 2664), adj 1000, to free 52492kB on behalf of 'kworker/u4:3' (1609) because cache 62816kB is below limit 65536kB for oom_score_adj 12 Free memory is -8596kB above reserved lowmemorykiller: Killing 'syz-executor.0' (3432) (tgid 3432), adj 1000, to free 52492kB on behalf of 'syz-executor.5' (23224) because cache 62716kB is below limit 65536kB for oom_score_adj 12 Free memory is -9712kB above reserved lowmemorykiller: Killing 'syz-executor.0' (3432) (tgid 3432), adj 1000, to free 52492kB on behalf of 'udevd' (3145) because cache 62616kB is below limit 65536kB for oom_score_adj 12 Free memory is -1908kB above reserved lowmemorykiller: Killing 'syz-executor.5' (3556) (tgid 3556), adj 1000, to free 52492kB on behalf of 'udevd' (3145) because cache 62764kB is below limit 65536kB for oom_score_adj 12 Free memory is -1040kB above reserved lowmemorykiller: Killing 'syz-executor.5' (3556) (tgid 3556), adj 1000, to free 52492kB on behalf of 'kworker/u4:3' (1609) because cache 62616kB is below limit 65536kB for oom_score_adj 12 Free memory is -1472kB above reserved