Message ID | 20210926031339.40043-6-songmuchun@bytedance.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | Free the 2nd vmemmap page associated with each HugeTLB page | expand |
On Sun, Sep 26, 2021 at 4:15 PM Muchun Song <songmuchun@bytedance.com> wrote: > > The vmemmap_remap_free/alloc are relevant to HugeTLB, so move those > functiongs to the scope of CONFIG_HUGETLB_PAGE_FREE_VMEMMAP. > > Signed-off-by: Muchun Song <songmuchun@bytedance.com> Reviewed-by: Barry Song <song.bao.hua@hisilicon.com> > --- > include/linux/mm.h | 2 ++ > mm/sparse-vmemmap.c | 2 ++ > 2 files changed, 4 insertions(+) > > diff --git a/include/linux/mm.h b/include/linux/mm.h > index 00bb2d938df4..a706e7ffda94 100644 > --- a/include/linux/mm.h > +++ b/include/linux/mm.h > @@ -3182,10 +3182,12 @@ static inline void print_vma_addr(char *prefix, unsigned long rip) > } > #endif > > +#ifdef CONFIG_HUGETLB_PAGE_FREE_VMEMMAP > int vmemmap_remap_free(unsigned long start, unsigned long end, > unsigned long reuse); > int vmemmap_remap_alloc(unsigned long start, unsigned long end, > unsigned long reuse, gfp_t gfp_mask); > +#endif > > void *sparse_buffer_alloc(unsigned long size); > struct page * __populate_section_memmap(unsigned long pfn, > diff --git a/mm/sparse-vmemmap.c b/mm/sparse-vmemmap.c > index d486a7a48512..3c7dd41c3164 100644 > --- a/mm/sparse-vmemmap.c > +++ b/mm/sparse-vmemmap.c > @@ -34,6 +34,7 @@ > #include <asm/pgalloc.h> > #include <asm/tlbflush.h> > > +#ifdef CONFIG_HUGETLB_PAGE_FREE_VMEMMAP > /** > * struct vmemmap_remap_walk - walk vmemmap page table > * > @@ -423,6 +424,7 @@ int vmemmap_remap_alloc(unsigned long start, unsigned long end, > > return 0; > } > +#endif /* CONFIG_HUGETLB_PAGE_FREE_VMEMMAP */ > > /* > * Allocate a block of memory to be used to back the virtual memory map > -- > 2.11.0 >
diff --git a/include/linux/mm.h b/include/linux/mm.h index 00bb2d938df4..a706e7ffda94 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -3182,10 +3182,12 @@ static inline void print_vma_addr(char *prefix, unsigned long rip) } #endif +#ifdef CONFIG_HUGETLB_PAGE_FREE_VMEMMAP int vmemmap_remap_free(unsigned long start, unsigned long end, unsigned long reuse); int vmemmap_remap_alloc(unsigned long start, unsigned long end, unsigned long reuse, gfp_t gfp_mask); +#endif void *sparse_buffer_alloc(unsigned long size); struct page * __populate_section_memmap(unsigned long pfn, diff --git a/mm/sparse-vmemmap.c b/mm/sparse-vmemmap.c index d486a7a48512..3c7dd41c3164 100644 --- a/mm/sparse-vmemmap.c +++ b/mm/sparse-vmemmap.c @@ -34,6 +34,7 @@ #include <asm/pgalloc.h> #include <asm/tlbflush.h> +#ifdef CONFIG_HUGETLB_PAGE_FREE_VMEMMAP /** * struct vmemmap_remap_walk - walk vmemmap page table * @@ -423,6 +424,7 @@ int vmemmap_remap_alloc(unsigned long start, unsigned long end, return 0; } +#endif /* CONFIG_HUGETLB_PAGE_FREE_VMEMMAP */ /* * Allocate a block of memory to be used to back the virtual memory map
The vmemmap_remap_free/alloc are relevant to HugeTLB, so move those functiongs to the scope of CONFIG_HUGETLB_PAGE_FREE_VMEMMAP. Signed-off-by: Muchun Song <songmuchun@bytedance.com> --- include/linux/mm.h | 2 ++ mm/sparse-vmemmap.c | 2 ++ 2 files changed, 4 insertions(+)