Hello,
syzbot has tested the proposed patch but the reproducer is still triggering an
issue:
memory leak in __kthread_create_on_node
BUG: memory leak
unreferenced object 0xffff88811351d1b0 (size 16):
comm "syz.0.38", pid 7021, jiffies 4294948268
hex dump (first 16 bytes):
66 32 66 73 5f 66 6c 75 73 68 2d 37 3a 30 00 00 f2fs_flush-7:0..
backtrace (crc 73f9c04e):
kmemleak_alloc_recursive include/linux/kmemleak.h:44 [inline]
slab_post_alloc_hook mm/slub.c:4548 [inline]
slab_alloc_node mm/slub.c:4870 [inline]
__do_kmalloc_node mm/slub.c:5263 [inline]
__kmalloc_node_track_caller_noprof+0x3e0/0x5d0 mm/slub.c:5372
kvasprintf+0x6e/0xf0 lib/kasprintf.c:25
__kthread_create_on_node+0x9e/0x1c0 kernel/kthread.c:491
kthread_create_on_node+0x73/0xa0 kernel/kthread.c:559
f2fs_create_flush_cmd_control+0x178/0x200 fs/f2fs/segment.c:707
f2fs_build_segment_manager+0x212/0x3630 fs/f2fs/segment.c:5734
f2fs_fill_super+0x14b1/0x3c20 fs/f2fs/super.c:5140
get_tree_bdev_flags+0x1c0/0x290 fs/super.c:1694
vfs_get_tree+0x30/0x120 fs/super.c:1754
fc_mount fs/namespace.c:1193 [inline]
do_new_mount_fc fs/namespace.c:3763 [inline]
do_new_mount fs/namespace.c:3839 [inline]
path_mount+0x5a9/0x1360 fs/namespace.c:4159
do_mount fs/namespace.c:4172 [inline]
__do_sys_mount fs/namespace.c:4361 [inline]
__se_sys_mount fs/namespace.c:4338 [inline]
__x64_sys_mount+0x1a3/0x1e0 fs/namespace.c:4338
do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
do_syscall_64+0xe2/0xf80 arch/x86/entry/syscall_64.c:94
entry_SYSCALL_64_after_hwframe+0x77/0x7f
BUG: memory leak
unreferenced object 0xffff88810b6a4700 (size 4544):
comm "kthreadd", pid 2, jiffies 4294948268
hex dump (first 32 bytes):
04 00 08 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00 00 00 00 01 00 00 00 80 00 00 00 00 00 00 00 ................
backtrace (crc 71339aaa):
kmemleak_alloc_recursive include/linux/kmemleak.h:44 [inline]
slab_post_alloc_hook mm/slub.c:4548 [inline]
slab_alloc_node mm/slub.c:4870 [inline]
kmem_cache_alloc_node_noprof+0x373/0x4d0 mm/slub.c:4922
alloc_task_struct_node kernel/fork.c:185 [inline]
dup_task_struct kernel/fork.c:916 [inline]
copy_process+0x286/0x28c0 kernel/fork.c:2050
kernel_clone+0xac/0x6e0 kernel/fork.c:2654
kernel_thread+0x80/0xb0 kernel/fork.c:2715
create_kthread kernel/kthread.c:459 [inline]
kthreadd+0x186/0x250 kernel/kthread.c:817
ret_from_fork+0x23c/0x4b0 arch/x86/kernel/process.c:158
ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245
BUG: memory leak
unreferenced object 0xffff888109f45f00 (size 184):
comm "kthreadd", pid 2, jiffies 4294948268
hex dump (first 32 bytes):
02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
backtrace (crc 5ee6cb00):
kmemleak_alloc_recursive include/linux/kmemleak.h:44 [inline]
slab_post_alloc_hook mm/slub.c:4548 [inline]
slab_alloc_node mm/slub.c:4870 [inline]
kmem_cache_alloc_noprof+0x372/0x480 mm/slub.c:4877
prepare_creds+0x22/0x600 kernel/cred.c:185
copy_creds+0x44/0x290 kernel/cred.c:286
copy_process+0x7a7/0x28c0 kernel/fork.c:2084
kernel_clone+0xac/0x6e0 kernel/fork.c:2654
kernel_thread+0x80/0xb0 kernel/fork.c:2715
create_kthread kernel/kthread.c:459 [inline]
kthreadd+0x186/0x250 kernel/kthread.c:817
ret_from_fork+0x23c/0x4b0 arch/x86/kernel/process.c:158
ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245
BUG: memory leak
unreferenced object 0xffff8881096f8240 (size 32):
comm "kthreadd", pid 2, jiffies 4294948268
hex dump (first 32 bytes):
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
f8 6e 0a 00 81 88 ff ff 00 00 00 00 00 00 00 00 .n..............
backtrace (crc 13ba6aa5):
kmemleak_alloc_recursive include/linux/kmemleak.h:44 [inline]
slab_post_alloc_hook mm/slub.c:4548 [inline]
slab_alloc_node mm/slub.c:4870 [inline]
__do_kmalloc_node mm/slub.c:5263 [inline]
__kmalloc_noprof+0x3bd/0x560 mm/slub.c:5276
kmalloc_noprof include/linux/slab.h:954 [inline]
kzalloc_noprof include/linux/slab.h:1188 [inline]
lsm_blob_alloc+0x4d/0x80 security/security.c:192
lsm_cred_alloc security/security.c:209 [inline]
security_prepare_creds+0x2d/0x290 security/security.c:2763
prepare_creds+0x395/0x600 kernel/cred.c:215
copy_creds+0x44/0x290 kernel/cred.c:286
copy_process+0x7a7/0x28c0 kernel/fork.c:2084
kernel_clone+0xac/0x6e0 kernel/fork.c:2654
kernel_thread+0x80/0xb0 kernel/fork.c:2715
create_kthread kernel/kthread.c:459 [inline]
kthreadd+0x186/0x250 kernel/kthread.c:817
ret_from_fork+0x23c/0x4b0 arch/x86/kernel/process.c:158
ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245
BUG: memory leak
unreferenced object 0xffff888125626e40 (size 192):
comm "kthreadd", pid 2, jiffies 4294948268
hex dump (first 32 bytes):
02 00 00 00 00 00 00 00 00 00 00 00 ff ff ff ff ................
01 00 00 00 00 00 00 00 60 4a 8a 82 ff ff ff ff ........`J......
backtrace (crc 3a1ec858):
kmemleak_alloc_recursive include/linux/kmemleak.h:44 [inline]
slab_post_alloc_hook mm/slub.c:4548 [inline]
slab_alloc_node mm/slub.c:4870 [inline]
__kmalloc_cache_noprof+0x377/0x480 mm/slub.c:5379
kmalloc_noprof include/linux/slab.h:950 [inline]
kzalloc_noprof include/linux/slab.h:1188 [inline]
set_kthread_struct+0x58/0x150 kernel/kthread.c:107
copy_process+0x15b8/0x28c0 kernel/fork.c:2152
kernel_clone+0xac/0x6e0 kernel/fork.c:2654
kernel_thread+0x80/0xb0 kernel/fork.c:2715
create_kthread kernel/kthread.c:459 [inline]
kthreadd+0x186/0x250 kernel/kthread.c:817
ret_from_fork+0x23c/0x4b0 arch/x86/kernel/process.c:158
ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245
BUG: memory leak
unreferenced object 0xffff88812cb53700 (size 64):
comm "kthreadd", pid 2, jiffies 4294948268
hex dump (first 32 bytes):
20 09 d5 89 ff ff ff ff 00 00 00 00 00 00 00 00 ...............
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
backtrace (crc e7a33bad):
kmemleak_alloc_recursive include/linux/kmemleak.h:44 [inline]
slab_post_alloc_hook mm/slub.c:4548 [inline]
slab_alloc_node mm/slub.c:4870 [inline]
__do_kmalloc_node mm/slub.c:5263 [inline]
__kmalloc_noprof+0x3bd/0x560 mm/slub.c:5276
kmalloc_noprof include/linux/slab.h:954 [inline]
kzalloc_noprof include/linux/slab.h:1188 [inline]
lsm_blob_alloc+0x4d/0x80 security/security.c:192
lsm_task_alloc security/security.c:244 [inline]
security_task_alloc+0x2a/0x260 security/security.c:2682
copy_process+0xedf/0x28c0 kernel/fork.c:2205
kernel_clone+0xac/0x6e0 kernel/fork.c:2654
kernel_thread+0x80/0xb0 kernel/fork.c:2715
create_kthread kernel/kthread.c:459 [inline]
kthreadd+0x186/0x250 kernel/kthread.c:817
ret_from_fork+0x23c/0x4b0 arch/x86/kernel/process.c:158
ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245
BUG: memory leak
unreferenced object 0xffff88810b507180 (size 1152):
comm "kthreadd", pid 2, jiffies 4294948268
hex dump (first 32 bytes):
01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
90 71 50 0b 81 88 ff ff 90 71 50 0b 81 88 ff ff .qP......qP.....
backtrace (crc ef1916d7):
kmemleak_alloc_recursive include/linux/kmemleak.h:44 [inline]
slab_post_alloc_hook mm/slub.c:4548 [inline]
slab_alloc_node mm/slub.c:4870 [inline]
kmem_cache_alloc_noprof+0x372/0x480 mm/slub.c:4877
copy_signal kernel/fork.c:1700 [inline]
copy_process+0x10da/0x28c0 kernel/fork.c:2220
kernel_clone+0xac/0x6e0 kernel/fork.c:2654
kernel_thread+0x80/0xb0 kernel/fork.c:2715
create_kthread kernel/kthread.c:459 [inline]
kthreadd+0x186/0x250 kernel/kthread.c:817
ret_from_fork+0x23c/0x4b0 arch/x86/kernel/process.c:158
ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245
connection error: failed to recv *flatrpc.ExecutorMessageRawT: EOF
Tested on:
commit: 1f318b96 Linux 7.0-rc3
git tree: upstream
console output: https://syzkaller.appspot.com/x/log.txt?x=1751f8d6580000
kernel config: https://syzkaller.appspot.com/x/.config?x=2c6ad6fefffa76b1
dashboard link: https://syzkaller.appspot.com/bug?extid=cae7809e9dc1459e4e63
compiler: gcc (Debian 14.2.0-19) 14.2.0, GNU ld (GNU Binutils for Debian)
2.44
patch: https://syzkaller.appspot.com/x/patch.diff?x=10def8d6580000
_______________________________________________
Linux-f2fs-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel