Re: [PATCH v3] docs: update THP admin guide about non-tmpfs filesystem support

From: Luis Chamberlain
Date: Fri Apr 04 2025 - 14:03:11 EST


On Fri, Apr 04, 2025 at 06:31:16PM +0200, Pankaj Raghav (Samsung) wrote:
> On Fri, Apr 04, 2025 at 08:32:15AM -0700, Luis Chamberlain wrote:
> > On Fri, Apr 04, 2025 at 04:06:57PM +0200, Pankaj Raghav (Samsung) wrote:
> > > From: Pankaj Raghav <p.raghav@xxxxxxxxxxx>
> > >
> > > THP support for non-tmpfs filesystem has been around for some time now.
> > > Update the admin guide to reflect it.
> > >
> > > While we are at it, move FilePmdMapped to previous paragraph for clarity,
> > > and clarify ShmemPmdMapped & ShmemHugePage.
> > >
> > > Signed-off-by: Pankaj Raghav <p.raghav@xxxxxxxxxxx>
> > > Acked-by: David Hildenbrand <david@xxxxxxxxxx>
> > > ---
> > >
> > > Changes since v2:
> > > - Address comment from Bagas Sanjaya
> > > - Squash commits and Ack from David
> > >
> > > Documentation/admin-guide/mm/transhuge.rst | 22 +++++++++++++++-------
> > > 1 file changed, 15 insertions(+), 7 deletions(-)
> > >
> > > diff --git a/Documentation/admin-guide/mm/transhuge.rst b/Documentation/admin-guide/mm/transhuge.rst
> > > index dff8d5985f0f..f8aae64e38d0 100644
> > > --- a/Documentation/admin-guide/mm/transhuge.rst
> > > +++ b/Documentation/admin-guide/mm/transhuge.rst
> > > @@ -12,8 +12,8 @@ using huge pages for the backing of virtual memory with huge pages
> > > that supports the automatic promotion and demotion of page sizes and
> > > without the shortcomings of hugetlbfs.
> > >
> > > -Currently THP only works for anonymous memory mappings and tmpfs/shmem.
> > > -But in the future it can expand to other filesystems.
> > > +Currently, THP only works for anonymous memory mappings, tmpfs/shmem and
> > > +filesystems that support large folios.
> >
> > That seems to allude that THP can be supported on filesystems
> > that suppor large folios. I don't think we want to call that THP
>
> But we do allocate a THP in the page cache if we support large folios.
>
> See [1] where THP was supported through page cache. From what I
> understand, THP support was added first to the page cache and then large
> folios (orders in between) support came later.

I see, yes Do we want to clarify this further?

> For example, you can mount XFS and do a simple dd as follows:
>
> $ dd if=/dev/random of=/mnt/hello bs=1G count=2
>
> And if you monitor `FileHugePages` after dd is done, it would have filled
> up if THP is enabled.
>
> > and that can confuse folks. Leaving "currently" also seems to
> > indicate that there is more work to be done for THP for filesystems
> > but that's not true as well. So how about something like:
>
> There is more work to be done in the filesystems right? Adding large
> folio support is the prerequisite here to get the THP support.

This would be good to clarify as well.

Luis