syzbot


KCSAN: data-race in __wb_update_bandwidth / percpu_counter_add_batch (10)

Status: moderation: reported on 2025/06/22 15:22
Subsystems: mm fs
[Documentation on labels]
Reported-by: syzbot+ade9a83b6ae7a3c3c3fe@syzkaller.appspotmail.com
First crash: 27d, last: 6d05h
Similar bugs (9)
Kernel Title Rank 🛈 Repro Cause bisect Fix bisect Count Last Reported Patched Status
upstream KCSAN: data-race in __wb_update_bandwidth / percpu_counter_add_batch (3) fs mm 6 2 1672d 1685d 0/29 auto-closed as invalid on 2021/01/24 22:24
upstream KCSAN: data-race in __wb_update_bandwidth / percpu_counter_add_batch (7) fs mm 6 295 383d 590d 0/29 auto-obsoleted due to no activity on 2024/08/05 19:12
upstream KCSAN: data-race in __wb_update_bandwidth / percpu_counter_add_batch (9) mm fs 6 5 92d 208d 0/29 auto-obsoleted due to no activity on 2025/06/13 09:22
upstream KCSAN: data-race in __wb_update_bandwidth / percpu_counter_add_batch (5) fs mm 6 3 1449d 1483d 0/29 auto-closed as invalid on 2021/09/04 14:56
upstream KCSAN: data-race in __wb_update_bandwidth / percpu_counter_add_batch (4) fs mm 6 6 1527d 1626d 0/29 auto-closed as invalid on 2021/06/18 08:34
upstream KCSAN: data-race in __wb_update_bandwidth / percpu_counter_add_batch (6) fs mm 6 17 1333d 1410d 0/29 auto-closed as invalid on 2021/12/29 06:33
upstream KCSAN: data-race in __wb_update_bandwidth / percpu_counter_add_batch (8) mm fs 6 4 304d 345d 0/29 auto-obsoleted due to no activity on 2024/10/23 14:01
upstream KCSAN: data-race in __wb_update_bandwidth / percpu_counter_add_batch (2) fs mm 6 3 1749d 1788d 0/29 auto-closed as invalid on 2020/11/08 10:33
upstream KCSAN: data-race in __wb_update_bandwidth / percpu_counter_add_batch mm fs 6 9 1891d 2050d 0/29 closed as invalid on 2020/06/18 14:24

Sample crash report:
==================================================================
BUG: KCSAN: data-race in __wb_update_bandwidth / percpu_counter_add_batch

read-write to 0xffff888101bba148 of 8 bytes by interrupt on cpu 1:
 percpu_counter_add_batch+0x110/0x130 lib/percpu_counter.c:107
 wb_stat_mod include/linux/backing-dev.h:66 [inline]
 __wb_writeout_add+0x42/0x1b0 mm/page-writeback.c:585
 __folio_end_writeback+0x200/0x470 mm/page-writeback.c:3030
 folio_end_writeback+0x71/0x3d0 mm/filemap.c:1660
 end_buffer_async_write+0x156/0x1f0 fs/buffer.c:419
 end_bio_bh_io_sync+0x79/0xa0 fs/buffer.c:2783
 bio_endio+0x374/0x410 block/bio.c:1645
 blk_update_request+0x336/0x730 block/blk-mq.c:987
 blk_mq_end_request+0x26/0x50 block/blk-mq.c:1149
 lo_complete_rq+0x98/0x140 drivers/block/loop.c:304
 blk_complete_reqs block/blk-mq.c:1224 [inline]
 blk_done_softirq+0x77/0xb0 block/blk-mq.c:1229
 handle_softirqs+0xb7/0x290 kernel/softirq.c:579
 run_ksoftirqd+0x1c/0x30 kernel/softirq.c:968
 smpboot_thread_fn+0x328/0x530 kernel/smpboot.c:164
 kthread+0x489/0x510 kernel/kthread.c:464
 ret_from_fork+0xda/0x150 arch/x86/kernel/process.c:148
 ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245

read to 0xffff888101bba148 of 8 bytes by task 3308 on cpu 0:
 percpu_counter_read include/linux/percpu_counter.h:110 [inline]
 __wb_update_bandwidth+0x98/0x5d0 mm/page-writeback.c:1511
 wb_update_bandwidth mm/page-writeback.c:1538 [inline]
 do_writepages+0x2dd/0x310 mm/page-writeback.c:2659
 filemap_fdatawrite_wbc mm/filemap.c:386 [inline]
 __filemap_fdatawrite_range mm/filemap.c:419 [inline]
 __filemap_fdatawrite mm/filemap.c:425 [inline]
 filemap_flush+0xe4/0x120 mm/filemap.c:470
 sync_blockdev_nowait+0x29/0x40 block/bdev.c:248
 sync_filesystem+0xe2/0x190 fs/sync.c:60
 generic_shutdown_super+0x44/0x210 fs/super.c:622
 kill_block_super+0x2a/0x70 fs/super.c:1755
 ext4_kill_sb+0x42/0x80 fs/ext4/super.c:7391
 deactivate_locked_super+0x75/0x1c0 fs/super.c:474
 deactivate_super+0x97/0xa0 fs/super.c:507
 cleanup_mnt+0x269/0x2e0 fs/namespace.c:1417
 __cleanup_mnt+0x19/0x20 fs/namespace.c:1424
 task_work_run+0x131/0x1a0 kernel/task_work.c:227
 resume_user_mode_work include/linux/resume_user_mode.h:50 [inline]
 exit_to_user_mode_loop+0xe4/0x100 kernel/entry/common.c:114
 exit_to_user_mode_prepare include/linux/entry-common.h:330 [inline]
 syscall_exit_to_user_mode_work include/linux/entry-common.h:414 [inline]
 syscall_exit_to_user_mode include/linux/entry-common.h:449 [inline]
 do_syscall_64+0x1d6/0x200 arch/x86/entry/syscall_64.c:100
 entry_SYSCALL_64_after_hwframe+0x77/0x7f

value changed: 0x0000000000000170 -> 0x0000000000000180

Reported by Kernel Concurrency Sanitizer on:
CPU: 0 UID: 0 PID: 3308 Comm: syz-executor Not tainted 6.16.0-rc5-syzkaller-00276-g5d5d62298b8b #0 PREEMPT(voluntary) 
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 05/07/2025
==================================================================

Crashes (2):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2025/07/13 22:41 upstream 5d5d62298b8b 3cda49cf .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-kcsan-gce KCSAN: data-race in __wb_update_bandwidth / percpu_counter_add_batch
2025/06/22 15:22 upstream 739a6c93cc75 d6cdfb8a .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-kcsan-gce KCSAN: data-race in __wb_update_bandwidth / percpu_counter_add_batch
* Struck through repros no longer work on HEAD.