Re: [PATCH v3 03/21] mm/hugetlb: Introduce a new config HUGETLB_PAGE_FREE_VMEMMAP

From: Mike Kravetz
Date: Tue Nov 10 2020 - 15:33:40 EST


On 11/10/20 11:50 AM, Matthew Wilcox wrote:
> On Tue, Nov 10, 2020 at 11:31:31AM -0800, Mike Kravetz wrote:
>> On 11/9/20 5:52 AM, Oscar Salvador wrote:
>>> On Sun, Nov 08, 2020 at 10:10:55PM +0800, Muchun Song wrote:
>
> I don't like config options. I like boot options even less. I don't
> know how to describe to an end-user whether they should select this
> or not. Is there a way to make this not a tradeoff? Or make the
> tradeoff so minimal as to be not worth describing? (do we have numbers
> for the worst possible situation when enabling this option?)

It is not exactly worst case, but Muchun provided some simple benchmarking
results in the cover letter. Quick summary is that hugetlb page creation
and free time is "~2x slower". At first glance, one would say that is
terrible. However, remember that the majority of use cases create hugetlb
pages at or shortly after boot time and add them to the pool. So, additional
overhead is at pool creation time. There is no change to 'normal run time'
operations of getting a page from or returning a page to the pool (think
page fault/unmap).

> I haven't read through these patches in detail, so maybe we do this
> already, but when we free the pages to the buddy allocator, do we retain
> the third page to use for the PTEs (and free pages 3-7), or do we allocate
> a separate page for the PTES and free pages 2-7?

I haven't got there in this latest series. But, in previous revisions the
code did allocate a separate page.
--
Mike Kravetz