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