Re: [PATCHv2] mm/page_alloc: Make deferred page init free pages in MAX_ORDER blocks

From: Vlastimil Babka
Date: Tue Mar 21 2023 - 07:41:13 EST


On 3/21/23 01:24, Kirill A. Shutemov wrote:
> Normal page init path frees pages during the boot in MAX_ORDER chunks,
> but deferred page init path does it in pageblock blocks.
>
> Change deferred page init path to work in MAX_ORDER blocks.
>
> For cases when MAX_ORDER is larger than pageblock, set migrate type to
> MIGRATE_MOVABLE for all pageblocks covered by the page.

Looks like the problems with migratetype were why commit e780149bcd4b ("mm:
fix set pageblock migratetype in deferred struct page init") switched it
from MAX_ORDER to pageblock_order. This should work better.

> Signed-off-by: Kirill A. Shutemov <kirill.shutemov@xxxxxxxxxxxxxxx>

Reviewed-by: Vlastimil Babka <vbabka@xxxxxxx>

But I think you'll have to rebase on mm-unstable that moved some of the code
to mm_init.c