The Linux Kernel Mailing List
 help / color / mirror / Atom feed
* [tip:locking/core] [futex]  b78b0b6582: kselftests.damon.sysfs_memcg_path_leak.sh.fail
@ 2026-08-07  8:50 kernel test robot
  2026-08-07  9:01 ` Peter Zijlstra
  0 siblings, 1 reply; 5+ messages in thread
From: kernel test robot @ 2026-08-07  8:50 UTC (permalink / raw)
  To: Peter Zijlstra
  Cc: oe-lkp, lkp, linux-kernel, x86, K Prateek Nayak, Charlie Jenkins,
	linux-arch, oliver.sang



Hello,

kernel test robot noticed "kselftests.damon.sysfs_memcg_path_leak.sh.fail" on:

commit: b78b0b65825275f58336a43611a700de174be8c3 ("futex: Use runtime constants for __futex_hash() hot path")
https://git.kernel.org/cgit/linux/kernel/git/tip/tip.git locking/core


in testcase: kselftests
version: kselftests-x86_64-f5098b6bae76-1_20260727
with following parameters:

	group: damon



config: x86_64-rhel-9.4-kselftests
compiler: gcc-14
test machine: 16 threads Intel(R) Core(TM) i7-13620H (Raptor Lake) with 32G memory

(please refer to attached dmesg/kmsg for entire log/backtrace)



If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <oliver.sang@intel.com>
| Closes: https://lore.kernel.org/oe-lkp/202608071053.6db6276e-lkp@intel.com


# timeout set to 300
# selftests: damon: sysfs_memcg_path_leak.sh
# unreferenced object 0xffff8881029e0ab8 (size 8):
#   comm "swapper/0", pid 1, jiffies 4294668108
#   hex dump (first 8 bytes):
#     00 00 d0 02 81 88 ff ff                          ........
#   backtrace (crc 6c1bc6d6):
#     __kmalloc_noprof+0x56b/0x830
#     futex_init+0x108/0x3c0
#     do_one_initcall+0xc3/0x4b0
#     do_initcalls+0x215/0x240
#     kernel_init_freeable+0x4a1/0x530
#     kernel_init+0x18/0x180
#     ret_from_fork+0x547/0x870
#     ret_from_fork_asm+0x1a/0x30
not ok 13 selftests: damon: sysfs_memcg_path_leak.sh # exit=1



The kernel config and materials to reproduce are available at:
https://download.01.org/0day-ci/archive/20260807/202608071053.6db6276e-lkp@intel.com



-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [tip:locking/core] [futex]  b78b0b6582: kselftests.damon.sysfs_memcg_path_leak.sh.fail
  2026-08-07  8:50 [tip:locking/core] [futex] b78b0b6582: kselftests.damon.sysfs_memcg_path_leak.sh.fail kernel test robot
@ 2026-08-07  9:01 ` Peter Zijlstra
  2026-08-07 14:49   ` SJ Park
  0 siblings, 1 reply; 5+ messages in thread
From: Peter Zijlstra @ 2026-08-07  9:01 UTC (permalink / raw)
  To: kernel test robot, sj
  Cc: oe-lkp, lkp, linux-kernel, x86, K Prateek Nayak, Charlie Jenkins,
	linux-arch

On Fri, Aug 07, 2026 at 04:50:48PM +0800, kernel test robot wrote:
> 
> 
> Hello,
> 
> kernel test robot noticed "kselftests.damon.sysfs_memcg_path_leak.sh.fail" on:
> 
> commit: b78b0b65825275f58336a43611a700de174be8c3 ("futex: Use runtime constants for __futex_hash() hot path")
> https://git.kernel.org/cgit/linux/kernel/git/tip/tip.git locking/core
> 
> 
> in testcase: kselftests
> version: kselftests-x86_64-f5098b6bae76-1_20260727
> with following parameters:
> 
> 	group: damon
> 
> 
> 
> config: x86_64-rhel-9.4-kselftests
> compiler: gcc-14
> test machine: 16 threads Intel(R) Core(TM) i7-13620H (Raptor Lake) with 32G memory
> 
> (please refer to attached dmesg/kmsg for entire log/backtrace)
> 
> 
> 
> If you fix the issue in a separate patch/commit (i.e. not just a new version of
> the same patch/commit), kindly add following tags
> | Reported-by: kernel test robot <oliver.sang@intel.com>
> | Closes: https://lore.kernel.org/oe-lkp/202608071053.6db6276e-lkp@intel.com
> 
> 
> # timeout set to 300
> # selftests: damon: sysfs_memcg_path_leak.sh
> # unreferenced object 0xffff8881029e0ab8 (size 8):
> #   comm "swapper/0", pid 1, jiffies 4294668108
> #   hex dump (first 8 bytes):
> #     00 00 d0 02 81 88 ff ff                          ........
> #   backtrace (crc 6c1bc6d6):
> #     __kmalloc_noprof+0x56b/0x830
> #     futex_init+0x108/0x3c0
> #     do_one_initcall+0xc3/0x4b0
> #     do_initcalls+0x215/0x240
> #     kernel_init_freeable+0x4a1/0x530
> #     kernel_init+0x18/0x180
> #     ret_from_fork+0x547/0x870
> #     ret_from_fork_asm+0x1a/0x30
> not ok 13 selftests: damon: sysfs_memcg_path_leak.sh # exit=1

I have no idea what DAMON does or what this selftest is on about. SJ?

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [tip:locking/core] [futex]  b78b0b6582: kselftests.damon.sysfs_memcg_path_leak.sh.fail
  2026-08-07  9:01 ` Peter Zijlstra
