]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
selftests/mm: merge default_huge_page_size() into one
authorPeter Xu <peterx@redhat.com>
Wed, 12 Apr 2023 16:42:23 +0000 (12:42 -0400)
committerAndrew Morton <akpm@linux-foundation.org>
Tue, 18 Apr 2023 23:30:03 +0000 (16:30 -0700)
There're already 3 same definitions of the three functions.  Move it into
vm_util.[ch].

Link: https://lkml.kernel.org/r/20230412164223.328134-1-peterx@redhat.com
Signed-off-by: Peter Xu <peterx@redhat.com>
Reviewed-by: Axel Rasmussen <axelrasmussen@google.com>
Reviewed-by: Mike Kravetz <mike.kravetz@oracle.com>
Reviewed-by: David Hildenbrand <david@redhat.com>
Reviewed-by: Mike Rapoport (IBM) <rppt@kernel.org>
Cc: Dmitry Safonov <0x7f454c46@gmail.com>
Cc: Zach O'Keefe <zokeefe@google.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
tools/testing/selftests/mm/hugetlb-madvise.c
tools/testing/selftests/mm/thuge-gen.c
tools/testing/selftests/mm/userfaultfd.c
tools/testing/selftests/mm/vm_util.c
tools/testing/selftests/mm/vm_util.h

index 9a127a8fe1761246f088be6ddff8b94895816f3c..28426e30d9bc2fb40f1a780caefa0709d567cb05 100644 (file)
@@ -18,6 +18,7 @@
 #include <unistd.h>
 #include <sys/mman.h>
 #include <fcntl.h>
+#include "vm_util.h"
 
 #define MIN_FREE_PAGES 20
 #define NR_HUGE_PAGES  10      /* common number of pages to map/allocate */
 unsigned long huge_page_size;
 unsigned long base_page_size;
 
-/*
- * default_huge_page_size copied from mlock2-tests.c
- */
-unsigned long default_huge_page_size(void)
-{
-       unsigned long hps = 0;
-       char *line = NULL;
-       size_t linelen = 0;
-       FILE *f = fopen("/proc/meminfo", "r");
-
-       if (!f)
-               return 0;
-       while (getline(&line, &linelen, f) > 0) {
-               if (sscanf(line, "Hugepagesize:       %lu kB", &hps) == 1) {
-                       hps <<= 10;
-                       break;
-               }
-       }
-
-       free(line);
-       fclose(f);
-       return hps;
-}
-
 unsigned long get_free_hugepages(void)
 {
        unsigned long fhp = 0;
index 361ef7192cc66619b16eabef2dc316267b003010..380ab5f0a5340ef12a042ba9c29aac86c942e8f8 100644 (file)
@@ -24,6 +24,7 @@
 #include <unistd.h>
 #include <stdarg.h>
 #include <string.h>
+#include "vm_util.h"
 
 #define err(x) perror(x), exit(1)
 
@@ -74,24 +75,6 @@ void find_pagesizes(void)
        globfree(&g);
 }
 
-unsigned long default_huge_page_size(void)
-{
-       unsigned long hps = 0;
-       char *line = NULL;
-       size_t linelen = 0;
-       FILE *f = fopen("/proc/meminfo", "r");
-       if (!f)
-               return 0;
-       while (getline(&line, &linelen, f) > 0) {
-               if (sscanf(line, "Hugepagesize:       %lu kB", &hps) == 1) {
-                       hps <<= 10;
-                       break;
-               }
-       }
-       free(line);
-       return hps;
-}
-
 void show(unsigned long ps)
 {
        char buf[100];
index a96d126cb40ec7bcabf1c67711ad0fd6714d020d..4cc80a0e895511e5ed10952b774eae65c5d3b0ee 100644 (file)
@@ -1703,30 +1703,6 @@ static int userfaultfd_stress(void)
                || userfaultfd_events_test() || userfaultfd_minor_test();
 }
 
-/*
- * Copied from mlock2-tests.c
- */
-unsigned long default_huge_page_size(void)
-{
-       unsigned long hps = 0;
-       char *line = NULL;
-       size_t linelen = 0;
-       FILE *f = fopen("/proc/meminfo", "r");
-
-       if (!f)
-               return 0;
-       while (getline(&line, &linelen, f) > 0) {
-               if (sscanf(line, "Hugepagesize:       %lu kB", &hps) == 1) {
-                       hps <<= 10;
-                       break;
-               }
-       }
-
-       free(line);
-       fclose(f);
-       return hps;
-}
-
 static void set_test_type(const char *type)
 {
        if (!strcmp(type, "anon")) {
index 85411ee7ff8b88c395a8586f6a7bfed0eedc42c2..7ffad87aa7e8701732809304edaae1aa7fb452ba 100644 (file)
@@ -180,3 +180,24 @@ int64_t allocate_transhuge(void *ptr, int pagemap_fd)
 
        return -1;
 }
+
+unsigned long default_huge_page_size(void)
+{
+       unsigned long hps = 0;
+       char *line = NULL;
+       size_t linelen = 0;
+       FILE *f = fopen("/proc/meminfo", "r");
+
+       if (!f)
+               return 0;
+       while (getline(&line, &linelen, f) > 0) {
+               if (sscanf(line, "Hugepagesize:       %lu kB", &hps) == 1) {
+                       hps <<= 10;
+                       break;
+               }
+       }
+
+       free(line);
+       fclose(f);
+       return hps;
+}
index 6edeb531afc60c7dbb5529731ca6879ab02a97fa..d7163fff8fb7163093026b8e4c84288595da0e76 100644 (file)
@@ -35,6 +35,7 @@ bool check_huge_anon(void *addr, int nr_hpages, uint64_t hpage_size);
 bool check_huge_file(void *addr, int nr_hpages, uint64_t hpage_size);
 bool check_huge_shmem(void *addr, int nr_hpages, uint64_t hpage_size);
 int64_t allocate_transhuge(void *ptr, int pagemap_fd);
+unsigned long default_huge_page_size(void);
 
 /*
  * On ppc64 this will only work with radix 2M hugepage size