linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] alloc_tag: remove sysctl prefix from mem_profiling boot parameter
@ 2026-01-09  6:24 ranxiaokai627
  2026-01-11  2:12 ` Andrew Morton
  2026-01-11  2:33 ` Kent Overstreet
  0 siblings, 2 replies; 4+ messages in thread
From: ranxiaokai627 @ 2026-01-09  6:24 UTC (permalink / raw)
  To: surenb, vbabka, kent.overstreet, akpm, david, lorenzo.stoakes,
	Liam.Howlett, rppt, mhocko, corbet
  Cc: linux-mm, linux-doc, linux-kernel, ran.xiaokai, ranxiaokai627

From: Ran Xiaokai <ran.xiaokai@zte.com.cn>

Boot parameters prefixed with "sysctl." are processed separately
during the final stage of system initialization via kernel_init()->
do_sysctl_args(). Since mem_profiling support should be parsed
in early boot stage, it is unsuitable for centralized handling
in do_sysctl_args().
Also, when CONFIG_MEM_ALLOC_PROFILING_DEBUG is enabled,
the sysctl.vm.mem_profiling entry is not writable and will cause
a warning. To prevent duplicate processing of sysctl.vm.mem_profiling,
rename the boot parameter to "mem_profiling".

Signed-off-by: Ran Xiaokai <ran.xiaokai@zte.com.cn>
---
 Documentation/mm/allocation-profiling.rst | 2 +-
 lib/alloc_tag.c                           | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/Documentation/mm/allocation-profiling.rst b/Documentation/mm/allocation-profiling.rst
index 316311240e6a..fe341d6da7b9 100644
--- a/Documentation/mm/allocation-profiling.rst
+++ b/Documentation/mm/allocation-profiling.rst
@@ -18,7 +18,7 @@ kconfig options:
   missing annotation
 
 Boot parameter:
-  sysctl.vm.mem_profiling={0|1|never}[,compressed]
+  mem_profiling={0|1|never}[,compressed]
 
   When set to "never", memory allocation profiling overhead is minimized and it
   cannot be enabled at runtime (sysctl becomes read-only).
diff --git a/lib/alloc_tag.c b/lib/alloc_tag.c
index 846a5b5b44a4..81b248196629 100644
--- a/lib/alloc_tag.c
+++ b/lib/alloc_tag.c
@@ -747,7 +747,7 @@ static int __init setup_early_mem_profiling(char *str)
 
 	return 0;
 }
