[syzbot] INFO: task hung in nbd_add_socket (2)

21 views
Skip to first unread message

syzbot

unread,
Mar 21, 2022, 12:06:25 PM3/21/22
to ax...@kernel.dk, linux...@vger.kernel.org, linux-...@vger.kernel.org, syzkall...@googlegroups.com
Hello,

syzbot found the following issue on:

HEAD commit: 56e337f2cf13 Revert "gpio: Revert regression in sysfs-gpio..
git tree: upstream
console output: https://syzkaller.appspot.com/x/log.txt?x=14b09f89700000
kernel config: https://syzkaller.appspot.com/x/.config?x=d35f9bc6884af6c9
dashboard link: https://syzkaller.appspot.com/bug?extid=cbb4b1ebc70d0c5a8c29
compiler: gcc (Debian 10.2.1-6) 10.2.1 20210110, GNU ld (GNU Binutils for Debian) 2.35.2
syz repro: https://syzkaller.appspot.com/x/repro.syz?x=12b3f519700000

IMPORTANT: if you fix the issue, please add the following tag to the commit:
Reported-by: syzbot+cbb4b1...@syzkaller.appspotmail.com

INFO: task syz-executor.3:3748 blocked for more than 143 seconds.
Not tainted 5.17.0-rc8-syzkaller-00003-g56e337f2cf13 #0
"echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
task:syz-executor.3 state:D stack:28456 pid: 3748 ppid: 3641 flags:0x00000004
Call Trace:
<TASK>
context_switch kernel/sched/core.c:4995 [inline]
__schedule+0xa94/0x4910 kernel/sched/core.c:6304
schedule+0xd2/0x260 kernel/sched/core.c:6377
blk_mq_freeze_queue_wait+0x112/0x160 block/blk-mq.c:178
nbd_add_socket+0x166/0x810 drivers/block/nbd.c:1109
__nbd_ioctl drivers/block/nbd.c:1454 [inline]
nbd_ioctl+0x38c/0xb10 drivers/block/nbd.c:1511
blkdev_ioctl+0x37a/0x800 block/ioctl.c:588
vfs_ioctl fs/ioctl.c:51 [inline]
__do_sys_ioctl fs/ioctl.c:874 [inline]
__se_sys_ioctl fs/ioctl.c:860 [inline]
__x64_sys_ioctl+0x193/0x200 fs/ioctl.c:860
do_syscall_x64 arch/x86/entry/common.c:50 [inline]
do_syscall_64+0x35/0xb0 arch/x86/entry/common.c:80
entry_SYSCALL_64_after_hwframe+0x44/0xae
RIP: 0033:0x7f6ce3d6b049
RSP: 002b:00007f6ce34e0168 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
RAX: ffffffffffffffda RBX: 00007f6ce3e7df60 RCX: 00007f6ce3d6b049
RDX: 0000000000000004 RSI: 000000000000ab00 RDI: 0000000000000003
RBP: 00007f6ce3dc508d R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
R13: 00007fff39c20b5f R14: 00007f6ce34e0300 R15: 0000000000022000
</TASK>
INFO: task syz-executor.0:3762 blocked for more than 143 seconds.
Not tainted 5.17.0-rc8-syzkaller-00003-g56e337f2cf13 #0
"echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
task:syz-executor.0 state:D stack:28456 pid: 3762 ppid: 3643 flags:0x00000004
Call Trace:
<TASK>
context_switch kernel/sched/core.c:4995 [inline]
__schedule+0xa94/0x4910 kernel/sched/core.c:6304
schedule+0xd2/0x260 kernel/sched/core.c:6377
blk_mq_freeze_queue_wait+0x112/0x160 block/blk-mq.c:178
nbd_add_socket+0x166/0x810 drivers/block/nbd.c:1109
__nbd_ioctl drivers/block/nbd.c:1454 [inline]
nbd_ioctl+0x38c/0xb10 drivers/block/nbd.c:1511
blkdev_ioctl+0x37a/0x800 block/ioctl.c:588
vfs_ioctl fs/ioctl.c:51 [inline]
__do_sys_ioctl fs/ioctl.c:874 [inline]
__se_sys_ioctl fs/ioctl.c:860 [inline]
__x64_sys_ioctl+0x193/0x200 fs/ioctl.c:860
do_syscall_x64 arch/x86/entry/common.c:50 [inline]
do_syscall_64+0x35/0xb0 arch/x86/entry/common.c:80
entry_SYSCALL_64_after_hwframe+0x44/0xae
RIP: 0033:0x7f76c6cb0049
RSP: 002b:00007f76c6425168 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
RAX: ffffffffffffffda RBX: 00007f76c6dc2f60 RCX: 00007f76c6cb0049
RDX: 0000000000000004 RSI: 000000000000ab00 RDI: 0000000000000003
RBP: 00007f76c6d0a08d R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
R13: 00007ffc1647f5cf R14: 00007f76c6425300 R15: 0000000000022000
</TASK>
INFO: task syz-executor.1:3786 blocked for more than 143 seconds.
Not tainted 5.17.0-rc8-syzkaller-00003-g56e337f2cf13 #0
"echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
task:syz-executor.1 state:D stack:28456 pid: 3786 ppid: 3644 flags:0x00000004
Call Trace:
<TASK>
context_switch kernel/sched/core.c:4995 [inline]
__schedule+0xa94/0x4910 kernel/sched/core.c:6304
schedule+0xd2/0x260 kernel/sched/core.c:6377
blk_mq_freeze_queue_wait+0x112/0x160 block/blk-mq.c:178
nbd_add_socket+0x166/0x810 drivers/block/nbd.c:1109
__nbd_ioctl drivers/block/nbd.c:1454 [inline]
nbd_ioctl+0x38c/0xb10 drivers/block/nbd.c:1511
blkdev_ioctl+0x37a/0x800 block/ioctl.c:588
vfs_ioctl fs/ioctl.c:51 [inline]
__do_sys_ioctl fs/ioctl.c:874 [inline]
__se_sys_ioctl fs/ioctl.c:860 [inline]
__x64_sys_ioctl+0x193/0x200 fs/ioctl.c:860
do_syscall_x64 arch/x86/entry/common.c:50 [inline]
do_syscall_64+0x35/0xb0 arch/x86/entry/common.c:80
entry_SYSCALL_64_after_hwframe+0x44/0xae
RIP: 0033:0x7f771e10a049
RSP: 002b:00007f771d87f168 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
RAX: ffffffffffffffda RBX: 00007f771e21cf60 RCX: 00007f771e10a049
RDX: 0000000000000004 RSI: 000000000000ab00 RDI: 0000000000000003
RBP: 00007f771e16408d R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
R13: 00007ffd29c3466f R14: 00007f771d87f300 R15: 0000000000022000
</TASK>
INFO: task syz-executor.2:3796 blocked for more than 144 seconds.
Not tainted 5.17.0-rc8-syzkaller-00003-g56e337f2cf13 #0
"echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
task:syz-executor.2 state:D stack:28456 pid: 3796 ppid: 3646 flags:0x00000004
Call Trace:
<TASK>
context_switch kernel/sched/core.c:4995 [inline]
__schedule+0xa94/0x4910 kernel/sched/core.c:6304
schedule+0xd2/0x260 kernel/sched/core.c:6377
blk_mq_freeze_queue_wait+0x112/0x160 block/blk-mq.c:178
nbd_add_socket+0x166/0x810 drivers/block/nbd.c:1109
__nbd_ioctl drivers/block/nbd.c:1454 [inline]
nbd_ioctl+0x38c/0xb10 drivers/block/nbd.c:1511
blkdev_ioctl+0x37a/0x800 block/ioctl.c:588
vfs_ioctl fs/ioctl.c:51 [inline]
__do_sys_ioctl fs/ioctl.c:874 [inline]
__se_sys_ioctl fs/ioctl.c:860 [inline]
__x64_sys_ioctl+0x193/0x200 fs/ioctl.c:860
do_syscall_x64 arch/x86/entry/common.c:50 [inline]
do_syscall_64+0x35/0xb0 arch/x86/entry/common.c:80
entry_SYSCALL_64_after_hwframe+0x44/0xae
RIP: 0033:0x7f5cb8d4e049
RSP: 002b:00007f5cb84c3168 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
RAX: ffffffffffffffda RBX: 00007f5cb8e60f60 RCX: 00007f5cb8d4e049
RDX: 0000000000000004 RSI: 000000000000ab00 RDI: 0000000000000003
RBP: 00007f5cb8da808d R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
R13: 00007ffc915ce70f R14: 00007f5cb84c3300 R15: 0000000000022000
</TASK>

