From patchwork Mon Jun 16 16:06:28 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Aboorva Devarajan X-Patchwork-Id: 897147 Received: from mx0b-001b2d01.pphosted.com (mx0b-001b2d01.pphosted.com [148.163.158.5]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8CB5E286438; Mon, 16 Jun 2025 16:07:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.163.158.5 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750090045; cv=none; b=tjYfGA6FDPyKp3H+eEdnoYaF9uuJ4l6MrByGRzaJsIul+urbbWeY9XUtcDkdS4hXC0kVpOPipygwz4AnfXVETDaMLtpE/lMAnnBgANugzQhmQa7WlazyVsqK34XsjFN7vTggMHHfpgkI76POMLvrgYek3T5rZDSxdrDn9aBWfP0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750090045; c=relaxed/simple; bh=oHFZRZ3LfQZr5y/L4RTchRj2bJ20p1xbeXBC8n3jnNw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=aDUYclWPF68iHnjBxbyw6ZRBm/InGZSaZMfuDrRUKM6MoO3DgJrX4TL2SW20ezdsVxTxJ1SgKzTrLCK8DtevzLAr28hp4yIhy8GhjqIIisewjCSw0ZI+5cO9SIsR2+YXGO/TBfoQ6+p1/ZHucyhimRnfJAkA3EBaa0+iUeb/vAw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.ibm.com; spf=pass smtp.mailfrom=linux.ibm.com; dkim=pass (2048-bit key) header.d=ibm.com header.i=@ibm.com header.b=saNTRhBk; arc=none smtp.client-ip=148.163.158.5 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.ibm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.ibm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=ibm.com header.i=@ibm.com header.b="saNTRhBk" Received: from pps.filterd (m0356516.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 55G88dRW014140; Mon, 16 Jun 2025 16:06:58 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=pp1; bh=xe0e17Cr1rJj295eX hp8vC9URjObKeiC1eU0faSu0MY=; b=saNTRhBk1qp2DZ82wm5UENHtt2QlyWfCx oB9bVix9PXWXMDoDywGuS8PWEtJhV20nMOkM3PbZmo3sCFvRQH3yxrBzz+5KfpOF cGQ6L5oTDYDX/sywMPZ38rJUHCc86cWwAmMsu1FkrjEV7r298fVoEOlvmH/kZgHL tMCWS0uIKsSLrMyWXR2bu38wTEuN1mk8wlhEKkoyAcNvQSnT08NaxvaFhqz7vCli t+ZnrRVj9MgmxyD8FcFFBbEsBoLPOhVVQXop7n9CHu/Q+zTGFkVrzPlMAbtvVkoF xFcn6nrQEVrRbSEiMnYsjxMl1fTf/eVquLIgVKXdbD1O7tYDlN9nw== Received: from pps.reinject (localhost [127.0.0.1]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4794qp1wyv-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 16 Jun 2025 16:06:58 +0000 (GMT) Received: from m0356516.ppops.net (m0356516.ppops.net [127.0.0.1]) by pps.reinject (8.18.0.8/8.18.0.8) with ESMTP id 55GG6vfX006822; Mon, 16 Jun 2025 16:06:57 GMT Received: from ppma21.wdc07v.mail.ibm.com (5b.69.3da9.ip4.static.sl-reverse.com [169.61.105.91]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4794qp1wyt-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 16 Jun 2025 16:06:57 +0000 (GMT) Received: from pps.filterd (ppma21.wdc07v.mail.ibm.com [127.0.0.1]) by ppma21.wdc07v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 55GCcx9P000724; Mon, 16 Jun 2025 16:06:56 GMT Received: from smtprelay02.fra02v.mail.ibm.com ([9.218.2.226]) by ppma21.wdc07v.mail.ibm.com (PPS) with ESMTPS id 479mdnxw6n-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 16 Jun 2025 16:06:56 +0000 Received: from smtpav05.fra02v.mail.ibm.com (smtpav05.fra02v.mail.ibm.com [10.20.54.104]) by smtprelay02.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 55GG6qjG31654396 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 16 Jun 2025 16:06:53 GMT Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id D702120040; Mon, 16 Jun 2025 16:06:52 +0000 (GMT) Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 097142004D; Mon, 16 Jun 2025 16:06:47 +0000 (GMT) Received: from li-c18b6acc-24ee-11b2-a85c-81492619bda1.ibm.com.com (unknown [9.43.33.110]) by smtpav05.fra02v.mail.ibm.com (Postfix) with ESMTP; Mon, 16 Jun 2025 16:06:46 +0000 (GMT) From: Aboorva Devarajan To: akpm@linux-foundation.org, Liam.Howlett@oracle.com, lorenzo.stoakes@oracle.com, shuah@kernel.org, pfalcato@suse.de, david@redhat.com, ziy@nvidia.com, baolin.wang@linux.alibaba.com, npache@redhat.com, ryan.roberts@arm.com, dev.jain@arm.com, baohua@kernel.org Cc: linux-mm@kvack.org, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org, donettom@linux.ibm.com, ritesh.list@gmail.com, aboorvad@linux.ibm.com Subject: [PATCH 2/6] selftest/mm: Fix ksm_funtional_test failures Date: Mon, 16 Jun 2025 21:36:28 +0530 Message-ID: <20250616160632.35250-3-aboorvad@linux.ibm.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250616160632.35250-1-aboorvad@linux.ibm.com> References: <20250616160632.35250-1-aboorvad@linux.ibm.com> Precedence: bulk X-Mailing-List: linux-kselftest@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-TM-AS-GCONF: 00 X-Proofpoint-GUID: y6-_jGxMO5Ixf-POL2mqGkYKbYwgfbm9 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNjE2MDEwMiBTYWx0ZWRfX34W9jF4ui3Cu EsFMr1Z3PTiuT5+jFm5U6x/pNBXOXOvzAJIHjQqP5LIJwdahLaUTtQU7/Cbx606KEbXwaR55ZMc 1UBdDlVuSGMsDGkvfY7uQ1cNKzbh7ioY87VdOrj1f1CVHRr6FM1ctv2/4GDoYTvDkb3yZn7Fv7H Fw60Ju5277gBKI1+55xLGFSpMavBQHkOfEPLwjllKb+EBdiWgfDZGi9F8qx/nmxVJijeJud9O7c Yn4ThY3fWjfdO59jB5lGyt6sxo63kM+D/W+6KSEZYvvMDNdERrqGySESVy/Q6HLqBr31pthVrKD KJl4F6IawDKnlXdyVxWgrUNA1Vwq8wtla7+17SFmey8cSeUUMUqoH0kpZdMP/ejTw+gJp5HSEFp yiG0YQhwdyG51Fj4/g28VLUceBzGfkfAZelrrdaI++VVh01YXCjmMdW/hjUAKSrkZtr44Hxp X-Authority-Analysis: v=2.4 cv=NYfm13D4 c=1 sm=1 tr=0 ts=68504122 cx=c_pps a=GFwsV6G8L6GxiO2Y/PsHdQ==:117 a=GFwsV6G8L6GxiO2Y/PsHdQ==:17 a=6IFa9wvqVegA:10 a=VnNF1IyMAAAA:8 a=XZ3g74cd2hs7hPLhLkYA:9 X-Proofpoint-ORIG-GUID: -GNsCcKqF_06mTWmQeYuwTMVY67S1mTq X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.0.736,FMLib:17.12.80.40 definitions=2025-06-16_08,2025-06-13_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 adultscore=0 suspectscore=0 mlxlogscore=999 mlxscore=0 impostorscore=0 phishscore=0 lowpriorityscore=0 clxscore=1011 spamscore=0 priorityscore=1501 malwarescore=0 classifier=spam authscore=0 authtc=n/a authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2505280000 definitions=main-2506160102 From: Donet Tom This patch fixed 2 issues. 1)After fork() in test_prctl_fork, the child process uses the file descriptors from the parent process to read ksm_stat and ksm_merging_pages. This results in incorrect values being read (parent process ksm_stat and ksm_merge_pages will be read in child), causing the test to fail. This patch calls init_global_file_handles() in the child process to ensure that the current process's file descriptors are used to read ksm_stat and ksm_merging_pages. 2) All tests currently call ksm_merge to trigger page merging. To ensure the system remains in a consistent state for subsequent tests, it is better to call ksm_unmerge during the test cleanup phase In the test_prctl_fork test, after a fork(), reading ksm_merging_pages in the child process returns a non-zero value because a previous test performed a merge, and the child's memory state is inherited from the parent. Although the child process calls ksm_unmerge, the ksm_merging_pages counter in the parent is reset to zero, while the child's counter remains unchanged. This discrepancy causes the test to fail. To avoid this issue, each test should call ksm_unmerge during cleanup to ensure the counter is reset and the system is in a clean state for subsequent tests. Signed-off-by: Donet Tom Signed-off-by: Aboorva Devarajan --- tools/testing/selftests/mm/ksm_functional_tests.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/tools/testing/selftests/mm/ksm_functional_tests.c b/tools/testing/selftests/mm/ksm_functional_tests.c index b61803e36d1c..d7d3c22c077a 100644 --- a/tools/testing/selftests/mm/ksm_functional_tests.c +++ b/tools/testing/selftests/mm/ksm_functional_tests.c @@ -46,6 +46,8 @@ static int ksm_use_zero_pages_fd; static int pagemap_fd; static size_t pagesize; +static void init_global_file_handles(void); + static bool range_maps_duplicates(char *addr, unsigned long size) { unsigned long offs_a, offs_b, pfn_a, pfn_b; @@ -274,6 +276,7 @@ static void test_unmerge(void) ksft_test_result(!range_maps_duplicates(map, size), "Pages were unmerged\n"); unmap: + ksm_unmerge(); munmap(map, size); } @@ -338,6 +341,7 @@ static void test_unmerge_zero_pages(void) ksft_test_result(!range_maps_duplicates(map, size), "KSM zero pages were unmerged\n"); unmap: + ksm_unmerge(); munmap(map, size); } @@ -366,6 +370,7 @@ static void test_unmerge_discarded(void) ksft_test_result(!range_maps_duplicates(map, size), "Pages were unmerged\n"); unmap: + ksm_unmerge(); munmap(map, size); } @@ -428,6 +433,7 @@ static void test_unmerge_uffd_wp(void) close_uffd: close(uffd); unmap: + ksm_unmerge(); munmap(map, size); } #endif @@ -491,6 +497,7 @@ static int test_child_ksm(void) else if (map == MAP_MERGE_SKIP) return -3; + ksm_unmerge(); munmap(map, size); return 0; } @@ -524,6 +531,7 @@ static void test_prctl_fork(void) child_pid = fork(); if (!child_pid) { + init_global_file_handles(); exit(test_child_ksm()); } else if (child_pid < 0) { ksft_test_result_fail("fork() failed\n"); @@ -620,6 +628,7 @@ static void test_prctl_unmerge(void) ksft_test_result(!range_maps_duplicates(map, size), "Pages were unmerged\n"); unmap: + ksm_unmerge(); munmap(map, size); } @@ -653,6 +662,7 @@ static void test_prot_none(void) ksft_test_result(!range_maps_duplicates(map, size), "Pages were unmerged\n"); unmap: + ksm_unmerge(); munmap(map, size); } From patchwork Mon Jun 16 16:06:30 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Aboorva Devarajan X-Patchwork-Id: 897146 Received: from mx0a-001b2d01.pphosted.com (mx0a-001b2d01.pphosted.com [148.163.156.1]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7F51128641F; Mon, 16 Jun 2025 16:07:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.163.156.1 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750090056; cv=none; b=R1umfLe6pt+DhnGJSuh36vyKt79AnzJoHD1TngFRVgtvkSzS309L9kePLo/dYDlb6Tzzl3/nr54UFWumulhcDhdZn2e5p4Na6xA5UPCzJx9G9wBVszsKun3rn/2gNI3kPy7wRH2B6Moau8zGEvoNOMv9Nmxnwq7kp71hQg70rMo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1750090056; c=relaxed/simple; bh=Ja0mSxvul1qAPjO3+U+wyJO9DIdCThtiADXRlbc9cJM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=FCefhQzjdMyR6iGGVkR/mpZV0diSTS48IiDQkHqZK9ZL3O+u++q15lcK5jPvB2L5HoLCd/VdxbKz1vhxO10t8efjx9hTHzw7ZVyx0orSrlaJ9e1SyrhK6Gv0P08v1cD1wMprPkvEIE/cuWRtOOmrVy/U+0Zd0RM4ZEWYCwE8aIs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.ibm.com; spf=pass smtp.mailfrom=linux.ibm.com; dkim=pass (2048-bit key) header.d=ibm.com header.i=@ibm.com header.b=XtWjUl0r; arc=none smtp.client-ip=148.163.156.1 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.ibm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.ibm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=ibm.com header.i=@ibm.com header.b="XtWjUl0r" Received: from pps.filterd (m0353729.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 55G8IfSg022514; Mon, 16 Jun 2025 16:07:11 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=pp1; bh=HTcV/GTHirCIHdbLS qr3LUlvn8RXjF12dUqklXWyiKE=; b=XtWjUl0rUDJlQiCic7wYwcoiZRfUviJHB yVY1KlXjcNObWpOBDQeF4CWR29dCJGZ4RVnTSCbZR6qXdGBO6WHJkj6LGmlt7r6G LNbuh/j5TR9wRaxNgv259N/TLSQw6CWqxjnyrRC1J3wZCM7yUANP140ojlloDB/S D72ws14gD93eAnZc0YJKgBwS5xgyK8Tqf658AQXF4v9/Ctp5VX+CBCRMMQLhV/CF 8RVigu7NvlpMDvPD2v/ZcvwFknck8ou7cV/K9pP2oGc+aHdZX1AAu+cvWV8WwV3k gMiNVilOfCPITg9qIMefee9QHNlzFgLpExrB2hg7tvs87KvxMhoVw== Received: from pps.reinject (localhost [127.0.0.1]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4790s4axm2-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 16 Jun 2025 16:07:11 +0000 (GMT) Received: from m0353729.ppops.net (m0353729.ppops.net [127.0.0.1]) by pps.reinject (8.18.0.8/8.18.0.8) with ESMTP id 55GFv3An001705; Mon, 16 Jun 2025 16:07:10 GMT Received: from ppma13.dal12v.mail.ibm.com (dd.9e.1632.ip4.static.sl-reverse.com [50.22.158.221]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4790s4axkx-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 16 Jun 2025 16:07:10 +0000 (GMT) Received: from pps.filterd (ppma13.dal12v.mail.ibm.com [127.0.0.1]) by ppma13.dal12v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 55GDEcE2025763; Mon, 16 Jun 2025 16:07:09 GMT Received: from smtprelay07.fra02v.mail.ibm.com ([9.218.2.229]) by ppma13.dal12v.mail.ibm.com (PPS) with ESMTPS id 479xy5n0nn-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 16 Jun 2025 16:07:09 +0000 Received: from smtpav05.fra02v.mail.ibm.com (smtpav05.fra02v.mail.ibm.com [10.20.54.104]) by smtprelay07.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 55GG75YM53084520 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 16 Jun 2025 16:07:06 GMT Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id D20FF20043; Mon, 16 Jun 2025 16:07:05 +0000 (GMT) Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 0B67220040; Mon, 16 Jun 2025 16:07:00 +0000 (GMT) Received: from li-c18b6acc-24ee-11b2-a85c-81492619bda1.ibm.com.com (unknown [9.43.33.110]) by smtpav05.fra02v.mail.ibm.com (Postfix) with ESMTP; Mon, 16 Jun 2025 16:06:59 +0000 (GMT) From: Aboorva Devarajan To: akpm@linux-foundation.org, Liam.Howlett@oracle.com, lorenzo.stoakes@oracle.com, shuah@kernel.org, pfalcato@suse.de, david@redhat.com, ziy@nvidia.com, baolin.wang@linux.alibaba.com, npache@redhat.com, ryan.roberts@arm.com, dev.jain@arm.com, baohua@kernel.org Cc: linux-mm@kvack.org, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org, donettom@linux.ibm.com, ritesh.list@gmail.com, aboorvad@linux.ibm.com Subject: [PATCH 4/6] mm/selftests: Fix split_huge_page_test failure on systems with 64KB page size Date: Mon, 16 Jun 2025 21:36:30 +0530 Message-ID: <20250616160632.35250-5-aboorvad@linux.ibm.com> X-Mailer: git-send-email 2.49.0 In-Reply-To: <20250616160632.35250-1-aboorvad@linux.ibm.com> References: <20250616160632.35250-1-aboorvad@linux.ibm.com> Precedence: bulk X-Mailing-List: linux-kselftest@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-TM-AS-GCONF: 00 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNjE2MDEwMiBTYWx0ZWRfX7dhMgrcoztq8 VAUyHH/b2nTlwCVpK0BzP3SGBZrmTLJeWLn+c05yjZMMMBW+K0tKHGVkJA/0LE7w8SrNAXX90U+ kxakpQP01uOyEhlhtiYz5x5T59X/yJulV/QiYhd1lUPo1eyTC+dqPyrTs025giJqKByjfatiAOu CB79FGmTeUe/PN4pPQV9F/vW5IH7832DEnr6Qq1+fvyTaS5etYd5Z83vSpTbBf/BOcnyaKEQA6U m36tbjhu0cfR8CzkgrCOmtRR/AvHrJaW1NziX2nbVl5mFaXwsI6S2AfaB7Po152Nu8Dt0+O95iN Sp3LUt87czNMhExTdP8iYWW6AeU4+MxP4dFq5N5mz1aFrOyHlkj4pggffx97ZEaHqWPFwg0gt2w LBnVBj2HESUflNr1IW8d0sP60rtziW41gXPmuXp0tkshHgPdQXvHPmvNss860Oqbfg+dY41s X-Proofpoint-ORIG-GUID: X3VKnlnOrk1z4Z50R-aErujIVFdVNSrn X-Authority-Analysis: v=2.4 cv=Qc9mvtbv c=1 sm=1 tr=0 ts=6850412f cx=c_pps a=AfN7/Ok6k8XGzOShvHwTGQ==:117 a=AfN7/Ok6k8XGzOShvHwTGQ==:17 a=6IFa9wvqVegA:10 a=VnNF1IyMAAAA:8 a=tuUElCKEKN7k3CmPoYkA:9 X-Proofpoint-GUID: s_E1h5Ed_1QzAb0WKlS1LVDaA9tCsvUg X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.0.736,FMLib:17.12.80.40 definitions=2025-06-16_08,2025-06-13_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 malwarescore=0 spamscore=0 impostorscore=0 phishscore=0 mlxscore=0 lowpriorityscore=0 clxscore=1011 adultscore=0 bulkscore=0 mlxlogscore=999 suspectscore=0 classifier=spam authscore=0 authtc=n/a authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2505280000 definitions=main-2506160102 From: Donet Tom The split_huge_page_test fails on systems with a 64KB base page size. This is because the order of a 2MB huge page is different: On 64KB systems, the order is 5. On 4KB systems, it's 9. The test currently assumes a maximum huge page order of 9, which is only valid for 4KB base page systems. On systems with 64KB pages, attempting to split huge pages beyond their actual order (5) causes the test to fail. In this patch, we calculate the huge page order based on the system's base page size. With this change, the tests now run successfully on both 64KB and 4KB page size systems. Signed-off-by: Donet Tom Signed-off-by: Aboorva Devarajan --- .../selftests/mm/split_huge_page_test.c | 23 +++++++++++++++---- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/tools/testing/selftests/mm/split_huge_page_test.c b/tools/testing/selftests/mm/split_huge_page_test.c index aa7400ed0e99..16f3e5b9ce6d 100644 --- a/tools/testing/selftests/mm/split_huge_page_test.c +++ b/tools/testing/selftests/mm/split_huge_page_test.c @@ -514,6 +514,15 @@ void split_thp_in_pagecache_to_order_at(size_t fd_size, const char *fs_loc, } } +static unsigned int get_order(unsigned int pages) +{ + unsigned int order = 0; + + while ((1U << order) < pages) + order++; + return order; +} + int main(int argc, char **argv) { int i; @@ -523,6 +532,7 @@ int main(int argc, char **argv) const char *fs_loc; bool created_tmp; int offset; + unsigned int max_order; ksft_print_header(); @@ -534,11 +544,14 @@ int main(int argc, char **argv) if (argc > 1) optional_xfs_path = argv[1]; - ksft_set_plan(1+8+1+9+9+8*4+2); pagesize = getpagesize(); pageshift = ffs(pagesize) - 1; pmd_pagesize = read_pmd_pagesize(); + max_order = get_order(pmd_pagesize/pagesize); + + ksft_set_plan(1+(max_order-1)+1+max_order+max_order+(max_order-1)*4+2); + if (!pmd_pagesize) ksft_exit_fail_msg("Reading PMD pagesize failed\n"); @@ -546,20 +559,20 @@ int main(int argc, char **argv) split_pmd_zero_pages(); - for (i = 0; i < 9; i++) + for (i = 0; i < max_order; i++) if (i != 1) split_pmd_thp_to_order(i); split_pte_mapped_thp(); - for (i = 0; i < 9; i++) + for (i = 0; i < max_order; i++) split_file_backed_thp(i); created_tmp = prepare_thp_fs(optional_xfs_path, fs_loc_template, &fs_loc); - for (i = 8; i >= 0; i--) + for (i = (max_order-1); i >= 0; i--) split_thp_in_pagecache_to_order_at(fd_size, fs_loc, i, -1); - for (i = 0; i < 9; i++) + for (i = 0; i < max_order; i++) for (offset = 0; offset < pmd_pagesize / pagesize; offset += MAX(pmd_pagesize / pagesize / 4, 1 << i))