Hi Zach, On 10/17/22 19:55, Zach OKeefe wrote: > From: Zach O'Keefe > > Since Linux 5.4, Transparent Huge Pages now support both file-backed > memory and shmem memory. Update MADV_HUGEPAGE advice description to > reflect this. > > Additionally, expand the description of requirements for memory to be > considered eligible for THP: alignment / mapping requirements, VMA > flags, prctl(2) settings, inode status, etc. > > Signed-off-by: Zach O'Keefe > --- > man2/madvise.2 | 37 ++++++++++++++++++++++++++++++++++--- > 1 file changed, 34 insertions(+), 3 deletions(-) > > diff --git a/man2/madvise.2 b/man2/madvise.2 > index 81cce56af..e14e0f7fb 100644 > --- a/man2/madvise.2 > +++ b/man2/madvise.2 > @@ -320,8 +320,6 @@ Enable Transparent Huge Pages (THP) for pages in the range specified by > .I addr > and > .IR length . > -Currently, Transparent Huge Pages work only with private anonymous pages (see > -.BR mmap (2)). > The kernel will regularly scan the areas marked as huge page candidates > to replace them with huge pages. > The kernel will also allocate huge pages directly when the region is > @@ -354,12 +352,45 @@ an access pattern that the developer knows in advance won't risk > to increase the memory footprint of the application when transparent > hugepages are enabled. > .IP > +.\" commit 99cb0dbd47a15d395bf3faa78dc122bc5efe3fc0 > +Since Linux 5.4, > +automatic scan of eligible areas and replacement by huge pages works with > +private anonymous pages (see > +.BR mmap (2)), > +shmem-backed pages (including tmpfs (see > +.BR tmpfs (5)), I think here's missing a closing parenthesis. Please check. Maybe you prefer combining em dashes or commas with parentheses to improve visually discerning subclauses. Cheers, Alex > +and file-backed pages. > +For all memory types, > +memory may only be replaced by huge pages on hugepage-aligned boundaries. > +For file-mapped memory (including tmpfs) the mapping must also be naturally > +hugepage-aligned within the file. > +Additionally, > +for file-backed (not tmpfs) memory, > +the file must not be open for write and the mapping must be executable. > +.IP [...] --