lockdep splat on 4.18.0

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

 



Hi folks -

I hit this lockdep splat on 4.18.0 this morning (the + in the version is
due to btrfs patch; xfs is unmodified).  In my experience lockdep splats
involving mount are false positive, but Eric suggested I drop it here
just the same.

-Jeff

======================================================
WARNING: possible circular locking dependency detected
4.18.0-vanilla+ #8 Not tainted
------------------------------------------------------
kswapd0/56 is trying to acquire lock:
000000002f3c47dc (sb_internal){.+.+}, at: xfs_trans_alloc+0x19d/0x250 [xfs]

but task is already holding lock:
00000000e0553233 (fs_reclaim){+.+.}, at: __fs_reclaim_acquire+0x5/0x40

which lock already depends on the new lock.


the existing dependency chain (in reverse order) is:

-> #1 (fs_reclaim){+.+.}:
       lock_acquire+0xbd/0x220
       __fs_reclaim_acquire+0x2c/0x40
       kmem_cache_alloc+0x2b/0x320
       kmem_zone_alloc+0x95/0x100 [xfs]
       xfs_trans_alloc+0x6f/0x250 [xfs]
       xlog_recover_process_intents+0x1f6/0x300 [xfs]
       xlog_recover_finish+0x18/0xa0 [xfs]
       xfs_log_mount_finish+0x6d/0x110 [xfs]
       xfs_mountfs+0x6f0/0xa40 [xfs]
       xfs_fs_fill_super+0x520/0x6e0 [xfs]
       mount_bdev+0x187/0x1c0
       mount_fs+0x3a/0x160
       vfs_kern_mount+0x66/0x150
       do_mount+0x1d9/0xcf0
       ksys_mount+0x7e/0xd0
       __x64_sys_mount+0x21/0x30
       do_syscall_64+0x5d/0x1a0
       entry_SYSCALL_64_after_hwframe+0x49/0xbe

-> #0 (sb_internal){.+.+}:
       __lock_acquire+0x436/0x770
       lock_acquire+0xbd/0x220
       __sb_start_write+0x166/0x1d0
       xfs_trans_alloc+0x19d/0x250 [xfs]
       xfs_iomap_write_allocate+0x1d7/0x330 [xfs]
       xfs_map_blocks+0x2d7/0x550 [xfs]
       xfs_do_writepage+0x26b/0x7a0 [xfs]
       xfs_vm_writepage+0x28/0x50 [xfs]
       pageout.isra.51+0x1ca/0x450
       shrink_page_list+0x811/0xe30
       shrink_inactive_list+0x2e2/0x770
       shrink_node_memcg+0x32d/0x750
       shrink_node+0xc9/0x470
       balance_pgdat+0x175/0x360
       kswapd+0x181/0x5d0
       kthread+0xf8/0x130
       ret_from_fork+0x3a/0x50

other info that might help us debug this:

 Possible unsafe locking scenario:

       CPU0                    CPU1
       ----                    ----
  lock(fs_reclaim);
                               lock(sb_internal);
                               lock(fs_reclaim);
  lock(sb_internal);

 *** DEADLOCK ***

1 lock held by kswapd0/56:
 #0: 00000000e0553233 (fs_reclaim){+.+.}, at: __fs_reclaim_acquire+0x5/0x40

stack backtrace:
CPU: 0 PID: 56 Comm: kswapd0 Kdump: loaded Not tainted 4.18.0-vanilla+ #8
Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS
1.0.0-prebuilt.qemu-project.org 04/01/2014
Call Trace:
 dump_stack+0x78/0xb3
 print_circular_bug.isra.37+0x1f3/0x200
 check_prev_add.constprop.46+0x717/0x730
 validate_chain.isra.41+0x652/0x980
 __lock_acquire+0x436/0x770
 lock_acquire+0xbd/0x220
 ? xfs_trans_alloc+0x19d/0x250 [xfs]
 __sb_start_write+0x166/0x1d0
 ? xfs_trans_alloc+0x19d/0x250 [xfs]
 xfs_trans_alloc+0x19d/0x250 [xfs]
 xfs_iomap_write_allocate+0x1d7/0x330 [xfs]
 ? xfs_iext_lookup_extent+0x11f/0x140 [xfs]
 ? xfs_iunlock+0x132/0x2f0 [xfs]
 ? xfs_map_blocks+0x100/0x550 [xfs]
 xfs_map_blocks+0x2d7/0x550 [xfs]
 xfs_do_writepage+0x26b/0x7a0 [xfs]
 xfs_vm_writepage+0x28/0x50 [xfs]
 pageout.isra.51+0x1ca/0x450
 shrink_page_list+0x811/0xe30
 shrink_inactive_list+0x2e2/0x770
 shrink_node_memcg+0x32d/0x750
 shrink_node+0xc9/0x470
 balance_pgdat+0x175/0x360
 kswapd+0x181/0x5d0
 ? wait_woken+0x80/0x80
 kthread+0xf8/0x130
 ? balance_pgdat+0x360/0x360
 ? kthread_delayed_work_timer_fn+0x80/0x80
 ret_from_fork+0x3a/0x50


-- 
Jeff Mahoney
SUSE Labs



[Index of Archives]     [XFS Filesystem Development (older mail)]     [Linux Filesystem Development]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux RAID]     [Linux SCSI]


  Powered by Linux