Re: [PATCH 1/2] mm/huge_memory: do not change split_huge_page*() target order silently.
From: Pankaj Raghav (Samsung)
Date: Sun Oct 12 2025 - 04:24:34 EST
On Fri, Oct 10, 2025 at 01:39:05PM -0400, Zi Yan wrote:
> Page cache folios from a file system that support large block size (LBS)
> can have minimal folio order greater than 0, thus a high order folio might
> not be able to be split down to order-0. Commit e220917fa507 ("mm: split a
> folio in minimum folio order chunks") bumps the target order of
> split_huge_page*() to the minimum allowed order when splitting a LBS folio.
> This causes confusion for some split_huge_page*() callers like memory
> failure handling code, since they expect after-split folios all have
> order-0 when split succeeds but in really get min_order_for_split() order
> folios.
>
> Fix it by failing a split if the folio cannot be split to the target order.
>
> Fixes: e220917fa507 ("mm: split a folio in minimum folio order chunks")
> [The test poisons LBS folios, which cannot be split to order-0 folios, and
> also tries to poison all memory. The non split LBS folios take more memory
> than the test anticipated, leading to OOM. The patch fixed the kernel
> warning and the test needs some change to avoid OOM.]
> Reported-by: syzbot+e6367ea2fdab6ed46056@xxxxxxxxxxxxxxxxxxxxxxxxx
> Closes: https://lore.kernel.org/all/68d2c943.a70a0220.1b52b.02b3.GAE@xxxxxxxxxx/
> Signed-off-by: Zi Yan <ziy@xxxxxxxxxx>
> ---
LGTM with the suggested changes to the !CONFIG_THP try_folio_split().
Reviewed-by: Pankaj Raghav <p.raghav@xxxxxxxxxxx>