FYI, we noticed the below changes on git://git.kernel.org/pub/scm/linux/kernel/git/josef/btrfs-next.git superblock-scaling commit 2709a56a0a029b769676cf270b1daa046edbd9cb ("inode: convert per-sb inode list to a list_lru") +----------------------------------------------------+------------+------------+ | | f545223a1c | 2709a56a0a | +----------------------------------------------------+------------+------------+ | boot_successes | 20 | 0 | | boot_failures | 0 | 15 | | INFO:possible_circular_locking_dependency_detected | 0 | 15 | | backtrace:kern_mount_data | 0 | 15 | | backtrace:bdev_cache_init | 0 | 15 | | backtrace:vfs_caches_init | 0 | 15 | +----------------------------------------------------+------------+------------+ wfg: rebooting [ 4.857686] [ 4.857848] ====================================================== [ 4.858377] [ INFO: possible circular locking dependency detected ] [ 4.858885] 4.0.0-rc3-00299-g36e71fc #134 Not tainted [ 4.859322] ------------------------------------------------------- [ 4.859806] reboot/137 is trying to acquire lock: [ 4.860009] (&sb->s_type->i_lock_key#2){+.+...}, at: [] bdev_iter_cb+0x18/0xa0 [ 4.860009] [ 4.860009] but task is already holding lock: [ 4.860009] (&(&lru->node[i].lock)->rlock){+.+...}, at: [] __list_lru_walk_one+0x1c/0x110 [ 4.860009] [ 4.860009] which lock already depends on the new lock. [ 4.860009] [ 4.860009] [ 4.860009] the existing dependency chain (in reverse order) is: [ 4.860009] -> #2 (&(&lru->node[i].lock)->rlock){+.+...}: [ 4.860009] [] lock_acquire+0x6e/0xa0 [ 4.860009] [] _raw_spin_lock+0x23/0x40 [ 4.860009] [] list_lru_add+0x19/0x60 [ 4.860009] [] dput+0x2c7/0x350 [ 4.860009] [] __fput+0x104/0x1b0 [ 4.860009] [] ____fput+0x8/0x10 [ 4.860009] [] task_work_run+0x99/0xc0 [ 4.860009] [] do_notify_resume+0x58/0x60 [ 4.860009] [] work_notifysig+0x35/0x3b [ 4.860009] -> #1 (&(&dentry->d_lockref.lock)->rlock){+.+...}: [ 4.860009] [] lock_acquire+0x6e/0xa0 [ 4.860009] [] _raw_spin_lock+0x23/0x40 [ 4.860009] [] __d_instantiate+0x1f/0xe0 [ 4.860009] [] d_instantiate+0x2b/0x60 [ 4.860009] [] mount_pseudo+0xd1/0x140 [ 4.860009] [] bd_mount+0x19/0x20 [ 4.860009] [] mount_fs+0x26/0x150 [ 4.860009] [] vfs_kern_mount+0x43/0x130 [ 4.860009] [] kern_mount_data+0x10/0x30 [ 4.860009] [] bdev_cache_init+0x49/0x69 [ 4.860009] [] vfs_caches_init+0x8a/0xe5 [ 4.860009] [] start_kernel+0x371/0x3a0 [ 4.860009] [] i386_start_kernel+0x85/0x89 [ 4.860009] -> #0 (&sb->s_type->i_lock_key#2){+.+...}: [ 4.860009] [] __lock_acquire+0x1a5a/0x1c90 [ 4.860009] [] lock_acquire+0x6e/0xa0 [ 4.860009] [] _raw_spin_lock+0x23/0x40 [ 4.860009] [] bdev_iter_cb+0x18/0xa0 [ 4.860009] [] __list_lru_walk_one+0x5e/0x110 [ 4.860009] [] list_lru_walk_node+0xe/0x10 [ 4.860009] [] iterate_bdevs+0x38/0x50 [ 4.860009] [] sys_sync+0x52/0x80 [ 4.860009] [] syscall_after_call+0x0/0x4 [ 4.860009] [ 4.860009] other info that might help us debug this: [ 4.860009] [ 4.860009] Chain exists of: &sb->s_type->i_lock_key#2 --> &(&dentry->d_lockref.lock)->rlock --> &(&lru->node[i].lock)->rlock [ 4.860009] Possible unsafe locking scenario: [ 4.860009] [ 4.860009] CPU0 CPU1 [ 4.860009] ---- ---- [ 4.860009] lock(&(&lru->node[i].lock)->rlock); [ 4.860009] lock(&(&dentry->d_lockref.lock)->rlock); [ 4.860009] lock(&(&lru->node[i].lock)->rlock); [ 4.860009] lock(&sb->s_type->i_lock_key#2); [ 4.860009] [ 4.860009] *** DEADLOCK *** [ 4.860009] [ 4.860009] 1 lock held by reboot/137: [ 4.860009] #0: (&(&lru->node[i].lock)->rlock){+.+...}, at: [] __list_lru_walk_one+0x1c/0x110 [ 4.860009] [ 4.860009] stack backtrace: [ 4.860009] CPU: 0 PID: 137 Comm: reboot Not tainted 4.0.0-rc3-00299-g36e71fc #134 [ 4.860009] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.7.5-20140531_083030-gandalf 04/01/2014 [ 4.860009] 00000000 00000000 cd635e44 c206a841 c2d79720 cd635e74 c10b67c0 c25264e1 [ 4.860009] c252647e c2526461 c2526476 c2526461 c2f77e60 cd656000 cd6564b4 cd656000 [ 4.860009] cd65649c cd635ee0 c10bb34a cd65649c cd656000 00000001 00000000 00000000 [ 4.860009] Call Trace: [ 4.860009] [] dump_stack+0x48/0x60 [ 4.860009] [] print_circular_bug+0x190/0x280 [ 4.860009] [] __lock_acquire+0x1a5a/0x1c90 [ 4.860009] [] lock_acquire+0x6e/0xa0 [ 4.860009] [] ? bdev_iter_cb+0x18/0xa0 [ 4.860009] [] _raw_spin_lock+0x23/0x40 [ 4.860009] [] ? bdev_iter_cb+0x18/0xa0 [ 4.860009] [] bdev_iter_cb+0x18/0xa0 [ 4.860009] [] ? block_llseek+0xf0/0xf0 [ 4.860009] [] __list_lru_walk_one+0x5e/0x110 [ 4.860009] [] ? block_llseek+0xf0/0xf0 [ 4.860009] [] list_lru_walk_node+0xe/0x10 [ 4.860009] [] iterate_bdevs+0x38/0x50 [ 4.860009] [] ? fdatawait_one_bdev+0x10/0x10 [ 4.860009] [] sys_sync+0x52/0x80 [ 4.860009] [] syscall_call+0x7/0x7 [ 4.896543] Unregister pv shared memory for cpu 0 [ 4.897080] spin_lock-torture: Unscheduled system shutdown detected [ 4.897605] no ifx modem active; Thanks, Ying Huang