linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
* [RFC][PATCH] mm: the page of MIGRATE_RESERVE don't insert into pcp
@ 2008-11-06  0:16 KOSAKI Motohiro
  2008-11-06 14:56 ` Christoph Lameter
  2008-11-06 16:46 ` Mel Gorman
  0 siblings, 2 replies; 17+ messages in thread
From: KOSAKI Motohiro @ 2008-11-06  0:16 UTC (permalink / raw)
  To: LKML, Christoph Lameter, Mel Gorman, linux-mm; +Cc: kosaki.motohiro

MIGRATE_RESERVE mean that the page is for emergency.
So it shouldn't be cached in pcp.

otherwise, the system have unnecessary memory starvation risk
because other cpu can't use this emergency pages.



Signed-off-by: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
CC: Mel Gorman <mel@csn.ul.ie>
CC: Christoph Lameter <cl@linux-foundation.org>

---
 mm/page_alloc.c |   12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

Index: b/mm/page_alloc.c
===================================================================
--- a/mm/page_alloc.c	2008-11-06 06:01:15.000000000 +0900
+++ b/mm/page_alloc.c	2008-11-06 06:27:41.000000000 +0900
@@ -1002,6 +1002,7 @@ static void free_hot_cold_page(struct pa
 	struct zone *zone = page_zone(page);
 	struct per_cpu_pages *pcp;
 	unsigned long flags;
+	int migratetype = get_pageblock_migratetype(page);
 
 	if (PageAnon(page))
 		page->mapping = NULL;
@@ -1018,16 +1019,25 @@ static void free_hot_cold_page(struct pa
 	pcp = &zone_pcp(zone, get_cpu())->pcp;
 	local_irq_save(flags);
 	__count_vm_event(PGFREE);
+
+	set_page_private(page, migratetype);
+
+	/* the page for emergency shouldn't be cached */
+	if (migratetype == MIGRATE_RESERVE) {
+		free_one_page(zone, page, 0);
+		goto out;
+	}
 	if (cold)
 		list_add_tail(&page->lru, &pcp->list);
 	else
 		list_add(&page->lru, &pcp->list);
-	set_page_private(page, get_pageblock_migratetype(page));
 	pcp->count++;
 	if (pcp->count >= pcp->high) {
 		free_pages_bulk(zone, pcp->batch, &pcp->list, 0);
 		pcp->count -= pcp->batch;
 	}
+
+out:
 	local_irq_restore(flags);
 	put_cpu();
 }


--
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] 17+ messages in thread

end of thread, other threads:[~2008-12-11 15:39 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-11-06  0:16 [RFC][PATCH] mm: the page of MIGRATE_RESERVE don't insert into pcp KOSAKI Motohiro
2008-11-06 14:56 ` Christoph Lameter
2008-11-06 16:46 ` Mel Gorman
2008-11-07  1:42   ` KAMEZAWA Hiroyuki
2008-11-07 10:42     ` Mel Gorman
2008-11-07 11:02       ` KAMEZAWA Hiroyuki
2008-11-07 11:27         ` Mel Gorman
2008-11-07 18:45           ` Christoph Lameter
2008-11-11  8:13             ` KOSAKI Motohiro
2008-12-05 15:40             ` Mel Gorman
2008-12-07  8:22               ` KOSAKI Motohiro
2008-12-11 15:39                 ` Mel Gorman
2008-11-07  4:37   ` KOSAKI Motohiro
2008-11-07 10:47     ` Mel Gorman
2008-11-11 13:39       ` KOSAKI Motohiro
2008-11-11 14:42         ` Mel Gorman
2008-11-14  4:31           ` KOSAKI Motohiro

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