]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
selftests/mm: gup_test: stop testing FOLL_TOUCH
authorPeng Li <peng8420.li@gmail.com>
Mon, 17 Nov 2025 15:40:11 +0000 (23:40 +0800)
committerAndrew Morton <akpm@linux-foundation.org>
Mon, 24 Nov 2025 23:08:53 +0000 (15:08 -0800)
commit 0f20bba1688b ("mm/gup: explicitly define and check internal GUP
flags, disallow FOLL_TOUCH") marked FOLL_TOUCH as a GUP-internal flag.

This causes a warning to fire when running gup_test, for example:

    $ ./gup_test -L -r 100 -z

dmesg:
    WARNING: CPU: 1 PID: 117 at mm/gup.c:2512 is_valid_gup_args+0x66/0x8c

Therefore, remove the "FOLL_TOUCH" test code from gup_test.c.

Link: https://lkml.kernel.org/r/20251117154012.197499-1-peng8420.li@gmail.com
Signed-off-by: Peng Li <peng8420.li@gmail.com>
Reviewed-by: John Hubbard <jhubbard@nvidia.com>
Reviewed-by: David Hildenbrand (Red Hat) <david@kernel.org>
Cc: Dan Williams <dan.j.williams@intel.com>
Cc: Jason Gunthorpe <jgg@ziepe.ca>
Cc: Oscar Salvador <osalvador@suse.de>
Cc: Peter Xu <peterx@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
tools/testing/selftests/mm/gup_test.c

index 8900b840c17a709a7a583ac48a0ed50f66de3119..75f7134d529d9c0a6e40a97a357752e9313dd88d 100644 (file)
@@ -19,7 +19,6 @@
 
 /* Just the flags we need, copied from mm.h: */
 #define FOLL_WRITE     0x01    /* check pte is writable */
-#define FOLL_TOUCH     0x02    /* mark page accessed */
 
 #define GUP_TEST_FILE "/sys/kernel/debug/gup_test"
 
@@ -93,7 +92,7 @@ int main(int argc, char **argv)
 {
        struct gup_test gup = { 0 };
        int filed, i, opt, nr_pages = 1, thp = -1, write = 1, nthreads = 1, ret;
-       int flags = MAP_PRIVATE, touch = 0;
+       int flags = MAP_PRIVATE;
        char *file = "/dev/zero";
        pthread_t *tid;
        char *p;
@@ -170,10 +169,6 @@ int main(int argc, char **argv)
                case 'H':
                        flags |= (MAP_HUGETLB | MAP_ANONYMOUS);
                        break;
-               case 'z':
-                       /* fault pages in gup, do not fault in userland */
-                       touch = 1;
-                       break;
                default:
                        ksft_exit_fail_msg("Wrong argument\n");
                }
@@ -244,18 +239,9 @@ int main(int argc, char **argv)
        else if (thp == 0)
                madvise(p, size, MADV_NOHUGEPAGE);
 
-       /*
-        * FOLL_TOUCH, in gup_test, is used as an either/or case: either
-        * fault pages in from the kernel via FOLL_TOUCH, or fault them
-        * in here, from user space. This allows comparison of performance
-        * between those two cases.
-        */
-       if (touch) {
-               gup.gup_flags |= FOLL_TOUCH;
-       } else {
-               for (; (unsigned long)p < gup.addr + size; p += psize())
-                       p[0] = 0;
-       }
+       /* Fault them in here, from user space. */
+       for (; (unsigned long)p < gup.addr + size; p += psize())
+               p[0] = 0;
 
        tid = malloc(sizeof(pthread_t) * nthreads);
        assert(tid);