Showing all locks held in the system:
1 lock held by khungtaskd/27:
#0: ffffffff8bb84ca0 (rcu_read_lock){....}-{1:2}, at: debug_show_all_locks+0x53/0x260 kernel/locking/lockdep.c:6460
2 locks held by getty/3274:
#0: ffff88814ac35098 (&tty->ldisc_sem){++++}-{0:0}, at: tty_ldisc_ref_wait+0x22/0x80 drivers/tty/tty_ldisc.c:244
#1: ffffc90002b632e8 (&ldata->atomic_read_lock){+.+.}-{3:3}, at: n_tty_read+0xcf0/0x1230 drivers/tty/n_tty.c:2075
1 lock held by syz-executor.3/3748:
#0: ffff88801ab4b198 (&nbd->config_lock){+.+.}-{3:3}, at: nbd_ioctl+0x151/0xb10 drivers/block/nbd.c:1504
1 lock held by syz-executor.0/3762:
#0: ffff88801aa43998 (&nbd->config_lock){+.+.}-{3:3}, at: nbd_ioctl+0x151/0xb10 drivers/block/nbd.c:1504
1 lock held by syz-executor.1/3786:
#0: ffff88801ab90198 (&nbd->config_lock){+.+.}-{3:3}, at: nbd_ioctl+0x151/0xb10 drivers/block/nbd.c:1504
1 lock held by syz-executor.2/3796:
#0: ffff88801ab97998 (&nbd->config_lock){+.+.}-{3:3}, at: nbd_ioctl+0x151/0xb10 drivers/block/nbd.c:1504

