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

From: Guenter Roeck
Date: Thu Apr 28 2022 - 13:13:11 EST


On 4/28/22 09:35, Liam Howlett wrote:
* Guenter Roeck <linux@xxxxxxxxxxxx> [220428 12:10]:
On Tue, Apr 26, 2022 at 03:06:35PM +0000, Liam Howlett wrote:
From: "Liam R. Howlett" <Liam.Howlett@xxxxxxxxxx>

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@xxxxxxxxxx>

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