syzbot


KCSAN: data-race in rq_depth_scale_up / wbt_inflight_cb

Status: auto-closed as invalid on 2020/09/06 13:38
Subsystems: block
[Documentation on labels]
First crash: 1415d, last: 1371d
Similar bugs (2)
Kernel Title Repro Cause bisect Fix bisect Count Last Reported Patched Status
upstream KCSAN: data-race in rq_depth_scale_up / wbt_inflight_cb (3) block 1 1118d 1118d 0/26 auto-closed as invalid on 2021/05/17 10:34
upstream KCSAN: data-race in rq_depth_scale_up / wbt_inflight_cb (2) block 4 1179d 1244d 0/26 auto-closed as invalid on 2021/03/17 18:32

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

write to 0xffff888129a9ace0 of 4 bytes by interrupt on cpu 0:
 rq_depth_calc_max_depth block/blk-rq-qos.c:157 [inline]
 rq_depth_scale_up+0x169/0x190 block/blk-rq-qos.c:174
 scale_up block/blk-wbt.c:311 [inline]
 wb_timer_fn+0x15b/0xa30 block/blk-wbt.c:382
 blk_stat_timer_fn+0x3f4/0x410 block/blk-stat.c:99
 call_timer_fn+0x30/0x2a0 kernel/time/timer.c:1416
 expire_timers+0x116/0x290 kernel/time/timer.c:1461
 __run_timers+0x443/0x500 kernel/time/timer.c:1792
 run_timer_softirq+0x2e/0x60 kernel/time/timer.c:1805
 __do_softirq+0x198/0x360 kernel/softirq.c:292
 asm_call_on_stack+0xf/0x20 arch/x86/entry/entry_64.S:711
 __run_on_irqstack arch/x86/include/asm/irq_stack.h:22 [inline]
 run_on_irqstack_cond arch/x86/include/asm/irq_stack.h:48 [inline]
 do_softirq_own_stack+0x5d/0x80 arch/x86/kernel/irq_64.c:77
 invoke_softirq kernel/softirq.c:387 [inline]
 __irq_exit_rcu+0x115/0x120 kernel/softirq.c:417
 sysvec_apic_timer_interrupt+0xba/0xd0 arch/x86/kernel/apic/apic.c:1091
 asm_sysvec_apic_timer_interrupt+0x12/0x20 arch/x86/include/asm/idtentry.h:585
 arch_local_irq_restore arch/x86/include/asm/paravirt.h:770 [inline]
 kcsan_setup_watchpoint+0x47c/0x4d0 kernel/kcsan/core.c:542
 __tlb_remove_page_size+0x24/0x180 mm/mmu_gather.c:76
 __tlb_remove_page include/asm-generic/tlb.h:439 [inline]
 zap_pte_range+0x7ae/0x1610 mm/memory.c:1092
 zap_pmd_range mm/memory.c:1193 [inline]
 zap_pud_range mm/memory.c:1222 [inline]
 zap_p4d_range mm/memory.c:1243 [inline]
 unmap_page_range+0x751/0x870 mm/memory.c:1264
 unmap_single_vma+0x157/0x210 mm/memory.c:1309
 unmap_vmas+0xc0/0x150 mm/memory.c:1341
 exit_mmap+0x1c7/0x3b0 mm/mmap.c:3162
 __mmput+0xa2/0x220 kernel/fork.c:1093
 mmput+0x38/0x40 kernel/fork.c:1114
 exit_mm+0x2c8/0x330 kernel/exit.c:482
 do_exit+0x415/0x16e0 kernel/exit.c:792
 do_group_exit+0xa8/0x180 kernel/exit.c:903
 __do_sys_exit_group+0xb/0x10 kernel/exit.c:914
 __se_sys_exit_group+0x5/0x10 kernel/exit.c:912
 __x64_sys_exit_group+0x16/0x20 kernel/exit.c:912
 do_syscall_64+0x51/0xb0 arch/x86/entry/common.c:384
 entry_SYSCALL_64_after_hwframe+0x44/0xa9

