Recursive locking complaint with nvme-5.13 branch
Bart Van Assche
bvanassche at acm.org
Thu Apr 1 05:03:36 BST 2021
Hi,
If I boot a VM with the nvme-5.13 branch (commit 24e238c92186
("nvme: warn of unhandled effects only once")) then the complaint
shown below is reported. Is this a known issue?
Thanks,
Bart.
============================================
WARNING: possible recursive locking detected
5.12.0-rc3-dbg+ #6 Not tainted
--------------------------------------------
systemd-udevd/299 is trying to acquire lock:
ffff88811b1e80a0 (&bdev->bd_mutex){+.+.}-{3:3}, at: blkdev_get_by_dev+0x85/0x350
but task is already holding lock:
ffff8881134100a0 (&bdev->bd_mutex){+.+.}-{3:3}, at: blkdev_get_by_dev+0x1a9/0x350
other info that might help us debug this:
Possible unsafe locking scenario:
CPU0
----
lock(&bdev->bd_mutex);
lock(&bdev->bd_mutex);
*** DEADLOCK ***
May be due to missing lock nesting notation
3 locks held by systemd-udevd/299:
#0: ffff8881134100a0 (&bdev->bd_mutex){+.+.}-{3:3}, at: blkdev_get_by_dev+0x1a9/0x350
#1: ffffffffa10269c8 (pktcdvd_mutex){+.+.}-{3:3}, at: pkt_open+0x22/0x15a [pktcdvd]
#2: ffffffffa1025788 (&ctl_mutex#2){+.+.}-{3:3}, at: pkt_open+0x30/0x15a [pktcdvd]
stack backtrace:
CPU: 6 PID: 299 Comm: systemd-udevd Not tainted 5.12.0-rc3-dbg+ #6
Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.14.0-0-g155821a-rebuilt.opensuse.org 04/01/2014
Call Trace:
show_stack+0x52/0x58
dump_stack+0x9d/0xcf
print_deadlock_bug.cold+0x131/0x136
validate_chain+0x6d3/0xc70
? check_prev_add+0x11d0/0x11d0
__lock_acquire+0x500/0x920
? start_flush_work+0x375/0x510
? __this_cpu_preempt_check+0x13/0x20
lock_acquire.part.0+0x117/0x210
? blkdev_get_by_dev+0x85/0x350
? rcu_read_unlock+0x50/0x50
? __this_cpu_preempt_check+0x13/0x20
? lock_is_held_type+0xdb/0x130
lock_acquire+0x9b/0x1a0
? blkdev_get_by_dev+0x85/0x350
__mutex_lock+0x117/0xb60
? blkdev_get_by_dev+0x85/0x350
? blkdev_get_by_dev+0x85/0x350
? mutex_lock_io_nested+0xa70/0xa70
? __kasan_check_write+0x14/0x20
? __mutex_unlock_slowpath+0xa7/0x290
? __ww_mutex_check_kill+0x160/0x160
? trace_hardirqs_on+0x2b/0x130
? mutex_unlock+0x12/0x20
? disk_block_events+0x92/0xc0
mutex_lock_nested+0x1b/0x20
blkdev_get_by_dev+0x85/0x350
? __mutex_lock+0x49c/0xb60
pkt_open_dev+0x7f/0x370 [pktcdvd]
? pkt_open_write+0x120/0x120 [pktcdvd]
? __ww_mutex_check_kill+0x160/0x160
pkt_open+0xfd/0x15a [pktcdvd]
__blkdev_get+0xa3/0x450
blkdev_get_by_dev+0x1b4/0x350
? __kasan_check_read+0x11/0x20
blkdev_open+0xa4/0x120
do_dentry_open+0x27d/0x690
? blkdev_get_by_dev+0x350/0x350
vfs_open+0x58/0x60
do_open+0x316/0x4a0
path_openat+0x1b8/0x260
? do_tmpfile+0x160/0x160
? __this_cpu_preempt_check+0x13/0x20
do_filp_open+0x12d/0x240
? may_open_dev+0x60/0x60
? __kasan_check_read+0x11/0x20
? do_raw_spin_unlock+0x98/0xf0
? preempt_count_sub+0x18/0xc0
? _raw_spin_unlock+0x2d/0x50
do_sys_openat2+0xe9/0x260
? build_open_flags+0x2a0/0x2a0
__x64_sys_openat+0xd3/0x130
? __ia32_sys_open+0x110/0x110
? __secure_computing+0x74/0x140
? syscall_trace_enter.constprop.0+0x71/0x230
do_syscall_64+0x32/0x80
entry_SYSCALL_64_after_hwframe+0x44/0xae
More information about the Linux-nvme
mailing list