From: Mel Gorman <mgorman@techsingularity.net>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: Johannes Weiner <hannes@cmpxchg.org>,
Minchan Kim <minchan@kernel.org>, Michal Hocko <mhocko@suse.cz>,
Vlastimil Babka <vbabka@suse.cz>, Linux-MM <linux-mm@kvack.org>,
LKML <linux-kernel@vger.kernel.org>,
Mel Gorman <mgorman@techsingularity.net>
Subject: [PATCH 1/5] mm, vmscan: Do not account skipped pages as scanned
Date: Wed, 20 Jul 2016 16:21:47 +0100 [thread overview]
Message-ID: <1469028111-1622-2-git-send-email-mgorman@techsingularity.net> (raw)
In-Reply-To: <1469028111-1622-1-git-send-email-mgorman@techsingularity.net>
Page reclaim determines whether a pgdat is unreclaimable by examining how
many pages have been scanned since a page was freed and comparing that
to the LRU sizes. Skipped pages are not considered reclaim candidates but
contribute to scanned. This can prematurely mark a pgdat as unreclaimable
and trigger an OOM kill.
While this does not fix an OOM kill message reported by Joonsoo Kim,
it did stop pgdat being marked unreclaimable.
Signed-off-by: Mel Gorman <mgorman@techsingularity.net>
---
mm/vmscan.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/mm/vmscan.c b/mm/vmscan.c
index 22aec2bcfeec..b16d578ce556 100644
--- a/mm/vmscan.c
+++ b/mm/vmscan.c
@@ -1415,7 +1415,7 @@ static unsigned long isolate_lru_pages(unsigned long nr_to_scan,
LIST_HEAD(pages_skipped);
for (scan = 0; scan < nr_to_scan && nr_taken < nr_to_scan &&
- !list_empty(src); scan++) {
+ !list_empty(src);) {
struct page *page;
page = lru_to_page(src);
@@ -1429,6 +1429,9 @@ static unsigned long isolate_lru_pages(unsigned long nr_to_scan,
continue;
}
+ /* Pages skipped do not contribute to scan */
+ scan++;
+
switch (__isolate_lru_page(page, mode)) {
case 0:
nr_pages = hpage_nr_pages(page);
--
2.6.4
--
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>
WARNING: multiple messages have this Message-ID (diff)
From: Mel Gorman <mgorman@techsingularity.net>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: Johannes Weiner <hannes@cmpxchg.org>,
Minchan Kim <minchan@kernel.org>, Michal Hocko <mhocko@suse.cz>,
Vlastimil Babka <vbabka@suse.cz>, Linux-MM <linux-mm@kvack.org>,
LKML <linux-kernel@vger.kernel.org>,
Mel Gorman <mgorman@techsingularity.net>
Subject: [PATCH 1/5] mm, vmscan: Do not account skipped pages as scanned
Date: Wed, 20 Jul 2016 16:21:47 +0100 [thread overview]
Message-ID: <1469028111-1622-2-git-send-email-mgorman@techsingularity.net> (raw)
In-Reply-To: <1469028111-1622-1-git-send-email-mgorman@techsingularity.net>
Page reclaim determines whether a pgdat is unreclaimable by examining how
many pages have been scanned since a page was freed and comparing that
to the LRU sizes. Skipped pages are not considered reclaim candidates but
contribute to scanned. This can prematurely mark a pgdat as unreclaimable
and trigger an OOM kill.
While this does not fix an OOM kill message reported by Joonsoo Kim,
it did stop pgdat being marked unreclaimable.
Signed-off-by: Mel Gorman <mgorman@techsingularity.net>
---
mm/vmscan.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/mm/vmscan.c b/mm/vmscan.c
index 22aec2bcfeec..b16d578ce556 100644
--- a/mm/vmscan.c
+++ b/mm/vmscan.c
@@ -1415,7 +1415,7 @@ static unsigned long isolate_lru_pages(unsigned long nr_to_scan,
LIST_HEAD(pages_skipped);
for (scan = 0; scan < nr_to_scan && nr_taken < nr_to_scan &&
- !list_empty(src); scan++) {
+ !list_empty(src);) {
struct page *page;
page = lru_to_page(src);
@@ -1429,6 +1429,9 @@ static unsigned long isolate_lru_pages(unsigned long nr_to_scan,
continue;
}
+ /* Pages skipped do not contribute to scan */
+ scan++;
+
switch (__isolate_lru_page(page, mode)) {
case 0:
nr_pages = hpage_nr_pages(page);
--
2.6.4
next prev parent reply other threads:[~2016-07-20 15:21 UTC|newest]
Thread overview: 48+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-07-20 15:21 [PATCH 0/5] Candidate fixes for premature OOM kills with node-lru v1 Mel Gorman
2016-07-20 15:21 ` Mel Gorman
2016-07-20 15:21 ` Mel Gorman [this message]
2016-07-20 15:21 ` [PATCH 1/5] mm, vmscan: Do not account skipped pages as scanned Mel Gorman
2016-07-21 5:16 ` Minchan Kim
2016-07-21 5:16 ` Minchan Kim
2016-07-21 8:15 ` Mel Gorman
2016-07-21 8:15 ` Mel Gorman
2016-07-21 8:31 ` Minchan Kim
2016-07-21 8:31 ` Minchan Kim
2016-07-25 8:04 ` Minchan Kim
2016-07-25 8:04 ` Minchan Kim
2016-07-25 9:20 ` Mel Gorman
2016-07-25 9:20 ` Mel Gorman
2016-07-28 1:38 ` Minchan Kim
2016-07-28 1:38 ` Minchan Kim
2016-07-20 15:21 ` [PATCH 2/5] mm: add per-zone lru list stat Mel Gorman
2016-07-20 15:21 ` Mel Gorman
2016-07-21 7:10 ` Joonsoo Kim
2016-07-21 7:10 ` Joonsoo Kim
2016-07-23 0:45 ` Fengguang Wu
2016-07-23 0:45 ` Fengguang Wu
2016-07-23 1:25 ` Minchan Kim
2016-07-23 1:25 ` Minchan Kim
2016-07-20 15:21 ` [PATCH 3/5] mm, vmscan: Remove highmem_file_pages Mel Gorman
2016-07-20 15:21 ` Mel Gorman
2016-07-20 15:21 ` [PATCH 4/5] mm: Remove reclaim and compaction retry approximations Mel Gorman
2016-07-20 15:21 ` Mel Gorman
2016-07-20 15:21 ` [PATCH 5/5] mm: consider per-zone inactive ratio to deactivate Mel Gorman
2016-07-20 15:21 ` Mel Gorman
2016-07-21 5:30 ` Minchan Kim
2016-07-21 5:30 ` Minchan Kim
2016-07-21 8:08 ` Mel Gorman
2016-07-21 8:08 ` Mel Gorman
2016-07-21 7:10 ` Joonsoo Kim
2016-07-21 7:10 ` Joonsoo Kim
2016-07-21 8:16 ` Mel Gorman
2016-07-21 8:16 ` Mel Gorman
2016-07-21 7:07 ` [PATCH 0/5] Candidate fixes for premature OOM kills with node-lru v1 Minchan Kim
2016-07-21 7:07 ` Minchan Kim
2016-07-21 9:15 ` Mel Gorman
2016-07-21 9:15 ` Mel Gorman
2016-07-21 7:31 ` Joonsoo Kim
2016-07-21 7:31 ` Joonsoo Kim
2016-07-21 8:39 ` Minchan Kim
2016-07-21 8:39 ` Minchan Kim
2016-07-21 9:16 ` Mel Gorman
2016-07-21 9:16 ` Mel Gorman
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=1469028111-1622-2-git-send-email-mgorman@techsingularity.net \
--to=mgorman@techsingularity.net \
--cc=akpm@linux-foundation.org \
--cc=hannes@cmpxchg.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mhocko@suse.cz \
--cc=minchan@kernel.org \
--cc=vbabka@suse.cz \
/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.