read to 0xffff888129a9ace0 of 4 bytes by task 15738 on cpu 1:
 get_limit block/blk-wbt.c:473 [inline]
 wbt_inflight_cb+0xc6/0x220 block/blk-wbt.c:495
 rq_qos_wait+0xac/0x220 block/blk-rq-qos.c:266
 __wbt_wait block/blk-wbt.c:518 [inline]
 wbt_wait+0x1bb/0x2b0 block/blk-wbt.c:583
 __rq_qos_throttle+0x39/0x70 block/blk-rq-qos.c:72
 rq_qos_throttle block/blk-rq-qos.h:182 [inline]
 blk_mq_make_request+0x234/0x1070 block/blk-mq.c:2050
 do_make_request block/blk-core.c:1084 [inline]
 generic_make_request+0x240/0x5d0 block/blk-core.c:1156
 submit_bio+0x200/0x370 block/blk-core.c:1275
 submit_bh_wbc+0x397/0x3d0 fs/buffer.c:3073
 submit_bh fs/buffer.c:3079 [inline]
 __sync_dirty_buffer+0xfa/0x1a0 fs/buffer.c:3165
 sync_dirty_buffer+0x16/0x20 fs/buffer.c:3178
 __fat_write_inode+0x492/0x4d0 fs/fat/inode.c:899
 fat_write_inode+0xb9/0xd0 fs/fat/inode.c:915
 write_inode+0x8e/0x250 fs/fs-writeback.c:1312
 __writeback_single_inode+0x31c/0x610 fs/fs-writeback.c:1511
 writeback_single_inode+0x121/0x530 fs/fs-writeback.c:1565
 sync_inode fs/fs-writeback.c:2602 [inline]
 sync_inode_metadata+0x52/0x70 fs/fs-writeback.c:2622
 __generic_file_fsync+0xf5/0x140 fs/libfs.c:1083
 fat_file_fsync+0x48/0x100 fs/fat/file.c:190
 vfs_fsync_range+0x107/0x120 fs/sync.c:200
 generic_write_sync include/linux/fs.h:2882 [inline]
 generic_file_write_iter+0x3af/0x3e0 mm/filemap.c:3483
 call_write_iter include/linux/fs.h:1908 [inline]
 do_iter_readv_writev+0x321/0x3c0 fs/read_write.c:713
 do_iter_write+0x10e/0x470 fs/read_write.c:1018
 vfs_iter_write+0x4c/0x70 fs/read_write.c:1059
 iter_file_splice_write+0x41a/0x770 fs/splice.c:750
 do_splice_from fs/splice.c:846 [inline]
 direct_splice_actor+0x95/0x160 fs/splice.c:1016
 splice_direct_to_actor+0x365/0x660 fs/splice.c:971
 do_splice_direct+0xf2/0x170 fs/splice.c:1059
 do_sendfile+0x562/0xb10 fs/read_write.c:1540
 __do_sys_sendfile64 fs/read_write.c:1601 [inline]
 __se_sys_sendfile64 fs/read_write.c:1587 [inline]
 __x64_sys_sendfile64+0xf2/0x130 fs/read_write.c:1587
 do_syscall_64+0x51/0xb0 arch/x86/entry/common.c:384
 entry_SYSCALL_64_after_hwframe+0x44/0xa9

Reported by Kernel Concurrency Sanitizer on:
CPU: 1 PID: 15738 Comm: syz-executor.1 Not tainted 5.8.0-rc7-syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
==================================================================

Crashes (3):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2020/08/02 13:28 upstream ac3a0c847296 96dd3623 .config console log report ci2-upstream-kcsan-gce
2020/07/18 16:27 upstream 6a70f89cc58f 9c812472 .config console log report ci2-upstream-kcsan-gce
2020/06/19 18:35 upstream 5e857ce6eae7 123cf502 .config console log report ci2-upstream-kcsan-gce
* Struck through repros no longer work on HEAD.