From: Qi Zheng <qi.zheng@linux.dev>
To: Shakeel Butt <shakeel.butt@linux.dev>,
Andrew Morton <akpm@linux-foundation.org>
Cc: Johannes Weiner <hannes@cmpxchg.org>,
Michal Hocko <mhocko@kernel.org>,
Roman Gushchin <roman.gushchin@linux.dev>,
Muchun Song <muchun.song@linux.dev>,
Alexandre Ghiti <alex@ghiti.fr>,
Joshua Hahn <joshua.hahnjy@gmail.com>,
Harry Yoo <harry@kernel.org>,
Meta kernel team <kernel-team@meta.com>,
linux-mm@kvack.org, cgroups@vger.kernel.org,
linux-kernel@vger.kernel.org,
kernel test robot <oliver.sang@intel.com>
Subject: Re: [PATCH v2 3/4] memcg: int16_t for cached slab stats
Date: Fri, 22 May 2026 10:30:33 +0800 [thread overview]
Message-ID: <73ecdf3d-b570-409f-8337-a0cc1b4c6bcf@linux.dev> (raw)
In-Reply-To: <20260522011908.1669332-4-shakeel.butt@linux.dev>
On 5/22/26 9:19 AM, Shakeel Butt wrote:
> Currently struct obj_stock_pcp stores cached slab stats in 'int' which
> is 4 bytes per counter on 64-bit machines. Switch them to int16_t to
> shrink the cached metadata.
>
> The existing PAGE_SIZE flush in __account_obj_stock() bounds *bytes at
> PAGE_SIZE on 4KiB and 16KiB page archs, well within int16_t. On 64KiB
> pages PAGE_SIZE is well above S16_MAX so that flush never fires, and a
> sufficiently long run of accumulations would overflow the cache. Add
> an explicit S16_MAX guard before each add: when the next add would
> push abs(*bytes) past S16_MAX, fold the cached value into @nr and
> flush directly via mod_objcg_mlstate() before the accumulation.
>
> Fixes: 01b9da291c49 ("mm: memcontrol: convert objcg to be per-memcg per-node type")
> Tested-by: kernel test robot <oliver.sang@intel.com>
> Signed-off-by: Shakeel Butt <shakeel.butt@linux.dev>
> Reviewed-by: Harry Yoo (Oracle) <harry@kernel.org>
> ---
>
> Changes since v2:
> - Collected tags
>
> mm/memcontrol.c | 16 +++++++++++++---
> 1 file changed, 13 insertions(+), 3 deletions(-)
>
Acked-by: Qi Zheng <qi.zheng@linux.dev>
Thanks!
next prev parent reply other threads:[~2026-05-22 2:30 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-22 1:19 [PATCH v2 0/4] memcg: shrink obj_stock_pcp and cache multiple objcgs Shakeel Butt
2026-05-22 1:19 ` [PATCH v2 1/4] memcg: store node_id instead of pglist_data pointer Shakeel Butt
2026-05-22 2:27 ` Qi Zheng
2026-05-22 1:19 ` [PATCH v2 2/4] memcg: uint16_t for nr_bytes in obj_stock_pcp Shakeel Butt
2026-05-22 2:23 ` Qi Zheng
2026-05-22 16:30 ` Shakeel Butt
2026-05-22 6:27 ` Muchun Song
2026-05-22 1:19 ` [PATCH v2 3/4] memcg: int16_t for cached slab stats Shakeel Butt
2026-05-22 2:30 ` Qi Zheng [this message]
2026-05-22 6:27 ` Muchun Song
2026-05-22 7:50 ` David Laight
2026-05-22 1:19 ` [PATCH v2 4/4] memcg: multi objcg charge support Shakeel Butt
2026-05-22 6:33 ` Muchun Song
2026-05-22 16:37 ` Shakeel Butt
2026-05-23 2:34 ` [PATCH v2 0/4] memcg: shrink obj_stock_pcp and cache multiple objcgs Andrew Morton
2026-05-25 18:53 ` Shakeel Butt
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=73ecdf3d-b570-409f-8337-a0cc1b4c6bcf@linux.dev \
--to=qi.zheng@linux.dev \
--cc=akpm@linux-foundation.org \
--cc=alex@ghiti.fr \
--cc=cgroups@vger.kernel.org \
--cc=hannes@cmpxchg.org \
--cc=harry@kernel.org \
--cc=joshua.hahnjy@gmail.com \
--cc=kernel-team@meta.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mhocko@kernel.org \
--cc=muchun.song@linux.dev \
--cc=oliver.sang@intel.com \
--cc=roman.gushchin@linux.dev \
--cc=shakeel.butt@linux.dev \
/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.