Re: [PATCH] memcg: multi-memcg percpu charge cache

Michal Hocko
2025-04-30T06:48:25Z

On Tue 29-04-25 11:43:29, Shakeel Butt wrote:
> On Tue, Apr 29, 2025 at 02:13:16PM +0200, Michal Hocko wrote:
> >
> > > Some of the design choices are:
> > >
> > > 1. Fit all caches memcgs in a single cacheline.
> >
> > Could you be more specific about the reasoning? I suspect it is for the
> > network receive path you are mentioning above, right?
> >
>
> Here I meant why I chose NR_MEMCG_STOCK to be 7. Basically the first
> cacheline of per-cpu stock has all the cached memcg, so checking if a
> given memcg is cached or not should be comparable cheap as single cached
> memcg. You suggested comment already mentioned this.
>
> However please note that we may find in future that 2 cachelines worth of
> cached memcgs are better for wider audience/workloads but for simplicity
> let's start with single cacheline worth of cached memcgs.

Right, and this is exactly why an extended reasoning is really due. We
have introduced magic constants in the past and then we were struggling
to decide whether this might regress something.

I can imagine that we could extend the caching to be adaptive in the
future and scale with the number of cgroups in some way.
>
> [...]
> >
> > Just a minor suggestion below. Other than that looks good to me (with
> > follow up fixes) in this thread.
> > Acked-by: Michal Hocko <mhocko@suse.com>
> > Thanks!
> >
>
> Thanks, I will send a diff for Andrew to squash it into original patch.

Thanks!
--
Michal Hocko
SUSE Labs