Re: [PATCH v4] alloc_tag: expose boot-time compression configuration

Suren Baghdasaryan <[email protected]> Tue, 4 Aug 2026 13:34:04 -0700
Newsgroups org.kvack.linux-mm,org.kernel.vger.linux-kernel
Message-ID <CAJuCfpGCHFhAwCkd8JX7fd1fee0JkJbS_SO8Q00ZM9dgi2TDjA@mail.gmail.com>
On Tue, Aug 4, 2026 at 1:06 PM Abhishek Bapat <[email protected]> wrote:
>
> Currently, userspace has limited visibility into the exact active
> runtime state of memory allocation profiling and its page extension
> compression ('sysctl.vm.mem_profiling={0|1|never}[,compressed]').
>
> While reading the sysctl provides basic on/off status, it is currently
> impossible for userspace to natively determine whether page-tag
> compression was successfully enabled without scraping dmesg boot logs.
>
> Resolve this ambiguity by exposing the active compression state by
> adding a new read-only sysctl `vm.mem_profiling_compressed` to output the
> state.

I guess you missed my first comment at
https://lore.kernel.org/all/CAJuCfpGA7F80yW1=bSXsZre4=Tx=peqNbkWvKF0up8xJdSvrgA@mail.gmail.com/.
Anyway, that's not super critical but would be nice to fix.

>
> Signed-off-by: Abhishek Bapat <[email protected]>
> ---
> v4 change:
> - Documentation and commit message refactor.
>
> v3 change:
> - Added documentation about the behaviour details of the new sysctl.
>
> v2 change:
> - Moved from displaying the state in /proc/allocinfo to a new read-only
> sysctl.
>
>  Documentation/mm/allocation-profiling.rst | 11 +++++++++++
>  mm/alloc_tag.c                            |  6 ++++++
>  2 files changed, 17 insertions(+)
>
> diff --git a/Documentation/mm/allocation-profiling.rst b/Documentation/mm/allocation-profiling.rst
> index c3a28467955f..f28358af927a 100644
> --- a/Documentation/mm/allocation-profiling.rst
> +++ b/Documentation/mm/allocation-profiling.rst
> @@ -43,6 +43,17 @@ sysctl:
>    warnings produced by allocations made while profiling is disabled and freed
>    when it's enabled.
>
> +  /proc/sys/vm/mem_profiling_compressed
> +
> +  1: Page alloc tag compression is enabled.
> +
> +  0: Page alloc tag compression is disabled.
> +
> +  This reflects a static boot-time configuration of how page allocation tags are
> +  stored (in page flags when compression is enabled and in page_ext when disabled).
> +  Toggling `mem_profiling` at runtime does not change the state of
> +  `mem_profiling_compressed`.

I'm not a documentation expert but Google tells me: single backticks
(`) act as interpreted text for semantic cross-references or links,
while double backticks (``) act as inline literals for raw code
formatting. I think double backticks would be more appropriate here.
You should also CC [email protected] to get their input.

> +
>  Runtime info:
>    /proc/allocinfo
>
> diff --git a/mm/alloc_tag.c b/mm/alloc_tag.c
> index 52aece27b00e..877068241f06 100644
> --- a/mm/alloc_tag.c
> +++ b/mm/alloc_tag.c
> @@ -1303,6 +1303,12 @@ static const struct ctl_table memory_allocation_profiling_sysctls[] = {
>                 .mode           = 0644,
>                 .proc_handler   = proc_mem_profiling_handler,
>         },
> +       {
> +               .procname       = "mem_profiling_compressed",
> +               .data           = &mem_profiling_compressed,
> +               .mode           = 0444,
> +               .proc_handler   = proc_do_static_key,
> +       },
>  };
>
>  static void __init sysctl_init(void)
>
> base-commit: 486855239e38a91d3eae26618ccb7845c1764625
> --
> 2.55.0.508.g3f0d502094-goog
>