[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CALvZod4=uY=5Zp_GCzjjMzCbs16856dR85SBWv-dpNc4kBrO+Q@mail.gmail.com>
Date: Tue, 7 Sep 2021 10:48:06 -0700
From: Shakeel Butt <shakeelb@...gle.com>
To: Roman Gushchin <guro@...com>
Cc: Tejun Heo <tj@...nel.org>, Jens Axboe <axboe@...nel.dk>,
Linus Torvalds <torvalds@...ux-foundation.org>,
kernel test robot <oliver.sang@...el.com>,
Vasily Averin <vvs@...tuozzo.com>,
Alexander Viro <viro@...iv.linux.org.uk>,
Alexey Dobriyan <adobriyan@...il.com>,
Andrei Vagin <avagin@...il.com>,
Borislav Petkov <bp@...en8.de>, Borislav Petkov <bp@...e.de>,
Christian Brauner <christian.brauner@...ntu.com>,
Dmitry Safonov <0x7f454c46@...il.com>,
"Eric W. Biederman" <ebiederm@...ssion.com>,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
"H. Peter Anvin" <hpa@...or.com>, Ingo Molnar <mingo@...hat.com>,
"J. Bruce Fields" <bfields@...ldses.org>,
Jeff Layton <jlayton@...nel.org>,
Jiri Slaby <jirislaby@...nel.org>,
Johannes Weiner <hannes@...xchg.org>,
Kirill Tkhai <ktkhai@...tuozzo.com>,
Michal Hocko <mhocko@...nel.org>,
Oleg Nesterov <oleg@...hat.com>,
Serge Hallyn <serge@...lyn.com>,
Thomas Gleixner <tglx@...utronix.de>,
Vladimir Davydov <vdavydov.dev@...il.com>,
Yutian Yang <nglaive@...il.com>,
Zefan Li <lizefan.x@...edance.com>,
Andrew Morton <akpm@...ux-foundation.org>,
LKML <linux-kernel@...r.kernel.org>, lkp@...ts.01.org,
kernel test robot <lkp@...el.com>,
"Huang, Ying" <ying.huang@...el.com>,
Feng Tang <feng.tang@...el.com>,
Zhengjun Xing <zhengjun.xing@...ux.intel.com>
Subject: Re: [memcg] 0f12156dff: will-it-scale.per_process_ops -33.6% regression
On Tue, Sep 7, 2021 at 10:31 AM Roman Gushchin <guro@...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.
Powered by blists - more mailing lists