From nobody Mon Oct 6 06:32:11 2025 Received: from TYPPR03CU001.outbound.protection.outlook.com (mail-japaneastazon11012003.outbound.protection.outlook.com [52.101.126.3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AA5C12135B9 for ; Thu, 24 Jul 2025 08:45:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.126.3 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753346750; cv=fail; b=K7PzPaWDBueLUgJ3kTbasTmjg8X5IqCqqHP542LUPWD0t6G7pnES2k+ZN4CF3RtPlQQP9Pt9tK8TLZMvwtWgKnAefpnHiHCNJLsVZcNwqn5lZFp65XDOpBxTx7Cfb68L+qiN3qIY8uRUJU3olDUdAacZ8gRrsYa9ZwnhfxDkuBo= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753346750; c=relaxed/simple; bh=6T+aEF3D2QTWHgjjcqDvz5EIBhssGAalCmffdNyyGxY=; h=From:To:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=P/4GzPn2bzOu3s6NsqTnifJoOcGWY2O32r8BeH9MWFWxPdCulrWQ+FnrONNUWFXx/MlAQwmujkEO4X2tomZ2oNJAEJ2afbd2kZifOiQ62ClFo/j1Pb5EklSwMkd8pwfcbadoP7oRYpZ3UC2zkP/crKNsVBjDoCOx0iVV/NWybMA= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=vivo.com; spf=pass smtp.mailfrom=vivo.com; dkim=pass (2048-bit key) header.d=vivo.com header.i=@vivo.com header.b=MHig1tkN; arc=fail smtp.client-ip=52.101.126.3 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=vivo.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=vivo.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=vivo.com header.i=@vivo.com header.b="MHig1tkN" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=TiOROehli7+/U2bTFBQ5hBEqiGwAuM/qVqo9qTjO1VT6/rz2hUULWLEZXeHEJOm0v4yhlc0NRm6Rtu70Qn1N4u8Q5YOA2Wk+uFCU2Wo76EDnKzCxLIgm2LZHLPIQFRKd5dnpu4j+tg/m2AgOgw8s7gd5qydOcFJ81z9EtGLG5Q01pcg4/lqBM7etLpPGjgek42lFILd/s49uqBgoqjt31rupxkcDa1eTaNNXxUQknlEC2C83mO3RXc+z+90g9qS+dGdyCAAGFE3CMBTxyhhCmj3m+dhh+8mu5i7EFX2Dxmew8wkLPkS6yCDyZBqrbfsMTiFvCvblJg/lNbP+9yVkbg== 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=J2Dq90EgzDzKGh7Zr8kmf6dOAjvyPb8DO2vog7rCgno=; b=NAliPpJeyaw+JGL74f5VituZ2jgd5kkfxQ1od2fdsENDy3JjoqhTozS+Ubgu516xt8qnNuExu/A1tvDbGWKY6KOQuZesVfAU9r6nCtiTST4gH6mzHTxto3w6vkw8B9e8eoQS4Xsj8+rYimZRPFi5fiQmFiEqKUXAmHWFe+kkCLdQP4yD0AjDnXMsAUfx62EdBfZTpStgg72UW3Fj63MjomlOBoOrej12jIRHB8yOgHgNXnm/jqNZGEG10h/xQrouPDTJiMhXu85Cc+WOckYAWbdUmc8WS8bPfXvLe+LUnsDc0cVaGA9A8aH5pmIlOxWbcG4qjPED8bgKq0PLpkfWRg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=vivo.com; dmarc=pass action=none header.from=vivo.com; dkim=pass header.d=vivo.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vivo.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=J2Dq90EgzDzKGh7Zr8kmf6dOAjvyPb8DO2vog7rCgno=; b=MHig1tkNLeXk7AA4MJTTKAfgMwAw2n+KLu4FFLA91nrvS5q8MVAXj0e56UqBS3Z+NeoRqqui/PvYSQ1y1PpeU3ZwOxF9Mulgv2aQ4oksW5ZLqjE0iGQ/ddN9mdhGDJgj+/9KaJIE1Q3HgPCia2E+yaS3ef4Sqmd191F/pPObjxB1q9PfL6PyQGnl76S2eMygOotrOFNKajPgTHR2KgLSYT5hAWd0iw8Rl7beKgpO0b9xuVc1VCsI500VBG1DjuWVzG/iiDjTZVGnC+9TRTMjqir5AmqFafgMNCf4DuYblll3beH+HmAJ3fV3OK9H8XWnXwIQAssqc91KddX9KodgLQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=vivo.com; Received: from PUZPR06MB5676.apcprd06.prod.outlook.com (2603:1096:301:f8::10) by PS1PPF2A261C07C.apcprd06.prod.outlook.com (2603:1096:308::247) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8964.21; Thu, 24 Jul 2025 08:45:46 +0000 Received: from PUZPR06MB5676.apcprd06.prod.outlook.com ([fe80::a00b:f422:ac44:636f]) by PUZPR06MB5676.apcprd06.prod.outlook.com ([fe80::a00b:f422:ac44:636f%4]) with mapi id 15.20.8943.029; Thu, 24 Jul 2025 08:45:46 +0000 From: Huan Yang To: Andrew Morton , David Hildenbrand , Lorenzo Stoakes , Rik van Riel , "Liam R. Howlett" , Vlastimil Babka , Harry Yoo , Xu Xin , Chengming Zhou , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , Zi Yan , Matthew Brost , Joshua Hahn , Rakie Kim , Byungchul Park , Gregory Price , Ying Huang , Alistair Popple , "Matthew Wilcox (Oracle)" , Huan Yang , Christian Brauner , Usama Arif , Yu Zhao , Baolin Wang , linux-mm@kvack.org, linux-kernel@vger.kernel.org, "Kirill A. Shutemov" Subject: [RFC PATCH 1/9] mm: introduce PAGE_TYPE_SHIFT Date: Thu, 24 Jul 2025 16:44:29 +0800 Message-Id: <20250724084441.380404-2-link@vivo.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250724084441.380404-1-link@vivo.com> References: <20250724084441.380404-1-link@vivo.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TYWP286CA0006.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:178::16) To PUZPR06MB5676.apcprd06.prod.outlook.com (2603:1096:301:f8::10) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PUZPR06MB5676:EE_|PS1PPF2A261C07C:EE_ X-MS-Office365-Filtering-Correlation-Id: 4c575e92-59c6-45f1-75c2-08ddca8e7b37 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|52116014|7416014|376014|366016|38350700014|921020; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?iQhyJZD/LnzlJNoQixYXlsYxdKmyjgI6YuC1Bs4a/rxHuV89MzjrgIPTPTa9?= =?us-ascii?Q?de7DSoVdLMj7xrH1GgaceDQRUzJVapzKews2570vK7sYPk6LZL16vnLdrCj5?= =?us-ascii?Q?Rc49M7nh2+mtJD+1xDTsFxQcJFkMTgWhlzx4jH+ZmLdHIbT6GWjWJ5e2IdbT?= =?us-ascii?Q?5vOybkkER7ziOVMwaG+T0dCnFFiOQTW/97TKxYIEp8U4dflAFzxH1m00SQVm?= =?us-ascii?Q?Zp0QrxeNoxgMyWWUjwomQnEe8uPCMqwZKQfAXcpH7vb3RzN0z/ow1gTrX3tQ?= =?us-ascii?Q?tqbt8KyXAZktc+V9T9kbHf++4ErFKzneP7EmQmNugdqL9plgSmq2P6TRHgN9?= =?us-ascii?Q?/0vbyPhV41Cm5ilUGgVRKVf9c9sMfmlWqeLZm/w/T477gKrMQ9E+k5lqsbPU?= =?us-ascii?Q?c9nmRUr61W0dTV4ydDJlbvIXkCS1VQAmrABDZezrj9z5KBkWnPmx3AsuG8o7?= =?us-ascii?Q?evc3bHwFRLkNg7b/dGPLF8a5Onerd0qeErp8M6PX2Z5tV7m+WzUNuuj4ltF5?= =?us-ascii?Q?yNBfreiS5MJGbreLZKcxASl0kBjLxnDaU1QWaIkHaxG0xdwQnTR8+RdhsD1q?= =?us-ascii?Q?oGwzPcX4CGUZfpYXi4zIgUfHofuku+Z3b+r+qse02KgvYtERSRmM6g0vCwKO?= =?us-ascii?Q?PlvdTZd/5VK6MCVIZ7EVbFBfBHf5bF0PUCaNSbmMw8QYcj3qLCqp2K+MN1qP?= =?us-ascii?Q?tsFm67ydczUW3qXIqEFKxfkcOdRfRFpRfK6q6R5r/ewadzJRjisbtwo7bDbi?= =?us-ascii?Q?bEkkFuvi0Jig0aDPyuYA+RApeinwAFvGaL27M549Ds0SyG1GJZKMG3EKKag8?= =?us-ascii?Q?cjSwcWC+wy5vtmHRba8ohwJEyjpRJ0zTBzC+YLMiM8ZVAxPpXa/zG6d13ewW?= =?us-ascii?Q?ZXeIFfnsqaSuv+lxzcg072DXOlMbaCE206CpeqpisKKnmo0Lwg3cT4+vE9W1?= =?us-ascii?Q?yHeCoqzkB362cNmQ3W8NFUlAS0DPjrqBMA1jdR0dM3dcPnT0ZGikOOWtJeWB?= =?us-ascii?Q?CZ7MMYt3jFm7DXOho3ctjjwS7fS5llE0EaPQM7pKsEczL4fU7xnjz/DhN+Yh?= =?us-ascii?Q?YzRww9mywPvRikPGKEs+bbrp0W3MKId/AEc2kexN2I2tmUQ4Giv0MMIjV9Kr?= =?us-ascii?Q?QqVH86t8v4oV4LcCovF65NRFo8VAg2SktN1CUZbQaLFMj2lm1vUIse9RK5Wk?= =?us-ascii?Q?jIk/U1RFxhyA/i2abE+M5L4946f/piyQkZ2euaeVYHCSkOdOWKWlPsH3HySk?= =?us-ascii?Q?mGNiV5I3+P+uIsdRW9Y8db4KetQTpVYtMVMxrzrbLDkH1HGd5dDLSTRBpz/3?= =?us-ascii?Q?7okyAQK7LxVj5ILqbcjz8fS50V4hFeWY6eFnzGc8AkZu4S7/xUhjmjmljKfa?= =?us-ascii?Q?3hGlI9V7tMLHhQtD07ucXG22hZ9Q46VgxdSwZ4AojNMSyhI024dquzM0axBi?= =?us-ascii?Q?rIX2OFejzAFuDrgHcyLobxIKIyHLHcTyNLkb6ZFz7IaQusDeHbZYCfb+bGGz?= =?us-ascii?Q?oD4OhNbscdy8b/8=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PUZPR06MB5676.apcprd06.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(52116014)(7416014)(376014)(366016)(38350700014)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?QBuatK691xoAliKuxKLfDYSv/fL9mprG/d1rHK5wF1FSvFsxT6kei93Ye/14?= =?us-ascii?Q?AKhw/THRUT8EmTr2+5GZvp1wo/TLC2NPm0Lhgcis4bZQ+ajrr4ochsMnUyut?= =?us-ascii?Q?5FoPLdxtSSNajIOG+LwiINYYduKFlwMUYqPX7J8ZnDv+A/Ac4ZRNByN+3mUX?= =?us-ascii?Q?QtccdnlTBNbfZwcDRSjBkvjuAvn+LUPbNITAxaHnTcLX0sIhcgrA1JTVsTsa?= =?us-ascii?Q?2lD8QfXPbwVR9v8APxTbCFvvLnSc9Xv8lJ0U7AbcnlnbMCyKz6nS/3auYPNi?= =?us-ascii?Q?5zmEc1POkdC+8cbN166MjjN8KjGREFPv2rZDNcrSw2ag3g/HJcBhD4JKEQHP?= =?us-ascii?Q?+XujtLty1FjBjIHhFcHT9UAaPBojahyqt3knxcg+BP9jTmBq9pEmQqXa+jgB?= =?us-ascii?Q?sX0ZbTakcCHxptu1BB+cHMJ8IeYPXEquTLb5Pso6JY9DZj6PSfbZtKSua+Pr?= =?us-ascii?Q?Kk7u5YrcF9E9ndv23RUt9aqZPX8gVAW94bPa4gB2HI+0XtdepTfBuk5voaya?= =?us-ascii?Q?MoGtU9Ket208jGnoQxextI47uMJ1lcXMgGmp0oJRFe4KqSoD4uoGjaIkDqGm?= =?us-ascii?Q?2AXMd+Nt+/2Ob3Nnf7+PYR15cWxhuGGPqY6PsrS/c1rrpXLL8+RACfEYpahV?= =?us-ascii?Q?EWoDncP8cLVL2tkWCo6hPE9BGeLNBhIhvVHVAzVW/UdJMEfi3RT5HSM6RoOE?= =?us-ascii?Q?2fmzQLkziYp+qNRc46no77oJFoboItvfKaMJ1W+Co/pkbnfUGtRGbcGxKguC?= =?us-ascii?Q?vRkXeSRLZIXL9WqHf40b+hBGdtREVeXFXe2AMeHlnAi9e0+dFmexkwaBvLiv?= =?us-ascii?Q?erwPqzFYMCbc2LRf94X+8R19UvojYm4kyjhz6c5ctRwgosr8cfoSFEx3BGAb?= =?us-ascii?Q?dySWyLdQ9PQHGze/PEbODT10X6eTKbVbcfvEErTNZfOVS1r5oAsYzT9MNUr4?= =?us-ascii?Q?NVMFeo4DANYfCq1cst7SqO2AEusgXXFi4NZD/KtzNKFXolMvOQ8mh/NfucCD?= =?us-ascii?Q?ZLswXwZbwd0rXVv54YYXD5qVU+l1YXBwRqte7diF+MC75MUCuTcD/7Gtrjc4?= =?us-ascii?Q?MYIl0Z7BR/Oc9mQYWRXjLsPwApNo368nVq1oS0Pzs+exgoo3jn4+Yv3hM7y8?= =?us-ascii?Q?BRXBrCKehDlNBcvQ6RVZTQ/t4dvwhq65I5WWFueZnEtYB98z5uHrfrWTU5so?= =?us-ascii?Q?MfENs3b77uA4anClaFQEpf8dWNtY6mLxr7O6rRrbWpnmyI6to97TuzO79ZLf?= =?us-ascii?Q?TwvGNFQTMLP3E2UQqWMWkq5VQcW5zdNKKjhAJjGQLYqZoKF98THAjsn+sUqB?= =?us-ascii?Q?XZqlkQ9FyYmmUUGVGn1+e6OqaIAUezPx6PPZmO2gIFfYv+K1F07D06hSeLYG?= =?us-ascii?Q?tc90R97gHelu9A3yGPrDeOAyO5PgLCHVfmDLSNBv9fAyHFZH4utQ6xs58lsI?= =?us-ascii?Q?fsjaWNYdTx2wGNG3jkNzitSmqwl5KiM6Hgg3uEvItksIRi1/BBQi5a4886Xw?= =?us-ascii?Q?vdlavj7pjdNT7C9yxfdSYKxir+tFrQtlRdJqVl/dG5Esv8eHAI/N/xlKhXpJ?= =?us-ascii?Q?b9YfnbStTD2sqeaDQwuoONumc1SB1FYWI1sfV5d1?= X-OriginatorOrg: vivo.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4c575e92-59c6-45f1-75c2-08ddca8e7b37 X-MS-Exchange-CrossTenant-AuthSource: PUZPR06MB5676.apcprd06.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Jul 2025 08:45:45.9664 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 923e42dc-48d5-4cbe-b582-1a797a6412ed X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: Qig340DZ5cq6G+bHwFc+daupBAwtCvjC99RTGZYAHCbfTpbO/MUfAV7iwBNlXOmpttltZH5qJFX9YNUGCA5vdw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PS1PPF2A261C07C Content-Type: text/plain; charset="utf-8" The current shift value for page_type is 24. To avoid hardcode, define a macro called PAGE_TYPE_SHIFT and PAGE_TYPE_MASK. No functional change. Signed-off-by: Huan Yang --- include/linux/page-flags.h | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/include/linux/page-flags.h b/include/linux/page-flags.h index 4fe5ee67535b..3c7103c2eee4 100644 --- a/include/linux/page-flags.h +++ b/include/linux/page-flags.h @@ -961,9 +961,12 @@ enum pagetype { PGTY_mapcount_underflow =3D 0xff }; =20 +#define PAGE_TYPE_SHIFT 24 +#define PAGE_TYPE_MASK ((1 << PAGE_TYPE_SHIFT) - 1) + static inline bool page_type_has_type(int page_type) { - return page_type < (PGTY_mapcount_underflow << 24); + return page_type < (PGTY_mapcount_underflow << PAGE_TYPE_SHIFT); } =20 /* This takes a mapcount which is one more than page->_mapcount */ @@ -980,7 +983,8 @@ static inline bool page_has_type(const struct page *pag= e) #define FOLIO_TYPE_OPS(lname, fname) \ static __always_inline bool folio_test_##fname(const struct folio *folio) \ { \ - return data_race(folio->page.page_type >> 24) =3D=3D PGTY_##lname; \ + return data_race(folio->page.page_type >> PAGE_TYPE_SHIFT) \ + =3D=3D PGTY_##lname; \ } \ static __always_inline void __folio_set_##fname(struct folio *folio) \ { \ @@ -988,7 +992,8 @@ static __always_inline void __folio_set_##fname(struct = folio *folio) \ return; \ VM_BUG_ON_FOLIO(data_race(folio->page.page_type) !=3D UINT_MAX, \ folio); \ - folio->page.page_type =3D (unsigned int)PGTY_##lname << 24; \ + folio->page.page_type =3D (unsigned int)PGTY_##lname \ + << PAGE_TYPE_SHIFT; \ } \ static __always_inline void __folio_clear_##fname(struct folio *folio) \ { \ @@ -1002,14 +1007,16 @@ static __always_inline void __folio_clear_##fname(s= truct folio *folio) \ FOLIO_TYPE_OPS(lname, fname) \ static __always_inline int Page##uname(const struct page *page) \ { \ - return data_race(page->page_type >> 24) =3D=3D PGTY_##lname; \ + return data_race(page->page_type >> PAGE_TYPE_SHIFT) \ + =3D=3D PGTY_##lname; \ } \ static __always_inline void __SetPage##uname(struct page *page) \ { \ if (Page##uname(page)) \ return; \ VM_BUG_ON_PAGE(data_race(page->page_type) !=3D UINT_MAX, page); \ - page->page_type =3D (unsigned int)PGTY_##lname << 24; \ + page->page_type =3D (unsigned int)PGTY_##lname \ + << PAGE_TYPE_SHIFT; \ } \ static __always_inline void __ClearPage##uname(struct page *page) \ { \ --=20 2.34.1 From nobody Mon Oct 6 06:32:11 2025 Received: from TYPPR03CU001.outbound.protection.outlook.com (mail-japaneastazon11012067.outbound.protection.outlook.com [52.101.126.67]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B499C281351 for ; Thu, 24 Jul 2025 08:45:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.126.67 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753346756; cv=fail; b=Hm6PvKljHN7ZdkKA+rvq0SO9F0K5YU4oQAEMs2Sr/Sow5UQHpZyM2gzLjiBv4FsLIiVJTTBrAmMZ9gWFFAQctB+ZghPvoX6ceqdMiuIp+OoxZNkoC6P2Ha0ZW8tkKxYNi83z2PA917uI8PI05Jd9goB7UYgT6YNDRVYsLEBOiVU= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753346756; c=relaxed/simple; bh=dUUWnprE5+sH6kgW6CumqkRZVzQPtkuxSyAN364Rj5g=; h=From:To:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=pzUejXTPRIxYEXJ3ybuUBNcehahFhyXsbIPSVgzev9aDdfby2lZnpAVp+hcRroenRvILnhPGm8+lWI+o3sL9lzJM1l+zF2ciFwmUaojrwb6hYOr9Xp+objG5YN+q+Sgu6fwaHbKhWEnG23s56aHe1oG1NgP3Zdaixb/6yWakwZY= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=vivo.com; spf=pass smtp.mailfrom=vivo.com; dkim=pass (2048-bit key) header.d=vivo.com header.i=@vivo.com header.b=FtFflH1M; arc=fail smtp.client-ip=52.101.126.67 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=vivo.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=vivo.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=vivo.com header.i=@vivo.com header.b="FtFflH1M" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=yZdvyoFdYK+//o54f2uyN2IveOZIX9pINmfsBJy+QkzAd6qhg5s+Tfkg6H0MdZ+VHy2AdaDe8tj6rwrlE7NY1kuDJxYLSGg6nzy0sDoy5bqN9YAtg0q4U6S+kyycjQNGb3ytFo2vBf87XJcck/rEw3H/U55Iiegew9EiEU/CK3rP/ZgiNRByQYI6EySNWk0li86bq20MK8qkQGHefiRwyJKuFWSMOU7ok9ffxTccqIR4xm+CuqPqOftE9xHZHI+pMj+/CGrrLFkh/WPyJHXuACOK2wauPpczNCHUWt3XNzLOOK92whsCOo3GneTNej/A/yafX9gArcbhsoKWmytX3A== 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=6ihrKI6OO5XXX9pXkYvcTjPs9USsoHTJoTgUdpaxsnY=; b=oN3xrXYKNlNR/HZ5+RK7L/5v6xebMPZ+8BQ/a2N1+a83lo+uoiHNrVkl37Hm0qJB5SXMVmKuekHM90Ha4Y5uAS82NEqK/YAcLNUBsSYW5c2eaRDmdE06mMuluhD99GvrjnHT2ZDSxmbfNOqK8ZTjwGmcc0nKeiRs4iBYYqSiFwk9vLDsVxxKbBnbQPz6E0LP9Jyi/6JM6lpl3HTw5ZBVfIuyo2+i88Pzolf2lrIaIAnhyECfw7hcbaNpZ4o1e772tslwwm+RHwjM6XxvwIvGlbNC+UxVuvQIssnCLiDC1FvlMXlUldhY2U7lH01Pyc5HqzEagfXL/XepDFD8vyPz8g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=vivo.com; dmarc=pass action=none header.from=vivo.com; dkim=pass header.d=vivo.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vivo.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=6ihrKI6OO5XXX9pXkYvcTjPs9USsoHTJoTgUdpaxsnY=; b=FtFflH1MIG4E98Pkym+RH/D4mUcP/fNi6XhXTTGVWvpgHCkE7FfmNE12yLptK0sjNRNUle/tO9pjDceYD+hLnYzepSaAtBNaI+tdVhm81Xh+oPwWVstUN/qehDGnWQ150X6YqZRV5y+iMMeBVcu2ciqCLnfYtfkgOn/f3gH0kCNCxj6wa1uBwCUMqn3DICYCf+U11lJPYK9DEci6j8R67DBEO+6WgMhpiKGvoHBWgSqdhna7uXrT8rGAzU8Mc0pK2D38/o4tinOt9feHEgstOGVBMxBpH+Atxa0lLTA+2jp7WGxYjbsb6yz8V0u2jEDqos4JhwJorow7zqvqXAw98A== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=vivo.com; Received: from PUZPR06MB5676.apcprd06.prod.outlook.com (2603:1096:301:f8::10) by PS1PPF2A261C07C.apcprd06.prod.outlook.com (2603:1096:308::247) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8964.21; Thu, 24 Jul 2025 08:45:51 +0000 Received: from PUZPR06MB5676.apcprd06.prod.outlook.com ([fe80::a00b:f422:ac44:636f]) by PUZPR06MB5676.apcprd06.prod.outlook.com ([fe80::a00b:f422:ac44:636f%4]) with mapi id 15.20.8943.029; Thu, 24 Jul 2025 08:45:51 +0000 From: Huan Yang To: Andrew Morton , David Hildenbrand , Lorenzo Stoakes , Rik van Riel , "Liam R. Howlett" , Vlastimil Babka , Harry Yoo , Xu Xin , Chengming Zhou , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , Zi Yan , Matthew Brost , Joshua Hahn , Rakie Kim , Byungchul Park , Gregory Price , Ying Huang , Alistair Popple , "Matthew Wilcox (Oracle)" , Huan Yang , Christian Brauner , Usama Arif , Yu Zhao , Baolin Wang , linux-mm@kvack.org, linux-kernel@vger.kernel.org, "Kirill A. Shutemov" Subject: [RFC PATCH 2/9] mm: add page_type value helper Date: Thu, 24 Jul 2025 16:44:30 +0800 Message-Id: <20250724084441.380404-3-link@vivo.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250724084441.380404-1-link@vivo.com> References: <20250724084441.380404-1-link@vivo.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TYWP286CA0006.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:178::16) To PUZPR06MB5676.apcprd06.prod.outlook.com (2603:1096:301:f8::10) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PUZPR06MB5676:EE_|PS1PPF2A261C07C:EE_ X-MS-Office365-Filtering-Correlation-Id: 7048dcb9-4f0e-49b0-44d2-08ddca8e7ea7 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|52116014|7416014|376014|366016|38350700014|921020; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?wLRiQnMBdiUllkSMFo2ISzmGsDq7vaZSIxABhJyKaFcHXpO7qzFougID0VTm?= =?us-ascii?Q?KWt5xr/PDXvjp3QcCa2bzYiCEbGlEc4V4rEVfweSpvoBlYOuJdi2PaAKfjE2?= =?us-ascii?Q?EhcKZ/quMfTY5vXSsEWECClgECQLdQF+q+DNVSVPvdOSBP9hdWAHorCjDz+4?= =?us-ascii?Q?vRXH5fpnvDSQu7iTwBD0N3MlNlJSEWVSGuc0f7KcpYGfMso43Ddb8yjb16Vi?= =?us-ascii?Q?kfVWRNp69FjZju2PBGGrCQdAKIeXjNTgowcx2vunHYMh+cY7aN+c/Jrfk+V+?= =?us-ascii?Q?z2IEn21UnZ/Eu21KvCqsLosLhKmo6BrD1mC+idXnLkozeq35pKlV0qgUaJAT?= =?us-ascii?Q?O4PP3hZCW0Df1/e7hp7fVX7HJMa04VabYZjgazlMV3XJIXEaRdaFcKCGEaCs?= =?us-ascii?Q?EPfoqxCN0ZUQ80MJzHNkd1IuIVlEXPC9NZN4GmbyKA2uSC0AvsfOlncyokYp?= =?us-ascii?Q?oRKYvmzBEDOWGdzH9QROMaffD7tlNPs2DBrOBMAKxRBzMx3ckj9a7NWcK8nY?= =?us-ascii?Q?Zs4ChhLgwjLSoNi9MYJuY8uFntmy5n6XH1L17z+iid6r0m8ArC/hlfRc5nfQ?= =?us-ascii?Q?Tca+/JAWwbvcNIQhK8iInRevxMs7HAwh5CusMY8FIrLRxW3bzzcdKPaTPHea?= =?us-ascii?Q?3UeSLzgyyIRz5ctB6I6Vi4OtF1k460N3rX6OYNhVQldhG4Y6dovh8vsL0xLd?= =?us-ascii?Q?cSKn+VwjpVI2DtkgerpOEAKAUMl3RPAL/CaWBUeVwY7iebjfnyy29sPjNjN5?= =?us-ascii?Q?KN2lqLyTITq9xX2vLRcadH+saOfKDjMwmAAu4noO/GGOImYlD5w+L2fXjxye?= =?us-ascii?Q?njM4H6SznEAl6XG0XuZfIZAeoRNqn7XkkGHXmeD8KJEICQh5VksxLN1G1aZ7?= =?us-ascii?Q?1ATGNwHCPlSx2atnnVjWe9v1xzrzWgR/gGeClDmwQINZif7E1KceomF4gfK5?= =?us-ascii?Q?xsbkUda8Lv9vwq/4IHkcvh14uX0+68fon6EreyyxZ27yLYev67jM710AZ/KJ?= =?us-ascii?Q?Tt93dc/hUTXdiwbiNsJtvlZqayrs0GgoWeYQcicpEkFYcsDeB52nDUdTa9ZC?= =?us-ascii?Q?wQuna/Bcrcz1H7oJGkG0xaKW9b3lyWuI2ChKskpTmkRrZUFeLlU2ObPwlZ7M?= =?us-ascii?Q?2/WyBHQ3e8YOCUAYdV4Y95R93qiImWdTlw65Ph/cD8E7rw+ve5xuyHtB0p+d?= =?us-ascii?Q?qTflg7BP1ZND2OWXaxm2OnZ7MlSO09zPwqAqj8dLVgY47o60MvI+m/qnSEzN?= =?us-ascii?Q?xtRnsfT+/NVRv1tIdi3LZuOyxKlnp52OsYZp7bKmgUXcgdvH8ib02JFqpgXn?= =?us-ascii?Q?hBmiEdJ4k/vQ+IVX8wAVBGUJ4c6sT/TFShNjUEiR3JOA6BIpmwIUulxx3cRs?= =?us-ascii?Q?b1nT0NZZySMauUAb9eyz0cxMSAXr5/hmOWz8PSkjZLk3SoSSMx+Y3nxuQShj?= =?us-ascii?Q?Lp05mcHobtjBFWqXJAfkO5PxIggCYbgQ316UsOMYcVQq/LDFE+b95Ax2J+3i?= =?us-ascii?Q?u51jCrzGX7EvRCA=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PUZPR06MB5676.apcprd06.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(52116014)(7416014)(376014)(366016)(38350700014)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?Qt/L+mJkAmDZbxADRrTzEu5CE1tLR2LjrgChgN0jtgdbi1J9CsXCT+B7PBZC?= =?us-ascii?Q?Ncm8Y27qJMVElwu1imxDPe+LOp388Zyed55dHxwcGxMK5LrtCDmE7h/TSbX4?= =?us-ascii?Q?lfgFQVI/M/nIMZ6rxrMM+lp0iucAJ1+0pOxjhxKUJEHo2G8jC/NZGeZzZo3Q?= =?us-ascii?Q?FZ5hligrqC5qq/PheaR73KV6YvAoirLn2sM/2QKV5IbP6UaXKSiRdHZm6j4h?= =?us-ascii?Q?HI4/2PKqiBamiOLeAAQB8w28z3oXqLAo0tzfFeIg6QU2F5fFWqY5LVLAOSbf?= =?us-ascii?Q?dlKm4BJtPBceLrlUpsJhR3xRqY8Q8zk5oDye1Q54w0nt+pMLZUGPXmG8Q/e6?= =?us-ascii?Q?NShaoumdQttwdvN8u1WQZjijzyWNpFHlVk9NiQEjqyCfMNRimYnL5QrVV5at?= =?us-ascii?Q?K8fyIbCgaFxIJXdW6c8B9ya1piif/X4WJIfKAITP2xo4k+lLx+SQ2pdbj1/i?= =?us-ascii?Q?mfWeHoVRK/e3Te8wvC+ACzDMhVf88/MbKapRVnW2uNQ6xf7Hqtq9nYXsE/rl?= =?us-ascii?Q?BtSn/OVhDC21q2/tJJb1KlCN9touvJgHvFQsF+PoL2GUfIy2JYRr7mIf7/WO?= =?us-ascii?Q?ipeNcG2vrcpYze3Y3AbOhc4dCesjbAv83AL9OIex5YI333gG+9wWlKyj3iu1?= =?us-ascii?Q?oQpGVYgqd7n8ljEfa1WIv8gW92V890pyn/WkLAy5SuGUt3qOAbLAZ5k7Ohrz?= =?us-ascii?Q?oBEJdXmS6NVIY1w2k6VV8WGWPQSzngIcWzaLvHtOix5cftnce9oJ5vBGr4H0?= =?us-ascii?Q?Mel70UoPVtN91VcqaJ3Yg4u0u5qDGx25nhj4TuzvGNvmSDgMpGeTjUcl5ZLB?= =?us-ascii?Q?jn210iG6POnajyk9zaw1gYWCW1AsF8qktPID/gc4yazR+ZsdmZOoXNwm9F9p?= =?us-ascii?Q?ZWxltq/0a41BD85R6LkFxuVwVZnPNGHcozH7HmpYEXb20vec4oS/NKDO+eL3?= =?us-ascii?Q?kzWnJzyD4BOl8zNEadvcaGQytzRxe1yP9K3wToauKf3Mg9yfQAK4e5H69mAQ?= =?us-ascii?Q?cdEvLMJmyQtM7/rJhg2dAhm0eg34MmagiB0jjtleo4NZ4GF/b4EHhvnZ0zyN?= =?us-ascii?Q?Wp2iCk8Xw9QXigB8UlIJgP5lZHuFxtaiVJB+9cYjzhP7RxlO6J5Mahf1R2gb?= =?us-ascii?Q?d6wXwmMNzij4EchYSqICiSdhFXLeaM8F4x1n1qOUurM8gm74/aLdXua2yoKE?= =?us-ascii?Q?ZZiJ1v9Xl7ihYIllNTRGbBMeOVov0RKn9pDi97cd3jlsJ1mMmwGBREQ3khIh?= =?us-ascii?Q?w8ObZF7E6kzW/LlFEJZQQ+3nWTQq1kq6UZADW9V2zgIS2vgiw65evT6nLyXl?= =?us-ascii?Q?JCg9xLeXTkzMXx8sMyVUUq8PPQvx5KbsKBnmWjSj4zmHTkt2VNLDxEG1nYKj?= =?us-ascii?Q?mUq9T92KuvGQXyAECSqx382qcJmBb/kgWA0hkqXpItxGZFdqBtn/Db1/KvgJ?= =?us-ascii?Q?A9szFjTqiYKJVOeAv0qDl9f7it8SBuk/E9+3YQZRo2P3fXu8ezIe2figk0tz?= =?us-ascii?Q?Oc5QZ3rLVt17C88qDAn62roW7TavgpdFZ3UJDNf9CazwoFNG9iiAkXOBMv3n?= =?us-ascii?Q?qDwUj1kQ1pvoJ85smih3oLlKfQz5NyCDEhfo+tWh?= X-OriginatorOrg: vivo.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7048dcb9-4f0e-49b0-44d2-08ddca8e7ea7 X-MS-Exchange-CrossTenant-AuthSource: PUZPR06MB5676.apcprd06.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Jul 2025 08:45:51.7070 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 923e42dc-48d5-4cbe-b582-1a797a6412ed X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: o5dkF/VkrTG807dGDhrVsMwcf1sAqOW6bY/lspcUIT+0tHtHNImrm7hkXF2XwHCPMexG8hkwrVw9J88d36DPMQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PS1PPF2A261C07C Content-Type: text/plain; charset="utf-8" Add two helper functions __SetPageXXXValue and __GetPageXXXValue to assist in assigning values to the specified page_type. Since the current page_type value is not supported on large folio, only the page version of the helper functions is provided. Signed-off-by: Huan Yang --- include/linux/page-flags.h | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/include/linux/page-flags.h b/include/linux/page-flags.h index 3c7103c2eee4..52c9435079d5 100644 --- a/include/linux/page-flags.h +++ b/include/linux/page-flags.h @@ -1024,6 +1024,23 @@ static __always_inline void __ClearPage##uname(struc= t page *page) \ return; \ VM_BUG_ON_PAGE(!Page##uname(page), page); \ page->page_type =3D UINT_MAX; \ +} \ +static __always_inline void __PageSet##uname##Value(struct page *page, \ + unsigned int value) \ +{ \ + if (!Page##uname(page)) \ + return; \ + if (unlikely(value > (PAGE_TYPE_MASK))) \ + return; \ + WRITE_ONCE(page->page_type, (unsigned int)PGTY_##lname \ + << PAGE_TYPE_SHIFT | value); \ +} \ +static __always_inline unsigned int __PageGet##uname##Value( \ + struct page *page) \ +{ \ + if (!Page##uname(page)) \ + return 0; \ + return READ_ONCE(page->page_type) & PAGE_TYPE_MASK; \ } =20 /* --=20 2.34.1 From nobody Mon Oct 6 06:32:11 2025 Received: from SEYPR02CU001.outbound.protection.outlook.com (mail-koreacentralazon11013021.outbound.protection.outlook.com [40.107.44.21]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4C6EC28312F for ; Thu, 24 Jul 2025 08:45:59 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.44.21 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753346762; cv=fail; b=pSzHlKXqpZyZviPlFDnBV/WUU4hAhK1AD9HyvYhY2alBSCgH850ZPdkQ8181yU+QlZlFk/Z8YCWiltk3j+GB6g6GxnxlG/rADSZQuancsgF4KphPt2ZYb67zUxQj0sxULd4h43iE72c6toInyP9Z+AgjB94GNPdSqJBz+DHZxRw= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753346762; c=relaxed/simple; bh=wKNhWC2/g4ntPW2LMhG7TF13WX1OcPZogWiFfMfw+T4=; h=From:To:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=UlrYcYCUjeVM7wW2Doe8a17eK5WajH/egzuokBB6boHCGc1kUbAJnNHNav22/gW8NOyPrCJQVOtMtP3WS/olEptQRiS2ikdEhl3ZH8N15xuR0EFLsaEovYaHezasXm2KfMuFN+meEKnWMcmIm8bfrOFWgwkqiMUsrSMcsew/cJ8= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=vivo.com; spf=pass smtp.mailfrom=vivo.com; dkim=pass (2048-bit key) header.d=vivo.com header.i=@vivo.com header.b=CbGvmHvj; arc=fail smtp.client-ip=40.107.44.21 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=vivo.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=vivo.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=vivo.com header.i=@vivo.com header.b="CbGvmHvj" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=uehbQ6Okh9r9S5RLHu19xqtNQEYYLzQE66kMTKl/HH45zgVf4tW0/mCBt51OZEZRx1oPaBzhxN3WSpoSchWlYlJ61JE9cUgCyf79WKYS9BJ6L+ODZ4k60nNUIg/zZDJ6asTxXshd4wuyBdnPOlGqzC3jNQh0LEZvaBz8fctgFjt3QDO9QvtgTsYLvZGhtwWq9YrIOxLHuMxbvxIuXt6K9NGit3opXL+GT22ObTqC1nKynZhBenVBhEfEPFy3w1LGFB+fLRu0uBoVS274jwadZW4fN8aibldkyONnqgYnT2Yl/mhaXnJ51WLHzzs7XsY2Mhvnu57g5SW6vPIkoAcEfw== 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=8kn2GaycyyXzgFMT6FCRYwpVY16Rm8fBrN+3KIgdEQs=; b=WdM5BhlNOWFubjjifxr1NgscjVYy16dMOEtW2Cz+hKcKl/XhdtwrFTFEsA8gdPaF4+CgSdVbAceqZMbCc2d37t2rJMo8FkcAskdJvRzRUT347/zpCKGwr+zA2xCHFL/qZWJmh09XI8NmegTohN8JEucnPKX60tu05myDiBEwIs62tMRFUQkH+pPkGv1LiSONIUKmyOOLhOuLbcguENfGB6JRJLgquk82QH5CfgVjzFQdpnGAm2CBBFMNHF4zLWRCJuNCR4VHH2GISG688/XqFtsFIY5ZVze3I5KLLmW4dZFSMxmK2k1RW9CHwtz8JV+zjh41GKKPCa/nmJ0a8K8lTA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=vivo.com; dmarc=pass action=none header.from=vivo.com; dkim=pass header.d=vivo.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vivo.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=8kn2GaycyyXzgFMT6FCRYwpVY16Rm8fBrN+3KIgdEQs=; b=CbGvmHvj2EpzP8wS3uKBMlnNm428w95IvgRGZxlM+oJg6qMSgHoOHpBHguS+Orc24eebf/wJSU9XQz/qak7odfAgH19J+kZZ4OqiNyAGh4mIMm2xw76l+iY+YxgEc+SmPi2z4hSR9ug0Hzvs/LEf1zMN/nNh7gV61/71AUG3wvpOgrqFQPAG5n2FE3S7SBzIGac5PRF0UYDnXX0gHw+MzM55YtrS1OroUtYjMK3sjgUBNLB77l3bF9Qfbla836otwm4ZUzwrlT/IytH8NZA+Z2qhhvVpwuMwslm8yncbNzDzGPK1raLoPPW9WcwNMj/hyLbhQOSuTHE/o6nPYWQMuQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=vivo.com; Received: from PUZPR06MB5676.apcprd06.prod.outlook.com (2603:1096:301:f8::10) by PS1PPF2A261C07C.apcprd06.prod.outlook.com (2603:1096:308::247) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8964.21; Thu, 24 Jul 2025 08:45:57 +0000 Received: from PUZPR06MB5676.apcprd06.prod.outlook.com ([fe80::a00b:f422:ac44:636f]) by PUZPR06MB5676.apcprd06.prod.outlook.com ([fe80::a00b:f422:ac44:636f%4]) with mapi id 15.20.8943.029; Thu, 24 Jul 2025 08:45:57 +0000 From: Huan Yang To: Andrew Morton , David Hildenbrand , Lorenzo Stoakes , Rik van Riel , "Liam R. Howlett" , Vlastimil Babka , Harry Yoo , Xu Xin , Chengming Zhou , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , Zi Yan , Matthew Brost , Joshua Hahn , Rakie Kim , Byungchul Park , Gregory Price , Ying Huang , Alistair Popple , "Matthew Wilcox (Oracle)" , Huan Yang , Christian Brauner , Usama Arif , Yu Zhao , Baolin Wang , linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: [RFC PATCH 3/9] mm/rmap: simplify rmap_walk invoke Date: Thu, 24 Jul 2025 16:44:31 +0800 Message-Id: <20250724084441.380404-4-link@vivo.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250724084441.380404-1-link@vivo.com> References: <20250724084441.380404-1-link@vivo.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TYWP286CA0006.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:178::16) To PUZPR06MB5676.apcprd06.prod.outlook.com (2603:1096:301:f8::10) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PUZPR06MB5676:EE_|PS1PPF2A261C07C:EE_ X-MS-Office365-Filtering-Correlation-Id: 2a195ebe-ee42-405b-1d37-08ddca8e8229 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|52116014|7416014|376014|366016|38350700014|921020; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?60ilzuUtbYYs3P+UqQU2OIEO2KHcklwBYhnejQ6Hb88nf5hDQ80VGM6NoMxo?= =?us-ascii?Q?piNOcqyCxOgfeTAaerBDReNyjXiFafBOgJM9yNfAjwwxCJ+CAwXpLXwP+tYD?= =?us-ascii?Q?mDANOFMJHslbAQ/IMn9vci5HS1zcaonnt8fM1cgZMDAeZEuMeqxmwRIz+kQF?= =?us-ascii?Q?8QX6VfM847TJftHk8VHf0W00jqEqhpvuzO1CBqhX6vYjpiN0AXVVSvyHMEPl?= =?us-ascii?Q?6OQLh9tkOmBy8hMkt2iNjXXkNqn7DF0eroi4SGBImQC3/6BqGJhMSrFYPn85?= =?us-ascii?Q?Kqv5Ae73GwsF+Il62RscABtJhyIUIOhdIUj4syQgHuJHotqdAbfF2uIZngco?= =?us-ascii?Q?cdNhIALceLbzNrK/P1EhalAnfQPGsngNoVo3pZ4gC22IXKREA9lYal1c2Th/?= =?us-ascii?Q?bU1V4RGld708NiwxM6CQARDqo3C8GYd0pWZyQYsqFGalJrO7rfKhnr5sCr3O?= =?us-ascii?Q?4p8SoF4PLIW1jngNMPBtf/LHEgLQybQmGE8rprsFfWBeIidJvbuzb7Xqbb9f?= =?us-ascii?Q?Qx2dfV+LpyaKMVoMt50IPOKFjhyDvljzYeIzU+j/BL8X71c1SrjM9uZwQu/3?= =?us-ascii?Q?jhKEvF+/4RUd9bo+aZtldVFRetl2UrfwLB8BdbxQ/zrFL2fWE7MHQUMeEBJe?= =?us-ascii?Q?oyNz0redsQLo6Y/lJ481ZxllDNppI3iIYUoe5x1+8c8MJas6FXrStEgh6j4p?= =?us-ascii?Q?yGQ3mLqdqUakWelj9OFiwPyQpgGY+2MQf1JkHfYlrFWLsfl18p31i6CW9JT3?= =?us-ascii?Q?STVsAKOq0dwvwIJXGkDixMbF578B56G5FzKgdgwfMGV/S1Q/OB7OFK4LdwWi?= =?us-ascii?Q?xS9uCLNbdY2Ont2wHtbfMUwbX0HJWgY6ZcUMI7Jxv4uySvzFL8G6KslC9h7k?= =?us-ascii?Q?CfHuNz9jQHWPYofqDR1/ijcexj0Fs4tXv4y3XxvX6aufKT2/fOPsayGsatTn?= =?us-ascii?Q?aYvsvnlSJSWgeXgJsbOC1y0Pr2HQuIoj2oTJcdlMifvYJZ7prLMuCzT/yRJ/?= =?us-ascii?Q?8KUeq+WhLC1CXCuk6IM2Xfj9LUXzdSevVO/lqpOZwYeNDXuzcFHR5Mrz+9Mn?= =?us-ascii?Q?qt4hdSX4Sl1LMHf9AHfZCOoZIwTcDdaJ1rT88lO3QjLrs9FD71kVA7me//qN?= =?us-ascii?Q?nYDJIveKnKhGG9O7E1vimDQn0KigzeKwN1jDw8dW61TwpPofn/VRxRlFm6tB?= =?us-ascii?Q?fsvQSixywnfsULa2MPsE2es0GCHmIBiAmCFY4wv0PXa52Bokqv2/VccNxF9N?= =?us-ascii?Q?Deyih0y84ZKa6PuDbLYJW5LYWr0SYvcYdH9d3OEypfEEYO+skeCPMklJGFka?= =?us-ascii?Q?De3/YofU6EiVb3W+DG9kjYcA9BN8K3iZlNjJXmEq1IUYnwkX7KXhfztOHtOx?= =?us-ascii?Q?zjscYWwKKA8bkoDvVnYpSZznWqMmAmu3z+Y8R3ordklL99Frf/MfIrjGaDq/?= =?us-ascii?Q?DNsbPXXLGPqB7bN+xan8i6PAf1lybpZxFOErYrqppKMoBu05j7Vmx/fzNobc?= =?us-ascii?Q?6RsPS5cdz27MBCg=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PUZPR06MB5676.apcprd06.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(52116014)(7416014)(376014)(366016)(38350700014)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?Hp3WvDE9XHiMQDkqnIr9AHTpaR3SPE7hv+FQth/GCssXFfMePDlA4qCkKajx?= =?us-ascii?Q?QmlfpSnRs2htwNAGSWMLra9XGOA6QXI3fUhIu/JZUydb4snYpXY7beapBT1/?= =?us-ascii?Q?Mlj+lvVpzVC1yGPXUSSSH+PcXqm5TqaD4AReBBA6k4PNX64vp9HScbmZXE/H?= =?us-ascii?Q?i/mwhvfoelPQAgWSKmFc/DT/92YNKGZwj5RZvdQueGhCMr1oPSuyj9/rhGET?= =?us-ascii?Q?pYXONHxh3ssWxXQwMCRsOVb5MmgK11ppCnRzBNaXsB7I1jK/a4xuXYUSKSJM?= =?us-ascii?Q?u929o22mf3UBxMz1OvAI4C6pwW83tJF5t5kShxdwU42dKjFgqc7ZiO+s63uL?= =?us-ascii?Q?qekT6FVKvU/8FIU9YiHxTG2VR5Vp/5lleQKZFZfQWRbTVaN7kNZhIHyMNgvi?= =?us-ascii?Q?/ybRPWMf81rX2FTsw0caSAoxOIceDZNY7THKTqs6tl6IlK4AOR+SVmnb1iD0?= =?us-ascii?Q?q2fd1us3Nz4TsA+QlxxrBjLMSBHlBgi7LNkcwUh776PkaugWyhCu3ElgjsG2?= =?us-ascii?Q?L5QypoW0iz1fMdqApPIgypQzYh9j+VOBww/Q10R+7RAGgBo1jB8k5y1LCIwF?= =?us-ascii?Q?QNH6USbXG5Mg54Yq036zhzXgwmsy3Z8AJ0UHhdZUy+jqE0XySlyXrEClnc6y?= =?us-ascii?Q?EmhUJ5myxa89HpMRDtktE27Z6TA/MQrwoO+Gh14u+Vwhp36dGP9I76kZ6183?= =?us-ascii?Q?B2uCH3Pxe5UVlKaRlwGlOjKKj77PQDHtPKc6RiS7CMT6NH/4cqrN2CXc+tbe?= =?us-ascii?Q?KzahAGocFdSJ5ctOjgL+cavofB7ddHMl0t9RkDrLf+5vqKBQDeAPru4uwWEe?= =?us-ascii?Q?mV1mNef+q0HGfKv7FmhDm3L1gtw3zv6d3z5LrcGK4662mREFYm8konpc7vN/?= =?us-ascii?Q?4PcvPFyZazItxkSjO1wNsPJgOUQwroVBSHUTgq4SH+yc4p9hO4Dqliylo7fn?= =?us-ascii?Q?RLCyuXF/LXNHSPU1M7sl45YK5Zc9+dI6WwR+EqyQO16IZj82t4EZZCW40kTf?= =?us-ascii?Q?kcQA8O/ZBWbZR3hqtAnR1Xza1/cXDHT/+cjpGjrxjfRkEfj5etDmXJV8bQ23?= =?us-ascii?Q?QyBdTqnh9DUDt5vo5Xca+XclePnaEiV9nAea8fqT194lxhudC9grT5I5Mte6?= =?us-ascii?Q?r4VbA1XgpzZWdqB3Lh0pRWWTp2RZkFbj0gFRMb/V8K4xcj7v6AJd1WLlVQr6?= =?us-ascii?Q?wqa+9EJ+kdhic9kuB93rGT6Dlz/JTd3ayn6KHTf1qTv9vmRr9eHfhXJEC6nk?= =?us-ascii?Q?xEDQ9W53VEjJFHWtiKYw5M/ood71XsawER+Z9uaQf+7WP9qCgdSsBQ32w56J?= =?us-ascii?Q?XfLj90MtV/3gF7oSmSLbKacxQlRdht3LzgFLJtU7Ykrb+tk9Q2s0WaZoLpRN?= =?us-ascii?Q?J+O3i8Ly7NpXwBWmpYceEyqhJb+a+yks4jAmVYIOkFmKvoLSH9+ZBTS791oQ?= =?us-ascii?Q?kQYen8NwUas2Tyo9idWV7tvto9DEnki6x4Pb5lG2mom4Qeli+SsIbaQXCrGx?= =?us-ascii?Q?QRrCYUJttg3VyzeRQTdqbHvJjbNQStz73fGMz5Vq7GCjn0wLaXL59bKVymqV?= =?us-ascii?Q?NBb1YMrFj/X9bvzxdRLWXmzRBPIvfq+Goip9VVNV?= X-OriginatorOrg: vivo.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2a195ebe-ee42-405b-1d37-08ddca8e8229 X-MS-Exchange-CrossTenant-AuthSource: PUZPR06MB5676.apcprd06.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Jul 2025 08:45:57.6571 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 923e42dc-48d5-4cbe-b582-1a797a6412ed X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: dnT+Wcet/HqaKsV3KQGgC+hRORCLSpBh0FjkSxuZn1Ctfg1wnfdt1I0IAKquhA+BFDTW8BD6p55eyvqJQKuSQw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PS1PPF2A261C07C Content-Type: text/plain; charset="utf-8" Currently, the rmap walk is split into two functions: rmap_walk_locked and rmap_walk, but their implementation functionality is very similar. This patch simplifies the rmap walk function and moves the locked parameter to rmap walk control. No functional change. Signed-off-by: Huan Yang --- include/linux/rmap.h | 3 ++- mm/migrate.c | 6 ++---- mm/rmap.c | 43 ++++++++++++++++--------------------------- 3 files changed, 20 insertions(+), 32 deletions(-) diff --git a/include/linux/rmap.h b/include/linux/rmap.h index 45904ff413ab..f0d17c971a20 100644 --- a/include/linux/rmap.h +++ b/include/linux/rmap.h @@ -996,6 +996,7 @@ void remove_migration_ptes(struct folio *src, struct fo= lio *dst, int flags); * arg: passed to rmap_one() and invalid_vma() * try_lock: bail out if the rmap lock is contended * contended: indicate the rmap traversal bailed out due to lock contention + * locked: already locked before invoke rmap_walk * rmap_one: executed on each vma where page is mapped * done: for checking traversing termination condition * anon_lock: for getting anon_lock by optimized way rather than default @@ -1005,6 +1006,7 @@ struct rmap_walk_control { void *arg; bool try_lock; bool contended; + bool locked; /* * Return false if page table scanning in rmap_walk should be stopped. * Otherwise, return true. @@ -1018,7 +1020,6 @@ struct rmap_walk_control { }; =20 void rmap_walk(struct folio *folio, struct rmap_walk_control *rwc); -void rmap_walk_locked(struct folio *folio, struct rmap_walk_control *rwc); struct anon_vma *folio_lock_anon_vma_read(const struct folio *folio, struct rmap_walk_control *rwc); =20 diff --git a/mm/migrate.c b/mm/migrate.c index 8cf0f9c9599d..a5a49af7857a 100644 --- a/mm/migrate.c +++ b/mm/migrate.c @@ -355,15 +355,13 @@ void remove_migration_ptes(struct folio *src, struct = folio *dst, int flags) =20 struct rmap_walk_control rwc =3D { .rmap_one =3D remove_migration_pte, + .locked =3D flags & RMP_LOCKED, .arg =3D &rmap_walk_arg, }; =20 VM_BUG_ON_FOLIO((flags & RMP_USE_SHARED_ZEROPAGE) && (src !=3D dst), src); =20 - if (flags & RMP_LOCKED) - rmap_walk_locked(dst, &rwc); - else - rmap_walk(dst, &rwc); + rmap_walk(dst, &rwc); } =20 /* diff --git a/mm/rmap.c b/mm/rmap.c index a312cae16bb5..bae9f79c7dc9 100644 --- a/mm/rmap.c +++ b/mm/rmap.c @@ -2253,14 +2253,12 @@ void try_to_unmap(struct folio *folio, enum ttu_fla= gs flags) struct rmap_walk_control rwc =3D { .rmap_one =3D try_to_unmap_one, .arg =3D (void *)flags, + .locked =3D flags & TTU_RMAP_LOCKED, .done =3D folio_not_mapped, .anon_lock =3D folio_lock_anon_vma_read, }; =20 - if (flags & TTU_RMAP_LOCKED) - rmap_walk_locked(folio, &rwc); - else - rmap_walk(folio, &rwc); + rmap_walk(folio, &rwc); } =20 /* @@ -2581,6 +2579,7 @@ void try_to_migrate(struct folio *folio, enum ttu_fla= gs flags) .rmap_one =3D try_to_migrate_one, .arg =3D (void *)flags, .done =3D folio_not_mapped, + .locked =3D flags & TTU_RMAP_LOCKED, .anon_lock =3D folio_lock_anon_vma_read, }; =20 @@ -2607,10 +2606,7 @@ void try_to_migrate(struct folio *folio, enum ttu_fl= ags flags) if (!folio_test_ksm(folio) && folio_test_anon(folio)) rwc.invalid_vma =3D invalid_migration_vma; =20 - if (flags & TTU_RMAP_LOCKED) - rmap_walk_locked(folio, &rwc); - else - rmap_walk(folio, &rwc); + rmap_walk(folio, &rwc); } =20 #ifdef CONFIG_DEVICE_PRIVATE @@ -2795,17 +2791,16 @@ static struct anon_vma *rmap_walk_anon_lock(const s= truct folio *folio, * rmap method * @folio: the folio to be handled * @rwc: control variable according to each walk type - * @locked: caller holds relevant rmap lock * * Find all the mappings of a folio using the mapping pointer and the vma * chains contained in the anon_vma struct it points to. */ -static void rmap_walk_anon(struct folio *folio, - struct rmap_walk_control *rwc, bool locked) +static void rmap_walk_anon(struct folio *folio, struct rmap_walk_control *= rwc) { struct anon_vma *anon_vma; pgoff_t pgoff_start, pgoff_end; struct anon_vma_chain *avc; + bool locked =3D rwc->locked; =20 if (locked) { anon_vma =3D folio_anon_vma(folio); @@ -2908,14 +2903,14 @@ static void __rmap_walk_file(struct folio *folio, s= truct address_space *mapping, * rmap_walk_file - do something to file page using the object-based rmap = method * @folio: the folio to be handled * @rwc: control variable according to each walk type - * @locked: caller holds relevant rmap lock * * Find all the mappings of a folio using the mapping pointer and the vma = chains * contained in the address_space struct it points to. */ -static void rmap_walk_file(struct folio *folio, - struct rmap_walk_control *rwc, bool locked) +static void rmap_walk_file(struct folio *folio, struct rmap_walk_control *= rwc) { + bool locked =3D rwc->locked; + /* * The folio lock not only makes sure that folio->mapping cannot * suddenly be NULLified by truncation, it makes sure that the structure @@ -2933,23 +2928,17 @@ static void rmap_walk_file(struct folio *folio, =20 void rmap_walk(struct folio *folio, struct rmap_walk_control *rwc) { + /* no ksm support for now if locked */ + VM_BUG_ON_FOLIO(rwc->locked && folio_test_ksm(folio), folio); + /* if already locked, why try lock again? */ + VM_BUG_ON(rwc->locked && rwc->try_lock); + if (unlikely(folio_test_ksm(folio))) rmap_walk_ksm(folio, rwc); else if (folio_test_anon(folio)) - rmap_walk_anon(folio, rwc, false); - else - rmap_walk_file(folio, rwc, false); -} - -/* Like rmap_walk, but caller holds relevant rmap lock */ -void rmap_walk_locked(struct folio *folio, struct rmap_walk_control *rwc) -{ - /* no ksm support for now */ - VM_BUG_ON_FOLIO(folio_test_ksm(folio), folio); - if (folio_test_anon(folio)) - rmap_walk_anon(folio, rwc, true); + rmap_walk_anon(folio, rwc); else - rmap_walk_file(folio, rwc, true); + rmap_walk_file(folio, rwc); } =20 #ifdef CONFIG_HUGETLB_PAGE --=20 2.34.1 From nobody Mon Oct 6 06:32:11 2025 Received: from TYPPR03CU001.outbound.protection.outlook.com (mail-japaneastazon11012056.outbound.protection.outlook.com [52.101.126.56]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 51D2028152A for ; Thu, 24 Jul 2025 08:46:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.126.56 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753346768; cv=fail; b=Q2hz9rbyAQT9+yo33iTyZtmFbyqZQMiAwA891inozfxFKBDy8oZ86elGKh/O5A/iizoGRNToarZT+fAzqewIgg/FfM9i2Tj0u6nRIphqhNfO9ON1Us2US8KNP3L8Vq16k3J/14hLE3HYzUZXBo9LwATI+BInj1NwQHUGXbrR4fY= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753346768; c=relaxed/simple; bh=zbs4M0deY81qjCh63ZjWZFu9HGageoIZ+PArrh2vjQc=; h=From:To:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=tYsXeDFGVwt2NOtSS9qhLmxTg2mc81F5ixvPACAIRt86LrXHvbaBUD9XfsDFb8mSyN9uyrnlg8roCKJjzcFXfYp1AOg6GuachP0JnVcE4Y4IahIr25WwUw8/dVdVtD8V3cTrBsEcdA6BDLSXU2/jzlt58tvpi4PrP2jDPIukLfY= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=vivo.com; spf=pass smtp.mailfrom=vivo.com; dkim=pass (2048-bit key) header.d=vivo.com header.i=@vivo.com header.b=Ok2DuZGl; arc=fail smtp.client-ip=52.101.126.56 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=vivo.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=vivo.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=vivo.com header.i=@vivo.com header.b="Ok2DuZGl" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=TxMnukXvjlDkflzWm2lzH4lMZjx7kfy4aV5j9SbN2uKAFK56gYtZ5Wlx+5L/tXAok1LbnWzN/J6ZHfWc4PO3z6E00QQAwphauKZbboZe99pY8FbFgym5Nfh9v08zcat53ijVKhSUB9KyRowFToEz0vTeVzAHsXG1kgutrK+60FJpejcQJQ42Lny/LTlOA9w6d04PlFqjYaj6+qJxidecgcg2u5Q11iqL+fxI1wjtODa+tf2/jq5jJTqanjMpeihvNcWPZuxQhMyN96zoyoJetJnBch+tR8phWnUXIy0cRutfMzy7gZZBChWavinG8mOB6+UHY0GU0TlIQZZC+ES29Q== 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=w8vNQTxEiBGsHHcBYGEaSLVl0jn54V4X6W24zQBAnVM=; b=iyCJYsGD5YlNHBnIUb1WGFAAazxezQedXcryYGlHNiTSqlj+a/CLCKNDjlqwU8iIany2jJA1iPBtQpje0T2QsG0UyqWbNWHexp2v6pVB1fl6vrTTAavRiD2dFjBm+6sGsWp1dz0iQRWNoy2U40TPArfVqQhIlMoPEj4KzF5h15g5zAleLe9FHW2XCLzPdm5udH9rCq9BNZXMBPqRQVODJqMvSrKU7tZRpHANgt6E1BRmtqgV7cTH/qyb1ieT8s18HB7BtmovfqDGvDZFiunP5p9AKCwza22d27qx9NnjIuwcr+C3TsWYpHr3GZPcNN16F/KJnZOEQrVDYbThTdVBtA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=vivo.com; dmarc=pass action=none header.from=vivo.com; dkim=pass header.d=vivo.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vivo.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=w8vNQTxEiBGsHHcBYGEaSLVl0jn54V4X6W24zQBAnVM=; b=Ok2DuZGlCPsbloDfKDT92UGrd3Km6BD1pNapSX/zafSmHI6RjHHoR7sEr5tDYPeZ9+m9xr2LNO2GnL6oM0xgFspww2nrvVeTsxEmgd85AG36o6H6UKZSoyxKVNoYWUBKJUxkrcTyEaJf7BVdOfLQwbncbZJsAI0Pphp90KSxPWtP1r7mdI4tRpaq4cXg1Nz3rI74mIwI2NvOFV1AGxCNtc1I+Gd7yzs2nh4FlhVnDW5ST1lvvlHMP62/ArYhVW2O5NIStb4igCkoE1eqYqA9nPBQ4c3QcQMGI8bAt4HIGH/F58OGCfP02eULJzSZ6NXByqHdX6uJxeyJuiuAfhJgxQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=vivo.com; Received: from PUZPR06MB5676.apcprd06.prod.outlook.com (2603:1096:301:f8::10) by PS1PPF2A261C07C.apcprd06.prod.outlook.com (2603:1096:308::247) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8964.21; Thu, 24 Jul 2025 08:46:03 +0000 Received: from PUZPR06MB5676.apcprd06.prod.outlook.com ([fe80::a00b:f422:ac44:636f]) by PUZPR06MB5676.apcprd06.prod.outlook.com ([fe80::a00b:f422:ac44:636f%4]) with mapi id 15.20.8943.029; Thu, 24 Jul 2025 08:46:03 +0000 From: Huan Yang To: Andrew Morton , David Hildenbrand , Lorenzo Stoakes , Rik van Riel , "Liam R. Howlett" , Vlastimil Babka , Harry Yoo , Xu Xin , Chengming Zhou , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , Zi Yan , Matthew Brost , Joshua Hahn , Rakie Kim , Byungchul Park , Gregory Price , Ying Huang , Alistair Popple , "Matthew Wilcox (Oracle)" , Huan Yang , Christian Brauner , Usama Arif , Yu Zhao , Baolin Wang , linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: [RFC PATCH 4/9] mm/rmap: add args in rmap_walk_control done hook Date: Thu, 24 Jul 2025 16:44:32 +0800 Message-Id: <20250724084441.380404-5-link@vivo.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250724084441.380404-1-link@vivo.com> References: <20250724084441.380404-1-link@vivo.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TYWP286CA0006.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:178::16) To PUZPR06MB5676.apcprd06.prod.outlook.com (2603:1096:301:f8::10) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PUZPR06MB5676:EE_|PS1PPF2A261C07C:EE_ X-MS-Office365-Filtering-Correlation-Id: d183e51c-7cee-4c71-8519-08ddca8e85b6 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|52116014|7416014|376014|366016|38350700014|921020; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?/mk8Pl1J4w5kYorFEYxfDIsY2FtGd/4Prk65Ms3W1PKsrR2Y6zzcenEysLBV?= =?us-ascii?Q?BGhgkh6hhSIrlQndvhFemj3UjZaXhigBthFjl972aYez4FEW47I5lod9NKXu?= =?us-ascii?Q?ZESLq/QTXLXHXJqbHiVC/pXo4F6+Zqgq58RlSaHK+VfCne1DUWauRe0jqvl3?= =?us-ascii?Q?tD5hIm4y1P0gTDuJTvju5t1tYCBw1FbNPVDhUzTtdqEuDK+PKImiNTQzwGW3?= =?us-ascii?Q?ifwVS3E73dG+T79Jkj9c7SDqAIxT+hnk/rSJ6X4fNpwVKqCg8IKbOCmUgf5h?= =?us-ascii?Q?uy/0nGXOdO4ogaJ7qBBBBovM2FC+DSHhSdQ9WKrxeqBYTRIn2eGmhV8/x/z+?= =?us-ascii?Q?hvyWx26w3JtYa8nKOweZzkkIPk4pFfm3nG8hlUSkm3BQFz3kCrmD8rEndxOB?= =?us-ascii?Q?QNmGXPzCDfugJtGo4spj3hLyc7/Nz02T/98nIqR/yVJjbR5l2M/3ReoVQMwH?= =?us-ascii?Q?BqnpOHnYll/CrFJ7dM431xuz8xaPH0XoKkOhXcipphy9p3vjs+U3WGOAtJ/Q?= =?us-ascii?Q?92Jg1JjpL1gsXuPW+y9Gun6R4rJY0UHHA8lURSw7Yljr23z7q6dQQlmodlky?= =?us-ascii?Q?CDu3u9Lw7shMv6WG72ave4xlO9eIcCzIZCq3PwNL9HArdW4Mztl/ZZvU6ANq?= =?us-ascii?Q?yf701oXAiXVrxI+MfNZPRisBvVIF0O/YuyE1opSgWAxmie6MObGLDZ9Q7/Ok?= =?us-ascii?Q?9lULxPScvddSk94fPdhcT8ppPX8l915qUzhIv3JaIR255CLn7lDe56qECTTL?= =?us-ascii?Q?JUOzBt1Q/utUA1KgdMaUld8NR81U29LUwbhfu9ZxTLP0fhJzlyYgqkSjEtpv?= =?us-ascii?Q?ONMwd2w/fwAQ3Z4W6ZGsy2iIzxOhguFkidxXNGrShgkAt/3oANywWvg35fqA?= =?us-ascii?Q?f22kjzm3su3/Zekdi71Y91phSNuHkm69dI3E44qEO5vHrS0ZtGuTCOwhPwwS?= =?us-ascii?Q?0YQVf4KXRjr8U+ZBXw7T5O6sk1T6RjempWN5NITnfS7PnFbLCtg16cfWy+kZ?= =?us-ascii?Q?3NCZzfTzhijeQxknvfc5y6HybpJQ+2BJUY6F6eoqI9ALg/igU86gV4i3MqnL?= =?us-ascii?Q?ccQNZWJW2whJRownuNAoSuct/AcHkV9BrukalZ5BPmpYToad0LUbmJCHVEK0?= =?us-ascii?Q?/LpP/M+2Vh8aFCS830oblVCj7GIwGOxpkeF3etVjTatPAQ2QKZMtcoGezplU?= =?us-ascii?Q?lbFTd46vR6xh0QbO8fWfxksy3snB9uahxUVH852KX0aKI0CfiV4xzxWEGeKX?= =?us-ascii?Q?5i1qQqNjuqowfbOKryAEURoGGxELFnw8maT6goUiU0mJFpe+8TmaBNkhKZlW?= =?us-ascii?Q?Oya1J5BfNW+j45ImTBMwsqeVvPKGxmvfLbM/35WuyCInET/9tMaLPOhjC7Ng?= =?us-ascii?Q?k43kkrcm5Xc11IQF9hFsZCeSmskCHbBcCU866piSYgEgXLRzhwLyM8zexwtf?= =?us-ascii?Q?m1s+Jkoqwm5fkbRY0A51uBhZ8efQrQ8sd0VBvJCDIdFOsmBmYyRIy2RSuDNG?= =?us-ascii?Q?1K5JGZXtjQUkIMk=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PUZPR06MB5676.apcprd06.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(52116014)(7416014)(376014)(366016)(38350700014)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?9hNSVi4irf+Kp6C68XbqqOzdATIREJn0CrnuW16r9wkHrqFLqL4xbPdR9ex1?= =?us-ascii?Q?oEq0iOnQF0xV1K9HSKbLRXf0mBCecZmAp9SX+bN5ES2Ivh6IQn6z80bTnMgM?= =?us-ascii?Q?WwHA0PwSBTSKPRC1sPyHCpUPHWLsh+Zod4XIyIcxnNTnPwkmblJLSjF5oJGS?= =?us-ascii?Q?6K6ZbkkuVtsB8UdiLiQ3jUujZz462dOfd1XLkSSBRSMDQrMU3jBTNqlNm3Gu?= =?us-ascii?Q?tiAGOGxkH+NVANqzBZ1pI2Py6KSSCKxCnDkbW0mpTcol7fwyrZZzBXwqzRcO?= =?us-ascii?Q?ttqlv96iBOzMzRhzip6XNzxdQZ2Fz1a/PXTU7Im5SA6l540/M9Xv7M72uAAq?= =?us-ascii?Q?4UO1ObA6hnDk6voKiG/gO0HJQIRe+mGACj9zXyyW5hG4KkZCcUD0nLxu3iZ9?= =?us-ascii?Q?GQB5ntAKbadQ7yIoeihdYfSyNpGLCVms8+t/s3jln5104DqsbFwj7Idb+wTA?= =?us-ascii?Q?A7pAl16W7dBgR9MTlBWmQzU/LLnPctGxa//gGCvw4pOejJXZDyAsRJoTl03K?= =?us-ascii?Q?jTreFeqmMMlFm51Wvcg4bMDb3KQNEMuXZ0AOND3RvKp0YaRP5ygekZ7ICS7m?= =?us-ascii?Q?6HbZby8qCgfDDE3/NxI+QSf3qlrwykbD+S8skRPSDv1NcRsDdBeZs90XHTMV?= =?us-ascii?Q?Vrf/Z81KgUzFRn1cXgJeokGNv43IcZ7EoaglZ+/d39F/niGVo0wKq2G51SkS?= =?us-ascii?Q?JLTfnO1xMSTVyOE4ozG6LV7E4LF2ZCBtPfRO9GquzAjss10k4Ckf7oZUCMIB?= =?us-ascii?Q?rImftFMl2DU7VxTsvdWmyEuT/800IPMh9tdgpuhNRq6noKlQ+AMGGYDiqEQt?= =?us-ascii?Q?H/ZcxskbjHaEJIjeEIbBBOfQSRUbkUTrOMkwcthvfSY7rwAMBpgHZjRcirBO?= =?us-ascii?Q?ZlH7M0pzQ+SDU/xp7Axvvw1hiQ0FkAGKt4j71S72AAcnwdUuFTGfhwzjkaEJ?= =?us-ascii?Q?kXtXM6LXddmYZdw36DyPHoHRjFYywI71+FKkvEidLp5pUWbTEklEow5QSYQq?= =?us-ascii?Q?Qa7gF+2eMYRKhCNjvID/mpglvmQGLqngCBbTS2fFnDm7B9MsgRQe5BorG56S?= =?us-ascii?Q?91trxW+QRxek5fIVofuNIMTHYLpKQnPgz9VkqaMlP8ugpQHJIjLa2cVy7J/Q?= =?us-ascii?Q?QmskvqikrJFyghn9TTibsU0Az0zFnA5rU3j5lvKdYlYEDMy076YaLxUUaAuB?= =?us-ascii?Q?u6wNUsmAC2fn0E5E3m/m0GHyeB7bvJib5CwgiK24k+kPS8N3oU8UKxd0as1J?= =?us-ascii?Q?ZWumi4ybdMoax8V6+eHDklNNR/lkv2pE6Lw5kJDHeJiGJeHkgxcY7Zo3X1fe?= =?us-ascii?Q?wVlimTljVwWtubUdAbrWE0j4TARmloSBGQS0gSSrBlVW5mJeF9XWE8Y7NVWU?= =?us-ascii?Q?oC2DAXWIRtCE+U4jv9hAEemswpGq4ca/n+au6O0CZmB7gbRZvmpsm36Zhg+c?= =?us-ascii?Q?cWW7PTVlX80e4pdlTWscBqYF/GHNnABcoGaUWPTtM0OMLLM6Us6XHAs7l81z?= =?us-ascii?Q?wcLElPmbh+Cc7NqIY+2Z+9cgzNV3rCwdcsudx5WnBnGPoeGV+XvdHWbZ0Igg?= =?us-ascii?Q?rut0OITfW+5O+31w9iGdsnjXQKbyOV/3/ODtJHmK?= X-OriginatorOrg: vivo.com X-MS-Exchange-CrossTenant-Network-Message-Id: d183e51c-7cee-4c71-8519-08ddca8e85b6 X-MS-Exchange-CrossTenant-AuthSource: PUZPR06MB5676.apcprd06.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Jul 2025 08:46:03.6028 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 923e42dc-48d5-4cbe-b582-1a797a6412ed X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: jTWFXfafncaAwJrHO+omnMZkO5PzwKh9+A76IrwpPmGZ8TIbMkdBhcg41xw0b/SKzXOJLKSdeCSd7+CAert/aA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PS1PPF2A261C07C Content-Type: text/plain; charset="utf-8" In the done hook that determines whether rmap_walk can terminate the traversal early, we may need to read parameters from rmap_walk_control to assist in this decision. This patch adds the rmap_walk_control as a parameter to the done hook. Signed-off-by: Huan Yang --- include/linux/rmap.h | 2 +- mm/ksm.c | 2 +- mm/rmap.c | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/include/linux/rmap.h b/include/linux/rmap.h index f0d17c971a20..a305811d6310 100644 --- a/include/linux/rmap.h +++ b/include/linux/rmap.h @@ -1013,7 +1013,7 @@ struct rmap_walk_control { */ bool (*rmap_one)(struct folio *folio, struct vm_area_struct *vma, unsigned long addr, void *arg); - int (*done)(struct folio *folio); + int (*done)(struct folio *folio, struct rmap_walk_control *rwc); struct anon_vma *(*anon_lock)(const struct folio *folio, struct rmap_walk_control *rwc); bool (*invalid_vma)(struct vm_area_struct *vma, void *arg); diff --git a/mm/ksm.c b/mm/ksm.c index ef73b25fd65a..635fe402af91 100644 --- a/mm/ksm.c +++ b/mm/ksm.c @@ -3072,7 +3072,7 @@ void rmap_walk_ksm(struct folio *folio, struct rmap_w= alk_control *rwc) anon_vma_unlock_read(anon_vma); return; } - if (rwc->done && rwc->done(folio)) { + if (rwc->done && rwc->done(folio, rwc)) { anon_vma_unlock_read(anon_vma); return; } diff --git a/mm/rmap.c b/mm/rmap.c index bae9f79c7dc9..e590f4071eca 100644 --- a/mm/rmap.c +++ b/mm/rmap.c @@ -2232,7 +2232,7 @@ static bool invalid_migration_vma(struct vm_area_stru= ct *vma, void *arg) return vma_is_temporary_stack(vma); } =20 -static int folio_not_mapped(struct folio *folio) +static int folio_not_mapped(struct folio *folio, struct rmap_walk_control = *rwc) { return !folio_mapped(folio); } @@ -2828,7 +2828,7 @@ static void rmap_walk_anon(struct folio *folio, struc= t rmap_walk_control *rwc) =20 if (!rwc->rmap_one(folio, vma, address, rwc->arg)) break; - if (rwc->done && rwc->done(folio)) + if (rwc->done && rwc->done(folio, rwc)) break; } =20 @@ -2891,7 +2891,7 @@ static void __rmap_walk_file(struct folio *folio, str= uct address_space *mapping, =20 if (!rwc->rmap_one(folio, vma, address, rwc->arg)) goto done; - if (rwc->done && rwc->done(folio)) + if (rwc->done && rwc->done(folio, rwc)) goto done; } done: --=20 2.34.1 From nobody Mon Oct 6 06:32:11 2025 Received: from TYPPR03CU001.outbound.protection.outlook.com (mail-japaneastazon11012018.outbound.protection.outlook.com [52.101.126.18]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B6E58284B25 for ; Thu, 24 Jul 2025 08:46:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.126.18 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753346773; cv=fail; b=n0PA+/IpIU2AsHltvYGNV8udlyuGpmMSMQAN/WWXRL8aCDI4NbDph82/lpPaQh/6IH32ggPNrHDv9IXfXyGjcveOnxIC9YNhqZTSBpYdd5X4lr4zLI4V1tTkJfJEohupl1+iK3VvB+9UfNyZXcpNKzXdUvyFQk4IUWTio8naH/k= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753346773; c=relaxed/simple; bh=tqMCFl2c2fczZVBtiYMz1SbV6dZl+HU8nV+GZI/ptHo=; h=From:To:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=W64NEv4QSTzziXTyMIh72WHBLnwRYVk2uD/GDLboiKtQXHakXjjfkTNZypAetww4bBamcTIS/X0CHnXNR4Y3VFOyi/ekNKvVynzDy8rHGu7vPL1m1JXM2o11v8+hs3O8PWiUxXPo4wE61ftGkjWYt8YWFw8qiorcUm0oKo5g0nk= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=vivo.com; spf=pass smtp.mailfrom=vivo.com; dkim=pass (2048-bit key) header.d=vivo.com header.i=@vivo.com header.b=YWjEOVCB; arc=fail smtp.client-ip=52.101.126.18 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=vivo.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=vivo.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=vivo.com header.i=@vivo.com header.b="YWjEOVCB" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=wLmbXgSy+B7jLOArA8bEBZmtYYL1njACESBTlSl0CvhuOnfoLBZgtEVxGwn6FQHg6GlpdLKmcXGPB9UqBfP0lFZT+uAa1dzgk7FLOCcolgnFKVk4tz7wshNJTTiZReMLzaQwpNAWoVzJBVePIxoXdX6zi6whWwDsIPFuGmVZ4HG44Z94AlIwALFK3+7wndMJzsaM57i4UNt+xc1UhXFr7dENJtMFUhXUxipb4gAI6QuK6nnAEUkCu5RTTYWW/mAG/iMf2cw/siYUgR3oyCcyYaUgOI2o9TJ1PSvshzo85UhXo9ouGlIMKaWtUSzyHzWNiKmQStJdiASwseNDwYlFnw== 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=pThp25aSgZjCV3oK2DYHuqnuEQLQjBp5Rhnz6cgjz+o=; b=l3VerInWHEFFkGTMiuycZ2/EUGaDwJr3XFqFvq96UhOLrj8uu44gecpbOVSxbOI5rfi1ckv4NnFIBZpFAE+nQ6gxgRuGa9/8P3b+m0fM+hlCnCfx66JPptnW8uioghR1LYeVYnRxreBvgoWS2/aZffEL+W6kIT6hcnvqRnejwX9ZHB4FzvnKRqrjs9wZRYH9eQ0YTyMVsTmu162excq1/5ofS7u0ZB+tsz7enFWJ8EKZ70QcOniiZaHGCZ+ayn0WmJyXodCph0wx8tcgJEeky7qqqJJqXub1U7pukPsH6ojvXjARlyXXyTAayLnzpOwSembuRtv64dlihyfXvn0y4w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=vivo.com; dmarc=pass action=none header.from=vivo.com; dkim=pass header.d=vivo.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vivo.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=pThp25aSgZjCV3oK2DYHuqnuEQLQjBp5Rhnz6cgjz+o=; b=YWjEOVCBaw27RFyqCzw/ySWx5hrFHD8w963inRH0R6LxOhIPys9XTCuE0qgcKy5p+ZRm/Pjs4hn6mc40ednSJGAuflbW9HC0u+ucNyc5SGlbABJFJboQ7AQalblKhJoO+YdsUyHje3HVuHFFyuPM3gmrxgl47CTzfs4uHAPutY/Ef4Rgi3zD0mQFdKi3PRx+yK78hHCytPnyV9UjvIl1dxkNj0IifQ3jSxCZmxnfHrC8SBR1YnUs52OHTsLdv8kF3BriIzcKbWW1EJRNbBiVhF9o+HGZMOFGGYk9SeATZoB+BnSOOgcaPyeuooniIG4LpYz5L3Ys0cIxZrHwVJtmhQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=vivo.com; Received: from PUZPR06MB5676.apcprd06.prod.outlook.com (2603:1096:301:f8::10) by PS1PPF2A261C07C.apcprd06.prod.outlook.com (2603:1096:308::247) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8964.21; Thu, 24 Jul 2025 08:46:09 +0000 Received: from PUZPR06MB5676.apcprd06.prod.outlook.com ([fe80::a00b:f422:ac44:636f]) by PUZPR06MB5676.apcprd06.prod.outlook.com ([fe80::a00b:f422:ac44:636f%4]) with mapi id 15.20.8943.029; Thu, 24 Jul 2025 08:46:09 +0000 From: Huan Yang To: Andrew Morton , David Hildenbrand , Lorenzo Stoakes , Rik van Riel , "Liam R. Howlett" , Vlastimil Babka , Harry Yoo , Xu Xin , Chengming Zhou , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , Zi Yan , Matthew Brost , Joshua Hahn , Rakie Kim , Byungchul Park , Gregory Price , Ying Huang , Alistair Popple , "Matthew Wilcox (Oracle)" , Huan Yang , Christian Brauner , Usama Arif , Yu Zhao , Baolin Wang , linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: [RFC PATCH 5/9] mm/rmap: introduce exit hook Date: Thu, 24 Jul 2025 16:44:33 +0800 Message-Id: <20250724084441.380404-6-link@vivo.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250724084441.380404-1-link@vivo.com> References: <20250724084441.380404-1-link@vivo.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TYWP286CA0006.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:178::16) To PUZPR06MB5676.apcprd06.prod.outlook.com (2603:1096:301:f8::10) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PUZPR06MB5676:EE_|PS1PPF2A261C07C:EE_ X-MS-Office365-Filtering-Correlation-Id: 9f5b13e3-0af5-4121-28c0-08ddca8e8920 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|52116014|7416014|376014|366016|38350700014|921020; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?ojMIDQOTIcJ4rxyEQWNQ+SbbhXz02K0Q56SHkPQDaCi5RprqABcCznUhNZNn?= =?us-ascii?Q?SxMGyix4H/YmWWoDcuJhusJ1yoctz/BjrIWdhPK3csgeLNt+2RtuF06AXNTV?= =?us-ascii?Q?P0HBhitNRc2++vLm9pcAA6c3YiFLdQm8z3ppDNtwIYINsoOj0dMoFSekCafd?= =?us-ascii?Q?1FnycQE5lt/GsX1yFxWYzUK6jfiNDk0gh5Z9zPO5Pfbn22xLOQbKBT4pHgNB?= =?us-ascii?Q?F6OOQC9M7h6FuOTNSI9+o09j7PcqOdOtAZ8ho80PRn4KGeXOHlGCYyZicoE2?= =?us-ascii?Q?B8a4IxcrBjBHPBEWTuH09dAxy6IUHM/vUSBzTv1taW2jOTv/dUc69FakUtcR?= =?us-ascii?Q?vNAywiJcOU/dy9j/cdRmm/IdnKDDJxsa9JBnprRUYku0gsK0bgbuDYgOfotC?= =?us-ascii?Q?S9fdFmsXNCHFsLzIguhmMPeJ7z+qdkQ+FfJNmBVDy6Z0ZbWVJcu31ZVKcp/i?= =?us-ascii?Q?+EjHTaIVZ2juHn5sHjAw5DDXKhAUSQHgUx4GvNYiT5g9BGR9vGYRuN8pfMMM?= =?us-ascii?Q?V46azFA5PPbFWWVKETxfe9t6YR/Qd4LMKUJ/ctl+ZOJ2em9zO9LRSFVks4vR?= =?us-ascii?Q?hlFZZ3HG4Fr9zc9qIBZGbwSbioVU2lCTcUjYUL9XbcWKDCdjkDkcsEBUpaeZ?= =?us-ascii?Q?+Qq7dgmlVNZcov31E4XZze1mLPLmjq4rgJ71lw/84XErEvnLCzj9HWVC4m/W?= =?us-ascii?Q?FaNmHUtUhZC/TudoDHWtz6EQUDRsuzd+Qbt9rGkpy7SEFhd9PtoXwP7OvbRR?= =?us-ascii?Q?4xDFAneB0KA6T8b/dNnF38NZ++AXiM4pQY897OzEF960YyRDrEq5rC77+iWd?= =?us-ascii?Q?AzO9HUod8fjkynnHyImV0zyGE1aIl5GUvbRut2BP2B1usYEUBDxwlMpBnjk7?= =?us-ascii?Q?IUwkLfMy2rG/VkMylEWWGFJgwZaGKnvUuNs3TFEu3Pnu3bBW5UFo44C7Khmg?= =?us-ascii?Q?Avsd0ttylyrpVB/bRQCbS9nqvtD7Hi82szvNoiPgvgOv+aUeLt4pqBd4qIrd?= =?us-ascii?Q?y9WQbp+JUDJCu65Q8B2GxpDrTuEf9tFtJiDl9AkdHa4GF32df9vsBh3Kobrk?= =?us-ascii?Q?YkOM96cDNTyFuzFAxAb2zMZaV7NUB3BDWGFa0LIHdh8vE1v7BbCfYzlAU8DD?= =?us-ascii?Q?0ou5heibdrYmLJI7s9QDGfJHVDb4HgaJ41DFpub14zgYa4pNHdjWJZujVRBW?= =?us-ascii?Q?SEe4erjyQDSxKuioAei7AUHHd1AKlUh0b0q/YtDdGEz4LG/DwrDJSIUZ8DTa?= =?us-ascii?Q?kJNrvUckpx+qDkohdXFKduAuYFNbSn0FM7zIxIouhlgNFdCOiSAgyCCvocEl?= =?us-ascii?Q?gg8B9uSVKkIKHQj0VUKlwP2lvpgy0wCf32I9ynEqwgVE6YxNBB3iYtV/69rF?= =?us-ascii?Q?5TSpAmMChaUSljZ6kglHpW9MmpB+CCv+ow60wd2lae2areA04H0GXTE18Wkw?= =?us-ascii?Q?mUc/Tq6cEhYf2qwNfF6Pml3wE5wXK6Bru/6KXz/COa4Z+LZfoeIkqNAobRHi?= =?us-ascii?Q?0jGpfNem/X5U0Kc=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PUZPR06MB5676.apcprd06.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(52116014)(7416014)(376014)(366016)(38350700014)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?qTNIvCapuDn+jfuJRnT6nJG61V6arDB/CEVIagGQNi0S+Lu5ZIRYxjkrsbCo?= =?us-ascii?Q?mGIdso7fm3mISoGDlImN508rYF9BAeR4IbHskJ+UFFRgayB9ouLQ82bVRvQn?= =?us-ascii?Q?jUZ0u3pcljVldG3F8BdspzJriGwVU4ylWXGniwzB0t4cbB87vXrgl59LnMus?= =?us-ascii?Q?hsUvPwAD2vkCc7psw+rNU3S/7YaNeTKMl2k8WNRsQrs9nw32xpI0f5HjKD/C?= =?us-ascii?Q?FokrChsbzymmR/NVZmOK0pd+xR1YBp47xIH0xVGZZJRqrbF+GvzIDZXeS29x?= =?us-ascii?Q?1rQaDKb25/46K9dTtdZ9Ca/SRf/2Tj2w7V3xhvlK0+FKRMySEZSReqLd+btM?= =?us-ascii?Q?+frstpLOpWQxXGHKZYE1f+9iwfipNlchWDaEWxPVISzC1gjjQqzKPM504nIY?= =?us-ascii?Q?H8Gf22aHbSBCgAKLHrw0v8nJ0OJ66rOVb90MQZPDyaaFC+Zpr80fgIQtWEOz?= =?us-ascii?Q?JjK6fe9FiCBPsoIpf/NuVWT6u/pNM0wtmGsfRylYyCP/Sq4MdkhEZ/BqDZqK?= =?us-ascii?Q?tILlcUys4e8xuGvQ9tLxXC0lRo8uS9SE7aTP/CbFSQF/P+U14YAieAyOwlyy?= =?us-ascii?Q?wk2bVOY98oX//GltJ7Yt85aVqkmAW0JxGM8nd+QfVuCpF/LHDxY118AW+u7s?= =?us-ascii?Q?/gQf9Dyl9Pz9kVCfvOzfy2Ffu3wobbByZlCHTdyr1OJ1P5WpSvY/FvXb45Aq?= =?us-ascii?Q?1dZ16hjygUg8fwZtmhuuVRDu2GsT3qiHDH6HBJirIrw2eUDxy9sJs4vUs/FK?= =?us-ascii?Q?0rPLtsB7BOPK6hoKapCRsu99MiGF2OPlmkcM6yMF5cUwoMlZz7tJs4vhZwZR?= =?us-ascii?Q?wbIxVi8xBkioVcWxgK27LdFT8dDDq4SJhlW76j6UEG2pJsGF7jvVfkktoKj2?= =?us-ascii?Q?7evP3s57PtlxGE6kLzE1rUIrzRTVQ7qa0vDR5Nowk2qflNfhV0byeaxq4qLE?= =?us-ascii?Q?uB1lz9R0Tdh5vJ2qO+AffRadNH3sQwiSk2TVftayxkdV8a9uBs5HIgcv1s+6?= =?us-ascii?Q?mEcOMHtr4URAst5HN2C3BBSWUtZYOJWlOYWmSEWktbqPr9glBleGA/HUnWrN?= =?us-ascii?Q?fCWHk54YCRnFRgv5uDHL0rnCa5ZlVFzaUmZlVRC/p40sh1Sevkr3l0IA1/b/?= =?us-ascii?Q?J0QAgUnyQqMoNngtTKWZ6CNuF6YpNswTiInHm0I1mn0KyKSLx52vH3saJExW?= =?us-ascii?Q?SlDWzC+76yCDZn8bnjR/E1XCbUw+jM4jblke2O6/SMPhsP3gYmRRAxXJZwyZ?= =?us-ascii?Q?ZRlrkevvlHwYRZ6LxLpEyVwZFRr/Gbe6rkA1P6HeEQxNTA8tCq/xbw6HIHzs?= =?us-ascii?Q?ysq5WbGY14RiEmh8ceLlVPNcmxsyfMLDAsS2mPkETj/mO9r0V5OpVTPRvpom?= =?us-ascii?Q?t6BKmYV5p2hVkoovJqSY2cytKDSUoOkvaR7DrWjD5OkYnNlVJ0vB9a45fJGY?= =?us-ascii?Q?I1Kmj9RH5RtmAwxsXiusa5sGuVoGWU9OkugAwWwQrlZfF96dgIX2LrwT2tEu?= =?us-ascii?Q?PRTJ4bqAXUgCENLqJkSDfWUD2N0LqC+l7MyhmRPys+G9+gevKvMScWkjxOE5?= =?us-ascii?Q?Far9Mgr1FJL5UlitgktpPzNECSlNK0dilbmM8ft2?= X-OriginatorOrg: vivo.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9f5b13e3-0af5-4121-28c0-08ddca8e8920 X-MS-Exchange-CrossTenant-AuthSource: PUZPR06MB5676.apcprd06.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Jul 2025 08:46:09.3323 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 923e42dc-48d5-4cbe-b582-1a797a6412ed X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 5XfAtwiuz0hQFaL8FCCKTSMd5S/z3OtckY6ZkfMdGH3H4DY0JN1hjSzdP0d2kTSl4MaejMFfyVATEzrlCx6i4g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PS1PPF2A261C07C Content-Type: text/plain; charset="utf-8" When approaching the end of an rmap_walk traversal, we may need to perform some resource statistics or cleanup work, and these operations need to be done under lock. This patch adds a new exit hook to rmap_walk_control. Note that currently, the exit hook only be used in the anon and file rmap_walk implementations, as ksm no need it. Signed-off-by: Huan Yang --- include/linux/rmap.h | 2 ++ mm/rmap.c | 6 ++++++ 2 files changed, 8 insertions(+) diff --git a/include/linux/rmap.h b/include/linux/rmap.h index a305811d6310..594dc4df3bfb 100644 --- a/include/linux/rmap.h +++ b/include/linux/rmap.h @@ -999,6 +999,7 @@ void remove_migration_ptes(struct folio *src, struct fo= lio *dst, int flags); * locked: already locked before invoke rmap_walk * rmap_one: executed on each vma where page is mapped * done: for checking traversing termination condition + * exit: do some clean work below lock before leave rmap_walk * anon_lock: for getting anon_lock by optimized way rather than default * invalid_vma: for skipping uninterested vma */ @@ -1014,6 +1015,7 @@ struct rmap_walk_control { bool (*rmap_one)(struct folio *folio, struct vm_area_struct *vma, unsigned long addr, void *arg); int (*done)(struct folio *folio, struct rmap_walk_control *rwc); + void (*exit)(struct folio *folio, struct rmap_walk_control *rwc); struct anon_vma *(*anon_lock)(const struct folio *folio, struct rmap_walk_control *rwc); bool (*invalid_vma)(struct vm_area_struct *vma, void *arg); diff --git a/mm/rmap.c b/mm/rmap.c index e590f4071eca..66b48ab192f5 100644 --- a/mm/rmap.c +++ b/mm/rmap.c @@ -2832,6 +2832,9 @@ static void rmap_walk_anon(struct folio *folio, struc= t rmap_walk_control *rwc) break; } =20 + if (rwc->exit) + rwc->exit(folio, rwc); + if (!locked) anon_vma_unlock_read(anon_vma); } @@ -2895,6 +2898,9 @@ static void __rmap_walk_file(struct folio *folio, str= uct address_space *mapping, goto done; } done: + if (rwc->exit) + rwc->exit(folio, rwc); + if (!locked) i_mmap_unlock_read(mapping); } --=20 2.34.1 From nobody Mon Oct 6 06:32:11 2025 Received: from TYPPR03CU001.outbound.protection.outlook.com (mail-japaneastazon11012025.outbound.protection.outlook.com [52.101.126.25]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 808AD27280A for ; Thu, 24 Jul 2025 08:46:17 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.126.25 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753346781; cv=fail; b=czgDq8UWjtPsTrATWlun6/zgiM14Tsnc6NgM+zfvPIdX6UFQdSTPbSPhJ2fBjGsyk6vXvFaV3PNvaALEJE4YqQQfoaCIHq/y1cI+jMMY4kCl0n22iQ94eoTkEwvFPTN1sAl89le3SOEpRYwmMoftxjhblytDvSQji6ioJlRqQ+M= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753346781; c=relaxed/simple; bh=I6tH6qkHHhyHMLaeMCE4V4vi2piyxnG3gqNNWHo4UNw=; h=From:To:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=nWpdsRqLkyHL9DA+O6NHlZinWHJZxvzW4H/qCwXdrIomOrMYfuM8/RkCkoc2USChbr67wdNVBoz3UqM8c6VLpjZGQS+NEhnnOXkhGAejEPpULvuCy3GZHVJrI1E+iAQphHEMtMGROtp0ewQmcERV+43/LQuGnv9Xpv2+toms6/A= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=vivo.com; spf=pass smtp.mailfrom=vivo.com; dkim=pass (2048-bit key) header.d=vivo.com header.i=@vivo.com header.b=D7drhvkq; arc=fail smtp.client-ip=52.101.126.25 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=vivo.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=vivo.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=vivo.com header.i=@vivo.com header.b="D7drhvkq" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=fPXhluA6rOleEIVv+/7OEoOhbiZArW3W6DbqQeagxAMVKdmFSh4hquavbU5gBoiK335BL1iVJGLOuKzqgPZb/BP53Cx9S/YW3+2LakruCENmRgbB4KCU9oqmOFliNu+iJRcp3uKT5SFUfNxz+/HbBA1nKHrtbKHKGLZAh364jaX/BPCY+uCKFp2xBHvFIsKR5ZR6Vj6uNJF5VGXKWLzsWyrOUu/FonpVYNll/lAAFthtIfPK9v59UOtwumkSuho/d+48HzRts+dOx8drIqs3Xy4RuNj1zqfOs4V8qq86O+mq/yx5QuG0VhpTnySdm3W6GDhtsNv1hqjGVOTbAOxrtQ== 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=n5wtyTBDpuAGN8oAcnPrIIqyr32bmkuPgplcfTwT3i8=; b=nXcb0FGKZKRd2AZ7nYS1xvfFgySUYuLT1f197UyjPycdYX8c0PKHQQuW5UWKIqnEPawOPvf8oeIXwQQ2JMqsbdCUAVP0sxrpShGUqIEx55qosY4zo8Y6yj7HVytZhUKBZahoSXc1OF/Ghqamp6DGGO8zMQkNoGTTwB3/cGWW6bhsKX6l1bzKfLuBGM5XfhBWUfQAWrgHjCG6zYvEaVhZc+qFNWPgLM8CBn+X9mTQr+Qi1WnRUfZVy5RyPBp2nBwkWYGihHDFLnFhBKoLvmeUoIocrACVu+br72LcjZXVnvb/+Luv6ZGVEWQqp2tsr9oh4GuHbvBG49l5CCQLP2I6Kg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=vivo.com; dmarc=pass action=none header.from=vivo.com; dkim=pass header.d=vivo.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vivo.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=n5wtyTBDpuAGN8oAcnPrIIqyr32bmkuPgplcfTwT3i8=; b=D7drhvkqCIIZkEFPZK8gQ3ZWMZMfrgBQvD5tEJqOkUm2GP63Pc4agK/czJkoH/e7e4xO8g3/in36zEdKi7pKdg4ldNZqHT3Gdes43li1YhH3Ml9nOaeGPknigH9OkqwlVoT0z3IJH90h8poCWEnHnKUVMYJnnbqLZW7v0WzBlqBxj0O+ItzlsYm9A5/gDManrfWjdtf46A0JLLUHzmN3Hg+bGeWpkeQT5QfsRJ6CwG8f7UuQrGdp+22VlbTy/rSQOEOnbKIbwPWvCvBU/npl3UhHmTrOhJa3ziq0HA3m0Uxyf1V334345peBqqnek1p+VTdQMA8ZzxARKIyoG9Njog== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=vivo.com; Received: from PUZPR06MB5676.apcprd06.prod.outlook.com (2603:1096:301:f8::10) by PS1PPF2A261C07C.apcprd06.prod.outlook.com (2603:1096:308::247) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8964.21; Thu, 24 Jul 2025 08:46:15 +0000 Received: from PUZPR06MB5676.apcprd06.prod.outlook.com ([fe80::a00b:f422:ac44:636f]) by PUZPR06MB5676.apcprd06.prod.outlook.com ([fe80::a00b:f422:ac44:636f%4]) with mapi id 15.20.8943.029; Thu, 24 Jul 2025 08:46:15 +0000 From: Huan Yang To: Andrew Morton , David Hildenbrand , Lorenzo Stoakes , Rik van Riel , "Liam R. Howlett" , Vlastimil Babka , Harry Yoo , Xu Xin , Chengming Zhou , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , Zi Yan , Matthew Brost , Joshua Hahn , Rakie Kim , Byungchul Park , Gregory Price , Ying Huang , Alistair Popple , "Matthew Wilcox (Oracle)" , Huan Yang , Christian Brauner , Usama Arif , Yu Zhao , Baolin Wang , linux-mm@kvack.org, linux-kernel@vger.kernel.org, "Kirill A. Shutemov" Subject: [RFC PATCH 6/9] mm/rmap: introduce migrate_walk_arg Date: Thu, 24 Jul 2025 16:44:34 +0800 Message-Id: <20250724084441.380404-7-link@vivo.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250724084441.380404-1-link@vivo.com> References: <20250724084441.380404-1-link@vivo.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TYWP286CA0006.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:178::16) To PUZPR06MB5676.apcprd06.prod.outlook.com (2603:1096:301:f8::10) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PUZPR06MB5676:EE_|PS1PPF2A261C07C:EE_ X-MS-Office365-Filtering-Correlation-Id: 95dbd8e8-d89b-47e1-a113-08ddca8e8ca3 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|52116014|7416014|376014|366016|38350700014|921020; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?LHjnWUn5RMeGaYlqsmjPsnxKivWCEQIXlsrjz8CJmF8CSmyDZyfN2pFt8Urn?= =?us-ascii?Q?GhrBVuORj2554GGjIBWdHYSN8GhoGS7QfIgtu5Z2lCQgyMUnPI+J199Bjn9E?= =?us-ascii?Q?qeXixvS0M1dEKEhhCXu5LT5Yc+TCso96bYwnGuqoTfC2OwqUa/qncGR1DXvR?= =?us-ascii?Q?IvHSUi/s6iV7aAdUIwGIwawgOAeh7vSA/VCNMl31OGa7Jfr3wNRsz4+d2bDC?= =?us-ascii?Q?23pNhVhML+nMlsu9KFomd3Ok8Bvn+GDESl+xEnfbv/T9A2kZeGS/Dsh/NQEo?= =?us-ascii?Q?4GZPoGSxCWrAL18nouWkcNvsUhqDFbGwbWr+sm27Bk/otWGTVDcsGn9lLczB?= =?us-ascii?Q?IOYXu8VHWUHqkXmTIxTNUKtHyzE5dzjySGFBeA33IIa68DXzQnoIYkKetnMC?= =?us-ascii?Q?uD4Od4avXYajzHs65UFlKQND4UcCkDsCmcwBsYpwrZG3hIDf6oJlwF1+y3FH?= =?us-ascii?Q?5Sk1iJKIVPLGx/9yJ9K1p40xogRoIl1LCgbuenTJvZ3BCMRZa2proLVIuMjE?= =?us-ascii?Q?rsuiZgYbdL8slsEV+yEotTdO7KhTQfsBkKSG8OzDH37BYJd+RxLXACbk7CDv?= =?us-ascii?Q?BHBIOJ6J/1HZ1uplgg1KSPKhvwLryyAhPElgwU0FP48y54ZRxSISZeWSyv8L?= =?us-ascii?Q?xo7AMhznRE9swORImJwsDlSlOPfp+clbgnHU0iOZ+HKtjBEgK14oD8rMLHOX?= =?us-ascii?Q?Q8PnUbtRE5pyK33bm9Z/T4D3Tls0Yh++q79YCXHSoqTGZxIE+ENHESMNft50?= =?us-ascii?Q?yeuWbeqXkci9gJcLbZQaesPgofjXq/oYthiTRJj/ct/t0e2AS+62qaD4cJwg?= =?us-ascii?Q?tgA8/zv6bugvjrVNNZSi4llj18vfcWQv4PQtPRn1MxG+b/js/JFjKlh7qT7T?= =?us-ascii?Q?PZxDwScH9vT3Z0DJugzDXK42DYow73UqcKdT7kM987lOCuH9sprwy2Kai4j1?= =?us-ascii?Q?qF6zmmih/9uguRWIFZ7/yFjiRpfCP3hH8zTRmIUbyH+0JQfDSuY/T6S45rzU?= =?us-ascii?Q?pZI+6J4V7dqv6hLcpW108kc5iC/1Np2lG1CGApr47sd1xjacpY0t5JYrMTSZ?= =?us-ascii?Q?GXi4OO+HyZFKBbqH4ei4TEfop24U0Un2BlEc6L/KxaHl63VEQS+L4wB+TLqp?= =?us-ascii?Q?JNKZm5qF3CDx6ipcujizWXGUzKSZpbBDRyuC0O3jWSAI+3CAlSgPDCrRIUsE?= =?us-ascii?Q?zZqtdp38c6widQAalSw7LhszlJdWX/sj3QAvED1RpyiaMi0TKgInmQGDkQzI?= =?us-ascii?Q?98BL7Ds32WKJKMM/vjfgPXp/nS53EGXFJBUuDlOzrYUA3zqe638/CAhQBoRz?= =?us-ascii?Q?HcaAay+WBYSHnQCyzy8rKd250/lz8AMmv3xCMTj5mV3y97wO6ukbwBP+qAsF?= =?us-ascii?Q?wufS2ZYkqOwAFapKz+Qlp4/7GCtuyqjyJ9bpqQCX4dZq6BhADlTA51tmlXa2?= =?us-ascii?Q?3yIyBtasi0iVjGptoiwx6pnx/Y2+R9VYfXYCvk8Wd3p60u2KYZTrqRAcaQii?= =?us-ascii?Q?oKvEi+oxU5dMTsA=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PUZPR06MB5676.apcprd06.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(52116014)(7416014)(376014)(366016)(38350700014)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?lQo4rC/Trp63SJ2iQlUX26W6+cCUJhhkp6VSiXEycQKn3k70ODIvxuZ8yBvE?= =?us-ascii?Q?uMW4aRtCjwf819IOlqO6+dKla6tt3peNLVW9OlokBXBJMrQk4shHEyyVq4LK?= =?us-ascii?Q?JkI0hLiNEvHwiPZYjMPK+m++7otFuXFt2kfBpTT24eKLWT0yLzzZ2EIHPM0d?= =?us-ascii?Q?sQ9iM6tJaYrqtHAyEKTKxID5bNtHWYlLWz/ewN0/b3DaVoUPKFr4o7MCCUJi?= =?us-ascii?Q?yqX5Y8Q1qXL2xrH1PhHGRnfETo+M/K1F/Ku/AYOpsPHVdzqXH9noSzb4MDXM?= =?us-ascii?Q?m9BjcV268Lsjy9ELZ2bGbXv+JbpjT17O3zCFAwRVaEdccjZiejFcXRDchtcb?= =?us-ascii?Q?CDZymzDERpbVAxKkTbldM/1lzTeIMSuXDYf5GgoTkVoTqqGrK2hIAFrk/eKa?= =?us-ascii?Q?cF1LJE+UX1GftCX87KfhRVCNIjE14bkQATVxT7pSrc7zkG5XlMgssmfoLK+L?= =?us-ascii?Q?DMKFVNdsvaNxizu9YWMp5ObG5kMEZuhPyl7zxYanxLxoDtBejNxvys4m4Vuj?= =?us-ascii?Q?s1CS1XMegLXYNc10KV6x8OwNWT9a5zoRaecq3GUwMjSq6dsr0OP4TpGvL3Np?= =?us-ascii?Q?BRBY/a+vzmvjQ2JeqRd23Txl9F7SDzVlBcHxnQEIBmLH6zZqMHTuum3cQLjy?= =?us-ascii?Q?PoRjc0vrjfQZqyrzvz8zSI1mV0Epe4nBeMa82Em9d79Y8qzEkSsLzgTwLV4z?= =?us-ascii?Q?5X4ix9CG5y9QR8NJokkqazZvyUR0zZyewdrJGq/rl3kQuE5Thiq/iqTbwunG?= =?us-ascii?Q?LpN4mDs65QdcpibY21Xy86VxsihAfOi9r2La80voeDlJXUTSPJU8moJJjD01?= =?us-ascii?Q?VEaprN3VgxghT2+TbLYgs9m97V/VyGcrqcLYV1RxEIbNKRSm3kpF3kiYDTE7?= =?us-ascii?Q?NIaROIrl+uJDgww/POjTNPkXAFnzQO2sL7rQvvJuWlGytNk+lv/EogwmJzoA?= =?us-ascii?Q?tXIkYThISC+EeVvfnAEXIEeGoJTO2GDRIesuirP9SCXu/v+hVtdzma0XWTyt?= =?us-ascii?Q?ACbhz4rHHUjISFtCBgCOpISh2z+MPBQD3aE5wCsCSOUIDfU5HThjI5tFtZPg?= =?us-ascii?Q?K0WW4LlL23A/sfbXqK5lXGtilgh5k85kTx1BQ91tysud5fNj5EOfjFgyZ5uD?= =?us-ascii?Q?uoBRRBRe3NT/kgKavh9Z6QE9YpC0Eylz5Pvf40LDyq4qVNUPUp9NzT3PIyl3?= =?us-ascii?Q?Dy0RyVpcVVDzvcEudkxR7ITfbttz9uo2GJA5l7X0adBxS3edtX4/meDsFKOG?= =?us-ascii?Q?5vSmCFltSdjNDBS9udynv+NHGVYn1pNBBEM4ieEHP57ETa5XJ8PihGhMdSH+?= =?us-ascii?Q?bm7B+bWuKaq193zhaVS3AtAdQ3LD4ZPBYRlv5cfXwI1xkMMV8MXB3WnDGDK/?= =?us-ascii?Q?0PBluIEAEIj2eoHK1IVTmTw7ajELXHEoSpaIkS30rE8r5tCUhlWnWdbsgzCu?= =?us-ascii?Q?abtpB2vlkp5Gvm/xwlVJf4kJZCEm893ic98EBl1tbgyEG+VqMQrLIjsM709J?= =?us-ascii?Q?Ff84JnyMxnulyiVt+CM+gmwfdEw8RYzo3l6t9e6/vJ5GAzstlTLUUz88A0WM?= =?us-ascii?Q?cpGNEqc6+r/oRKIXHa3oOd1MlTrS82thKPcXO15o?= X-OriginatorOrg: vivo.com X-MS-Exchange-CrossTenant-Network-Message-Id: 95dbd8e8-d89b-47e1-a113-08ddca8e8ca3 X-MS-Exchange-CrossTenant-AuthSource: PUZPR06MB5676.apcprd06.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Jul 2025 08:46:15.2081 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 923e42dc-48d5-4cbe-b582-1a797a6412ed X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: Bmh0JuZiUiUeb6p/W7hO2rsnxDnHWo5jizMgg62toXVINuZ9KbIY+hQ+5erdMuCYwJCl0JmfrCCXYcO2RmvqbA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PS1PPF2A261C07C Content-Type: text/plain; charset="utf-8" In try_to_migrate, rmap_one as well as the done and exit hooks may require more information from try_to_migrate to assist in performing migration-related operations. This patch introduces a new migrate_walk_arg structure to serve as the arg parameter for rmap_walk_control in try_to_migrate. Signed-off-by: Huan Yang --- mm/rmap.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/mm/rmap.c b/mm/rmap.c index 66b48ab192f5..2433e12c131d 100644 --- a/mm/rmap.c +++ b/mm/rmap.c @@ -2261,6 +2261,10 @@ void try_to_unmap(struct folio *folio, enum ttu_flag= s flags) rmap_walk(folio, &rwc); } =20 +struct migrate_walk_arg { + enum ttu_flags flags; +}; + /* * @arg: enum ttu_flags will be passed to this argument. * @@ -2276,7 +2280,8 @@ static bool try_to_migrate_one(struct folio *folio, s= truct vm_area_struct *vma, pte_t pteval; struct page *subpage; struct mmu_notifier_range range; - enum ttu_flags flags =3D (enum ttu_flags)(long)arg; + struct migrate_walk_arg *mwa =3D (struct migrate_walk_arg *)arg; + enum ttu_flags flags =3D mwa->flags; unsigned long pfn; unsigned long hsz =3D 0; =20 @@ -2575,9 +2580,13 @@ static bool try_to_migrate_one(struct folio *folio, = struct vm_area_struct *vma, */ void try_to_migrate(struct folio *folio, enum ttu_flags flags) { + struct migrate_walk_arg arg =3D { + .flags =3D flags, + }; + struct rmap_walk_control rwc =3D { .rmap_one =3D try_to_migrate_one, - .arg =3D (void *)flags, + .arg =3D (void *)&arg, .done =3D folio_not_mapped, .locked =3D flags & TTU_RMAP_LOCKED, .anon_lock =3D folio_lock_anon_vma_read, --=20 2.34.1 From nobody Mon Oct 6 06:32:11 2025 Received: from TYDPR03CU002.outbound.protection.outlook.com (mail-japaneastazon11013018.outbound.protection.outlook.com [52.101.127.18]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8491C285C81 for ; Thu, 24 Jul 2025 08:46:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.127.18 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753346785; cv=fail; b=hH5D/4EPq9ZDftIP8Jetq4Dz0IO6FWBZCe5NyLF5HGf6iYZWYCM1fM30yB5TOVl24B7UCuacWZipotxfde4glmlfJe5oCse4UiZ+VL6MLq3CeaGk6aJTR2EvWdkEI+cUGIe7OzzbXaRbDhiJuRSiye5sRgrVJfeZhKLb8vziuc8= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753346785; c=relaxed/simple; bh=eegS62Ka8gOj2qFGeAupE5unbYN8yUWVik35vwn1Kjw=; h=From:To:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=KGJDYb1DK5W/wPzLcxYVmj4+tklLMRlo+/WCUqAC6CPdD8P/wqx2IDuF8OaijGkhAQrBtZ/YEdfcYsd9A07MsihxVl2FgHqXLrVdDKrzu/7FJFOLXKenrycqzJHqhTR3y/Fo+oDqJx9sJkXBAqYku3esn7hRPdRJsr83KAJdC4s= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=vivo.com; spf=pass smtp.mailfrom=vivo.com; dkim=pass (2048-bit key) header.d=vivo.com header.i=@vivo.com header.b=p7sf7qHL; arc=fail smtp.client-ip=52.101.127.18 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=vivo.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=vivo.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=vivo.com header.i=@vivo.com header.b="p7sf7qHL" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=nabecgFGNt+4V35sh+BlWsl1zic4nCLWYB7Rkujmwa2stY7TZjejm2cvs97vCDQzEmuJiEwwOd8gRkqqWC7Xid3FPzxfNo+Wyko14OagM81Azk+0R8GeOx/dLUA/p1xbb1F4tck2sH4LLnmgN6ed7vDF8voTBjUaIYysHxIcW+kZFKbgoghl+lsLTEVh615M7oSSLCxcQK0a4PHEwU20Z3a3E43FhU9vkAdrA5Y7GdjzU1Lme6R9vDqKzTyyo3gNFyAfr0mZL4Y+dHBiCCegRW/aXkpJzY1kcWkCPNWeaSHEgTv54C+YCkF9b8TfOniw0jYwnFh83+3rL67oo80sPg== 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=HGewVQ0hIgVjWInkYlPJJ7fIWpgVBdLoeoJ178mAeo4=; b=n/7h0itNPBK+Irg7ZM57H8Ex24V9Q1b3f1d6uQUfigiZ2uM1di0wla5ZJGEbFM1Z/ykOo6ApoLU1Aw8guKiTcIHAXex1nUaJ9dQsiVR+lBSSRiaseH1vE+7qOl4kGfqYxWBQuzLJiblfloOiFKm1F3m1E3HwkDg2yLVAAAVeXNcDKVPcQWpC1xFT60HZvMDg3zwdLLgvZEYENXFm7PmKMWAhfZEZdxyoWV8KLUCmYGDXL3Tf9jQmVbbt5HYMIg8S5mmnXWOnl6xdASIafG+MWnfQK9Ileh1sidwXWRzW4eH7vZN4FK0Oq3lotJUP/AP4GgJ32VU/c3yJeIhpA8FV8w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=vivo.com; dmarc=pass action=none header.from=vivo.com; dkim=pass header.d=vivo.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vivo.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=HGewVQ0hIgVjWInkYlPJJ7fIWpgVBdLoeoJ178mAeo4=; b=p7sf7qHLtC9oLPtWrSX5gbkwg6X4eze6CKO7ReB3L47+oq8/euL+nA3ZziZEKD2Qu2L43O+MIb0Cmm4xheW5DI/ToisRY2ycCbSNaHRhfNmlKU+Bz5IbsKXVu81DFhlmJXgWOVygF0HWnPBHAeu1fjejZyVR/QxGt4gKiGXWjw096I4pWyyK+dl8qTeWKbzYsgbWXSFMmj9/TJ7KeRDIgBG9yp+lCyj/aQZPpigMF3bUI7czP9V6G/NtFBacJ5veXolQnCWzLmEFwtC2hqNkHPkbEJD1qQ1alvojmwDELSsv8n4oMomhZA8CHqe2rdguNgeM4vVAaLkNUJv51J6eWQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=vivo.com; Received: from PUZPR06MB5676.apcprd06.prod.outlook.com (2603:1096:301:f8::10) by PS1PPF2A261C07C.apcprd06.prod.outlook.com (2603:1096:308::247) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8964.21; Thu, 24 Jul 2025 08:46:21 +0000 Received: from PUZPR06MB5676.apcprd06.prod.outlook.com ([fe80::a00b:f422:ac44:636f]) by PUZPR06MB5676.apcprd06.prod.outlook.com ([fe80::a00b:f422:ac44:636f%4]) with mapi id 15.20.8943.029; Thu, 24 Jul 2025 08:46:21 +0000 From: Huan Yang To: Andrew Morton , David Hildenbrand , Lorenzo Stoakes , Rik van Riel , "Liam R. Howlett" , Vlastimil Babka , Harry Yoo , Xu Xin , Chengming Zhou , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , Zi Yan , Matthew Brost , Joshua Hahn , Rakie Kim , Byungchul Park , Gregory Price , Ying Huang , Alistair Popple , "Matthew Wilcox (Oracle)" , Huan Yang , Christian Brauner , Usama Arif , Yu Zhao , Baolin Wang , linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: [RFC PATCH 7/9] mm/migrate: rename rmap_walk_arg folio Date: Thu, 24 Jul 2025 16:44:35 +0800 Message-Id: <20250724084441.380404-8-link@vivo.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250724084441.380404-1-link@vivo.com> References: <20250724084441.380404-1-link@vivo.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TYWP286CA0006.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:178::16) To PUZPR06MB5676.apcprd06.prod.outlook.com (2603:1096:301:f8::10) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PUZPR06MB5676:EE_|PS1PPF2A261C07C:EE_ X-MS-Office365-Filtering-Correlation-Id: 06f48bf4-07a7-4626-68a9-08ddca8e900e X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|52116014|7416014|376014|366016|38350700014|921020; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?yx5sOMybJdMGjKUmU7XbUpCapv3tU/fW2km2ryex7tj9XMs3Qjb2A3wuyZ6w?= =?us-ascii?Q?o5Dg5QqzW+vRV7OFDu6mInTEHF559mEMPTM2D8Qo8xXgch5/YsR81B1mQAMO?= =?us-ascii?Q?yxrJZzL1ObRD/0dvk5k3GPeyXphg9aVbC54is9lxg7KS1nrH1wFswN1rhAEk?= =?us-ascii?Q?/OqngHIRn5LBnySxmEnThyT5tk5p3i/p14err5nIw9p1+cPu/C/tVILzfSaY?= =?us-ascii?Q?hHwE8yKLD2Axwarxqd+wyc8+AgYVgPdRt8Z7BE98frbM3xahpju2Bc//NHH6?= =?us-ascii?Q?vDK3O03ffLOh7EtbAQADMKBKdX5+CS9C4nm0wPBw9bOmZyNoONCncsvB47vE?= =?us-ascii?Q?D6EdV4msewt/TKcirA0Wg1vLpFwyw28mXDAAJ2QM9WEVctODv5bONfiSmJVM?= =?us-ascii?Q?wwQ79wloTfEqr/OH9swWdMLaxKtdYjRovTjnqNwvJ+lcRHm/t5ZDnSrwDwEj?= =?us-ascii?Q?8hC4RCx0SXT+TlXa1VxMEbWjIAWJHAJq63hz0J0Z8R9hEburuf7F0q3LqdDP?= =?us-ascii?Q?fBvMeyTnmBijGFlHJsrn0UAMnSv25pIsR+01pniDC2sknZy9D+BG1mrNtF19?= =?us-ascii?Q?RhlGMrh4AEdLUdot1EXOon3vLKWiugRr+YVbggqrtNGcEFjnnVJ7XArxFfx+?= =?us-ascii?Q?KCgMUVI3l3Xu0K0Mh81rmLySj443p6lcYJhft2TYtwYmTO8vZz/qN/9uRnl6?= =?us-ascii?Q?PK4Buxo9Aun5R6XQp+YpMvSJLpCNgApH3S9/q8KPFeCMQVlOJH9JSxV+WOV/?= =?us-ascii?Q?ixet6Sa17K/Dbs/yOgTxHVRugNORSHNE8DTm00p0qDgK68kW2JRlDoMnZF/h?= =?us-ascii?Q?xCzSRmBeTw5PxTRB7mb34grIlM3kdThnlo11p/pkQEewnrK6/X6qkgTjPhs0?= =?us-ascii?Q?KBCMwDsp1aDA3Ngx/+N7QfkN9bGWz1dQTBEtL2l4vK6B9HZd8fUJTYY13/JF?= =?us-ascii?Q?X9J0DKY9KyL+9K6yTZEIS/LaMh0IG/Tc9zySmm+WHj5hvO6jta36BtDrydUp?= =?us-ascii?Q?W8XPBU1kmN/la0Mp7+M98Cq4tvBy8wu7M5EPX4e6Lw9JKAZt/LFhSDrIXdfV?= =?us-ascii?Q?4ctIIqkCsb505DrncMyOJlsoWnqo4eIZWv8G0YaH+lpqo1Z5N+vJ5lfQ0Ii8?= =?us-ascii?Q?FNM4RO83/V06u3IFcF4spjmIqtNYSxPlfnDImlTgAm8gSZOGYwFkNkfFuyng?= =?us-ascii?Q?IllOpUKeAp0FI0j5HDacHgeUz8hgf5QHCbLQB6SFU4d9zWQngSnk5FshN1O0?= =?us-ascii?Q?ZXB/8Nrq3ZSFDG/jGWEYgoP4iLepvEGZJvFOHLRogxvxqnXm3d490+m0C8gu?= =?us-ascii?Q?xQ5k/cnepRRpNMYgWB+XH0vLc6m6gHOPcmTr9wf0DLAWDXbk5n4lIa/i0Yoq?= =?us-ascii?Q?kt0sI1Gvpx7FVm2bTJs6AHR4/ERWqR9qENUuzdmGOWsFB8dj7IXSEKV8FG7w?= =?us-ascii?Q?xzZCjycbareVdHHA2O1N3qCh3iW7A4IMdbtM0i1MFFPWYk0Z+gy/w4bMcsYs?= =?us-ascii?Q?aPyJLdySVUZ9okI=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PUZPR06MB5676.apcprd06.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(52116014)(7416014)(376014)(366016)(38350700014)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?BG7QdO07zovQh09GuPfBoUvM6Am9MI0Qr7zhXnsTdu6MJT16pfANIR12w4N5?= =?us-ascii?Q?EmlyiF27BNTUyApF4s6YgTEva6PZaI81Dn9+AA3u6L1w/Q4N+Gm5UPp0KoG5?= =?us-ascii?Q?1CPfDFtrlUNvhyRK4MN92Zxv91Y2xp2h37TG/pvoff4hML82bKB9fj53rxg6?= =?us-ascii?Q?fGGM0eOim5XJ23iD4Aq6W0NXw6Kg/sQCER3wr0uv/hXTL2nTWsvJB+zeClax?= =?us-ascii?Q?s2g7mDCRwK89Rn+upU9aeYStOSmfv0wNm+yP4MHGPyM8lAEyYCERSySfl6ve?= =?us-ascii?Q?ZSC5v2YAmipyAgRLIHDek6aNGZHv7nttxtRSAV7ushSVJ1UUssJ8c2KmG/TB?= =?us-ascii?Q?Eiyli8UzZOgiEDvXeVBGy+yJQKcl8vjks0GGNuV9h9j78krWBzJbMw0NvLVx?= =?us-ascii?Q?/d132b+sMz6/YuLYYxUn1fYwflF9U0xWRVlmNGatc/+b/3AQQ46PARhy3gvW?= =?us-ascii?Q?KWLQ3TajO3Nh7ZuHKRL5+U9tsj9YVYhO3deJfzJt/nxRWlFKB626sqkI0cj/?= =?us-ascii?Q?GUDE55rk1ywP0aKeqtlDhzgxXIrQesuxgOgPtCvuFrSdz/UQdCaCk/keBFih?= =?us-ascii?Q?q9yEruUKVD+HdLTTn4NMBJotHWiAPJf5s0y1AgVOwj46mmZ/QwVTJNxQ2WHj?= =?us-ascii?Q?RdXimIf8vUvV02xs55Iy+t5VIPFGhxeyaysvflRhqjPJjKEiuZDHV4jUELlU?= =?us-ascii?Q?/6XqakzgEcqt115Ud+FJbDM0JVsi0ENGxSBCNF2/+aCzewdaYTwcoi99XEQl?= =?us-ascii?Q?HvumN02T2euzcDcZlZ1s9n+e1z9vhuc8wEGraF0YbI9HDt5eDH8cvBHEpwvU?= =?us-ascii?Q?sUMoDD8ybUpAetc8yyh4Iw5zLvDbo2brz42qL2yIRvHA7E1YgiQu4ENfVJPn?= =?us-ascii?Q?ObelBCEBGXrLTNxCxv+oMHb2B/QD9iQWWj47RAOmajhYKa1Q7lMcxcC+K7/0?= =?us-ascii?Q?4cj+NB0/Qz9FUc2Yzszx+fLZF/REU1+8pWpTtU2vqay351OH/HRzOUk/mtSC?= =?us-ascii?Q?9HghVPQ4GmhGs6KwGrE1r8I9YKlfRhv8bAskNAXMJ8ybvh9Ns+U1lkBhymj9?= =?us-ascii?Q?gi2iDt7cbYrF9NxBRhxvdgdPuo0nTkUjj/A81byP6YnU7ISb7ViI3JKgbUmo?= =?us-ascii?Q?WuSrbGu10H8+rv/p6sR3r0Rwk7JpTn3ZEOsMLsomcLPBOV8GptQaH0IbVX7Y?= =?us-ascii?Q?36mG5kMz5ifMld+oQrG1r+l3IJcEAWy+aRX1ce8gFOqZ8ealgfFXd7hcc7wz?= =?us-ascii?Q?EKdqOTCWgkl1uKxGhLGppKPsLF0d54sIex9L/ia56qJUROJra/DQczsck92p?= =?us-ascii?Q?wFy+axecL0zKP56jALLj5YC6YqkZ97K9NKG4mMGMtvJjKLFJ0r8hjiZ3AoCy?= =?us-ascii?Q?3W/0DxrtWagXrYFx75GNOmqObXgiLn+FgxvE1q9kQvbnbAd/Q6kDYRloL/dt?= =?us-ascii?Q?eTNBpzp9lTA1KPIbyVGfBz51EA0TO8ff1Eni3UlxczgtMKKB7y2pVswkOpoI?= =?us-ascii?Q?oOKeS7y53skABkeIcUkZLe+d18wSsthTdB6D2LoH6a4FA+vXFz+UXTrTpm8D?= =?us-ascii?Q?txkhvQpQAPs97CTjKO8UlBE7pwVoQxPlCr3+K8wQ?= X-OriginatorOrg: vivo.com X-MS-Exchange-CrossTenant-Network-Message-Id: 06f48bf4-07a7-4626-68a9-08ddca8e900e X-MS-Exchange-CrossTenant-AuthSource: PUZPR06MB5676.apcprd06.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Jul 2025 08:46:20.9295 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 923e42dc-48d5-4cbe-b582-1a797a6412ed X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: +VgfJ0wgxRtrfbNBrSWFQ+ILyQLs7leIhPk+dHbGucwM5AUY+4gb19vYtMQYEI5zvR8IZo6Jpcr08d0vF3b81w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PS1PPF2A261C07C Content-Type: text/plain; charset="utf-8" The current naming of "folio" in rmap_walk_arg does not clearly reflect the actual role of this parameter. This patch renames it to "src" to distinguish it from the "folio" parameter in remove_migration_pte. No functional change. Signed-off-by: Huan Yang --- mm/migrate.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mm/migrate.c b/mm/migrate.c index a5a49af7857a..a5ea8fba2997 100644 --- a/mm/migrate.c +++ b/mm/migrate.c @@ -230,7 +230,7 @@ static bool try_to_map_unused_to_zeropage(struct page_v= ma_mapped_walk *pvmw, } =20 struct rmap_walk_arg { - struct folio *folio; + struct folio *src; bool map_unused_to_zeropage; }; =20 @@ -241,7 +241,7 @@ static bool remove_migration_pte(struct folio *folio, struct vm_area_struct *vma, unsigned long addr, void *arg) { struct rmap_walk_arg *rmap_walk_arg =3D arg; - DEFINE_FOLIO_VMA_WALK(pvmw, rmap_walk_arg->folio, vma, addr, PVMW_SYNC | = PVMW_MIGRATION); + DEFINE_FOLIO_VMA_WALK(pvmw, rmap_walk_arg->src, vma, addr, PVMW_SYNC | PV= MW_MIGRATION); =20 while (page_vma_mapped_walk(&pvmw)) { rmap_t rmap_flags =3D RMAP_NONE; @@ -349,7 +349,7 @@ static bool remove_migration_pte(struct folio *folio, void remove_migration_ptes(struct folio *src, struct folio *dst, int flags) { struct rmap_walk_arg rmap_walk_arg =3D { - .folio =3D src, + .src =3D src, .map_unused_to_zeropage =3D flags & RMP_USE_SHARED_ZEROPAGE, }; =20 --=20 2.34.1 From nobody Mon Oct 6 06:32:11 2025 Received: from OS8PR02CU002.outbound.protection.outlook.com (mail-japanwestazon11012007.outbound.protection.outlook.com [40.107.75.7]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 83C6A2868AF for ; Thu, 24 Jul 2025 08:46:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.75.7 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753346791; cv=fail; b=CkBPy04rKyz9B5vEik5IrWemHs0rU9MCKI60PZVKNXSUkPnxhkbxUsJmNtdc2iKRtofvRZ+C/QSms5ICg3hlVaXiXO7gukpPTUkHs+lD2LsDbf2rBGLh6QhAKirSf2N9xL3MUByek/L2JvTf1kB9WxcGPYSBm9siY5KG9InJs9Q= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753346791; c=relaxed/simple; bh=x02k+JhAVTErUrfcvKa1xU6dqi85THefOSCpcEKAMkY=; h=From:To:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=sdTFhRFqc6QscXYLFzdeCjhmKBfJRkK34OkcQ/kvEWopWTG/ImONrpboKM+xKT7jiXYR2E3egTVxHSdp54E0KhASRiWlXigWQF3FFNpFwKNW3ZD+93wrcqogkjYHxBbyEp9eFlwbnhjylcEe2mUtsOjj5pGgB0stl1PbsF0AjOI= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=vivo.com; spf=pass smtp.mailfrom=vivo.com; dkim=pass (2048-bit key) header.d=vivo.com header.i=@vivo.com header.b=QmEXU/t4; arc=fail smtp.client-ip=40.107.75.7 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=vivo.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=vivo.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=vivo.com header.i=@vivo.com header.b="QmEXU/t4" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=BzNS9pfja8A5Bivzi3XkeUha3UHB19c0XZIqiUGU22f+zavhYlDmMhpvi0wyB6IOIol1GDNUL7i9CgrS22RMBBE0OxPTgGHWi2M/xFnTGp/MxLWcPfW8Tr3x7BsH6fwKem+McR8VgxWPLZZUrV1ObmF7YLI8gYUUoe88SBjo8wGGvolZWb4ZklJ7n4rkNIrXoVm9Zf1euShkZH2bJi6ukVU6c8MomBP9iqmNJSL4DAb45RBvxnieCo5n9Ne24hqTSL8v9B2HjY7UZ3zmdw5lkU6+JnTnn1zYMXyZF5mHyVKtNJDeCjFkMwdlpjyyqaOhhGtRrwPPKrpXzpF2KSfW0w== 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=IwNo3dl1GUwICQBnaJ0mzBgWxy8F4CLh2B/grSd7Ezo=; b=VD9aOaWfPiuaJpHtOmaJDPYV8xvHm8YiMKV/kJuZQvNVHHgAiYi8xh5vcYwE+AXpSc3Svf4N3Y9lpIrYawN5GBrKZFN185UASMsY8pnXp3lXeJ3ZdAPZL+HZmaaApDvwj4oSIiC/l29OQJdPh+ft2TdahCx0Qp3F6q/AswspOpktR44ZRnAtTs5aRLjURE9GLo5SeK0InlYLEKwLRVPDq6Z00ad6I+nQc6gJCbqaBnmLKOfae8A0DQ7MhhshoC6aCay/JLT1DuNX9tsxou8rRdbFH+rcf1IEUWM0iH+RFmN96/thH+X6G+0mMQvjQYiWOOotnXpseOQrycn6qjvXgw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=vivo.com; dmarc=pass action=none header.from=vivo.com; dkim=pass header.d=vivo.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vivo.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=IwNo3dl1GUwICQBnaJ0mzBgWxy8F4CLh2B/grSd7Ezo=; b=QmEXU/t4p4AAiQd3aHt7DovSpPN0rC/UZ2DjY9VMly9YlPDCeijh++PNQhQAnr5jpP1lYMrGbIVGu/tVhbEZgg4LODqjBwqMBgHMwqSMttOqsqyip9OoMllCE2dx2RZxLFklZMV3dMB0BUq+W8GM6raVNWN0D75irhLKLD2mILAqpDo03EexzA3vnb2eBMx8+DjsicIBdGaTF7DBNAB1MZrnAcsjd4b0LogR+pDU4ZRBlKURg6prApbdEKAAq8rg+u1w0ePWINwclH/CSrcYxyJtUWLtcOycKFLHc0OvYQ7SDnHOvYUNRVr6/xQfAkLd87GsKQ8pAVCBaytMMWynLg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=vivo.com; Received: from PUZPR06MB5676.apcprd06.prod.outlook.com (2603:1096:301:f8::10) by PS1PPF2A261C07C.apcprd06.prod.outlook.com (2603:1096:308::247) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8964.21; Thu, 24 Jul 2025 08:46:26 +0000 Received: from PUZPR06MB5676.apcprd06.prod.outlook.com ([fe80::a00b:f422:ac44:636f]) by PUZPR06MB5676.apcprd06.prod.outlook.com ([fe80::a00b:f422:ac44:636f%4]) with mapi id 15.20.8943.029; Thu, 24 Jul 2025 08:46:26 +0000 From: Huan Yang To: Andrew Morton , David Hildenbrand , Lorenzo Stoakes , Rik van Riel , "Liam R. Howlett" , Vlastimil Babka , Harry Yoo , Xu Xin , Chengming Zhou , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , Zi Yan , Matthew Brost , Joshua Hahn , Rakie Kim , Byungchul Park , Gregory Price , Ying Huang , Alistair Popple , "Matthew Wilcox (Oracle)" , Huan Yang , Christian Brauner , Usama Arif , Yu Zhao , Baolin Wang , linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: [RFC PATCH 8/9] mm/migrate: infrastructure for migrate entry page_type. Date: Thu, 24 Jul 2025 16:44:36 +0800 Message-Id: <20250724084441.380404-9-link@vivo.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250724084441.380404-1-link@vivo.com> References: <20250724084441.380404-1-link@vivo.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TYWP286CA0006.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:178::16) To PUZPR06MB5676.apcprd06.prod.outlook.com (2603:1096:301:f8::10) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PUZPR06MB5676:EE_|PS1PPF2A261C07C:EE_ X-MS-Office365-Filtering-Correlation-Id: 6289bc47-4441-45c2-404d-08ddca8e9382 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|52116014|7416014|376014|366016|38350700014|921020; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?G8/46DmULk/PLQUrZdUlru1KTB+wkvcDv1GBjU35g4wfydWh4908jxV8Bylv?= =?us-ascii?Q?J5qDX4N4VhUn3mlLwayxJ+0jLBhLhUFPlEvfbPUYJE1P9inm/gv4E4GDrJGD?= =?us-ascii?Q?ZiO3RiF3wmF+QhYnJMbPh2hdKZ3piMOmC70POS8icRgIGlN6XaMtuHCL+rDk?= =?us-ascii?Q?fV7E1xrZqd2ldCxPvF0zATZNHFH8jQXslA/CL3rKGa99PmluVfu/HswgmnDB?= =?us-ascii?Q?T7WxetMwt69xsX2xQBknhiRu8XMs7yDLNcE7tJ7hqpycwMLoqn8h8MiQG4yl?= =?us-ascii?Q?Cj1v/vjGNKvcacE3KiIGW5Zwf3brTRFVqJe6dbKMXbvHHUEx25WBrXWYWaTp?= =?us-ascii?Q?bjZ3XGZ3ArF6B1V5UvpdD4NIBUnDWHQkp8RUhYbkZ8fg2ObCtGyE1RQFMt2s?= =?us-ascii?Q?m1rTMeT2Ua3RT2XUsMk1pXGVeqfJfji0GurpKS3BNU6Y+i/APK5AJTrX5Qjp?= =?us-ascii?Q?3uVScwuwfXJDTS1Eu+eTKhIzbCgGyz5+BEN6uGtPlR+yeDHeoiwS2Q2ShLs/?= =?us-ascii?Q?38uq5M4f0mCI/eMxvHabj0sgDccONWlRSiNdKXzz9Bo1LHyt3EkHdAFpq4Bq?= =?us-ascii?Q?qjIxxHWTj9ayo/6UmFocBZrNKbyWV1Mj9qypRIZU7JlIJTcI+ate9ZSAvUuj?= =?us-ascii?Q?IzWiOtRXk4q0Dl/PELg+UIfqSECpCmvAD8c22y3pQyA7gR/qITy1NTZ6Iv9I?= =?us-ascii?Q?JlGN0tqnnCi32OC1tskMxkwU2+Hs1hI2F6UTbgdcK6enSW5SBHNPnQ8Okflq?= =?us-ascii?Q?NaopFUnV/0bHXi4+MYvHple2Dg7Lns+tx+4xVXSZnyHLvPDmZug3OqwZHBCO?= =?us-ascii?Q?T/pv3XKkiYf40XZpqA6E+PBuOQvI03i4bZKnOiG6aaxLS6QzHubTWoXFcbEm?= =?us-ascii?Q?gv50cYlTpgMytYZyyJoWDWezOvOLZLf302lq/P5YSv0NNpQE6RLRr6ekCwMs?= =?us-ascii?Q?ObfUatNEVfsjd3J8JbBahg2NFM51w87PFZbSzRc2aCWaKOL90YvQdz28sMRh?= =?us-ascii?Q?nupIankvnlSWJi7Sn2orT4GMFN1XA0ZVjSEbYQWKdz1ZzxHzHrDx743hGXSm?= =?us-ascii?Q?HYnpb1vX4b0e7EvVwfb3xayFXmVAc9Z8cjH5vzBCZ8MOSJ7tdI3o8gHVZqMd?= =?us-ascii?Q?4/KzC+4A/30huFsRB0V7yMp513kumVh+62T70X103HtrOOL9zqdkJ4GCa7bC?= =?us-ascii?Q?+7dfXwjyXH5DojaNqNyy77YYSlSenoCLWBo9VYN5TDf/16fjI92r5OvjrHCE?= =?us-ascii?Q?8LXgEZF/b0aTiJoQo8tbZ5aNgrdNdpbsabc2zO3/5zVL2X9TrVqRwcQZQvsF?= =?us-ascii?Q?rK4VBlLF5pWTebWYuqa4I7WTPpj4q5VgY19QDM5b2X5S6c2UoCwCm/2kRCc8?= =?us-ascii?Q?QBfXenxM2zFO0AqrEBPdskFiCJacZnArQuwdpyd5JV2UCWi89hn43scBWE7u?= =?us-ascii?Q?cXPrXCROSvNm6WA8KKCPS00fKgt3CFhDwP0xMpUv6nc+17Rz8HUtE4vKiYoz?= =?us-ascii?Q?rBQVdMvx6UJbTHg=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PUZPR06MB5676.apcprd06.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(52116014)(7416014)(376014)(366016)(38350700014)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?Hp8gV4uRBfNCP6uFwlXAFRRJh22m+nt6h3XjWM2VO9MCJ3mnq9AWvbrRIDln?= =?us-ascii?Q?4SAO7TNVHqMWDqcs/pjGYO/ovXwSjrZARKAUTgZouxgR8qWAcDx8KiBwXV/O?= =?us-ascii?Q?PMjWUUj/1QRbATHCspEMC/lCT9IDpnH8OmWgbBFiK7Yo4W/2p/ng0FQeaJCU?= =?us-ascii?Q?Xqa5qKgo6LBMBzIMfYhqsONgCNKJqktc1hNFj+fXo0Zpqu/EBNLNS4qcQUnT?= =?us-ascii?Q?D1VVZE0tifr9/kkf63zoXPlDsEFl1Gw5ht9KZlEJPej5iUAbq4KwULAF0c59?= =?us-ascii?Q?j4dzVlYzf5a4mVfZDp3gg3BOJq6T5i/A9S+xC4FNBCOmGlJF1h/zb6z747eK?= =?us-ascii?Q?hcVhj2Ulp1y4yyCDthoxDHUb7X1GU3s841QPHPRMPx7C+UB4T2l79uS9Muzx?= =?us-ascii?Q?TuJECQwVEOvBu5RCDxOuXt7xwh9w2YVm0nw44eAUndGBFJnjxTuwgMKuLar7?= =?us-ascii?Q?azniOSFSjBBg/W/NElhhcjrL9SHdB8e7s4RrYv8GQym6U8tINSZEvgObOdnx?= =?us-ascii?Q?unXALvgWzdqLj92B16PUEvf5yyQpOCl8r3QpnaIWHltzBKsxC5+AlwkxhOvK?= =?us-ascii?Q?JsSNrP/RZlhtltEqaUrLCalkUY62o+gXI7j//ecJHX20uVCIkSvT0SkSZAcK?= =?us-ascii?Q?BdQmlSpsYfZQHW2mBdvYNSaKTiFbc51molUZzkB2BKHeqhqWi/S5+Xso+MIL?= =?us-ascii?Q?kwWheJohRW5ImFZ4ZdmcYXWvdguDqj3J9H6mMNX3X4Eo81tAFok44FZs0taP?= =?us-ascii?Q?TRLLFPpLJzMHCNc/+1ZVQKLRDrfKj0eBA0B8/RiNNH1vbNoejWyyZZBdAodg?= =?us-ascii?Q?cOeIzUkEshZ7GQe823p23/Y+iuNjP42ye5IOITWmj0f2m1uw4GAJg4S7oLmi?= =?us-ascii?Q?v6brA5gjFpqMuutXV7zEDxnz4oUE3/wIJIuBGBKYV1ElU0wpoEahARUcPPa7?= =?us-ascii?Q?JTjGGu47JzsHdhn6xYJ/uOERN6gICg0IBngim1yFus4swLXmWvpE8LyTBySh?= =?us-ascii?Q?FLAdOj7D/Wqb/f6C9wz0zvwVYqGr8gJlraYK+W6Ifv10gFUuszNzFHK0Zrkm?= =?us-ascii?Q?gtW0GWKAvReoXA9MdUGCJl2tzT5FJbrImQq0lgtJmwBHUdsel/p0Rq9jOVd1?= =?us-ascii?Q?2dkuG8r3KPTL6QduuNfmZAuCh3i9W7sa2qaLuQyxSkwfSHwcREY4lDsFW64f?= =?us-ascii?Q?XrX5KR392wcjY6hDYOAv9iEvisceAz+Vy41dntS+mCmLqyIRvEvNiWgTtNO7?= =?us-ascii?Q?s/t30RknnawMCFwg+f60Lhee4yv7ogbnQlPy64yztdU1ZUvf5vPlZApoHK0l?= =?us-ascii?Q?+2Q5ul6o+kuobm42hW4AkkJpbqAk/J0cf2Vr6ANYAHPGIMAeFlkIyEdW9IEe?= =?us-ascii?Q?XqTP4MyQfCW3kgz1av5W1VULcuX4+ZuSNBpBkNmilMsE2TEuo9nHMEq1sl0n?= =?us-ascii?Q?J806HFoWyYUJ3rrgBcggY79ko+X+pnmeVxVKVVlRrlP1OAbfP+U0lfs5jMu4?= =?us-ascii?Q?AkkMqzADLQTllofVe6om7sHCzauTTRXBp6R4WiQcAe0ec9RlOuMgjU7SakMr?= =?us-ascii?Q?RcGtpsEeQao9qVyn/xU2kEPD3oS8QK1xRLW/w+ll?= X-OriginatorOrg: vivo.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6289bc47-4441-45c2-404d-08ddca8e9382 X-MS-Exchange-CrossTenant-AuthSource: PUZPR06MB5676.apcprd06.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Jul 2025 08:46:26.7405 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 923e42dc-48d5-4cbe-b582-1a797a6412ed X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: bDl93xd7PAumwmTur2508skr2X+vX/UtW2eTPWW8fQD6psth+521umlwIlhX6xrsy3rN8X4Vm1R16iI9f3NRoA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PS1PPF2A261C07C Content-Type: text/plain; charset="utf-8" When a page removes all PTEs in try_to_migrate and sets up a migrate PTE entry, we can determine whether the traversal of remaining VMAs can be terminated early by checking if mapcount is zero. This optimization helps improve performance during migration. However, when removing migrate PTE entries and setting up PTEs for the destination folio in remove_migration_ptes, there is no such information available to assist in deciding whether the traversal of remaining VMAs can be ended early. Therefore, it is necessary to traversal all VMAs associated with this folio. In reality, when a folio is fully unmapped and before all migrate PTE entries are removed, the mapcount will always be zero. Since page_type and mapcount share a union, and referring to folio_mapcount, we can reuse page_type to record the number of migrate PTE entries of the current folio in the system as long as it's not a large folio. This reuse does not affect calls to folio_mapcount, which will always return zero. Therefore, we can set the folio's page_type to PGTY_mgt_entry when try_to_migrate completes, the folio is already unmapped, and it's not a large folio. The remaining 24 bits can then be used to record the number of migrate PTE entries generated by try_to_migrate. Then, in remove_migration_ptes, when the nr_mgt_entry count drops to zero, we can terminate the VMA traversal early. This patch solely completes the infrastructure setup for PGTY_mgt_entry, with no actual usage implemented, the next patch will do it. Signed-off-by: Huan Yang --- include/linux/page-flags.h | 72 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) diff --git a/include/linux/page-flags.h b/include/linux/page-flags.h index 52c9435079d5..d8e80d5ae1f8 100644 --- a/include/linux/page-flags.h +++ b/include/linux/page-flags.h @@ -957,6 +957,7 @@ enum pagetype { PGTY_zsmalloc =3D 0xf6, PGTY_unaccepted =3D 0xf7, PGTY_large_kmalloc =3D 0xf8, + PGTY_mgt_entry =3D 0xf9, =20 PGTY_mapcount_underflow =3D 0xff }; @@ -1125,6 +1126,77 @@ PAGE_TYPE_OPS(Zsmalloc, zsmalloc, zsmalloc) PAGE_TYPE_OPS(Unaccepted, unaccepted, unaccepted) FOLIO_TYPE_OPS(large_kmalloc, large_kmalloc) =20 + +PAGE_TYPE_OPS(Mentry, mgt_entry, mgt_entry) + +#define PAGE_MGT_ENTRY_TYPE_MAX PAGE_TYPE_MASK + +static inline void folio_remove_mgte(struct folio *folio) +{ + if (!folio_test_mgt_entry(folio)) + return; + + __folio_clear_mgt_entry(folio); +} + +static inline void folio_init_mgte(struct folio *folio, int nr_mgt_entry) +{ + // PAGE_TYPE value currently do not support large folio. + VM_BUG_ON(folio_test_large(folio)); + VM_BUG_ON(folio_test_mgt_entry(folio)); + + if (unlikely(nr_mgt_entry > PAGE_MGT_ENTRY_TYPE_MAX)) + return; + + __folio_set_mgt_entry(folio); + __PageSetMentryValue(&folio->page, nr_mgt_entry); +} + +static inline int folio_get_mgte_count(struct folio *folio) +{ + if (!folio_test_mgt_entry(folio)) + return 0; + + VM_BUG_ON(folio_test_large(folio)); + + return __PageGetMentryValue(&folio->page); +} + +static inline void folio_dec_mgte_count(struct folio *folio) +{ + unsigned int nr_mgte, old; + + do { + old =3D READ_ONCE(folio->page.page_type); + + if ((old >> PAGE_TYPE_SHIFT) !=3D PGTY_mgt_entry) + return; + + nr_mgte =3D old & PAGE_TYPE_MASK; + BUG_ON(nr_mgte =3D=3D 0); + } while (cmpxchg(&folio->page.page_type, old, old - 1) !=3D old); +} + +static inline void folio_inc_mgte_count(struct folio *folio) +{ + unsigned int nr_mgte, old; + + do { + old =3D READ_ONCE(folio->page.page_type); + + if ((old >> PAGE_TYPE_SHIFT) !=3D PGTY_mgt_entry) + return; + + nr_mgte =3D old & PAGE_TYPE_MASK; + + if (unlikely(nr_mgte =3D=3D PAGE_MGT_ENTRY_TYPE_MAX)) { + // overflow, can't reuse PAGE_TYPE here. + folio_remove_mgte(folio); + break; + } + } while (cmpxchg(&folio->page.page_type, old, old + 1) !=3D old); +} + /** * PageHuge - Determine if the page belongs to hugetlbfs * @page: The page to test. --=20 2.34.1 From nobody Mon Oct 6 06:32:11 2025 Received: from SEYPR02CU001.outbound.protection.outlook.com (mail-koreacentralazon11013016.outbound.protection.outlook.com [40.107.44.16]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 13AF4287507 for ; Thu, 24 Jul 2025 08:46:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.44.16 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753346796; cv=fail; b=LgfKccVeUXV6S6pIyVNvIRbCK8Fw/GxXMt+aPQuCOVIKipxyb1Mxe6jD63oBHlFMl4DqzCMg5fkleAl4Ax4WxepOox8ifsZ6K4UkqbNvNApqlDHUCHwhCejUTpp6YXlrx8rE5rxVURkVaIgc9Qwju7XKjEh9Y1ZyOCJ8kEiv21U= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1753346796; c=relaxed/simple; bh=7ZmZvtSp5iYqkaPm3LpbNT0nkr6iLUFW+9FVNUCNCFc=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=rA40SrkPBWdqpVSGzMWQnwutto+HVkai1g8WYkfD+rlsz8fjUk8SkwWAb1tyniLnoFOdLAtz5QmteJwy+KNS8Hr0armal/5l96EW33ibrCGg5V1TekcUIUtjQW1IH3UhYf7LG13i3mSxnjNrCFCfbgZhimOnKf17izXH5+TK4Ww= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=vivo.com; spf=pass smtp.mailfrom=vivo.com; dkim=pass (2048-bit key) header.d=vivo.com header.i=@vivo.com header.b=NYAyhpAu; arc=fail smtp.client-ip=40.107.44.16 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=vivo.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=vivo.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=vivo.com header.i=@vivo.com header.b="NYAyhpAu" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=sLKoiZUo3aavabzoH3W6HZyZ3kL2Qf9NKKzjU9y+xxZw4iQAd6HhDHdBopigKfzLs5T1LT6agXlMZHqdfjo+pvlG3sJYY7rh3ldGp5RIc0BUUqNIBCaogMOPjADKCGsWirn/n+0OpVtNsXC/SjQzFV4rgJtVWyD8I7Zp84DeuHeQG2I0B6RVSxy7hCXgM7yRZKLrf2ZIC85l9Lr889/r5wL1rhdkl9vmSUQAKqAyPwZKvobxapHa85eOm+N5Vr4bL7MsWNhTVpDMDawKR5kF0Z439iMUQHC0V5PxRAXfjckFu726xBrfGW3IH7nLGUqSdHLR7/RB7U9lvMpE4BQbBw== 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=JeGLSosyYKQqsd8zPFFEKYV08ZzaFUYy3qnuI6KtOPY=; b=KZW8DyL97D1xbQ1AO9dCEyk4dmgUQ2eaCf2R5DhhBMiKUmpadcU5Ca8hSseXJNe9xwzbzrf2kuV7v74cwb07MiH+4vIQ33T0wcjjqltNLhuIF81b96lBsl9tUmzQPhm/o118wPobWgOpuTnQRsWVQxqpECX4vyFXXV5LRlPjuQKp3/kePa2xRZ39WpdigDfkxCmDzkNIg5csEuYBQbhbOvCEtYMEeFXASCuPoHmCXY94Lf/tvD6x2uKyH6TPg0sHO99YkAG/4ZIqD4cC1KPw7IXHJlpFGr4XWFesepGfS4E2qRJ5bG0XDxPTo/QFynMj8CYDLNyOLjivmzdt958nCQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=vivo.com; dmarc=pass action=none header.from=vivo.com; dkim=pass header.d=vivo.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vivo.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=JeGLSosyYKQqsd8zPFFEKYV08ZzaFUYy3qnuI6KtOPY=; b=NYAyhpAuwMcJxdhVyqenvdUTzitQ116c/lq9vVyCNr0oGmoAxpheeozD1w1pBeV9PICIbueKRwWKu7VcdhM04FAdL0pP5C5Skqlcf8UUHOxXbJOdbOMcxT2QZmr0FPJ6I7COS5hx+DCdjPHB5oELn2QHLgNWjVb+NkDkjLSJWKrb4H0bDEExerpiapXmP4TRY8ZytCGVeaEqyTZ9veFNkWoe2QZDwcqDM9gWTkbE0SvMOLoHdJW8o3E4Pcda7qV780TLHEsSXQm1sgT4b0guB2tstamw5tXDWqmyOXuxorjkfxKrKIImjS072wfbIzaigAgR5lnkEkeUwJmicHq89A== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=vivo.com; Received: from PUZPR06MB5676.apcprd06.prod.outlook.com (2603:1096:301:f8::10) by PS1PPF2A261C07C.apcprd06.prod.outlook.com (2603:1096:308::247) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8964.21; Thu, 24 Jul 2025 08:46:32 +0000 Received: from PUZPR06MB5676.apcprd06.prod.outlook.com ([fe80::a00b:f422:ac44:636f]) by PUZPR06MB5676.apcprd06.prod.outlook.com ([fe80::a00b:f422:ac44:636f%4]) with mapi id 15.20.8943.029; Thu, 24 Jul 2025 08:46:32 +0000 From: Huan Yang To: Andrew Morton , David Hildenbrand , Lorenzo Stoakes , Rik van Riel , "Liam R. Howlett" , Vlastimil Babka , Harry Yoo , Xu Xin , Chengming Zhou , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , Zi Yan , Matthew Brost , Joshua Hahn , Rakie Kim , Byungchul Park , Gregory Price , Ying Huang , Alistair Popple , "Matthew Wilcox (Oracle)" , Huan Yang , Christian Brauner , Usama Arif , Yu Zhao , Baolin Wang , linux-mm@kvack.org, linux-kernel@vger.kernel.org, "Kirill A. Shutemov" Cc: Qianfeng Rong Subject: [RFC PATCH 9/9] mm/migrate: apply migrate entry page_type Date: Thu, 24 Jul 2025 16:44:37 +0800 Message-Id: <20250724084441.380404-10-link@vivo.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250724084441.380404-1-link@vivo.com> References: <20250724084441.380404-1-link@vivo.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: TYWP286CA0006.JPNP286.PROD.OUTLOOK.COM (2603:1096:400:178::16) To PUZPR06MB5676.apcprd06.prod.outlook.com (2603:1096:301:f8::10) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PUZPR06MB5676:EE_|PS1PPF2A261C07C:EE_ X-MS-Office365-Filtering-Correlation-Id: 79320430-d5f0-4344-d1ef-08ddca8e96ff X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|52116014|7416014|376014|366016|38350700014|921020; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?z9lYoGZqXYvpDc+8RbwSJLR3EuU22Van1oAqzd4DponrfI4u34IHAC+9CAY+?= =?us-ascii?Q?XPwJFTpGVBz7cF/2hRCJPfhbtX+N3ORjHo1JIq1w/AUs7lm5Tjv9xqzEH3Pg?= =?us-ascii?Q?QpbVKnLgLIZDGnwJ8LRdKIWg4MZs2k6xc/yjeSkurydDlUf2do9q+yrFQB0M?= =?us-ascii?Q?UKRVuFjirgngD85oByLrcnnoAbss4SL8zvTNyGfCl8tc8RC2AKDGQXQkbKQO?= =?us-ascii?Q?FA9ou2M6K8z+Gz0UifBDl4EwpKv8/Njh8eekhWGytOLcp0Ad9oTu4YuuvJse?= =?us-ascii?Q?7Y3//czHsFaVbc6cAFfbSxck4Z27YjDQwuB++KYFgz8dt1WQLXWPXrIbWd3g?= =?us-ascii?Q?hTN0546eWW5qkO/Nrg2O8j9nb8lD9usodHlxmS2jjypqictYVFVsJBnl6DHJ?= =?us-ascii?Q?X3463XIA9QhmFWLRbZo7IW07IpY/VzN3vT7CZw6k+ZhuOYtiBiBunQ4a9CmA?= =?us-ascii?Q?3cz7l1tseqsQE2/i/BldzPegoKLrQ+PiIu5qqoN0o4G6+B/GLe7UiCWvodJ2?= =?us-ascii?Q?O9LKtDDv0Uye+WVGBhKPZGoe5Uus64U+VIEKvhKJGIEFUvoJFFEcHFQT5ZSB?= =?us-ascii?Q?a02z8jIgWmAkKdz9RLwqa/kTivR46TyrsxAecWDMk8beMGl849l6b03HX5Nr?= =?us-ascii?Q?L7rkgObRkzJzHDtRl59IzrFoafSNbh/aXELxWd1DTksS3TIbNU3N0IWbgu5e?= =?us-ascii?Q?6p3QNjDIYsWFeMtfvw7FNmwc0KrsqSmmzk995wABgRXN5/9cZgFnFkLOuZu/?= =?us-ascii?Q?UTmThu70LVcSWobpeSMnt8gl2aPTqoJelS2oaYgQIntiUsoFmwpTCYYF+teY?= =?us-ascii?Q?CzA0J/0JpfV0unSCnxyvnwj6rtlke6K61+SLncSJ8iTf0DROggXYyCOdw2hC?= =?us-ascii?Q?vViZGG+44TTeohQMUv38K20mxg7li9iBoLCl3S9sjwnhgFy/YBN4agvV7wi4?= =?us-ascii?Q?GoTD8Vbg62tdRLecrlD7pEhtnFdb8PBB4MoQx8IfZz88D6yJ+JTBLpFs8iwS?= =?us-ascii?Q?sWSiqOvs0xdiurjO7m/rLnRPz/gMd3Gy4S+4RUPeWKzbfohYlNER1hNfPTUA?= =?us-ascii?Q?nKNJQBMpd+ocsQz7Wd1eZHbMlwKLwKVW9YZ8B80A2onAQvbm8PEx64AmIo+p?= =?us-ascii?Q?rftXXD0rGcHc+hh8qxPz15lbENF0hxEjIpesdATTC6wZYSX1eWLPcQoVeVM1?= =?us-ascii?Q?OsWFYJ6EDxDhRnxcpcyHvTW1w4mnPnT43aQdZLwTjYQg2CVmk6etUHy5Thi3?= =?us-ascii?Q?Be0rm0aC7calXc/VHi+h1YYwQO/voUTva+Qgc3CdnYcQYWRtFNaQiWuTxW14?= =?us-ascii?Q?gS1cGw9iZ7sDbg/e+DQbSfFb0QzVqz5b+75duHlYaC4N52tHRnc/rOqmwe9d?= =?us-ascii?Q?7KidVtpNf7Gfsa1BZL+5bTLEDlbPijlClZH3z0UzhgJRipClhvF3m8eYfSmR?= =?us-ascii?Q?ndzB43dJEErX919eWvmlqQky/U2hkEVZId4RKGNXRidD35UtIrQaaUUYJLYM?= =?us-ascii?Q?C0qb40Jkl7HIkQo=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PUZPR06MB5676.apcprd06.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(52116014)(7416014)(376014)(366016)(38350700014)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?aOeCIFtqjagl6TvXrHA+a3BVDmRLOJPNNJ7PbogCqP1whvPrNhCyCUOMnCjJ?= =?us-ascii?Q?fkwJoZ53yYG/y2OmJNM/nO5iejYP/yrFLY+kijiRljXFc6kzg6XQyweKsHyW?= =?us-ascii?Q?KDRHVJ0/2jrCij8oVzGh/bhBeCSX0qqH6WAwQoyseKfgn8761KrF4/oj/CqH?= =?us-ascii?Q?5lKoytspcxDkNAkk/aPKHF1Gf0ZtRm6bFitjwQOr+h+kNoKR02eMNguMy5C0?= =?us-ascii?Q?XLB5e6d7cxAx2uvvjOsRaufdx5NQwejFX9d+abKjE8Y9w0mjqkdCYI7HwIxg?= =?us-ascii?Q?v0LyEE3O5gkDz+TPqDHoBeL3/z/JSVkmC/Gx9kVdkRXEmotrO/O1aQ7B53sp?= =?us-ascii?Q?z1Wqx3eHg2DNP7CZfvPYG462dk4ytqntxBocJM6sP4Y0bNu3kcdBYcPjMxFB?= =?us-ascii?Q?jicFeBDHaicIfk752o9Qs53G234b1vty9jJdc8CzUo918Q8/CbpJW1q+mx3C?= =?us-ascii?Q?+o4eTM8F4ykfil7FBQNrBGm/88BmtvsmA2dZrsaCDbp2KNQ6wZBC3TPPAk8b?= =?us-ascii?Q?9sciiU4nNxfOoRkVY++FeTrShq9ekyyirtPua0N6HSNXtF7tXY97JXSN3Lh2?= =?us-ascii?Q?5MijDN7Rl6fbV9sJ2rTu3j3GaJeXdGsf2ghd17KxI5Bi6DaiKCL8+aveEF/w?= =?us-ascii?Q?jxdMSfmGKPCAC+aaiQTntRZAqfBTpEqpoKWOL87De9V8jDOoFYCP6ELaYrEU?= =?us-ascii?Q?pNTxiAbXHMzQBsymzZHOwdyrGXLOJ/fNjpudbnhaaOwsEN+4W9XHjM5/KfyS?= =?us-ascii?Q?1X+qp2bsCK03Pp+yQEMMOKmTTvGAhMmTL8UhFz+CRwYHk4D23AfvYwtsb7xx?= =?us-ascii?Q?FfJiwtGzrOwue7tD2vDGX4tQpMm5/mOQln+h8COekaEaLejP+bkIHCtEpkWS?= =?us-ascii?Q?Cf8ZmUctpwearmxSh6I1+zI1gRmdqlbDjgowX0LoWGssVlN1LG3lS0aPj+xS?= =?us-ascii?Q?cTCh9XVZduwHcZotT9ua5tUgqsEYsy2hpWAm5r3/1108ckIvrkVwEGM5nZ57?= =?us-ascii?Q?KU1U1m00Xx5Blh0IhNymNe2+6zUMi6GUEBL4rKqjorWHXQ669cI+6XzeV+J4?= =?us-ascii?Q?+XBFy4P9JEWOkeV5x2EaH6UmA7WP5a1NxsKsApAZYIPWipekY0kDJ/CsXAG5?= =?us-ascii?Q?f33zK2EFZEi5hY22FdG3zJ8v8mMaNukZz0kQjDM6DwPTHqcFLKD/kVPFa6YT?= =?us-ascii?Q?BAxaRjtDB4NWJgDwYMQisU7k3OdTsDFWfqtlKc/EF2LjjjhW97hmjKfWncGb?= =?us-ascii?Q?CGw8EPvFS8XME9V+907TfdLcYjdCPT0Lt+5n9bmfBB7AHRDMihVk1TKhlps7?= =?us-ascii?Q?r2wQLoZM0JSsosxTa3FzvsGchvQAN4mCX/Z7ZQg20yRAc+k9H9r/0nIxwOQ6?= =?us-ascii?Q?dTF7pVO/qf/kRZsae80XJJ15ccqDa0aL6jWQ102aC5dKTG08W2OnR2vBx34d?= =?us-ascii?Q?uUvONBrWCtOE8A1R0Tdg2ZrxWl7rReWBIDI4l4gzcT67XYjvLxaxjUvZpmCO?= =?us-ascii?Q?6V0IQJQ8alKbg1si+7SdrrGHUd0TF4yd3gdc9Zf5tuynAveZKiLAoZY1SX+i?= =?us-ascii?Q?NIKEKzfLKzu0GcvJxDZV+bPiR9eQd4XE6zRX8SUh?= X-OriginatorOrg: vivo.com X-MS-Exchange-CrossTenant-Network-Message-Id: 79320430-d5f0-4344-d1ef-08ddca8e96ff X-MS-Exchange-CrossTenant-AuthSource: PUZPR06MB5676.apcprd06.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Jul 2025 08:46:32.6000 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 923e42dc-48d5-4cbe-b582-1a797a6412ed X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: tIUzY5PXC5VbyhJ39CEoQDIDcOkWiiqjna22U92Mm9UhVhVFd/gUAQy3g9Q0qHwkMSGp1waWe06NM5vnuk2WQw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PS1PPF2A261C07C Content-Type: text/plain; charset="utf-8" When a single-page folio is already unmapped, we can reuse the page_type field by setting it to PGTY_mgt_entry.This indicates that the folio is in a critical state where no PFNs for this folio exist in the system, with migrate entries used instead. The lower 24 bits of this field can be utilized to store the count of migrate entries during try_to_migrate. It's important to note that we need to initialize the folio's page_type to PGTY_mgt_entry and set the migrate entry count only while holding the rmap walk lock.This is because during the lock period, we can prevent new VMA fork (which would increase migrate entries) and VMA unmap (which would decrease migrate entries). After a folio exits try_to_migrate and before remove_migration_ptes acquires the rmap lock, the system can perform normal fork and unmap operations. Therefore, we need to increment or decrement the migrate entry count recorded in the folio (if it's of type PGTY_mgt_entry) when handling copy/zap_nonpresent_pte. When performing remove_migration_ptes during migration to start removing migrate entries, we need to dynamically decrement the recorded migrate entry count. Once this count reaches zero, it indicates there are no remaining migrate entries in the associated VMAs that need to be cleared and replaced with the destination PFN. This allows us to safely terminate the VMA traversal early. However, it's important to note that if issues occur during migration requiring an undo operation, PGTY_mgt_entry can no longer be used. This is because the dst needs to be set back to the src, and the presence of PGTY_mgt_entry would interfere with the normal usage of mapcount when setup rmap info. Signed-off-by: Huan Yang Signed-off-by: Qianfeng Rong --- mm/memory.c | 2 ++ mm/migrate.c | 28 +++++++++++++++++++++++++++- mm/rmap.c | 17 +++++++++++++++++ 3 files changed, 46 insertions(+), 1 deletion(-) diff --git a/mm/memory.c b/mm/memory.c index b4a7695b1e31..f9d71b118c11 100644 --- a/mm/memory.c +++ b/mm/memory.c @@ -861,6 +861,7 @@ copy_nonpresent_pte(struct mm_struct *dst_mm, struct mm= _struct *src_mm, pte =3D pte_swp_mkuffd_wp(pte); set_pte_at(src_mm, addr, src_pte, pte); } + folio_inc_mgte_count(folio); } else if (is_device_private_entry(entry)) { page =3D pfn_swap_entry_to_page(entry); folio =3D page_folio(page); @@ -1651,6 +1652,7 @@ static inline int zap_nonpresent_ptes(struct mmu_gath= er *tlb, if (!should_zap_folio(details, folio)) return 1; rss[mm_counter(folio)]--; + folio_dec_mgte_count(folio); } else if (pte_marker_entry_uffd_wp(entry)) { /* * For anon: always drop the marker; for file: only diff --git a/mm/migrate.c b/mm/migrate.c index a5ea8fba2997..fc2fac1559bd 100644 --- a/mm/migrate.c +++ b/mm/migrate.c @@ -241,7 +241,8 @@ static bool remove_migration_pte(struct folio *folio, struct vm_area_struct *vma, unsigned long addr, void *arg) { struct rmap_walk_arg *rmap_walk_arg =3D arg; - DEFINE_FOLIO_VMA_WALK(pvmw, rmap_walk_arg->src, vma, addr, PVMW_SYNC | PV= MW_MIGRATION); + struct folio *src =3D rmap_walk_arg->src; + DEFINE_FOLIO_VMA_WALK(pvmw, src, vma, addr, PVMW_SYNC | PVMW_MIGRATION); =20 while (page_vma_mapped_walk(&pvmw)) { rmap_t rmap_flags =3D RMAP_NONE; @@ -334,6 +335,7 @@ static bool remove_migration_pte(struct folio *folio, =20 trace_remove_migration_pte(pvmw.address, pte_val(pte), compound_order(new)); + folio_dec_mgte_count(src); =20 /* No need to invalidate - it was non-present before */ update_mmu_cache(vma, pvmw.address, pvmw.pte); @@ -342,12 +344,27 @@ static bool remove_migration_pte(struct folio *folio, return true; } =20 +static int folio_removed_all_migrate_entry(struct folio *folio, + struct rmap_walk_control *rwc) +{ + struct rmap_walk_arg *arg =3D (struct rmap_walk_arg *)rwc->arg; + struct folio *src =3D arg->src; + + VM_BUG_ON(!folio_test_mgt_entry(src)); + + if (!folio_get_mgte_count(src)) + return true; + return false; +} + /* * Get rid of all migration entries and replace them by * references to the indicated page. */ void remove_migration_ptes(struct folio *src, struct folio *dst, int flags) { + bool undo =3D src =3D=3D dst; + struct rmap_walk_arg rmap_walk_arg =3D { .src =3D src, .map_unused_to_zeropage =3D flags & RMP_USE_SHARED_ZEROPAGE, @@ -356,12 +373,21 @@ void remove_migration_ptes(struct folio *src, struct = folio *dst, int flags) struct rmap_walk_control rwc =3D { .rmap_one =3D remove_migration_pte, .locked =3D flags & RMP_LOCKED, + .done =3D !undo && folio_test_mgt_entry(src) ? + folio_removed_all_migrate_entry : + NULL, .arg =3D &rmap_walk_arg, }; =20 VM_BUG_ON_FOLIO((flags & RMP_USE_SHARED_ZEROPAGE) && (src !=3D dst), src); =20 + if (undo) + folio_remove_mgte(src); + rmap_walk(dst, &rwc); + + if (!undo) + folio_remove_mgte(src); } =20 /* diff --git a/mm/rmap.c b/mm/rmap.c index 2433e12c131d..f3911491b2d9 100644 --- a/mm/rmap.c +++ b/mm/rmap.c @@ -2263,6 +2263,7 @@ void try_to_unmap(struct folio *folio, enum ttu_flags= flags) =20 struct migrate_walk_arg { enum ttu_flags flags; + unsigned int nr_migrate_entry; }; =20 /* @@ -2282,6 +2283,7 @@ static bool try_to_migrate_one(struct folio *folio, s= truct vm_area_struct *vma, struct mmu_notifier_range range; struct migrate_walk_arg *mwa =3D (struct migrate_walk_arg *)arg; enum ttu_flags flags =3D mwa->flags; + unsigned int nr_migrate_entry =3D 0; unsigned long pfn; unsigned long hsz =3D 0; =20 @@ -2548,6 +2550,7 @@ static bool try_to_migrate_one(struct folio *folio, s= truct vm_area_struct *vma, hsz); else set_pte_at(mm, address, pvmw.pte, swp_pte); + nr_migrate_entry++; trace_set_migration_pte(address, pte_val(swp_pte), folio_order(folio)); /* @@ -2565,11 +2568,24 @@ static bool try_to_migrate_one(struct folio *folio,= struct vm_area_struct *vma, folio_put(folio); } =20 + mwa->nr_migrate_entry +=3D nr_migrate_entry; + mmu_notifier_invalidate_range_end(&range); =20 return ret; } =20 +static void folio_set_migrate_entry_type(struct folio *folio, + struct rmap_walk_control *rwc) +{ + struct migrate_walk_arg *mwa =3D (struct migrate_walk_arg *)rwc->arg; + unsigned int nr_migrate_entry =3D mwa->nr_migrate_entry; + + if (nr_migrate_entry && !folio_test_large(folio) && + !folio_mapped(folio)) + folio_init_mgte(folio, nr_migrate_entry); +} + /** * try_to_migrate - try to replace all page table mappings with swap entri= es * @folio: the folio to replace page table entries for @@ -2588,6 +2604,7 @@ void try_to_migrate(struct folio *folio, enum ttu_fla= gs flags) .rmap_one =3D try_to_migrate_one, .arg =3D (void *)&arg, .done =3D folio_not_mapped, + .exit =3D folio_set_migrate_entry_type, .locked =3D flags & TTU_RMAP_LOCKED, .anon_lock =3D folio_lock_anon_vma_read, }; --=20 2.34.1