KCSAN: data-race in __folio_end_writeback / writeout_period (3)

Status: moderation: reported on 2026/09/15 12:57
Subsystems: fs mm
Labels: race:benign
[Documentation on labels]
Reported-by: syzbot+c4e217748763d41236ee@syzkaller.appspotmail.com
First crash: 1h26m, last: 1h26m
✨ AI Jobs (1)
ID Workflow Result Correct Bug Created Started Finished Revision
74b20de1 assessment-kcsan Benign: ✅ KCSAN: data-race in __folio_end_writeback / writeout_period (3) 2026/09/15 12:56 2026/09/15 12:57 2026/09/15 13:30 81a27d1a
Similar bugs (2)
Kernel Title Rank 🛈 Repro Cause bisect Fix bisect Count Last Reported Patched Status
upstream KCSAN: data-race in __folio_end_writeback / writeout_period (2) mm fs 6 1 1635d 1635d 0/29 auto-closed as invalid on 2022/04/29 05:10
upstream KCSAN: data-race in __folio_end_writeback / writeout_period fs mm 6 10 1695d 1777d 0/29 auto-closed as invalid on 2022/02/28 10:56

Sample crash report:
loop6: rw=1, sector=2280, nr_sectors = 32 limit=256
kworker/u8:3: attempt to access beyond end of device
loop6: rw=1, sector=2344, nr_sectors = 32 limit=256
==================================================================
BUG: KCSAN: data-race in __folio_end_writeback / writeout_period

write to 0xffffffff8960b2c8 of 8 bytes by interrupt on cpu 1:
 writeout_period+0xa1/0xe0 mm/page-writeback.c:597
 call_timer_fn+0x36/0x250 kernel/time/timer.c:1748
 expire_timers kernel/time/timer.c:1799 [inline]
 __run_timers kernel/time/timer.c:2374 [inline]
 __run_timer_base+0x40c/0x5f0 kernel/time/timer.c:2386
 run_timer_base kernel/time/timer.c:2395 [inline]
 run_timer_softirq+0x45/0x70 kernel/time/timer.c:2406
 handle_softirqs+0xcc/0x2a0 kernel/softirq.c:645
 __do_softirq kernel/softirq.c:679 [inline]
 invoke_softirq kernel/softirq.c:519 [inline]
 __irq_exit_rcu+0x44/0xe0 kernel/softirq.c:758
 instr_sysvec_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1062 [inline]
 sysvec_apic_timer_interrupt+0x74/0x80 arch/x86/kernel/apic/apic.c:1062
 asm_sysvec_apic_timer_interrupt+0x1a/0x20 arch/x86/include/asm/idtentry.h:674
 __preempt_count_dec_and_test arch/x86/include/asm/preempt.h:123 [inline]
 __raw_spin_unlock_irqrestore include/linux/spinlock_api_smp.h:211 [inline]
 _raw_spin_unlock_irqrestore+0x1a/0x30 kernel/locking/spinlock.c:221
 spin_unlock_irqrestore include/linux/spinlock.h:425 [inline]
 __uart_port_unlock_irqrestore include/linux/serial_core.h:622 [inline]
 univ8250_console_device_unlock+0x36/0x40 drivers/tty/serial/8250/8250_core.c:420
 nbcon_emit_one kernel/printk/nbcon.c:1165 [inline]
 nbcon_kthread_func+0x595/0x690 kernel/printk/nbcon.c:1271
 kthread+0x223/0x270 kernel/kthread.c:436
 ret_from_fork+0x146/0x330 arch/x86/kernel/process.c:158
 ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245

read to 0xffffffff8960b2c8 of 8 bytes by task 51 on cpu 0:
 wb_domain_writeout_add mm/page-writeback.c:556 [inline]
 __wb_writeout_add mm/page-writeback.c:577 [inline]
 __folio_end_writeback+0x1aa/0x530 mm/page-writeback.c:2970
 folio_end_writeback_no_dropbehind+0x6d/0x200 mm/filemap.c:1672
 folio_end_writeback+0x1c/0x70 mm/filemap.c:1698
 mpage_write_end_io+0x245/0x4c0 fs/mpage.c:64
 bio_endio+0x390/0x570 block/bio.c:1929
 bio_endio_status include/linux/bio.h:422 [inline]
 submit_bio_noacct+0x790/0x980 block/blk-core.c:931
 submit_bio+0x2a4/0x2c0 block/blk-core.c:966
 mpage_bio_submit_write fs/mpage.c:82 [inline]
 mpage_write_folio fs/mpage.c:593 [inline]
 __mpage_writepages+0x946/0x1370 fs/mpage.c:686
 mpage_writepages include/linux/mpage.h:27 [inline]
 fat_writepages+0x26/0x30 fs/fat/inode.c:200
 do_writepages+0x1b9/0x300 mm/page-writeback.c:2560
 __writeback_single_inode+0x7b/0x790 fs/fs-writeback.c:1788
 writeback_sb_inodes+0x4d9/0xaa0 fs/fs-writeback.c:2099
 wb_writeback+0x20c/0x510 fs/fs-writeback.c:2284
 wb_do_writeback fs/fs-writeback.c:2452 [inline]
 wb_workfn+0x1a4/0xa50 fs/fs-writeback.c:2497
 process_one_work kernel/workqueue.c:3396 [inline]
 process_scheduled_works+0x56a/0xa50 kernel/workqueue.c:3479
 worker_thread+0x569/0x750 kernel/workqueue.c:3560
 kthread+0x223/0x270 kernel/kthread.c:436
 ret_from_fork+0x146/0x330 arch/x86/kernel/process.c:158
 ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245

value changed: 0x00000000ffffc2d4 -> 0x00000000ffffc400

Reported by Kernel Concurrency Sanitizer on:
CPU: 0 UID: 0 PID: 51 Comm: kworker/u8:3 Not tainted syzkaller #0 PREEMPT(lazy) 
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 09/08/2026
Workqueue: writeback wb_workfn (flush-7:6)
==================================================================

Crashes (1):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2026/09/15 12:56 upstream 587858367581 81a27d1a .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-kcsan-gce KCSAN: data-race in __folio_end_writeback / writeout_period
* Struck through repros no longer work on HEAD.