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 6551DE77188 for ; Fri, 3 Jan 2025 19:32:33 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id A4FF86B0088; Fri, 3 Jan 2025 14:32:32 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 9FF566B0089; Fri, 3 Jan 2025 14:32:32 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 8520B6B008A; Fri, 3 Jan 2025 14:32:32 -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 685F66B0088 for ; Fri, 3 Jan 2025 14:32:32 -0500 (EST) Received: from smtpin09.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 14EEEA09E5 for ; Fri, 3 Jan 2025 19:32:32 +0000 (UTC) X-FDA: 82967137344.09.8282E6F Received: from NAM12-DM6-obe.outbound.protection.outlook.com (mail-dm6nam12on2074.outbound.protection.outlook.com [40.107.243.74]) by imf26.hostedemail.com (Postfix) with ESMTP id 4530D14000C for ; Fri, 3 Jan 2025 19:32:29 +0000 (UTC) Authentication-Results: imf26.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b=GeN4QBvg; spf=pass (imf26.hostedemail.com: domain of ziy@nvidia.com designates 40.107.243.74 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=1735932749; 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=uYR6eMxtbuf1ksrHcgaQiY4Xx9e7f9Tl4FRrXv/xBp4=; b=ues0LrW+g03Z52olqLjwOimYfJvLwp5mIgDjXLUk76l62JzpfMfhE5HoD5p7L+1+KjuMxG t/nF8nXqD3Jr+EioKDD0vUkUvw8aUTMYCUjTTrfNHnVk3b4f/KG0rB9dSvNO1FzXLoTd41 BoHgeeVR/FdQ/D5Eo+9UEVLTV08UvUA= ARC-Authentication-Results: i=2; imf26.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b=GeN4QBvg; spf=pass (imf26.hostedemail.com: domain of ziy@nvidia.com designates 40.107.243.74 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=2; s=arc-20220608; d=hostedemail.com; t=1735932749; a=rsa-sha256; cv=pass; b=m7OcpqZ9xDP63iLooovvpbHIcrnSu/bkH3yujNavIjDOm9/n/LLf1H7SpoVhPxf8wKblXH LdHvNQ0SjeT6xs/eUm8jE4zXNnw68YadMhneZe8wJoFnSM/la4gPSay7HFsEoKd1dD0Lr4 9WIXyod77NyKQs/Fiiwex2vSDxvUdz8= ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=kQX8nN5fzNunqAFdoAD0lHDXXGPrKeOQdejmeAe5KX0SuymZmUluoc8jNLQhAJlImdviIafc09yWpFB6wMHGU6DyrfKsqgXShq6Z5lC4sw4Lxe2h7pO9Y6YD3HN4urCervByDwom/WY5OfPkWGJCv1x/BVzNVRhjeQoHirI/Me0jnM+g/ZcdRNxBYA/6bQVksnut3J0m2dKqN63Qm2Exk6wNSImLk7BOHYv8xCax4uXuSlu08CFSewsVxDla3X7kOQ7CMbsjLZADcwTsPWX9CY/spd+I9ojPjx1kGKIlueWdwz+CyBoqErUrcFnSpuI6VJQiK2vv4ELs3NisqacIjQ== 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=uYR6eMxtbuf1ksrHcgaQiY4Xx9e7f9Tl4FRrXv/xBp4=; b=f8GWKL8AqW7ADRcajE6GWeRIHhaLPeJTZ6fyDoFDRyxYlf4dxWq2HUy/jpgeinupm6IZVytQdlBq11th/MH7x7W/vghPMb7Lrb2DGOfxHf+MX7c8ixKt4uJWy6jZFJ1vd6yA7wgM/j1ujAO2HPo2oKvtqsldkMvSzIS4cSUr6wwkVvfA3jhvo+DlYNrRvlxTa3+Yi5dEp4DVHUg8xZvI+iXSdgjwoAfvTJBiEkMJxEAPTIPlSI61BUi73yuryhRMZ4+4OedEoSHJBnC+hL6phQEMZ4M7YBS2tC2Zbz6ONITMliPY41U3ysXYC/Bc5rceJHi/+dwK52DEBYEGdd4V0g== 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=uYR6eMxtbuf1ksrHcgaQiY4Xx9e7f9Tl4FRrXv/xBp4=; b=GeN4QBvghtmP3LNTfRsm0GoEUlyCPYT+Wje1LlSAo2WUE1QeffR7Lv/iyipbfhyvk2QxVwu3ZuJP939drEQ3nQNEeLI6rRUDamQHJ+rX4SfrLyfvPd6mlas9l298AMotvYk6ZTqWGgZn9NbN5fY+5ZvBe4HQVZW+hU7S6gSTaoeg5J7K+faLw7FbkEkn9/PSpy9fkpKdHh7uXA/S7vxmkZ4qVksbZPxYMX/D6x6d40EhSJwhGQHAaL4ZBWo9oMzYgnhe2sAfgdngEzdGeNS7GzWwifN9bq8hd09TXSwm36AnIawzwhvdh6AeD3bpFZ+GmZOlb1BG5MZul+X5pdIiGA== Received: from DS7PR12MB9473.namprd12.prod.outlook.com (2603:10b6:8:252::5) by DS0PR12MB7654.namprd12.prod.outlook.com (2603:10b6:8:11d::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8314.12; Fri, 3 Jan 2025 19:32:22 +0000 Received: from DS7PR12MB9473.namprd12.prod.outlook.com ([fe80::5189:ecec:d84a:133a]) by DS7PR12MB9473.namprd12.prod.outlook.com ([fe80::5189:ecec:d84a:133a%3]) with mapi id 15.20.8314.013; Fri, 3 Jan 2025 19:32:22 +0000 From: Zi Yan To: Gregory Price Cc: linux-mm@kvack.org, David Rientjes , Shivank Garg , Aneesh Kumar , David Hildenbrand , John Hubbard , Kirill Shutemov , Matthew Wilcox , Mel Gorman , "Rao, Bharata Bhasker" , Rik van Riel , RaghavendraKT , Wei Xu , Suyeon Lee , Lei Chen , "Shukla, Santosh" , "Grimm, Jon" , sj@kernel.org, shy828301@gmail.com, Liam Howlett , Gregory Price , "Huang, Ying" Subject: Re: [RFC PATCH 0/5] Accelerate page migration with batching and multi threads Date: Fri, 03 Jan 2025 14:32:19 -0500 X-Mailer: MailMate (2.0r6203) Message-ID: <75226395-5D07-4FBC-B2A4-368809336C48@nvidia.com> In-Reply-To: References: <20250103172419.4148674-1-ziy@nvidia.com> Content-Type: text/plain Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MN2PR07CA0018.namprd07.prod.outlook.com (2603:10b6:208:1a0::28) To DS7PR12MB9473.namprd12.prod.outlook.com (2603:10b6:8:252::5) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS7PR12MB9473:EE_|DS0PR12MB7654:EE_ X-MS-Office365-Filtering-Correlation-Id: 19951b16-10ec-4482-69b1-08dd2c2d5868 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|7416014|376014|366016; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?7DOalucMQwwMi5uCoTXf3UC608QWmd4rO+/PWElA6K2/fOs46VjSUAmPl/9J?= =?us-ascii?Q?pW0iOhHid0M0MBKBR27/yYizNz5CuCRgBjDGsh7edmaUeu50sW5lhLWe4oa0?= =?us-ascii?Q?UPE0NMoLvkERMLA8aonfhriqgDv9vgqmx/qf2tw/Z7MuYAmkgcLPsI/gLjgE?= =?us-ascii?Q?JYRkwzAERyLiPPokawB8IV6cd6P0UEWTXX5C3vZgFOuhO+q34NYgfSPBvQYV?= =?us-ascii?Q?acRcKmI1beSyOIRNkylAoZJAvXifW3Wl8oXUi9DLxL+F9DX4MmbzPOtC21YI?= =?us-ascii?Q?ThgDRrV/3m010SuP+wR+JjkSGuUesst+7sY4u7HrrNvRHS44TvxTnpvIMPxE?= =?us-ascii?Q?H7wvb/o/amixEE85n+az+YtSAgRCjIouCCg6lkIvr2DTJ4OJp3AJxdLI4rOA?= =?us-ascii?Q?NqZ8IzxSqy0f6j+PoiA0EtvAbA4qMkp6nIRSrBsrJYuz24t/TjK3IItSbjcQ?= =?us-ascii?Q?j44UtRFUfX6nfxZboKSvoCNwULPJRL384JlQjHBxlkm77ZytEc8hoo+41iVg?= =?us-ascii?Q?2cZqgc46h48dA27fFb/YqZCRkIcDaCzINvjflAKdwuroQwUNrY5EynPWj/GW?= =?us-ascii?Q?0Mx4WtcKCxGGhhHBjDZSACD18b1dx/5Rtlk3wEASSRBDVA9XX0s295ghmNnE?= =?us-ascii?Q?YiGjYpAGmc41WPoKSLX9rrOUvUj+QfBAdsQjkVBm97QkM59PmgOnauBapWDw?= =?us-ascii?Q?Ru96m62ORMWgRxoZ2fxofTyDyLm0GGSkJGV9P+/rjDYcbHRg32Ofzmmlcgp8?= =?us-ascii?Q?rEke/EKG+PbnNT47+dz8jQ7hROczsUqUCwtHtXhS3m49+Cgu0YzVb/L8bE7V?= =?us-ascii?Q?PMVXsW1nv1Biq0AZzmjr1yoaYo1DM1/G/zID4tv5RJn9F8zCvahN8CFP39T5?= =?us-ascii?Q?DDx7B0Re24bALzg4F8olwne6iHSRRcRFQf/ibMDkrqItYWO2ldPk1MJUpQXo?= =?us-ascii?Q?QdHl38zkB2TBJxaL6CV3auA0RXbXGskJ1yXTT89SSDlegrSgkguBctuuDl6U?= =?us-ascii?Q?fDX6SxFo+hgsjHClWHMgC+CP1H3o1CwPFGcLPnj4v+I5cXOrigLjO3FgDIgC?= =?us-ascii?Q?zFG3052/mUzLrUbtsq0+OQK1SdiKijwsEEo+/paJ0BSP8bOlHDm+P/RC+h73?= =?us-ascii?Q?Kez+tBbwtY9tWfYN4+KyamC+4w9cMoQmrZwXSvnEig+vGgDm/9xPspn8REXv?= =?us-ascii?Q?/+5117dWLn+5Vh+V7PaD8RhKtaDN6Cl/yo/wSTUDZrvbj9QNo5DT6ENhKIK4?= =?us-ascii?Q?MbmrWp6vmvq8yPiY/GZd86lK4GVCfjYtt7E3/n23sF07nxEcVmIZZ51i5FQ9?= =?us-ascii?Q?LxJ9n/kmVPfORNMj4/NAGoYU4x+89BOIXefm5mRn7kI56HPct8wVsA4oUMJv?= =?us-ascii?Q?fHecfInpk899L3JbwNC0WioirHaj?= 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)(7416014)(376014)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?3RfSCYqXRVmxudydx+3LfyEOHoz/P5oeaV05gU/QjrUAaVhRkVJ0JG5i+NLR?= =?us-ascii?Q?+9L/15CxBPkYv+FwKq/pmGbaHF+Jgk7ebORd9EAnhe3qBwD9TU+ZGGMxv7cJ?= =?us-ascii?Q?JDdcwgdgE3UAWG/LkWTKjknkxcqC69fb5a/m2hXApaFyEfAq9N2uP7a9Lh4s?= =?us-ascii?Q?Bj7WTd0CdyoBu166O4OaOaiO9VGXgo+xzJUXXEXctgcUlrzouiilqQHlsoSp?= =?us-ascii?Q?RFDUhBsShJxo6ZgWgP23LPAEqId7KrlkjTIJkJz/Cczr5nbbhlYdtxWB+Xs5?= =?us-ascii?Q?xUy8RpY9F3D5iJbrN24meRJ3Hw3niK4lmkNlBA2BAB6jyiTQo+/ya9od4gSn?= =?us-ascii?Q?Eq/KQsAncXPcs/9H1IlunNhQlaUDh+ZoVFcenMkxqms8ieDji63LycCCVoy/?= =?us-ascii?Q?c1FoCmY+kp8EXeCzsJulkuacH0G9vz/3u7hdfreXANvb4DpB4xvbfweA1xd/?= =?us-ascii?Q?DZGBlcJYUEXpBL56spe84s4t4/BWpXHhXRekuth9pU9gkHGoRwm5Qp3ylbbC?= =?us-ascii?Q?eykLtf8yU6njgecGpzxFFrknerFIzQxUQvTlv8mqppgAliXJCJISKe+hRRe9?= =?us-ascii?Q?JttokcrS2Icxy+1JSjb6C+k5ES43B+ZqfweSnH7Z+hq4VtsaVq6ins2eW9QK?= =?us-ascii?Q?CyzNanb8qVQ7uCh8tPL89rXuvUZ1ALobb3DMvTJ9w8WTMgh0zbWUWKM1ZluR?= =?us-ascii?Q?saeRpZyr8jGjSUwgTfntO8dIuuxNSEj2RDou0xzTsqTQxUjKse8VfWhyhfH7?= =?us-ascii?Q?a4z5ctWQ/Xp7XGGbOPvS7DH2W58MyxS/i4SH7qhNlvTUrkBPnyvFBMlUzSQI?= =?us-ascii?Q?tsFzrDJN/oemI25nPA2JPw1WmAQodqowZcmGijcOoyuLe9tVQ5mkWavSn96e?= =?us-ascii?Q?xbcvH2mEfQDg/fwAFgKhWOIgg23G+VEKWe6Ddrwx5hO5KQfzzgO9wR8a4pOx?= =?us-ascii?Q?cU5FzxP6hhPYFppdGN/CEnD8QQQ55RUBz7u1O13LYSzPjMYv+3SeG66J/39e?= =?us-ascii?Q?yhSOqUVCpoD4i7QCY6Guiid7CINDRxgRpZJAg37dUZtHKcf4Si7riOtCphqC?= =?us-ascii?Q?GJkcg5MGLrTX+OICgz9xTk8mG7l5Y09mf1qtQjr/0Et3K04sFYs3l8U58NwB?= =?us-ascii?Q?gTq0Lnb7TWSaX8rHFPGwal13CZheCY557ZfDuW22+LjYZXLQ+YbCqTEZGCaT?= =?us-ascii?Q?Amse2R139MQbQDimRgVpojZTtpZ3CeFHdoM0J5MS+UBr4aR8M0N1Ji2GAr5l?= =?us-ascii?Q?pZ5dDvImIUaTYmRrTGKz+H+levwHjYzxW3hRsc+MUbb8aTPEVf3b5a7SY0O4?= =?us-ascii?Q?0Ahi2ULXX/aZpbAwaw2tLtNcg85V2tFdW3v74r7aZSP6fh0oF1QGRJZ0J+d4?= =?us-ascii?Q?IJCo8osbXCY0v1oaMbk0XbxX2NeUGgtcCjcLO7t0R8znQiNM/RmXomhvHl33?= =?us-ascii?Q?/7oLytr+19tmITMn3Ps+i9G05qFsq7TZANYkW76yXKQ+tr08cGCVPomCmlOG?= =?us-ascii?Q?dYRfeeNQHAfP8I8JEjJHXWu2FNtzPOojyaUseIgsOKvrdvuGg6uO8YhU1Hka?= =?us-ascii?Q?PjJrzvVQvfeHXgNkljcTyhMZf8pY0iCXS0rIdC2U?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 19951b16-10ec-4482-69b1-08dd2c2d5868 X-MS-Exchange-CrossTenant-AuthSource: DS7PR12MB9473.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Jan 2025 19:32:22.6284 (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: gagyCPMCl70z8V84Qq6FodfEktTqQUQYUirgbxgSt1VQjn/FnCmOlxfJfJ+hMyX/ X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR12MB7654 X-Rspamd-Queue-Id: 4530D14000C X-Rspamd-Server: rspam12 X-Stat-Signature: 4qokk5ygknj7cqdr5fjkstuccgdhgg3b X-Rspam-User: X-HE-Tag: 1735932749-433171 X-HE-Meta: U2FsdGVkX19Bc9gosNMpQCqcFW6+QiCjoN0gXCrLNcDCzh/IFTB93NtcMGDzruZ943F2PzeTwxVN6joo1oIbr8CNuow7iUuZ/FLU1+JaYRdr19wr8kUDx8c2BxYfU5GNhQufncs01jCambzhE7Scu+T0sYxPcJYAqvd5RlK2qNg4OPAZp5QuD8HTzB9kmYQhkmyzG384EvgpBFYy42g5/v9ctsJfNQpvuxTejyCWe7utI6jwX1qq3DE4FRBhnRzNRNFxzqoOaqNAONT992jQ8T6qae4ZN7HDnk13Nk1ltGDQSfqJ54s++DxLAILN5xeeE38hqU9rwsYdXGfoWMZ23zb0705ZnJ9SsT6FdhhJjnK5PUYM082GMlyGXrJ1oP+5GXxma7XKLHClQU2NO5taCaMLKACO+edE3JFgeQP4zPf/AY5RmC83f7TWDJxejLRIOa7x3Ua/7/srhTwa9wrnY2OK+Kxv1wdIpZ7367wT19oR0t/0Y+lJn6esNgsRZWQf8v4tHxyLGtNhDR22xMgwEiywgwOt4jxdbRGZuCTC0mv8e+2FIpbheYiSwljw09wjb1teJ9s6OyyxK+TqHXeDJoL1URdxczmdtPDdl0pshf8B42e8AUFD027an3DNy56eprqVB4NIIMBDw3nW+xhJztWfZS/23jnm4E+iNJG8p0bN4L+v+qi/MHF6dXvKE5DWULk4O8jQtQ6LckGhq1/9dZi4XxNvbvRJKd8m1ry0C/ZjkB/CZZwVGmx/e3DXTdgYM7fCxLnd/4nxLXzIZluLUGH4OHUQHgdw5lpXn6/KvdcWn1+HMP8tGeAlnV+PP/YQZY/Ay55gfz87AKJqCL0AJDXKbBy4ii3TF41a2VK/eIf+AgKfLgj7Ojcc7OFdLt63l3gkvNuvgTUrJMCjp4a9SuqCZH7FmOpKMa2kjTYaseF/x9k65oD8QWklRpGkhKFsyAoD5Akot5T2uWiL/Yk OmMlGVt4 STAHSK759isY6hI28gnbTo90atx7jXKv1e2RR3qFaqZw2kIObih7JD2JUYFGmpoaE4ioqKGONC+xPOlK654RCUF+zQuawTa5oGQUyYFV/Xz/Ao905bHsMS+D/Qvxd/OA/AQxXjoO5N8NXY+qRH2oUNw2Hmuls7P9f/KfOMFBctBYCjEokZ28SCF8p9Q1e1hrBpCoJd4lxKP3ZtRf50ywvO90KQzYuBuZ8HP3mIQ2K9DBNEqgp9aWJwhKQrD30H7fS7BHS6bO7VAtiKF8NSK9PnKZS9TEoFLRFXCyhSx38CiSWP1/Wuw7uM/s3K9uaQ7wfXl7fXBslPwlEOL2XxVuj1PwhwiKxCMs5q/F8+aTFUTFXEiSrum7sG9UKXUfIZWrmTiTOXjxfyrBV6rw= 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: On 3 Jan 2025, at 14:17, Gregory Price wrote: > On Fri, Jan 03, 2025 at 12:24:14PM -0500, Zi Yan wrote: >> Hi all, >> >> This patchset accelerates page migration by batching folio copy operat= ions and >> using multiple CPU threads and is based on Shivank's Enhancements to P= age >> Migration with Batch Offloading via DMA patchset[1] and my original ac= celerate >> page migration patchset[2]. It is on top of mm-everything-2025-01-03-0= 5-59. >> The last patch is for testing purpose and should not be considered. >> > > This is well timed as I've been testing a batch-migration variant of > migrate_misplaced_folio for my pagecache promotion work (attached). > > I will add this to my pagecache branch and give it a test at some point= =2E Great. Thanks. > > Quick question: is the multi-threaded movement supported in the context= > of task_work? i.e. in which context is the multi-threaded path > safe/unsafe? (inline in a syscall, async only, etc). It should work in any context, like syscall, memory compaction, and so on= , since it just distributes memcpy to different CPUs using workqueue. > > ~Gregory > > --- > > diff --git a/include/linux/migrate.h b/include/linux/migrate.h > index 9438cc7c2aeb..17baf63964c0 100644 > --- a/include/linux/migrate.h > +++ b/include/linux/migrate.h > @@ -146,6 +146,9 @@ int migrate_misplaced_folio_prepare(struct folio *f= olio, > struct vm_area_struct *vma, int node); > int migrate_misplaced_folio(struct folio *folio, struct vm_area_struct= *vma, > int node); > +int migrate_misplaced_folio_batch(struct list_head *foliolist, > + struct vm_area_struct *vma, > + int node); > #else > static inline int migrate_misplaced_folio_prepare(struct folio *folio,= > struct vm_area_struct *vma, int node) > @@ -157,6 +160,12 @@ static inline int migrate_misplaced_folio(struct f= olio *folio, > { > return -EAGAIN; /* can't migrate now */ > } > +int migrate_misplaced_folio_batch(struct list_head *foliolist, > + struct vm_area_struct *vma, > + int node) > +{ > + return -EAGAIN; /* can't migrate now */ > +} > #endif /* CONFIG_NUMA_BALANCING */ > > #ifdef CONFIG_MIGRATION > diff --git a/mm/migrate.c b/mm/migrate.c > index 459f396f7bc1..454fd93c4cc7 100644 > --- a/mm/migrate.c > +++ b/mm/migrate.c > @@ -2608,5 +2608,27 @@ int migrate_misplaced_folio(struct folio *folio,= struct vm_area_struct *vma, > BUG_ON(!list_empty(&migratepages)); > return nr_remaining ? -EAGAIN : 0; > } > + > +int migrate_misplaced_folio_batch(struct list_head *folio_list, > + struct vm_area_struct *vma, > + int node) > +{ > + pg_data_t *pgdat =3D NODE_DATA(node); > + unsigned int nr_succeeded; > + int nr_remaining; > + > + nr_remaining =3D migrate_pages(folio_list, alloc_misplaced_dst_= folio, > + NULL, node, MIGRATE_ASYNC, > + MR_NUMA_MISPLACED, &nr_succeeded);= > + if (nr_remaining) > + putback_movable_pages(folio_list); > + > + if (nr_succeeded) { > + count_vm_numa_events(NUMA_PAGE_MIGRATE, nr_succeeded); > + mod_node_page_state(pgdat, PGPROMOTE_SUCCESS, nr_succee= ded); > + } > + BUG_ON(!list_empty(folio_list)); > + return nr_remaining ? -EAGAIN : 0; > +} > #endif /* CONFIG_NUMA_BALANCING */ > #endif /* CONFIG_NUMA */ Best Regards, Yan, Zi