From patchwork Wed Feb 5 03:14:17 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zi Yan X-Patchwork-Id: 13960507 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 23E67C02192 for ; Wed, 5 Feb 2025 03:18:03 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id AB129280016; Tue, 4 Feb 2025 22:18:02 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id A6ABC280008; Tue, 4 Feb 2025 22:18:02 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 8DAE3280016; Tue, 4 Feb 2025 22:18:02 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 6CDA0280008 for ; Tue, 4 Feb 2025 22:18:02 -0500 (EST) Received: from smtpin07.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 2D09916068E for ; Wed, 5 Feb 2025 03:18:02 +0000 (UTC) X-FDA: 83084432004.07.9377B12 Received: from NAM02-BN1-obe.outbound.protection.outlook.com (mail-bn1nam02on2043.outbound.protection.outlook.com [40.107.212.43]) by imf09.hostedemail.com (Postfix) with ESMTP id 5BF83140011 for ; Wed, 5 Feb 2025 03:17:59 +0000 (UTC) Authentication-Results: imf09.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b=qzaNC6SN; spf=pass (imf09.hostedemail.com: domain of ziy@nvidia.com designates 40.107.212.43 as permitted sender) smtp.mailfrom=ziy@nvidia.com; arc=pass ("microsoft.com:s=arcselector10001:i=1"); dmarc=pass (policy=reject) header.from=nvidia.com ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1738725479; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=QxUrFoVdwqE7hmVfm5+m5yVYkjr3vlGolGIklz7tl8A=; b=dQHxr/1Fi61Dm0onMn+/vB6mgkSHpexokYER+u7qtxzf2iizUTnSLObrYm7OB8kX8+JI1A LFR/mX50Wh2VSwIELI/OU1HQs+MtPISLeCgrCwWwWBCo69WQuzREn1qgVdaH2NUI0EVDoX FsSbeK3X+UoZpSet1ixi4wWlb04Qdws= ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1738725479; a=rsa-sha256; cv=pass; b=2rz5chzV8AoOWhPA+6/ugI5z86viQ6b8iYaIv/fOegQa94cMTBr0H/+RJUHAuG3MOzQowg LUOg7Mru5uLhX7uA+Di6RpD9aXOyc726X56qZZ16W7dd0OKWovaKRJl4nfwFEzNTfwOsOr gr79Pb1s7L1ow/8Ur2tBxnLbH4XwMxg= ARC-Authentication-Results: i=2; imf09.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b=qzaNC6SN; spf=pass (imf09.hostedemail.com: domain of ziy@nvidia.com designates 40.107.212.43 as permitted sender) smtp.mailfrom=ziy@nvidia.com; arc=pass ("microsoft.com:s=arcselector10001:i=1"); dmarc=pass (policy=reject) header.from=nvidia.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ULZkSTDI1Jmvq4Mlx5/YW+lxnTJKXcwmWndf0xhJAd4FbPitJ1mesS4eq2WPFTfHJzbi8E5mQZrusblX0NEg6KmAEdCxmL6DMgcvdv8Q8xsRbXgu2zVi1KlOiv3R3RVjpMk3gxFkqQPSz1lF0g+u6Ms9Y8prh0KFeiQ0LfBu6VbFSBSEJ30q2taYnIPG2aH2reJQmRPFwhM3rirm7drZZs/qP64XEgpH+akhEdFGROApgm/iOwdb3oHbcpIPUxPR4zFOyv4fR0PJtDrG3KGb+76L6NuNE9olTmrBn+y9ZmHo5FJNhdCGu3etkv2sKxNbw7PG5s6QQHzayIked7/Qrg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=QxUrFoVdwqE7hmVfm5+m5yVYkjr3vlGolGIklz7tl8A=; b=JFliUcM6vMDCaeAjuneSerrZDFnCxIVwj3rDBVQSDjO/xgVmT3/uLdRaVlqGCBylTaOgV7i65SNNbyFGzPO/eq/FFR+7LYTFnAGKg7HZfvDEfs86x5xFAM9DWava8NewS5+7uZQP6FSYo69748IPbV95duVzHzE5Y+za0JfSA8xChhJLb7gPI7x08Slss24bcHlFahfV5olEnliPQxTt4H6G4SGZ742ZkYn21cCuafuhfjDtbUhq9TLCYCSdho4LqPWZrrUChowrhS6vPgAIdkAOutkHv9CjyKKVZ9Z1eTatzoJ9fCib6CgEZoaKUDBCQZ7OO15b3XTJehlEVJqbGw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=QxUrFoVdwqE7hmVfm5+m5yVYkjr3vlGolGIklz7tl8A=; b=qzaNC6SNS4gq9+klUs9yG050FOU3veBr08UY4MJMa8+3tWaeZBAx/MpAlOJanX5DOa+4lQUab8f+1//5MGrHMRnXg6hwQ98M+DQVtYnbnYMI8Tv6MPa7rgfqyJ8zwahH3E+P7xY3h0HZ05kgGXvSNBjSuCAutVbTb4KrRBovao0DvI+VYVzly8ZM7rBbQuMaGoi/dzk1kc+35wnWySPbDwGXSs+voKyEJjRWj8nB6Txx98nINcAieMvB+x2oImD6smhXWq8G50Qp2WegjRXxURfG499t3gYasPgfsl3G5rCXT0GLOWuPRpDrDuodZBe4quAqV4w93LmifzXWIk88og== Received: from DS7PR12MB9473.namprd12.prod.outlook.com (2603:10b6:8:252::5) by MW6PR12MB8865.namprd12.prod.outlook.com (2603:10b6:303:23b::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8398.24; Wed, 5 Feb 2025 03:14:44 +0000 Received: from DS7PR12MB9473.namprd12.prod.outlook.com ([fe80::5189:ecec:d84a:133a]) by DS7PR12MB9473.namprd12.prod.outlook.com ([fe80::5189:ecec:d84a:133a%6]) with mapi id 15.20.8398.021; Wed, 5 Feb 2025 03:14:44 +0000 From: Zi Yan To: linux-mm@kvack.org, Andrew Morton , "Kirill A . Shutemov" , "Matthew Wilcox (Oracle)" Cc: Ryan Roberts , Hugh Dickins , David Hildenbrand , Yang Shi , Miaohe Lin , Kefeng Wang , Yu Zhao , John Hubbard , Baolin Wang , linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org, Zi Yan Subject: [PATCH v6 7/7] selftests/mm: add tests for folio_split(), buddy allocator like split. Date: Tue, 4 Feb 2025 22:14:17 -0500 Message-ID: <20250205031417.1771278-8-ziy@nvidia.com> X-Mailer: git-send-email 2.47.2 In-Reply-To: <20250205031417.1771278-1-ziy@nvidia.com> References: <20250205031417.1771278-1-ziy@nvidia.com> X-ClientProxiedBy: BL1PR13CA0120.namprd13.prod.outlook.com (2603:10b6:208:2b9::35) To DS7PR12MB9473.namprd12.prod.outlook.com (2603:10b6:8:252::5) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS7PR12MB9473:EE_|MW6PR12MB8865:EE_ X-MS-Office365-Filtering-Correlation-Id: ed24231e-e2cd-4927-a02e-08dd45933d1c X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|7416014|376014; X-Microsoft-Antispam-Message-Info: HVycuM3lpXf+iC4Z3Xceq4CfuhpOxomVLeeDEf59GKjabDjuRv3AFxH8iL4IOJLld48iCrlzLP0/QqOaJD4J4aRGCNj8vuZTmkLfGddgPHZRH94BPrDTzylFmZminvyTeo3e8XyrKxhMjdWsFfhsiwKvgvJSVsrks/VudqUGN+Obe1W1+VSXL8R8ELHU6QbISeyHW1uT+Tt8ORq+Pd7Z49xO7egawNqV4h7goxuevwK0ULfXAvcIAp81gtU5t9SUPFJW+OytcpHe+B/H4NtTWl6QnlLd7hJNsZlXXnD5BarEKIA+zK/5clSZ3jK2/TrIm1t0ptZsIEawuCGMQnusiPyDap8u1aYBkDNgLAShyG4NoIvA2TTIDwjLM92RtFUNBV1OUGoE4LDQwYyKk9/W92/xxqvwLzQWnE32zmI5NbSDguomTUlQLeNZfyklSdzNUMgwLV0dZGFtyI0SRZ0suvWIB83ojy654b3zsFKudoPQdmaUSs/qLmQ7PV2OEwbAgkCL6b7jXb7SwiiDDAvzykLvSjeOJwRrv0dUQF+mjUBqj8ADxWrPe5zUmh7TJilQguvJKeOg4vh9Ogq3JmKNzd4WvyZNWiCU08KWGaObVqEcvM0annCgueG7bfZ6LuAFaaR/MpjT6JS86Z5S2OrUtExRMenMS7w1KKoRXrpYSxw4EQ/cxU4KWx+parD1tV/MsHZvQTDQNdR2ZJy102GvGc4xmA9YbXCrTGFajWkTDnc961jnxb1/Cvwr0ZozUmM2yk778jFniTyEPHd8+If1zGeeC+3mTBZKrJcZXUecav5iSyC7KuDkqxhGEfVELIiXjFJxTFBoNLdQUg2F2y3HPeez6yxsS44s2zc72DyHKJGX+YwgoaE9TZjcWztnMl8w1lrtRRrLyZZs7JVngV1iSxUoRSAgv3E4wAAm0eq6m1op0FTSlpjwlQ5iVB9AOzSlw5rJTei7D1mWd8ux2ROfN+Ufc0qaYAPIiXHTyp9c8IYIeXs30sIPUI58nN7hO58fyNP5VXHyuq8ob+0HeeXH7e0Fn+/Sd6v19s/SA3MI1WCBKsnFZcThVQalKp7QqqWgjUIoqKUJsRI9g6IAAuABc2VoB0XYGOJXtJUxp1fSfAW7mtbq+buL2oWtFCfeawdaHqyYuxxQvuZVRBU9XGf1aAoElThSv387mlKugyAJKTMck6x8f1rGfZ8y+TddNyu1kPBc79fSRkcmtwwgembFzqVQtgabQzvvOSr3hcxlF7aIqJBAOo3YSLxKbR4wPh1jnt1NRiP+x4FF73jiHgtcg+pKVSMJOKhXdh41r6xRbtIh+5e/u+k59XwRRWxDzL/EMo1GzpMUHZgf6EQ6I8UoZd1aagCy5AVsnj+Qvbw09aY2gN77OuyEO6w2tBHddzQE X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR12MB9473.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(7416014)(376014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 3sT57NCMf5aKvJ9Xn05efc67wiDHQ/T/yKdAOgk+KhGGL6IXDyrYXNQYFxQu5yot8rV1uf0p79E7ewPDQzIigemgnkyFLg5HPfscDLQkBcmlXkcCQf285maotWJRYBZ+OfnnRx5wbmfDD+xzVSUTJJjR/JFGp//FUW9x5iQ0RLqRah8PFcIcJ6NugCe3dCMcuZtdqabd01jHy63lHufBtLOa8D0ViGXCu+NSPbozHv+WlOT59ANrW0308gMJMXoInkeX0ZM3qCm417AB0Ec6know2d51wRSTI92q1TO8bp5DT/pfTv082Dps89fcdaxJh0lYGN7ueQiMhYHYtoWl0+fgTLhBm8KcpwI/I36z20GZeMV9B2EwSiCPDGXqJbt6Y7NS0kgTZ7GmuMZfwZ3vpq9zP72axO9pxobWKZAjO+rM2MhUEPrxMXgpow11Z2E8xYKeh3fAZCy2Q7HPIOwmV74VEtD+7Ays7Msru9zSDzqbmgFTGmOj1WuwI+eOP5GIJPnmS62JEWYidjXUidyMWHfk9AiuYlV3aXZM0CSQBP6652f9a6amoaT1GX6sjdBll8427gLmkmGVxgbNNrnnMfZNNELTCJiCk3YXk2wtaMCTixchdtoRxf6oenMJMxN596BOOfNp9FpqwNjr0dNTy4ct1gupvCHpiAIKaHpfV/a/EI3Lzq1GUyTdB5hCVMuaf/rflFL5+qEvj/4l1FcwfW77VmWzzrWpelzB84bw+17bZgwyMOFr5AI2fqhCEnlq8/Z9bepyYFgvInmQwHP8VrTn4QLSPs+/pVtHSbfD+s2JdQ0zazBccqCpvUkhYRMAMvDJccD76fFS1Sepspws2o38Yp4JI0Q1ygE7KC2kgQ1gq6vjm8Lh94672a4+N8YkWbZ+7XtMCRkdXvNMOJkM1DPxEGjGfU/oSNcnS0XWq3Jzy3Ao1jt/rjSApNIV3R3YkPqOWkqSHaiaLyQPTq4lspadkVZrqEFdgw9dt7EchFdPdl0skClh4RpYhow/W+/KOwydEL3vZWHgA6RjEuP/mjwC1MV1HoStOkVmD92uZk29iH+R0uM9xalYAw1v3YexfxWiGnqZYIOkSM3UOkGUO0X95pTpr/sMgs6ooAQl3nAFBBIjxQleKSgkdYxkz7Jui/VFjueiFUF1ZmHEu4JWySQIBwixU4DrfuIGCnTgYjynmVlWmwTa9I8lcwsGZU538K7Ea1O9/J1/xo0TsvFbhjXewTTO78vwUnX+DGBt3IhALGLQvqyQ/QHDFDiBw80FXx+HglOS2aI/bItiesdT2e/OOtnvQU99mZ8OmpwY2Ntla+Z3bd00tpyuNw2H/vz+UVPetXfzASrpoTzuOE66zMBd1spUq4Qcc0RTS2gvTd2mRS9xtMbUrBJxtVS2ZZlCjpyA9/UsU3OVxOPs4B/2Z4OTAWFFufPzdp+24ccSbGd4O+E/OjcgRRURGXYdbVbKurkdty+Pax7mYZp1fOJREwg+hVmTUXbntPcb+noqDqFQEZz1GhGitTAHWlRRl9bKbOALBXCVCeUu9uYsNfnYCCv88xNj5xUpdJWI8UEOqteRMLMMDRhAPOv98Jgj8+m6 X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: ed24231e-e2cd-4927-a02e-08dd45933d1c X-MS-Exchange-CrossTenant-AuthSource: DS7PR12MB9473.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Feb 2025 03:14:44.5564 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: OP5JOI0O0A5okmAh0o3b6R77J7UVdUZIWKQcTZq+6ZDBL6a3aJfx7rqfz5pmtFqd X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW6PR12MB8865 X-Rspamd-Queue-Id: 5BF83140011 X-Stat-Signature: rnwyfthajqsogenb9izohpnoro7zer19 X-Rspam-User: X-Rspamd-Server: rspam12 X-HE-Tag: 1738725479-842155 X-HE-Meta: U2FsdGVkX1/Abc0mC1cHMhAQ+jIv3hOJB7Hs8g8SErhlS0I0FJCPZWywiwLl0YJkitl095UPE5bV+4fGmUZ58dcHbud0yZqu9fG0Xxq4DfqeNwDylJVi3stMw4ESXZa/B6TI8TePa3w+NigZtvjcSx6zVGE4FNBccuHNuHokjPCcbgrQ98K5Eo3MphvQZ5FbtScM3TSsQZWHUMRj8gFEV+WqWDzIEvO7ea8+dQyBadJvcAVUg+PcLNclLS+kF6RfZwAsJV5QINsvMUqTsQwyrZBIZXJWAx+FF3bplZxDeOCcZpzM6N9fs02UAWYBlTaA1I7X+1+1XnCUE7+BYNiVpchkAvQWFPYohCmj6xEqcymGhq7VKjjAPEDMIOca7ATR8m0ERAGGGte5svYTglc860u4LihXlAz76uBiVDfk5LNrPlu5RsIMKESKcilQWOZQNeHycrZQDKohnkqOxo1edu9GuJZUcgKbTE2wtK2zug1lKezK2ggai6XrbbViFQcHOIp8t1zKpSIEHukWKQ1Del/FjO3hPZZY0+tjjV2lgbKAWyx8bLIl1ql2zeYilbm4z6j6CpWNBAYOmgxKXgeRm78nL0V1xQpfXxNlJBXz+7gEffkuQqXfRb5s94pbMn2nj9Ti/0jDM9/sQSYOdNIhcohqYGfJtasIdofP7Zn/WU/6E1Zz7ukng3lFwBekIFI+zF9wWn0zsfmHZzwG1SWcXH8y6LuF+6NbO0VQu4sCBma09uUfY2iHA16NIjw+ge2DOJcjtgaPJG40gRi+Wdyo6KbHfBSHo0kQm920lbKHTLyWXuzHvcj7eMfeKBjq+RGVw8hh2QiZVMRtLRQml4l7/l9hzbKUBDte0JskSrJ3OkaoYwloz0SxcB2fa+9sPbUQzAQ4l4kxzQCLpVh+lKFAFN1TK8kt7voEHxGmDHsRzPpAX+WTqj5z33cmfe7mTe0MDOVgvyO33/Tv17gVuW/ S3hW6S7q 0jVVz4InbQzoALgVhHheQfy3MwTDCO52O2XM+LnFI2z8mCf9myi8Q03LMPJ11XLQgkhFrVj9MVd1WVLsRBF1SZwlcwXMNZUenik7iuiO9zP2396jjGXORWQv53oK2WcG+GC7fBcSdGabFTDYc6+hzwayvBpZyRRKeIqgzYtYmZbPmS3U06e3F/WAUAs+d2kmPNji0Iqc3WvYxbrMlUi1WPSL6vNztSsg+eoMUgqavfbOdtiKeOxkTULC24XtpeS4HejoE2hFSczQBiq0Yrb691HDmuxAXA8m1DPyJtzzJQ/31n2H037KkIhN6Z4up839Jx1FzIEKPaKGsRbsREKMmiLN5hRtT1h+7eXbTIcv5RWPNT90fermbkPo7r6OxeqC4/nXXL0MX+9AP4sw= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: It splits page cache folios to orders from 0 to 8 at different in-folio offset. Signed-off-by: Zi Yan --- .../selftests/mm/split_huge_page_test.c | 34 +++++++++++++++---- 1 file changed, 27 insertions(+), 7 deletions(-) diff --git a/tools/testing/selftests/mm/split_huge_page_test.c b/tools/testing/selftests/mm/split_huge_page_test.c index e0304046b1a0..719c5e2a6624 100644 --- a/tools/testing/selftests/mm/split_huge_page_test.c +++ b/tools/testing/selftests/mm/split_huge_page_test.c @@ -14,6 +14,7 @@ #include #include #include +#include #include #include #include @@ -456,7 +457,8 @@ int create_pagecache_thp_and_fd(const char *testfile, size_t fd_size, int *fd, return -1; } -void split_thp_in_pagecache_to_order(size_t fd_size, int order, const char *fs_loc) +void split_thp_in_pagecache_to_order_at(size_t fd_size, const char *fs_loc, + int order, int offset) { int fd; char *addr; @@ -474,7 +476,12 @@ void split_thp_in_pagecache_to_order(size_t fd_size, int order, const char *fs_l return; err = 0; - write_debugfs(PID_FMT, getpid(), (uint64_t)addr, (uint64_t)addr + fd_size, order); + if (offset == -1) + write_debugfs(PID_FMT, getpid(), (uint64_t)addr, + (uint64_t)addr + fd_size, order); + else + write_debugfs(PID_FMT, getpid(), (uint64_t)addr, + (uint64_t)addr + fd_size, order, offset); for (i = 0; i < fd_size; i++) if (*(addr + i) != (char)i) { @@ -493,9 +500,15 @@ void split_thp_in_pagecache_to_order(size_t fd_size, int order, const char *fs_l munmap(addr, fd_size); close(fd); unlink(testfile); - if (err) - ksft_exit_fail_msg("Split PMD-mapped pagecache folio to order %d failed\n", order); - ksft_test_result_pass("Split PMD-mapped pagecache folio to order %d passed\n", order); + if (offset == -1) { + if (err) + ksft_exit_fail_msg("Split PMD-mapped pagecache folio to order %d failed\n", order); + ksft_test_result_pass("Split PMD-mapped pagecache folio to order %d passed\n", order); + } else { + if (err) + ksft_exit_fail_msg("Split PMD-mapped pagecache folio to order %d at in-folio offset %d failed\n", order, offset); + ksft_test_result_pass("Split PMD-mapped pagecache folio to order %d at in-folio offset %d passed\n", order, offset); + } } int main(int argc, char **argv) @@ -506,6 +519,7 @@ int main(int argc, char **argv) char fs_loc_template[] = "/tmp/thp_fs_XXXXXX"; const char *fs_loc; bool created_tmp; + int offset; ksft_print_header(); @@ -517,7 +531,7 @@ int main(int argc, char **argv) if (argc > 1) optional_xfs_path = argv[1]; - ksft_set_plan(1+8+1+9+9); + ksft_set_plan(1+8+1+9+9+8*4+2); pagesize = getpagesize(); pageshift = ffs(pagesize) - 1; @@ -540,7 +554,13 @@ int main(int argc, char **argv) created_tmp = prepare_thp_fs(optional_xfs_path, fs_loc_template, &fs_loc); for (i = 8; i >= 0; i--) - split_thp_in_pagecache_to_order(fd_size, i, fs_loc); + split_thp_in_pagecache_to_order_at(fd_size, fs_loc, i, -1); + + for (i = 0; i < 9; i++) + for (offset = 0; + offset < pmd_pagesize / pagesize; + offset += MAX(pmd_pagesize / pagesize / 4, 1 << i)) + split_thp_in_pagecache_to_order_at(fd_size, fs_loc, i, offset); cleanup_thp_fs(fs_loc, created_tmp); ksft_finished();