All of lore.kernel.org
 help / color / mirror / Atom feed
From: Hao Ge <hao.ge@linux.dev>
To: Abhishek Bapat <abhishekbapat@google.com>,
	Suren Baghdasaryan <surenb@google.com>,
	Andrew Morton <akpm@linux-foundation.org>
Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org
Subject: Re: [PATCH v3] alloc_tag: expose profiling and compression states
Date: Tue, 4 Aug 2026 10:15:14 +0800	[thread overview]
Message-ID: <0b95c0df-8cf6-4ad9-9552-d7c4a657a25c@linux.dev> (raw)
In-Reply-To: <d635115cfafcd35c8e3344b418acb1020aba1052.1785794035.git.abhishekbapat@google.com>

Hi Abhishek


Subject says "profiling and compression states", but this

patch only adds the compression sysctl. The profiling state was

already exposed via mem_profiling and is untouched here.

I think we should make this more precise, like:

alloc_tag: expose boot-time compression configuration


On 2026/8/4 05:54, Abhishek Bapat 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]').


Profiling state is already readable via mem_profiling. The gap is

only compression. Also, as we discussed, this sysctl reports

what the user requested at boot rather than the actual runtime state.


> 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.
>
> 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.


As this is a standalone patch, please put the v2/v3 changelog below the 
--- line

instead of inside the commit message.


Thanks

Best Regards

Hao


> Signed-off-by: Abhishek Bapat <abhishekbapat@google.com>
> ---
>   Documentation/mm/allocation-profiling.rst | 13 +++++++++++++
>   mm/alloc_tag.c                            |  6 ++++++
>   2 files changed, 19 insertions(+)
>
> diff --git a/Documentation/mm/allocation-profiling.rst b/Documentation/mm/allocation-profiling.rst
> index c3a28467955f..3ad1e9aacb9a 100644
> --- a/Documentation/mm/allocation-profiling.rst
> +++ b/Documentation/mm/allocation-profiling.rst
> @@ -43,6 +43,19 @@ sysctl:
>     warnings produced by allocations made while profiling is disabled and freed
>     when it's enabled.
>   
> +  /proc/sys/vm/mem_profiling_compressed
> +
> +  1: Page extension compression is enabled.
> +
> +  0: Page extension compression is disabled.
> +
> +  This control is read-only and reflects the compression status initialized at boot.
> +  Note that, unlike `mem_profiling`, which represents the current state of profiling,
> +  `mem_profiling_compressed` represents the state configured at boot time. Turning off
> +  profiling at runtime will implicitly make this sysctl effectively dormant. However, if
> +  profiling is toggled off and then toggled on again, it will resume with compression
> +  still enabled as long as the value of `mem_profiling_compressed` is 1.
> +
>   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: 94f9b3980dd446b56acf1dfed649e9b32a9f3813


  parent reply	other threads:[~2026-08-04  4:13 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-08-03 21:54 [PATCH v3] alloc_tag: expose profiling and compression states Abhishek Bapat
2026-08-04  0:30 ` Suren Baghdasaryan
2026-08-04  1:40   ` Hao Ge
2026-08-04  2:15 ` Hao Ge [this message]
2026-08-04  3:17   ` Hao Ge
2026-08-04 17:28     ` Abhishek Bapat
2026-08-04 19:59       ` Abhishek Bapat

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=0b95c0df-8cf6-4ad9-9552-d7c4a657a25c@linux.dev \
    --to=hao.ge@linux.dev \
    --cc=abhishekbapat@google.com \
    --cc=akpm@linux-foundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=surenb@google.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.