Re: [PATCH] vm: enhance __alloc_pages to prioritize pagecache eviction when pressed for memory

From: Neil Horman
Date: Mon Dec 12 2005 - 16:40:34 EST


On Mon, Dec 12, 2005 at 12:16:39PM -0800, Andrew Morton wrote:
> Neil Horman <nhorman@xxxxxxxxxxxxx> wrote:
> >
> > On Fri, Dec 09, 2005 at 04:29:01PM -0800, Andrew Morton wrote:
> > > Neil Horman <nhorman@xxxxxxxxxxxxx> wrote:
> > > >
> > > > Hey all-
> > > > I was recently shown this issue, wherein, if the kernel was kept full of
> > > > pagecache via applications that were constantly writing large amounts of data to
> > > > disk, the box could find itself in a position where the vm, in __alloc_pages
> > > > would invoke the oom killer repetatively within try_to_free_pages, until such
> > > > time as the box had no candidate processes left to kill, at which point it would
> > > > panic.
> > >
> > > That's pretty bad. Are you able to provide a description which would permit
> > > others to reproduce this?
> >
> > As promised, heres the reproducer that was given to me, and used to reproduce
> > this problem:
> >
> > 1) setup an nfs serve with a thread count of 2. Of course, 1 thread might make
> > the problem more easy to reproduce. I haven't tried it yet.
> >
> > 2) Setup 4 nodes to hammer the nfs mounted directory. The 4 nodes should hammer
> > out 4 gigs. 2 gigs didn't seem to be enough.
> >
> > I used a locally developed tool called ior to reproduce this problem. The tool
> > can be found here:
> >
> > http://www.llnl.gov/asci/platforms/purple/rfp/benchmarks/limited/ior/
> >
> > I suppose anything that can write to NFS fast should be fine. But that's what I
> > did.
> >
> >
> > If you do this, any node writing to the server that has more than 4GB of RAM
> > should start oom killing to the point where it runs out of candidate processes
> > and panics
>
> We merged an NFS fix last week which will help throttling under heavy
> writeout conditions..
This one?
http://www.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=bb713d6d38f7be4f4e7d790cddb1b076e7da6699
I guess I must have just missed it during my testing. I'll give it a spin and
let you know if it fixes my test case.

Thanks & Regards
Neil

> -
> 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/

--
/***************************************************
*Neil Horman
*Software Engineer
*gpg keyid: 1024D / 0x92A74FA1 - http://pgp.mit.edu
***************************************************/
-
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/