Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1574922

[PATCH] mm/page_alloc: return 0 in case this node has no page within the zone

From Wei Yang <richard.weiyang@gmail.com>
Newsgroups linux.kernel
Subject [PATCH] mm/page_alloc: return 0 in case this node has no page within the zone
Date 2017-02-06 16:50 +0100
Message-ID <t7TIf-6NW-37@gated-at.bofh.it> (permalink)
Organization linux.* mail to news gateway

Show all headers | View raw


The whole memory space is divided into several zones and nodes may have no
page in some zones. In this case, the __absent_pages_in_range() would
return 0, since the range it is searching for is an empty range.

Also this happens more often to those nodes with higher memory range when
there are more nodes, which is a trend for future architectures.

This patch checks the zone range after clamp and adjustment, return 0 if
the range is an empty range.

Signed-off-by: Wei Yang <richard.weiyang@gmail.com>
---
 mm/page_alloc.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index 6de9440e3ae2..51c60c0eadcb 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -5521,6 +5521,11 @@ static unsigned long __meminit zone_absent_pages_in_node(int nid,
 	adjust_zone_range_for_zone_movable(nid, zone_type,
 			node_start_pfn, node_end_pfn,
 			&zone_start_pfn, &zone_end_pfn);
+
+	/* If this node has no page within this zone, return 0. */
+	if (zone_start_pfn == zone_end_pfn)
+		return 0;
+
 	nr_absent = __absent_pages_in_range(nid, zone_start_pfn, zone_end_pfn);
 
 	/*
-- 
2.11.0

Back to linux.kernel | Previous | NextNext in thread | Find similar | Unroll thread


Thread

[PATCH] mm/page_alloc: return 0 in case this node has no page within the zone Wei Yang <richard.weiyang@gmail.com> - 2017-02-06 16:50 +0100
  Re: [PATCH] mm/page_alloc: return 0 in case this node has no page  within the zone Andrew Morton <akpm@linux-foundation.org> - 2017-02-07 00:30 +0100
    Re: [PATCH] mm/page_alloc: return 0 in case this node has no page  within the zone Wei Yang <richard.weiyang@gmail.com> - 2017-02-07 16:10 +0100
  Re: [PATCH] mm/page_alloc: return 0 in case this node has no page  within the zone Michal Hocko <mhocko@kernel.org> - 2017-02-07 10:50 +0100
    Re: [PATCH] mm/page_alloc: return 0 in case this node has no page  within the zone Wei Yang <richard.weiyang@gmail.com> - 2017-02-07 16:40 +0100
      Re: [PATCH] mm/page_alloc: return 0 in case this node has no page  within the zone Michal Hocko <mhocko@kernel.org> - 2017-02-07 16:50 +0100
        Re: [PATCH] mm/page_alloc: return 0 in case this node has no page  within the zone Wei Yang <richard.weiyang@gmail.com> - 2017-02-08 15:10 +0100
          Re: [PATCH] mm/page_alloc: return 0 in case this node has no page  within the zone Michal Hocko <mhocko@kernel.org> - 2017-02-08 16:00 +0100
        Re: [PATCH] mm/page_alloc: return 0 in case this node has no page  within the zone Wei Yang <richard.weiyang@gmail.com> - 2017-02-09 15:10 +0100

csiph-web