syzbot


KCSAN: data-race in mem_cgroup_track_foreign_dirty_slowpath / mem_cgroup_track_foreign_dirty_slowpath (8)

Status: moderation: reported on 2025/09/17 04:56
Subsystems: cgroups mm
[Documentation on labels]
Reported-by: syzbot+0492fe05fc68a3e1de42@syzkaller.appspotmail.com
First crash: 8h14m, last: 8h14m
Similar bugs (7)
Kernel Title Rank 🛈 Repro Cause bisect Fix bisect Count Last Reported Patched Status
upstream KCSAN: data-race in mem_cgroup_track_foreign_dirty_slowpath / mem_cgroup_track_foreign_dirty_slowpath (5) mm fs 6 1 446d 446d 0/29 auto-obsoleted due to no activity on 2024/08/02 02:51
upstream KCSAN: data-race in mem_cgroup_track_foreign_dirty_slowpath / mem_cgroup_track_foreign_dirty_slowpath (3) mm fs 6 1 1165d 1165d 0/29 auto-closed as invalid on 2022/08/13 15:03
upstream KCSAN: data-race in mem_cgroup_track_foreign_dirty_slowpath / mem_cgroup_track_foreign_dirty_slowpath (4) mm fs 6 128 506d 649d 0/29 auto-obsoleted due to no activity on 2024/06/03 11:30
upstream KCSAN: data-race in mem_cgroup_track_foreign_dirty_slowpath / mem_cgroup_track_foreign_dirty_slowpath (2) fs mm 6 1 1243d 1243d 0/29 auto-closed as invalid on 2022/05/27 17:05
upstream KCSAN: data-race in mem_cgroup_track_foreign_dirty_slowpath / mem_cgroup_track_foreign_dirty_slowpath mm cgroups 6 1 2075d 2075d 0/29 auto-closed as invalid on 2020/03/22 09:49
upstream KCSAN: data-race in mem_cgroup_track_foreign_dirty_slowpath / mem_cgroup_track_foreign_dirty_slowpath (6) fs mm 6 6 227d 364d 0/29 auto-obsoleted due to no activity on 2025/03/29 19:42
upstream KCSAN: data-race in mem_cgroup_track_foreign_dirty_slowpath / mem_cgroup_track_foreign_dirty_slowpath (7) mm 6 4 95d 169d 0/29 auto-obsoleted due to no activity on 2025/08/08 23:02

Sample crash report:
EXT4-fs (loop3): mounted filesystem 00000000-0000-0000-0000-000000000900 r/w without journal. Quota mode: none.
==================================================================
BUG: KCSAN: data-race in mem_cgroup_track_foreign_dirty_slowpath / mem_cgroup_track_foreign_dirty_slowpath

write to 0xffff888119790558 of 8 bytes by task 15982 on cpu 0:
 mem_cgroup_track_foreign_dirty_slowpath+0x321/0x440 mm/memcontrol.c:3481
 mem_cgroup_track_foreign_dirty include/linux/memcontrol.h:1567 [inline]
 folio_account_dirtied mm/page-writeback.c:2700 [inline]
 __folio_mark_dirty+0x3f8/0x4d0 mm/page-writeback.c:2741
 mark_buffer_dirty+0x11e/0x210 fs/buffer.c:1206
 block_commit_write fs/buffer.c:2218 [inline]
 block_page_mkwrite+0x287/0x3d0 fs/buffer.c:2643
 ext4_page_mkwrite+0x859/0xb90 fs/ext4/inode.c:6725
 do_page_mkwrite mm/memory.c:3361 [inline]
 do_shared_fault mm/memory.c:5649 [inline]
 do_fault mm/memory.c:5711 [inline]
 do_pte_missing mm/memory.c:4234 [inline]
 handle_pte_fault mm/memory.c:6052 [inline]
 __handle_mm_fault mm/memory.c:6195 [inline]
 handle_mm_fault+0x15cb/0x2c20 mm/memory.c:6364
 do_user_addr_fault+0x636/0x1090 arch/x86/mm/fault.c:1336
 handle_page_fault arch/x86/mm/fault.c:1476 [inline]
 exc_page_fault+0x62/0xa0 arch/x86/mm/fault.c:1532
 asm_exc_page_fault+0x26/0x30 arch/x86/include/asm/idtentry.h:623

read to 0xffff888119790558 of 8 bytes by task 15983 on cpu 1:
 mem_cgroup_track_foreign_dirty_slowpath+0xd5/0x440 mm/memcontrol.c:3461
 mem_cgroup_track_foreign_dirty include/linux/memcontrol.h:1567 [inline]
 folio_account_dirtied mm/page-writeback.c:2700 [inline]
 __folio_mark_dirty+0x3f8/0x4d0 mm/page-writeback.c:2741
 mark_buffer_dirty+0x11e/0x210 fs/buffer.c:1206
 folio_zero_new_buffers+0x28c/0x2e0 fs/buffer.c:2032
 block_write_end+0x200/0x210 fs/buffer.c:2289
 ext4_da_do_write_end fs/ext4/inode.c:3217 [inline]
 ext4_da_write_end+0x1d3/0x800 fs/ext4/inode.c:3291
 generic_perform_write+0x30f/0x490 mm/filemap.c:4196
 ext4_buffered_write_iter+0x1ee/0x3c0 fs/ext4/file.c:299
 ext4_file_write_iter+0x383/0xf00 fs/ext4/file.c:-1
 new_sync_write fs/read_write.c:593 [inline]
 vfs_write+0x52a/0x960 fs/read_write.c:686
 ksys_write+0xda/0x1a0 fs/read_write.c:738
 __do_sys_write fs/read_write.c:749 [inline]
 __se_sys_write fs/read_write.c:746 [inline]
 __x64_sys_write+0x40/0x50 fs/read_write.c:746
 x64_sys_call+0x27fe/0x2ff0 arch/x86/include/generated/asm/syscalls_64.h:2
 do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
 do_syscall_64+0xd2/0x200 arch/x86/entry/syscall_64.c:94
 entry_SYSCALL_64_after_hwframe+0x77/0x7f

value changed: 0x0000000100000bb2 -> 0x0000000100000e17

Reported by Kernel Concurrency Sanitizer on:
CPU: 1 UID: 0 PID: 15983 Comm: syz.3.4718 Tainted: G        W           syzkaller #0 PREEMPT(voluntary) 
Tainted: [W]=WARN
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 08/18/2025
==================================================================
EXT4-fs error (device loop3): ext4_mb_generate_buddy:1289: group 0, block bitmap and bg descriptor inconsistent: 25 vs 150994969 free clusters
EXT4-fs (loop3): Delayed block allocation failed for inode 18 at logical offset 0 with max blocks 2048 with error 28
EXT4-fs (loop3): This should not happen!! Data will be lost

EXT4-fs (loop3): Total free blocks count 0
EXT4-fs (loop3): Free/Dirty block details
EXT4-fs (loop3): free_blocks=2415919104
EXT4-fs (loop3): dirty_blocks=8208
EXT4-fs (loop3): Block reservation details
EXT4-fs (loop3): i_reserved_data_blocks=513

Crashes (1):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2025/09/17 04:56 upstream 5aca7966d2a7 e2beed91 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-kcsan-gce KCSAN: data-race in mem_cgroup_track_foreign_dirty_slowpath / mem_cgroup_track_foreign_dirty_slowpath
* Struck through repros no longer work on HEAD.