All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Vlastimil Babka (SUSE)" <vbabka@kernel.org>
To: Harry Yoo <harry@kernel.org>
Cc: Suren Baghdasaryan <surenb@google.com>, Hao Li <hao.li@linux.dev>,
	Shakeel Butt <shakeel.butt@linux.dev>,
	Alexander Potapenko <glider@google.com>,
	Marco Elver <elver@google.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Christoph Lameter <cl@gentwo.org>,
	David Rientjes <rientjes@google.com>,
	Roman Gushchin <roman.gushchin@linux.dev>,
	linux-mm@kvack.org, linux-kernel@vger.kernel.org,
	cgroups@vger.kernel.org
Subject: Re: [PATCH v3 12/13] mm/slab: stop allocating objcg pointers when unnecessary
Date: Tue, 4 Aug 2026 12:29:35 +0200	[thread overview]
Message-ID: <4feaaba1-258c-4f6c-959c-695b4e62a3dd@kernel.org> (raw)
In-Reply-To: <anGzWSrjIWZ2jZmf@dev>

On 8/4/26 11:45, Harry Yoo wrote:
> On Mon, Jul 27, 2026 at 02:54:06PM +0200, Vlastimil Babka (SUSE) wrote:
>> Start using the slab_needs_objcg() helper to calculate slabobj_ext size.
>> Caches that we know to never need objcg pointers (currently
>> KMALLOC_NORMAL caches) will thus stop wasting memory on them when memory
>> allocation profiling is enabled.
>> 
>> For things to work properly, we need to also add slab_needs_objcg()
>> checks to mem_cgroup_from_obj_slab() and memcg_slab_free_hook(), because
>> when obj_exts array exists for a slab only due to mem_alloc profiling,
>> we would otherwise attempt to access a non-existing objcg pointer in
>> that slab.
>> 
>> The function __memcg_slab_post_alloc_hook() should not be possible to
>> call for a slab where slab_needs_objcg() is false, but add a DEBUG_VM
>> check there to prevent breaking this assumption accidentally.
> 
> Perhaps this part is not necessary as slab_obj_ext_set_objcg() now has
> a debug warning?

Indeed. Removed. Also moved the those debug warnings from 11/13 to here to
avoid bisectability issues, as you pointed out offlist.

>> 
>> Reviewed-by: Hao Li <hao.li@linux.dev>
>> Signed-off-by: Vlastimil Babka (SUSE) <vbabka@kernel.org>
>> ---
> 
> Otherwise LGTM so please feel free to add:
> Reviewed-by: Harry Yoo <harry@kernel.org>

Thanks!


  reply	other threads:[~2026-08-04 10:29 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-07-27 12:53 [PATCH v3 00/13] mm/slab, alloc_tag: reduce obj_ext memory waste Vlastimil Babka (SUSE)
2026-07-27 12:53 ` [PATCH v3 01/13] mm/slab: skip kfence objects in allocation profiling Vlastimil Babka (SUSE)
2026-07-30 11:16   ` Hao Li
2026-07-31 13:49     ` Vlastimil Babka (SUSE)
2026-07-27 12:53 ` [PATCH v3 02/13] mm/slab: remove objs_per_slab() Vlastimil Babka (SUSE)
2026-07-30 11:22   ` Hao Li
2026-07-27 12:53 ` [PATCH v3 03/13] mm: move struct slabobj_ext to mm/slab.h Vlastimil Babka (SUSE)
2026-07-27 12:53 ` [PATCH v3 04/13] mm/slab: make slab_obj_ext() determine object index Vlastimil Babka (SUSE)
2026-07-27 12:53 ` [PATCH v3 05/13] mm/slab: abstract slabobj_ext.objcg access Vlastimil Babka (SUSE)
2026-07-28 13:24   ` Harry Yoo
2026-07-28 13:25     ` Harry Yoo
2026-07-27 12:54 ` [PATCH v3 06/13] mm/slab: abstract slabobj_ext.ref access Vlastimil Babka (SUSE)
2026-07-28 13:41   ` Harry Yoo
2026-07-28 17:41     ` Vlastimil Babka (SUSE)
2026-07-29  6:18       ` Harry Yoo
2026-07-29  9:46         ` Vlastimil Babka (SUSE)
2026-08-04  5:31           ` Harry Yoo
2026-07-27 12:54 ` [PATCH v3 07/13] mm/slab: replace slab.stride with obj_exts_in_object Vlastimil Babka (SUSE)
2026-07-29  6:40   ` Harry Yoo
2026-07-29  9:27     ` Vlastimil Babka (SUSE)
2026-07-27 12:54 ` [PATCH v3 08/13] mm/slab: change struct slabobj_ext to a union Vlastimil Babka (SUSE)
2026-07-29  9:03   ` Harry Yoo
2026-07-30 11:39   ` Hao Li
2026-07-30 11:58   ` Hao Li
2026-07-31 13:52     ` Vlastimil Babka (SUSE)
2026-07-27 12:54 ` [PATCH v3 09/13] mm/slab: introduce slab_obj_ext_has_codetag() Vlastimil Babka (SUSE)
2026-07-30 11:42   ` Hao Li
2026-08-04  6:18   ` Harry Yoo
2026-07-27 12:54 ` [PATCH v3 10/13] mm/slab: reduce slabobj_ext memory with allocation profiling disabled Vlastimil Babka (SUSE)
2026-07-27 14:07   ` Vlastimil Babka (SUSE)
2026-07-30 11:59     ` Hao Li
2026-08-04  6:34     ` Harry Yoo
2026-07-27 12:54 ` [PATCH v3 11/13] mm/slab: add cache_ and slab_needs_objcg() helpers Vlastimil Babka (SUSE)
2026-08-04  8:50   ` Harry Yoo
2026-07-27 12:54 ` [PATCH v3 12/13] mm/slab: stop allocating objcg pointers when unnecessary Vlastimil Babka (SUSE)
2026-08-04  9:45   ` Harry Yoo
2026-08-04 10:29     ` Vlastimil Babka (SUSE) [this message]
2026-07-27 12:54 ` [PATCH v3 13/13] mm/slab, kfence, memcg: completely remove obj_ext for kfence objects Vlastimil Babka (SUSE)
2026-07-30 12:41   ` Hao Li
2026-07-28 17:46 ` [PATCH v3 00/13] mm/slab, alloc_tag: reduce obj_ext memory waste Vlastimil Babka (SUSE)

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=4feaaba1-258c-4f6c-959c-695b4e62a3dd@kernel.org \
    --to=vbabka@kernel.org \
    --cc=akpm@linux-foundation.org \
    --cc=cgroups@vger.kernel.org \
    --cc=cl@gentwo.org \
    --cc=elver@google.com \
    --cc=glider@google.com \
    --cc=hao.li@linux.dev \
    --cc=harry@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=rientjes@google.com \
    --cc=roman.gushchin@linux.dev \
    --cc=shakeel.butt@linux.dev \
    --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.