syzbot


KCSAN: data-race in blk_mq_start_request / bt_tags_for_each (2)

Status: auto-obsoleted due to no activity on 2024/04/16 04:54
Subsystems: block
[Documentation on labels]
Reported-by: syzbot+42453004889f6113dfb7@syzkaller.appspotmail.com
First crash: 40d, last: 40d
Similar bugs (1)
Kernel Title Repro Cause bisect Fix bisect Count Last Reported Patched Status
upstream KCSAN: data-race in blk_mq_start_request / bt_tags_for_each block 2 128d 135d 0/26 auto-obsoleted due to no activity on 2024/01/19 08:19

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

write to 0xffff888102416558 of 8 bytes by task 26516 on cpu 0:
 blk_mq_start_request+0x220/0x380 block/blk-mq.c:1267
 scsi_queue_rq+0x14a3/0x1a00 drivers/scsi/scsi_lib.c:1759
 blk_mq_dispatch_rq_list+0x2d9/0x10a0 block/blk-mq.c:2058
 __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+0x5ec/0xd20 block/blk-mq-sched.c:309
 blk_mq_sched_dispatch_requests+0x78/0xe0 block/blk-mq-sched.c:331
 blk_mq_run_hw_queue+0x298/0x4c0 block/blk-mq.c:2273
 blk_mq_get_tag+0x479/0x590 block/blk-mq-tag.c:170
 __blk_mq_alloc_requests+0x6c6/0xbf0 block/blk-mq.c:499
 blk_mq_get_new_requests block/blk-mq.c:2891 [inline]
 blk_mq_submit_bio+0x6b7/0xdb0 block/blk-mq.c:2989
 __submit_bio+0x11c/0x350 block/blk-core.c:619
 __submit_bio_noacct_mq block/blk-core.c:698 [inline]
 submit_bio_noacct_nocheck+0x501/0x6a0 block/blk-core.c:727
 submit_bio_noacct+0x67d/0x830 block/blk-core.c:837
 submit_bio+0x212/0x220 block/blk-core.c:879
 ext4_io_submit+0x8a/0xa0 fs/ext4/page-io.c:378
 ext4_do_writepages+0xb3a/0x2100 fs/ext4/inode.c:2699
 ext4_writepages+0x15e/0x2e0 fs/ext4/inode.c:2768
 do_writepages+0x1c2/0x340 mm/page-writeback.c:2553
 filemap_fdatawrite_wbc+0xdb/0xf0 mm/filemap.c:388
 __filemap_fdatawrite_range mm/filemap.c:421 [inline]
 __filemap_fdatawrite mm/filemap.c:427 [inline]
 filemap_flush+0x95/0xc0 mm/filemap.c:454
 ext4_alloc_da_blocks+0x50/0x130 fs/ext4/inode.c:3072
 ext4_release_file+0x5f/0x1c0 fs/ext4/file.c:169
 __fput+0x299/0x630 fs/file_table.c:423
 ____fput+0x15/0x20 fs/file_table.c:451
 task_work_run+0x135/0x1a0 kernel/task_work.c:180
 exit_task_work include/linux/task_work.h:38 [inline]
 do_exit+0x5fc/0x1740 kernel/exit.c:878
 do_group_exit+0x101/0x150 kernel/exit.c:1027
 get_signal+0xf4e/0x10a0 kernel/signal.c:2907
 arch_do_signal_or_restart+0x95/0x4b0 arch/x86/kernel/signal.c:310
 exit_to_user_mode_loop kernel/entry/common.c:105 [inline]
 exit_to_user_mode_prepare include/linux/entry-common.h:328 [inline]
 irqentry_exit_to_user_mode+0x8f/0x120 kernel/entry/common.c:225
 irqentry_exit+0x12/0x40 kernel/entry/common.c:328
 exc_general_protection+0x33b/0x4c0 arch/x86/kernel/traps.c:643
 asm_exc_general_protection+0x26/0x30 arch/x86/include/asm/idtentry.h:564

read to 0xffff888102416558 of 8 bytes by task 24 on cpu 1:
 blk_mq_find_and_get_req block/blk-mq-tag.c:259 [inline]
 bt_tags_iter block/blk-mq-tag.c:356 [inline]
 __sbitmap_for_each_set include/linux/sbitmap.h:281 [inline]
 sbitmap_for_each_set include/linux/sbitmap.h:302 [inline]
 bt_tags_for_each+0x2cc/0x500 block/blk-mq-tag.c:391
 __blk_mq_all_tag_iter block/blk-mq-tag.c:402 [inline]
 blk_mq_tagset_busy_iter+0x114/0x150 block/blk-mq-tag.c:446
 scsi_host_busy+0x4f/0x80 drivers/scsi/hosts.c:604
 scsi_host_queue_ready drivers/scsi/scsi_lib.c:1343 [inline]
 scsi_queue_rq+0x2f3/0x1a00 drivers/scsi/scsi_lib.c:1737
 blk_mq_dispatch_rq_list+0x2d9/0x10a0 block/blk-mq.c:2058
 __blk_mq_sched_dispatch_requests+0x1ce/0xd20 block/blk-mq-sched.c:301
 blk_mq_sched_dispatch_requests+0x78/0xe0 block/blk-mq-sched.c:331
 blk_mq_run_hw_queue+0x298/0x4c0 block/blk-mq.c:2273
 blk_mq_run_hw_queues+0x15b/0x1e0 block/blk-mq.c:2322
 blk_mq_requeue_work+0x408/0x430 block/blk-mq.c:1491
 process_one_work kernel/workqueue.c:3254 [inline]
 process_scheduled_works+0x460/0x980 kernel/workqueue.c:3335
 worker_thread+0x525/0x730 kernel/workqueue.c:3416
 kthread+0x1d7/0x210 kernel/kthread.c:388
 ret_from_fork+0x48/0x60 arch/x86/kernel/process.c:147
 ret_from_fork_asm+0x11/0x20 arch/x86/entry/entry_64.S:243

value changed: 0xffff888102c9e6c0 -> 0xffff888102c71d40

Reported by Kernel Concurrency Sanitizer on:
CPU: 1 PID: 24 Comm: kworker/1:0H Not tainted 6.8.0-syzkaller-00711-g045395d86acd #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 02/29/2024
Workqueue: kblockd blk_mq_requeue_work
==================================================================

Crashes (1):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2024/03/12 04:54 upstream 045395d86acd 6ee49f2e .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-kcsan-gce KCSAN: data-race in blk_mq_start_request / bt_tags_for_each
* Struck through repros no longer work on HEAD.