linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2] mm/page_isolation: do not isolate the max order page
@ 2020-12-03 16:22 Muchun Song
  2020-12-03 16:28 ` David Hildenbrand
  2020-12-07 13:42 ` Oscar Salvador
  0 siblings, 2 replies; 5+ messages in thread
From: Muchun Song @ 2020-12-03 16:22 UTC (permalink / raw)
  To: akpm; +Cc: linux-mm, linux-kernel, Muchun Song, Vlastimil Babka

The max order page has no buddy page and never merge to other order.
So isolating and then freeing it is pointless. And if order == MAX_ORDER
- 1, then the buddy can actually be a !pfn_valid() in some corner case?
pfn_valid_within(buddy_pfn) that follows would only catch it on archs
with holes in zone. Then is_migrate_isolate_page(buddy) might access an
invalid buddy. So this is also a bug fix.

Fixes: 3c605096d315 ("mm/page_alloc: restrict max order of merging on isolated pageblock")
Signed-off-by: Muchun Song <songmuchun@bytedance.com>
Acked-by: Vlastimil Babka <vbabka@suse.cz>
---
Changes in v2:
 - Add Fixes tag in the commit log.

 mm/page_isolation.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/mm/page_isolation.c b/mm/page_isolation.c
index a254e1f370a3..bddf788f45bf 100644
--- a/mm/page_isolation.c
+++ b/mm/page_isolation.c
@@ -88,7 +88,7 @@ static void unset_migratetype_isolate(struct page *page, unsigned migratetype)
 	 */
 	if (PageBuddy(page)) {
 		order = buddy_order(page);
-		if (order >= pageblock_order) {
+		if (order >= pageblock_order && order < MAX_ORDER - 1) {
 			pfn = page_to_pfn(page);
 			buddy_pfn = __find_buddy_pfn(pfn, order);
 			buddy = page + (buddy_pfn - pfn);
-- 
2.11.0


^ permalink raw reply related	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2020-12-07 13:42 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-12-03 16:22 [PATCH v2] mm/page_isolation: do not isolate the max order page Muchun Song
2020-12-03 16:28 ` David Hildenbrand
2020-12-04 16:12   ` [External] " Muchun Song
2020-12-04 17:12     ` David Hildenbrand
2020-12-07 13:42 ` Oscar Salvador

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).