On 2/27/24 14:50, Mirsad Todorovac wrote:
Hi, everybody,
In the latest vanilla torvalds tree kernel v6.8-rc6-11-g45ec2f5f6ed3
on an Ubuntu 23.10 system, there
KMEMLEAK detected a couple of memory leaks:
Visually it appears like the same leak repeated six times, but I
reckoned it might be of importance to
review them all.
It happened on two boxes, and both have AMD Ryzen processors 7 and 9.
Please find attached the build .config
Best regards,
Mirsad Todorovac
Yes, you are right. There is a memory leak under certain condition. Will
post a patch to fix it.
Thanks,
Longman
# cat /sys/kernel/debug/kmemleak [stack decoded]
unreferenced object 0xffff8d49bd92a720 (size 8):
comm "test_cpuset_prs", pid 9213, jiffies 4294953562
hex dump (first 8 bytes):
00 00 00 00 00 00 00 00 ........
backtrace (crc 0):
kmemleak_alloc
(/home/marvin/linux/kernel/linux_torvalds/mm/kmemleak.c:1045)
__kmalloc_node
(/home/marvin/linux/kernel/linux_torvalds/./include/linux/kmemleak.h:42
/home/marvin/linux/kernel/linux_torvalds/mm/slub.c:3817
/home/marvin/linux/kernel/linux_torvalds/mm/slub.c:3860
/home/marvin/linux/kernel/linux_torvalds/mm/slub.c:3980
/home/marvin/linux/kernel/linux_torvalds/mm/slub.c:3988)
alloc_cpumask_var_node
(/home/marvin/linux/kernel/linux_torvalds/lib/cpumask.c:71)
cpuset_write_resmask
(/home/marvin/linux/kernel/linux_torvalds/kernel/cgroup/cpuset.c:643
/home/marvin/linux/kernel/linux_torvalds/kernel/cgroup/cpuset.c:2601
/home/marvin/linux/kernel/linux_torvalds/kernel/cgroup/cpuset.c:3630)
cgroup_file_write
(/home/marvin/linux/kernel/linux_torvalds/kernel/cgroup/cgroup.c:4092)
kernfs_fop_write_iter
(/home/marvin/linux/kernel/linux_torvalds/fs/kernfs/file.c:334)
vfs_write
(/home/marvin/linux/kernel/linux_torvalds/./include/linux/fs.h:2087
/home/marvin/linux/kernel/linux_torvalds/fs/read_write.c:497
/home/marvin/linux/kernel/linux_torvalds/fs/read_write.c:590)
ksys_write (/home/marvin/linux/kernel/linux_torvalds/fs/read_write.c:643)
__x64_sys_write
(/home/marvin/linux/kernel/linux_torvalds/fs/read_write.c:652)
do_syscall_64
(/home/marvin/linux/kernel/linux_torvalds/arch/x86/entry/common.c:52
/home/marvin/linux/kernel/linux_torvalds/arch/x86/entry/common.c:83)
entry_SYSCALL_64_after_hwframe
(/home/marvin/linux/kernel/linux_torvalds/arch/x86/entry/entry_64.S:129)
unreferenced object 0xffff8d49bd92a488 (size 8):
comm "test_cpuset_prs", pid 9213, jiffies 4294953562
hex dump (first 8 bytes):
00 00 00 00 00 00 00 00 ........
backtrace (crc 0):
kmemleak_alloc
(/home/marvin/linux/kernel/linux_torvalds/mm/kmemleak.c:1045)
__kmalloc_node
(/home/marvin/linux/kernel/linux_torvalds/./include/linux/kmemleak.h:42
/home/marvin/linux/kernel/linux_torvalds/mm/slub.c:3817
/home/marvin/linux/kernel/linux_torvalds/mm/slub.c:3860
/home/marvin/linux/kernel/linux_torvalds/mm/slub.c:3980
/home/marvin/linux/kernel/linux_torvalds/mm/slub.c:3988)
alloc_cpumask_var_node
(/home/marvin/linux/kernel/linux_torvalds/lib/cpumask.c:71)
cpuset_write_resmask
(/home/marvin/linux/kernel/linux_torvalds/kernel/cgroup/cpuset.c:646
/home/marvin/linux/kernel/linux_torvalds/kernel/cgroup/cpuset.c:2601
/home/marvin/linux/kernel/linux_torvalds/kernel/cgroup/cpuset.c:3630)
cgroup_file_write
(/home/marvin/linux/kernel/linux_torvalds/kernel/cgroup/cgroup.c:4092)
kernfs_fop_write_iter
(/home/marvin/linux/kernel/linux_torvalds/fs/kernfs/file.c:334)
vfs_write
(/home/marvin/linux/kernel/linux_torvalds/./include/linux/fs.h:2087
/home/marvin/linux/kernel/linux_torvalds/fs/read_write.c:497
/home/marvin/linux/kernel/linux_torvalds/fs/read_write.c:590)
ksys_write (/home/marvin/linux/kernel/linux_torvalds/fs/read_write.c:643)
__x64_sys_write
(/home/marvin/linux/kernel/linux_torvalds/fs/read_write.c:652)
do_syscall_64
(/home/marvin/linux/kernel/linux_torvalds/arch/x86/entry/common.c:52
/home/marvin/linux/kernel/linux_torvalds/arch/x86/entry/common.c:83)
entry_SYSCALL_64_after_hwframe
(/home/marvin/linux/kernel/linux_torvalds/arch/x86/entry/entry_64.S:129)
unreferenced object 0xffff8d49bd92a890 (size 8):
comm "test_cpuset_prs", pid 9213, jiffies 4294953562
hex dump (first 8 bytes):
00 00 00 00 00 00 00 00 ........
backtrace (crc 0):
kmemleak_alloc
(/home/marvin/linux/kernel/linux_torvalds/mm/kmemleak.c:1045)
__kmalloc_node
(/home/marvin/linux/kernel/linux_torvalds/./include/linux/kmemleak.h:42
/home/marvin/linux/kernel/linux_torvalds/mm/slub.c:3817
/home/marvin/linux/kernel/linux_torvalds/mm/slub.c:3860
/home/marvin/linux/kernel/linux_torvalds/mm/slub.c:3980
/home/marvin/linux/kernel/linux_torvalds/mm/slub.c:3988)
alloc_cpumask_var_node
(/home/marvin/linux/kernel/linux_torvalds/lib/cpumask.c:71)
cpuset_write_resmask
(/home/marvin/linux/kernel/linux_torvalds/kernel/cgroup/cpuset.c:649
/home/marvin/linux/kernel/linux_torvalds/kernel/cgroup/cpuset.c:2601
/home/marvin/linux/kernel/linux_torvalds/kernel/cgroup/cpuset.c:3630)
cgroup_file_write
(/home/marvin/linux/kernel/linux_torvalds/kernel/cgroup/cgroup.c:4092)
kernfs_fop_write_iter
(/home/marvin/linux/kernel/linux_torvalds/fs/kernfs/file.c:334)
vfs_write
(/home/marvin/linux/kernel/linux_torvalds/./include/linux/fs.h:2087
/home/marvin/linux/kernel/linux_torvalds/fs/read_write.c:497
/home/marvin/linux/kernel/linux_torvalds/fs/read_write.c:590)
ksys_write (/home/marvin/linux/kernel/linux_torvalds/fs/read_write.c:643)
__x64_sys_write
(/home/marvin/linux/kernel/linux_torvalds/fs/read_write.c:652)
do_syscall_64
(/home/marvin/linux/kernel/linux_torvalds/arch/x86/entry/common.c:52
/home/marvin/linux/kernel/linux_torvalds/arch/x86/entry/common.c:83)
entry_SYSCALL_64_after_hwframe
(/home/marvin/linux/kernel/linux_torvalds/arch/x86/entry/entry_64.S:129)
unreferenced object 0xffff8d48c12f3720 (size 8):
comm "test_cpuset_prs", pid 28081, jiffies 4295018483
hex dump (first 8 bytes):
00 00 00 00 00 00 00 00 ........
backtrace (crc 0):
kmemleak_alloc
(/home/marvin/linux/kernel/linux_torvalds/mm/kmemleak.c:1045)
__kmalloc_node
(/home/marvin/linux/kernel/linux_torvalds/./include/linux/kmemleak.h:42
/home/marvin/linux/kernel/linux_torvalds/mm/slub.c:3817
/home/marvin/linux/kernel/linux_torvalds/mm/slub.c:3860
/home/marvin/linux/kernel/linux_torvalds/mm/slub.c:3980
/home/marvin/linux/kernel/linux_torvalds/mm/slub.c:3988)
alloc_cpumask_var_node
(/home/marvin/linux/kernel/linux_torvalds/lib/cpumask.c:71)
cpuset_write_resmask
(/home/marvin/linux/kernel/linux_torvalds/kernel/cgroup/cpuset.c:643
/home/marvin/linux/kernel/linux_torvalds/kernel/cgroup/cpuset.c:2601
/home/marvin/linux/kernel/linux_torvalds/kernel/cgroup/cpuset.c:3630)
cgroup_file_write
(/home/marvin/linux/kernel/linux_torvalds/kernel/cgroup/cgroup.c:4092)
kernfs_fop_write_iter
(/home/marvin/linux/kernel/linux_torvalds/fs/kernfs/file.c:334)
vfs_write
(/home/marvin/linux/kernel/linux_torvalds/./include/linux/fs.h:2087
/home/marvin/linux/kernel/linux_torvalds/fs/read_write.c:497
/home/marvin/linux/kernel/linux_torvalds/fs/read_write.c:590)
ksys_write (/home/marvin/linux/kernel/linux_torvalds/fs/read_write.c:643)
__x64_sys_write
(/home/marvin/linux/kernel/linux_torvalds/fs/read_write.c:652)
do_syscall_64
(/home/marvin/linux/kernel/linux_torvalds/arch/x86/entry/common.c:52
/home/marvin/linux/kernel/linux_torvalds/arch/x86/entry/common.c:83)
entry_SYSCALL_64_after_hwframe
(/home/marvin/linux/kernel/linux_torvalds/arch/x86/entry/entry_64.S:129)
unreferenced object 0xffff8d48c12f3180 (size 8):
comm "test_cpuset_prs", pid 28081, jiffies 4295018483
hex dump (first 8 bytes):
00 00 00 00 00 00 00 00 ........
backtrace (crc 0):
kmemleak_alloc
(/home/marvin/linux/kernel/linux_torvalds/mm/kmemleak.c:1045)
__kmalloc_node
(/home/marvin/linux/kernel/linux_torvalds/./include/linux/kmemleak.h:42
/home/marvin/linux/kernel/linux_torvalds/mm/slub.c:3817
/home/marvin/linux/kernel/linux_torvalds/mm/slub.c:3860
/home/marvin/linux/kernel/linux_torvalds/mm/slub.c:3980
/home/marvin/linux/kernel/linux_torvalds/mm/slub.c:3988)
alloc_cpumask_var_node
(/home/marvin/linux/kernel/linux_torvalds/lib/cpumask.c:71)
cpuset_write_resmask
(/home/marvin/linux/kernel/linux_torvalds/kernel/cgroup/cpuset.c:646
/home/marvin/linux/kernel/linux_torvalds/kernel/cgroup/cpuset.c:2601
/home/marvin/linux/kernel/linux_torvalds/kernel/cgroup/cpuset.c:3630)
cgroup_file_write
(/home/marvin/linux/kernel/linux_torvalds/kernel/cgroup/cgroup.c:4092)
kernfs_fop_write_iter
(/home/marvin/linux/kernel/linux_torvalds/fs/kernfs/file.c:334)
vfs_write
(/home/marvin/linux/kernel/linux_torvalds/./include/linux/fs.h:2087
/home/marvin/linux/kernel/linux_torvalds/fs/read_write.c:497
/home/marvin/linux/kernel/linux_torvalds/fs/read_write.c:590)
ksys_write (/home/marvin/linux/kernel/linux_torvalds/fs/read_write.c:643)
__x64_sys_write
(/home/marvin/linux/kernel/linux_torvalds/fs/read_write.c:652)
do_syscall_64
(/home/marvin/linux/kernel/linux_torvalds/arch/x86/entry/common.c:52
/home/marvin/linux/kernel/linux_torvalds/arch/x86/entry/common.c:83)
entry_SYSCALL_64_after_hwframe
(/home/marvin/linux/kernel/linux_torvalds/arch/x86/entry/entry_64.S:129)
unreferenced object 0xffff8d48c12f3188 (size 8):
comm "test_cpuset_prs", pid 28081, jiffies 4295018483
hex dump (first 8 bytes):
00 00 00 00 00 00 00 00 ........
backtrace (crc 0):
kmemleak_alloc
(/home/marvin/linux/kernel/linux_torvalds/mm/kmemleak.c:1045)
__kmalloc_node
(/home/marvin/linux/kernel/linux_torvalds/./include/linux/kmemleak.h:42
/home/marvin/linux/kernel/linux_torvalds/mm/slub.c:3817
/home/marvin/linux/kernel/linux_torvalds/mm/slub.c:3860
/home/marvin/linux/kernel/linux_torvalds/mm/slub.c:3980
/home/marvin/linux/kernel/linux_torvalds/mm/slub.c:3988)
alloc_cpumask_var_node
(/home/marvin/linux/kernel/linux_torvalds/lib/cpumask.c:71)
cpuset_write_resmask
(/home/marvin/linux/kernel/linux_torvalds/kernel/cgroup/cpuset.c:649
/home/marvin/linux/kernel/linux_torvalds/kernel/cgroup/cpuset.c:2601
/home/marvin/linux/kernel/linux_torvalds/kernel/cgroup/cpuset.c:3630)
cgroup_file_write
(/home/marvin/linux/kernel/linux_torvalds/kernel/cgroup/cgroup.c:4092)
kernfs_fop_write_iter
(/home/marvin/linux/kernel/linux_torvalds/fs/kernfs/file.c:334)
vfs_write
(/home/marvin/linux/kernel/linux_torvalds/./include/linux/fs.h:2087
/home/marvin/linux/kernel/linux_torvalds/fs/read_write.c:497
/home/marvin/linux/kernel/linux_torvalds/fs/read_write.c:590)
ksys_write (/home/marvin/linux/kernel/linux_torvalds/fs/read_write.c:643)
__x64_sys_write
(/home/marvin/linux/kernel/linux_torvalds/fs/read_write.c:652)
do_syscall_64
(/home/marvin/linux/kernel/linux_torvalds/arch/x86/entry/common.c:52
/home/marvin/linux/kernel/linux_torvalds/arch/x86/entry/common.c:83)
entry_SYSCALL_64_after_hwframe
(/home/marvin/linux/kernel/linux_torvalds/arch/x86/entry/entry_64.S:129)