=============================================

NMI backtrace for cpu 0
CPU: 0 PID: 27 Comm: khungtaskd Not tainted 5.17.0-rc8-syzkaller-00003-g56e337f2cf13 #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
Call Trace:
<TASK>
__dump_stack lib/dump_stack.c:88 [inline]
dump_stack_lvl+0xcd/0x134 lib/dump_stack.c:106
nmi_cpu_backtrace.cold+0x47/0x144 lib/nmi_backtrace.c:111
nmi_trigger_cpumask_backtrace+0x1e6/0x230 lib/nmi_backtrace.c:62
trigger_all_cpu_backtrace include/linux/nmi.h:146 [inline]
check_hung_uninterruptible_tasks kernel/hung_task.c:212 [inline]
watchdog+0xc1d/0xf50 kernel/hung_task.c:369
kthread+0x2e9/0x3a0 kernel/kthread.c:377
ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:295
</TASK>
Sending NMI from CPU 0 to CPUs 1:
NMI backtrace for cpu 1
CPU: 1 PID: 3678 Comm: kworker/u4:2 Not tainted 5.17.0-rc8-syzkaller-00003-g56e337f2cf13 #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
Workqueue: phy10 ieee80211_iface_work
RIP: 0010:stackdepot_memcmp lib/stackdepot.c:217 [inline]
RIP: 0010:find_stack lib/stackdepot.c:233 [inline]
RIP: 0010:__stack_depot_save+0x145/0x500 lib/stackdepot.c:373
Code: 29 48 85 ed 75 12 e9 92 00 00 00 48 8b 6d 00 48 85 ed 0f 84 85 00 00 00 39 5d 08 75 ee 44 3b 7d 0c 75 e8 31 c0 48 8b 74 c5 18 <49> 39 34 c6 75 db 48 83 c0 01 48 39 c2 75 ec 48 8b 7c 24 28 48 85
RSP: 0018:ffffc90002adf418 EFLAGS: 00000202
RAX: 0000000000000007 RBX: 00000000fcc93932 RCX: ffff88823b89c990
RDX: 000000000000000b RSI: ffffffff814cca4c RDI: 00000000231130b5
RBP: ffff88806d495930 R08: 00000000faa8e072 R09: 0000000000000001
R10: fffff5200055be77 R11: 0000000000088078 R12: 0000000000000001
R13: 0000000000000b20 R14: ffffc90002adf488 R15: 000000000000000b
FS: 0000000000000000(0000) GS:ffff8880b9d00000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007ffd0058e108 CR3: 000000007f38a000 CR4: 0000000000350ee0
Call Trace:
<TASK>
kasan_save_stack+0x2e/0x40 mm/kasan/common.c:39
kasan_set_track mm/kasan/common.c:45 [inline]
set_alloc_info mm/kasan/common.c:436 [inline]
____kasan_kmalloc mm/kasan/common.c:515 [inline]
____kasan_kmalloc mm/kasan/common.c:474 [inline]
__kasan_kmalloc+0xa9/0xd0 mm/kasan/common.c:524
kmalloc include/linux/slab.h:586 [inline]
kzalloc include/linux/slab.h:714 [inline]
cfg80211_inform_single_bss_frame_data+0x34b/0xf40 net/wireless/scan.c:2436
cfg80211_inform_bss_frame_data+0xa7/0xb50 net/wireless/scan.c:2497
ieee80211_bss_info_update+0x35b/0xb00 net/mac80211/scan.c:190
ieee80211_rx_bss_info net/mac80211/ibss.c:1119 [inline]
ieee80211_rx_mgmt_probe_beacon net/mac80211/ibss.c:1610 [inline]
ieee80211_ibss_rx_queued_mgmt+0x19cf/0x3150 net/mac80211/ibss.c:1639
ieee80211_iface_process_skb net/mac80211/iface.c:1527 [inline]
ieee80211_iface_work+0xa69/0xd00 net/mac80211/iface.c:1581
process_one_work+0x9ac/0x1650 kernel/workqueue.c:2307
worker_thread+0x657/0x1110 kernel/workqueue.c:2454
kthread+0x2e9/0x3a0 kernel/kthread.c:377
ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:295
</TASK>
----------------
Code disassembly (best guess):
0: 29 48 85 sub %ecx,-0x7b(%rax)
3: ed in (%dx),%eax
4: 75 12 jne 0x18
6: e9 92 00 00 00 jmpq 0x9d
b: 48 8b 6d 00 mov 0x0(%rbp),%rbp
f: 48 85 ed test %rbp,%rbp
12: 0f 84 85 00 00 00 je 0x9d
18: 39 5d 08 cmp %ebx,0x8(%rbp)
1b: 75 ee jne 0xb
1d: 44 3b 7d 0c cmp 0xc(%rbp),%r15d
21: 75 e8 jne 0xb
23: 31 c0 xor %eax,%eax
25: 48 8b 74 c5 18 mov 0x18(%rbp,%rax,8),%rsi
* 2a: 49 39 34 c6 cmp %rsi,(%r14,%rax,8) <-- trapping instruction
2e: 75 db jne 0xb
30: 48 83 c0 01 add $0x1,%rax
34: 48 39 c2 cmp %rax,%rdx
37: 75 ec jne 0x25
39: 48 8b 7c 24 28 mov 0x28(%rsp),%rdi
3e: 48 rex.W
3f: 85 .byte 0x85


