Re: [PATCH v4] alloc_tag: expose boot-time compression configuration
From: Suren Baghdasaryan
Date: Tue Aug 04 2026 - 16:34:25 EST
On Tue, Aug 4, 2026 at 1:06 PM Abhishek Bapat <abhishekbapat@xxxxxxxxxx> 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@xxxxxxxxxxxxxx/.
Anyway, that's not super critical but would be nice to fix.
>
> Signed-off-by: Abhishek Bapat <abhishekbapat@xxxxxxxxxx>
> ---
> 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 linux-doc@xxxxxxxxxxxxxxx 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
>