syzbot


KCSAN: data-race in rq_depth_scale_up / wbt_inflight_cb (2)

Status: auto-closed as invalid on 2021/03/17 18:32
Subsystems: block
[Documentation on labels]
Reported-by: syzbot+7017e2e7267e5dd9ddd0@syzkaller.appspotmail.com
First crash: 1247d, last: 1164d
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 1103d 1103d 0/26 auto-closed as invalid on 2021/05/17 10:34
upstream KCSAN: data-race in rq_depth_scale_up / wbt_inflight_cb block 3 1356d 1399d 0/26 auto-closed as invalid on 2020/09/06 13:38

Sample crash report:
BTRFS info (device loop0): read error corrected: ino 0 off 22036480 (dev /dev/loop0 sector 43040)
BTRFS info (device loop0): read error corrected: ino 0 off 22040576 (dev /dev/loop0 sector 43048)
==================================================================
BUG: KCSAN: data-race in rq_depth_scale_up / wbt_inflight_cb

write to 0xffff88802c3c98e0 of 4 bytes by interrupt on cpu 1:
 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+0x158/0xa00 block/blk-wbt.c:382
 blk_stat_timer_fn+0x3f4/0x410 block/blk-stat.c:99
 call_timer_fn+0x2e/0x240 kernel/time/timer.c:1417
 expire_timers+0x116/0x260 kernel/time/timer.c:1462
 __run_timers+0x358/0x3f0 kernel/time/timer.c:1731
 run_timer_softirq+0x19/0x30 kernel/time/timer.c:1744
 __do_softirq+0x13c/0x2c3 kernel/softirq.c:343
 asm_call_irq_on_stack+0xf/0x20
 __run_on_irqstack arch/x86/include/asm/irq_stack.h:26 [inline]
 run_on_irqstack_cond arch/x86/include/asm/irq_stack.h:77 [inline]
 do_softirq_own_stack+0x32/0x40 arch/x86/kernel/irq_64.c:77
 invoke_softirq kernel/softirq.c:226 [inline]
 __irq_exit_rcu+0xb4/0xc0 kernel/softirq.c:420
 sysvec_apic_timer_interrupt+0x74/0x90 arch/x86/kernel/apic/apic.c:1100
 asm_sysvec_apic_timer_interrupt+0x12/0x20 arch/x86/include/asm/idtentry.h:629
 native_restore_fl arch/x86/include/asm/irqflags.h:41 [inline]
 arch_local_irq_restore arch/x86/include/asm/irqflags.h:84 [inline]
 console_trylock_spinning kernel/printk/printk.c:1805 [inline]
 vprintk_emit+0x210/0x360 kernel/printk/printk.c:2091
 vprintk_default+0x22/0x30 kernel/printk/printk.c:2109
 vprintk_func+0x11b/0x120 kernel/printk/printk_safe.c:393
 printk+0x62/0x82 kernel/printk/printk.c:2140
 set_capacity_and_notify+0x153/0x1b0 block/genhd.c:76
 loop_set_size drivers/block/loop.c:254 [inline]
 loop_configure+0xa91/0xc40 drivers/block/loop.c:1161
 lo_ioctl+0x54b/0x11e0 drivers/block/loop.c:1687
 blkdev_ioctl+0x1d0/0x3c0 block/ioctl.c:576
 block_ioctl+0x6d/0x80 fs/block_dev.c:1658
 vfs_ioctl fs/ioctl.c:48 [inline]
 __do_sys_ioctl fs/ioctl.c:753 [inline]
 __se_sys_ioctl+0xcb/0x140 fs/ioctl.c:739
 __x64_sys_ioctl+0x3f/0x50 fs/ioctl.c:739
 do_syscall_64+0x39/0x80 arch/x86/entry/common.c:46
 entry_SYSCALL_64_after_hwframe+0x44/0xa9

read to 0xffff88802c3c98e0 of 4 bytes by task 16887 on cpu 0:
 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_submit_bio+0x240/0x1040 block/blk-mq.c:2158
 __submit_bio_noacct_mq block/blk-core.c:1028 [inline]
 submit_bio_noacct+0x78d/0x960 block/blk-core.c:1061
 submit_bio+0x200/0x360 block/blk-core.c:1131
 submit_bio_wait+0x86/0xc0 block/bio.c:1154
 repair_io_failure+0x372/0x450 fs/btrfs/extent_io.c:2309
 btrfs_repair_eb_io_failure+0xef/0x150 fs/btrfs/extent_io.c:2339
 btree_read_extent_buffer_pages+0x215/0x230 fs/btrfs/disk-io.c:438
 read_tree_block+0x55/0x90 fs/btrfs/disk-io.c:982
 open_ctree+0x14d3/0x21eb fs/btrfs/disk-io.c:3220
 btrfs_fill_super fs/btrfs/super.c:1357 [inline]
 btrfs_mount_root+0x742/0x830 fs/btrfs/super.c:1724
 legacy_get_tree+0x70/0xc0 fs/fs_context.c:592
 vfs_get_tree+0x4a/0x1a0 fs/super.c:1496
 fc_mount fs/namespace.c:978 [inline]
 vfs_kern_mount+0xc6/0x130 fs/namespace.c:1008
 btrfs_mount+0x278/0x740 fs/btrfs/super.c:1784
 legacy_get_tree+0x70/0xc0 fs/fs_context.c:592
 vfs_get_tree+0x4a/0x1a0 fs/super.c:1496
 do_new_mount fs/namespace.c:2881 [inline]
 path_mount+0x11b6/0x1ca0 fs/namespace.c:3211
 do_mount fs/namespace.c:3224 [inline]
 __do_sys_mount fs/namespace.c:3432 [inline]
 __se_sys_mount+0x23d/0x2e0 fs/namespace.c:3409
 __x64_sys_mount+0x63/0x70 fs/namespace.c:3409
 do_syscall_64+0x39/0x80 arch/x86/entry/common.c:46
 entry_SYSCALL_64_after_hwframe+0x44/0xa9

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

Crashes (4):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2021/02/10 18:31 upstream e0756cfc7d7c 9c8b8541 .config console log report info ci2-upstream-kcsan-gce KCSAN: data-race in rq_depth_scale_up / wbt_inflight_cb
2021/01/22 05:00 upstream 83d09ad4b950 d4f4eca5 .config console log report info ci2-upstream-kcsan-gce KCSAN: data-race in rq_depth_scale_up / wbt_inflight_cb
2020/12/19 05:15 upstream 3644e2d2dda7 04201c06 .config console log report info ci2-upstream-kcsan-gce
2020/11/18 23:10 upstream c2e7554e1b85 0767f13f .config console log report info ci2-upstream-kcsan-gce
* Struck through repros no longer work on HEAD.