Re: [PATCH] fs: drop_caches: skip dropping pagecache which is always dirty

From: CGEL
Date: Wed Jul 20 2022 - 21:00:32 EST


On Wed, Jul 20, 2022 at 04:02:04PM +0100, Matthew Wilcox wrote:
> On Wed, Jul 20, 2022 at 06:02:32AM +0000, CGEL wrote:
> > On Wed, Jul 20, 2022 at 04:02:40AM +0100, Matthew Wilcox wrote:
> > > On Wed, Jul 20, 2022 at 02:21:19AM +0000, cgel.zte@xxxxxxxxx wrote:
> > > > From: Yang Yang <yang.yang29@xxxxxxxxxx>
> > > >
> > > > Pagecache of some kind of fs has PG_dirty bit set once it was
> > > > allocated, so it can't be dropped. These fs include ramfs and
> > > > tmpfs. This can make drop_pagecache_sb() more efficient.
> > >
> > > Why do we want to make drop_pagecache_sb() more efficient?
> >
> > Some users may use drop_caches besides testing or debugging.
>
> This is a terrible reason.
>

Another case that may use drop_caches: "Migration of virtual machines
will go faster if there are fewer pages to copy, so administrators would
like to be able to force a virtual machine to reclaim as much memory as
possible before the migration begins. "

See https://lwn.net/Articles/894849/

> > For example, some systems will create a lot of pagecache when boot up
> > while reading bzImage, ramdisk, docker images etc. Most of this pagecache
> > is useless after boot up. It may has a longterm negative effects for the
> > workload when trigger page reclaim. It is especially harmful when trigger
> > direct_reclaim or we need allocate pages in atomic context. So users may
> > chose to drop_caches after boot up.
>
> If that's actually a problem, work on fixing that.