[PATCH v3 07/11] mm: do not split a folio if it has minimum folio order requirement

From: Pankaj Raghav (Samsung)
Date: Wed Mar 13 2024 - 14:17:54 EST


From: Pankaj Raghav <p.raghav@xxxxxxxxxxx>

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@xxxxxxxxxxx>
Signed-off-by: Luis Chamberlain <mcgrof@xxxxxxxxxx>
Reviewed-by: Hannes Reinecke <hare@xxxxxxx>
---
mm/huge_memory.c | 13 +++++++++++++
1 file changed, 13 insertions(+)

diff --git a/mm/huge_memory.c b/mm/huge_memory.c
index 81fd1ba57088..6ec3417638a1 100644
--- a/mm/huge_memory.c
+++ b/mm/huge_memory.c
@@ -3030,6 +3030,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