@ 2026-08-07 14:49   ` SJ Park
  2026-08-07 15:23     ` Peter Zijlstra
  0 siblings, 1 reply; 5+ messages in thread
From: SJ Park @ 2026-08-07 14:49 UTC (permalink / raw)
  To: Peter Zijlstra
  Cc: SJ Park, kernel test robot, oe-lkp, lkp, linux-kernel, x86,
	K Prateek Nayak, Charlie Jenkins, linux-arch, damon

Hello Peter,


Thank you for sharing this.

On Fri, 7 Aug 2026 11:01:39 +0200 Peter Zijlstra <peterz@infradead.org> wrote:

> On Fri, Aug 07, 2026 at 04:50:48PM +0800, kernel test robot wrote:
> > 
> > 
> > Hello,
> > 
> > kernel test robot noticed "kselftests.damon.sysfs_memcg_path_leak.sh.fail" on:
> > 
> > commit: b78b0b65825275f58336a43611a700de174be8c3 ("futex: Use runtime constants for __futex_hash() hot path")
> > https://git.kernel.org/cgit/linux/kernel/git/tip/tip.git locking/core
> > 
> > 
> > in testcase: kselftests
> > version: kselftests-x86_64-f5098b6bae76-1_20260727
> > with following parameters:
> > 
> > 	group: damon
> > 
> > 
> > 
> > config: x86_64-rhel-9.4-kselftests
> > compiler: gcc-14
> > test machine: 16 threads Intel(R) Core(TM) i7-13620H (Raptor Lake) with 32G memory
> > 
> > (please refer to attached dmesg/kmsg for entire log/backtrace)
> > 
> > 
> > 
> > If you fix the issue in a separate patch/commit (i.e. not just a new version of
> > the same patch/commit), kindly add following tags
> > | Reported-by: kernel test robot <oliver.sang@intel.com>
> > | Closes: https://lore.kernel.org/oe-lkp/202608071053.6db6276e-lkp@intel.com
> > 
> > 
> > # timeout set to 300
> > # selftests: damon: sysfs_memcg_path_leak.sh
> > # unreferenced object 0xffff8881029e0ab8 (size 8):
> > #   comm "swapper/0", pid 1, jiffies 4294668108
> > #   hex dump (first 8 bytes):
> > #     00 00 d0 02 81 88 ff ff                          ........
> > #   backtrace (crc 6c1bc6d6):
> > #     __kmalloc_noprof+0x56b/0x830
> > #     futex_init+0x108/0x3c0
> > #     do_one_initcall+0xc3/0x4b0
> > #     do_initcalls+0x215/0x240
> > #     kernel_init_freeable+0x4a1/0x530
> > #     kernel_init+0x18/0x180
> > #     ret_from_fork+0x547/0x870
> > #     ret_from_fork_asm+0x1a/0x30
> > not ok 13 selftests: damon: sysfs_memcg_path_leak.sh # exit=1
> 
> I have no idea what DAMON does or what this selftest is on about. SJ?

