* [PATCH 19/25] mm, vmscan: Account in vmstat for pages skipped during reclaim
2015-06-08 13:56 [RFC PATCH 00/25] Move LRU page reclaim from zones to nodes Mel Gorman
@ 2015-06-08 13:56 ` Mel Gorman
0 siblings, 0 replies; 2+ messages in thread
From: Mel Gorman @ 2015-06-08 13:56 UTC (permalink / raw)
To: Linux-MM; +Cc: Rik van Riel, Johannes Weiner, Michal Hocko, LKML, Mel Gorman
Low reclaim efficiency occurs when many pages are scanned that cannot
be reclaimed. This occurs for example when pages are dirty or under
writeback. Node-based LRU reclaim introduces a new source as reclaim
for allocation requests requiring lower zones will skip pages belonging
to higher zones. This patch adds vmstat counters to count pages that
were skipped because the calling context could not use pages from that
zone. It will help distinguish one source of low reclaim efficiency.
Signed-off-by: Mel Gorman <mgorman@suse.de>
---
include/linux/vm_event_item.h | 1 +
mm/vmscan.c | 6 +++++-
mm/vmstat.c | 2 ++
3 files changed, 8 insertions(+), 1 deletion(-)
diff --git a/include/linux/vm_event_item.h b/include/linux/vm_event_item.h
index 4ce4d59d361e..95cdd56c65bf 100644
--- a/include/linux/vm_event_item.h
+++ b/include/linux/vm_event_item.h
@@ -25,6 +25,7 @@ enum vm_event_item { PGPGIN, PGPGOUT, PSWPIN, PSWPOUT,
FOR_ALL_ZONES(PGALLOC),
PGFREE, PGACTIVATE, PGDEACTIVATE,
PGFAULT, PGMAJFAULT,
+ FOR_ALL_ZONES(PGSCAN_SKIP),
PGREFILL,
PGSTEAL_KSWAPD,
PGSTEAL_DIRECT,
diff --git a/mm/vmscan.c b/mm/vmscan.c
index 69916bb9acba..3cb0cc70ddbd 100644
--- a/mm/vmscan.c
+++ b/mm/vmscan.c
@@ -1326,6 +1326,7 @@ static unsigned long isolate_lru_pages(unsigned long nr_to_scan,
for (scan = 0; scan < nr_to_scan && !list_empty(src); scan++) {
struct page *page;
+ struct zone *zone;
int nr_pages;
page = lru_to_page(src);
@@ -1333,8 +1334,11 @@ static unsigned long isolate_lru_pages(unsigned long nr_to_scan,
VM_BUG_ON_PAGE(!PageLRU(page), page);
- if (page_zone_id(page) > sc->reclaim_idx)
+ zone = page_zone(page);
+ if (page_zone_id(page) > sc->reclaim_idx) {
list_move(&page->lru, &pages_skipped);
+ __count_zone_vm_events(PGSCAN_SKIP, page_zone(page), 1);
+ }
switch (__isolate_lru_page(page, mode)) {
case 0:
diff --git a/mm/vmstat.c b/mm/vmstat.c
index 4a9f73c4140b..d805df47d3ae 100644
--- a/mm/vmstat.c
+++ b/mm/vmstat.c
@@ -957,6 +957,8 @@ const char * const vmstat_text[] = {
"pgfault",
"pgmajfault",
+ TEXTS_FOR_ZONES("pgskip")
+
"pgrefill",
"pgsteal_kswapd",
"pgsteal_direct",
--
2.3.5
--
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 related [flat|nested] 2+ messages in thread
* Re: [PATCH 19/25] mm, vmscan: Account in vmstat for pages skipped during reclaim
@ 2015-06-12 8:49 Hillf Danton
0 siblings, 0 replies; 2+ messages in thread
From: Hillf Danton @ 2015-06-12 8:49 UTC (permalink / raw)
To: Mel Gorman
Cc: linux-mm, linux-kernel, Rik van Riel, Johannes Weiner,
Michal Hocko
> --- a/mm/vmscan.c
> +++ b/mm/vmscan.c
> @@ -1326,6 +1326,7 @@ static unsigned long isolate_lru_pages(unsigned long nr_to_scan,
>
> for (scan = 0; scan < nr_to_scan && !list_empty(src); scan++) {
> struct page *page;
> + struct zone *zone;
> int nr_pages;
>
> page = lru_to_page(src);
> @@ -1333,8 +1334,11 @@ static unsigned long isolate_lru_pages(unsigned long nr_to_scan,
>
> VM_BUG_ON_PAGE(!PageLRU(page), page);
>
> - if (page_zone_id(page) > sc->reclaim_idx)
> + zone = page_zone(page);
> + if (page_zone_id(page) > sc->reclaim_idx) {
> list_move(&page->lru, &pages_skipped);
> + __count_zone_vm_events(PGSCAN_SKIP, page_zone(page), 1);
> + }
The newly added zone is not used.
>
> switch (__isolate_lru_page(page, mode)) {
> case 0:
--
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] 2+ messages in thread
end of thread, other threads:[~2015-06-12 8:50 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-06-12 8:49 [PATCH 19/25] mm, vmscan: Account in vmstat for pages skipped during reclaim Hillf Danton
-- strict thread matches above, loose matches on Subject: below --
2015-06-08 13:56 [RFC PATCH 00/25] Move LRU page reclaim from zones to nodes Mel Gorman
2015-06-08 13:56 ` [PATCH 19/25] mm, vmscan: Account in vmstat for pages skipped during reclaim Mel Gorman
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).