summaryrefslogtreecommitdiffstats
path: root/mm/vmstat.c
diff options
context:
space:
mode:
authorMichal Hocko <mhocko@suse.com>2017-07-06 18:38:07 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2017-07-06 19:24:32 -0400
commitd336e94e448a514607551026f0624329b6af52c5 (patch)
treedcba2b517de9f770a3d2a4cd115c10647f7759ff /mm/vmstat.c
parent2ce13640b3f4c8721e6820476cb380fbbfaedc18 (diff)
mm, vmstat: skip reporting offline pages in pagetypeinfo
pagetypeinfo_showblockcount_print skips over invalid pfns but it would report pages which are offline because those have a valid pfn. Their migrate type is misleading at best. Now that we have pfn_to_online_page() we can use it instead of pfn_valid() and fix this. [mhocko@suse.com: fix build] Link: http://lkml.kernel.org/r/20170519072225.GA13041@dhcp22.suse.cz Link: http://lkml.kernel.org/r/20170515085827.16474-11-mhocko@kernel.org Signed-off-by: Michal Hocko <mhocko@suse.com> Reported-by: Joonsoo Kim <js1304@gmail.com> Acked-by: Vlastimil Babka <vbabka@suse.cz> Cc: Andi Kleen <ak@linux.intel.com> Cc: Andrea Arcangeli <aarcange@redhat.com> Cc: Balbir Singh <bsingharora@gmail.com> Cc: Dan Williams <dan.j.williams@intel.com> Cc: Daniel Kiper <daniel.kiper@oracle.com> Cc: David Rientjes <rientjes@google.com> Cc: Heiko Carstens <heiko.carstens@de.ibm.com> Cc: Igor Mammedov <imammedo@redhat.com> Cc: Jerome Glisse <jglisse@redhat.com> Cc: Martin Schwidefsky <schwidefsky@de.ibm.com> Cc: Mel Gorman <mgorman@suse.de> Cc: Reza Arbab <arbab@linux.vnet.ibm.com> Cc: Tobias Regnery <tobias.regnery@gmail.com> Cc: Toshi Kani <toshi.kani@hpe.com> Cc: Vitaly Kuznetsov <vkuznets@redhat.com> Cc: Vlastimil Babka <vbabka@suse.cz> Cc: Xishi Qiu <qiuxishi@huawei.com> Cc: Yasuaki Ishimatsu <isimatu.yasuaki@jp.fujitsu.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'mm/vmstat.c')
-rw-r--r--mm/vmstat.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/mm/vmstat.c b/mm/vmstat.c
index 571d3ec05566..6dae6b240b21 100644
--- a/mm/vmstat.c
+++ b/mm/vmstat.c
@@ -1223,11 +1223,10 @@ static void pagetypeinfo_showblockcount_print(struct seq_file *m,
1223 for (pfn = start_pfn; pfn < end_pfn; pfn += pageblock_nr_pages) { 1223 for (pfn = start_pfn; pfn < end_pfn; pfn += pageblock_nr_pages) {
1224 struct page *page; 1224 struct page *page;
1225 1225
1226 if (!pfn_valid(pfn)) 1226 page = pfn_to_online_page(pfn);
1227 if (!page)
1227 continue; 1228 continue;
1228 1229
1229 page = pfn_to_page(pfn);
1230
1231 /* Watch for unexpected holes punched in the memmap */ 1230 /* Watch for unexpected holes punched in the memmap */
1232 if (!memmap_valid_within(pfn, page, zone)) 1231 if (!memmap_valid_within(pfn, page, zone))
1233 continue; 1232 continue;