selftests/mm: skip uprobe vma merge test if uprobes are not enabled
authorPedro Falcato <pfalcato@suse.de>
Tue, 10 Jun 2025 12:22:09 +0000 (13:22 +0100)
committerAndrew Morton <akpm@linux-foundation.org>
Fri, 20 Jun 2025 03:48:03 +0000 (20:48 -0700)
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.

Link: https://lkml.kernel.org/r/20250610122209.3177587-1-pfalcato@suse.de
Fixes: efe99fabeb11 ("selftests/mm: add test about uprobe pte be orphan during vma merge")
Signed-off-by: Pedro Falcato <pfalcato@suse.de>
Reported-by: Aishwarya <aishwarya.tcv@arm.com>
Closes: https://lore.kernel.org/linux-mm/20250610103729.72440-1-aishwarya.tcv@arm.com/
Reviewed-by: Lorenzo Stoakes <lorenzo.stoakes@oracle.com>
Tested-by : Donet Tom <donettom@linux.ibm.com>
Reviewed-by : Donet Tom <donettom@linux.ibm.com>
Reviewed-by: Dev Jain <dev.jain@arm.com>
Reviewed-by: Pu Lehui <pulehui@huawei.com>
Cc: Jann Horn <jannh@google.com>
Cc: Liam Howlett <liam.howlett@oracle.com>
Cc: Mark Brown <broonie@kernel.org>
Cc: Shuah Khan <shuah@kernel.org>
Cc: Vlastimil Babka <vbabka@suse.cz>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
tools/testing/selftests/mm/merge.c

index bbae66fc5038c3ce42bea5afeb9bf98ef54f5d64..cc26480098ae8776e29713f2918e3466c5daf327 100644 (file)
@@ -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");
+       }
 
        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);
 }