The test does a simple DAMON operation and runs kmemleak to see if it caused a
leak.  It doesn't filter out leaks caused by something other than the DAMON
operation, though.  So the test can fail even if there is a leak outside of
DAMON.  This failure is the case.  I confirmed manual kmemleak run without any
DAMON operation reports the leak on the kernel that was built with the reported
commit [1] like below.

    # echo scan > /sys/kernel/debug/kmemleak
    # cat /sys/kernel/debug/kmemleak
    unreferenced object 0xffff888140f848d0 (size 16):
      comm "swapper/0", pid 1, jiffies 4294892369
      hex dump (first 16 bytes):
        00 00 fd 40 81 88 ff ff 00 00 25 80 81 88 ff ff  ...@......%.....
      backtrace (crc 1f413cd3):
        __kmalloc_noprof+0x446/0x590
        futex_init+0x99/0x230
        do_one_initcall+0x5c/0x300
        kernel_init_freeable+0x23f/0x2c0
        kernel_init+0x1a/0x130
        ret_from_fork+0x230/0x2f0
        ret_from_fork_asm+0x1a/0x30

So, the commit is not breaking DAMON.  But apparently it is leaking something.

Sorry for making the confusing noise.  I will update the test to not fail for
non-DAMON leak.

FYI, the 'decode_stacktrace.sh' output is like below:

    unreferenced object 0xffff888140f848d0 (size 16):
    comm "swapper/0", pid 1, jiffies 4294892369
    hex dump (first 16 bytes):
    00 00 fd 40 81 88 ff ff 00 00 25 80 81 88 ff ff  ...@......%.....
    backtrace (crc 1f413cd3):
    __kmalloc_noprof (include/linux/kmemleak.h:44 mm/slub.c:4625 mm/slub.c:4945 mm/slub.c:5361 mm/slub.c:5387)
    futex_init (include/linux/slab.h:973 include/linux/slab.h:1189 kernel/futex/core.c:2024)
    do_one_initcall (init/main.c:1347)
    kernel_init_freeable (init/main.c:1409 (discriminator 1) init/main.c:1425 (discriminator 1) init/main.c:1445 (discriminator 1) init/main.c:1658 (discriminator 1))
    kernel_init (init/main.c:1548)
    ret_from_fork (arch/x86/kernel/process.c:158)
    ret_from_fork_asm (arch/x86/entry/entry_64.S:245)

[1] b78b0b658252 ("futex: Use runtime constants for __futex_hash() hot path")


Thanks,
SJ

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [tip:locking/core] [futex]  b78b0b6582: kselftests.damon.sysfs_memcg_path_leak.sh.fail
  2026-08-07 14:49   ` SJ Park
@ 2026-08-07 15:23     ` Peter Zijlstra
  2026-08-07 17:37       ` Catalin Marinas
  0 siblings, 1 reply; 5+ messages in thread
From: Peter Zijlstra @ 2026-08-07 15:23 UTC (permalink / raw)
  To: SJ Park, catalin.marinas
  Cc: kernel test robot, oe-lkp, lkp, linux-kernel, x86,
	K Prateek Nayak, Charlie Jenkins, linux-arch, damon

On Fri, Aug 07, 2026 at 07:49:27AM -0700, SJ Park wrote:

> > > kernel test robot noticed "kselftests.damon.sysfs_memcg_path_leak.sh.fail" on:
> > > 
> > > commit: b78b0b65825275f58336a43611a700de174be8c3 ("futex: Use runtime constants for __futex_hash() hot path")
> > > https://git.kernel.org/cgit/linux/kernel/git/tip/tip.git locking/core

> The test does a simple DAMON operation and runs kmemleak to see if it caused a
> leak.  It doesn't filter out leaks caused by something other than the DAMON
> operation, though.  So the test can fail even if there is a leak outside of
> DAMON.  This failure is the case.  I confirmed manual kmemleak run without any
> DAMON operation reports the leak on the kernel that was built with the reported
> commit [1] like below.

> So, the commit is not breaking DAMON.  But apparently it is leaking something.

Well, its doing a __init allocation and never freeing it because well,
futexes cannot be unloaded or anything.

Catalin, this seems rather daft, but what do I know. Is the below the
right way to tell it to STFU?

---
diff --git a/kernel/futex/core.c b/kernel/futex/core.c
index ad917ff83854..afdbaf754fb7 100644
--- a/kernel/futex/core.c
+++ b/kernel/futex/core.c
@@ -45,6 +45,7 @@
 #include <linux/rseq.h>
 #include <linux/slab.h>
 #include <linux/vmalloc.h>
+#include <linux/kmemleak.h>
 
 #include <vdso/futex.h>
 
@@ -2058,6 +2059,7 @@ static int __init futex_init(void)
 	order = get_order(size);
 
 	__futex_queues = kcalloc(nr_node_ids, sizeof(*__futex_queues), GFP_KERNEL);
+	kmemleak_not_leak(__futex_queues);
 
 	runtime_const_init(shift, __futex_shift);
 	runtime_const_init(mask,  __futex_mask);

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [tip:locking/core] [futex]  b78b0b6582: kselftests.damon.sysfs_memcg_path_leak.sh.fail
  2026-08-07 15:23     ` Peter Zijlstra
