Re: [PATCH v3 21/26] mm/page_alloc: implement FREETYPE_UNMAPPED allocations

"Brendan Jackman" <[email protected]>
Newsgroups gmane.linux.kernel,gmane.linux.kernel.mm
Message-ID <[email protected]>
On Fri Aug 7, 2026 at 1:16 AM BST, Yosry Ahmed wrote:
>> diff --git a/mm/compaction.c b/mm/compaction.c
>> index 67b01af024e17..c9eb3947ffc79 100644
>> --- a/mm/compaction.c
>> +++ b/mm/compaction.c
>> @@ -1393,6 +1393,9 @@ static bool suitable_migration_source(struct compact_control *cc,
>>         block_ft = get_pageblock_freetype(page);
>>         block_mt = free_to_migratetype(block_ft);
>>
>> +       if (freetype_unmapped(get_pageblock_freetype(page)))
>> +               return false;
>> +
>>         /*
>>          * CMA pages can only be taken by ALLOC_CMA requests. For anybody
>>          * else, vacating a CMA block consumes free pages the caller
>> @@ -1444,6 +1447,9 @@ static bool suitable_migration_target(struct compact_control *cc,
>>                         return false;
>>         }
>>
>> +       if (freetype_unmapped(get_pageblock_freetype(page)))
>> +               return false;
>> +
>
> Do we also want to add safety checks in the page migration code? IIUC,
> if we miss a check in the compaction code and try to compact an
> unmapped pageblock the kernel will crash with a #PF in supervisor
> mode.

Shrug, yeah I would certainly be happy with sprinkling some more

if (WARN_ON(freetype_unmapped(...)))
  return -1;

here and there. But yeah this feels like a maintainer preference /
philosophy question :D If the machine is gonna crash quite clearly
anyway maybe it's not worth it, I dunno.

>>         if (cc->ignore_block_suitable)
>>                 return true;
>>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.