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 37468C48297 for ; Fri, 9 Feb 2024 19:57:15 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 859A46B0074; Fri, 9 Feb 2024 14:57:14 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 809466B0075; Fri, 9 Feb 2024 14:57:14 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 682FE6B0078; Fri, 9 Feb 2024 14:57:14 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 565186B0074 for ; Fri, 9 Feb 2024 14:57:14 -0500 (EST) Received: from smtpin19.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 0012E1C0EAC for ; Fri, 9 Feb 2024 19:57:13 +0000 (UTC) X-FDA: 81773324346.19.DE38CE4 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (mail-dm6nam11on2054.outbound.protection.outlook.com [40.107.223.54]) by imf08.hostedemail.com (Postfix) with ESMTP id 3CE9B160006 for ; Fri, 9 Feb 2024 19:57:11 +0000 (UTC) Authentication-Results: imf08.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b="l3G//wBh"; dmarc=pass (policy=reject) header.from=nvidia.com; arc=pass ("microsoft.com:s=arcselector9901:i=1"); spf=pass (imf08.hostedemail.com: domain of ziy@nvidia.com designates 40.107.223.54 as permitted sender) smtp.mailfrom=ziy@nvidia.com ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1707508631; 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=oxwbNiKFAEsPky6jcC+oCmicaipOztG46V7j5ialtrk=; b=lPw0DxcH4JAnOp9QGIJPVJAQE6UOWQQHAOKgKTuMmh0Mi9x6fmvL7gBNdbSB7cAwAPJmh6 AGs2Z2QFAkJYdGlSZh3wp6P7VultUgIQsgss9z6II6xGgqkAVGuGUc/yNBL5iRXYnOqofy VJEspYKwZXBLPCPHTT4BKwCcfm/70Uo= ARC-Authentication-Results: i=2; imf08.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b="l3G//wBh"; dmarc=pass (policy=reject) header.from=nvidia.com; arc=pass ("microsoft.com:s=arcselector9901:i=1"); spf=pass (imf08.hostedemail.com: domain of ziy@nvidia.com designates 40.107.223.54 as permitted sender) smtp.mailfrom=ziy@nvidia.com ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1707508631; a=rsa-sha256; cv=pass; b=LPfJub4Lbeo43ykl0hMzIy0AkccJA36mwWF90d+SHSb0n3NOoaaAuMbzxMEj1OX5CvDohj 4z0kZedqQmywVRKJnkk5pa+3pOGFiDZkddxRCWM7BFTkq7i4bFdUv8Wn6cjyqjq9e4Axoq Ejw1P0bDXTNghcFtQ8jeX2nXVOQS63s= ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=h22tqOGH+DQkr04ggKbC9fL4k9ydBQ2+ymiGhz0d45Wv/TeqCv1k3Lw6L00o3jcXGa2gzRh26QLnuqX11MlJI8lN5ftxTiv/iueWlOgyUMepVsukNMc0rijFpxq9JofZrXq2bTTKvdEo0q0mz7J+i+U7V2UtGOvJYfOK8y44mbyORXDV4KF7NfPoc3e5uIEWXJom/FKcug1qNt2MXkuxVoPooE5ifrv9a+M75HhlFJ08gJgniO+f0NxVI7P6tpmG2Oo6a6XPUJyVMrPUXMfF8UchVj11bvuFcSdJutWml0zcx5kObS6xD12iBmQE5wp1BKq9yeAYk2V2aeD15dhVpg== 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=oxwbNiKFAEsPky6jcC+oCmicaipOztG46V7j5ialtrk=; b=iPXihTix7wl+o7bBsNYBj5my/T6hu+GHx5TcIGu/4mE1OwAZtGclm+jl8Z1RTeL3aHuByY7SCdC047fx7rcv4xodJAEmC1qXOV41kXM9mTPfzHEdeBoclcJeRalwyzdt1uboZ2AHvETAk64C67YqADGUGEV2hfug1tbGfzvPtf6VfgUBVoUx3MNYOS8JLv+t0AiW+5Au/pkjcnYjGXWajLKs+Bo07+1xCc6D0vxya6Iw/gK8ZRim3tIozDayPDdNAWo1HKD5JqL/OqzIpmcfiHopKmqAlIkhTU77j/b0HPF+iw8xNPwDczD4zAnLvL/PmD0yFWH6+w8BPzUQ5i41Hw== 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=oxwbNiKFAEsPky6jcC+oCmicaipOztG46V7j5ialtrk=; b=l3G//wBh560anuf3XyApvddL+8jmzGzMmgzMl1NKzXY76y8nURTRlcnrozJZvcGmeaF9T+gucjurqtI6szx+j60pKFhz4pYX5aA6Y106i8x7MWtkYeYWF7ucEVd7kfbJn2PeV5UVARJUXZ/87lPUkEumppuVYEf4MfHKBnd7Kuk7Z5JRcEGtCF1W07tKC+H5vfpXa288eoxpYl4bJ7azIjcezv78lJfWGN7scd0DaQYrz+COgToc0Ia6k9QlcWvmNNhM7IUeFFQZvxEJCI1AGQtW8wJQcH4tCg8CFRkoRDSy4WAQUXcpCex0M+hlFuPEbfiMGOqNeSrCMu+FERjf7A== Received: from DS7PR12MB5744.namprd12.prod.outlook.com (2603:10b6:8:73::18) by BN9PR12MB5132.namprd12.prod.outlook.com (2603:10b6:408:119::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7292.14; Fri, 9 Feb 2024 19:57:07 +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.7292.013; Fri, 9 Feb 2024 19:57:07 +0000 From: Zi Yan To: Vlastimil Babka Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, "\"Huang, Ying\"" , Ryan Roberts , Andrew Morton , "\"Matthew Wilcox (Oracle)\"" , David Hildenbrand , "\"Yin, Fengwei\"" , Yu Zhao , "\"Kirill A . Shutemov\"" , Johannes Weiner , Baolin Wang , Kemeng Shi , Mel Gorman , Rohan Puri , Mcgrof Chamberlain , Adam Manzanares , "\"Vishal Moola (Oracle)\"" Subject: Re: [PATCH v3 3/3] mm/compaction: optimize >0 order folio compaction with free page split. Date: Fri, 09 Feb 2024 14:57:05 -0500 X-Mailer: MailMate (1.14r6018) Message-ID: <8E042D2A-B4B1-4538-946C-A63A0DB64FE0@nvidia.com> In-Reply-To: <84dfedc4-a0a2-4e02-9be4-2cffc6e9fd06@suse.cz> References: <20240202161554.565023-1-zi.yan@sent.com> <20240202161554.565023-4-zi.yan@sent.com> <84dfedc4-a0a2-4e02-9be4-2cffc6e9fd06@suse.cz> Content-Type: multipart/signed; boundary="=_MailMate_BD14FE1B-E5CC-48E5-91A1-105DB631D11D_="; micalg=pgp-sha512; protocol="application/pgp-signature" X-ClientProxiedBy: MN2PR03CA0007.namprd03.prod.outlook.com (2603:10b6:208:23a::12) To DS7PR12MB5744.namprd12.prod.outlook.com (2603:10b6:8:73::18) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS7PR12MB5744:EE_|BN9PR12MB5132:EE_ X-MS-Office365-Filtering-Correlation-Id: a5112e0a-0a4e-4f9a-a545-08dc29a94bc2 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 8GKKqU/Bs7K9ZbdCeppDPcs0lHHXPOWuqgOPoZ+Nj7pKR//LoAviVq0BBR/bhvSovanLc75LhysOU3Rf3OT1kFe3RM14tvslMGCzHBYADXYILWUvqc7WgG9YRiH7hyks5DDvd+qh4J+nXCmysZlZFhthRVjgZ4JP5kbaR9/1PQvsjbYtrRbcUl/uBXanD4QH+H6WdrV0RZH6Hhtl/gjZkKVY0xjfF0lSnCKdFyouVkPPTOk9RBZexAfUUbrkMx7UtYODd+JGmd+kPPSy+zA8dKY2A63KMYMA/v/Br2s9i/I7GM2+FY5CMmS3iL8fgRFC2D0+YNgeOt28NK+hKrbJEoxlJj6uP0wAD9P6UPUJ25nurHwuFTKjqzYHxxfL9eSXsgkW3VEYaOG7sPtLAziGNzjgXARhdxzbTLjzQYBNAGm14UApxGwP4LP06tpWPlcEyBLYYjyyc78J4dT/ACPUxe+XBPrp305Tfgi//jm5CqPOiR8fachWJ48pzqcn70v8D48N/60Rl/xF/kx50yFhQNPqAg/XJcPfvS/IDAMkFp9T8H807boEWBOUjwjR5Oi1 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)(376002)(396003)(366004)(39860400002)(136003)(346002)(230922051799003)(1800799012)(64100799003)(451199024)(186009)(38100700002)(86362001)(5660300002)(7416002)(235185007)(2906002)(6486002)(478600001)(53546011)(6506007)(6512007)(26005)(2616005)(41300700001)(83380400001)(33656002)(36756003)(8936002)(4326008)(316002)(54906003)(66476007)(66556008)(66946007)(6916009)(8676002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?6dxJCiV73tF7zB63xtBc+Hm9F1EC0t2zZxxBcjlNzq6qJ8+TKHXGpq+8Ar1/?= =?us-ascii?Q?Ud7G+PZUzHlwLGCPPPLiM7BqXAfZzJrVnyzrcj03KZbfbQ1jmRuYA+y0t6Td?= =?us-ascii?Q?/EjnOVzxYS+77Nw1mcI3hQ2Xi0fQ0/zWkX55JLPUTD5E9WevTn5eorcE8pGr?= =?us-ascii?Q?G083NF97wbeTe3+dj6PhRo2dPV2O9HDh2lLyRozrhoAYQvw/JaE4SbE/fHWm?= =?us-ascii?Q?06Lz+Ores5r3NjRJcBqTvtR+7YJF4Q+hxCiNydakuVBLmeNEp4V55xDsm6a3?= =?us-ascii?Q?TE/F4gd7yve6kl1DbIcYTkFR728K0ATkkGXKvK8IkvW/6DdhzteaMYKH8hy+?= =?us-ascii?Q?IYo2rvhpyuoQ13CeBRBXdM2vvAJqiY00HjQb/yLaXfWDnNfGjv+6Iv9XJYmZ?= =?us-ascii?Q?ilrXbVDbzOdX7OvwDEsC475zmpXqANkfednC9Yy7+ip9kU/7S4o4A1Wccwve?= =?us-ascii?Q?1PRO24NE+KWcqxLXb62maFC4jUdHsRDJ07hAAJ8eI8r8O7wEQI+imk/zkH6y?= =?us-ascii?Q?bN+g4AcEz43Spp3+Ko0nFxZKRMvx2WcVbDHWTElz+dVr3oA3KkHm0IRyVY6t?= =?us-ascii?Q?4tAUufbvTgDnwGJW0Yqlwb267WW7YY3ElYGgVVKowmWJjOER2QAglEiC/a0j?= =?us-ascii?Q?d/kIipQu4vG0QQKGuR+F6CJ2P9PvOKgLfD6ZH1gDz4sDQv2mmxKkNUnr8qFM?= =?us-ascii?Q?DejWNwymEjMeg7+qS1UH1+3O3lNIZcDWMIFiIzB1+hdpQCGNQnp3P1650Psx?= =?us-ascii?Q?GFILmggmumtDCQ8m/Yy9XavtqxWshqzVogC3Uv0scjpnEuih5AMuant34uwT?= =?us-ascii?Q?+pUq6Ax5v7Gp891K4dQCay/v36zK0iM7tBWEbeCA6V4YZiAaWTIwgs/BvjxX?= =?us-ascii?Q?kokzENCxLAb/MwhaBzE9zffE/EzzmJMhudUeNpaMJ/XnqqDSxzwMhj1nY/5c?= =?us-ascii?Q?efsDYnsLGlvuuMR4kOPObEtiagB6HlWNtuz4MOKnQrNpq55sW1J/EshtQau1?= =?us-ascii?Q?HVb51bdRC5AeC40thGEcVOdUwKvecpUzbI4hqoMafHN/vHWPT/w7uzJDtkME?= =?us-ascii?Q?MNY0ZhdWQI0RM+XBoDFKcRR4F9e52DpfsQqr9g2T4fTz7mvOGUXHInS5GeKU?= =?us-ascii?Q?d+OHQRaKMID3C7iMCwZd9wesIlzF641mTQuKD8VJe6ZBGYxwsB8VsritRKuq?= =?us-ascii?Q?g+tf0UZK2twh9LMZLktQOu2uAPrmPwFpGgjQHfXTh6SK5gfDSy0z1KWGPEt7?= =?us-ascii?Q?NIEGdEFBof5FWfNor4ATTNDGvJE1IvTeKsknz9HttODNiXJFMzROQBS3Yb+C?= =?us-ascii?Q?DyJZAO0FonjL0HvBsNehOkTr06vegjR9wIuUr0x0wPA5PVUceoKOcISoq1i6?= =?us-ascii?Q?de3/UDK2RYJQiJj+3+XP7SdoJLrZW/w7Yj6qwh0sKWTdZBXA5Vb76y4+7BDS?= =?us-ascii?Q?EsiENkebEejZ4M9ec8OrN0gK1YU2+nGEgQHlhkmWoSdzomfdS+yYSkdWVUHX?= =?us-ascii?Q?CkxktpoKNOjwGQuii1yrFJh10dNRaHbSii+8EC9Er/G209NADZe64hb9oaeI?= =?us-ascii?Q?wk6eRFM6yWVKLdzGId94CS90GIxVmTm9XyX/9rmk?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: a5112e0a-0a4e-4f9a-a545-08dc29a94bc2 X-MS-Exchange-CrossTenant-AuthSource: DS7PR12MB5744.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Feb 2024 19:57:07.7979 (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: M6xYthyBIqSIhiy3cgJjFcuwxjC8mIiBZU9gqI3YcKf25UuAJ4LSRpxEuWnZf80d X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN9PR12MB5132 X-Rspam-User: X-Stat-Signature: bux37sz83yjnfgj3osks76eki7rd1x51 X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: 3CE9B160006 X-HE-Tag: 1707508631-957923 X-HE-Meta: U2FsdGVkX19NSI7jvrdE+jIG8hNsg5kkzVFJGlaGEI8Zbv+BrprJ+2ROyGmv1y6FXNTOw+UMiXG+/wj//eWR90HJoiWMNJjnJbBBKVQ60WcrLIxhpsqtNpbUonaGPNFUsYk6N7Aruqu31T3O+4UyBYzYcP29TB3byP+zk5OwxiOjqKpvAw7beitZL3xDPS4WEZ9qD88iGnAaxRg3hbfLggOwsvBYWuBmN4jNZExth4l4BX48rtdntcwS8VS+ygIG+7JL7LnnMuBHMTX5t1GGKOWBuL1UxZLnKQmkUPD/+GUfBvhQCKi6m88hYLq3cB2+GiCtohhkQoNEbg+0BMCC6G/A6tOgGbjkMmVZ+DyIRHn/rWxOziz201POdhlTjxNJA831i2tPOi/LMtSUqMqqaN7c02pD4lqk4zlVxsvnBsdjvFowy3Y0FnMQWlFC4TKvuXHSzNUIJVyGouhZllYqyULjobxkK4Q2QzKPHtdbWPF5eiCO8xNf3x4pvbEVbtiZhNLNSg/3UGOEYPv61PlCC3Li6wUASsBuPTB9l4ELRAR6yMnRvlNLkHehUXZDwsZEvLoGsHsM02u2vuDh43qk90DpXwyJWDh9KD+m5qKNxC9aVXYU1TLwBnSDVf91+jKtJpMfzAAXgf+h58Kb0GuQLt+8SnPmlzBnheaYnSqi8J6DiLuaaOT8MKp4I3Z8VdexyGnzkDdjOg3BJ62qMurpzTfywBSe2fwGAyRsMqX6MpOxvHGQMSaZ+WEBBHrO6ppD0orLUfs5tr/n51Ms/PQ5X4I1SpaI05U3Cl/TmyUXm5mYpXbYs5j3O2jjkF75dztz6iDKUlVdweO4J2RjtP9R1GSmqpL1OS/RYE8hS2v4VMF1GFz8993LR3vgInGnhY4l+I84GIZ3diYxTdzWgU+l8E0hcNm+MuEUZYbos/tbF0UAjpn36gwkC62pnDPrt+ipbc+n8PO9xAn1coCm1Lu 3L5PrjLW nQo4hfQYuMityKRGzqfDAwaItiKn6Vr/iat9AsBbnV5sAaukR2jFOIrPq2JurYTa1nSRFnSycyIoBQoPeHYBth+G8VZQsr402znBXd/Cf1RvCQap36wuGHzUxuFNxnNPaMdX4X3vofC+skDNN6rLlnzrVXm38YhKr1Y3k2bFamnw70k8g3zvhAqNNOQ1ymIDniqdAn09q0AMMJx15u+eo0WchhhaD0XlEREkY9ooaRvLKFXKbNMckJTTE2Cb/FSyYts036lKkRylIlsuQ7lkvOWmcbjWobFJ3tV3frHcH+mtN7COOwJi29XzwBv8l0WQOq7Zr9x3JobNXCt86+Io8DP7EL+Quv7xJIqHdloxGUFOfvwwilSiMmjj09w3cQsHUBXD0LwyBdLwLMhZxH24TVBFgKol1Yf336qNRZx//ew5BFev4j6BXoP8obg== 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_BD14FE1B-E5CC-48E5-91A1-105DB631D11D_= Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On 9 Feb 2024, at 13:43, Vlastimil Babka wrote: > On 2/2/24 17:15, Zi Yan wrote: >> From: Zi Yan >> >> During migration in a memory compaction, free pages are placed in an a= rray >> of page lists based on their order. But the desired free page order (i= =2Ee., >> the order of a source page) might not be always present, thus leading = to >> migration failures and premature compaction termination. Split a high >> order free pages when source migration page has a lower order to incre= ase >> migration successful rate. >> >> Note: merging free pages when a migration fails and a lower order free= >> page is returned via compaction_free() is possible, but there is too m= uch >> work. Since the free pages are not buddy pages, it is hard to identify= >> these free pages using existing PFN-based page merging algorithm. >> >> Signed-off-by: Zi Yan >> --- >> mm/compaction.c | 37 ++++++++++++++++++++++++++++++++++++- >> 1 file changed, 36 insertions(+), 1 deletion(-) >> >> diff --git a/mm/compaction.c b/mm/compaction.c >> index 58a4e3fb72ec..fa9993c8a389 100644 >> --- a/mm/compaction.c >> +++ b/mm/compaction.c >> @@ -1832,9 +1832,43 @@ static struct folio *compaction_alloc(struct fo= lio *src, unsigned long data) >> struct compact_control *cc =3D (struct compact_control *)data; >> struct folio *dst; >> int order =3D folio_order(src); >> + bool has_isolated_pages =3D false; >> >> +again: >> if (!cc->freepages[order].nr_pages) { >> - isolate_freepages(cc); >> + int i; >> + >> + for (i =3D order + 1; i < NR_PAGE_ORDERS; i++) { > > You could probably just start with a loop that finds the start_order (a= nd do > the isolate_freepages() attempt if there's none) and then handle the re= st > outside of the loop. No need to separately handle the case where you ha= ve > the exact order available? Like this? if (list_empty(&cc->freepages[order].pages)) { int start_order; for (start_order =3D order + 1; start_order < NR_PAGE_ORDERS; start_order++) if (!list_empty(&cc->freepages[start_order].pages)) break; /* no free pages in the list */ if (start_order =3D=3D NR_PAGE_ORDERS) { if (!has_isolated_pages) { isolate_freepages(cc); has_isolated_pages =3D true; goto again; } else return NULL; } struct page *freepage =3D list_first_entry(&cc->freepages[start_order].pages, struct page, lru); unsigned long size =3D 1 << start_order; list_del(&freepage->lru); while (start_order > order) { start_order--; size >>=3D 1; list_add(&freepage[size].lru, &cc->freepages[start_order].pages); set_page_private(&freepage[size], start_order); } dst =3D (struct folio *)freepage; goto done; } > >> + if (cc->freepages[i].nr_pages) { >> + struct page *freepage =3D >> + list_first_entry(&cc->freepages[i].pages, >> + struct page, lru); >> + >> + int start_order =3D i; >> + unsigned long size =3D 1 << start_order; >> + >> + list_del(&freepage->lru); >> + cc->freepages[i].nr_pages--; >> + >> + while (start_order > order) { > > With exact order available this while loop will just be skipped and tha= t's > all the difference to it? > >> + start_order--; >> + size >>=3D 1; >> + >> + list_add(&freepage[size].lru, >> + &cc->freepages[start_order].pages); >> + cc->freepages[start_order].nr_pages++; >> + set_page_private(&freepage[size], start_order); >> + } >> + dst =3D (struct folio *)freepage; >> + goto done; >> + } >> + } >> + if (!has_isolated_pages) { >> + isolate_freepages(cc); >> + has_isolated_pages =3D true; >> + goto again; >> + } >> + >> if (!cc->freepages[order].nr_pages) >> return NULL; >> } >> @@ -1842,6 +1876,7 @@ static struct folio *compaction_alloc(struct fol= io *src, unsigned long data) >> dst =3D list_first_entry(&cc->freepages[order].pages, struct folio, = lru); >> cc->freepages[order].nr_pages--; >> list_del(&dst->lru); >> +done: >> post_alloc_hook(&dst->page, order, __GFP_MOVABLE); >> if (order) >> prep_compound_page(&dst->page, order); -- Best Regards, Yan, Zi --=_MailMate_BD14FE1B-E5CC-48E5-91A1-105DB631D11D_= Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename=signature.asc Content-Type: application/pgp-signature; name=signature.asc -----BEGIN PGP SIGNATURE----- iQJDBAEBCgAtFiEE6rR4j8RuQ2XmaZol4n+egRQHKFQFAmXGg5EPHHppeUBudmlk aWEuY29tAAoJEOJ/noEUByhUavQP/RqgKMfm+7xK0zxvY+z6MYpwAT3ub4jOjWb2 ttzl25IopNd83ZobvW2SmJkdV/DB5BFL3kCv45Zn+go/fuk8uR7AldA4kE/S1s/W QXDnNpmqvH8bN1+kHnEX4erwCvWqN7AXF0DqppLX3JI+bd3l65+MoW6gq0aWvz81 X32xr4yl826Ox5/3H0wT/u4xlccwSz1emXVcZYjdHit6CvC+1XthWFY/8kJVFQnF 05/Rz58qbBE4iBU9DjuYZQ9B2DU4U9DEwfvYETIaaVDv5OaQOGxF+QAG3UZO2eLc gFUXQ8/Q18xCooo7fQUAXc6uIaVQkEsZWNsJ4eVzMVqgZzTK5gEEcIEd30NUNjBW 6aj7v+5gS3a3QeCfY+NqhwNXMulMua9nJDgGvppsmCK+ZQojZAY2nValPUXU4wtt 1p4Bw9G2ATay2LOV3CyfhQT29rMIZYZjjZMC3gnrv78jKNgWTg23otnTHJNVUGU2 CkGBbT2h7bmMhCZH53jaEItghtXNZsZ0Cv/eMmSN/UHzGUxSLtIfaAakTaP6rvPr ibjskAjGPgPCcO/2Al/oRGJvsFM1OTsBAfsshLDp5+tW0sYUsb/FZVPz1864y148 qSYHAt8v70JrJKIorpQj7NWT/9zv3XJ4m+mo+/s3s89YbXT+i/ATsi/X+vo4Clwn XtHTPElZ =/ciZ -----END PGP SIGNATURE----- --=_MailMate_BD14FE1B-E5CC-48E5-91A1-105DB631D11D_=--