READ_ONLY_THP_FOR_FS is no longer present, remove related test.

Signed-off-by: Zi Yan <[email protected]>
---
 tools/testing/selftests/mm/guard-regions.c | 148 +--------------------
 1 file changed, 1 insertion(+), 147 deletions(-)

diff --git a/tools/testing/selftests/mm/guard-regions.c 
b/tools/testing/selftests/mm/guard-regions.c
index 48e8b1539be3..fc8b2a4e7ba2 100644
--- a/tools/testing/selftests/mm/guard-regions.c
+++ b/tools/testing/selftests/mm/guard-regions.c
@@ -42,7 +42,6 @@ static sigjmp_buf signal_jmp_buf;
 enum backing_type {
        ANON_BACKED,
        SHMEM_BACKED,
-       LOCAL_FILE_BACKED,
 };
 
 FIXTURE(guard_regions)
@@ -67,11 +66,6 @@ FIXTURE_VARIANT_ADD(guard_regions, shmem)
        .backing = SHMEM_BACKED,
 };
 
-FIXTURE_VARIANT_ADD(guard_regions, file)
-{
-       .backing = LOCAL_FILE_BACKED,
-};
-
 static bool is_anon_backed(const FIXTURE_VARIANT(guard_regions) * variant)
 {
        switch (variant->backing) {
@@ -98,7 +92,6 @@ static void *mmap_(FIXTURE_DATA(guard_regions) * self,
                offset = 0;
                break;
        case SHMEM_BACKED:
-       case LOCAL_FILE_BACKED:
                flags |= MAP_SHARED;
                fd = self->fd;
                break;
@@ -198,18 +191,6 @@ static void teardown_sighandler(void)
        sigaction(SIGSEGV, &act, NULL);
 }
 
-static int open_file(const char *prefix, char *path)
-{
-       int fd;
-
-       snprintf(path, PATH_MAX, "%sguard_regions_test_file_XXXXXX", prefix);
-       fd = mkstemp(path);
-       if (fd < 0)
-               ksft_exit_fail_perror("mkstemp");
-
-       return fd;
-}
-
 /* Establish a varying pattern in a buffer. */
 static void set_pattern(char *ptr, size_t num_pages, size_t page_size)
 {
@@ -262,54 +243,6 @@ static bool is_buf_eq(char *buf, size_t size, char chr)
        return true;
 }
 
-/*
- * Some file systems have issues with merging due to changing merge-sensitive
- * parameters in the .mmap callback, and prior to .mmap_prepare being
- * implemented everywhere this will now result in an unexpected failure to
- * merge (e.g. - overlayfs).
- *
- * Perform a simple test to see if the local file system suffers from this, if
- * it does then we can skip test logic that assumes local file system merging 
is
- * sane.
- */
-static bool local_fs_has_sane_mmap(FIXTURE_DATA(guard_regions) * self,
-                                  const FIXTURE_VARIANT(guard_regions) * 
variant)
-{
-       const unsigned long page_size = self->page_size;
-       char *ptr, *ptr2;
-       struct procmap_fd procmap;
-
-       if (variant->backing != LOCAL_FILE_BACKED)
-               return true;
-
-       /* Map 10 pages. */
-       ptr = mmap_(self, variant, NULL, 10 * page_size, PROT_READ | 
PROT_WRITE, 0, 0);
-       if (ptr == MAP_FAILED)
-               return false;
-       /* Unmap the middle. */
-       munmap(&ptr[5 * page_size], page_size);
-
-       /* Map again. */
-       ptr2 = mmap_(self, variant, &ptr[5 * page_size], page_size, PROT_READ | 
PROT_WRITE,
-                    MAP_FIXED, 5 * page_size);
-
-       if (ptr2 == MAP_FAILED)
-               return false;
-
-       /* Now make sure they all merged. */
-       if (open_self_procmap(&procmap) != 0)
-               return false;
-       if (!find_vma_procmap(&procmap, ptr))
-               return false;
-       if (procmap.query.vma_start != (unsigned long)ptr)
-               return false;
-       if (procmap.query.vma_end != (unsigned long)ptr + 10 * page_size)
-               return false;
-       close_procmap(&procmap);
-
-       return true;
-}
-
 FIXTURE_SETUP(guard_regions)
 {
        self->page_size = (unsigned long)sysconf(_SC_PAGESIZE);
@@ -318,9 +251,6 @@ FIXTURE_SETUP(guard_regions)
        switch (variant->backing) {
        case ANON_BACKED:
                return;
-       case LOCAL_FILE_BACKED:
-               self->fd = open_file("", self->path);
-               break;
        case SHMEM_BACKED:
                self->fd = memfd_create(self->path, 0);
                break;
@@ -1750,55 +1680,6 @@ TEST_F(guard_regions, map_private)
        ASSERT_EQ(munmap(ptr_private, 10 * page_size), 0);
 }
 
-/* Test that guard regions established over a read-only mapping function 
correctly. */
-TEST_F(guard_regions, readonly_file)
-{
-       const unsigned long page_size = self->page_size;
-       char *ptr;
-       int i;
-
-       if (variant->backing != LOCAL_FILE_BACKED)
-               SKIP(return, "Read-only test specific to file-backed");
-
-       /* Map shared so we can populate with pattern, populate it, unmap. */
-       ptr = mmap_(self, variant, NULL, 10 * page_size,
-                   PROT_READ | PROT_WRITE, 0, 0);
-       ASSERT_NE(ptr, MAP_FAILED);
-       set_pattern(ptr, 10, page_size);
-       ASSERT_EQ(munmap(ptr, 10 * page_size), 0);
-       /* Close the fd so we can re-open read-only. */
-       ASSERT_EQ(close(self->fd), 0);
-
-       /* Re-open read-only. */
-       self->fd = open(self->path, O_RDONLY);
-       ASSERT_NE(self->fd, -1);
-       /* Re-map read-only. */
-       ptr = mmap_(self, variant, NULL, 10 * page_size, PROT_READ, 0, 0);
-       ASSERT_NE(ptr, MAP_FAILED);
-
-       /* Mark every other page guarded. */
-       for (i = 0; i < 10; i += 2) {
-               char *ptr_pg = &ptr[i * page_size];
-
-               ASSERT_EQ(madvise(ptr_pg, page_size, MADV_GUARD_INSTALL), 0);
-       }
-
-       /* Assert that the guard regions are in place.*/
-       for (i = 0; i < 10; i++) {
-               char *ptr_pg = &ptr[i * page_size];
-
-               ASSERT_EQ(try_read_buf(ptr_pg), i % 2 != 0);
-       }
-
-       /* Remove guard regions. */
-       ASSERT_EQ(madvise(ptr, 10 * page_size, MADV_GUARD_REMOVE), 0);
-
-       /* Ensure the data is as expected. */
-       ASSERT_TRUE(check_pattern(ptr, 10, page_size));
-
-       ASSERT_EQ(munmap(ptr, 10 * page_size), 0);
-}
-
 TEST_F(guard_regions, fault_around)
 {
        const unsigned long page_size = self->page_size;
@@ -2203,17 +2084,6 @@ TEST_F(guard_regions, collapse)
        if (variant->backing != ANON_BACKED)
                ASSERT_EQ(ftruncate(self->fd, size), 0);
 
-       /*
-        * We must close and re-open local-file backed as read-only for
-        * CONFIG_READ_ONLY_THP_FOR_FS to work.
-        */
-       if (variant->backing == LOCAL_FILE_BACKED) {
-               ASSERT_EQ(close(self->fd), 0);
-
-               self->fd = open(self->path, O_RDONLY);
-               ASSERT_GE(self->fd, 0);
-       }
-
        ptr = mmap_(self, variant, NULL, size, PROT_READ, 0, 0);
        ASSERT_NE(ptr, MAP_FAILED);
 
@@ -2234,13 +2104,7 @@ TEST_F(guard_regions, collapse)
        /* Allow huge page throughout region. */
        ASSERT_EQ(madvise(ptr, size, MADV_HUGEPAGE), 0);
 
-       /*
-        * Now collapse the entire region. This should fail in all cases.
-        *
-        * The madvise() call will also fail if CONFIG_READ_ONLY_THP_FOR_FS is
-        * not set for the local file case, but we can't differentiate whether
-        * this occurred or if the collapse was rightly rejected.
-        */
+       /* Now collapse the entire region. This should fail in all cases. */
        EXPECT_NE(madvise(ptr, size, MADV_COLLAPSE), 0);
 
        /*
@@ -2298,16 +2162,6 @@ TEST_F(guard_regions, smaps)
        ASSERT_TRUE(check_vmflag_guard(ptr));
        ASSERT_TRUE(check_vmflag_guard(&ptr[5 * page_size]));
 
-       /*
-        * If the local file system is unable to merge VMAs due to having
-        * unusual characteristics, there is no point in asserting merge
-        * behaviour.
-        */
-       if (!local_fs_has_sane_mmap(self, variant)) {
-               TH_LOG("local filesystem does not support sane merging skipping 
merge test");
-               return;
-       }
-
        /* Map a fresh VMA between the two split VMAs. */
        ptr2 = mmap_(self, variant, &ptr[4 * page_size], page_size,
                     PROT_READ | PROT_WRITE, MAP_FIXED, 4 * page_size);
-- 
2.43.0


Reply via email to