Re: [RFC v2 0/2] add THP_HUGE_ZERO_PAGE_ALWAYS config option

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

 



On 22.05.25 14:00, Pankaj Raghav (Samsung) wrote:
Hi Mike,

Add a config option THP_HUGE_ZERO_PAGE_ALWAYS that will always allocate
the huge_zero_folio, and it will never be freed. This makes using the
huge_zero_folio without having to pass any mm struct and a call to put_folio
in the destructor.

I don't think this config option should be tied to THP. It's perfectly
sensible to have a configuration with HUGETLB and without THP.

Hmm, that makes sense. You mean something like this (untested):

diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index 2e1527580746..d447a9b9eb7d 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -151,8 +151,8 @@ config X86
         select ARCH_WANT_OPTIMIZE_DAX_VMEMMAP   if X86_64
         select ARCH_WANT_OPTIMIZE_HUGETLB_VMEMMAP       if X86_64
         select ARCH_WANT_HUGETLB_VMEMMAP_PREINIT if X86_64
+       select ARCH_WANTS_HUGE_ZERO_PAGE_ALWAYS if X86_64
         select ARCH_WANTS_THP_SWAP              if X86_64
-       select ARCH_WANTS_THP_ZERO_PAGE_ALWAYS  if X86_64
         select ARCH_HAS_PARANOID_L1D_FLUSH
         select BUILDTIME_TABLE_SORT
         select CLKEVT_I8253
diff --git a/mm/Kconfig b/mm/Kconfig
index a2994e7d55ba..83a5b95a2286 100644
--- a/mm/Kconfig
+++ b/mm/Kconfig
@@ -823,9 +823,19 @@ config ARCH_WANT_GENERAL_HUGETLB
  config ARCH_WANTS_THP_SWAP
         def_bool n
-config ARCH_WANTS_THP_ZERO_PAGE_ALWAYS
+config ARCH_WANTS_HUGE_ZERO_PAGE_ALWAYS
         def_bool n
+config HUGE_ZERO_PAGE_ALWAYS

Likely something like

PMD_ZERO_PAGE

Will be a lot clearer.

> + def_bool y> + depends on HUGETLB_PAGE && ARCH_WANTS_HUGE_ZERO_PAGE_ALWAYS

I suspect it should then also be independent of HUGETLB_PAGE?

+       help
+         Typically huge_zero_folio, which is a huge page of zeroes, is allocated
+         on demand and deallocated when not in use. This option will always
+         allocate huge_zero_folio for zeroing and it is never deallocated.
+         Not suitable for memory constrained systems.

I assume that code then has to live in mm/memory.c ?


--
Cheers,

David / dhildenb





[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [NTFS 3]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [NTFS 3]     [Samba]     [Device Mapper]     [CEPH Development]

  Powered by Linux