[RFC v2 08/14] mm: do not split a folio if it has minimum folio order requirement

Pankaj Raghav (Samsung)
2024-02-13T09:37:51Z

From: Pankaj Raghav <p.raghav@samsung.com>

As we don't have a way to split a folio to a any given lower folio
order yet, avoid splitting the folio in split_huge_page_to_list() if it
has a minimum folio order requirement.

Signed-off-by: Pankaj Raghav <p.raghav@samsung.com>
Signed-off-by: Luis Chamberlain <mcgrof@kernel.org>
---
mm/huge_memory.c | 13 +++++++++++++
1 file changed, 13 insertions(+)

diff --git a/mm/huge_memory.c b/mm/huge_memory.c
index 94c958f7ebb5..d897efc51025 100644
--- a/mm/huge_memory.c
+++ b/mm/huge_memory.c
@@ -3026,6 +3026,19 @@ int split_huge_page_to_list(struct page *page, struct list_head *list)
goto out;
}

+ /*
+ * Do not split if mapping has minimum folio order
+ * requirement.
+ *
+ * XXX: Once we have support for splitting to any lower
+ * folio order, then it could be split based on the
+ * min_folio_order.
+ */
+ if (mapping_min_folio_order(mapping)) {
+ ret = -EAGAIN;
+ goto out;
+ }
+
gfp = current_gfp_context(mapping_gfp_mask(mapping) &
GFP_RECLAIM_MASK);

--
2.43.0