lkml.org 
[lkml]   [2008]   [Jan]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
SubjectRe: 2.6.22-stable causes oomkiller to be invoked
Just traced it again on my system: It is okay for the number of pages on 
the quicklist to reach the high count that we see (although the 16 bit
limits are weird. You have around 4GB of memory in the system?). Up to
1/16th of free memory of a node can be allocated for quicklists (this
allows the effective shutting down and restarting of large amounts of
processes)

The problem may be that this is run on a HIGHMEM system and the
calculation of allowable pages on the quicklists does not take into
account that highmem pages are not usable for quicklists (not sure about
ZONE_MOVABLE on i386. Maybe we need to take that into account as well?)

Here is a patch that removes the HIGHMEM portion from the calculation.
Does this change anything:

Index: linux-2.6/mm/quicklist.c
===================================================================
--- linux-2.6.orig/mm/quicklist.c 2008-01-02 13:41:10.000000000 -0800
+++ linux-2.6/mm/quicklist.c 2008-01-02 13:44:15.000000000 -0800
@@ -29,6 +29,12 @@ static unsigned long max_pages(unsigned

node_free_pages = node_page_state(numa_node_id(),
NR_FREE_PAGES);
+#ifdef CONFIG_HIGHMEM
+ /* Take HIGHMEM pages out of consideration */
+ node_free_pages -= zone_page_state(&NODE_DATA(numa_node_id())->node_zones[ZONE_HIGHMEM],
+ NR_FREE_PAGES);
+#endif
+
max = node_free_pages / FRACTION_OF_NODE_MEM;
return max(max, min_pages);
}

\
 
 \ /
  Last update: 2008-01-02 22:57    [W:0.263 / U:0.016 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site