Re: [PATCH] mm/percpu, memcontrol: Per-memcg-lruvec percpu accounting
From: Joshua Hahn
Date: Mon Mar 30 2026 - 10:10:35 EST
On Mon, 30 Mar 2026 14:03:29 +0200 Michal Hocko <mhocko@xxxxxxxx> wrote:
> On Fri 27-03-26 12:19:35, Joshua Hahn wrote:
> > Convert MEMCG_PERCPU_B from a memcg_stat_item to a memcg_node_stat_item
> > to give visibility into per-node breakdowns for percpu allocations and
> > turn it into NR_PERCPU_B.
>
> Why do we need/want this?
Hello Michal,
Thank you for reviewing my patch! I hope you are doing well.
You're right, I could have done a better job of motivating the patch.
My intent with this patch is to give some more visibility into where
memory is physically, once you know which memcg it is in.
Percpu memory could probably be seen as "trivial" when it comes to figuring
out what node it is on, but I'm hoping to make similar transitions to the
rest of enum memcg_stat_item as well (you can see my work for the zswap
stats in [1]).
When all of the memory is moved from being tracked per-memcg to per-lruvec,
then the final vision would be able to attribute node placement within
each memcg, which can help with diagnosing things like asymmetric node
pressure within a memcg, which is currently only partially accurate.
Getting per-node breakdowns of percpu memory orthogonal to memcgs also
seems like a win to me. While unlikely, I think that we can benefit from
some amount of visibility into whether percpu allocations are happening
equally across all CPUs.
What do you think? Thank you again, I hope you have a great day!
Joshua
[1] https://lore.kernel.org/all/20260311195153.4013476-1-joshua.hahnjy@xxxxxxxxx/