syzbot


KCSAN: data-race in blk_mq_start_request / bt_for_each (3)

Status: moderation: reported on 2025/02/13 10:24
Subsystems: block
[Documentation on labels]
Reported-by: syzbot+e474b8fbf7c3d2a3de01@syzkaller.appspotmail.com
First crash: 7d18h, last: 7d18h
Similar bugs (2)
Kernel Title Repro Cause bisect Fix bisect Count Last Reported Patched Status
upstream KCSAN: data-race in blk_mq_start_request / bt_for_each (2) block 3 120d 174d 0/28 auto-obsoleted due to no activity on 2024/12/18 22:35
upstream KCSAN: data-race in blk_mq_start_request / bt_for_each block 1 390d 390d 0/28 auto-obsoleted due to no activity on 2024/03/02 18:09

Sample crash report:
==================================================================
BUG: KCSAN: data-race in blk_mq_start_request / bt_for_each

write to 0xffff8881025c3ea8 of 8 bytes by task 704 on cpu 0:
 blk_mq_start_request+0x1e4/0x3b0 block/blk-mq.c:1353
 scsi_queue_rq+0x14aa/0x1a10 drivers/scsi/scsi_lib.c:1864
 blk_mq_dispatch_rq_list+0x630/0xfa0 block/blk-mq.c:2120
 __blk_mq_do_dispatch_sched block/blk-mq-sched.c:170 [inline]
 blk_mq_do_dispatch_sched block/blk-mq-sched.c:184 [inline]
 __blk_mq_sched_dispatch_requests+0x604/0xd50 block/blk-mq-sched.c:309
 blk_mq_sched_dispatch_requests+0x88/0x120 block/blk-mq-sched.c:331
 blk_mq_run_hw_queue+0x18a/0x230 block/blk-mq.c:2354
 blk_mq_flush_plug_list+0xbd5/0xef0 block/blk-mq.c:2917
 __blk_flush_plug+0x216/0x290 block/blk-core.c:1213
 blk_finish_plug block/blk-core.c:1240 [inline]
 __submit_bio+0x301/0x4f0 block/blk-core.c:642
 __submit_bio_noacct_mq block/blk-core.c:715 [inline]
 submit_bio_noacct_nocheck+0x295/0x6e0 block/blk-core.c:744
 submit_bio_noacct+0x6e1/0x930 block/blk-core.c:867
 submit_bio+0x218/0x230 block/blk-core.c:909
 swap_read_folio_bdev_async mm/page_io.c:612 [inline]
 swap_read_folio+0x9b9/0x1160 mm/page_io.c:654
 swap_cluster_readahead+0x3d3/0x3f0 mm/swap_state.c:705
 swapin_readahead+0xe4/0x6f0 mm/swap_state.c:881
 do_swap_page+0x31b/0x2550 mm/memory.c:4411
 handle_pte_fault mm/memory.c:5892 [inline]
 __handle_mm_fault mm/memory.c:6032 [inline]
 handle_mm_fault+0x8e4/0x2ac0 mm/memory.c:6201
 do_user_addr_fault arch/x86/mm/fault.c:1388 [inline]
 handle_page_fault arch/x86/mm/fault.c:1480 [inline]
 exc_page_fault+0x296/0x650 arch/x86/mm/fault.c:1538
 asm_exc_page_fault+0x26/0x30 arch/x86/include/asm/idtentry.h:623
 __get_user_8+0x18/0x30 arch/x86/lib/getuser.S:98
 fetch_robust_entry kernel/futex/core.c:763 [inline]
 exit_robust_list+0x31/0x280 kernel/futex/core.c:791
 futex_cleanup kernel/futex/core.c:1023 [inline]
 futex_exit_release+0xe3/0x130 kernel/futex/core.c:1124
 exit_mm_release+0x1a/0x30 kernel/fork.c:1664
 exit_mm+0x38/0x190 kernel/exit.c:543
 do_exit+0x559/0x17f0 kernel/exit.c:925
 do_group_exit+0x102/0x150 kernel/exit.c:1087
 get_signal+0xeb9/0x1000 kernel/signal.c:3036
 arch_do_signal_or_restart+0x95/0x4b0 arch/x86/kernel/signal.c:337
 exit_to_user_mode_loop kernel/entry/common.c:111 [inline]
 exit_to_user_mode_prepare include/linux/entry-common.h:329 [inline]
 __syscall_exit_to_user_mode_work kernel/entry/common.c:207 [inline]
 syscall_exit_to_user_mode+0x62/0x120 kernel/entry/common.c:218
 do_syscall_64+0xd6/0x1c0 arch/x86/entry/common.c:89
 entry_SYSCALL_64_after_hwframe+0x77/0x7f

read to 0xffff8881025c3ea8 of 8 bytes by task 325 on cpu 1:
 blk_mq_find_and_get_req block/blk-mq-tag.c:260 [inline]
 bt_iter block/blk-mq-tag.c:288 [inline]
 __sbitmap_for_each_set include/linux/sbitmap.h:286 [inline]
 sbitmap_for_each_set include/linux/sbitmap.h:307 [inline]
 bt_for_each+0x279/0x480 block/blk-mq-tag.c:325
 blk_mq_queue_tag_busy_iter+0x1a4/0x330 block/blk-mq-tag.c:534
 blk_mq_timeout_work+0xc4/0x350 block/blk-mq.c:1728
 process_one_work kernel/workqueue.c:3236 [inline]
 process_scheduled_works+0x483/0x9a0 kernel/workqueue.c:3317
 worker_thread+0x51d/0x6f0 kernel/workqueue.c:3398
 kthread+0x4ae/0x520 kernel/kthread.c:464
 ret_from_fork+0x4b/0x60 arch/x86/kernel/process.c:148
 ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:244

value changed: 0xffff888102e48540 -> 0xffff888102e42080

Reported by Kernel Concurrency Sanitizer on:
CPU: 1 UID: 0 PID: 325 Comm: kworker/1:1H Not tainted 6.14.0-rc2-syzkaller-00041-g4dc1d1bec898 #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 12/27/2024
Workqueue: kblockd blk_mq_timeout_work
==================================================================

Crashes (1):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2025/02/13 10:23 upstream 4dc1d1bec898 b27c2402 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-kcsan-gce KCSAN: data-race in blk_mq_start_request / bt_for_each
* Struck through repros no longer work on HEAD.