On Thu, 3 Jan 2008, Dhaval Giani wrote:

> Yes, no oom even after 20 mins of running (which is double the normal
> time for the oom to occur), also no changes in free lowmem.

Ahhh.. Good then lets redo the patchset the right way (the patch so far 
does not address the ZONE_MOVABLE issues) . Does this patch 
also do the trick?



Quicklists: Only consider memory that can be allocated via 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. These should not be considered for the 
size calculation.

Signed-off-by: Christoph Lameter <[EMAIL PROTECTED]>

Index: linux-2.6/mm/quicklist.c
===================================================================
--- linux-2.6.orig/mm/quicklist.c       2008-01-03 12:22:55.000000000 -0800
+++ linux-2.6/mm/quicklist.c    2008-01-03 13:00:30.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(node)->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);
 }
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to