Re: [PATCH] docs: update THP documentation to clarify sysfs "never" setting

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Jul 22, 2025 at 09:30:18AM +0800, Baolin Wang wrote:
>
>
> On 2025/7/21 23:55, Lorenzo Stoakes wrote:
> > Rather confusingly, setting all Transparent Huge Page sysfs settings to
> > "never" does not in fact result in THP being globally disabled.
> >
> > Rather, it results in khugepaged being disabled, but one can still obtain
> > THP pages using madvise(..., MADV_COLLAPSE).
> >
> > This is something that has remained poorly documented for some time, and it
> > is likely the received wisdom of most users of THP that never does, in
> > fact, mean never.
> >
> > It is therefore important to highlight, very clearly, that this is not the
> > ase.
> >
> > Signed-off-by: Lorenzo Stoakes <lorenzo.stoakes@xxxxxxxxxx>
> > ---
> >   Documentation/admin-guide/mm/transhuge.rst | 11 +++++++++--
> >   1 file changed, 9 insertions(+), 2 deletions(-)
> >
> > diff --git a/Documentation/admin-guide/mm/transhuge.rst b/Documentation/admin-guide/mm/transhuge.rst
> > index dff8d5985f0f..182519197ef7 100644
> > --- a/Documentation/admin-guide/mm/transhuge.rst
> > +++ b/Documentation/admin-guide/mm/transhuge.rst
> > @@ -107,7 +107,7 @@ sysfs
> >   Global THP controls
> >   -------------------
> > -Transparent Hugepage Support for anonymous memory can be entirely disabled
> > +Transparent Hugepage Support for anonymous memory can be disabled
> >   (mostly for debugging purposes) or only enabled inside MADV_HUGEPAGE
> >   regions (to avoid the risk of consuming more memory resources) or enabled
> >   system wide. This can be achieved per-supported-THP-size with one of::
> > @@ -119,6 +119,11 @@ system wide. This can be achieved per-supported-THP-size with one of::
> >   where <size> is the hugepage size being addressed, the available sizes
> >   for which vary by system.
> > +.. note:: Setting "never" in all sysfs THP controls does **not** disable
> > +          Transparent Huge Pages globally. This is because ``madvise(...,
> > +          MADV_COLLAPSE)`` ignores these settings and collapses ranges to
> > +          PMD-sized huge pages unconditionally.
> > +
> >   For example::
> >   	echo always >/sys/kernel/mm/transparent_hugepage/hugepages-2048kB/enabled
> > @@ -187,7 +192,9 @@ madvise
> >   	behaviour.
> >   never
> > -	should be self-explanatory.
> > +	should be self-explanatory. Note that ``madvise(...,
> > +	MADV_COLLAPSE)`` can still cause transparent huge pages to be
> > +	obtained even if this mode is specified everywhere.
>
> I hope this part of the explanation is also copy-pasted into the 'Hugepages
> in tmpfs/shmem' section. Otherwise look good to me. Thanks.

Thanks, will send a fix-patch to add it there too!




[Index of Archives]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Linux FS]     [Yosemite Forum]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]     [Linux Resources]

  Powered by Linux