Hi Zi yan,
From: Zi Yan ziy@nvidia.com
Hi all,
File folio supports any order and people would like to support flexible orders for anonymous folio[1] too. Currently, split_huge_page() only splits a huge page to order-0 pages, but splitting to orders higher than 0 is also useful. This patchset adds support for splitting a huge page to any lower order pages and uses it during file folio truncate operations.
I recently posted patches to enable block size > page size(Large Block Sizes) in XFS[1]. The main idea of LBS is to have a notion of minimum order in the page cache that corresponds to the filesystem block size.
Ability to split a folio based on a given order is something that would definitely optimize the LBS implementation.
The current implementation refuses to split a large folio if it has a minimum order set in the page cache [2]. What we would like to have instead is to split it based on the minimum order. The main use is of course being able to free some folios during partial truncate operation.
Your patch was also suggested by willy during our LPC talk[3].
I tried rebasing your patch and there were a lot of non-trivial conflicts. Is there any plans on sending a new version?
[1] https://lore.kernel.org/linux-xfs/20240213093713.1753368-1-kernel@pankajragh... [2] https://lore.kernel.org/linux-xfs/20240213093713.1753368-9-kernel@pankajragh... [3] https://youtu.be/ar72r5Xf7x4?si=XDb-g7SSIgS-5TkP&t=1457
-- Pankaj