[PATCH v8 23/70] mm/mmap: change do_brk_flags() to expand existing VMA and add do_brk_munmap()

Guenter Roeck linux at roeck-us.net
Thu Apr 28 10:13:02 PDT 2022


On 4/28/22 09:35, Liam Howlett wrote:
> * Guenter Roeck <linux at roeck-us.net> [220428 12:10]:
>> On Tue, Apr 26, 2022 at 03:06:35PM +0000, Liam Howlett wrote:
>>> From: "Liam R. Howlett" <Liam.Howlett at Oracle.com>
>>>
>>> Avoid allocating a new VMA when it a vma modification can occur.  When a
>>> brk() can expand or contract a VMA, then the single store operation will
>>> only modify one index of the maple tree instead of causing a node to split
>>> or coalesce.  This avoids unnecessary allocations/frees of maple tree
>>> nodes and VMAs.
>>>
>>> Move some limit & flag verifications out of the do_brk_flags() function to
>>> use only relevant checks in the code path of bkr() and vm_brk_flags().
>>>
>>> Set the vma to check if it can expand in vm_brk_flags() if extra criteria
>>> are met.
>>>
>>> Drop userfaultfd from do_brk_flags() path and only use it in
>>> vm_brk_flags() path since that is the only place a munmap will happen.
>>>
>>> Signed-off-by: Liam R. Howlett <Liam.Howlett at Oracle.com>
>>
>> This patch results in boot failures on alpha. Trying to revert it results
>> in conflicts, so I was unable to cross-check. Bisect log attached. The failure
>> is silent - boot simply stalls after "random: crng init done", so attaching
>> a boot log doesn't add value.
> 
> Thanks.  I can only find Gentoo iso for testing, is there any other
> options?
> 

You could try with images from https://github.com/groeck/linux-build-test.

Guenter



More information about the maple-tree mailing list