On Tue, Jun 10, 2025 at 01:22:09PM +0100, Pedro Falcato wrote:
> If uprobes are not enabled, the test currently fails with:
>
> 7151 12:46:54.627936 # # # RUN
> merge.handle_uprobe_upon_merged_vma ...
> 7152 12:46:54.639014 # # f /sys/bus/event_source/devices/uprobe/type
> 7153 12:46:54.639306 # # fopen: No such file or directory
> 7154 12:46:54.650451 # # # merge.c:473:handle_uprobe_upon_merged_vma:Expected
> read_sysfs("/sys/bus/event_source/devices/uprobe/type", &type) (1) == 0 (0)
> 7155 12:46:54.650730 # # # handle_uprobe_upon_merged_vma: Test terminated by
> assertion
> 7156 12:46:54.661750 # # # FAIL merge.handle_uprobe_upon_merged_vma
> 7157 12:46:54.662030 # # not ok 8 merge.handle_uprobe_upon_merged_vma
>
> Skipping is a more sane and friendly behavior here.
>
> Fixes: efe99fabeb11b ("selftests/mm: add test about uprobe pte be orphan
> during vma merge")
> Reported-by: Aishwarya <[email protected]>
> Closes:
> https://lore.kernel.org/linux-mm/[email protected]/
> Signed-off-by: Pedro Falcato <[email protected]>
Reviewed-by: Lorenzo Stoakes <[email protected]>
> ---
> tools/testing/selftests/mm/merge.c | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/tools/testing/selftests/mm/merge.c
> b/tools/testing/selftests/mm/merge.c
> index bbae66fc5038..cc26480098ae 100644
> --- a/tools/testing/selftests/mm/merge.c
> +++ b/tools/testing/selftests/mm/merge.c
> @@ -470,7 +470,9 @@ TEST_F(merge, handle_uprobe_upon_merged_vma)
> ASSERT_GE(fd, 0);
>
> ASSERT_EQ(ftruncate(fd, page_size), 0);
> - ASSERT_EQ(read_sysfs("/sys/bus/event_source/devices/uprobe/type",
> &type), 0);
> + if (read_sysfs("/sys/bus/event_source/devices/uprobe/type", &type) !=
> 0) {
> + SKIP(goto out, "Failed to read uprobe sysfs file, skipping");
> + }
Thanks this seems like a saner option!
>
> memset(&attr, 0, attr_sz);
> attr.size = attr_sz;
> @@ -491,6 +493,7 @@ TEST_F(merge, handle_uprobe_upon_merged_vma)
> ASSERT_NE(mremap(ptr2, page_size, page_size,
> MREMAP_MAYMOVE | MREMAP_FIXED, ptr1), MAP_FAILED);
>
> +out:
> close(fd);
> remove(probe_file);
> }
> --
> 2.49.0
>