Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1357008 > unrolled thread
| Started by | js1304@gmail.com |
|---|---|
| First post | 2016-03-14 08:40 +0100 |
| Last post | 2016-03-14 08:40 +0100 |
| Articles | 2 — 1 participant |
Back to article view | Back to linux.kernel
[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
| From | js1304@gmail.com |
|---|---|
| Date | 2016-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]
| From | js1304@gmail.com |
|---|---|
| Date | 2016-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