From nobody Fri Sep 25 20:46:53 2026 Received: from mta0.migadu.com (out-40.mta0.migadu.com [91.218.175.40]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A4E932F3614 for ; Tue, 8 Sep 2026 13:42:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=91.218.175.40 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788874929; cv=none; b=Ib8eqN6C2NKHluclM47RDKnuB21OXmfUDcSWBxwqPqNvJ3GvngNGPvhr/RDJLUQ4GtiAYG6I/O5ITE6gfHfETNVn37gOU99/4lMSsiynCJXNKXNUyUHUt4MXrYlxZ2f1OsZL3WqR3bwpWESzqM7A9z38Fu1HSd7wxnZyEbSNgVU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788874929; c=relaxed/simple; bh=9Pn6WEKh9yWLcc46n2nOTgd0OJ+T+gFpMQTRrWx1hgs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=nGvpD3JArLAsZXWEjtQc6J6tL7HkejlWM0BbtwkRBpIbvDFuEYGWK30A++oCY9Euumerm99IQXhGaB7yzrBw7Tngkm2Uq8eheBC19r2cQ+mqoVe+O2PZyIIjPNlAFtXembW5nxwqguzEqVRW9rRzuAYThOtxHIfNbFYhjwHdi88= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev; spf=pass smtp.mailfrom=linux.dev; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b=MTNKSg6x; arc=none smtp.client-ip=91.218.175.40 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.dev Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b="MTNKSg6x" X-Envelope-To: linux-kernel@vger.kernel.org DKIM-Signature: a=rsa-sha256; bh=9Pn6WEKh9yWLcc46n2nOTgd0OJ+T+gFpMQTRrWx1hgs=; c=simple/simple; d=linux.dev; h=from:to:subject:date:message-id:mime-version:content-type; s=key1; t=1788874914; v=1; x=1789479714; b=MTNKSg6x6bEVRkvz5ATOcXafg42L1fEJGfhYrjA4SxtaGYbfsuv7iekjWiQRnKbGAHj1NkgK Vv72SyhOmcdnVqHu8Qyg5/OCZrw21YpYBSfKtN+fct1ZDPj4A1kL3VjT55uMvf6eD2HmP9Wr98n nVjZ6w+UbXQV5F3S+iOXBlB0= X-Envelope-To: linux-kernel@vger.kernel.org Received: by smtp.migadu.com with ESMTPS id d22640a39a64a70b; Tue, 08 Sep 2026 13:41:54 +0000 X-Mizu-Trace-ID: d22640a39a64a70b X-Migadu-Flow: FLOW_OUT From: Zenghui Yu To: linux-mm@kvack.org, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org Cc: akpm@linux-foundation.org, david@kernel.org, ljs@kernel.org, liam@infradead.org, vbabka@kernel.org, rppt@kernel.org, surenb@google.com, mhocko@suse.com, shuah@kernel.org, gourry@gourry.net, "Zenghui Yu (Huawei)" Subject: [PATCH v2 1/3] selftests/mm: fix size truncation in pagemap_ioctl test Date: Tue, 8 Sep 2026 21:41:15 +0800 Message-ID: <20260908134117.84405-2-zenghui.yu@linux.dev> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260908134117.84405-1-zenghui.yu@linux.dev> References: <20260908134117.84405-1-zenghui.yu@linux.dev> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: "Zenghui Yu (Huawei)" On arm64 with 64K base pages, the huge page size is 512 MiB, and hpage_unit_tests() builds a 5 GiB range (10 * 512 MiB) for its tests. This exceeds the range of the int size parameters of gethugepage(), wp_addr_range() and pagemap_ioctl(). The implicit truncation to 1 GiB makes gethugepage() allocate a too small buffer, while the callers keep operating on the original 5 GiB range, resulting in spurious failures or SIGSEGV. Fix the truncation by changing those size parameters to size_t, and for consistency, also convert the remaining size-related parameters and variables that use int, long or unsigned long long to size_t. Fixes: 46fd75d4a3c9 ("selftests: mm: add pagemap ioctl tests") Assisted-by: GLM-5.3 OpenCode Suggested-by: David Hildenbrand (Arm) Signed-off-by: Zenghui Yu (Huawei) Acked-by: David Hildenbrand (Arm) --- tools/testing/selftests/mm/pagemap_ioctl.c | 55 ++++++++++++---------- 1 file changed, 29 insertions(+), 26 deletions(-) diff --git a/tools/testing/selftests/mm/pagemap_ioctl.c b/tools/testing/sel= ftests/mm/pagemap_ioctl.c index eadc7159ca5b..3665530eda76 100644 --- a/tools/testing/selftests/mm/pagemap_ioctl.c +++ b/tools/testing/selftests/mm/pagemap_ioctl.c @@ -44,7 +44,7 @@ const char *progname; =20 #define LEN(region) ((region.end - region.start)/page_size) =20 -static long pagemap_ioctl(void *start, int len, void *vec, int vec_len, in= t flag, +static long pagemap_ioctl(void *start, size_t len, void *vec, size_t vec_l= en, int flag, int max_pages, long required_mask, long anyof_mask, long excluded_mas= k, long return_mask) { @@ -65,7 +65,7 @@ static long pagemap_ioctl(void *start, int len, void *vec= , int vec_len, int flag return ioctl(pagemap_fd, PAGEMAP_SCAN, &arg); } =20 -static long pagemap_ioc(void *start, int len, void *vec, int vec_len, int = flag, +static long pagemap_ioc(void *start, size_t len, void *vec, size_t vec_len= , int flag, int max_pages, long required_mask, long anyof_mask, long excluded_mask, long return_mask, long *walk_end) { @@ -116,7 +116,7 @@ int init_uffd(void) return 0; } =20 -int wp_init(void *addr, long size) +int wp_init(void *addr, size_t size) { struct uffdio_register uffdio_register; struct uffdio_writeprotect wp; @@ -140,7 +140,7 @@ int wp_init(void *addr, long size) return 0; } =20 -int wp_free(void *addr, long size) +int wp_free(void *addr, size_t size) { struct uffdio_register uffdio_register; =20 @@ -152,7 +152,7 @@ int wp_free(void *addr, long size) return 0; } =20 -int wp_addr_range(void *addr, int size) +int wp_addr_range(void *addr, size_t size) { if (pagemap_ioctl(addr, size, NULL, 0, PM_SCAN_WP_MATCHING | PM_SCAN_CHECK_WPASYNC, @@ -162,7 +162,7 @@ int wp_addr_range(void *addr, int size) return 0; } =20 -void *gethugetlb_mem(int size, int *shmid) +void *gethugetlb_mem(size_t size, int *shmid) { char *mem; =20 @@ -188,7 +188,8 @@ void *gethugetlb_mem(int size, int *shmid) =20 int userfaultfd_tests(void) { - long mem_size, vec_size, written, num_pages =3D 16; + size_t mem_size, vec_size, num_pages =3D 16; + long written; char *mem, *vec; =20 mem_size =3D num_pages * page_size; @@ -229,9 +230,10 @@ int userfaultfd_tests(void) return 0; } =20 -int get_reads(struct page_region *vec, int vec_size) +int get_reads(struct page_region *vec, size_t vec_size) { - int i, sum =3D 0; + size_t i; + int sum =3D 0; =20 for (i =3D 0; i < vec_size; i++) sum +=3D LEN(vec[i]); @@ -241,7 +243,7 @@ int get_reads(struct page_region *vec, int vec_size) =20 int sanity_tests_sd(void) { - unsigned long long mem_size, vec_size, i, total_pages =3D 0; + size_t mem_size, vec_size, i, total_pages =3D 0; long ret, ret2, ret3; int num_pages =3D 1000; int total_writes, total_reads, reads, count; @@ -331,7 +333,7 @@ int sanity_tests_sd(void) if (ret < 0) ksft_exit_fail_msg("error %ld %d %s\n", ret, errno, strerror(errno)); =20 - ksft_test_result((unsigned long long)ret =3D=3D mem_size/(page_size * 2), + ksft_test_result((size_t)ret =3D=3D mem_size/(page_size * 2), "%s Repeated pattern of written and non-written pages\n", __func__); =20 /* 4. Repeated pattern of written and non-written pages in parts */ @@ -682,9 +684,9 @@ int sanity_tests_sd(void) return 0; } =20 -int base_tests(char *prefix, char *mem, unsigned long long mem_size, int s= kip) +int base_tests(char *prefix, char *mem, size_t mem_size, int skip) { - unsigned long long vec_size; + size_t vec_size; int written; struct page_region *vec, *vec2; =20 @@ -787,7 +789,7 @@ int base_tests(char *prefix, char *mem, unsigned long l= ong mem_size, int skip) return 0; } =20 -void *gethugepage(int map_size) +void *gethugepage(size_t map_size) { int ret; char *map; @@ -810,8 +812,8 @@ int hpage_unit_tests(void) char *map; int ret, ret2; size_t num_pages =3D 10; - unsigned long long map_size =3D hpage_size * num_pages; - unsigned long long vec_size =3D map_size/page_size; + size_t map_size =3D hpage_size * num_pages; + size_t vec_size =3D map_size/page_size; struct page_region *vec, *vec2; =20 vec =3D calloc(vec_size, sizeof(struct page_region)); @@ -1002,8 +1004,9 @@ int hpage_unit_tests(void) int unmapped_region_tests(void) { void *start =3D (void *)0x10000000; - int written, len =3D 0x00040000; - long vec_size =3D len / page_size; + int written; + size_t len =3D 0x00040000; + size_t vec_size =3D len / page_size; struct page_region *vec =3D calloc(vec_size, sizeof(struct page_region)); if (!vec) ksft_exit_fail_msg("error nomem\n"); @@ -1072,7 +1075,7 @@ static void test_simple(void) * with no page table, exercising pagemap_scan_pte_hole(); a base-page ran= ge * leaves pte_none entries. */ -static void unpopulated_written_test(const char *name, char *mem, long siz= e, +static void unpopulated_written_test(const char *name, char *mem, size_t s= ize, bool use_thp) { long npages =3D size / page_size, fast =3D 0, slow =3D 0, ret; @@ -1115,7 +1118,7 @@ static void unpopulated_written_test(const char *name= , char *mem, long size, =20 static void unpopulated_scan_test(void) { - long mem_size =3D 16 * page_size; + size_t mem_size =3D 16 * page_size; char *mem; =20 mem =3D mmap(NULL, mem_size, PROT_READ | PROT_WRITE, @@ -1157,8 +1160,8 @@ static void unpopulated_thp_scan_test(void) =20 int sanity_tests(void) { - unsigned long long mem_size, vec_size; - long ret, fd, i, buf_size, nr_pages; + size_t mem_size, vec_size, i, buf_size; + long ret, fd, nr_pages; struct page_region *vec; char *mem, *fmem; struct stat sbuf; @@ -1582,9 +1585,9 @@ static void transact_test(int page_size) =20 void zeropfn_tests(void) { - unsigned long long mem_size; + size_t mem_size, i; struct page_region vec; - int i, ret; + int ret; char *mmap_mem, *mem; =20 /* Test with normal memory */ @@ -1642,8 +1645,8 @@ void zeropfn_tests(void) =20 int main(int __attribute__((unused)) argc, char *argv[]) { - int shmid, buf_size, fd, i, ret; - unsigned long long mem_size; + int shmid, fd, ret; + size_t mem_size, buf_size, i; char *mem, *map, *fmem; struct stat sbuf; =20 --=20 2.53.0 From nobody Fri Sep 25 20:46:53 2026 Received: from mta0.migadu.com (out-63.mta0.migadu.com [91.218.175.63]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5C8AA556BBE for ; Tue, 8 Sep 2026 13:43:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=91.218.175.63 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788875021; cv=none; b=mPOkxX6Eh+d63qEmcBx0ipk3fs2K1h2I3S3cHu4In8O4+3aWeTEmRmMbfx/aOuJ/5bOkIbCbXLejseHhVMP0ogKwpMoz3VaBphsnjt06uBMBwMXTwy50g9hH0Q+2rp0PksVQ5UN3I5kfMxK/FY59gfBpzUwvZlus81iQhY5yi4o= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788875021; c=relaxed/simple; bh=YVHXbf26rA+jKhFYHPEQQG1zeSvG9J2n54qBLSk4eXs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=M8D4C4CllmS2QigsJ6ct8fkMYD5QxMuIgmlepZ2CUmRjxiZtZ7UN3OB9eSBbTLBlewkiTkKdWlqF/5ooy/aFuu9P3sV3lsufVSv/pFuzO3hMSNNRyZHgqYuhTsXczYUFK0CrfyVCr1qPRrx1njuF7zGCgSJ8fd/5VkUJXozJKQo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev; spf=pass smtp.mailfrom=linux.dev; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b=AsvSKsiP; arc=none smtp.client-ip=91.218.175.63 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.dev Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b="AsvSKsiP" X-Envelope-To: linux-kernel@vger.kernel.org DKIM-Signature: a=rsa-sha256; bh=YVHXbf26rA+jKhFYHPEQQG1zeSvG9J2n54qBLSk4eXs=; c=simple/simple; d=linux.dev; h=from:to:subject:date:message-id:mime-version:content-type; s=key1; t=1788875006; v=1; x=1789479806; b=AsvSKsiP1qCoD7qYXZkQirh3mScZWgVvGFeQ8A3f4KDq5NotBxaFkX3sixHHiKD6xKxVVi63 jzYF5gDn86/MYs3wamasAwWImCguV8rxuQPhBxINEtfs3/Qe++FrYdUl/34ncKF1kfWqBNGheXl p4vZK4YVPmRXZLVr98+zBxGM= X-Envelope-To: linux-kernel@vger.kernel.org Received: by smtp.migadu.com with ESMTPS id fac4a1df8e1a2353; Tue, 08 Sep 2026 13:43:26 +0000 X-Mizu-Trace-ID: fac4a1df8e1a2353 X-Migadu-Flow: FLOW_OUT From: Zenghui Yu To: linux-mm@kvack.org, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org Cc: akpm@linux-foundation.org, david@kernel.org, ljs@kernel.org, liam@infradead.org, vbabka@kernel.org, rppt@kernel.org, surenb@google.com, mhocko@suse.com, shuah@kernel.org, gourry@gourry.net, "Zenghui Yu (Huawei)" Subject: [PATCH v2 2/3] selftests/mm: mark file-local symbols of pagemap_ioctl.c static Date: Tue, 8 Sep 2026 21:43:14 +0800 Message-ID: <20260908134315.84431-1-zenghui.yu@linux.dev> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260908134117.84405-1-zenghui.yu@linux.dev> References: <20260908134117.84405-1-zenghui.yu@linux.dev> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: "Zenghui Yu (Huawei)" The file-scope variables (pagemap_fd, uffd, page_size, hpage_size and progname) and most functions of the pagemap_ioctl test are only used locally, but lack the static storage class. Mark them static so that the compiler can catch accidental outer references. Suggested-by: David Hildenbrand (Arm) Signed-off-by: Zenghui Yu (Huawei) Acked-by: David Hildenbrand (Arm) --- tools/testing/selftests/mm/pagemap_ioctl.c | 43 +++++++++++----------- 1 file changed, 21 insertions(+), 22 deletions(-) diff --git a/tools/testing/selftests/mm/pagemap_ioctl.c b/tools/testing/sel= ftests/mm/pagemap_ioctl.c index 3665530eda76..1a87b7483316 100644 --- a/tools/testing/selftests/mm/pagemap_ioctl.c +++ b/tools/testing/selftests/mm/pagemap_ioctl.c @@ -36,11 +36,11 @@ =20 #define TEST_ITERATIONS 100 #define PAGEMAP "/proc/self/pagemap" -int pagemap_fd; -int uffd; -size_t page_size; -size_t hpage_size; -const char *progname; +static int pagemap_fd; +static int uffd; +static size_t page_size; +static size_t hpage_size; +static const char *progname; =20 #define LEN(region) ((region.end - region.start)/page_size) =20 @@ -92,8 +92,7 @@ static long pagemap_ioc(void *start, size_t len, void *ve= c, size_t vec_len, int return ret; } =20 - -int init_uffd(void) +static int init_uffd(void) { struct uffdio_api uffdio_api; =20 @@ -116,7 +115,7 @@ int init_uffd(void) return 0; } =20 -int wp_init(void *addr, size_t size) +static int wp_init(void *addr, size_t size) { struct uffdio_register uffdio_register; struct uffdio_writeprotect wp; @@ -140,7 +139,7 @@ int wp_init(void *addr, size_t size) return 0; } =20 -int wp_free(void *addr, size_t size) +static int wp_free(void *addr, size_t size) { struct uffdio_register uffdio_register; =20 @@ -152,7 +151,7 @@ int wp_free(void *addr, size_t size) return 0; } =20 -int wp_addr_range(void *addr, size_t size) +static int wp_addr_range(void *addr, size_t size) { if (pagemap_ioctl(addr, size, NULL, 0, PM_SCAN_WP_MATCHING | PM_SCAN_CHECK_WPASYNC, @@ -162,7 +161,7 @@ int wp_addr_range(void *addr, size_t size) return 0; } =20 -void *gethugetlb_mem(size_t size, int *shmid) +static void *gethugetlb_mem(size_t size, int *shmid) { char *mem; =20 @@ -186,7 +185,7 @@ void *gethugetlb_mem(size_t size, int *shmid) return mem; } =20 -int userfaultfd_tests(void) +static int userfaultfd_tests(void) { size_t mem_size, vec_size, num_pages =3D 16; long written; @@ -230,7 +229,7 @@ int userfaultfd_tests(void) return 0; } =20 -int get_reads(struct page_region *vec, size_t vec_size) +static int get_reads(struct page_region *vec, size_t vec_size) { size_t i; int sum =3D 0; @@ -241,7 +240,7 @@ int get_reads(struct page_region *vec, size_t vec_size) return sum; } =20 -int sanity_tests_sd(void) +static int sanity_tests_sd(void) { size_t mem_size, vec_size, i, total_pages =3D 0; long ret, ret2, ret3; @@ -684,7 +683,7 @@ int sanity_tests_sd(void) return 0; } =20 -int base_tests(char *prefix, char *mem, size_t mem_size, int skip) +static int base_tests(char *prefix, char *mem, size_t mem_size, int skip) { size_t vec_size; int written; @@ -789,7 +788,7 @@ int base_tests(char *prefix, char *mem, size_t mem_size= , int skip) return 0; } =20 -void *gethugepage(size_t map_size) +static void *gethugepage(size_t map_size) { int ret; char *map; @@ -807,7 +806,7 @@ void *gethugepage(size_t map_size) return map; } =20 -int hpage_unit_tests(void) +static int hpage_unit_tests(void) { char *map; int ret, ret2; @@ -1001,7 +1000,7 @@ int hpage_unit_tests(void) return 0; } =20 -int unmapped_region_tests(void) +static int unmapped_region_tests(void) { void *start =3D (void *)0x10000000; int written; @@ -1158,7 +1157,7 @@ static void unpopulated_thp_scan_test(void) munmap(area, 2 * hpage_size); } =20 -int sanity_tests(void) +static int sanity_tests(void) { size_t mem_size, vec_size, i, buf_size; long ret, fd, nr_pages; @@ -1330,7 +1329,7 @@ int sanity_tests(void) return 0; } =20 -int mprotect_tests(void) +static int mprotect_tests(void) { int ret; char *mem, *mem2; @@ -1450,7 +1449,7 @@ static ssize_t get_dirty_pages_reset(char *mem, unsig= ned int count, return cnt; } =20 -void *thread_proc(void *mem) +static void *thread_proc(void *mem) { int *m =3D mem; long curr_faults, faults; @@ -1583,7 +1582,7 @@ static void transact_test(int page_size) extra_thread_faults); } =20 -void zeropfn_tests(void) +static void zeropfn_tests(void) { size_t mem_size, i; struct page_region vec; --=20 2.53.0 From nobody Fri Sep 25 20:46:53 2026 Received: from mta1.migadu.com (out-104.mta1.migadu.com [95.215.58.104]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5F80E4CA79A for ; Tue, 8 Sep 2026 13:44:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=95.215.58.104 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788875069; cv=none; b=JGuOxsmVQLoMkB67+2D218tdkVTLeKT2jPLesP1FHRM+BWuxzsl1vVY/ZikyQlj7oaeRhGg5g20gyQdAWpvbWssesfyNECQxXpaO4wdZkWfzuBGu1yPPTu4lpy1a5PFCEZE7+KIWkgC2IL1XtG3f09lWPOYbjRlOH3bYI8IHZg4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788875069; c=relaxed/simple; bh=65dsR/AIsa1KwD07S3iIYP5bJ3Epc26abAu9BtMFUS4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=tV+Etc9PSiGAZAZ4LlBsUvZysJzVeeHZX+9eWkhmZMkYQ+iZcVzVg8S9SijaWLYFIUOd2eMuI/E1xklCvQ9s/5/kV4TPbl1oujPq4bvD1lv0wCGjEAXKCMx0R81KL8ENrHLfMiVC+FtoIbMmtcaSQ/h4WHBP30eP/FgfQvE/jJQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev; spf=pass smtp.mailfrom=linux.dev; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b=Fad6sxFg; arc=none smtp.client-ip=95.215.58.104 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.dev Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.dev Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linux.dev header.i=@linux.dev header.b="Fad6sxFg" X-Envelope-To: linux-kernel@vger.kernel.org DKIM-Signature: a=rsa-sha256; bh=65dsR/AIsa1KwD07S3iIYP5bJ3Epc26abAu9BtMFUS4=; c=simple/simple; d=linux.dev; h=from:to:subject:date:message-id:mime-version:content-type; s=key1; t=1788875055; v=1; x=1789479855; b=Fad6sxFgcBzdmpNy3jWqhhFI1K0cG5IVG9G/qh60aeLcUnSIkZ3a3arHJ8sUWD1VeQD1Bu+4 j6mBw9BkctCkJudw7VzZgEQR8RvhCinzs3ntrpf084Fdc8S+lE0MCabmKv9iVeDGPojdlI/ugRT xSz9X6BFTKQVx8oH2WfkiNsI= X-Envelope-To: linux-kernel@vger.kernel.org Received: by smtp.migadu.com with ESMTPS id ce353f69015ecc17; Tue, 08 Sep 2026 13:44:14 +0000 X-Mizu-Trace-ID: ce353f69015ecc17 X-Migadu-Flow: FLOW_OUT From: Zenghui Yu To: linux-mm@kvack.org, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org Cc: akpm@linux-foundation.org, david@kernel.org, ljs@kernel.org, liam@infradead.org, vbabka@kernel.org, rppt@kernel.org, surenb@google.com, mhocko@suse.com, shuah@kernel.org, gourry@gourry.net, "Zenghui Yu (Huawei)" Subject: [PATCH v2 3/3] selftests/mm: init page sizes early in pagemap_ioctl test Date: Tue, 8 Sep 2026 21:44:05 +0800 Message-ID: <20260908134405.84448-1-zenghui.yu@linux.dev> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260908134117.84405-1-zenghui.yu@linux.dev> References: <20260908134117.84405-1-zenghui.yu@linux.dev> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: "Zenghui Yu (Huawei)" Initialize page_size and hpage_size before calling init_uffd(), hugetlb_setup_default(), etc. That won't fix anything, but it is safer and saner to get these globals set up before doing other things. While at it, drop the page_size parameter of transact_test(), which is actually unnecessary. Suggested-by: Andrew Morton Signed-off-by: Zenghui Yu (Huawei) --- tools/testing/selftests/mm/pagemap_ioctl.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/tools/testing/selftests/mm/pagemap_ioctl.c b/tools/testing/sel= ftests/mm/pagemap_ioctl.c index 1a87b7483316..d9a4fb782ecf 100644 --- a/tools/testing/selftests/mm/pagemap_ioctl.c +++ b/tools/testing/selftests/mm/pagemap_ioctl.c @@ -1489,7 +1489,7 @@ static void *thread_proc(void *mem) return NULL; } =20 -static void transact_test(int page_size) +static void transact_test(void) { unsigned int i, count, extra_pages; unsigned int c; @@ -1653,6 +1653,9 @@ int main(int __attribute__((unused)) argc, char *argv= []) =20 ksft_print_header(); =20 + page_size =3D getpagesize(); + hpage_size =3D read_pmd_pagesize(); + if (init_uffd()) ksft_exit_skip("Failed to initialize userfaultfd\n"); =20 @@ -1661,9 +1664,6 @@ int main(int __attribute__((unused)) argc, char *argv= []) =20 ksft_set_plan(119); =20 - page_size =3D getpagesize(); - hpage_size =3D read_pmd_pagesize(); - pagemap_fd =3D open(PAGEMAP, O_RDONLY); if (pagemap_fd < 0) ksft_exit_fail_msg("Failed to open " PAGEMAP "\n"); @@ -1823,7 +1823,7 @@ int main(int __attribute__((unused)) argc, char *argv= []) mprotect_tests(); =20 /* 13. Transact test */ - transact_test(page_size); + transact_test(); =20 /* 14. Sanity testing */ sanity_tests(); --=20 2.53.0