@ 2026-08-07 17:37       ` Catalin Marinas
  0 siblings, 0 replies; 5+ messages in thread
From: Catalin Marinas @ 2026-08-07 17:37 UTC (permalink / raw)
  To: Peter Zijlstra
  Cc: SJ Park, kernel test robot, oe-lkp, lkp, linux-kernel, x86,
	K Prateek Nayak, Charlie Jenkins, linux-arch, damon

On Fri, Aug 07, 2026 at 05:23:53PM +0200, Peter Zijlstra wrote:
> On Fri, Aug 07, 2026 at 07:49:27AM -0700, SJ Park wrote:
> > > > kernel test robot noticed "kselftests.damon.sysfs_memcg_path_leak.sh.fail" on:
> > > > 
> > > > commit: b78b0b65825275f58336a43611a700de174be8c3 ("futex: Use runtime constants for __futex_hash() hot path")
> > > > https://git.kernel.org/cgit/linux/kernel/git/tip/tip.git locking/core
> 
> > The test does a simple DAMON operation and runs kmemleak to see if it caused a
> > leak.  It doesn't filter out leaks caused by something other than the DAMON
> > operation, though.  So the test can fail even if there is a leak outside of
> > DAMON.  This failure is the case.  I confirmed manual kmemleak run without any
> > DAMON operation reports the leak on the kernel that was built with the reported
> > commit [1] like below.
> 
> > So, the commit is not breaking DAMON.  But apparently it is leaking something.
> 
> Well, its doing a __init allocation and never freeing it because well,
> futexes cannot be unloaded or anything.
> 
> Catalin, this seems rather daft, but what do I know. Is the below the
> right way to tell it to STFU?
> 
> ---
> diff --git a/kernel/futex/core.c b/kernel/futex/core.c
> index ad917ff83854..afdbaf754fb7 100644
> --- a/kernel/futex/core.c
> +++ b/kernel/futex/core.c
> @@ -45,6 +45,7 @@
>  #include <linux/rseq.h>
>  #include <linux/slab.h>
>  #include <linux/vmalloc.h>
> +#include <linux/kmemleak.h>
>  
>  #include <vdso/futex.h>
>  
> @@ -2058,6 +2059,7 @@ static int __init futex_init(void)
>  	order = get_order(size);
>  
>  	__futex_queues = kcalloc(nr_node_ids, sizeof(*__futex_queues), GFP_KERNEL);
> +	kmemleak_not_leak(__futex_queues);
>  
>  	runtime_const_init(shift, __futex_shift);
>  	runtime_const_init(mask,  __futex_mask);

This would do. Kmemleak is not that advanced to track the
runtime_const_init() pointers.

-- 
Catalin

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2026-08-07 17:37 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-08-07  8:50 [tip:locking/core] [futex] b78b0b6582: kselftests.damon.sysfs_memcg_path_leak.sh.fail kernel test robot
2026-08-07  9:01 ` Peter Zijlstra
2026-08-07 14:49   ` SJ Park
2026-08-07 15:23     ` Peter Zijlstra
2026-08-07 17:37       ` Catalin Marinas

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox