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 AD893E95A95 for ; Mon, 9 Oct 2023 13:43:50 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E7A87900003; Mon, 9 Oct 2023 09:43:49 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id E2A9B900002; Mon, 9 Oct 2023 09:43:49 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id CCA90900003; Mon, 9 Oct 2023 09:43:49 -0400 (EDT) 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 BDD5A900002 for ; Mon, 9 Oct 2023 09:43:49 -0400 (EDT) Received: from smtpin02.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 96D4CA0246 for ; Mon, 9 Oct 2023 13:43:49 +0000 (UTC) X-FDA: 81326040978.02.D7B60ED Received: from NAM10-DM6-obe.outbound.protection.outlook.com (mail-dm6nam10on2068.outbound.protection.outlook.com [40.107.93.68]) by imf06.hostedemail.com (Postfix) with ESMTP id B633D180018 for ; Mon, 9 Oct 2023 13:43:45 +0000 (UTC) Authentication-Results: imf06.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b=GU7wuwNW; dmarc=pass (policy=reject) header.from=nvidia.com; spf=pass (imf06.hostedemail.com: domain of ziy@nvidia.com designates 40.107.93.68 as permitted sender) smtp.mailfrom=ziy@nvidia.com; arc=pass ("microsoft.com:s=arcselector9901:i=1") ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1696859025; 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=Jb8dbOgMzELxJivu109W123rIL1tWsdZV+1jhYDVaR8=; b=D7EQZPDtgz1MPY5hEZdydUY66pWX+vYXpmsZhgL56mON4gH3AlpXu93gvbBEarMUBSZuIl bg2o1TtKSHW3KMpy7dbiSLqZBbiShal65i/70/RCf3RH3/RjLQNJU3vxCx1CI29k6AAx4k MrMUKxFsRnHrsB9wSYguwEIWF+6EWu4= ARC-Authentication-Results: i=2; imf06.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b=GU7wuwNW; dmarc=pass (policy=reject) header.from=nvidia.com; spf=pass (imf06.hostedemail.com: domain of ziy@nvidia.com designates 40.107.93.68 as permitted sender) smtp.mailfrom=ziy@nvidia.com; arc=pass ("microsoft.com:s=arcselector9901:i=1") ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1696859025; a=rsa-sha256; cv=pass; b=dlNdpwIJqQIlSRuj9ki8u3/eCP7c1ts/IWshp3OVw/y4nar4PM1AbKL5kC0HMhx3+51t/L fY5wymguIKLJ/Z0vL7VVZf5g9GPXBfbBKhW/Oa7lWlfj3ThH4x1fLxXZqpt7P7geGG9Etn Xq5QCp9hCMeCdaam3vra0DM+WfQ1LD0= ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=h3sV/+fRwN5C8BuIIIwUKcA/a8v4z0H2ksNimzWO7BcJQc1SH8uhMVQ/dYplCrJ3jqCCJwTUknHd+a1SMT98ygpl3Hilcq9FkCLHkht61q1X3hmkxCuWgDLy+aMR2Nmwy0SwUZvD13Fe/Xlh+6W8d40/empcqVABMwA+lbi5qXRamU2VKDdoO7Ge82cnSq/SlomJtB5nYhk/8ooVZPJgb7rInmQM9rCb+xPS9ARLTI5mC6YD1rIi6vgWFdAic/JQjqbQrxfazt536vbPFgUVIuPpFnvkNHqPyY7+FqkMDIcajo37gVy2V8shtymC+ENIMMeRI8acNSJGwnkSO/l9Yw== 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=Jb8dbOgMzELxJivu109W123rIL1tWsdZV+1jhYDVaR8=; b=hSo/kY/CNsE5kac+rrR2upkYUtan2Z6aqfhn3hsNqDKCXGN6MD/6WbihdcxUwMVhExQ9QNg0Dad0xltGU5/Raelh9a2wV+FBQeEPFdaDcqBExTOUe8Dr5VeXxZ8Kb0H3MgEScpLjd0rOKNsmDrL/CSZGI5Lnf3iDGdLeueef3u7Rmp+VLqd3iBC3SjSBW4twq1d3+vHQ6/TY7zjt5pSsmaEYbk87PE8Yc2O9r6RDIoW1rsgbvXdbj8LSDBnl/08uucw0RoNtCUB/eqz2C+J+an+l1sh5tI0iplBj06F/yJyoLhD9XEMZ7snZpIJIQC4r0cswHykH0+wVJ/k5sBZeSw== 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=Jb8dbOgMzELxJivu109W123rIL1tWsdZV+1jhYDVaR8=; b=GU7wuwNWBhCNuq35RGFlZy83abqCv1yNhsKLylJfsmCcrq4cmBu4NELOtNNRrSe60fCPLO9MoXXjVrYDZXpOe12hnw210GVOoYj8hJ8snrkxYXc1H0aQmRvsDYvO9t2MTn+cbZz9YzlFkC0Z3Ugz63BsCht+iaUN/Qwi5KL1nRDcs7t5cXQCCCxrqvCPuuDiMn4Zase4ITFTwGX08FcWEOWetYxqTjcKG7pu2Q+iRUMGNqRgo5Axd7WSiOkWvdcUYow/eeA9BGYzdkHzFL5H4P53uA4JrkF4x4PkjlnQ9J1sRGcmWfzaT64qgwIulGXpKdQ8JBDkNgo5F/D6v0OseA== Received: from DS7PR12MB5744.namprd12.prod.outlook.com (2603:10b6:8:73::18) by PH8PR12MB7302.namprd12.prod.outlook.com (2603:10b6:510:221::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6792.20; Mon, 9 Oct 2023 13:43:41 +0000 Received: from DS7PR12MB5744.namprd12.prod.outlook.com ([fe80::4b09:197c:609a:1013]) by DS7PR12MB5744.namprd12.prod.outlook.com ([fe80::4b09:197c:609a:1013%7]) with mapi id 15.20.6838.040; Mon, 9 Oct 2023 13:43:41 +0000 From: Zi Yan To: "\"Huang, Ying\"" Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Ryan Roberts , Andrew Morton , "\"Matthew Wilcox (Oracle)\"" , David Hildenbrand , "\"Yin, Fengwei\"" , Yu Zhao , Vlastimil Babka , Johannes Weiner , Baolin Wang , Kemeng Shi , Mel Gorman , Rohan Puri , Mcgrof Chamberlain , Adam Manzanares , John Hubbard Subject: Re: [RFC PATCH 0/4] Enable >0 order folio memory compaction Date: Mon, 09 Oct 2023 09:43:38 -0400 X-Mailer: MailMate (1.14r5994) Message-ID: <14089E95-251E-43A4-AF32-C9773723C810@nvidia.com> In-Reply-To: <87a5ssjmld.fsf@yhuang6-desk2.ccr.corp.intel.com> References: <20230912162815.440749-1-zi.yan@sent.com> <87a5ssjmld.fsf@yhuang6-desk2.ccr.corp.intel.com> Content-Type: multipart/signed; boundary="=_MailMate_44785DF2-B4E2-4DDD-90D3-0DBA62E328B3_="; micalg=pgp-sha512; protocol="application/pgp-signature" X-ClientProxiedBy: MN2PR08CA0028.namprd08.prod.outlook.com (2603:10b6:208:239::33) To DS7PR12MB5744.namprd12.prod.outlook.com (2603:10b6:8:73::18) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS7PR12MB5744:EE_|PH8PR12MB7302:EE_ X-MS-Office365-Filtering-Correlation-Id: 434199f7-2415-40d4-47d0-08dbc8cdbf82 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: NNSWoxzamO938ijWeNyq8JciFF+BNWTzmnorDO1hE0RFdMKvjy9/9E1A0tjPeK6EJ4QKQAXRoGeSO/uULv/9fgHZECTpgRIVSP6W94OiN4LTHhI6o2cUJ+RRy0QPPymrHQqHLjkFTlUtmXAloda09/b8oEvkham6TjYEANt0KC3ESrEFM7Sm/td8ouHngLctbURClgrC07azcxJXqam12S9wGQFi7J3E40FD6F/MmppiIADUfeoSFJC8bHPCOaCePm/vkKdTLWvFeyMNdeRlXRe1vbBl+j+c7xxyR+oXxuhC7DN56Hyud1qWeyfAGtJVezYu8Y+1J7jKQ8OteOIgKiQFkx11aHdh4zlaRHfIlpmxuDfn9LpDHwbmyHtqE0PsqE8s+7zLp1MIxRNlYfuWLkPulRbBPZt5alporOobqcq8z1GWELkPWVgOBqAmRfg9fcFI9XRvPpiiEN6xQ49pM9OxOHnbzDj7gePgjSUj85Xlle053Bk0hGn1izAMQ/pS0pkwVBd0jmJpxCSyGjcoDyY/kp966ZZ1x2ez+ZaXloD33gqlvfMGcLIdqlXSKQtOtBEuPHkagkNA3ftXM4a5lUUGIakA/GTJIl8oKnVHFgVANXwdbH6lbw6T+6DRVqh1J8yVYi6STiCM1nNQIVEktu0xsmDu48vmfEqtd37RiVc= 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)(366004)(136003)(396003)(39860400002)(346002)(376002)(230922051799003)(451199024)(186009)(1800799009)(64100799003)(6666004)(36756003)(2906002)(33656002)(2616005)(107886003)(7416002)(53546011)(235185007)(83380400001)(38100700002)(26005)(6486002)(6506007)(86362001)(6512007)(54906003)(8936002)(66476007)(4326008)(41300700001)(66946007)(316002)(6916009)(966005)(8676002)(5660300002)(66556008)(478600001)(45980500001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?/GLM7KLTTkChDiG7AZ5MJR35i6eD/Ea+bDq0wdH04C7EIgykLu0NmSBNLza/?= =?us-ascii?Q?KbhJmcUVSM1mv7NF4IR0KylZV4SLFZRhAKlNB9ww41am9Pvycj62MFjEWyBd?= =?us-ascii?Q?Kg8SFE3mJZaWvtz0tnMDC/1bZWF0bRZ55YbqIstrh0yPew/RKeBePyqYGq/q?= =?us-ascii?Q?QuyYwCBYcjOJh2suQ1ydqLcPBbHW+hZwL5SXYKFmezFWJF8D28vBRV01Exvb?= =?us-ascii?Q?uC48ypbCVaOYI4PhwBaxWqXOx3oMgMjIWnK3UQNE6ldKWoEe5KaaRf3QP4BN?= =?us-ascii?Q?j0JjUwYiX5Vrf5LNew64OcA7WfeYnU8dS3cqDnMlx3xMxLxGG/sNPpndNRdx?= =?us-ascii?Q?qOfyQzpubxqJk+htgkaEYM/lwqeN4NhzLkXYQYaLbTr7pc2O6378SDONR4bt?= =?us-ascii?Q?VrwRql9iYOzaB/7TXqKAm/3Xc6r6mlLTPGOmUAT4sXPfyONvPjcffUQ5i6mG?= =?us-ascii?Q?WPGbDHTaZ7vp5uLacU2VXU33loTohIcMMMxvwbiaIBYgBnlMGBJXlwoaWLJ9?= =?us-ascii?Q?36pQVCfzmU6wvac61IyczgZthAKfb3XYCkz0vyOufRXufEDIVwlgLE8dv26P?= =?us-ascii?Q?AnyGm1B4IYF7au/jLPvEf17K1qc5NZmkqu6b8MshWUQD5R2U+I9cI0doS8e/?= =?us-ascii?Q?7/tHsxUrVQWQJ9mKcXhQLoVnZa8b+S5SdFtl7AJPtPsKNHGRiq20/HZ92dWR?= =?us-ascii?Q?apV4ly6njcLkCgy041C8cEti7y8musMGNtGT8sYoVF2CJKKg0xitjR+w/mYw?= =?us-ascii?Q?HSj82r5r0LmAF4o8VybkHxwWDVHWSPkn1xczNxVoNNLMxwfSdwGwQmO8kJd2?= =?us-ascii?Q?BMomemyJN+Uvy8UalF73qMM3/aqUWfHMrCrth6UG1huDoy7idV97kEjdWsbo?= =?us-ascii?Q?ttYpdy+1vTg17aNxmKiReT8UQp1thU5etyhPQI0f0TFWlku+8lGkI+ECM+w9?= =?us-ascii?Q?KXj3EQ1Ultmw7tjfIbPRL2wBN1V5f1GfGWeo2onoh/2pwYQbpBq6Pbsy5tng?= =?us-ascii?Q?tlswAB/73MkZrmChGPxkBUnDVWJKAYBPX6+8f8X7/+TzvS885YHF1sgug562?= =?us-ascii?Q?JxOj+Kjs2UUVrvcKElnjnVG+GdpoGVNPejdVboLj4noWOHxVKTA6T41RV7+p?= =?us-ascii?Q?v/IyiUi33KGpQOd+ql7otzuVwSjX9DWvZKfyPFl7pH1/GrdM2Mc0c2QQxHTA?= =?us-ascii?Q?nI7s929jXAYafxWyWs3puIhFtQaXT2Qiw9QqwRMSUugo/jk3FIw4Ut5u4ZF1?= =?us-ascii?Q?J5Kea3eIRrQpeJ81HbS99ahrGCGIPYZuom8bLuw0kmYiCJfG+YFAXExhxJMz?= =?us-ascii?Q?y5tKEuXlgelKdFUDa7SaVtW4VxRrbhsXZxyt8qIImlwjPxjzJsFKB+E2ci7c?= =?us-ascii?Q?ZpiGaI/lhmVOwKmu8fwH3I4BOd+0FjSzsHdPAV54ncCQU5WfBa7Jm00/lIXp?= =?us-ascii?Q?MW/PB79jy+Azojx0Wu4S54uEFfZWEoH+388XDdLfaKEkKpZAvyeUeYw2b97L?= =?us-ascii?Q?UDQnNXDrXK/45PMwSD7RIGXU/h/OQT4wC57JgujFDSmGM69+AxkzPuaz1LMz?= =?us-ascii?Q?HjJK0kKBKOHMk+VvXfJGEK0EfxwAzEn86O+wFnc9?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 434199f7-2415-40d4-47d0-08dbc8cdbf82 X-MS-Exchange-CrossTenant-AuthSource: DS7PR12MB5744.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Oct 2023 13:43:41.1273 (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: TGdZszRqwx2FDPmL2NQ8oUIqnZ5jC4EQgIelOLGtgf28S28wury2EJrbDPWFDRLa X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH8PR12MB7302 X-Rspamd-Queue-Id: B633D180018 X-Rspam-User: X-Rspamd-Server: rspam02 X-Stat-Signature: rbr6efd5einm3kg1bozxmg9jom1mgei6 X-HE-Tag: 1696859025-162153 X-HE-Meta: U2FsdGVkX1/3s/1iPhIK9Mki2HxbReF/m6ArkboH93tHWbZylrStZTYO+vKVLMNTrpq6R2wsTbBbGPc2FjN4wAvyv1NTbwYoraCEWjBSfKzdfOwqJFCRaXuI9PX/cAQfjC9jr7EW0tXl2ORWOHd2pBEqNG7tAe6mpEelzGHadct9FVmR25Y7VsgALpqvCh0FBPnfLsH8fRTizrJYhS3LuqzSUIgQqnu5uSlRCXDjFNwoN4wse6Aogy5dJeZl+IH0CCka5275Z1XdRcYPVyel53t/RA00LMSU65knpVxsyaE1Dud0zSir/ZhjAQPIkYo7AFRXuxlVrDH2BAgejS9Kn8qeaWGFzZdmE0pWxFQfQ7q6vQqJV965XJ0tD24M3taR5r7rV/as5a+l3KfDSh45oEWzBkQ02lXANKTQGmx+TDhlZxrUwQPW9hZO2PlORLx1aLbnFPQmf4dQOEVunoIDnGDaLcq0boryr9YJV6Lyc/cIlKhd99EkuftU2UHicH3qVrBQIUJQoZHbmO+xKTKW1HrCSR7TD9pUYt++yN130yidXqksGWRVHe7ykTFAWE/U//jXq0FRvf4761ej1p/vxJWahqfUoKlaUPZIeeDSQke8Bo2Ob9pUjxzMrJsGpKOaauzZVlfCnliBwyXGJNJk5UENIfVaG40iTsFxo5mO9hFeMpglUsAEn33Te2e+aJsgSfIQcGzlyRjEFIlZcYcksWebE2TBSL7j4O/9mBHrRRJFRc/t77NJHq26QKBghMy89mFwb5saKHzAx6hzvIJCnFIQIxXgAu3I2G/jZAwti6ROWan7GGxiP1Z5u10tzVbAmXDrxQFYdl2mTuL/Bpc/Fuyc22BixTpqhDKeMqyV7/1tBBtQNmlt3e4Suyrj5kiXZrTIrSN7kKh2Spwf+mB2R8YI2jBvP3SE8MmKtfTESGISDnBpghF38rd+cT9hQRsC2dt5cNItdrL/2ENynz2 MCb0yAtx Qw6UD8dnd2+IpDshCtEVS6BQt+6K/OJaMGvfYWcuIWJxoWq6ARyrzGo+R2Ct3RZskODTJsJG6WcYf4Ou33op/xUlLxk83RE/KHLsuXkLs5Mkh/FFSAF/mor4SyItNdH8ZeRHkU/9aaSknkyFEV/C2yOmvOqfSCqEbTdqnXXvSs1QuyqL8JYVovOJaegnmr/aWeTYbxuuq4cVIiAwjmGMyZVEqdbKgIKg94qMR2ksKdyXFlLuJLz5xO0Tf59yMy6JCexHsKs8eN/KQx5hHOHSGvJ8cKKTWDzbmVplXJDox+G93O2eJ18yxCUywZsc6Vn1H+VjHBxLT+xyAG/J2fqoKckOboxBdvtWHYWhBrhWVqZY6sv0Uln4MDh0T02q6rohn5hVnsXPL2KpusFGwRnDU6akciK0vxHS+5cRE0GyW6uVwIuiaqNYGId689auBtQF3B3l0y6wDUsIgeEKQEQKjgC4wVYhr5outA+f/42QaW6trRvsBj0q0rcd+XW10LO1p5BojytmaF0E5jUg10F+sRy9Vsf1/h5oiIlu4soAQYFXbw+NQC9HuYY75mTkX6oCsWb62x+KtO0UgJEUaTE6ovknI1V5OKDcbXgmKkQx4bd/LJfA6We7yXZpbqR+bgV+n1BrK 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: --=_MailMate_44785DF2-B4E2-4DDD-90D3-0DBA62E328B3_= Content-Type: text/plain Content-Transfer-Encoding: quoted-printable On 9 Oct 2023, at 3:12, Huang, Ying wrote: > Hi, Zi, > > Thanks for your patch! > > Zi Yan writes: > >> From: Zi Yan >> >> Hi all, >> >> This patchset enables >0 order folio memory compaction, which is one o= f >> the prerequisitions for large folio support[1]. It is on top of >> mm-everything-2023-09-11-22-56. >> >> Overview >> =3D=3D=3D >> >> To support >0 order folio compaction, the patchset changes how free pa= ges used >> for migration are kept during compaction. > > migrate_pages() can split the large folio for allocation failure. So > the minimal implementation could be > > - allow to migrate large folios in compaction > - return -ENOMEM for order > 0 in compaction_alloc() > > The performance may be not desirable. But that may be a baseline for > further optimization. I would imagine it might cause a regression since compaction might gradua= lly split high order folios in the system. But I can move Patch 4 first to ma= ke this the baseline and see how system performance changes. > > And, if we can measure the performance for each step of optimization, > that will be even better. Do you have any benchmark in mind for the performance tests? vm-scalabili= ty? > >> Free pages used to be split into >> order-0 pages that are post allocation processed (i.e., PageBuddy flag= cleared, >> page order stored in page->private is zeroed, and page reference is se= t to 1). >> Now all free pages are kept in a MAX_ORDER+1 array of page lists based= >> on their order without post allocation process. When migrate_pages() a= sks for >> a new page, one of the free pages, based on the requested page order, = is >> then processed and given out. >> >> >> Optimizations >> =3D=3D=3D >> >> 1. Free page split is added to increase migration success rate in case= >> a source page does not have a matched free page in the free page lists= =2E >> Free page merge is possible but not implemented, since existing >> PFN-based buddy page merge algorithm requires the identification of >> buddy pages, but free pages kept for memory compaction cannot have >> PageBuddy set to avoid confusing other PFN scanners. >> >> 2. Sort source pages in ascending order before migration is added to > > Trivial. > > s/ascending/descending/ > >> reduce free page split. Otherwise, high order free pages might be >> prematurely split, causing undesired high order folio migration failur= es. >> >> >> TODOs >> =3D=3D=3D >> >> 1. Refactor free page post allocation and free page preparation code s= o >> that compaction_alloc() and compaction_free() can call functions inste= ad >> of hard coding. >> >> 2. One possible optimization is to allow migrate_pages() to continue >> even if get_new_folio() returns a NULL. In general, that means there i= s >> not enough memory. But in >0 order folio compaction case, that means >> there is no suitable free page at source page order. It might be bette= r >> to skip that page and finish the rest of migration to achieve a better= >> compaction result. > > We can split the source folio if get_new_folio() returns NULL. So, do > we really need this? It depends. The situation it can benefit is that when the system is going= to allocate a high order free page and trigger a compaction, it is possib= le to get the high order free page by migrating a bunch of base pages instead o= f splitting a existing high order folio. > > In general, we may reconsider all further optimizations given splitting= > is available already. In my mind, split should be avoided as much as possible. But it really de= pends on the actual situation, e.g., how much effort and cost the compaction wa= nts to pay to get memory defragmented. If the system really wants to get a hi= gh order free page at any cost, split can be used without any issue. But app= lications might lose performance because existing large folios are split just to a new one. Like I said in the email, there are tons of optimizations and policies fo= r us to explore. We can start with the bare minimum support (if no performance= regression is observed, we can even start with split all high folios like= you suggested) and add optimizations one by one. > >> 3. Another possible optimization is to enable free page merge. It is >> possible that a to-be-migrated page causes free page split then fails = to >> migrate eventually. We would lose a high order free page without free >> page merge function. But a way of identifying free pages for memory >> compaction is needed to reuse existing PFN-based buddy page merge. >> >> 4. The implemented >0 order folio compaction algorithm is quite naive >> and does not consider all possible situations. A better algorithm can >> improve compaction success rate. >> >> >> Feel free to give comments and ask questions. >> >> Thanks. >> >> >> [1] https://lore.kernel.org/linux-mm/f8d47176-03a8-99bf-a813-b5942830f= d73@arm.com/ >> >> Zi Yan (4): >> mm/compaction: add support for >0 order folio memory compaction. >> mm/compaction: optimize >0 order folio compaction with free page >> split. >> mm/compaction: optimize >0 order folio compaction by sorting source >> pages. >> mm/compaction: enable compacting >0 order folios. >> >> mm/compaction.c | 205 +++++++++++++++++++++++++++++++++++++++--------= - >> mm/internal.h | 7 +- >> 2 files changed, 176 insertions(+), 36 deletions(-) > > -- > Best Regards, > Huang, Ying -- Best Regards, Yan, Zi --=_MailMate_44785DF2-B4E2-4DDD-90D3-0DBA62E328B3_= Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename=signature.asc Content-Type: application/pgp-signature; name=signature.asc -----BEGIN PGP SIGNATURE----- iQJDBAEBCgAtFiEE6rR4j8RuQ2XmaZol4n+egRQHKFQFAmUkA4oPHHppeUBudmlk aWEuY29tAAoJEOJ/noEUByhU0GIP/1yOJU+pYnh4tjyapsDCMr3//3Zhe4vo5B0u ZZc9FKfNjQCh2MccBqAIUrKx5WTFpDg4sONFnJd4VyPIrZ3feCf42d5/8KlL8H+Y uwUC9IDT8m81HNOs3IqugN8MKeq20pNHtEm/q1Tr67kx+V0j9pgvJcYTJA4EKf5V TBvAFTwujJozM2G38yskqKhZhQUOrcsURxfsEipnNDSL3LgdheLqk4wGeRtc2461 4V64GJV8llVzqv3IXK7owJWfVKm2IqtNxK5ruC/mP/q4urYzghquk8mx1wXIkr8A JtbCZ7QYuGNm25Tp+1l9yydHOQ8t8Zy4iEFBDHXaZfacByjJej9Y1vjEMrqdpFws r7BrAnT7gq7lMRu2urdVcaRjSoIhwKnGP446OISoPIyTYL97tH8TV+Dc66Z4QOC4 329JZ/XDoTvAvnPR7YWk54wb0vypqeFkOIuj4S2CoRPglUj7F00OjGwelOmQYuWN r5ld8ET/TGQbAMmVTAcxGtzHzRI9njcqlLDKMazs08hHah/czqMK7nrjnhNHTRcP glVyC86xm4H4UjX5JY13jXXNyBUjlR1mGbYWltSEp8jnFD+9e2iL+oHl0JlUpEnJ l+x3AaOa9lOGn8rmcVF9LoqSUf2MIScIyHaa/2AaCxiWRyc6dWfg8ha4OZtBAbWZ litvxK+T =6A0y -----END PGP SIGNATURE----- --=_MailMate_44785DF2-B4E2-4DDD-90D3-0DBA62E328B3_=--