On Wed, Jun 16, 2021 at 7:01 AM Joao Martins <joao.m.martins@xxxxxxxxxx> wrote: > > > > On 6/12/21 10:45 AM, Muchun Song wrote: > > When using HUGETLB_PAGE_FREE_VMEMMAP, the freeing unused vmemmap pages > > associated with each HugeTLB page is default off. Now the vmemmap is PMD > > mapped. So there is no side effect when this feature is enabled with no > > HugeTLB pages in the system. Someone may want to enable this feature in > > the compiler time instead of using boot command line. So add a config to > > make it default on when someone do not want to enable it via command line. > > > > Signed-off-by: Muchun Song <songmuchun@xxxxxxxxxxxxx> > > --- > > Documentation/admin-guide/kernel-parameters.txt | 3 +++ > > fs/Kconfig | 10 ++++++++++ > > mm/hugetlb_vmemmap.c | 6 ++++-- > > 3 files changed, 17 insertions(+), 2 deletions(-) > > > > diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt > > index a01aadafee38..8eee439d943c 100644 > > --- a/Documentation/admin-guide/kernel-parameters.txt > > +++ b/Documentation/admin-guide/kernel-parameters.txt > > @@ -1604,6 +1604,9 @@ > > on: enable the feature > > off: disable the feature > > > > + Built with CONFIG_HUGETLB_PAGE_FREE_VMEMMAP_DEFAULT_ON=y, > > + the default is on. > > + > > This is not compatible with memory_hotplug.memmap_on_memory. > > If both parameters are enabled, hugetlb_free_vmemmap takes > > precedence over memory_hotplug.memmap_on_memory. > > diff --git a/fs/Kconfig b/fs/Kconfig > > index f40b5b98f7ba..e78bc5daf7b0 100644 > > --- a/fs/Kconfig > > +++ b/fs/Kconfig > > @@ -245,6 +245,16 @@ config HUGETLB_PAGE_FREE_VMEMMAP > > depends on X86_64 > > depends on SPARSEMEM_VMEMMAP > > > Now that you have no longer have the directmap in basepages limitation, I suppose you no > longer need explicit arch support for HUGETLB_PAGE_FREE_VMEMMAP right? > > If so, I suppose you might be able to remove the 'depends on X86_64' part and "gain" > ARM64, PPC, etc support. You are right. This is the next step I want to do. Also, include IA64 and RISCV. > > Joao