Re: [PATCH v3] docs: update THP admin guide about non-tmpfs filesystem support
From: Pankaj Raghav (Samsung)
Date: Fri Apr 04 2025 - 12:31:40 EST
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.
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.
>
> THP only works for anonymous memory mappings, and the tmpfs/shmem is the only
> filesystem to support it. The alternative to THP for other filesystems is to
> support large folios and with it you can end up using huge pages
> opportunistically.
>
> Luis
[1] https://lore.kernel.org/linux-mm/20201029193405.29125-1-willy@xxxxxxxxxxxxx/
--
Pankaj