lkml.org 
[lkml]   [2021]   [Sep]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [memcg] 0f12156dff: will-it-scale.per_process_ops -33.6% regression
On Tue, Sep 07, 2021 at 10:48:06AM -0700, Shakeel Butt wrote:
> On Tue, Sep 7, 2021 at 10:31 AM Roman Gushchin <guro@fb.com> wrote:
> >
> > On Tue, Sep 07, 2021 at 07:14:45AM -1000, Tejun Heo wrote:
> > > Hello,
> > >
> > > On Tue, Sep 07, 2021 at 10:11:21AM -0700, Roman Gushchin wrote:
> > > > There are two polar cases:
> > > > 1) a big number of relatively short-living allocations, which lifetime is well
> > > > bounded (e.g. by a lifetime of a task),
> > > > 2) a relatively small number of long-living allocations, which lifetime
> > > > is potentially indefinite (e.g. struct mount).
> > > >
> > > > We can't use the same approach for both cases, otherwise we'll run into either
> > > > performance or garbage collection problems (which also lead to performance
> > > > problems, but delayed).
> > >
> > > Wouldn't a front cache which expires after some seconds catch both cases?
> >
> > I'm not sure. For the second case we need to pack allocations from different
> > tasks/cgroups into a small number of shared pages. It means the front cache
> > should be really small/non-existing. For the first case we likely need a
> > substantial cache. Maybe we can do something really smart with scattering
> > the cache over multiple pages, but I really doubt.
>
> I think we need to prototype this to sensibly evaluate. Let me know if
> you want to take a stab at this otherwise I can try.

If you have time and are ready to jump in, please, go on. Otherwise I can start
working on it in few weeks. In any case, I'm happy to help with discussions, code
reviews & whatever else I can do.

Thanks!

\
 
 \ /
  Last update: 2021-09-07 21:43    [W:0.821 / U:0.024 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site