Re: [PATCH v2] tools/testing/selftests: add merge test for partial msealed range
From: Lorenzo Stoakes (Oracle)
Date: Fri Apr 03 2026 - 12:40:38 EST
On Fri, Apr 03, 2026 at 07:08:40PM +0300, Mike Rapoport wrote:
> On Tue, Mar 31, 2026 at 08:36:27AM +0100, Lorenzo Stoakes (Oracle) wrote:
> > Commit 2697dd8ae721 ("mm/mseal: update VMA end correctly on merge") fixed
> > an issue in the loop which iterates through VMAs applying mseal, which was
> > triggered by mseal()'ing a range of VMAs where the second was mseal()'d and
> > the first mergeable with it, once mseal()'d.
> >
> > Add a regression test to assert that this behaviour is correct. We place it
> > in the merge selftests as this is strictly an issue with merging (via a
> > vma_modify() invocation).
> >
> > It also assert that mseal()'d ranges are correctly merged as you'd expect.
> >
> > The test is implemented such that it is skipped if mseal() is not
> > available on the system.
> >
> > Signed-off-by: Lorenzo Stoakes (Oracle) <ljs@xxxxxxxxxx>
> > ---
> > v2:
> > * Added tools/ based header so __NR_mseal should always be available.
> > * However, for completeness, also check to see if defined, and assume ENOSYS if
> > not.
> > * Thanks to Mike for reporting issues in his build on this test!
>
> Unfortunately it's not the only one :)
Ugh...
>
> The header inclusion actually causes handle_uprobe_upon_merged_vma() to
> fail because of mismatch in definition of__NR_perf_event_open in
> <asm-generic/unistd.h> and the correct definition from
> /usr/include/unistd.h
>
> With the patch below handle_uprobe_upon_merged_vma() passes again and I
> think it's not needed for mseal tests as well.
>
> diff --git a/tools/testing/selftests/mm/merge.c b/tools/testing/selftests/mm/merge.c
> index efcb100fd865..519e5ac02db7 100644
> --- a/tools/testing/selftests/mm/merge.c
> +++ b/tools/testing/selftests/mm/merge.c
> @@ -2,7 +2,6 @@
>
> #define _GNU_SOURCE
> #include "kselftest_harness.h"
> -#include <asm-generic/unistd.h>
> #include <linux/prctl.h>
> #include <fcntl.h>
> #include <stdio.h>
>
Andrew - could you apply this two please? I can respin if needed.
Cheers, Lorenzo