---
This report is generated by a bot. It may contain errors.
See https://goo.gl/tpsmEJ for more information about syzbot.
syzbot engineers can be reached at syzk...@googlegroups.com.

syzbot will keep track of this issue. See:
https://goo.gl/tpsmEJ#status for how to communicate with syzbot.
syzbot can test patches for this issue, for details see:
https://goo.gl/tpsmEJ#testing-patches

syzbot

unread,
Apr 7, 2022, 1:24:27 AM4/7/22
to ax...@kernel.dk, linux...@vger.kernel.org, linux-...@vger.kernel.org, syzkall...@googlegroups.com
syzbot has found a reproducer for the following issue on:

HEAD commit: 3e732ebf7316 Merge tag 'for_linus' of git://git.kernel.org..
git tree: upstream
console output: https://syzkaller.appspot.com/x/log.txt?x=171d476b700000
kernel config: https://syzkaller.appspot.com/x/.config?x=fa19d4c2766111a7
dashboard link: https://syzkaller.appspot.com/bug?extid=cbb4b1ebc70d0c5a8c29
compiler: gcc (Debian 10.2.1-6) 10.2.1 20210110, GNU ld (GNU Binutils for Debian) 2.35.2
syz repro: https://syzkaller.appspot.com/x/repro.syz?x=17b3020f700000
C reproducer: https://syzkaller.appspot.com/x/repro.c?x=125d90a7700000

