Re: [PATCH v2 00/19] Free some vmemmap pages of hugetlb page

From: Michal Hocko
Date: Fri Oct 30 2020 - 05:15:03 EST


On Mon 26-10-20 22:50:55, Muchun Song wrote:
> If we uses the 1G hugetlbpage, we can save 4095 pages. This is a very
> substantial gain. On our server, run some SPDK/QEMU applications which
> will use 1000GB hugetlbpage. With this feature enabled, we can save
> ~16GB(1G hugepage)/~11GB(2MB hugepage) memory.
[...]
> 15 files changed, 1091 insertions(+), 165 deletions(-)
> create mode 100644 include/linux/bootmem_info.h
> create mode 100644 mm/bootmem_info.c

This is a neat idea but the code footprint is really non trivial. To a
very tricky code which hugetlb is unfortunately.

Saving 1,6% of memory is definitely interesting especially for 1GB pages
which tend to be more static and where the savings are more visible.

Anyway, I haven't seen any runtime overhead analysis here. What is the
price to modify the vmemmap page tables and make them pte rather than
pmd based (especially for 2MB hugetlb). Also, how expensive is the
vmemmap page tables reconstruction on the freeing path?

Thanks!
--
Michal Hocko
SUSE Labs