Re: [PATCH v2 1/3] mm/page_alloc: Optimize free_contig_range()
From: David Hildenbrand (Arm)
Date: Thu Mar 19 2026 - 18:07:30 EST
>> the allocation of non-compound order>0, like you suggested in 3, we basically
>
> I suggested we'd take it away in the sense of not producing order>0 where
> head is refcounted, tails are not, and it's not a compound page. I'd rather
> have an API that applies split_page() before and returns it as order-0
> refcounted pages, but not the intermediate order>0 non-compound anymore.
Are you talking about external API or internal API?
Regarding external interface: I think the crucial part is that an
external interface (free_contig_range) should always get a range of
individual order-0 pages: neither compound nor non-compound order > 0.
The individual order-0 pages can either be frozen or refcounted
(depending on the interface).
Regarding internal interface: To me that implies that FPI_PREPARED will
never ever have to do any kind of "subpage" (page) free_pages_prepare()
checks. It must already have been performed on all order-0 pages.
So the TODO should indeed be dropped.
I'm not sure I understood whether you think using the
__free_frozen_pages() with order > 0 is okay, or whether we need a
different (internal) interface.
--
Cheers,
David