Re: [PATCH] mm/compaction: do not break pages whose order is larger than target order

From: Wenchao Hao
Date: Fri Apr 25 2025 - 10:29:04 EST


On Fri, Apr 25, 2025 at 3:42 AM Johannes Weiner <hannes@xxxxxxxxxxx> wrote:
>
> On Thu, Apr 24, 2025 at 11:38:15PM +0800, Wenchao Hao wrote:
> > When scanning free pages for memory compaction, if the compaction target
> > order is explicitly specified, do not split pages in buddy whose order
> > are larger than compaction target order.
>
> Have you observed this to be an issue in practice?
>
> compact_finished() would have bailed if such a page had existed.
>

Yes, when proactive memory compaction is enabled, there may be situations
where the order of isolated free pages is greater than the compaction
requested order, and compact_finished() will return continue.


> compaction_capture() would steal such a page upon production.
>
> It could help with blocks freed by chance from somewhere else, where
> you'd preserve it to grab it later from the allocation retry. But if
> that's the target, it might be better to indeed isolate the page, and
> then capture it inside compaction_alloc()?