-early_param("sysctl.vm.mem_profiling", setup_early_mem_profiling);
+early_param("mem_profiling", setup_early_mem_profiling);
 
 static __init bool need_page_alloc_tagging(void)
 {
-- 
2.25.1




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

* Re: [PATCH] alloc_tag: remove sysctl prefix from mem_profiling boot parameter
  2026-01-09  6:24 [PATCH] alloc_tag: remove sysctl prefix from mem_profiling boot parameter ranxiaokai627
@ 2026-01-11  2:12 ` Andrew Morton
  2026-01-11  2:33 ` Kent Overstreet
  1 sibling, 0 replies; 4+ messages in thread
From: Andrew Morton @ 2026-01-11  2:12 UTC (permalink / raw)
  To: ranxiaokai627
  Cc: surenb, vbabka, kent.overstreet, david, lorenzo.stoakes,
	Liam.Howlett, rppt, mhocko, corbet, linux-mm, linux-doc,
	linux-kernel, ran.xiaokai

On Fri,  9 Jan 2026 06:24:19 +0000 ranxiaokai627@163.com wrote:

> From: Ran Xiaokai <ran.xiaokai@zte.com.cn>
> 
> Boot parameters prefixed with "sysctl." are processed separately
> during the final stage of system initialization via kernel_init()->
> do_sysctl_args(). Since mem_profiling support should be parsed
> in early boot stage, it is unsuitable for centralized handling
> in do_sysctl_args().
> Also, when CONFIG_MEM_ALLOC_PROFILING_DEBUG is enabled,
> the sysctl.vm.mem_profiling entry is not writable and will cause
> a warning. To prevent duplicate processing of sysctl.vm.mem_profiling,
> rename the boot parameter to "mem_profiling".

Isn't this a backwardly-incompatible change?  What happens to existing
steups which are using sysctl.vm.mem_profiling=?



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

* Re: [PATCH] alloc_tag: remove sysctl prefix from mem_profiling boot parameter
  2026-01-09  6:24 [PATCH] alloc_tag: remove sysctl prefix from mem_profiling boot parameter ranxiaokai627
  2026-01-11  2:12 ` Andrew Morton
@ 2026-01-11  2:33 ` Kent Overstreet
  2026-01-11 19:50   ` Suren Baghdasaryan
  1 sibling, 1 reply; 4+ messages in thread
From: Kent Overstreet @ 2026-01-11  2:33 UTC (permalink / raw)
  To: ranxiaokai627
  Cc: surenb, vbabka, akpm, david, lorenzo.stoakes, Liam.Howlett, rppt,
	mhocko, corbet, linux-mm, linux-doc, linux-kernel, ran.xiaokai

On Fri, Jan 09, 2026 at 06:24:19AM +0000, ranxiaokai627@163.com wrote:
> From: Ran Xiaokai <ran.xiaokai@zte.com.cn>
> 
> Boot parameters prefixed with "sysctl." are processed separately
> during the final stage of system initialization via kernel_init()->
> do_sysctl_args(). Since mem_profiling support should be parsed
> in early boot stage, it is unsuitable for centralized handling
> in do_sysctl_args().
> Also, when CONFIG_MEM_ALLOC_PROFILING_DEBUG is enabled,
> the sysctl.vm.mem_profiling entry is not writable and will cause
> a warning. To prevent duplicate processing of sysctl.vm.mem_profiling,
> rename the boot parameter to "mem_profiling".
> 
> Signed-off-by: Ran Xiaokai <ran.xiaokai@zte.com.cn>

How was this observed/detected?

My reading of early_param() would seem to indicate that
setup_early_mem_profiling() is getting called at the appropriate time -
and then additionally a second time by do_sysctl_args(), which then
becomes a noop.

So the only bug would seem to be that the sysctl is not writeable in
debug mode? There's an easier fix for that one...


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

* Re: [PATCH] alloc_tag: remove sysctl prefix from mem_profiling boot parameter
  2026-01-11  2:33 ` Kent Overstreet
@ 2026-01-11 19:50   ` Suren Baghdasaryan
  0 siblings, 0 replies; 4+ messages in thread
From: Suren Baghdasaryan @ 2026-01-11 19:50 UTC (permalink / raw)
  To: Kent Overstreet
  Cc: ranxiaokai627, vbabka, akpm, david, lorenzo.stoakes,
	Liam.Howlett, rppt, mhocko, corbet, linux-mm, linux-doc,
	linux-kernel, ran.xiaokai

On Sat, Jan 10, 2026 at 6:34 PM Kent Overstreet
<kent.overstreet@linux.dev> wrote:
>
> On Fri, Jan 09, 2026 at 06:24:19AM +0000, ranxiaokai627@163.com wrote:
> > From: Ran Xiaokai <ran.xiaokai@zte.com.cn>
> >
> > Boot parameters prefixed with "sysctl." are processed separately
> > during the final stage of system initialization via kernel_init()->
> > do_sysctl_args(). Since mem_profiling support should be parsed
> > in early boot stage, it is unsuitable for centralized handling
> > in do_sysctl_args().
> > Also, when CONFIG_MEM_ALLOC_PROFILING_DEBUG is enabled,
> > the sysctl.vm.mem_profiling entry is not writable and will cause
> > a warning. To prevent duplicate processing of sysctl.vm.mem_profiling,
> > rename the boot parameter to "mem_profiling".
> >
> > Signed-off-by: Ran Xiaokai <ran.xiaokai@zte.com.cn>
>
> How was this observed/detected?
>
> My reading of early_param() would seem to indicate that
> setup_early_mem_profiling() is getting called at the appropriate time -
> and then additionally a second time by do_sysctl_args(), which then
> becomes a noop.
>
> So the only bug would seem to be that the sysctl is not writeable in
> debug mode? There's an easier fix for that one...

Sorry for the delay.
That's not a bug. We want this sysctrl to be read-only when the debug
option is enabled. Otherwise if user toggles mem_profiling sysctrl off
and then on again, all allocations that were made between these events
will be missing their tags and our debug mechanism will generate
warnings for each such occurrence when freeing these allocations.
I'll look closer into this warning. Maybe we can suppress it when the
read-only sysctrl is already set to the value being assigned to it?


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

end of thread, other threads:[~2026-01-11 19:50 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-01-09  6:24 [PATCH] alloc_tag: remove sysctl prefix from mem_profiling boot parameter ranxiaokai627
2026-01-11  2:12 ` Andrew Morton
2026-01-11  2:33 ` Kent Overstreet
2026-01-11 19:50   ` Suren Baghdasaryan

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