All of lore.kernel.org
 help / color / mirror / Atom feed
From: Christoph Lameter <clameter@sgi.com>
To: akpm@linux-foundation.org
Cc: linux-mm@kvack.org, Mel Gorman <mel@csn.ul.ie>
Subject: [patch 2/3] Remove GFP_COLD
Date: Mon, 11 Feb 2008 16:36:45 -0800	[thread overview]
Message-ID: <20080212003803.761113538@sgi.com> (raw)
In-Reply-To: 20080212003643.536643832@sgi.com

[-- Attachment #1: hotcold_2 --]
[-- Type: text/plain, Size: 6128 bytes --]

On top of the patch that eliminates the hot/cold distinction:

There is no point in having GFP_COLD if we do not have a hot/cold distinction
in the pcp lists. Remove __GFP_COLD and the use of page_cache_alloc_cold().

Signed-off-by: Christoph Lameter <clameter@sgi.com>

---
 fs/splice.c             |    2 +-
 include/linux/gfp.h     |    1 -
 include/linux/pagemap.h |    5 -----
 include/linux/slab.h    |    3 ---
 kernel/power/snapshot.c |    8 ++++----
 mm/filemap.c            |    6 +++---
 mm/readahead.c          |    2 +-
 7 files changed, 9 insertions(+), 18 deletions(-)

Index: linux-2.6/fs/splice.c
===================================================================
--- linux-2.6.orig/fs/splice.c	2008-02-11 11:03:08.000000000 -0800
+++ linux-2.6/fs/splice.c	2008-02-11 16:18:47.000000000 -0800
@@ -315,7 +315,7 @@ __generic_file_splice_read(struct file *
 			/*
 			 * page didn't exist, allocate one.
 			 */
-			page = page_cache_alloc_cold(mapping);
+			page = page_cache_alloc(mapping);
 			if (!page)
 				break;
 
Index: linux-2.6/include/linux/gfp.h
===================================================================
--- linux-2.6.orig/include/linux/gfp.h	2008-02-11 16:18:36.000000000 -0800
+++ linux-2.6/include/linux/gfp.h	2008-02-11 16:18:47.000000000 -0800
@@ -38,7 +38,6 @@ struct vm_area_struct;
 #define __GFP_HIGH	((__force gfp_t)0x20u)	/* Should access emergency pools? */
 #define __GFP_IO	((__force gfp_t)0x40u)	/* Can start physical IO? */
 #define __GFP_FS	((__force gfp_t)0x80u)	/* Can call down to low-level FS? */
-#define __GFP_COLD	((__force gfp_t)0x100u)	/* Cache-cold page required */
 #define __GFP_NOWARN	((__force gfp_t)0x200u)	/* Suppress page allocation failure warning */
 #define __GFP_REPEAT	((__force gfp_t)0x400u)	/* Retry the allocation.  Might fail */
 #define __GFP_NOFAIL	((__force gfp_t)0x800u)	/* Retry for ever.  Cannot fail */
Index: linux-2.6/include/linux/pagemap.h
===================================================================
--- linux-2.6.orig/include/linux/pagemap.h	2008-01-31 19:06:09.000000000 -0800
+++ linux-2.6/include/linux/pagemap.h	2008-02-11 16:18:47.000000000 -0800
@@ -76,11 +76,6 @@ static inline struct page *page_cache_al
 	return __page_cache_alloc(mapping_gfp_mask(x));
 }
 
-static inline struct page *page_cache_alloc_cold(struct address_space *x)
-{
-	return __page_cache_alloc(mapping_gfp_mask(x)|__GFP_COLD);
-}
-
 typedef int filler_t(void *, struct page *);
 
 extern struct page * find_get_page(struct address_space *mapping,
Index: linux-2.6/include/linux/slab.h
===================================================================
--- linux-2.6.orig/include/linux/slab.h	2008-01-29 18:17:22.000000000 -0800
+++ linux-2.6/include/linux/slab.h	2008-02-11 16:18:47.000000000 -0800
@@ -154,9 +154,6 @@ size_t ksize(const void *);
  * Also it is possible to set different flags by OR'ing
  * in one or more of the following additional @flags:
  *
- * %__GFP_COLD - Request cache-cold pages instead of
- *   trying to return cache-warm pages.
- *
  * %__GFP_HIGH - This allocation has high priority and may use emergency pools.
  *
  * %__GFP_NOFAIL - Indicate that this allocation is in no way allowed to fail
Index: linux-2.6/kernel/power/snapshot.c
===================================================================
--- linux-2.6.orig/kernel/power/snapshot.c	2008-02-07 19:07:05.000000000 -0800
+++ linux-2.6/kernel/power/snapshot.c	2008-02-11 16:18:47.000000000 -0800
@@ -1102,7 +1102,7 @@ static int enough_free_mem(unsigned int 
 
 static inline int get_highmem_buffer(int safe_needed)
 {
-	buffer = get_image_page(GFP_ATOMIC | __GFP_COLD, safe_needed);
+	buffer = get_image_page(GFP_ATOMIC, safe_needed);
 	return buffer ? 0 : -ENOMEM;
 }
 
@@ -1154,11 +1154,11 @@ swsusp_alloc(struct memory_bitmap *orig_
 {
 	int error;
 
-	error = memory_bm_create(orig_bm, GFP_ATOMIC | __GFP_COLD, PG_ANY);
+	error = memory_bm_create(orig_bm, GFP_ATOMIC, PG_ANY);
 	if (error)
 		goto Free;
 
-	error = memory_bm_create(copy_bm, GFP_ATOMIC | __GFP_COLD, PG_ANY);
+	error = memory_bm_create(copy_bm, GFP_ATOMIC, PG_ANY);
 	if (error)
 		goto Free;
 
@@ -1170,7 +1170,7 @@ swsusp_alloc(struct memory_bitmap *orig_
 		nr_pages += alloc_highmem_image_pages(copy_bm, nr_highmem);
 	}
 	while (nr_pages-- > 0) {
-		struct page *page = alloc_image_page(GFP_ATOMIC | __GFP_COLD);
+		struct page *page = alloc_image_page(GFP_ATOMIC);
 
 		if (!page)
 			goto Free;
Index: linux-2.6/mm/readahead.c
===================================================================
--- linux-2.6.orig/mm/readahead.c	2007-11-09 19:30:31.000000000 -0800
+++ linux-2.6/mm/readahead.c	2008-02-11 16:18:47.000000000 -0800
@@ -153,7 +153,7 @@ __do_page_cache_readahead(struct address
 		if (page)
 			continue;
 
-		page = page_cache_alloc_cold(mapping);
+		page = page_cache_alloc(mapping);
 		if (!page)
 			break;
 		page->index = page_offset;
Index: linux-2.6/mm/filemap.c
===================================================================
--- linux-2.6.orig/mm/filemap.c	2008-02-08 13:22:14.000000000 -0800
+++ linux-2.6/mm/filemap.c	2008-02-11 16:18:47.000000000 -0800
@@ -1058,7 +1058,7 @@ no_cached_page:
 		 * Ok, it wasn't cached, so we need to create a new
 		 * page..
 		 */
-		page = page_cache_alloc_cold(mapping);
+		page = page_cache_alloc(mapping);
 		if (!page) {
 			desc->error = -ENOMEM;
 			goto out;
@@ -1285,7 +1285,7 @@ static int page_cache_read(struct file *
 	int ret;
 
 	do {
-		page = page_cache_alloc_cold(mapping);
+		page = page_cache_alloc(mapping);
 		if (!page)
 			return -ENOMEM;
 
@@ -1519,7 +1519,7 @@ static struct page *__read_cache_page(st
 repeat:
 	page = find_get_page(mapping, index);
 	if (!page) {
-		page = page_cache_alloc_cold(mapping);
+		page = page_cache_alloc(mapping);
 		if (!page)
 			return ERR_PTR(-ENOMEM);
 		err = add_to_page_cache_lru(page, mapping, index, GFP_KERNEL);

-- 

--
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>

  parent reply	other threads:[~2008-02-12  0:36 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-02-12  0:36 [patch 0/3] Hotcold removal completion Christoph Lameter
2008-02-12  0:36 ` [patch 1/3] Eliminate the hot/cold distinction in the page allocator Christoph Lameter
2008-02-12  0:36 ` Christoph Lameter [this message]
2008-02-12  0:36 ` [patch 3/3] Remove cold field from pagevec Christoph Lameter
2008-02-12  6:32 ` [patch 0/3] Hotcold removal completion Nick Piggin
2008-02-12  7:57   ` Andrew Morton
2008-02-12 20:12     ` Christoph Lameter

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20080212003803.761113538@sgi.com \
    --to=clameter@sgi.com \
    --cc=akpm@linux-foundation.org \
    --cc=linux-mm@kvack.org \
    --cc=mel@csn.ul.ie \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.