From: Johannes Weiner <hannes@cmpxchg.org>
To: Huan Yang <link@vivo.com>
Cc: Michal Hocko <mhocko@kernel.org>,
Roman Gushchin <roman.gushchin@linux.dev>,
Shakeel Butt <shakeel.butt@linux.dev>,
Muchun Song <muchun.song@linux.dev>,
Andrew Morton <akpm@linux-foundation.org>,
Petr Mladek <pmladek@suse.com>, Vlastimil Babka <vbabka@suse.cz>,
Rasmus Villemoes <linux@rasmusvillemoes.dk>,
Francesco Valla <francesco@valla.it>,
Raul E Rangel <rrangel@chromium.org>,
"Paul E. McKenney" <paulmck@kernel.org>,
Huang Shijie <shijie@os.amperecomputing.com>,
Guo Weikang <guoweikang.kernel@gmail.com>,
"Uladzislau Rezki (Sony)" <urezki@gmail.com>,
KP Singh <kpsingh@kernel.org>,
cgroups@vger.kernel.org, linux-mm@kvack.org,
linux-kernel@vger.kernel.org,
Hyeonggon Yoo <hyeonggon.yoo@sk.com>,
Paul Moore <paul@paul-moore.com>,
opensource.kernel@vivo.com
Subject: Re: [PATCH v3 3/3] mm/memcg: use kmem_cache when alloc memcg pernode info
Date: Sun, 27 Apr 2025 08:00:36 -0400 [thread overview]
Message-ID: <20250427120036.GC116315@cmpxchg.org> (raw)
In-Reply-To: <20250425031935.76411-4-link@vivo.com>
On Fri, Apr 25, 2025 at 11:19:25AM +0800, Huan Yang wrote:
> When tracing mem_cgroup_per_node allocations with kmalloc ftrace:
>
> kmalloc: call_site=mem_cgroup_css_alloc+0x1d8/0x5b4 ptr=00000000d798700c
> bytes_req=2896 bytes_alloc=4096 gfp_flags=GFP_KERNEL|__GFP_ZERO node=0
> accounted=false
>
> This reveals the slab allocator provides 4096B chunks for 2896B
> mem_cgroup_per_node due to:
>
> 1. The slab allocator predefines bucket sizes from 64B to 8096B
> 2. The mem_cgroup allocation size (2312B) falls between the 2KB and 4KB
> slabs
> 3. The allocator rounds up to the nearest larger slab (4KB), resulting in
> ~1KB wasted memory per memcg alloc - per node.
>
> This patch introduces a dedicated kmem_cache for mem_cgroup structs,
> achieving precise memory allocation. Post-patch ftrace verification shows:
>
> kmem_cache_alloc: call_site=mem_cgroup_css_alloc+0x1b8/0x5d4
> ptr=000000002989e63a bytes_req=2896 bytes_alloc=2944
> gfp_flags=GFP_KERNEL|__GFP_ZERO node=0 accounted=false
>
> Each mem_cgroup_per_node alloc 2944bytes(include hw cacheline align),
> compare to 4096, it avoid waste.
>
> Signed-off-by: Huan Yang <link@vivo.com>
Acked-by: Johannes Weiner <hannes@cmpxchg.org>
next prev parent reply other threads:[~2025-04-27 12:00 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-04-25 3:19 [PATCH v3 0/3] Use kmem_cache for memcg alloc Huan Yang
2025-04-25 3:19 ` [PATCH v3 1/3] mm/memcg: move mem_cgroup_init() ahead of cgroup_init() Huan Yang
2025-04-25 4:11 ` Shakeel Butt
2025-04-28 2:20 ` Huan Yang
2025-04-27 11:46 ` Johannes Weiner
2025-04-28 2:20 ` Huan Yang
2025-04-25 3:19 ` [PATCH v3 2/3] mm/memcg: use kmem_cache when alloc memcg Huan Yang
2025-04-25 4:12 ` Shakeel Butt
2025-04-27 11:56 ` Johannes Weiner
2025-04-25 3:19 ` [PATCH v3 3/3] mm/memcg: use kmem_cache when alloc memcg pernode info Huan Yang
2025-04-25 4:12 ` Shakeel Butt
2025-04-27 12:00 ` Johannes Weiner [this message]
2025-04-25 4:35 ` [PATCH v3 0/3] Use kmem_cache for memcg alloc Matthew Wilcox
2025-04-28 2:19 ` Huan Yang
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=20250427120036.GC116315@cmpxchg.org \
--to=hannes@cmpxchg.org \
--cc=akpm@linux-foundation.org \
--cc=cgroups@vger.kernel.org \
--cc=francesco@valla.it \
--cc=guoweikang.kernel@gmail.com \
--cc=hyeonggon.yoo@sk.com \
--cc=kpsingh@kernel.org \
--cc=link@vivo.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linux@rasmusvillemoes.dk \
--cc=mhocko@kernel.org \
--cc=muchun.song@linux.dev \
--cc=opensource.kernel@vivo.com \
--cc=paul@paul-moore.com \
--cc=paulmck@kernel.org \
--cc=pmladek@suse.com \
--cc=roman.gushchin@linux.dev \
--cc=rrangel@chromium.org \
--cc=shakeel.butt@linux.dev \
--cc=shijie@os.amperecomputing.com \
--cc=urezki@gmail.com \
--cc=vbabka@suse.cz \
/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.