Re: [stable] OOM-killer invoked but why ?

From: Greg KH
Date: Tue Feb 05 2008 - 17:40:52 EST


On Tue, Feb 05, 2008 at 02:13:12PM -0800, Christoph Lameter wrote:
> On Tue, 5 Feb 2008, Greg KH wrote:
>
> > > > commit 96990a4ae979df9e235d01097d6175759331e88c
> > > > Author: Christoph Lameter <clameter@xxxxxxx>
> > > > Date: Mon Jan 14 00:55:14 2008 -0800
> > > >
> > > > quicklists: Only consider memory that can be used with GFP_KERNEL
> > > >
> > > > Quicklists calculates the size of the quicklists based on the number of
> > > > free pages. This must be the number of free pages that can be allocated
> > > > with GFP_KERNEL. node_page_state() includes the pages in ZONE_HIGHMEM and
> > > > ZONE_MOVABLE which may lead the quicklists to become too large causing OOM.
> > > >
> > > > Signed-off-by: Christoph Lameter <clameter@xxxxxxx>
> > > > Tested-by: Dhaval Giani <dhaval@xxxxxxxxxxxxxxxxxx>
> > > > Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
> > > > Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
> > > >
> > > > diff --git a/mm/quicklist.c b/mm/quicklist.c
> > > > index ae8189c..3f703f7 100644
> > > > --- a/mm/quicklist.c
> > > > +++ b/mm/quicklist.c
> > > > @@ -26,9 +26,17 @@ DEFINE_PER_CPU(struct quicklist, quicklist)[CONFIG_NR_QUICK];
> > > > static unsigned long max_pages(unsigned long min_pages)
> > > > {
> > > > unsigned long node_free_pages, max;
> > > > + struct zone *zones = NODE_DATA(numa_node_id())->node_zones;
> > > > +
> > > > + node_free_pages =
> > > > +#ifdef CONFIG_ZONE_DMA
> > > > + zone_page_state(&zones[ZONE_DMA], NR_FREE_PAGES) +
> > > > +#endif
> > > > +#ifdef CONFIG_ZONE_DMA32
> > > > + zone_page_state(&zones[ZONE_DMA32], NR_FREE_PAGES) +
> > > > +#endif
> > > > + zone_page_state(&zones[ZONE_NORMAL], NR_FREE_PAGES);
> > > >
> > > > - node_free_pages = node_page_state(numa_node_id(),
> > > > - NR_FREE_PAGES);
> > > > max = node_free_pages / FRACTION_OF_NODE_MEM;
> > > > return max(max, min_pages);
> > > > }
> > > >
> > > >
> > > > I note that this didn't have the stable@xxxxxxxxxx cc. Christoph, did we
> > > > deliberately decide not to backport?
> > > >
> > >
> > > According to
> > > http://archive.netbsd.se/?ml=linux-stable-commits&a=2008-01&m=6134301 ,
> > > its been added to the stable tree. I remember asking Greg to add it.
> >
> > And then Christoph told me to remove it...
>
> No I asked you to add this patch and remove the earlier patch that
> tinkered around with tlb flushing.

Argh, I'm too confused...

As long as everyone is happy with what is currently queued up for
.22-stable and .23-stable, I'll just shut up now and get on releasing
them :)

thanks,

greg k-h
--
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/