Re: Lazily add anonymous pages to LRU on v2.4? was Re: [2.4] heavy-load under swap space shortage

From: Andrea Arcangeli
Date: Mon Nov 22 2004 - 15:12:19 EST


On Mon, Nov 22, 2004 at 01:01:38PM -0200, Marcelo Tosatti wrote:
> On Sun, Mar 14, 2004 at 03:22:53PM -0800, Andrew Morton wrote:
> > Andrea Arcangeli <andrea@xxxxxxx> wrote:
> > >
> > > >
> > > > Having a magic knob is a weak solution: the majority of people who are
> > > > affected by this problem won't know to turn it on.
> > >
> > > that's why I turned it _on_ by default in my tree ;)
> >
> > So maybe Marcelo should apply this patch, and also turn it on by default.
>
> I've been pondering this again for 2.4.29pre - the thing I'm not sure about
> what negative effect will be caused by not adding anonymous pages to LRU
> immediately on creation.
>
> The scanning algorithm will apply more pressure to pagecache pages initially
> (which are on the LRU) - but that is _hopefully_ no problem because swap_out() will
> kick-in soon moving anon pages to LRU soon as they are swap-allocated.
>
> I'm afraid that might be a significant problem for some workloads. No?
>
> Marc-Christian-Petersen claims it improves behaviour for him - how so Marc,
> and what is your workload/hardware description?
>
> This is known to decrease contention on pagemap_lru_lock.
>
> Guys, doo you have any further thoughts on this?
> I think I'll give it a shot on 2.4.29-pre?

I think you mean the one liner patch that avoids the lru_cache_add
during anonymous page allocation (you didn't quote it, and I can't see
the start of the thread). I develoepd that patch for 2.4-aa and I'm
using it for years, and it runs in all latest SLES8 kernels too, plus
2.4-aa is the only kernel I'm sure can sustain certain extreme VM loads
with heavy swapping of shmfs during heavy I/O. So you can apply it
safely I think.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/