From mboxrd@z Thu Jan 1 00:00:00 1970 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 B4C12C48BC1 for ; Wed, 14 Feb 2024 16:19:27 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 2E2A98D0012; Wed, 14 Feb 2024 11:19:27 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 292718D000E; Wed, 14 Feb 2024 11:19:27 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 10C888D0012; Wed, 14 Feb 2024 11:19:27 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 00EE78D000E for ; Wed, 14 Feb 2024 11:19:26 -0500 (EST) Received: from smtpin06.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id C4B281C178F for ; Wed, 14 Feb 2024 16:19:26 +0000 (UTC) X-FDA: 81790919532.06.0249469 Received: from NAM11-BN8-obe.outbound.protection.outlook.com (mail-bn8nam11on2040.outbound.protection.outlook.com [40.107.236.40]) by imf20.hostedemail.com (Postfix) with ESMTP id 0D9251C001B for ; Wed, 14 Feb 2024 16:19:23 +0000 (UTC) Authentication-Results: imf20.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b="fx/DlMs/"; arc=pass ("microsoft.com:s=arcselector9901:i=1"); spf=pass (imf20.hostedemail.com: domain of ziy@nvidia.com designates 40.107.236.40 as permitted sender) smtp.mailfrom=ziy@nvidia.com; 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=1707927564; 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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=MwM2RMgHDT351PRZBHPbEQUzKB14UFx04pBk69+9Szc=; b=OLeIidmdKqi++mXdzy+5fVnV6X45LqT70JhAZb8kQqOBN0splXV1xV/RZtdIDKoAfT0Ig2 0T9+Ri8Qf/T1TSGBjpU1NdF+rPD/80RjUjbJ9ycJqLkOZQKtxX0xO3cW9HJQPpzb3fVueP RNU0qctWgV47KtAZR6Qe9T33BPzgF3s= ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1707927564; a=rsa-sha256; cv=pass; b=KjkJJ6pkSWgLKEWCFkGUzEzXBwojx5p2NSo+1K5DozkAzHMMqnaDChV7bcsUvJG6ZGZGUY 8bWBMKgsEXJ7tl6n+j4+j1UywokJG0e6Yzr0YvK5LKcGieNnFbNPplEyLWUctAHtls/qYO fFo/GODZMLBQkPitYugIYNA6H/uQC+s= ARC-Authentication-Results: i=2; imf20.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b="fx/DlMs/"; arc=pass ("microsoft.com:s=arcselector9901:i=1"); spf=pass (imf20.hostedemail.com: domain of ziy@nvidia.com designates 40.107.236.40 as permitted sender) smtp.mailfrom=ziy@nvidia.com; dmarc=pass (policy=reject) header.from=nvidia.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=eBIcyrIJfHx7x6VJ2BbGFfKkVosIcGHsADsaoB+aOYkg8W4QZlyFYS+iE4UVYtZSngwj9yc5v315mojajbuHTg3Scuj3e5Tm1LBd2m8SDZLbjcaAtTnCC0un2L/gfjEUQwIceyH4S9AF2Br+BP9itxbyNyoKztppK1VclYPK2sjoTmx/HgXl3au5M6eGWd3Gxrl7iJbTo3KpJgZM63POGwIXR6AIOBkq2neKpDy8D78xuxy9pB+DHP2M+SsK960CDDYvVmOO+mbFt5Oh4FGeAfKvFuzPiiUBuj3LG16Ao2efX4qC3xM1lvkyawYqNNZfzjAMVUkK7IyqaqVLtEFhnw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=MwM2RMgHDT351PRZBHPbEQUzKB14UFx04pBk69+9Szc=; b=Y3as0WEhtKZA2EgITzS7g9b+ZN8iqRwW14acRiIkHLNDgIGbHPi4j0z8xfJmIs2FCrRuuDS330/fpGFaNirVICSRIpciS+aFvd8wV4H0Zlcc6JcPYgSJslfMH7Q8cRB0bxlC03+QRBjcJQQ1lYW72A7lDPTcn1w3A3KuuwlIuk7e5YfWaJcIB6F1RxN9R8G3IqAeUtphVvl0wmdbCYr1sArwD43BeVxmXYHt9GBlZeuHZM15iltKc5rsV1Q2NEMyUjDps27U+d1n8K5T9IAZX0j1BAERkXKUqK72hKQKZ0fKuPYfxI22oD19LoLEZodqRMDZZkNoaa1piRUsSpCkyA== 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=MwM2RMgHDT351PRZBHPbEQUzKB14UFx04pBk69+9Szc=; b=fx/DlMs/DzE54d8p9MUYf12hkt1Gg8YhTbH2SPgpY5VT+V/8iw4OwzWXjo6el4L4xLqQhSSQInHI578O8pT7vnU3DbXc56YwOh+iwhqV13KpjzNzbIt1tBEw0HS+kB+1ZSCeng83RWTR2/XRN2SWq0JXlcbhMdD72Wn0QKKUYD7aupFNpi3Qu/LvooEP6HbZRcYdNfx6MwhLAO7blmIeJmGsEnPRWEktEvZB5I6eCIgVSKnFZqZurSfXImZtiSy6rc4IUDE2EgmLjXj/OE04iKQpZuX25xHDGuvmSuTh90gkENrXAt+RS4G68o4COqpC5tTouQap5v9rDceuSLM93A== Received: from DS7PR12MB5744.namprd12.prod.outlook.com (2603:10b6:8:73::18) by DM4PR12MB5181.namprd12.prod.outlook.com (2603:10b6:5:394::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7292.25; Wed, 14 Feb 2024 16:19:20 +0000 Received: from DS7PR12MB5744.namprd12.prod.outlook.com ([fe80::db3e:28df:adc1:9c15]) by DS7PR12MB5744.namprd12.prod.outlook.com ([fe80::db3e:28df:adc1:9c15%5]) with mapi id 15.20.7316.012; Wed, 14 Feb 2024 16:19:20 +0000 From: Zi Yan To: Ryan Roberts Cc: "\"Pankaj Raghav (Samsung)\"" , linux-mm@kvack.org, "\"Matthew Wilcox (Oracle)\"" , David Hildenbrand , Yang Shi , Yu Zhao , "\"Kirill A . Shutemov\"" , =?utf-8?q?=22Michal_Koutn=C3=BD=22?= , Roman Gushchin , "\"Zach O'Keefe\"" , Hugh Dickins , Mcgrof Chamberlain , Andrew Morton , linux-kernel@vger.kernel.org, cgroups@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-kselftest@vger.kernel.org Subject: Re: [PATCH v4 6/7] mm: truncate: split huge page cache page to a non-zero order if possible. Date: Wed, 14 Feb 2024 11:19:18 -0500 X-Mailer: MailMate (1.14r6018) Message-ID: <1C274CBB-C809-442E-9575-858460C0F62D@nvidia.com> In-Reply-To: References: <20240213215520.1048625-1-zi.yan@sent.com> <20240213215520.1048625-7-zi.yan@sent.com> Content-Type: multipart/signed; boundary="=_MailMate_61BFBE49-0C64-490F-8FAA-24E0AA16EAC7_="; micalg=pgp-sha512; protocol="application/pgp-signature" X-ClientProxiedBy: BL0PR03CA0003.namprd03.prod.outlook.com (2603:10b6:208:2d::16) To DS7PR12MB5744.namprd12.prod.outlook.com (2603:10b6:8:73::18) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS7PR12MB5744:EE_|DM4PR12MB5181:EE_ X-MS-Office365-Filtering-Correlation-Id: 1814d39b-145a-4d71-9562-08dc2d78b32f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: PTfuRE3ooUYO7ayHQhVxBSAo8tsQZG1mJb7QSHgxMXwkxwL4Y/oTs1bFtkdKl5I9jZVMdvhXjexfh4pRxEQow4FKFTG1sTPssQmsCGpTOsKJeFyH+Fmr5xmHage8dIsMuwsik0caVWUfa4OC3NJF2x31P4dL6XHtuNLMgbzgSLXAkfFO0pviyM3DFdo+gfFMyAzjyfQhmMbauHT6p3rjCcNBclaTmAtwLXqfJpKAPBfjaVzVPaQmeyl6bzvOHB8mDoDYvVgmijTPPOEWdFziL/Ey5LYLZyem5ikqWyQ9NQXt5mfkzhvnpVlkf+/zH7+H35Mm3PbmnTSvtf7M9o28RFncfGRlWJGd4dWYDaBzxJBNs6agHlt4uocA1EKRF4oUTGbw+ivW9DReUT9SZ5CuvBfKJJXunW6+nz+15K/T0TR9XPw+Lyr0fxi+41t/L+7GemAaxZYARmjrJteXaCIprrkD/GBRNPYjXM+JH8yO7sNwpYzs3dtOecvDU4z0EugiXZHTBPq+BH3WC6dPCnRHamGa2tf0VGM081wBi2SSVnom+ZTvfP3qyn4IlXTq8YqkPzHnZ/fLkBY1nsli5nB5mf4Cw4QC7Bhtzy49coudDeg= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR12MB5744.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(346002)(136003)(366004)(396003)(376002)(39860400002)(230922051799003)(1800799012)(64100799003)(451199024)(186009)(966005)(6512007)(6486002)(478600001)(41300700001)(4326008)(7416002)(8676002)(8936002)(2906002)(5660300002)(235185007)(6506007)(66556008)(53546011)(316002)(66476007)(54906003)(66946007)(6916009)(83380400001)(2616005)(86362001)(26005)(38100700002)(33656002)(36756003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?uyH1KNfomN6kmPf030lTA1cnjrfuhcc1VP0xxoQKuLnt9Le24MACgzDs3fN0?= =?us-ascii?Q?QBPYZLUG5gY2f8YjngAf5avJaRJne0riOd5Xz65FWBp+kGxk3MUqZJy3iEkq?= =?us-ascii?Q?YChHbOjKe3j8u7hoTGjuRrmrLoUCGT85pr2UO7eXTZjg+gOLrgiX/HGfL5wE?= =?us-ascii?Q?kusHMIz5zVfC4xG6sTrNCxOsnYWFQqLTvM5vpJzxXEB1sL0RaYX9s9sGDb37?= =?us-ascii?Q?cOPsFCneCJsk8XbnM3vjGBsmUU1OpzXSAmej20wL1k/FSSQevhGREUYOpAdJ?= =?us-ascii?Q?5b+ZxqSvvsqDC6kl5DRpr6A8B1MBEIs/IljDMsRmSZ9v1XBbyug7HrkRxAoV?= =?us-ascii?Q?A3gjCbMUVTKWXAl8VGGOC/xgtRzvChcNcVrtRfFZSvT0bY8NVLuYFwJOdniC?= =?us-ascii?Q?httX6r3aigC0RL6wyklWmlzqjjpyv0Bf5iOy4JTv8q6mDqRgr5WTAZUDKb2/?= =?us-ascii?Q?NGwaFpupInxwweAmjUVV1pR2Rx3dkvgJHlqwS2ZilqGZ2MJRjab1mzMZWNGK?= =?us-ascii?Q?2K5ej49W4BGxLxH2ju38QnRdPOa+yR3Cw8KBtgX82m+gZ7IrfuVt3BA/VwEl?= =?us-ascii?Q?kx1tz1Esw4SGNG1QOAG519wIoc6OwK6bRF5uf3LLfvqfy55QxPRfpnzn8GZz?= =?us-ascii?Q?T0O3DygO0Km6EkQFod2JEkbQOehWJx28+MF6tV0KYRgUnA3LW9UPUVzOjAX7?= =?us-ascii?Q?8hBE5eymJENCPWEDZ4pBRBl2yD5BpAQ8AGU7gVOUX/uNtZs6kodXBTnWM8O/?= =?us-ascii?Q?4Zf1SFpzEIuqDvhiPidxavbpNK1V5QSCwdlxkRGT/L873/sx0z/eukCrr47c?= =?us-ascii?Q?UOkCY5FwHzMva0o+X8Uyeu+eWbcWh8P+AL/T3BAK0pIrnq7XXJSue0nM7p7H?= =?us-ascii?Q?cG2hQCWJetczBY+C6VY9l+ZLWxLJ5rAvEZNiMR14z0ega2VQFDBeEE89ucWN?= =?us-ascii?Q?xLeg6kGCXz/gWsYPJuxd8uc944LVw1BDQy67qxMdKdHibon9lV55Wm2TrGFm?= =?us-ascii?Q?4LHuL4vKLIvPZIYnWg88wqQITqCuGTJGETIbrwg2bYoVxWN7LZAzoJrxuiau?= =?us-ascii?Q?9hJKy04ivtliTkmFL5NfA31I95bmzjfkA5+GU+m34cmCIg8klNm049fHOZbi?= =?us-ascii?Q?c1na16nTmXw7SY5ChS6tvxkyZYFkavmAwLzgpetolocstvhhRS/kx6NZCGjs?= =?us-ascii?Q?Xf3vhPd73/hC4IXZrtqfoApPXO4kw3XmcaacqCQmWFD/9b3JJweZIfCXNMgR?= =?us-ascii?Q?CvIWQmERNGdwwV6PobNog3XtU4bkujBNx9hDJHuhicHnCJ8QZffPc7Bep1N1?= =?us-ascii?Q?M6Ham7VtTAbHly0tadCR8jYtlmF511U6S+Ceq7DERrTztHM57DcaoUMjm8t8?= =?us-ascii?Q?EF8Nw15OPMI8Zsu3ExO/MjZprHVpQ8Az2gHGAYtBfWXqNfUv6o0XuUxLX1mL?= =?us-ascii?Q?Ho4w5CnzL1RxacKbXLSqGq26iBwgGmeSqhPdyOqdhbVL/DI/H414kOvEuI8o?= =?us-ascii?Q?u5D60RF1Ixz1rE8FpFo0wEL2H3hhq8rXDQzA0haBsu4z0DvaP3DLRjTvXgU1?= =?us-ascii?Q?7T2Ox0i3yykwv0Z/v760AHDr7kHoALMhWcjgdf5H?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1814d39b-145a-4d71-9562-08dc2d78b32f X-MS-Exchange-CrossTenant-AuthSource: DS7PR12MB5744.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Feb 2024 16:19:20.6514 (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: 8A2nrujJxa3yPj1JH6uelMW45H4Rh75eRLWgfK+Va2wlKtz04ii8Pi/Y3bR5DlJA X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR12MB5181 X-Stat-Signature: nyc8teu6zcfd6htzdcmtuhuagd159t1u X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: 0D9251C001B X-Rspam-User: X-HE-Tag: 1707927563-4814 X-HE-Meta: U2FsdGVkX1+fFtdRJrmRE/ydFNw0PewNwlkR92bx8GRwao57bjugX8BVI1mXnf2ZEHA131vh4avYyqajVqtK95kLJW9bljz8sKVJHuaEtfQ3d/D9s2gdkCwXPHrEV7M5ls0yLp4/2dKPDLPLGYRazDX0HFbx2YuccSVMB496ObMs954+atxOox2eCuiDdSr0y8iaWMDN+ATxu4Cgu8brKmx3QwCM8v17NquNO6EsEaWEDk9605JrBSbf/bt1pyID7E/fUzXxesEr4BNANvIapLwPJ3OqzzIm4vuLh12TcYuWNu90jYWULtF/1QcT6DFgaq/XlUF+hpuD0hrbU4UKXxCt4ux0On9bBfyssTBiKainvQa5Q56egQ0lRibWRZGXaCs+lrGiSIrA2zONmoK0FH1P9ZBx1DhE8pbACipSsuSbWTKcKbT3fdQ2tzwCf9hgbW8AJiychg4zFDU1CUfzo2X5wg+PvZrsdqoBM8u3UsA9E3MXpOjqQM3u+2ct3z2XR2lydroNpUDsxg18d85RjO0QB38181xQWUaFtSjj3g4PDJxRfjAcjsCxdhu8M0l/V5b0epmnSbmfllW1uiBvuPGa42Z4t0vVoa2hyDV/OoOJ4xRmT5GnHKXuNNos1iPEetuKXD3wkqjP/aOsy7Qdt0NdWbAQEUEC7dSxwdHk3etZLcWHTxLSKRvposvVq8pWvW1aggjAY8RHFztt+Rij9G51DlqJMFC5r0yMmPsPxe8o9Mo+iUOa2D92jTWUOntwZTXNfiUFGqovcWloJayZtnLjZF8BoDb8h7YVfpsnlXNf1t6cEPx3d87AJh0CNU1jcnl6+bneMZwS0p4CucRpXjQ7CgdtdeGU0jxmDS60czFEVPpLrrXN/PDe/wE6QnctXUcct5eITSXSX5+SohJnIWhbHJPb9lj566BVqzh2CsCRcZd6yj1xX1KgBGK1kueXS7lg5/ajAguaQfuhKy/ IRqKjJ8+ Y/yxilG9e0grmwUxVLoYI0g50bo9nMAqEdzFIRFOfvAFy2AjWzBqLlqpn5Gplcr0A5TCObvDW8rNIfdHRS66fdJt5dkbv832WCyTweqLdKMOMuKeKSGGq13RaM7RUoCyZ2wziyY3KI/I8phiWPvWLfl9n9+3pDekErjgEHQ10dtx5MbCGVyeIHVUQXtHus1/XhAccl8ePHodDq2Xrtk0HH3yi0mAuD2awryrgFwsXYomIfyJ9fbrHNVYzVTbouBbPbXBbVp/omtwobScvQLUjAdmxMRLhw4DFhKlqG63pZuFOk8oynqIzsOSSyWqAIh0UAHZXZcA84bRTvVGHBepo6co5xCWPRFSF65vsZMfLjJtoSVOQpnSzmy/jlHdABmtWe9nL02fhESNlrWa+Qw3fATpuIgdS1fS3SB+I+SHtq0N56o8hpZkpo7G9p7FCbDfGx4V1 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: --=_MailMate_61BFBE49-0C64-490F-8FAA-24E0AA16EAC7_= Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On 14 Feb 2024, at 5:43, Ryan Roberts wrote: > On 13/02/2024 21:55, Zi Yan wrote: >> From: Zi Yan >> >> To minimize the number of pages after a huge page truncation, we do no= t >> need to split it all the way down to order-0. The huge page has at mos= t >> three parts, the part before offset, the part to be truncated, the par= t >> remaining at the end. Find the greatest common divisor of them to >> calculate the new page order from it, so we can split the huge >> page to this order and keep the remaining pages as large and as few as= >> possible. >> >> Signed-off-by: Zi Yan >> --- >> mm/truncate.c | 21 +++++++++++++++++++-- >> 1 file changed, 19 insertions(+), 2 deletions(-) >> >> diff --git a/mm/truncate.c b/mm/truncate.c >> index 725b150e47ac..49ddbbf7a617 100644 >> --- a/mm/truncate.c >> +++ b/mm/truncate.c >> @@ -21,6 +21,7 @@ >> #include >> #include >> #include >> +#include >> #include "internal.h" >> >> /* >> @@ -210,7 +211,8 @@ int truncate_inode_folio(struct address_space *map= ping, struct folio *folio) >> bool truncate_inode_partial_folio(struct folio *folio, loff_t start, = loff_t end) >> { >> loff_t pos =3D folio_pos(folio); >> - unsigned int offset, length; >> + unsigned int offset, length, remaining; >> + unsigned int new_order =3D folio_order(folio); >> >> if (pos < start) >> offset =3D start - pos; >> @@ -221,6 +223,7 @@ bool truncate_inode_partial_folio(struct folio *fo= lio, loff_t start, loff_t end) >> length =3D length - offset; >> else >> length =3D end + 1 - pos - offset; >> + remaining =3D folio_size(folio) - offset - length; >> >> folio_wait_writeback(folio); >> if (length =3D=3D folio_size(folio)) { >> @@ -235,11 +238,25 @@ bool truncate_inode_partial_folio(struct folio *= folio, loff_t start, loff_t end) >> */ >> folio_zero_range(folio, offset, length); >> >> + /* >> + * Use the greatest common divisor of offset, length, and remaining >> + * as the smallest page size and compute the new order from it. So w= e >> + * can truncate a subpage as large as possible. Round up gcd to >> + * PAGE_SIZE, otherwise ilog2 can give -1 when gcd/PAGE_SIZE is 0. >> + */ >> + new_order =3D ilog2(round_up(gcd(gcd(offset, length), remaining), >> + PAGE_SIZE) / PAGE_SIZE); > > Given you have up to 2 regions remaining, isn't it possible that you wa= nt a > different order for both those regions (or even multiple orders within = the same > region)? I guess you just choose gcd for simplicity? Right. You raise the same concern as Hugh[1]. I am minimizing the call of= split_huge_page_to_list_to_order() and you and Hugh want to minimize the number of folios after the split. Yours will give better outcome after sp= lit, but requires either multiple calls or a more sophisticated implementation= of page split[2]. We probably can revisit this once splitting to any orde= r gets wider use. >> + >> + /* order-1 THP not supported, downgrade to order-0 */ >> + if (new_order =3D=3D 1) >> + new_order =3D 0; > > I guess this would need to change if supporting order-1 file folios? Right. >> + >> + >> if (folio_has_private(folio)) >> folio_invalidate(folio, offset, length); >> if (!folio_test_large(folio)) >> return true; >> - if (split_folio(folio) =3D=3D 0) >> + if (split_huge_page_to_list_to_order(&folio->page, NULL, new_order) = =3D=3D 0) > > I know you are discussing removing this patch, but since you created > split_folio_to_order() wouldn't that be better here? Sure. Will change the patch locally. [1] https://lore.kernel.org/linux-mm/9dd96da-efa2-5123-20d4-4992136ef3ad@= google.com/ [2] https://lore.kernel.org/linux-mm/0AC0520E-1BD2-497E-A7ED-05394400BFC9= @nvidia.com/ -- Best Regards, Yan, Zi --=_MailMate_61BFBE49-0C64-490F-8FAA-24E0AA16EAC7_= Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename=signature.asc Content-Type: application/pgp-signature; name=signature.asc -----BEGIN PGP SIGNATURE----- iQJDBAEBCgAtFiEE6rR4j8RuQ2XmaZol4n+egRQHKFQFAmXM6AYPHHppeUBudmlk aWEuY29tAAoJEOJ/noEUByhU+4YP/0kcuWm88beYa88Ri/oQZ/05vk4uQRaM0NCX tIt4f7LWzye/ZfDK1/rjK2C8eT8Q4eDhP6dVJ1JccPZfg78RsAkwt/3Av72U/ShY meVf0zgMEjL39TZgA87DTt9tk3SW815Om+eHiu5GvfM+9hQULsuL9kBcVvfms84z N7mnhBUG8n0v9zAiNBMucG1oJDtLhC2rRWd0u7D+WcQheYIeY5t3rBKwAuTZUvlt mN3vC/pawbs630LPb+fieixGno9KFi6vFhYhexQPSIc2iyh4xzC1VubiIB627ZYP XJJrgdIFKyNoMdMIMBstn5bWL5Iy3Erj6tj3QZWyCbWa/ELWNWLgXyjG8JYiJtRY Bpq08LsbI8EsN9yc6608Hdf0aP0bsiIx7PJJHgGDE69XvvUW7jXthAF3Hrxn/REo ZBFAvcJP6STN2BJcUFTKvAeW3mAtJU50O/xcjKb7L5tF9oBZOVMzk0Dn6zVgeKHi BBSuAMyv/tfy24OIRVdcXU/zLWPQWsshSDd9boAPfawE5iRKleFjWdTMj1NXFh3u yqQvN5HzHbkXXW7klQDKo3cOvw/g7NVyoDCRx8q9wFxnrVG39Le7Lj7iIic8eGaE bgByG+IfE40F6R9uqmPJrnXXxJVGXU50VgqVfbejnENQ7lfFA5kLUDloZ8st9iKt 0vwuFykP =pOsi -----END PGP SIGNATURE----- --=_MailMate_61BFBE49-0C64-490F-8FAA-24E0AA16EAC7_=--