Message ID | 20250122124047.1216024-2-ziy@nvidia.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | [1/3] selftests/mm: make file-backed THP split work by setting force option | expand |
On 22.01.25 13:40, Zi Yan wrote: > Commit 4d684b5f92ba ("mm: shmem: add large folio support for tmpfs") has > added large folio support to shmem. Remove the restriction in > split_huge_page*(). > > Signed-off-by: Zi Yan <ziy@nvidia.com> > Reviewed-by: Baolin Wang <baolin.wang@linux.alibaba.com> > --- > mm/huge_memory.c | 8 +------- > 1 file changed, 1 insertion(+), 7 deletions(-) > > diff --git a/mm/huge_memory.c b/mm/huge_memory.c > index 3d3ebdc002d5..deb4e72daeb9 100644 > --- a/mm/huge_memory.c > +++ b/mm/huge_memory.c > @@ -3299,7 +3299,7 @@ static void __split_huge_page(struct page *page, struct list_head *list, > /* Some pages can be beyond EOF: drop them from page cache */ > if (tail->index >= end) { > if (shmem_mapping(folio->mapping)) > - nr_dropped++; > + nr_dropped += new_nr; > else if (folio_test_clear_dirty(tail)) > folio_account_cleaned(tail, > inode_to_wb(folio->mapping->host)); > @@ -3465,12 +3465,6 @@ int split_huge_page_to_list_to_order(struct page *page, struct list_head *list, > return -EINVAL; > } > } else if (new_order) { > - /* Split shmem folio to non-zero order not supported */ > - if (shmem_mapping(folio->mapping)) { > - VM_WARN_ONCE(1, > - "Cannot split shmem folio to non-0 order"); > - return -EINVAL; > - } > /* > * No split if the file system does not support large folio. > * Note that we might still have THPs in such mappings due to Acked-by: David Hildenbrand <david@redhat.com>
diff --git a/mm/huge_memory.c b/mm/huge_memory.c index 3d3ebdc002d5..deb4e72daeb9 100644 --- a/mm/huge_memory.c +++ b/mm/huge_memory.c @@ -3299,7 +3299,7 @@ static void __split_huge_page(struct page *page, struct list_head *list, /* Some pages can be beyond EOF: drop them from page cache */ if (tail->index >= end) { if (shmem_mapping(folio->mapping)) - nr_dropped++; + nr_dropped += new_nr; else if (folio_test_clear_dirty(tail)) folio_account_cleaned(tail, inode_to_wb(folio->mapping->host)); @@ -3465,12 +3465,6 @@ int split_huge_page_to_list_to_order(struct page *page, struct list_head *list, return -EINVAL; } } else if (new_order) { - /* Split shmem folio to non-zero order not supported */ - if (shmem_mapping(folio->mapping)) { - VM_WARN_ONCE(1, - "Cannot split shmem folio to non-0 order"); - return -EINVAL; - } /* * No split if the file system does not support large folio. * Note that we might still have THPs in such mappings due to