IMPORTANT: if you fix the issue, please add the following tag to the commit:
Reported-by: syzbot+cbb4b1...@syzkaller.appspotmail.com

INFO: task syz-executor145:3630 blocked for more than 143 seconds.
Not tainted 5.18.0-rc1-syzkaller-00016-g3e732ebf7316 #0
"echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
task:syz-executor145 state:D stack:28224 pid: 3630 ppid: 3624 flags:0x00000004
Call Trace:
<TASK>
context_switch kernel/sched/core.c:5073 [inline]
__schedule+0xa9a/0x4940 kernel/sched/core.c:6382
schedule+0xd2/0x1f0 kernel/sched/core.c:6454
blk_mq_freeze_queue_wait+0x112/0x160 block/blk-mq.c:179
nbd_add_socket+0x166/0x810 drivers/block/nbd.c:1109
__nbd_ioctl drivers/block/nbd.c:1454 [inline]
nbd_ioctl+0x38c/0xb10 drivers/block/nbd.c:1511
blkdev_ioctl+0x36e/0x800 block/ioctl.c:588
vfs_ioctl fs/ioctl.c:51 [inline]
__do_sys_ioctl fs/ioctl.c:870 [inline]
__se_sys_ioctl fs/ioctl.c:856 [inline]
__x64_sys_ioctl+0x193/0x200 fs/ioctl.c:856
do_syscall_x64 arch/x86/entry/common.c:50 [inline]
do_syscall_64+0x35/0xb0 arch/x86/entry/common.c:80
entry_SYSCALL_64_after_hwframe+0x44/0xae
RIP: 0033:0x7f5f0d0f33e9
RSP: 002b:00007ffd5f102da8 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
RAX: ffffffffffffffda RBX: 00000000000764b6 RCX: 00007f5f0d0f33e9
RDX: 0000000000000005 RSI: 000000000000ab00 RDI: 0000000000000004
RBP: 0000000000000000 R08: 00007ffd5f102f48 R09: 00007ffd5f102f48
R10: 00007ffd5f102f48 R11: 0000000000000246 R12: 00007ffd5f102dbc
R13: 431bde82d7b634db R14: 0000000000000000 R15: 0000000000000000
</TASK>

Showing all locks held in the system:
1 lock held by khungtaskd/28:
#0: ffffffff8bd7f360 (rcu_read_lock){....}-{1:2}, at: debug_show_all_locks+0x53/0x260 kernel/locking/lockdep.c:6467
2 locks held by kworker/u4:2/50:
#0: ffff8880b9c3a058 (&rq->__lock){-.-.}-{2:2}, at: raw_spin_rq_lock_nested+0x2b/0x120 kernel/sched/core.c:554
#1: ffff8880b9c278c8 (&per_cpu_ptr(group->pcpu, cpu)->seq){-.-.}-{0:0}, at: psi_task_switch+0x3e7/0x4e0 kernel/sched/psi.c:889
2 locks held by getty/3275:
#0: ffff888025c8d098 (&tty->ldisc_sem){++++}-{0:0}, at: tty_ldisc_ref_wait+0x22/0x80 drivers/tty/tty_ldisc.c:244
#1: ffffc90001bf92e8 (&ldata->atomic_read_lock){+.+.}-{3:3}, at: n_tty_read+0xcea/0x1230 drivers/tty/n_tty.c:2075
1 lock held by udevd/3626:
#0: ffff88801c57c118 (&disk->open_mutex){+.+.}-{3:3}, at: blkdev_put+0x99/0x950 block/bdev.c:905
1 lock held by syz-executor145/3630:
#0: ffff88801c4f5198 (&nbd->config_lock){+.+.}-{3:3}, at: nbd_ioctl+0x151/0xb10 drivers/block/nbd.c:1504

