Re: 2.6.22-stable causes oomkiller to be invoked

!MAILaRCHIVE_VOTE_RePLACE
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
To: Dhaval Giani <dhaval@...>
Cc: Andrew Morton <akpm@...>, <htejun@...>, Srivatsa Vaddagiri <vatsa@...>, Balbir Singh <balbir@...>, <maneesh@...>, lkml <linux-kernel@...>, <linux-mm@...>
Date: Monday, January 7, 2008 - 4:04 pm

Here is the cleaned version of the patch. Dhaval is testing it.


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@sgi.com>

Index: linux-2.6/mm/quicklist.c
===================================================================
--- linux-2.6.orig/mm/quicklist.c	2008-01-07 10:38:13.000000000 -0800
+++ linux-2.6/mm/quicklist.c	2008-01-07 10:38:44.000000000 -0800
@@ -26,9 +26,17 @@ DEFINE_PER_CPU(struct quicklist, quickli
 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);
 }
--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
Re: 2.6.22-stable causes oomkiller to be invoked, Dhaval Giani, (Fri Dec 21, 12:45 am)
Re: 2.6.22-stable causes oomkiller to be invoked, Christoph Lameter, (Wed Dec 26, 5:01 pm)
Re: 2.6.22-stable causes oomkiller to be invoked, Ingo Molnar, (Sun Dec 30, 10:01 am)
Re: 2.6.22-stable causes oomkiller to be invoked, Christoph Lameter, (Wed Jan 2, 4:48 pm)
Re: 2.6.22-stable causes oomkiller to be invoked, Dhaval Giani, (Sun Dec 30, 3:24 pm)
Re: 2.6.22-stable causes oomkiller to be invoked, Dhaval Giani, (Fri Dec 28, 6:11 am)
Re: 2.6.22-stable causes oomkiller to be invoked, Christoph Lameter, (Wed Jan 2, 4:45 pm)
Re: 2.6.22-stable causes oomkiller to be invoked, Christoph Lameter, (Wed Jan 2, 5:54 pm)
Re: 2.6.22-stable causes oomkiller to be invoked, Dhaval Giani, (Wed Jan 2, 11:59 pm)
Re: 2.6.22-stable causes oomkiller to be invoked, Dhaval Giani, (Thu Jan 3, 12:16 am)
Re: 2.6.22-stable causes oomkiller to be invoked, Christoph Lameter, (Thu Jan 3, 5:04 pm)
Re: 2.6.22-stable causes oomkiller to be invoked, Christoph Lameter, (Mon Jan 7, 4:04 pm)
Re: 2.6.22-stable causes oomkiller to be invoked, Dhaval Giani, (Tue Jan 8, 12:33 am)