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