On 8 Aug 2023, at 5:01, David Hildenbrand wrote:
On 29.03.23 03:17, Zi Yan wrote:
From: Zi Yan ziy@nvidia.com
To split a THP to any lower order pages, we need to reform THPs on subpages at given order and add page refcount based on the new page order. Also we need to reinitialize page_deferred_list after removing the page from the split_queue, otherwise a subsequent split will see list corruption when checking the page_deferred_list again.
It has many uses, like minimizing the number of pages after truncating a huge pagecache page. For anonymous THPs, we can only split them to order-0 like before until we add support for any size anonymous THPs.
Because I'm currently looking into something that would also not be compatible with order-1 for now:
You should make it clear that order-1 is not supported, like:
"mm: thp: split huge page to any lower order pages (except order 1)"
And clarify in the subject why that is the case.
Sure.
I will add below to the commit message and the comment of split_huge_page_to_list_to_order():
Order-1 folio is not supported because _deferred_list, which is used by partially mapped folios, is stored in subpage 2 and an order-1 folio only has subpage 0 and 1.
-- Best Regards, Yan, Zi