From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id C4A63C8302D for ; Mon, 30 Jun 2025 17:06:31 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 362D96B00BF; Mon, 30 Jun 2025 13:06:31 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 312856B00C0; Mon, 30 Jun 2025 13:06:31 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 18D0B6B00C3; Mon, 30 Jun 2025 13:06:31 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 04D8F6B00BF for ; Mon, 30 Jun 2025 13:06:31 -0400 (EDT) Received: from smtpin12.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 8D5BB1D7A02 for ; Mon, 30 Jun 2025 17:06:30 +0000 (UTC) X-FDA: 83612695740.12.11EB8E9 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by imf24.hostedemail.com (Postfix) with ESMTP id 24ED6180015 for ; Mon, 30 Jun 2025 17:06:26 +0000 (UTC) Authentication-Results: imf24.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2025-04-25 header.b=i9qzPL3V; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=sMNL1R+A; arc=pass ("microsoft.com:s=arcselector10001:i=1"); spf=pass (imf24.hostedemail.com: domain of lorenzo.stoakes@oracle.com designates 205.220.177.32 as permitted sender) smtp.mailfrom=lorenzo.stoakes@oracle.com; dmarc=pass (policy=reject) header.from=oracle.com ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1751303187; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=8+buwwMdLFNX8YL0RMH/ZZEYvn1T5mnYtRC89CTOmzQ=; b=iSKy9ISxwzgSJe92RstXRwGpjWsa6flI9jflkIy6xOKA/y6Ruv5YBJVw67eXvCJqX9EPFo qSVeQXl/JEjVAg2Lb4pD48FN5YTsAVeVh0WnuUFOCcMt+qN21wOeBWRUTVg8O6kXIqYL96 fykMADImnfaBmsV+imcj8wdkjpM2B1g= ARC-Authentication-Results: i=2; imf24.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2025-04-25 header.b=i9qzPL3V; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=sMNL1R+A; arc=pass ("microsoft.com:s=arcselector10001:i=1"); spf=pass (imf24.hostedemail.com: domain of lorenzo.stoakes@oracle.com designates 205.220.177.32 as permitted sender) smtp.mailfrom=lorenzo.stoakes@oracle.com; dmarc=pass (policy=reject) header.from=oracle.com ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1751303187; a=rsa-sha256; cv=pass; b=wKVZtj7ZMkVpDO+IT6HXM6Q1exTVvTGy7oGRYmRtxmFDD2BpBjctaE0/CpQOImrwf6VdvQ BReY+LiaJUJ6AdsKA2PlRY9cqMbjQyzt3wrIhQFugEG8Ox7CR1znBLuMWR7+SYYH28KlUp WiaHK++nBcm0sWPdneZ/5w4wDl8vF/c= Received: from pps.filterd (m0246632.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 55UEktm9017264; Mon, 30 Jun 2025 17:05:47 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-type:date:from:in-reply-to:message-id:mime-version :references:subject:to; s=corp-2025-04-25; bh=8+buwwMdLFNX8YL0RM H/ZZEYvn1T5mnYtRC89CTOmzQ=; b=i9qzPL3VgDmm+SCsNg2jg+rgNBOGM/IZbc 4YWaveK7ur/ecf+asKFkSY3Yl7KNfeSeigTApzN/cakigGSoM7PpGYJAVRE+tggn +HEMVgck5XGFOC9vfs4+ry3W/gk4DlAoSoO3u/a7jeCl9IOiX6z9rZsOFihW1Yjs tW4bBp9dX97ihbQJO79aiF3mXY1adT16gdY1jx2go6zLS/8ftFucFW+DuRDoToZ4 jY52JcSiHXd9VXmu8OiJVrcM5o8IAH0Hn/yfQl1YYvhjobzLr4Su/Q1vI8BlvaeE SpMLzL91WDcfOB/zOb5+alf9UvxPVeHrTs7j48QqKJKzoHAZ7AgA== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 47j80w2ydb-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 30 Jun 2025 17:05:46 +0000 (GMT) Received: from pps.filterd (iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 55UFZ9EI017418; Mon, 30 Jun 2025 17:05:46 GMT Received: from nam12-dm6-obe.outbound.protection.outlook.com (mail-dm6nam12on2081.outbound.protection.outlook.com [40.107.243.81]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 47jy1dby76-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 30 Jun 2025 17:05:46 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=XELJlYSXxuOroP1Tktsj7DtFypMLqe1Zx/vnmFPV47wn1lZ0b0KIDNWRiozZrxVlUslCJ9NfyVlx9dUKn+1U14aE94rI4Jco60H6xWawY/7TBEAFYhsZbFoDXoiZXQfi67pYlwKh9upEVURDRtrM7XWBr9/o1RRt9ZiEaWyrgsGdxZtYizzuWJNJekKB467OloLqiEUSem/Qwe/u2EsMXNi8DIsBTk7UAuSE5hawtIyzU6NY61Xll8eSpT/012icJR3oOYBNZLhlpOvhrP8kC9enjW5GescqkvWyr2BaNqVrI27CrMqtMDWq4MkiKaPpKLQybFKYcvXr4mt1JAu3ZA== 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=8+buwwMdLFNX8YL0RMH/ZZEYvn1T5mnYtRC89CTOmzQ=; b=Oky5wUNsE7+xsPQZXF+P9AlLywM4TfLXuh0AMBZRGhNZl+mkMpkR4JxfEq/bOaOn24NE6NveRB9CxJOwGVuQXoh5mBdqWRscFhulIBb/J0/mSSgbmHpK+Az29+0l3Di7NW/Xt2FYTPKiAWlL8C5Ei/l/V15BhoqhMcGnt923PpBjMDmpEprRgPIfwVfjmRR2VehDqZAWhWj5pGhHHSfVvFqB9FZc64XDedOWHHbWgnjTuRtddJtuv9RF6V7qwDwyDz4ghaMKW8RuM7zYdZi5MsjeY121F/LtTQWv2RHBpJvIZbZNPiG7hSzYT+DBcPxcN1YyIGMxf1IPEw19w2B5EQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=8+buwwMdLFNX8YL0RMH/ZZEYvn1T5mnYtRC89CTOmzQ=; b=sMNL1R+AnSFMW49+RahFAIqNdac/EWS2hbQDiKVTrpdfOKKHnI/FwGwOpX5gsloYgsN+m3KCaibTrItuVPIpVNabIbRYC2ieLUXmeUx7QXW+Jxg6PdlSuEV/g80Y1+KWNLlCOPUIJs79Mwero7pMngaxo5Fary6jpzCR5fSK9h4= Received: from DM4PR10MB8218.namprd10.prod.outlook.com (2603:10b6:8:1cc::16) by IA1PR10MB6170.namprd10.prod.outlook.com (2603:10b6:208:3a6::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8880.23; Mon, 30 Jun 2025 17:05:42 +0000 Received: from DM4PR10MB8218.namprd10.prod.outlook.com ([fe80::2650:55cf:2816:5f2]) by DM4PR10MB8218.namprd10.prod.outlook.com ([fe80::2650:55cf:2816:5f2%6]) with mapi id 15.20.8880.027; Mon, 30 Jun 2025 17:05:42 +0000 Date: Mon, 30 Jun 2025 18:05:40 +0100 From: Lorenzo Stoakes To: David Hildenbrand Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org, linux-doc@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, virtualization@lists.linux.dev, linux-fsdevel@vger.kernel.org, Andrew Morton , Jonathan Corbet , Madhavan Srinivasan , Michael Ellerman , Nicholas Piggin , Christophe Leroy , Jerrin Shaji George , Arnd Bergmann , Greg Kroah-Hartman , "Michael S. Tsirkin" , Jason Wang , Xuan Zhuo , Eugenio =?utf-8?B?UMOpcmV6?= , Alexander Viro , Christian Brauner , Jan Kara , Zi Yan , Matthew Brost , Joshua Hahn , Rakie Kim , Byungchul Park , Gregory Price , Ying Huang , Alistair Popple , "Liam R. Howlett" , Vlastimil Babka , Mike Rapoport , Suren Baghdasaryan , Michal Hocko , "Matthew Wilcox (Oracle)" , Minchan Kim , Sergey Senozhatsky , Brendan Jackman , Johannes Weiner , Jason Gunthorpe , John Hubbard , Peter Xu , Xu Xin , Chengming Zhou , Miaohe Lin , Naoya Horiguchi , Oscar Salvador , Rik van Riel , Harry Yoo , Qi Zheng , Shakeel Butt Subject: Re: [PATCH v1 09/29] mm/migrate: factor out movable_ops page handling into migrate_movable_ops_page() Message-ID: <6aba66e6-0bc5-4afb-a42c-a85756716e1c@lucifer.local> References: <20250630130011.330477-1-david@redhat.com> <20250630130011.330477-10-david@redhat.com> Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20250630130011.330477-10-david@redhat.com> X-ClientProxiedBy: LO4P302CA0011.GBRP302.PROD.OUTLOOK.COM (2603:10a6:600:2c2::7) To DM4PR10MB8218.namprd10.prod.outlook.com (2603:10b6:8:1cc::16) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM4PR10MB8218:EE_|IA1PR10MB6170:EE_ X-MS-Office365-Filtering-Correlation-Id: 1d5b3b6d-d6db-404a-2689-08ddb7f8586a X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|7416014|366016|7053199007; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?5tMmA5EejqR4gwzb6sXUVkbX0CEuNVJ+YRTIyO1QI44ArwR31efvXsEwI5nk?= =?us-ascii?Q?Lmujc9xzSyE4XJJYileAm/bWR3AgImpwf+h0J0cD/ubcrffiutN3zs8k0Dox?= =?us-ascii?Q?PpvrWYQhZhVoym/iVkWsTWxr2d9pDSCAjcv+bOLK21bR52NUBVyy5nksDeN1?= =?us-ascii?Q?tor0H3DMKOlldYUTrYLGEgTEepE3H8Zxb/5xuk3yiwD6SZ07ALhEyFGQfRmM?= =?us-ascii?Q?f9qIGucHQQREltkrRgLz8Vidgj1ObbVBfWAs3yuxxlXAOj1XepugZXtGv0C0?= =?us-ascii?Q?HOF3G87hcHOp1ilgcaZVzBZdXA8dyUIYIfRlZvxN8XJENr19W4N4m3kD0kCg?= =?us-ascii?Q?7ajpRR87kONiaBPoJQpMPgNyS6OmBjRzEC0VbAoOEpoGkZDqk4KYh2f1V3hJ?= =?us-ascii?Q?Gz/2hK5KFHYPslqkadsIuhqfaZB3ETdsRVhoULNMPQ7TaHLXBfnkliXcb57c?= =?us-ascii?Q?yi31q0WxNaw9MXbX0ebMgEcoP25bP7IFLxeqP7wpiW3Hkf506x5Z3dwXkC38?= =?us-ascii?Q?hHAkLW//V/jqdcS5UV7ND0MtqOA96x1zt9gwNKzBgu5G8FlSINcf0n0lWBWp?= =?us-ascii?Q?pS7y6HZX/0BPR0+IYWftxEd4dGkK5/G7fT7XJCPuaN5NO6+V1FGD130/cTDO?= =?us-ascii?Q?ZCrDHxTx8Bf21RuiN6sRA2w9s9Gp7j/LCjFBECMducJGrP8/mFbZlyNNnN+e?= =?us-ascii?Q?fG+1mh694dDsAqaJALQfqrrVlnPJfrEnssBq8/wXBdv7QANPNoIHpT4F1kfA?= =?us-ascii?Q?VLYZjvTcul5SkO8HIEALG3enfYvIotJbYyDUUNrMdAeEI9AFpzWM5ECpjfHE?= =?us-ascii?Q?iP4ViRKpCd9eJAGIGqAuPLMs/9Inp5meH4RWN/OrSZce53va9i6LFOrpPVjV?= =?us-ascii?Q?kFw06UsWpjZuBqkmv14KxRqWUOf+cM2Nhy5jD3kzrzZjB1vZdHRUcIrHg1Fn?= =?us-ascii?Q?FnTTeZmzKI0y/u4L5TtAFsj1CGMWLyJg1B/RwV2Dp05DEhnQiARqamdSIS5W?= =?us-ascii?Q?duVit8iJMiQ6wi88+jWWjLHwI/qyp4jcjm9f6sGCQwPpb2wUpfQW/TBeGoiW?= =?us-ascii?Q?+QE57GGbljR8GXS7FTZC0CaT2VXhaBd8nlT/YJgqBi4QEIAG7FIrKynPuVIn?= =?us-ascii?Q?OGlps0j1G7Ce2I6JkLwxnVr6em9HoLCAym6T+3FyV/KPb3SuTH64oI7WWB4W?= =?us-ascii?Q?n3t9c07VltF20MyjwkDt/Vk20q1NIXJ8ph4A2fN7D9cZraodD8qOQlqYGoXD?= =?us-ascii?Q?1H9sQ5Rl5u0FUo1GC04R0VFZw48slSaPJyzei7yyOT8CSj3Bz13AAVwT2xX7?= =?us-ascii?Q?v3GzJwe9v1Q2qoLahSjpLiyvWgC0z4jvPpL6V7+CL2XIG7ye/zTv+7E3nAhJ?= =?us-ascii?Q?kUXwA1cGT27E+pqyzjy/V1D8lEAk13yqgGxalPE7Ne30hRjVURviUIRgIWKN?= =?us-ascii?Q?6aWKGDhf6fU=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR10MB8218.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(7416014)(366016)(7053199007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?t91jtCueHF8/PAbak2oB0GzIo+abuKBleEkFtLAZ3qg3nTqSZzoPAKGhorFQ?= =?us-ascii?Q?KYomP7ZFEpUeahNkcyP7/du4UYJruHQC2J0kEeK/ALlbbVsnBlgnoBRq9WLw?= =?us-ascii?Q?McmoA45q81QJMjJVgMvvJ0fubRMhRVN0G7iPNqtrVpkr9gI4xP8mTRgNhGjx?= =?us-ascii?Q?CcvkNLnjlmGiss7oRjXxcVJXFvQamiM3LWqQDeBq2ItCsDFSk37jHi5V2Zn/?= =?us-ascii?Q?5wamoANsUOoYAz8XeDgrjHCgwFJkVY7V6T9+grOB17dIKl/wqUfTakM8b60n?= =?us-ascii?Q?T5nnu8Yntp9bz1PgjBEd6vCqp0jBX0G6YVpLN0GN9w3lPw8vWr0BkVFk8sql?= =?us-ascii?Q?9zULh0RfsXYjtAwssJJepW/SX5xjaSj5rVVBdXsbsYUvQuYY6wnJm5ecy/Xq?= =?us-ascii?Q?nEqdPgEwV06URSi6jmOXB9Hvj/XkI4hrxV+xgykHvb3CGoI/m9CjbNovHj4S?= =?us-ascii?Q?oglJ01y1bxQW+D0EnVXVhZbsw01oPj1cukitbBUbqEM2Wsu23aDAhbgmnmgK?= =?us-ascii?Q?JMjpGV2dSOPbdpxj/JmJiQBkfUKCoZAgbyBwZ1L6r9thlA8FlGbZD9wvksiI?= =?us-ascii?Q?aedHqR7scLmlwiyVxZpLDqleq+sqGWaVWFGOquRZqgIlUOR68OtTKoQFATnb?= =?us-ascii?Q?AuK9PBT/FmDiVNz/4kifY3P6EINYEC5MAb4SRS1zz4ZF/DoXqK98T0qzy3mX?= =?us-ascii?Q?Iy4ogKw50A2bbHXhf+Chyba8FdkyP9ht9ZKJiDcXAi69ejHLNlmb735Q2J1p?= =?us-ascii?Q?YDyBJIX3gipO4ZGqXEycP7jIkXJV+cXu9lZ14WmvjnFAr8lsqTqcPmsaLXJe?= =?us-ascii?Q?nELMTx3BYVxPPU0QO/exkfmBWDnckLqY/EPHiUXzGCWKtE7Pr66TSCPEeAUJ?= =?us-ascii?Q?gEHl5MDFcfll+iwpiK7C6VfyJXuywVbmoITekbx/3tbJuvShDxvmrODYCzWA?= =?us-ascii?Q?OqCeU084usxaIuDbW3vLdkXJkPBTiGwU3AGtOIbLpBok+s3lobiMd/svy8Af?= =?us-ascii?Q?vCQxDx3HelCMwvmgF73Z4boT/UM8SG6RaNkDfgdkLgkwuGCjq3Dh9paU+n49?= =?us-ascii?Q?xz2MImOrao5M2GfQPUGDM+9D2vhe0JY/eXkabi8pWlEMoxmir5gGDPE1GY6a?= =?us-ascii?Q?Vgife8NIdN/Z/WFtEu7lLWLYTQHDiB+Ax913tHqy2yLBt7yhB4+6RI3Tl/Tn?= =?us-ascii?Q?CUzrIiO1wx9ov5QAFGlLxut4u2p9Rz+ffqSc8wgn4KooWWdh4s9IAVoHsHm4?= =?us-ascii?Q?wH8/1PN8yneEBrTtX3Th/185H5i4NCmhVXoEwakZdhjJm+KwCS4xBrfB6/Ot?= =?us-ascii?Q?03CNCVGLYg1sn2ZVv4lE4hzehIeMQcqv4gZ0+luvElp8zS+XtyiFFLvZre8u?= =?us-ascii?Q?NMdrqlaf/VZdIVaaQ5E7JGy45s8ZFXmPfwK9mFh0nrAavbxBwZSW2JoKusuh?= =?us-ascii?Q?khtp2xOCy3G7Eqwr4fL19lrAu/I2Zx7YnZ2mUI9rZEBkSdPR32bR0H6s6XFd?= =?us-ascii?Q?4cuyqFQz9BuiV6UwLVyADgNO8pfxa2EQQyDK72rqyxKs4ZjEeYSNk/7R/Sre?= =?us-ascii?Q?+C4fUeSwFoaRFJau5BkgVMQMIO+mX9w+JpaNhK9F+e/FRoROgBogIm7lWyRo?= =?us-ascii?Q?fQ=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 4nRIdCLsXvoHPLNqaKLkCmP9ZFdXDoey+iHGtUv8okQ0Ii7WajC5ilLRR/DLc7Ne/Byy18lHq/318X0oPlxi6u3VlPDSwfQ+kAfyzTPUWYFgQPqHmoq6D1ESN5AFQJoHIuq+uvlqYZgE9cXPNjku+EQoolpQglZVeLit4SQZ36uSq/0xyE/gTN7Z7o53LGoE7wtLXZ4qmG6EW91ZfFUZSL2FpEGo0DJaYJgc2Fleybo2nHZ4B4yMtXxULnMIo45iHCWkb7CyZ5ET3jsZthlgCeUHJ3ALRdr6JKvsrgxt9DqxbpvT48y7m/Qsuhhzj9to8j97ALIWiWu3rMN1NYqTNu8rP0FWX9ZYPsQgDRVCaHljbOixtqLgpjjKV05GTk2BFFIYIK7rniFC1+sCORb1lyDRgT65Blwori+O7nhZmoubodPzZxCcmrrAVkAiOoUIHUrWr/MpvZF0isoLqzOxWWvn0GEbbc0zD5NzLum48Q5wvSHFkhZsGzCOY0ZdMNRq+L8crBkR1oHjiET1p6BDqxWMOQ12pw0ETbq68Pr81J/AVKdRecuBxnsjIPPALOpcqGU8VtWIDt/7jyaPTR7UDhYuN6sLEupAIM5yVTLwaWo= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1d5b3b6d-d6db-404a-2689-08ddb7f8586a X-MS-Exchange-CrossTenant-AuthSource: DM4PR10MB8218.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Jun 2025 17:05:42.1532 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: ZNwBtV43vAn6QK5siydCQgYxW7evRePErPbmoKv5K76NN6ms62oXLevTn9HMt6hpOx8B/nuWaoQns1R1x8Ux2nzK9kZ5UweHFkktBSa4jJc= X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR10MB6170 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.7,FMLib:17.12.80.40 definitions=2025-06-30_04,2025-06-27_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 mlxscore=0 malwarescore=0 bulkscore=0 suspectscore=0 mlxlogscore=999 phishscore=0 spamscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2505160000 definitions=main-2506300140 X-Proofpoint-GUID: mqtILnYzuFCDomIcBGRYtBTN9UKe-l7O X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNjMwMDE0MCBTYWx0ZWRfXwjwS0QZFalXo fPyE0oUmuJDJs+191zNEqzfQB8bj2p89dBYWes4YPNuiRSEerhq5mxOejmKDh3YPp5JNpUb+v9i KBE9XlFkleXqghqfo0SKDtD48zF2jvqjMfMA4GM64xDYg73xHuKm3vfIBZVizGZBIhg3+z9h6mo lARBpbDStHxBFtmbqXqpntHEuQduX8N/O2yzcJ9c1TQW1WLmKI66DCmDGt+UU35NDWZiRDYOCpk xyetbb1ZINIcHUUwm/obHATXaPZORU0fZ7f1msVEcEuhCElseI2WYCLJ2QJtI7N0y5e+ziKtd3C X55iRb2oyWA1pWwis2NQIScRc65eGtArkCMj07y6MAN+YpuFTWsGCWi63LNLQqrqUT2WI11/heR d6ksXr7+QSh14yTQQ3vBp+tPkTAAmneIrqQ0QVvWO83ecXc69HUCuWYAUJqBfAy4c1mJYeFI X-Authority-Analysis: v=2.4 cv=D6hHKuRj c=1 sm=1 tr=0 ts=6862c3ea b=1 cx=c_pps a=qoll8+KPOyaMroiJ2sR5sw==:117 a=qoll8+KPOyaMroiJ2sR5sw==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=wKuvFiaSGQ0qltdbU6+NXLB8nM8=:19 a=Ol13hO9ccFRV9qXi2t6ftBPywas=:19 a=xqWC_Br6kY4A:10 a=kj9zAlcOel0A:10 a=6IFa9wvqVegA:10 a=GoEa3M9JfhUA:10 a=Ikd4Dj_1AAAA:8 a=20KFwNOVAAAA:8 a=yPCof4ZbAAAA:8 a=I_m2BDi1HNbIkEHEblEA:9 a=CjuIK1q_8ugA:10 cc=ntf awl=host:13216 X-Proofpoint-ORIG-GUID: mqtILnYzuFCDomIcBGRYtBTN9UKe-l7O X-Rspamd-Server: rspam02 X-Rspamd-Queue-Id: 24ED6180015 X-Stat-Signature: ffsqj8jwg7y9akft1i6sguzcq1xzhbqr X-Rspam-User: X-HE-Tag: 1751303186-9175 X-HE-Meta: U2FsdGVkX1+EdutFG5T4uUjFZI2efJpJFtp/jNhulf6npAyhFVdY2grXUETc3NetaMbiUCATel7yc+kWNZyf35iDyR/bXLvLxI+GsyndT/A+RwAIF+O64Li8VhmUOWVfxQZ9+GzT5wg0/fWtg3wu6/0ALGrUTlGaIHsRdYUwv2XmuOFe5/xVQ4CXbV+z/nrvgAJEzmDWz7NaNhhb4NbVpxHG/6H3IojDOvAYQuRyLW/Q5BavkTN9ZAIa3ZwZx6e2GTgiXoIygdtIt7M9I6UqXDQgX1nPbbIuzS0lArsnugngiwZBX92vv0tFaNy1tAwfIpGxKu+aSNl7hPWCxBP8+7M0IfVIbWbBvQ8gHoBecn1Eu+y9eISdGDwa+qVp4fZ5aXqZdn31CzHj5TxjSLkDA+j3sYrL2KdFxsOYck7FbEFFzJgYuVxRdJtg0TWpjF0+hvNquYlgAfkNI6HxWcbme0z1zRG7iZc2HWj3ANYr0iZw/JKQugxQgFB81PnxFKnCkHvpiSSGFBWjIEwRvW0DJyann1dE+vg0KsJHSNJjYMS6JQVldP7bxZuOi8BPbzyUFf8VzLW+lQYbP5c7jvze66gpCzNaY9yIQPBhR1FDEpshScgjPYyrmF+FNpRtNRMnnXWL3bDfqgF6hNGssNJTIdQDJrV8yL75XY8Y0UHtn6aWan8tMQKpykhfnz2tfQ7SvqOce16rqvDLJcwRDRdJHkuDibRuCKnhOrLlbjnfCu94Cex7u+GNgZOA349Mw94KN5yzvmNkjEWZ0QXuxVMTQrQuz+jn14vWnsbvbazgfKMaAUV9UXELR3YJH0N1NJOU/P/PfhjTHIn5ox7IQElXVyS7zuFHmBmPC+XjQ8q2aOdBsoq7kegaVKhpMucU63izwc0Rd5CFW2yyjmNIVwoq8dYcChKFbpDFRqcnNUdAIhYdGfxRRcUvyv7f3xds8XjY+7IUXcKIfwzE7nAuZBb K0Z906ny Uo3iF/uYae4Sy6tzQxlWbvNiPRXK91vPLmhx9NMbISw8zhwu0eCeoIp2T1jCQQDZzD7OrBp6Sv4RTZoeoTiOeIfaKt/BF/NjUVXlfQ044p9goIibXal3zL3mJf6fpsri4gppszh04qX+AkkhYA7BMOA5cf6oh1ZypCgVDLxF3Nw9UPvveoMN+dQHFkf6Uqyqlmdzey8p/Ifi+kHjCR2Bm8/hzf5kaGDczLgUisnqgvAUCY39NQmXATsFwg4y0hVVBO9BywtUNixrTge07YHvqovG2xrbOaYUYyGqmiytI+R1bMHpg956GCmBXYckKSEhjQyV/TQeNOwwbBf0FFeEGrglH11NvpeVqBtJHctm32oCYI9jTsLgH14zZUehZ1OI4gAbmTBOlPlr+LjFhgxx9DrxVubMkaVFGAbwG2yquRmmUkqVL7eI4xxELmiFQoXKKqIGQrX5i0oBSEfQm79h6eWDOB17x3hqMr3tui3Of+00g5mOLuMQmoIF8OAVtMih1TeZdXzCgNmsgLm8QZCc/G0Kk+1ZOwx0gWVMaNrpjAiycqFmqbw9COLt9V3xErSBl6Evcvq9csTfY7zuquvHs8l6FeP80wZ/59kcNpdDl3fHY3/waKefAocR28yUzTZB68bLWoPmxlw4LrZPh5WNvThpwJTXCTkG6oCbxKWV5ccc1jH+aOJR1sNrTT5/z9OYJ0zPJfbWzMuaRKHqQ85qmHPaU6HIANvY8+sBEQqhPAvWvI3AJNo15AMWUyjlWttcFddIQZtUIdyixda7rxKN7W2g1SEBuykiZmpbuOuRWMM2btr9XGWLoG/Fr9MTwU16jYrsanhxHeBnmPjvWR9ACclYZZ0JfMM1OI1XlsmN2D/M2wpY= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: On Mon, Jun 30, 2025 at 02:59:50PM +0200, David Hildenbrand wrote: > Let's factor it out, simplifying the calling code. > > The assumption is that flush_dcache_page() is not required for > movable_ops pages: as documented for flush_dcache_folio(), it really > only applies when the kernel wrote to pagecache pages / pages in > highmem. movable_ops callbacks should be handling flushing > caches if ever required. But we've enot changed this have we? The flush_dcache_folio() invocation seems to happen the same way now as before? Did I miss something? > > Note that we can now change folio_mapping_flags() to folio_test_anon() > to make it clearer, because movable_ops pages will never take that path. > > Reviewed-by: Zi Yan > Signed-off-by: David Hildenbrand Have scrutinised this a lot and it seems correct to me, so: Reviewed-by: Lorenzo Stoakes > --- > mm/migrate.c | 82 ++++++++++++++++++++++++++++------------------------ > 1 file changed, 45 insertions(+), 37 deletions(-) > > diff --git a/mm/migrate.c b/mm/migrate.c > index d97f7cd137e63..0898ddd2f661f 100644 > --- a/mm/migrate.c > +++ b/mm/migrate.c > @@ -159,6 +159,45 @@ static void putback_movable_ops_page(struct page *page) > folio_put(folio); > } > > +/** > + * migrate_movable_ops_page - migrate an isolated movable_ops page > + * @page: The isolated page. > + * > + * Migrate an isolated movable_ops page. > + * > + * If the src page was already released by its owner, the src page is > + * un-isolated (putback) and migration succeeds; the migration core will be the > + * owner of both pages. > + * > + * If the src page was not released by its owner and the migration was > + * successful, the owner of the src page and the dst page are swapped and > + * the src page is un-isolated. > + * > + * If migration fails, the ownership stays unmodified and the src page > + * remains isolated: migration may be retried later or the page can be putback. > + * > + * TODO: migration core will treat both pages as folios and lock them before > + * this call to unlock them after this call. Further, the folio refcounts on > + * src and dst are also released by migration core. These pages will not be > + * folios in the future, so that must be reworked. > + * > + * Returns MIGRATEPAGE_SUCCESS on success, otherwise a negative error > + * code. > + */ Love these comments you're adding!! > +static int migrate_movable_ops_page(struct page *dst, struct page *src, > + enum migrate_mode mode) > +{ > + int rc = MIGRATEPAGE_SUCCESS; Maybe worth asserting src, dst locking? > + > + VM_WARN_ON_ONCE_PAGE(!PageIsolated(src), src); > + /* If the page was released by it's owner, there is nothing to do. */ > + if (PageMovable(src)) > + rc = page_movable_ops(src)->migrate_page(dst, src, mode); > + if (rc == MIGRATEPAGE_SUCCESS) > + ClearPageIsolated(src); > + return rc; > +} > + > /* > * Put previously isolated pages back onto the appropriate lists > * from where they were once taken off for compaction/migration. > @@ -1023,51 +1062,20 @@ static int move_to_new_folio(struct folio *dst, struct folio *src, > mode); > else > rc = fallback_migrate_folio(mapping, dst, src, mode); > - } else { > - const struct movable_operations *mops; > > - /* > - * In case of non-lru page, it could be released after > - * isolation step. In that case, we shouldn't try migration. > - */ > - VM_BUG_ON_FOLIO(!folio_test_isolated(src), src); > - if (!folio_test_movable(src)) { > - rc = MIGRATEPAGE_SUCCESS; > - folio_clear_isolated(src); > + if (rc != MIGRATEPAGE_SUCCESS) > goto out; > - } > - > - mops = folio_movable_ops(src); > - rc = mops->migrate_page(&dst->page, &src->page, mode); > - WARN_ON_ONCE(rc == MIGRATEPAGE_SUCCESS && > - !folio_test_isolated(src)); > - } > - > - /* > - * When successful, old pagecache src->mapping must be cleared before > - * src is freed; but stats require that PageAnon be left as PageAnon. > - */ > - if (rc == MIGRATEPAGE_SUCCESS) { > - if (__folio_test_movable(src)) { > - VM_BUG_ON_FOLIO(!folio_test_isolated(src), src); > - > - /* > - * We clear PG_movable under page_lock so any compactor > - * cannot try to migrate this page. > - */ > - folio_clear_isolated(src); > - } > - > /* > - * Anonymous and movable src->mapping will be cleared by > - * free_pages_prepare so don't reset it here for keeping > - * the type to work PageAnon, for example. > + * For pagecache folios, src->mapping must be cleared before src > + * is freed. Anonymous folios must stay anonymous until freed. > */ > - if (!folio_mapping_flags(src)) > + if (!folio_test_anon(src)) > src->mapping = NULL; > > if (likely(!folio_is_zone_device(dst))) > flush_dcache_folio(dst); > + } else { > + rc = migrate_movable_ops_page(&dst->page, &src->page, mode); > } > out: > return rc; > -- > 2.49.0 >