syzbot ci has tested the following series [v3] mm: improve write performance with RWF_DONTCACHE https://lore.kernel.org/all/[email protected] * [PATCH v3 1/4] mm: add NR_DONTCACHE_DIRTY node page counter * [PATCH v3 2/4] mm: kick writeback flusher for IOCB_DONTCACHE with targeted dirty tracking * [PATCH v3 3/4] testing: add nfsd-io-bench NFS server benchmark suite * [PATCH v3 4/4] testing: add dontcache-bench local filesystem benchmark suite
and found the following issue: WARNING in __mod_memcg_lruvec_state Full report is available here: https://ci.syzbot.org/series/e53aef43-ac7a-4cb7-8714-bb927aaee659 *** WARNING in __mod_memcg_lruvec_state tree: torvalds URL: https://kernel.googlesource.com/pub/scm/linux/kernel/git/torvalds/linux base: 27d128c1cff64c3b8012cc56dd5a1391bb4f1821 arch: amd64 compiler: Debian clang version 21.1.8 (++20251221033036+2078da43e25a-1~exp1~20251221153213.50), Debian LLD 21.1.8 config: https://ci.syzbot.org/builds/c10ddd10-bb16-48c2-90fb-3625d3b258aa/config syz repro: https://ci.syzbot.org/findings/1e8993c1-818b-4ddf-b90b-30f051b3a9d6/syz_repro ------------[ cut here ]------------ __mod_memcg_lruvec_state: missing stat item 21 WARNING: mm/memcontrol.c:911 at __mod_memcg_lruvec_state+0x1f3/0x360 mm/memcontrol.c:911, CPU#0: syz.0.17/5831 Modules linked in: CPU: 0 UID: 0 PID: 5831 Comm: syz.0.17 Not tainted syzkaller #0 PREEMPT(full) Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.2-debian-1.16.2-1 04/01/2014 RIP: 0010:__mod_memcg_lruvec_state+0x1fc/0x360 mm/memcontrol.c:911 Code: 00 11 85 c0 74 31 48 83 c4 08 5b 41 5c 41 5d 41 5e 41 5f 5d e9 95 2e 72 09 cc 48 8d 3d 7d c4 fd 0d 48 c7 c6 5d b4 f5 8d 89 da <67> 48 0f b9 3a eb d5 90 0f 0b 90 eb 90 e8 02 22 fb fe eb c8 48 8d RSP: 0018:ffffc900039e7520 EFLAGS: 00010046 RAX: 0000000000000000 RBX: 0000000000000015 RCX: dffffc0000000000 RDX: 0000000000000015 RSI: ffffffff8df5b45d RDI: ffffffff90363d90 RBP: 0000000000000001 R08: ffffffff82388833 R09: ffffffff8e95cd60 R10: dffffc0000000000 R11: fffff940008c3f49 R12: ffff8881026eee80 R13: 00000000000000ff R14: 0000000000000001 R15: ffff888173a80e00 FS: 00007f5f76bca6c0(0000) GS:ffff88818dc95000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 000055d77c624128 CR3: 0000000171fde000 CR4: 00000000000006f0 Call Trace: <TASK> mod_memcg_lruvec_state+0xa7/0x220 mm/memcontrol.c:941 mod_lruvec_state mm/memcontrol.c:964 [inline] lruvec_stat_mod_folio+0x239/0x3e0 mm/memcontrol.c:984 folio_account_dirtied mm/page-writeback.c:2634 [inline] __folio_mark_dirty+0x633/0xec0 mm/page-writeback.c:2692 mark_buffer_dirty+0x261/0x410 fs/buffer.c:1110 block_commit_write+0x15d/0x270 fs/buffer.c:2115 block_write_end+0x6e/0xb0 fs/buffer.c:2191 ext4_write_end+0x27d/0xa30 fs/ext4/inode.c:1458 ext4_da_write_end+0x86/0xcb0 fs/ext4/inode.c:3296 generic_perform_write+0x620/0x8f0 mm/filemap.c:4350 ext4_buffered_write_iter+0xcb/0x370 fs/ext4/file.c:316 ext4_file_write_iter+0x298/0x1bd0 fs/ext4/file.c:-1 do_iter_readv_writev+0x619/0x8c0 fs/read_write.c:-1 vfs_writev+0x33c/0x990 fs/read_write.c:1059 do_pwritev fs/read_write.c:1155 [inline] __do_sys_pwritev2 fs/read_write.c:1213 [inline] __se_sys_pwritev2+0x184/0x2a0 fs/read_write.c:1204 do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline] do_syscall_64+0x15f/0xf80 arch/x86/entry/syscall_64.c:94 entry_SYSCALL_64_after_hwframe+0x77/0x7f RIP: 0033:0x7f5f75d9cdd9 Code: ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 e8 ff ff ff f7 d8 64 89 01 48 RSP: 002b:00007f5f76bca028 EFLAGS: 00000246 ORIG_RAX: 0000000000000148 RAX: ffffffffffffffda RBX: 00007f5f76015fa0 RCX: 00007f5f75d9cdd9 RDX: 0000000000000001 RSI: 00002000000001c0 RDI: 0000000000000004 RBP: 00007f5f75e32d69 R08: 0000000000000001 R09: 0000000000000081 R10: 0000000000000003 R11: 0000000000000246 R12: 0000000000000000 R13: 00007f5f76016038 R14: 00007f5f76015fa0 R15: 00007fffe7503ad8 </TASK> ---------------- Code disassembly (best guess): 0: 00 11 add %dl,(%rcx) 2: 85 c0 test %eax,%eax 4: 74 31 je 0x37 6: 48 83 c4 08 add $0x8,%rsp a: 5b pop %rbx b: 41 5c pop %r12 d: 41 5d pop %r13 f: 41 5e pop %r14 11: 41 5f pop %r15 13: 5d pop %rbp 14: e9 95 2e 72 09 jmp 0x9722eae 19: cc int3 1a: 48 8d 3d 7d c4 fd 0d lea 0xdfdc47d(%rip),%rdi # 0xdfdc49e 21: 48 c7 c6 5d b4 f5 8d mov $0xffffffff8df5b45d,%rsi 28: 89 da mov %ebx,%edx * 2a: 67 48 0f b9 3a ud1 (%edx),%rdi <-- trapping instruction 2f: eb d5 jmp 0x6 31: 90 nop 32: 0f 0b ud2 34: 90 nop 35: eb 90 jmp 0xffffffc7 37: e8 02 22 fb fe call 0xfefb223e 3c: eb c8 jmp 0x6 3e: 48 rex.W 3f: 8d .byte 0x8d *** If these findings have caused you to resend the series or submit a separate fix, please add the following tag to your commit message: Tested-by: [email protected] --- This report is generated by a bot. It may contain errors. syzbot ci engineers can be reached at [email protected]. To test a patch for this bug, please reply with `#syz test` (should be on a separate line). The patch should be attached to the email. Note: arguments like custom git repos and branches are not supported.