=============================================

NMI backtrace for cpu 1
CPU: 1 PID: 28 Comm: khungtaskd Not tainted 5.18.0-rc1-syzkaller-00016-g3e732ebf7316 #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
Call Trace:
<TASK>
__dump_stack lib/dump_stack.c:88 [inline]
dump_stack_lvl+0xcd/0x134 lib/dump_stack.c:106
nmi_cpu_backtrace.cold+0x47/0x144 lib/nmi_backtrace.c:111
nmi_trigger_cpumask_backtrace+0x1e6/0x230 lib/nmi_backtrace.c:62
trigger_all_cpu_backtrace include/linux/nmi.h:146 [inline]
check_hung_uninterruptible_tasks kernel/hung_task.c:212 [inline]
watchdog+0xc1d/0xf50 kernel/hung_task.c:369
kthread+0x2e9/0x3a0 kernel/kthread.c:376
ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:298
</TASK>
Sending NMI from CPU 1 to CPUs 0:
NMI backtrace for cpu 0
CPU: 0 PID: 50 Comm: kworker/u4:2 Not tainted 5.18.0-rc1-syzkaller-00016-g3e732ebf7316 #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
Workqueue: events_unbound toggle_allocation_gate
RIP: 0010:lookup_chain_cache kernel/locking/lockdep.c:3696 [inline]
RIP: 0010:lookup_chain_cache_add kernel/locking/lockdep.c:3716 [inline]
RIP: 0010:validate_chain kernel/locking/lockdep.c:3771 [inline]
RIP: 0010:__lock_acquire+0x168a/0x56c0 kernel/locking/lockdep.c:5029
Code: ed 60 58 fa 8f 48 89 5c 24 10 0f 84 a6 03 00 00 48 8d 14 ed 60 58 fa 8f 48 b8 00 00 00 00 00 fc ff df 48 c1 ea 03 80 3c 02 00 <0f> 85 e4 2c 00 00 48 8b 1c ed 60 58 fa 8f 48 85 db 74 58 48 83 eb
RSP: 0018:ffffc90000dbf7b8 EFLAGS: 00000046
RAX: dffffc0000000000 RBX: ffffffff8ffec728 RCX: ffffffff815c883e
RDX: 1ffffffff1ffd8e5 RSI: 0000000000000008 RDI: ffffffff90035900
RBP: 0000000000008dd9 R08: 0000000000000000 R09: ffffffff90035907
R10: fffffbfff2006b20 R11: 0000000000000001 R12: ffff888011c6abc0
R13: ffff888011c6a0c0 R14: 0000000000000000 R15: 623d1377ab3a24ec
FS: 0000000000000000(0000) GS:ffff8880b9c00000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 0000557e13d9c600 CR3: 000000000ba8e000 CR4: 00000000003506f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
<TASK>
lock_acquire kernel/locking/lockdep.c:5641 [inline]
lock_acquire+0x1ab/0x510 kernel/locking/lockdep.c:5606
__mutex_lock_common kernel/locking/mutex.c:600 [inline]
__mutex_lock+0x12f/0x12f0 kernel/locking/mutex.c:733
arch_jump_label_transform_queue+0x58/0x100 arch/x86/kernel/jump_label.c:136
__jump_label_update+0x12e/0x400 kernel/jump_label.c:451
jump_label_update+0x32f/0x410 kernel/jump_label.c:830
static_key_disable_cpuslocked+0x152/0x1b0 kernel/jump_label.c:207
static_key_disable+0x16/0x20 kernel/jump_label.c:215
toggle_allocation_gate mm/kfence/core.c:799 [inline]
toggle_allocation_gate+0x183/0x390 mm/kfence/core.c:777
process_one_work+0x996/0x1610 kernel/workqueue.c:2289
worker_thread+0x665/0x1080 kernel/workqueue.c:2436
kthread+0x2e9/0x3a0 kernel/kthread.c:376
ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:298
</TASK>
INFO: NMI handler (nmi_cpu_backtrace_handler) took too long to run: 1.077 msecs
----------------
Code disassembly (best guess), 5 bytes skipped:
0: 48 89 5c 24 10 mov %rbx,0x10(%rsp)
5: 0f 84 a6 03 00 00 je 0x3b1
b: 48 8d 14 ed 60 58 fa lea -0x7005a7a0(,%rbp,8),%rdx
12: 8f
13: 48 b8 00 00 00 00 00 movabs $0xdffffc0000000000,%rax
1a: fc ff df
1d: 48 c1 ea 03 shr $0x3,%rdx
21: 80 3c 02 00 cmpb $0x0,(%rdx,%rax,1)
* 25: 0f 85 e4 2c 00 00 jne 0x2d0f <-- trapping instruction
2b: 48 8b 1c ed 60 58 fa mov -0x7005a7a0(,%rbp,8),%rbx
32: 8f
33: 48 85 db test %rbx,%rbx
36: 74 58 je 0x90
38: 48 rex.W
39: 83 .byte 0x83
3a: eb .byte 0xeb

