mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [2.6.22.y #2] quicklists: Only consider memory that can be used with GFP_KERNEL
       [not found] <6101e8c40802170918x69a98d96n6c13e2c23f28acfb@mail.gmail.com>
@ 2008-02-18 20:01 ` Oliver Pinter
  0 siblings, 0 replies; only message in thread
From: Oliver Pinter @ 2008-02-18 20:01 UTC (permalink / raw)
  To: Linux Kernel, stable, stable-commits
  Cc: Oliver Pinter, Adrian Bunk, Greg KH, Justin Forbes,
	Zwane Mwaikambo, Theodore Ts'o, Randy. Dunlap, Chuck Wolber,
	Dave Jones, Chris Wedgwood, Michael Krufky, Chuck Ebbert,
	Domenico Andreoli, Christoph Lameter, Dhaval Giani,
	Andrew Morton, chrisw

 From fcae8056673aa7b5b55d669fe5255ae76a93ae53 Mon Sep 17 00:00:00 2001
 From: Christoph Lameter <clameter@sgi.com>
 Date: Wed, 16 Jan 2008 00:21:19 +0530
 Subject: [PATCH] quicklists: Only consider memory that can be used
 with GFP_KERNEL
 
 patch 96990a4ae979df9e235d01097d6175759331e88c in mainline.
 
 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>
 Tested-by: Dhaval Giani <dhaval@linux.vnet.ibm.com>
 Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
 Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
 Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
 Signed-off-by: Oliver Pinter <oliver.pntr@gmail.com>
 
 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);
  }
 
 
 -- 
 Thanks,
 Oliver

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2008-02-18 20:01 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <6101e8c40802170918x69a98d96n6c13e2c23f28acfb@mail.gmail.com>
2008-02-18 20:01 ` [2.6.22.y #2] quicklists: Only consider memory that can be used with GFP_KERNEL Oliver Pinter

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®