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


Groups > linux.kernel > #1357008 > unrolled thread

[PATCH 0/6] Add zone overlapping check

Started byjs1304@gmail.com
First post2016-03-14 08:40 +0100
Last post2016-03-14 08:40 +0100
Articles 2 — 1 participant

Back to article view | Back to linux.kernel


Contents

  [PATCH 0/6] Add zone overlapping check js1304@gmail.com - 2016-03-14 08:40 +0100
    [PATCH 6/6] power: add zone range overlapping check js1304@gmail.com - 2016-03-14 08:40 +0100

#1357008 — [PATCH 0/6] Add zone overlapping check

Fromjs1304@gmail.com
Date2016-03-14 08:40 +0100
Subject[PATCH 0/6] Add zone overlapping check
Message-ID<rcvgB-Hl-7@gated-at.bofh.it>
From: Joonsoo Kim <iamjoonsoo.kim@lge.com>

Hello, all.

This patchset deals with some problematic sites that iterate pfn range.

There is a system that node's pfn are overlapped like as following.

-----pfn-------->
N0 N1 N2 N0 N1 N2

Therefore, we need to care this overlapping when iterating pfn range.

I audit many iterating sites that uses pfn_valid(), pfn_valid_within(),
zone_start_pfn and etc. and others looks safe for me. This is
a preparation step for new CMA implementation, ZONE_CMA [1], because
it would be easily overlapped with other zones. But, zone overlap
check is also needed for general case so I send it separately.

This is based on next-20160311.

Thanks.

[1]: https://lkml.org/lkml/2015/2/12/95

Joonsoo Kim (6):
  mm/page_alloc: fix same zone check in __pageblock_pfn_to_page()
  mm/hugetlb: add same zone check in pfn_range_valid_gigantic()
  mm/memory_hotplug: add comment to some functions related to memory
    hotplug
  mm/vmstat: add zone range overlapping check
  mm/page_owner: add zone range overlapping check
  power: add zone range overlapping check

 mm/hugetlb.c        |  9 ++++++---
 mm/page_alloc.c     | 10 +++++++---
 mm/page_isolation.c |  1 +
 mm/page_owner.c     |  3 +++
 mm/vmstat.c         |  7 +++++++
 5 files changed, 24 insertions(+), 6 deletions(-)

-- 
1.9.1

[toc] | [next] | [standalone]


#1357009 — [PATCH 6/6] power: add zone range overlapping check

Fromjs1304@gmail.com
Date2016-03-14 08:40 +0100
Subject[PATCH 6/6] power: add zone range overlapping check
Message-ID<rcvgD-Hl-47@gated-at.bofh.it>
In reply to#1357008
From: Joonsoo Kim <iamjoonsoo.kim@lge.com>

There is a system that node's pfn are overlapped like as following.

-----pfn-------->
N0 N1 N2 N0 N1 N2

Therefore, we need to care this overlapping when iterating pfn range.

mark_free_pages() iterates requested zone's pfn range and unset
all range's bitmap first. And then it marks freepages in a zone
to the bitmap. If there is an overlapping zone, above unset could
clear previous marked bit and reference to this bitmap in the future
will cause the problem. To prevent it, this patch adds a zone check
in mark_free_pages().

Signed-off-by: Joonsoo Kim <iamjoonsoo.kim@lge.com>
---
 mm/page_alloc.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index 08d5536..998f636 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -2136,6 +2136,10 @@ void mark_free_pages(struct zone *zone)
 	for (pfn = zone->zone_start_pfn; pfn < max_zone_pfn; pfn++)
 		if (pfn_valid(pfn)) {
 			page = pfn_to_page(pfn);
+
+			if (page_zone(page) != zone)
+				continue;
+
 			if (!swsusp_page_is_forbidden(page))
 				swsusp_unset_page_free(page);
 		}
-- 
1.9.1

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web