Hillf Danton

unread,
Apr 7, 2022, 4:54:19 AM4/7/22
to syzbot, linux-...@vger.kernel.org, syzkall...@googlegroups.com
On Wed, 06 Apr 2022 22:24:26 -0700
See if it is due to missing wakeup.

#syz test https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/ 3e732ebf7316

diff -pur y/block/blk-core.c x/block/blk-core.c
--- y/block/blk-core.c 2022-04-07 16:21:49.955001600 +0800
+++ x/block/blk-core.c 2022-04-07 16:31:19.966670200 +0800
@@ -420,6 +420,7 @@ static void blk_queue_usage_counter_rele
struct request_queue *q =
container_of(ref, struct request_queue, q_usage_counter);

+ atomic_inc(&q->mq_freeze_wq_sequence);
wake_up_all(&q->mq_freeze_wq);
}

diff -pur y/block/blk-mq.c x/block/blk-mq.c
--- y/block/blk-mq.c 2022-04-07 14:30:39.689915100 +0800
+++ x/block/blk-mq.c 2022-04-07 16:31:04.105155500 +0800
@@ -176,7 +176,10 @@ EXPORT_SYMBOL_GPL(blk_freeze_queue_start

void blk_mq_freeze_queue_wait(struct request_queue *q)
{
- wait_event(q->mq_freeze_wq, percpu_ref_is_zero(&q->q_usage_counter));
+ atomic_t seq = atomic_read(&q->mq_freeze_wq_sequence);
+
+ wait_event(q->mq_freeze_wq, percpu_ref_is_zero(&q->q_usage_counter) ||
+ seq != atomic_read(&q->mq_freeze_wq_sequence));
}
EXPORT_SYMBOL_GPL(blk_mq_freeze_queue_wait);

@@ -225,6 +228,7 @@ void __blk_mq_unfreeze_queue(struct requ
WARN_ON_ONCE(q->mq_freeze_depth < 0);
if (!q->mq_freeze_depth) {
percpu_ref_resurrect(&q->q_usage_counter);
+ atomic_inc(&q->mq_freeze_wq_sequence);
wake_up_all(&q->mq_freeze_wq);
}
mutex_unlock(&q->mq_freeze_lock);
diff -pur y/include/linux/blkdev.h x/include/linux/blkdev.h
--- y/include/linux/blkdev.h 2022-04-07 16:07:19.658671600 +0800
+++ x/include/linux/blkdev.h 2022-04-07 16:13:19.903660400 +0800
@@ -496,6 +496,7 @@ struct request_queue {
#endif
struct rcu_head rcu_head;
wait_queue_head_t mq_freeze_wq;
+ atomic_t mq_freeze_wq_sequence;
/*
* Protect concurrent access to q_usage_counter by
* percpu_ref_kill() and percpu_ref_reinit().
--

syzbot

unread,
Apr 7, 2022, 5:00:11 AM4/7/22
to hda...@sina.com, linux-...@vger.kernel.org, syzkall...@googlegroups.com
Hello,

syzbot tried to test the proposed patch but the build/boot failed:

block/blk-mq.c:179:11: error: initializing 'atomic_t' with an expression of incompatible type 'int'
block/blk-mq.c:182:13: error: invalid operands to binary expression ('atomic_t' and 'int')


Tested on:

commit: 3e732ebf Merge tag 'for_linus' of git://git.kernel.org..
git tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/
dashboard link: https://syzkaller.appspot.com/bug?extid=cbb4b1ebc70d0c5a8c29
compiler: Debian clang version 13.0.1-++20220126092033+75e33f71c2da-1~exp1~20220126212112.63, GNU ld (GNU Binutils for Debian) 2.35.2
patch: https://syzkaller.appspot.com/x/patch.diff?x=1562cb0f700000

Hillf Danton

unread,
Apr 7, 2022, 6:23:26 AM4/7/22
to syzbot, linux-...@vger.kernel.org, syzkall...@googlegroups.com
On Wed, 06 Apr 2022 22:24:26 -0700
See if it is due to missing wakeup.

#syz test https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/ 3e732ebf7316

diff -pur y/block/blk-core.c x/block/blk-core.c
--- y/block/blk-core.c 2022-04-07 16:21:49.955001600 +0800
+++ x/block/blk-core.c 2022-04-07 16:31:19.966670200 +0800
@@ -420,6 +420,7 @@ static void blk_queue_usage_counter_rele
struct request_queue *q =
container_of(ref, struct request_queue, q_usage_counter);

+ atomic_inc(&q->mq_freeze_wq_sequence);
wake_up_all(&q->mq_freeze_wq);
}

diff -pur y/block/blk-mq.c x/block/blk-mq.c
--- y/block/blk-mq.c 2022-04-07 14:30:39.689915100 +0800
+++ x/block/blk-mq.c 2022-04-07 16:31:04.105155500 +0800
@@ -176,7 +176,10 @@ EXPORT_SYMBOL_GPL(blk_freeze_queue_start

void blk_mq_freeze_queue_wait(struct request_queue *q)
{
- wait_event(q->mq_freeze_wq, percpu_ref_is_zero(&q->q_usage_counter));
+ int seq = atomic_read(&q->mq_freeze_wq_sequence);

syzbot

unread,
Apr 7, 2022, 6:35:08 AM4/7/22
to hda...@sina.com, linux-...@vger.kernel.org, syzkall...@googlegroups.com
Hello,

syzbot has tested the proposed patch and the reproducer did not trigger any issue:

Reported-and-tested-by: syzbot+cbb4b1...@syzkaller.appspotmail.com

Tested on:

commit: 3e732ebf Merge tag 'for_linus' of git://git.kernel.org..
git tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/
kernel config: https://syzkaller.appspot.com/x/.config?x=a7f265af816d9f4d
dashboard link: https://syzkaller.appspot.com/bug?extid=cbb4b1ebc70d0c5a8c29
compiler: Debian clang version 13.0.1-++20220126092033+75e33f71c2da-1~exp1~20220126212112.63, GNU ld (GNU Binutils for Debian) 2.35.2
patch: https://syzkaller.appspot.com/x/patch.diff?x=155e3dc3700000

Note: testing is done by a robot and is best-effort only.
Reply all
Reply to author
Forward
0 new messages