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 2BF87C369D1 for ; Fri, 25 Apr 2025 11:11:10 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 87F206B00A3; Fri, 25 Apr 2025 07:11:09 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 82E326B00A4; Fri, 25 Apr 2025 07:11:09 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 6A7AC6B00A5; Fri, 25 Apr 2025 07:11:09 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 4A3A86B00A3 for ; Fri, 25 Apr 2025 07:11:09 -0400 (EDT) Received: from smtpin28.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id B466280423 for ; Fri, 25 Apr 2025 11:11:08 +0000 (UTC) X-FDA: 83372299416.28.7FE9CFC Received: from NAM10-DM6-obe.outbound.protection.outlook.com (mail-dm6nam10on2065.outbound.protection.outlook.com [40.107.93.65]) by imf15.hostedemail.com (Postfix) with ESMTP id E1B32A0009 for ; Fri, 25 Apr 2025 11:11:05 +0000 (UTC) Authentication-Results: imf15.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b=IVv+ZGM5; dmarc=pass (policy=reject) header.from=nvidia.com; arc=pass ("microsoft.com:s=arcselector10001:i=1"); spf=pass (imf15.hostedemail.com: domain of ziy@nvidia.com designates 40.107.93.65 as permitted sender) smtp.mailfrom=ziy@nvidia.com ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1745579466; a=rsa-sha256; cv=pass; b=rVmDK3yxBrfXQo5Qb4zhpMirdy7YdZSdaAnVXhqpw/3/SQQd9579kwjBVj6xOmPo+jtAUz 0PlglqIrzsv4c0Nlw544aBX9JBXfXIUD/2CqgvdASQ2XBIEhnjtvWW/kpsd7g+tkzAvNmv qMitHsaK2uLjBsX5d1W7XjLyI76x9Wc= ARC-Authentication-Results: i=2; imf15.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b=IVv+ZGM5; dmarc=pass (policy=reject) header.from=nvidia.com; arc=pass ("microsoft.com:s=arcselector10001:i=1"); spf=pass (imf15.hostedemail.com: domain of ziy@nvidia.com designates 40.107.93.65 as permitted sender) smtp.mailfrom=ziy@nvidia.com ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1745579466; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=08BOKeEdAMbf09lu7JAL7DA6qxeMIXXA3soKomPtjB4=; b=eNyEhPRr+kZUQW3e2B+PoT8BpSM1RjbPX+vTST9gCYPOs/reUDigLrjZix9QscydmvXPK9 8ocDaLMM5+ewV/HaxQ19Ogi+8BDEKn1U8WNtjWmwg3UKkN2/SMANxEue3MrGFlzrY1B2pM wtwhonSNkdrFIZrNy2sx5JD7RCp+amE= ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Ko7e2oJa6JHvKxjd8uzDQ2SbRvb8Wxn6xHkfoW5pu5XXZexvLRzHLlaqvjaSQhWO1fqAfBTo9cm57o4vCVFEiqSwMSR9gsra4KXp87fqeSiZw0QBDeWmApoI4VS+0IFTlrZ2ELDvVUr9xbeAFj+0K4ugAXm0QB02x619bHYhN2Pc+9wSy0OQIQg2KaSups9aoadRsA/naXi0rcu3KDn84xsJwoBpEvCcBkH9zl4lJdo7A4hfXG+TEwjrYoONWcsuP0C5Bvdar4VKz1N4yDisUJlxTZs+1cyOVGlY4w67EkkHWUErvKgcogOr45fx8n2utNry1JHqsmF7mf28i/IjTg== 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=08BOKeEdAMbf09lu7JAL7DA6qxeMIXXA3soKomPtjB4=; b=hbX7rlGTfswYw1pVkZVnaawHBOvZBs8a9DwXd/RCydqTe7zz+PLdv6Onwhm6ig4Vd4NQo3q7/ZLjAF8F6JkhIVtjdFrSufibgITca1y2YFf5j16hx8rBV9y3WBf7jRisSgepE368EQQVZsNmjxHe1+GVcZscswnWq3K0brF2ztClWB26C38eqW+nvhrBaetptlW/MJMxELK7IV6z602pDKKoyssESExlOGBjKeUOVZjDSrwihzpiFzCchNkg0cv+iBmbughpRxNgiYH8QP7Wmt1a0eQWGWAb40BuhU+p/u7JlSyonZbpZ00aPTicTTcpPTfOz7+1fYXfs5149QEDvQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=08BOKeEdAMbf09lu7JAL7DA6qxeMIXXA3soKomPtjB4=; b=IVv+ZGM5xOwnPcr2fWhyrkE6Sn6x/uIdcrjt3JKo1MuCQwYPqTUt3NA73ELHfqcfuyENzh3VkNYSg4RnvbeSDLh8b/oKHk15gDq5LSEh/cbYuQ+2uxBeRC3j2AU1xOYb6w2zfOT65mBjKA7yAaDpohtzFjF851vBU0aFxcY6vRal3JE0cD4DicFLziUyTt/E2PiJwy0GAM92fAYTV+/CBPYhm2uCd2clxh8UK3qXDgMfRdK9Cr9fDEz8hti3pjiiga8SGX2thaWPGuxavlumHCvSkBbfpHehj0WwgxeoYyI7mL39YH3IbwqkiYwI0RgRr1ZJ4RjKMD/z2fzuWEV/gA== Received: from DS7PR12MB9473.namprd12.prod.outlook.com (2603:10b6:8:252::5) by SA0PR12MB7092.namprd12.prod.outlook.com (2603:10b6:806:2d5::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.27; Fri, 25 Apr 2025 11:11:00 +0000 Received: from DS7PR12MB9473.namprd12.prod.outlook.com ([fe80::5189:ecec:d84a:133a]) by DS7PR12MB9473.namprd12.prod.outlook.com ([fe80::5189:ecec:d84a:133a%5]) with mapi id 15.20.8678.025; Fri, 25 Apr 2025 11:11:00 +0000 From: Zi Yan To: Gavin Guo Cc: linux-mm@kvack.org, akpm@linux-foundation.org, gshan@redhat.com, david@redhat.com, willy@infradead.org, linmiaohe@huawei.com, hughd@google.com, revest@google.com, kernel-dev@igalia.com, linux-kernel@vger.kernel.org Subject: Re: [PATCH v2 1/2] mm/huge_memory: Adjust try_to_migrate_one() and split_huge_pmd_locked() Date: Fri, 25 Apr 2025 07:10:58 -0400 X-Mailer: MailMate (2.0r6238) Message-ID: <40B90370-92E1-4E12-979D-7220887CB780@nvidia.com> In-Reply-To: <20250425103859.825879-2-gavinguo@igalia.com> References: <20250425103859.825879-1-gavinguo@igalia.com> <20250425103859.825879-2-gavinguo@igalia.com> Content-Type: text/plain Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MN2PR05CA0023.namprd05.prod.outlook.com (2603:10b6:208:c0::36) To DS7PR12MB9473.namprd12.prod.outlook.com (2603:10b6:8:252::5) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS7PR12MB9473:EE_|SA0PR12MB7092:EE_ X-MS-Office365-Filtering-Correlation-Id: 4d7597e0-d03e-48d6-7fc0-08dd83e9dc57 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|7416014|376014|7053199007; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?HbcQdD9GfPV/jx8AZOWIopiB4lXyi/TxygYwXozcXLDpTPAYIa8IfK9eCdvK?= =?us-ascii?Q?FyPeOBSvxkZnSPclccHMXHia9Sryb2/Omnu20NvNdwP+D4tgnkT851/Eqq8f?= =?us-ascii?Q?80Vsb5MQTtWopB3wbN55eGZHGfCrvBjUFcaN+yz2I10gq981qaKmeNmYaNQ4?= =?us-ascii?Q?+cX/kjQuYwzndh3LAaWMFZQRI7Do4j7WW0uuj6bnmiYPJ4CvQmO+jTck9MhH?= =?us-ascii?Q?yp9XtRlDGCMz3NPNeYTXnqKNpFqfVnQ96jRxkgarkM8pI1IcIxMvFuOQKXoX?= =?us-ascii?Q?KZYeGZYbTlXFIeUj0PtmHW0Vz4RjxGU/rJtVAf+I+iLrGwWkoHPSxn29EuZz?= =?us-ascii?Q?GEti9C2/cxvy1o/wJ/mVVXox0aHe5U4BduKOXGUcYxP4n4w1/aFSdWHsI1YZ?= =?us-ascii?Q?WEg9/HwErAb/4Q5FoRTmcEaRrOFaMqaQTRKWtfwDxrqRZNSJ1mBgBPBA0cjs?= =?us-ascii?Q?qYRQbfD9hWOEKmOFMCeUBCjHhA4gLfKwxH71f0VYdSHL6LBxykQ6S9vo1wJB?= =?us-ascii?Q?PrWeGgWEMi1h3VFf9pKnZpzSwn/HqVCBKC0z+04W8jdb3E4yj28w8oM457OQ?= =?us-ascii?Q?Zndu/lzeLz0hzbyd4ELuTbxs8bS84FCrZ8FgtjTJ7SGTYaZbqjGcvE80Z7eV?= =?us-ascii?Q?3xan7DxIbSsWXdLw/pjaNg+1T3LDR/NKDgR8C7DwDPcUx7O6NAkxGx4gFS5W?= =?us-ascii?Q?hk33ug4PxQ4T9C0AYcEsJu+7ehG2NQsh06g6Zor46FP9gd052WfTkAvUiyLD?= =?us-ascii?Q?k/xyqzSYoxHMVAEm6UgxGDIeGi0s7P/+L9KOIuriBs7Yj4Jly4lIH6VaGkEX?= =?us-ascii?Q?h6h1QlOncyv1GfZI4ArTLMzN+AlclWZfcZ62VJpF+Oj/hUgjW9g2f/GwncpN?= =?us-ascii?Q?E7UicT7zX37Qtf1oBi4zcuUUyVKJ1VNPIAtJWS97gyXlCzX4cpuvTFei5TB3?= =?us-ascii?Q?durtdNs7j31jez3u6CzlrGQD/lzrPQk905b61Mo6UI4G3Db6wClG6FCDhixq?= =?us-ascii?Q?NyrklR678KE+BT4pzLiIsGdb5kpVqnt1hNPN7pTH4JiP5e0DO5kA88B2BI7w?= =?us-ascii?Q?YQ/0sDd+Tq1HI1C2RGRiHhKq8+W8p85bsZEi3EeEzXngGNhVJOuf9p9yURSm?= =?us-ascii?Q?kUlt9KL3HHBTrcoErf91FWDY/vG1m9UPHjJUjVQ6mskGIlsPLi2ow9cETMPB?= =?us-ascii?Q?3GY/JnYz/dLyocaXf6Wb/S7i+KiYh57R8WcPlQqzKjRLwxLQ1dkYd3J7PbkN?= =?us-ascii?Q?HsNLzf/5BlLW2+OvtocTzRQwGherM1E1kQBujR1Nj9Tkxio5+JBaPKHN3eqb?= =?us-ascii?Q?bZ4bCUu2MoWYIWJm41oqTAkb+CTv/wH6I0lx1S/ezXHDNqHd0uRG9Llqtu5r?= =?us-ascii?Q?xvKtQ3lWYI9l2LXV9DPva9BirCZKKCYK5gShPLDsQVIOIIl2SVMufy92S+Cx?= =?us-ascii?Q?C1SK2MT75/E=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR12MB9473.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(7416014)(376014)(7053199007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?WcfzPfR9LYM+K933IY/mu1G/TiekyNsmQ8Io0ajUMznR3ihVOtt588HaLHVZ?= =?us-ascii?Q?cxFNkddtdEdwF+Qhlyy+xkFdTOpcKI+fYWsLBGlffqoNXaj+6dJ51l9EMXI4?= =?us-ascii?Q?F+qorO8L2yJFL4zFRXLn0iMIYj+SpLKRXPw4zeI43ORhRuNhTCKT2L14sDHC?= =?us-ascii?Q?zerOeZhk4Dqom3W5+Orxumufu97DSlHGe7kpewA1ofuiIYR5s0Hrkta610wF?= =?us-ascii?Q?keUoLC8TfHRtbdyN2cc3U39wI6LXXr5yCxkzikhqlVlgV+prIRnLhkS/0D56?= =?us-ascii?Q?gvVjWm+6xJdeivC40SME4FLTVnf00aRgwZsXjkn6wVrTx3PKDBVMr6YkKTFo?= =?us-ascii?Q?C0kb8NdCL3De9gjAw5fKVEh6ThSUPf2FyiSALM4c2WCJqxhPKVL92NYkYHmI?= =?us-ascii?Q?ZdtNO4umPH05eqE/EDy25S7A0LB3fOOE5GaNU+lqevXbUWIvmmLNQVqYR97u?= =?us-ascii?Q?jtpwabBRzr5WzQ1YtYf+xH+oJLvtsv4pEBTW2uuBPG9nq5pAMwQiXBFJ4of7?= =?us-ascii?Q?PpdSYBYrUG8U8xSXFc54P+5xUfec6yeZLMhri9ChmprZcNRWrvyW2f3lZxdo?= =?us-ascii?Q?lwQagHHmHnwHWL3Wy/27YAsFb7frmLisMxl5F4PyOLO7Uc3fyB/RQRdQwNsQ?= =?us-ascii?Q?6qN3DxTcKKxZi++ih+l9tZ43Vfr1yRe/wXRQJ/0JYECeWvjo30mo4de+DCnd?= =?us-ascii?Q?k6+hJPfOWTphJOMiYIk8I/lk/z3iUSxqxXrS+xz6iFxCFBpLekK/m0Nzf3nk?= =?us-ascii?Q?EPMH4FxcZpdHilEqPhf6bitxmaaSGGsCyJGxCvdFwAwbQiyAIwqlURf5VGJr?= =?us-ascii?Q?3gozEi/+9LbjihpdO4vLUGNy5rUdpBvG2E2Cm33gB7Lrb4sebj/XpT9H1LtU?= =?us-ascii?Q?WcFrIoToXpkCxA9ZEn4HH2B0+S2wRKl1CfP9Pukgfq8bd9GJ/RtFbnDtcTf/?= =?us-ascii?Q?eCN9pL+WoSw2PT+NH8qHLkTkoPCsA8gLKYhd6oJBVHnQDRN3mT4N451BVAcD?= =?us-ascii?Q?TTe3fq5IKf7ocgdt9L/kQdCOwjLAuC398F9ZIsxmW85p5t8/401mOS2f9//R?= =?us-ascii?Q?Pi+jlbKGy8F0Rrb/0ZIojCS3g43gXm53ZXEb3Ug4tPXgYfNbHexld1G54m89?= =?us-ascii?Q?P8IYBnstlwxm4BUM7amIPeqioeHWwSlhKVDfpt+iNDY4OYcGZV2zeup/anc8?= =?us-ascii?Q?ZamqgYwR8utBaSc8AXajxd2CEw+spKqzxB2u5lVuSOk1nmE1QlBGyL6X2+Bb?= =?us-ascii?Q?JcJXSM8sSeMYMFXS/UQAU5NYgs+4Fe8nHuJkYQCi6W0BQdCECG1Csa/27v4l?= =?us-ascii?Q?uYEJSRELlBChAyay6jsA+QUYWPgoa1ptQjTthk+11XVRafDDBUY4rWxTsio4?= =?us-ascii?Q?Oqyx2Q362MyHZHrAYiz7v5OKcLfueHgKsa7kuJsLknCl2diY77RDWX8/dEos?= =?us-ascii?Q?oWn5T2BSeWPsIVeboajvbQXh9ltxAzJpAo9o1KB4azNcO/z/iRiOSvtN9Z+c?= =?us-ascii?Q?Fh8NO4aKduOvpW/otuAFMUFy2PsKc8LK3zX4LMWT/TGU0uLIyL2sYIk887x1?= =?us-ascii?Q?2FkT2mtdJIfu19ILB6jMn5MejHc74+ge4BdkkHEr?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4d7597e0-d03e-48d6-7fc0-08dd83e9dc57 X-MS-Exchange-CrossTenant-AuthSource: DS7PR12MB9473.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Apr 2025 11:11:00.5053 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: q9Q/hvx8YzQlonf0hUocpMbtUCl7gRACGSoPaDKD09Hy1HZZ3JWaJOpxpCzvZf3k X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA0PR12MB7092 X-Rspamd-Server: rspam03 X-Rspamd-Queue-Id: E1B32A0009 X-Stat-Signature: 8u59yz89qbiit6p6os99sdbczpajen17 X-Rspam-User: X-HE-Tag: 1745579465-434796 X-HE-Meta: U2FsdGVkX1948v13eMKRd3HVFUzo8hUo0FclO3iOmhGMiYdFTZOHVNG9pYfHkBpNWu9FsSi7mIHfqceiHoJHhWy/QqG5ZbFh2YZxyt7hFY+RGqHNvOq19v4zvp7sZEt4urvK5NlJSxEgf1ZGNG5PBVclJz4TrsPAPC0TLEmRc/BXjTdTiWCWiaXbMrOe5FWDEEJTpPByGY+/Dyu0NLmK8B0fNZXvU9hnC9jznOfNXL2aLVk/vxObrUnQccrEJGeNrW1BMtRbGdfWtRHU2k1FsENto8I/ByoaaoGPrmKftGgo/Zo1+D9LKwHCDOBuY+vUNuOUXxbaN8oX/zm+Uh6wezaakpS3OHQbCfp1fo18o7n1O/ZhQNuI/Qymdz6n0wyFiVknzg2Yuo1F6litA+5trW2a5vLLsIDCmIkEihkQAw40JDlaXnQ8B/DxrOs8RIVfgqG8cJwfxPi5LVeGgAOOyV6D2hwFjPrfy5rx9q02MQLE0tcyjJ2FdnCzTSBLmwR3+POyqzDpcSNrzLZAlgMCFm7PaA6OCjzGFO/fwamGuMf5kZ907kLc2M9EHFzc4+80I75VG/7fShLAhyq4A5gNXMgA3CzIdCNC+JvcyO8hARxxESD4FC3iZLIBY8kINWRm98qh2IkWYIvvW/fmtAeJROy19RhC1j+RKy+ZFjdtPdnbXdupOrJCoj1yHFH3JmTq/8ZWf+mGnq3jNiZxly86nlyGr5J+cJQcq+nenJ1UMxosw96om+k0hnbh/3nlG7hfbrEnd1zZo8wCbDMpxrRRUKBhno3kjlt7IySOZ2kBAtmzgQRMx3shRFaUvvA2Vzy79TB5gy/LByOJ0FKNQ047c5lA4YT38T+7EQpdrWvVb3itRenbqutfQLfFKC3Yj5/7GEYY4CAXxKYTvBKNYnpLSESH8gketeZncbkPMUQwOLGqrDUHHFHW0jA0sI3YsfUYE25tJEQWqypGX5IEkpi sMvfB5Fd ucc0w+SKYYPt2r2cWxil1P4hf5zt9/rW2O83NLo1jzY2O99Gy+hqinibq+814Kv8Qhv6pu74UnNaa2GEo1609WvLKBHKxTzEQhA/Auz3g1jCJKDNgMHxGj7N5tThQhb5NsCG/TarfBakRk6I74XUotlPkiGpbgdI/lNDLP5wzjukVRbrcrBk+3f/TOP58mc6RL4Ds/nEkosZ4iM4W+VfFIZAWQuUPc/R4Ee4HOGn3ggxSHb2p/5IROWjXkcZMlwkLpDoNAQhdjrXOUd/UxPje8Dow6jHFqMaBKOguh5JibDfFZBU9JBB/ONhcW0CIX+Su50CKpeM1Lz8dqGycOuwHeDOg3YDu4JOd4etaWkm68s0QI2UudwPB8lP+nwQUuy7KOuwPytyuddgAv5BuEOuxr6IATxlzUDqcFok+mlRxmY8woYu1OlAOB9fB/U4qvbt45gdnFP62Vq8CNtF7oj2qJ1U8XGEprGyA79ePQni53x94mVhzrKRdGnm3z+mPBIaYlsFWZZ/lAn/K5hGTlrioe3Ud9SBGawt6oHHE0R6K07MUOrEZHjo2NRcZEC/6T8L8NYuHzTG8t/ZlqPnhwHIEk9HgDA== 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 25 Apr 2025, at 6:38, Gavin Guo wrote: > The split_huge_pmd_locked function currently performs redundant checks > for migration entries and folio validation that are already handled by > the page_vma_mapped_walk mechanism in try_to_migrate_one. > > Specifically, page_vma_mapped_walk already ensures that: > - The folio is properly mapped in the given VMA area > - pmd_trans_huge, pmd_devmap, and migration entry validation are > performed > > To leverage page_vma_mapped_walk's work, moving TTU_SPLIT_HUGE_PMD > handling to the while loop checking and removing these duplicate checks= > from split_huge_pmd_locked. > > Suggested-by: David Hildenbrand > Link: https://lore.kernel.org/all/98d1d195-7821-4627-b518-83103ade56c0@= redhat.com/ > Link: https://lore.kernel.org/all/91599a3c-e69e-4d79-bac5-5013c96203d7@= redhat.com/ > Signed-off-by: Gavin Guo > Acked-by: David Hildenbrand > --- > mm/huge_memory.c | 21 ++------------------- > mm/rmap.c | 18 +++++++++--------- > 2 files changed, 11 insertions(+), 28 deletions(-) > > diff --git a/mm/huge_memory.c b/mm/huge_memory.c > index 47d76d03ce30..485a0ba011af 100644 > --- a/mm/huge_memory.c > +++ b/mm/huge_memory.c > @@ -3075,27 +3075,10 @@ static void __split_huge_pmd_locked(struct vm_a= rea_struct *vma, pmd_t *pmd, > void split_huge_pmd_locked(struct vm_area_struct *vma, unsigned long a= ddress, > pmd_t *pmd, bool freeze, struct folio *folio) > { > - bool pmd_migration =3D is_pmd_migration_entry(*pmd); > - > - VM_WARN_ON_ONCE(folio && !folio_test_pmd_mappable(folio)); > VM_WARN_ON_ONCE(!IS_ALIGNED(address, HPAGE_PMD_SIZE)); > - VM_WARN_ON_ONCE(folio && !folio_test_locked(folio)); > - VM_BUG_ON(freeze && !folio); > - > - /* > - * When the caller requests to set up a migration entry, we > - * require a folio to check the PMD against. Otherwise, there > - * is a risk of replacing the wrong folio. > - */ > - if (pmd_trans_huge(*pmd) || pmd_devmap(*pmd) || pmd_migration) { > - /* > - * Do not apply pmd_folio() to a migration entry; and folio lock > - * guarantees that it must be of the wrong folio anyway. > - */ > - if (folio && (pmd_migration || folio !=3D pmd_folio(*pmd))) > - return; > + if (pmd_trans_huge(*pmd) || pmd_devmap(*pmd) || > + is_pmd_migration_entry(*pmd)) > __split_huge_pmd_locked(vma, pmd, address, freeze); > - } > } > > void __split_huge_pmd(struct vm_area_struct *vma, pmd_t *pmd, > diff --git a/mm/rmap.c b/mm/rmap.c > index 67bb273dfb80..b53a4dcaeaae 100644 > --- a/mm/rmap.c > +++ b/mm/rmap.c > @@ -2291,13 +2291,6 @@ static bool try_to_migrate_one(struct folio *fol= io, struct vm_area_struct *vma, > if (flags & TTU_SYNC) > pvmw.flags =3D PVMW_SYNC; > > - /* > - * unmap_page() in mm/huge_memory.c is the only user of migration wit= h > - * TTU_SPLIT_HUGE_PMD and it wants to freeze. > - */ > - if (flags & TTU_SPLIT_HUGE_PMD) > - split_huge_pmd_address(vma, address, true, folio); > - > /* > * For THP, we have to assume the worse case ie pmd for invalidation.= > * For hugetlb, it could be much worse if we need to do pud > @@ -2323,9 +2316,16 @@ static bool try_to_migrate_one(struct folio *fol= io, struct vm_area_struct *vma, > mmu_notifier_invalidate_range_start(&range); > > while (page_vma_mapped_walk(&pvmw)) { > -#ifdef CONFIG_ARCH_ENABLE_THP_MIGRATION > /* PMD-mapped THP migration entry */ This comment should be moved along with #ifdef to avoid confusion. > if (!pvmw.pte) { > + if (flags & TTU_SPLIT_HUGE_PMD) { > + split_huge_pmd_locked(vma, pvmw.address, > + pvmw.pmd, true, NULL); > + ret =3D false; > + page_vma_mapped_walk_done(&pvmw); > + break; > + } > +#ifdef CONFIG_ARCH_ENABLE_THP_MIGRATION > subpage =3D folio_page(folio, > pmd_pfn(*pvmw.pmd) - folio_pfn(folio)); > VM_BUG_ON_FOLIO(folio_test_hugetlb(folio) || > @@ -2337,8 +2337,8 @@ static bool try_to_migrate_one(struct folio *foli= o, struct vm_area_struct *vma, > break; > } > continue; > - } > #endif I wonder if we need a WARN here to make sure when THP migration support i= s not present all PMDs are split in try_to_migrate_one(). > + } > > /* Unexpected PMD-mapped THP? */ > VM_BUG_ON_FOLIO(!pvmw.pte, folio); > -- = > 2.43.0 Otherwise, looks good to me. Thanks. Reviewed-by: Zi Yan = -- Best Regards, Yan, Zi