From: Wu Fengguang <fengguang.wu@intel.com>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: Dave Young <hidave.darkstar@gmail.com>,
linux-mm <linux-mm@kvack.org>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
Minchan Kim <minchan.kim@gmail.com>,
KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>,
Mel Gorman <mel@linux.vnet.ibm.com>
Subject: [PATCH] mm: readahead page allocations are OK to fail
Date: Tue, 26 Apr 2011 17:37:17 +0800 [thread overview]
Message-ID: <20110426093717.GA28812@localhost> (raw)
In-Reply-To: <BANLkTin8mE=DLWma=U+CdJaQW03X2M2W1w@mail.gmail.com>
Pass __GFP_NORETRY|__GFP_NOWARN for readahead page allocations.
readahead page allocations are completely optional. They are OK to
fail and in particular shall not trigger OOM on themselves.
Reported-by: Dave Young <hidave.darkstar@gmail.com>
Reviewed-by: Minchan Kim <minchan.kim@gmail.com>
Reviewed-by: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
Signed-off-by: Wu Fengguang <fengguang.wu@intel.com>
---
include/linux/pagemap.h | 6 ++++++
mm/readahead.c | 2 +-
2 files changed, 7 insertions(+), 1 deletion(-)
--- linux-next.orig/include/linux/pagemap.h 2011-04-26 14:27:46.000000000 +0800
+++ linux-next/include/linux/pagemap.h 2011-04-26 17:17:13.000000000 +0800
@@ -219,6 +219,12 @@ static inline struct page *page_cache_al
return __page_cache_alloc(mapping_gfp_mask(x)|__GFP_COLD);
}
+static inline struct page *page_cache_alloc_readahead(struct address_space *x)
+{
+ return __page_cache_alloc(mapping_gfp_mask(x) |
+ __GFP_COLD | __GFP_NORETRY | __GFP_NOWARN);
+}
+
typedef int filler_t(void *, struct page *);
extern struct page * find_get_page(struct address_space *mapping,
--- linux-next.orig/mm/readahead.c 2011-04-26 14:27:02.000000000 +0800
+++ linux-next/mm/readahead.c 2011-04-26 17:17:25.000000000 +0800
@@ -180,7 +180,7 @@ __do_page_cache_readahead(struct address
if (page)
continue;
- page = page_cache_alloc_cold(mapping);
+ page = page_cache_alloc_readahead(mapping);
if (!page)
break;
page->index = page_offset;
WARNING: multiple messages have this Message-ID (diff)
From: Wu Fengguang <fengguang.wu@intel.com>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: Dave Young <hidave.darkstar@gmail.com>,
linux-mm <linux-mm@kvack.org>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
Minchan Kim <minchan.kim@gmail.com>,
KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>,
Mel Gorman <mel@linux.vnet.ibm.com>
Subject: [PATCH] mm: readahead page allocations are OK to fail
Date: Tue, 26 Apr 2011 17:37:17 +0800 [thread overview]
Message-ID: <20110426093717.GA28812@localhost> (raw)
In-Reply-To: <BANLkTin8mE=DLWma=U+CdJaQW03X2M2W1w@mail.gmail.com>
Pass __GFP_NORETRY|__GFP_NOWARN for readahead page allocations.
readahead page allocations are completely optional. They are OK to
fail and in particular shall not trigger OOM on themselves.
Reported-by: Dave Young <hidave.darkstar@gmail.com>
Reviewed-by: Minchan Kim <minchan.kim@gmail.com>
Reviewed-by: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
Signed-off-by: Wu Fengguang <fengguang.wu@intel.com>
---
include/linux/pagemap.h | 6 ++++++
mm/readahead.c | 2 +-
2 files changed, 7 insertions(+), 1 deletion(-)
--- linux-next.orig/include/linux/pagemap.h 2011-04-26 14:27:46.000000000 +0800
+++ linux-next/include/linux/pagemap.h 2011-04-26 17:17:13.000000000 +0800
@@ -219,6 +219,12 @@ static inline struct page *page_cache_al
return __page_cache_alloc(mapping_gfp_mask(x)|__GFP_COLD);
}
+static inline struct page *page_cache_alloc_readahead(struct address_space *x)
+{
+ return __page_cache_alloc(mapping_gfp_mask(x) |
+ __GFP_COLD | __GFP_NORETRY | __GFP_NOWARN);
+}
+
typedef int filler_t(void *, struct page *);
extern struct page * find_get_page(struct address_space *mapping,
--- linux-next.orig/mm/readahead.c 2011-04-26 14:27:02.000000000 +0800
+++ linux-next/mm/readahead.c 2011-04-26 17:17:25.000000000 +0800
@@ -180,7 +180,7 @@ __do_page_cache_readahead(struct address
if (page)
continue;
- page = page_cache_alloc_cold(mapping);
+ page = page_cache_alloc_readahead(mapping);
if (!page)
break;
page->index = page_offset;
--
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/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
next prev parent reply other threads:[~2011-04-26 9:37 UTC|newest]
Thread overview: 84+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-04-26 5:49 readahead and oom Dave Young
2011-04-26 5:49 ` Dave Young
2011-04-26 5:55 ` Wu Fengguang
2011-04-26 5:55 ` Wu Fengguang
2011-04-26 6:05 ` Dave Young
2011-04-26 6:05 ` Dave Young
2011-04-26 6:07 ` Dave Young
2011-04-26 6:07 ` Dave Young
2011-04-26 6:25 ` Wu Fengguang
2011-04-26 6:25 ` Wu Fengguang
2011-04-26 6:29 ` Dave Young
2011-04-26 6:29 ` Dave Young
2011-04-26 6:34 ` Wu Fengguang
2011-04-26 6:34 ` Wu Fengguang
2011-04-26 6:50 ` KOSAKI Motohiro
2011-04-26 6:50 ` KOSAKI Motohiro
2011-04-26 7:41 ` Minchan Kim
2011-04-26 7:41 ` Minchan Kim
2011-04-26 9:20 ` Wu Fengguang
2011-04-26 9:20 ` Wu Fengguang
2011-04-26 9:28 ` Minchan Kim
2011-04-26 9:28 ` Minchan Kim
2011-04-26 10:18 ` Pekka Enberg
2011-04-26 10:18 ` Pekka Enberg
2011-04-26 19:47 ` Andrew Morton
2011-04-26 19:47 ` Andrew Morton
2011-04-28 4:19 ` Wu Fengguang
2011-04-28 13:36 ` [RFC][PATCH] mm: cut down __GFP_NORETRY page allocation failures Wu Fengguang
2011-04-28 13:36 ` Wu Fengguang
2011-04-28 13:38 ` [patch] vmstat: account " Wu Fengguang
2011-04-28 13:38 ` Wu Fengguang
2011-04-28 13:50 ` KOSAKI Motohiro
2011-04-28 13:50 ` KOSAKI Motohiro
2011-04-29 2:28 ` [RFC][PATCH] mm: cut down __GFP_NORETRY " Wu Fengguang
2011-04-29 2:28 ` Wu Fengguang
2011-04-29 2:58 ` Wu Fengguang
2011-04-29 2:58 ` Wu Fengguang
2011-04-30 14:17 ` Wu Fengguang
2011-04-30 14:17 ` Wu Fengguang
2011-05-01 16:35 ` Minchan Kim
2011-05-01 16:35 ` Minchan Kim
2011-05-01 16:37 ` Minchan Kim
2011-05-01 16:37 ` Minchan Kim
2011-05-02 10:14 ` KOSAKI Motohiro
2011-05-02 10:14 ` KOSAKI Motohiro
2011-05-03 0:53 ` Minchan Kim
2011-05-03 0:53 ` Minchan Kim
2011-05-03 1:25 ` KOSAKI Motohiro
2011-05-03 1:25 ` KOSAKI Motohiro
2011-05-02 10:29 ` Wu Fengguang
2011-05-02 11:08 ` Wu Fengguang
2011-05-02 11:08 ` Wu Fengguang
2011-05-03 0:49 ` Minchan Kim
2011-05-03 0:49 ` Minchan Kim
2011-05-03 3:51 ` Wu Fengguang
2011-05-03 3:51 ` Wu Fengguang
2011-05-03 4:17 ` Minchan Kim
2011-05-03 4:17 ` Minchan Kim
2011-05-02 13:29 ` Wu Fengguang
2011-05-02 13:29 ` Wu Fengguang
2011-05-02 13:49 ` Wu Fengguang
2011-05-02 13:49 ` Wu Fengguang
2011-05-03 0:27 ` Satoru Moriya
2011-05-03 0:27 ` Satoru Moriya
2011-05-03 2:49 ` Wu Fengguang
2011-05-03 2:49 ` Wu Fengguang
2011-05-04 1:56 ` Dave Young
2011-05-04 1:56 ` Dave Young
2011-05-04 2:32 ` Dave Young
2011-05-04 2:32 ` Dave Young
2011-05-04 2:56 ` Wu Fengguang
2011-05-04 2:56 ` Wu Fengguang
2011-05-04 4:23 ` Wu Fengguang
2011-05-04 4:23 ` Wu Fengguang
2011-05-04 4:00 ` Wu Fengguang
2011-05-04 4:00 ` Wu Fengguang
2011-05-04 7:33 ` Dave Young
2011-05-04 7:33 ` Dave Young
2011-04-26 6:13 ` readahead and oom Wu Fengguang
2011-04-26 6:13 ` Wu Fengguang
2011-04-26 6:23 ` Dave Young
2011-04-26 6:23 ` Dave Young
2011-04-26 9:37 ` Wu Fengguang [this message]
2011-04-26 9:37 ` [PATCH] mm: readahead page allocations are OK to fail Wu Fengguang
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=20110426093717.GA28812@localhost \
--to=fengguang.wu@intel.com \
--cc=akpm@linux-foundation.org \
--cc=hidave.darkstar@gmail.com \
--cc=kosaki.motohiro@jp.fujitsu.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mel@linux.vnet.ibm.com \
--cc=minchan.kim@gmail.com \
/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.