Re: [RFC PATCH] mm: don't reclaim inodes with many attached pages
From: Roman Gushchin
Date: Wed Oct 24 2018 - 19:51:40 EST
On Wed, Oct 24, 2018 at 03:19:50PM -0700, Andrew Morton wrote:
> On Tue, 23 Oct 2018 16:43:29 +0000 Roman Gushchin <guro@xxxxxx> wrote:
>
> > Spock reported that the commit 172b06c32b94 ("mm: slowly shrink slabs
> > with a relatively small number of objects") leads to a regression on
> > his setup: periodically the majority of the pagecache is evicted
> > without an obvious reason, while before the change the amount of free
> > memory was balancing around the watermark.
> >
> > The reason behind is that the mentioned above change created some
> > minimal background pressure on the inode cache. The problem is that
> > if an inode is considered to be reclaimed, all belonging pagecache
> > page are stripped, no matter how many of them are there. So, if a huge
> > multi-gigabyte file is cached in the memory, and the goal is to
> > reclaim only few slab objects (unused inodes), we still can eventually
> > evict all gigabytes of the pagecache at once.
> >
> > The workload described by Spock has few large non-mapped files in the
> > pagecache, so it's especially noticeable.
> >
> > To solve the problem let's postpone the reclaim of inodes, which have
> > more than 1 attached page. Let's wait until the pagecache pages will
> > be evicted naturally by scanning the corresponding LRU lists, and only
> > then reclaim the inode structure.
>
> Is this regression serious enough to warrant fixing 4.19.1?
I'd give it some testing in the mm tree (and I'll test it by myself
on our fleet), and then backport to 4.19.x.
Thanks!