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 EDA5AC02198 for ; Sat, 15 Feb 2025 01:52:47 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 4C748280004; Fri, 14 Feb 2025 20:52:47 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 45036280001; Fri, 14 Feb 2025 20:52:47 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 27BFF280004; Fri, 14 Feb 2025 20:52:47 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 001A7280001 for ; Fri, 14 Feb 2025 20:52:46 -0500 (EST) Received: from smtpin30.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 8B7F91C87B7 for ; Sat, 15 Feb 2025 01:52:46 +0000 (UTC) X-FDA: 83120505132.30.0FAA5CA Received: from NAM10-DM6-obe.outbound.protection.outlook.com (mail-dm6nam10on2060.outbound.protection.outlook.com [40.107.93.60]) by imf10.hostedemail.com (Postfix) with ESMTP id C2809C0002 for ; Sat, 15 Feb 2025 01:52:43 +0000 (UTC) Authentication-Results: imf10.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b=hs3hCEdN; spf=pass (imf10.hostedemail.com: domain of ziy@nvidia.com designates 40.107.93.60 as permitted sender) smtp.mailfrom=ziy@nvidia.com; dmarc=pass (policy=reject) header.from=nvidia.com; arc=pass ("microsoft.com:s=arcselector10001:i=1") ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1739584363; 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=gOIVHY55s6ESUI6k5Sa5QkOSYWwmVOBVHgDnMxW4aFw=; b=MOlWo5WD74Yn1fYHHLB8CWbFpRcV0cCbo90RMdQESocPaPVmFzGe/qivN2Vj/G8/FdMOpR RDVa+OjzVfyU/4n+TwTwA4vlA6yskRwHgswZq8OeT+Div7qnOD2lI6c/qGGouxoDstkAnx UkhoCWtXLX6n4IwaBrdvVVbJQZJlJ20= ARC-Authentication-Results: i=2; imf10.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b=hs3hCEdN; spf=pass (imf10.hostedemail.com: domain of ziy@nvidia.com designates 40.107.93.60 as permitted sender) smtp.mailfrom=ziy@nvidia.com; dmarc=pass (policy=reject) header.from=nvidia.com; arc=pass ("microsoft.com:s=arcselector10001:i=1") ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1739584363; a=rsa-sha256; cv=pass; b=wCnt9MiAGqVO/SaMtzXbe5BSjVGMT5Duo6Unt5D6YkpFYJmH7wRyEGKD5/vaKcF4Aw2Wg1 LWsHC9yIYSFuoEs6ZWXLTUHbfbTLRE6Np8ZmklQUvLfTW1QlTmRxh6M5qqtDKgeuo34EII R1E8LojiA/2+LzO2rzCTxi3+DUlsCVc= ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=mYleCVsE7ww8Cda4wbEt8KOZ0I7ZZCDN5hQSFQ9Zz0WbzYjH0xJbnxZ6ZJkvoocsgxFh5kGVeXSPS2GV8v5UVyz6O/CgHWhybHGrEYHEijsKfiamUkZjFkCtbnozeOG+QHq3S+fS2HxPKZOh9CRwyT3bim2E55l6BzYM1Z+cGlKTX6BL2jnbTJa043hg8gYuw0XfR2nKA/hpbx7kuwuy66/N7dYOVIQARc+vkelD0ABu4hMGBh7LTbHAyTLK49HeoDr+TVmQEpSnFM7KItLxnpnP91QtQZxkXq6zTWxIpGfD2xhM07ONMeAC9XJT4t+UeYa605VxNFQDqYzxeypLew== 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=gOIVHY55s6ESUI6k5Sa5QkOSYWwmVOBVHgDnMxW4aFw=; b=HNJOpWOsiM+giyMpQ0M4Yicr5NHSdNQK2cG5n0Q3vMSpfuVQr4o1mmL3EPIX/wxV9pgI05kPs8owDKhyebadCmT5EjEJa6VddjAHKm3mDtZfOcZvneM62jpkGIP9mEPCwE7fEzFyAm7U23JX3qo64eRUW4LuqrmghFfZGfbCLAVsn7eKGbXhgaa01SgKAGVmN67CH/ctBHUL4AcRO86kf9jqrZB/9iGBswMH/nGcSR/j/HIyGUvShLojVve6FPaFnhSU9Cs4DcVIiWe8eLobj+stHntkPiLWVXqmsEc4s4P1xwVLXIlWGHjAn0KDQpISLj4D5m8yuAoKlfZ/p8dFwQ== 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=gOIVHY55s6ESUI6k5Sa5QkOSYWwmVOBVHgDnMxW4aFw=; b=hs3hCEdNvsmNFtMs38wvBqMFRnTx4wDW/fWNvSCdautU8G2uQQEG46V0p6ZADXwFaXlLyYWR9CuAXAgzIAuIzSEJbLU727X+oNXsOdrSqcojze+TBJBRuWeHlDOuabTHnM94yJ8AJGBrXPuOuXea+R4EYoD87q9o9YKC9hVle1hIRuCa+Boq04yAbHPPSlatkY8serkUIXVRQtzi+jouuX5pkSpX4uygbtQQwlXHE+PRnQG37il1f5kDGCqZEi00Ok1d+0TLip6GLQDiOafuHPSKapldEURSE97Rso1IrR9savWOkRaoHixTaZNXLBkAcEWcJTaRyn1WwLILh0KLGw== Received: from DS7PR12MB9473.namprd12.prod.outlook.com (2603:10b6:8:252::5) by CY5PR12MB6083.namprd12.prod.outlook.com (2603:10b6:930:29::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8445.13; Sat, 15 Feb 2025 01:52:41 +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.8445.016; Sat, 15 Feb 2025 01:52:40 +0000 From: Zi Yan To: linux-mm@kvack.org, Andrew Morton Cc: Ryan Roberts , Hugh Dickins , David Hildenbrand , Yang Shi , Miaohe Lin , Kefeng Wang , Yu Zhao , John Hubbard , Baolin Wang , linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org, Zi Yan , "Matthew Wilcox (Oracle)" , "Kirill A . Shutemov" Subject: Re: [PATCH v7 2/8] mm/huge_memory: add two new (not yet used) functions for folio_split() Date: Fri, 14 Feb 2025 20:52:34 -0500 X-Mailer: MailMate (2.0r6222) Message-ID: In-Reply-To: <20250211155034.268962-3-ziy@nvidia.com> References: <20250211155034.268962-1-ziy@nvidia.com> <20250211155034.268962-3-ziy@nvidia.com> Content-Type: text/plain Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: BY5PR16CA0010.namprd16.prod.outlook.com (2603:10b6:a03:1a0::23) To DS7PR12MB9473.namprd12.prod.outlook.com (2603:10b6:8:252::5) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS7PR12MB9473:EE_|CY5PR12MB6083:EE_ X-MS-Office365-Filtering-Correlation-Id: c2f70573-35ff-4d50-0624-08dd4d636e64 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|366016|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?4z669r/mpdbNFA0jLqiZaiqUcOhPOvVr/Q6vc2xHNmN09xyHEd4vYssvseHY?= =?us-ascii?Q?lUyw98oay/hfuecC9X3/qURJTQPYuNCKHaiW4ULb211n39qjkuYBsmfmE7Y4?= =?us-ascii?Q?L6yd5xd5gTX/MNq9JJzcGFubCXKbH0FqZFSql/CDQ0vcp4s7tcHmLF5R/ozS?= =?us-ascii?Q?0c6/TaFjvLbrSCylz1nVxtRKJ4dpt3Uqj8sX70zx0HhtbUI3IzDivCAskK9u?= =?us-ascii?Q?f/AzTalpusClsl4sHfTj4dTHEwaSAMIatLaXGRHBM6k9XvyOTda6Y4g9Y2R3?= =?us-ascii?Q?6h0KHpT7JB+snAkA8ODeXhnEOQxa2v3N4EDZnb0Hn/O+9eIDQF3DV2OkfGo/?= =?us-ascii?Q?w6U0DSZdwbgp02sBRrYTlQJL+eD2nmhuk3YJ8ELexDPV4jBs1Y4sxObKzMQ1?= =?us-ascii?Q?vnFcs6wDe4YdjXBZ3+dnAgw9HcdwMl+b6cN8u88g1lGFePFg9GnWOstXaoq3?= =?us-ascii?Q?hGKLWA01lV+0mH7czKpwHYz2dhG/adCNnHrPKzFlVFvyOWKoHbseBbbEukDB?= =?us-ascii?Q?IGrfA9rxV+9WUA/ZW49WqDq4qe9cpT/01QGUyhR3OCIAHa/1n14XstwU4ECW?= =?us-ascii?Q?bC1uNLJ4qFnHC7wQWTjQOMrEJ6GZvuerHI3v32pTYebbr8683XSFiBr1eLvp?= =?us-ascii?Q?ydIw0lEiuPuqWYCT5VJnUlPidlxF15fQNfo4OozYEdoKaVTzD/qir2SPVMmy?= =?us-ascii?Q?VVRlU/SPiPkW1HegCpr6xg+71gQIqbEFpxlmx9hvrN0PJ8WBFXxqc9W7UB1b?= =?us-ascii?Q?eAz/B7YS+Ylp11G/C6RaYDieinZWA6QXuJ3Oi26m8BqmxByjzs7nsViT6nb4?= =?us-ascii?Q?/9oDBpLyjqYz9gup28972GThjLPfgQkrJgaQa+WlX0+Ef2TDoiYLidcZZaUv?= =?us-ascii?Q?/3LwUoUB7+HDo4o6fmLskrAQo6iUZlQYvjw72vq5J2ojzC1/JVbezSCUrw8j?= =?us-ascii?Q?bD0WrOSGZCWLbWCN6p7a1w5UB2ilgqh5ZpmlQfD7LpLk0InG7VNOmPdrhIO+?= =?us-ascii?Q?Bz1VMAJzTcW6++m2RtO/eJM3p6wuC56nG1oPF3a5qfub0bG9hyPuhaPe42pr?= =?us-ascii?Q?5cfQVR2eqyVliQe8z6ixIc46A75uzi1cdvBhjXRa4N9YgCc79HfVFvUn1fl6?= =?us-ascii?Q?j4GGx+/FEHycxrC2x8fkul0ldvb+TiRNgtg1mEfFTgPfVlnpy/V1upYFrFZ0?= =?us-ascii?Q?QNuOJAtY6qdKTkqRPV0DIsIqDDoZGhgqg1row+Jb3gNARCrPMqVpJ51cJHt6?= =?us-ascii?Q?DUhBDivqi1n/LDdEaG65Eaxe35MBknVBUAdlVVoufhZQ70XaYt/JGJ+ipadz?= =?us-ascii?Q?yCcoOgxmXVg/vnBi3hUNLnBrEB+l5AG6oFuR8a2brHE0hmFrcL9IRNbuBiHS?= =?us-ascii?Q?pOc7gtY5sUMzIOfrYIleiBg277VD?= 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)(376014)(7416014)(366016)(1800799024);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?imXXdltD2D3HY8j75AASBWDSzCQbdgyC+hxcGDHpA/Hj7OPaqIhmJqV+PlaE?= =?us-ascii?Q?tzWE11NGaH77QOQ2c5aH+uTn5MoMQSoycRYhwn4acEN8FfnCCJB6Cj1g2o4n?= =?us-ascii?Q?Lh3A8Mg6idcsGGOk+g6JIcvvK6jwmY8INJRrABN+Z83UjL6rURQ2Npwabrkx?= =?us-ascii?Q?1oDf3OsXQFuTHQ0nI1PpfOFXs2RkdKCPi9QlJ3zL3ezC2lvo2heptqwFvQ7I?= =?us-ascii?Q?xhp6xM8/mleO5Vw74InAXPler2R+tp+OgtiDgy8x3O0Q0Veo830loytII0xX?= =?us-ascii?Q?4T7/TmgIvxOa0wv0ixIkWb1B7r84iNvWYT9x9l4pPVYpEbC6kRjGUFj2Dmp1?= =?us-ascii?Q?UiPvvf5aXdWIf+w0S+vaCAHkAEeqTlmtBLGW3X5XYp6Cn8KRF7h2rqn1WI3L?= =?us-ascii?Q?MsJlDTkMmlmhQX0+HN6/wtZTJ12iyPfg/kCQas5ngsu5YbxVJ19TiDxXHR52?= =?us-ascii?Q?HPARE7u3NHmmpFibtldcoPzywbx4EI1HO38If+KCUYtMvBMzyRQ//3RUBlEY?= =?us-ascii?Q?lX0v/V1vQvx5jlmgn9H9J4PqGpwdZRGRI7rlpH3zKk/k0f1SgUP+nrFr8/QN?= =?us-ascii?Q?iByCWfHz44b09zkoJ1aVLRAQhubeUxS+kbjKZ5TJ502n9K8W2NPRXjpEwMoT?= =?us-ascii?Q?UQjJWSoMoi9XJuxgBEwQ1o5cRpB+Lg81uA8p94FfxMyJoSWBOv6hBohFsMSI?= =?us-ascii?Q?yUMF3Tct2rVQu5UxBPr4iDMn1pF73DtnMZ/k/R323+bsWyibf9lrmW4t/GyS?= =?us-ascii?Q?8Tv7QzOGfWG3NP1MK+USc+ruX2ymwLU3sueZ4y6x47fMTG/muwVFvh2K/9Qm?= =?us-ascii?Q?y8ubM440qHA6eYPlencVdmwTlq1eq2NemgJhdhQxUgbdpEjF7/i0vnpTXdns?= =?us-ascii?Q?Uif86znROoEm0BI6BB+W94MseMcEk/jK1Tl5uBrzekevxqfHM353Eghu0v1U?= =?us-ascii?Q?vurstilAiuQ3iOdpUPogPWxxOvpG6tSbrf/FYENupJgq8DvEMDYq0ltECQl7?= =?us-ascii?Q?W4pNoLmNLha9tChAkeog3aQapNzgU4CtLQgRjYriLmdMyOlBUulGiBUAiqG/?= =?us-ascii?Q?tC1Hf2OdtXRcKY2M7x53QuOZVfGempXAj03HknZZD6ttjrEYxcFTQVVH6DUa?= =?us-ascii?Q?ncHNjTnn/w4di8lpRMWpG7kP8JK9naPYoFqQ0CNCCiFFpXmhKHRn3bYNxHGu?= =?us-ascii?Q?ZsNywbEX2iar7qBrVYMRAQI1WPia8HMe1iAtiaq9B64c5uaFKFiuAL1ikKsA?= =?us-ascii?Q?56i0033eK6O8DAyPhMutlDIzj8n3iH5QFRzvXq14OTVcQy7L+eRSMYGahdot?= =?us-ascii?Q?IDU2WL6n7gZ+I+Zw7fIiR4rtYn4ja9IgC9OhjjYNHutfsuF19OWXzSXjVy6m?= =?us-ascii?Q?bKqLf570V2VYr45MVY1DEiPgk84+qSsOY/UUG52OD/lgRB7C5P+ejG7ESIjV?= =?us-ascii?Q?zn4NNCsXsDTUT29xZQbo+3yuNrYrHZyI5UWa6A5FSK9YR7hWOsf6EsdO9O+Y?= =?us-ascii?Q?HTC1zU6pRwwqq912USoWHTo9FVzX+cLAoVnK47JX7rBrGVR4tiNjKasvq/Ro?= =?us-ascii?Q?osHHc3Jrv+muQN1RbxO8k69hmzfSedoLljpSdrFB?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: c2f70573-35ff-4d50-0624-08dd4d636e64 X-MS-Exchange-CrossTenant-AuthSource: DS7PR12MB9473.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Feb 2025 01:52:40.7570 (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: OKKd1gQ+53QfPcOnvatX82q6pJkHWj+TCFXL4CzEP7JO7IWzKH5j1JgTGOfUxywm X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY5PR12MB6083 X-Rspam-User: X-Rspamd-Queue-Id: C2809C0002 X-Stat-Signature: xifskuaai9pckgqqeuty3c1qj9ch5nbz X-Rspamd-Server: rspam03 X-HE-Tag: 1739584363-578765 X-HE-Meta: U2FsdGVkX199S5HcLjJ4b/FmJPVxhqAjkqaC6DhQ6zXX62Y/eED02TiUNM2WV8o3l+zLJHqOwGN9CPjMdufE4RibB5EpRtWAhofKBpPeE9AuJxPZSfUF3pGW/B/nMcisqeE9VYoeCedbgLQLtQKR2XxpmNmuk3QGV5bGpFbvW8F39L7RkvA5lpsgWQyyiGS26JwNQNQytxROPN/bgjoPZDk1MOHuMtN6HzctHfKXXkZX/yFEGyomOxAh5iT9A12iNyE7BIhTNVraPp65qAAOCV7yd1aTupljxEHYmNnlJFxPiq8WdIF6SGa95sjMF/pTvRZOpSx2WGVpog1Zh0JrErhQ+3SVD5kyVpywDxvQ01TXSNjRAC8M3Kjao0vJ9TiSgHVdirOT9IiLGxsiVhKMJoDoup39Jclz5V7TaEtcg3C/PQVUs0EY5RVjHdCfxhKKiJcda9PrqQCRIqvoW6f2fcv5O0RSmoC9Ed1w3zn3g2QNcuAGmPlJkl9UxKmx2cGvwokcBEkg2phybw4UztKN8/hDMvKw327fiAIxQb88Fg0twDcZmQW2WCN/VXjyq98amG1BihDCpsUCfstqrUW/AZrNrrUMiAz4DQvzHCHtVgBPeAAAIMdw4LEzT9aEeME0NazFbykjCLpw1M7Uc4knUKq+naj2HPvamdlNgjp5ibgySkA/eu5tja5lpASOHB/LSxryi45Q+17/lBdOePNvL1GcOCGarCAK7ou7v1KssjTJWZqTMUAfQZtx4wxx0vv2TcFtisxn+GJ+ctetmilQwWI5BskLeb4C+hX1H2WuzwZeWvnOFvDG2mR8IWjxgiy4FEM1/pMoZ7rPciaYEgjJ5c2GT1LwlD2A8/SnsYQMb028owePjUUL1ahVoClypaJOcnNxkEMADhATlWKdPcbSOylbR5apE90ddU/xbUzJ4Wy6/mjjKg3Y6XJiYDz3/mWZi/d5FZ30ikqbTvzL4rN nsov4NXi NlnJVxjlt++h3Y5ASPEvGENPuTLFqFN24bWGtRLnhNDuIyLiODNMUV4eiVt1odtBIYQFM/PMNi1f/EzAp4Ck5emg9wMxImwLPUOaK4g3TETBzYdleDysu1e56lh3Y9Q4ZIrXQ5+MylKFA0+YQgHS8c7abWQsSTEYR10F3vGakVF1fbidoo0f9LEwokwBkv7beUoRig5FOFJKXIKXloERoWmLsTmy+TZeDBtty1F6r8b43OonqgAKwtxLy2UMzYs0y7Rlg86z47g4vAZhJs+7bXJwgrEBvqfO8q/UaXZR8Lu4B3a42PuQpJokqaRZByj9NzD9WtCOxxDf8+19GyH9XCCPJz5CY+dNqFlCG+m0utDpZ9LKHmk2cZf0thuB40I3ks7N2n1o6M3BvKXGYvk5KEI1DGNFBpvH+pAJ2YrISgC0uo3xI5Ssr1uzC5vABPZLVEhLsb+vfb3HhvLo= 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 11 Feb 2025, at 10:50, Zi Yan wrote: > This is a preparation patch, both added functions are not used yet. > > The added __split_unmapped_folio() is able to split a folio with > its mapping removed in two manners: 1) uniform split (the existing way)= , > and 2) buddy allocator like split. > > The added __split_folio_to_order() can split a folio into any lower ord= er. > For uniform split, __split_unmapped_folio() calls it once to split > the given folio to the new order. For buddy allocator split, > __split_unmapped_folio() calls it (folio_order - new_order) times > and each time splits the folio containing the given page to one lower > order. > > Signed-off-by: Zi Yan > --- > mm/huge_memory.c | 349 ++++++++++++++++++++++++++++++++++++++++++++++-= > 1 file changed, 348 insertions(+), 1 deletion(-) > Hi Andrew, Can you fold the patch below into this one? It addresses the error reported by syzbot at: https://lore.kernel.org/all/67af65cb.050a0220.21dd= 3.004a.GAE@google.com/ and the concern raised by David Hildenbrand at: https://lore.kernel.org/linux-mm/db77d017-4a1e-4= a47-9064-e335cb0313af@redhat.com/. Let me know if you prefer a new version of the whole series. Thanks. =46rom a6bd83dfbb1143f1614ede4817cccb1e8cc6290d Mon Sep 17 00:00:00 2001 From: Zi Yan Date: Fri, 14 Feb 2025 16:18:24 -0500 Subject: [PATCH] mm/huge_memory: do not drop the original folio during truncate. The caller expects to handle the original folio itself. also make __split_unmapped_folio() never fail, per discussion with David Hildenbrand. Signed-off-by: Zi Yan --- mm/huge_memory.c | 22 ++++++---------------- 1 file changed, 6 insertions(+), 16 deletions(-) diff --git a/mm/huge_memory.c b/mm/huge_memory.c index 2eda2a9ec8fc..87cb62c81bf3 100644 --- a/mm/huge_memory.c +++ b/mm/huge_memory.c @@ -3292,16 +3292,12 @@ bool can_split_folio(struct folio *folio, int cal= ler_pins, int *pextra_pins) * It splits @folio into @new_order folios and copies the @folio metadat= a to * all the resulting folios. */ -static int __split_folio_to_order(struct folio *folio, int new_order) +static void __split_folio_to_order(struct folio *folio, int new_order) { - int curr_order =3D folio_order(folio); long nr_pages =3D folio_nr_pages(folio); long new_nr_pages =3D 1 << new_order; long index; - if (curr_order <=3D new_order) - return -EINVAL; - /* * Skip the first new_nr_pages, since the new folio from them have all * the flags from the original folio. @@ -3396,8 +3392,6 @@ static int __split_folio_to_order(struct folio *fol= io, int new_order) if (!new_order) ClearPageCompound(&folio->page); - - return 0; } /* @@ -3491,7 +3485,6 @@ static int __split_unmapped_folio(struct folio *fol= io, int new_order, int old_order =3D folio_order(folio); struct folio *release; struct folio *end_folio =3D folio_next(folio); - int status; /* order-1 anonymous folio is not supported */ if (folio_test_anon(folio) && split_order =3D=3D 1) @@ -3524,12 +3517,7 @@ static int __split_unmapped_folio(struct folio *fo= lio, int new_order, split_page_owner(&folio->page, old_order, split_order); pgalloc_tag_split(folio, old_order, split_order); - status =3D __split_folio_to_order(folio, split_order); - - if (status < 0) { - stop_split =3D true; - ret =3D -EINVAL; - } + __split_folio_to_order(folio, split_order); after_split: /* @@ -3567,8 +3555,10 @@ static int __split_unmapped_folio(struct folio *fo= lio, int new_order, folio_test_swapcache(origin_folio)) ? folio_nr_pages(release) : 0)); - if (release !=3D origin_folio) - lru_add_page_tail(origin_folio, &release->page, + if (release =3D=3D origin_folio) + continue; + = + lru_add_page_tail(origin_folio, &release->page, lruvec, list); /* Some pages can be beyond EOF: drop them from page cache */ -- = 2.47.2 Best Regards, Yan, Zi