syzbot


KCSAN: data-race in __blk_mq_sched_dispatch_requests / blk_mq_dispatch_rq_list

Status: auto-closed as invalid on 2021/07/16 10:39
Subsystems: block
[Documentation on labels]
First crash: 1049d, last: 1049d
Similar bugs (1)
Kernel Title Repro Cause bisect Fix bisect Count Last Reported Patched Status
upstream KCSAN: data-race in __blk_mq_sched_dispatch_requests / blk_mq_dispatch_rq_list (2) block 52 33d 138d 0/26 moderation: reported on 2023/12/09 00:05

Sample crash report:
==================================================================
BUG: KCSAN: data-race in __blk_mq_sched_dispatch_requests / blk_mq_dispatch_rq_list

write to 0xffff888100819c10 of 8 bytes by task 12324 on cpu 1:
 __list_splice include/linux/list.h:444 [inline]
 list_splice_tail_init include/linux/list.h:499 [inline]
 blk_mq_dispatch_rq_list+0xd41/0x10b0 block/blk-mq.c:1427
 __blk_mq_sched_dispatch_requests+0x208/0x2c0 block/blk-mq-sched.c:318
 blk_mq_sched_dispatch_requests+0x9f/0x110 block/blk-mq-sched.c:351
 __blk_mq_run_hw_queue+0xbc/0x140 block/blk-mq.c:1499
 __blk_mq_delay_run_hw_queue+0x163/0x2f0 block/blk-mq.c:1576
 blk_mq_run_hw_queue+0x22c/0x250 block/blk-mq.c:1629
 blk_mq_get_tag+0x475/0x610 block/blk-mq-tag.c:126
 __blk_mq_alloc_request+0x22a/0x290 block/blk-mq.c:386
 blk_mq_submit_bio+0x26d/0xe90 block/blk-mq.c:2206
 __submit_bio_noacct_mq block/blk-core.c:1014 [inline]
 submit_bio_noacct+0x6f2/0x7e0 block/blk-core.c:1047
 submit_bio+0x16d/0x2b0 block/blk-core.c:1090
 submit_bh_wbc+0x2f3/0x330 fs/buffer.c:3075
 __block_write_full_page+0x648/0xa10 fs/buffer.c:1830
 block_write_full_page+0x240/0x260 fs/buffer.c:3001
 blkdev_writepage+0x20/0x30 fs/block_dev.c:639
 __writepage+0x32/0xc0 mm/page-writeback.c:2311
 write_cache_pages+0x4d7/0x810 mm/page-writeback.c:2246
 generic_writepages+0x64/0xa0 mm/page-writeback.c:2337
 blkdev_writepages+0x19/0x20 fs/block_dev.c:1753
 do_writepages+0x7b/0x150 mm/page-writeback.c:2352
 __filemap_fdatawrite_range mm/filemap.c:413 [inline]
 filemap_write_and_wait_range+0x20a/0x390 mm/filemap.c:686
 filemap_write_and_wait include/linux/fs.h:2892 [inline]
 __sync_blockdev fs/block_dev.c:526 [inline]
 sync_blockdev fs/block_dev.c:535 [inline]
 __blkdev_put+0xb0/0x460 fs/block_dev.c:1567
 blkdev_put+0x23e/0x2c0 fs/block_dev.c:1636
 blkdev_close+0x47/0x50 fs/block_dev.c:1644
 __fput+0x25b/0x4e0 fs/file_table.c:280
 ____fput+0x11/0x20 fs/file_table.c:313
 task_work_run+0xae/0x130 kernel/task_work.c:164
 tracehook_notify_resume include/linux/tracehook.h:189 [inline]
 exit_to_user_mode_loop kernel/entry/common.c:174 [inline]
 exit_to_user_mode_prepare+0x156/0x190 kernel/entry/common.c:208
 __syscall_exit_to_user_mode_work kernel/entry/common.c:290 [inline]
 syscall_exit_to_user_mode+0x20/0x40 kernel/entry/common.c:301
 do_syscall_64+0x56/0x90 arch/x86/entry/common.c:57
 entry_SYSCALL_64_after_hwframe+0x44/0xae

read to 0xffff888100819c10 of 8 bytes by task 703 on cpu 0:
 list_empty_careful include/linux/list.h:319 [inline]
 __blk_mq_sched_dispatch_requests+0xb1/0x2c0 block/blk-mq-sched.c:296
 blk_mq_sched_dispatch_requests+0x9f/0x110 block/blk-mq-sched.c:351
 __blk_mq_run_hw_queue+0xbc/0x140 block/blk-mq.c:1499
 blk_mq_run_work_fn+0x3d/0x50 block/blk-mq.c:1831
 process_one_work+0x3e9/0x8f0 kernel/workqueue.c:2276
 worker_thread+0x636/0xae0 kernel/workqueue.c:2422
 kthread+0x1d0/0x1f0 kernel/kthread.c:313
 ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:294

value changed: 0xffff888100819c08 -> 0xffff888101c188c8

Reported by Kernel Concurrency Sanitizer on:
CPU: 0 PID: 703 Comm: kworker/0:1H Not tainted 5.13.0-rc5-syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
Workqueue: kblockd blk_mq_run_work_fn
==================================================================

Crashes (1):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2021/06/11 10:37 upstream 06af8679449d 1ba81399 .config console log report info ci2-upstream-kcsan-gce KCSAN: data-race in __blk_mq_sched_dispatch_requests / blk_mq_dispatch_rq_list
* Struck through repros no longer work on HEAD.