syzbot


KCSAN: data-race in rq_depth_calc_max_depth / wbt_inflight_cb

Status: closed as invalid on 2019/11/19 14:44
Subsystems: block
[Documentation on labels]
First crash: 1630d, last: 1630d
Similar bugs (1)
Kernel Title Repro Cause bisect Fix bisect Count Last Reported Patched Status
upstream KCSAN: data-race in rq_depth_calc_max_depth / wbt_inflight_cb (2) block 5 1521d 1594d 0/26 auto-closed as invalid on 2020/05/06 11:55

Sample crash report:
==================================================================
BUG: KCSAN: data-race in rq_depth_calc_max_depth / wbt_inflight_cb

write to 0xffff8881293e13e0 of 4 bytes by interrupt on cpu 0:
 rq_depth_calc_max_depth+0xa5/0x160 block/blk-rq-qos.c:157
 rq_depth_scale_up+0x71/0xa0 block/blk-rq-qos.c:174
 scale_up+0x40/0x250 block/blk-wbt.c:311
 wb_timer_fn+0x2cd/0xad0 block/blk-wbt.c:393
 blk_stat_timer_fn+0x3b0/0x3d0 block/blk-stat.c:98
 call_timer_fn+0x5f/0x2f0 kernel/time/timer.c:1404
 expire_timers kernel/time/timer.c:1449 [inline]
 __run_timers kernel/time/timer.c:1773 [inline]
 __run_timers kernel/time/timer.c:1740 [inline]
 run_timer_softirq+0xc0c/0xcd0 kernel/time/timer.c:1786
 __do_softirq+0x115/0x33f kernel/softirq.c:292
 invoke_softirq kernel/softirq.c:373 [inline]
 irq_exit+0xbb/0xe0 kernel/softirq.c:413
 exiting_irq arch/x86/include/asm/apic.h:536 [inline]
 smp_apic_timer_interrupt+0xe6/0x280 arch/x86/kernel/apic/apic.c:1137
 apic_timer_interrupt+0xf/0x20 arch/x86/entry/entry_64.S:830
 pv_queued_spin_unlock arch/x86/include/asm/paravirt.h:647 [inline]
 queued_spin_unlock arch/x86/include/asm/qspinlock.h:55 [inline]
 do_raw_spin_unlock include/linux/spinlock.h:210 [inline]
 __raw_spin_unlock include/linux/spinlock_api_smp.h:151 [inline]
 _raw_spin_unlock+0x2d/0x60 kernel/locking/spinlock.c:183
 spin_unlock include/linux/spinlock.h:378 [inline]
 wp_page_copy+0xd56/0x1120 mm/memory.c:2413
 do_wp_page+0x192/0x11f0 mm/memory.c:2628
 handle_pte_fault mm/memory.c:3865 [inline]
 __handle_mm_fault+0x1ab1/0x2c70 mm/memory.c:3973
 handle_mm_fault+0x21b/0x530 mm/memory.c:4010
 do_user_addr_fault arch/x86/mm/fault.c:1441 [inline]
 __do_page_fault+0x3fb/0x9e0 arch/x86/mm/fault.c:1506
 do_page_fault+0x54/0x233 arch/x86/mm/fault.c:1530
 page_fault+0x34/0x40 arch/x86/entry/entry_64.S:1202
 copy_user_enhanced_fast_string+0xe/0x30 arch/x86/lib/copy_user_64.S:204
 copy_page_to_iter_iovec lib/iov_iter.c:211 [inline]
 copy_page_to_iter+0x254/0x8b0 lib/iov_iter.c:900
 pipe_to_user+0x71/0xc0 fs/splice.c:1248
 splice_from_pipe_feed fs/splice.c:500 [inline]
 __splice_from_pipe+0x248/0x480 fs/splice.c:624
 vmsplice_to_user fs/splice.c:1272 [inline]
 do_vmsplice.part.0+0x1c5/0x210 fs/splice.c:1350
 do_vmsplice fs/splice.c:1344 [inline]
 __do_sys_vmsplice+0x15f/0x1c0 fs/splice.c:1371
 __se_sys_vmsplice fs/splice.c:1353 [inline]
 __x64_sys_vmsplice+0x5e/0x80 fs/splice.c:1353
 do_syscall_64+0xcc/0x370 arch/x86/entry/common.c:290
 entry_SYSCALL_64_after_hwframe+0x44/0xa9

read to 0xffff8881293e13e0 of 4 bytes by task 9305 on cpu 1:
 get_limit block/blk-wbt.c:481 [inline]
 wbt_inflight_cb+0xc0/0x230 block/blk-wbt.c:503
 rq_qos_wait+0x283/0x320 block/blk-rq-qos.c:266
 __wbt_wait block/blk-wbt.c:526 [inline]
 wbt_wait+0x161/0x250 block/blk-wbt.c:591
 __rq_qos_throttle+0x47/0x70 block/blk-rq-qos.c:72
 rq_qos_throttle block/blk-rq-qos.h:182 [inline]
 blk_mq_make_request+0x29c/0xf60 block/blk-mq.c:1971
 generic_make_request block/blk-core.c:1064 [inline]
 generic_make_request+0x196/0x740 block/blk-core.c:1006
 submit_bio+0x96/0x3c0 block/blk-core.c:1190
 ext4_io_submit+0xdf/0x110 fs/ext4/page-io.c:348
 ext4_writepages+0xea9/0x2300 fs/ext4/inode.c:2899
 do_writepages+0x6b/0x170 mm/page-writeback.c:2344
 __filemap_fdatawrite_range+0x1c5/0x230 mm/filemap.c:421
 file_write_and_wait_range+0xfd/0x160 mm/filemap.c:782
 __generic_file_fsync+0x59/0x190 fs/libfs.c:1000
 ext4_sync_file+0x48e/0xb00 fs/ext4/fsync.c:120
 vfs_fsync_range+0x82/0x150 fs/sync.c:197
 generic_write_sync include/linux/fs.h:2853 [inline]
 ext4_file_write_iter+0x45b/0xa00 fs/ext4/file.c:279
 call_write_iter include/linux/fs.h:1895 [inline]
 new_sync_write+0x388/0x4a0 fs/read_write.c:483
 __vfs_write+0xb1/0xc0 fs/read_write.c:496
 vfs_write fs/read_write.c:558 [inline]
 vfs_write+0x18a/0x390 fs/read_write.c:542
 ksys_write+0xd5/0x1b0 fs/read_write.c:611
 __do_sys_write fs/read_write.c:623 [inline]
 __se_sys_write fs/read_write.c:620 [inline]
 __x64_sys_write+0x4c/0x60 fs/read_write.c:620
 do_syscall_64+0xcc/0x370 arch/x86/entry/common.c:290
 entry_SYSCALL_64_after_hwframe+0x44/0xa9

Reported by Kernel Concurrency Sanitizer on:
CPU: 1 PID: 9305 Comm: syz-executor.5 Not tainted 5.4.0-rc6+ #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
==================================================================

Crashes (1):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2019/11/09 16:26 https://github.com/google/ktsan.git kcsan 94c006602e13 1e35461e .config console log report ci2-upstream-kcsan-gce
* Struck through repros no longer work on HEAD.