Re: [PATCH 1/2] Revert "mm: don't reclaim inodes with many attached pages"

From: Michal Hocko
Date: Thu Jan 31 2019 - 04:10:16 EST


On Thu 31-01-19 12:34:03, Dave Chinner wrote:
> On Wed, Jan 30, 2019 at 12:21:07PM +0000, Chris Mason wrote:
> >
> >
> > On 29 Jan 2019, at 23:17, Dave Chinner wrote:
> >
> > > From: Dave Chinner <dchinner@xxxxxxxxxx>
> > >
> > > This reverts commit a76cf1a474d7dbcd9336b5f5afb0162baa142cf0.
> > >
> > > This change causes serious changes to page cache and inode cache
> > > behaviour and balance, resulting in major performance regressions
> > > when combining worklaods such as large file copies and kernel
> > > compiles.
> > >
> > > https://bugzilla.kernel.org/show_bug.cgi?id=202441
> >
> > I'm a little confused by the latest comment in the bz:
> >
> > https://bugzilla.kernel.org/show_bug.cgi?id=202441#c24
>
> Which says the first patch that changed the shrinker behaviour is
> the underlying cause of the regression.
>
> > Are these reverts sufficient?
>
> I think so.
>
> > Roman beat me to suggesting Rik's followup. We hit a different problem
> > in prod with small slabs, and have a lot of instrumentation on Rik's
> > code helping.
>
> I think that's just another nasty, expedient hack that doesn't solve
> the underlying problem. Solving the underlying problem does not
> require changing core reclaim algorithms and upsetting a page
> reclaim/shrinker balance that has been stable and worked well for
> just about everyone for years.

I tend to agree with Dave here. Slab pressure balancing is quite subtle
and easy to get wrong. If we want to plug the problem with offline
memcgs then the fix should be targeted at that problem. So maybe we want
to emulate high pressure on offline memcgs only. There might be other
issues to resolve for small caches but let's start with something more
targeted first please.
--
Michal Hocko
SUSE Labs