linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 2/5]memhp: exclude isolated page from pco page alloc
@ 2009-06-29  1:47 Shaohua Li
  0 siblings, 0 replies; only message in thread
From: Shaohua Li @ 2009-06-29  1:47 UTC (permalink / raw)
  To: lkml, linux-mm; +Cc: Andrew Morton, cl

pages marked as isolated should not be allocated again. If such
pages reside in pcp list, they can be allocated too, so there is
a ping-pong memory offline frees some pages to pcp list and the
pages get allocated and then memory offline frees them again,
this loop will happen again and again.

This should have no impact in normal code path, because in normal
code path, pages in pcp list aren't isolated, and below loop will
break in the first entry.

Signed-off-by: Shaohua Li <shaohua.li@intel.com>
---
 mm/page_alloc.c |   11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

Index: linux/mm/page_alloc.c
===================================================================
--- linux.orig/mm/page_alloc.c	2009-06-26 09:41:10.000000000 +0800
+++ linux/mm/page_alloc.c	2009-06-26 09:44:07.000000000 +0800
@@ -1137,9 +1137,18 @@ again:
 
 		/* Allocate more to the pcp list if necessary */
 		if (unlikely(&page->lru == &pcp->list)) {
+			int get_one_page = 0;
 			pcp->count += rmqueue_bulk(zone, 0,
 					pcp->batch, &pcp->list, migratetype);
-			page = list_entry(pcp->list.next, struct page, lru);
+			list_for_each_entry(page, &pcp->list, lru) {
+				if (get_pageblock_migratetype(page) !=
+				    MIGRATE_ISOLATE) {
+					get_one_page = 1;
+					break;
+				}
+			}
+			if (!get_one_page)
+				goto failed;
 		}
 
 		list_del(&page->lru);


--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

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

only message in thread, other threads:[~2009-06-29  1:45 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-06-29  1:47 [PATCH 2/5]memhp: exclude isolated page from pco page alloc Shaohua Li

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