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 A5E7FC282EC for ; Sat, 8 Mar 2025 18:36:27 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id DFD4A6B0085; Sat, 8 Mar 2025 13:36:24 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id D87BD6B0088; Sat, 8 Mar 2025 13:36:24 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id BB54C6B0089; Sat, 8 Mar 2025 13:36:24 -0500 (EST) 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 953D46B0085 for ; Sat, 8 Mar 2025 13:36:24 -0500 (EST) Received: from smtpin16.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 4658D141D02 for ; Sat, 8 Mar 2025 18:36:26 +0000 (UTC) X-FDA: 83199239172.16.CC0B4AF Received: from NAM12-MW2-obe.outbound.protection.outlook.com (mail-mw2nam12on2046.outbound.protection.outlook.com [40.107.244.46]) by imf05.hostedemail.com (Postfix) with ESMTP id 39A15100006 for ; Sat, 8 Mar 2025 18:36:22 +0000 (UTC) Authentication-Results: imf05.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b=il8kTHMo; arc=pass ("microsoft.com:s=arcselector10001:i=1"); spf=pass (imf05.hostedemail.com: domain of ziy@nvidia.com designates 40.107.244.46 as permitted sender) smtp.mailfrom=ziy@nvidia.com; dmarc=pass (policy=reject) header.from=nvidia.com ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1741458983; 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=D6bwOQ4fcE2Gd9TnCzJoXZuekx1doe+rKwhHpoXlT3s=; b=vN9UkxGawKX71B9KhP/pR5GKtWy7VFpuwE8DEn1RLqgZR9s1SHb1agQaJxl0acuQaKgap6 vOOIpvqGiXVl4heK7a8Inb84TrxzCpdO1pkZUC2ASzaZAlUn0BEbhUCrNR3OLKJ9kAtdzd FOXtf05iAVf9GfzZ8TEaEhz0gtBolqo= ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1741458983; a=rsa-sha256; cv=pass; b=7R8h01ujauALrm1SOXRLIRBSL3tvGeeO1+TmE0RR+gkSEDdvleWbZW2JXVI1PvqtsFWklk bYuaxIRkS8G2T9P4EofD2xhS7K5slcM/s1UoDEZtl8IiRgdO8PctNwzKmS8jd0fB/NoHl8 lntKj9tuei5uBFARudtaym6RPT3yEG0= ARC-Authentication-Results: i=2; imf05.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b=il8kTHMo; arc=pass ("microsoft.com:s=arcselector10001:i=1"); spf=pass (imf05.hostedemail.com: domain of ziy@nvidia.com designates 40.107.244.46 as permitted sender) smtp.mailfrom=ziy@nvidia.com; dmarc=pass (policy=reject) header.from=nvidia.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=XToPjAaSWjOXP3y0iV9esQGQbB3w3Pq4iiVrAuxJXDTh7QSiaiJsKjOaVQSprW9nSHYVwC1D8cMfjpczKrPYV1NxkE5Tq4NoJng1kazmzdgiRdeYeSkN1gTpPSjaqZbYwMko9GODp9u7RDSlYW/gILqhG1KBAt/cpI6emFd/423mu0otmz4qrrUwy5beNfRotmpEVrvzemCPxPSeF1Q0xJXFRmZoht8vJ7yJOUVz3CI2q9fxVzvZnAwCdDOUSDbHjHiL2yLtR4JM3mhGiStN1I/JYq/p+s7p1fcW4wOPq4YfsImxMTMKL7SR4OC+1Bt+8/atPTnuB0QXdoPEFnKDQg== 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=D6bwOQ4fcE2Gd9TnCzJoXZuekx1doe+rKwhHpoXlT3s=; b=b15Xk5yfIRli5hRV11/UrcmyKB31TPRICGP5vQbgO+BQIuuHXlTBxSjdSww/gQ6E74zpjeqWb63SzvDCoRcygHelrcYPejJASVWKxKuDOzIuZN3TERgUCbe0llxAC69hA/b+SQB0EyVAp43tDFBNKHj3JbLdNJRIyOQ90NcA/567vNXwMVBlD2T54fGJGB4WIAvHxJkuFBPtkeXEz1Et6kWahEoNPd/OJBRH5g4MaQnyUy/wmxe4r77nG31Dd6qjB8mZnFrFkAQAAeuJL5MCvcc1LPAi+iVjA1M5FyNSTWsJ/K45cnsAQJ+Kc7CQryKyJh1ifao2Mg3CViAeo3uhgQ== 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=D6bwOQ4fcE2Gd9TnCzJoXZuekx1doe+rKwhHpoXlT3s=; b=il8kTHMo9j8g1rc2prwFReaSn/RB7DZ+b1TxAKo7O0pbyONiwvhOwBWwZonj3/AObF8UMtAv1FINhppQKAq4cgODwFPIhtvOy1pPnrC+T3W0tpY0CVKkvh2d0LtIh6W8H7Gb3dquoiwykVyFm1/D9PYZxpiphOmtI0p3+BP9abaz5aIBKRooeZf9gXOKxo/tLX1t/22XzYX58dPJaOXJPzvyZZin5gAIZDbQJ3b3RdC/wKbQUESA8K2xE2ILYotKUGkgjpmXzp98CZtJAlGE4fV86a/yh8flfSkUjJCP1+oMS55RFoTpsP8w20iRJI/+yA48SJ7AFJxSQA/Y9FA1HA== Received: from DS7PR12MB9473.namprd12.prod.outlook.com (2603:10b6:8:252::5) by IA1PR12MB6138.namprd12.prod.outlook.com (2603:10b6:208:3ea::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8511.23; Sat, 8 Mar 2025 18:36:19 +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.8511.020; Sat, 8 Mar 2025 18:36:19 +0000 From: Zi Yan To: SeongJae Park , Andrew Morton Cc: Baolin Wang , Matthew Wilcox , , , Hugh Dickins , Kairui Song , Miaohe Lin , , David Hildenbrand , John Hubbard , Kefeng Wang , "Kirill A. Shuemov" , Ryan Roberts , Yang Shi , Yu Zhao Subject: Re: [PATCH v3 1/2] mm/filemap: use xas_try_split() in __filemap_add_folio() Date: Sat, 08 Mar 2025 13:36:17 -0500 X-Mailer: MailMate (2.0r6222) Message-ID: In-Reply-To: <20A1553F-C30A-4D93-8A43-011163A22C60@nvidia.com> References: <20250308181402.95667-1-sj@kernel.org> <20A1553F-C30A-4D93-8A43-011163A22C60@nvidia.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: BN9PR03CA0392.namprd03.prod.outlook.com (2603:10b6:408:111::7) To DS7PR12MB9473.namprd12.prod.outlook.com (2603:10b6:8:252::5) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS7PR12MB9473:EE_|IA1PR12MB6138:EE_ X-MS-Office365-Filtering-Correlation-Id: acdf92f2-3afd-424f-19fe-08dd5e701e5e X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|366016|1800799024; X-Microsoft-Antispam-Message-Info: =?utf-8?B?VjNFQmlDUW0xdFVZODVRWS93TDAwT0FNNVFRR0dGNnpWa3FwcmFIUzR4aGc5?= =?utf-8?B?ak1meGhXenZQL3VxeU1UR1hyYVdIVGtaTzVvR0VVaHZaK1ZVd1BYWDlEeWhy?= =?utf-8?B?Q21zUVRYc2JOaE1HVUIzKzkvQ1RVSUNyRVRGb3pQUTR0RnZnOGNWZVpWRlVC?= =?utf-8?B?S09Tc2VWdVd5a05JOVZTUjA3YmVtV3dQRkt1alliWm41NVg3RHNmSUsxa0JC?= =?utf-8?B?dGVUb0xlMGJ5eHd3bXRSRTk3QmFPTk5na0xVb1luOHRKamtEaXhJWFoyMGp6?= =?utf-8?B?ZzJLWXQwei9KRHdtWTNnZjl2ZncvK2lxUEgxU29oM3dqYnNWd1BOUmhjZjQ1?= =?utf-8?B?S2xVeUp1VFJXQ2orMkoyeW40ck1venVRa2xyYnQ4UFFsQWt1amFtRW1SSG9y?= =?utf-8?B?bGFJK3JSWUNiUUJuT1JBbjBuN3FKbGpJVHdVNU43Ri9nd0NHMUJGU01nUFI1?= =?utf-8?B?QzNScjVWTDM2UW11R2IrMUxTRVgxUmtsR1BQWU5NZEhjRGtaLzlvaW10TzFX?= =?utf-8?B?SlZSeEhmV2ZKQWZTSHluc1pBS2xldkIwU2tYUzZhU2thOXZUYStlSXg3Q2VM?= =?utf-8?B?aE40dytkc25MRXEwWmRwOTdGdnJpWEF5R05LSkxFc09PTHVjQ0lOcmt2UGFG?= =?utf-8?B?bE5kMEJLeHZjRnN4eXdsSU1uYUx0cjlTMkRvTjhUL25yTURIaFFkTkRTbTV1?= =?utf-8?B?REFSVXF6cEJ0MVk2TFJCZkM1TFo3RW5SUi9kSjZzbDBmUzdwdXZENDhrTldN?= =?utf-8?B?QmFJTUt0cXRRWk51S2s5LzJrK1ZoV1ByamNUMCtUR2pvVFhDYlJGUUtYcjYr?= =?utf-8?B?TVNtMm1QbVNXMnA2VW82blBlQXYveTFYdm5zRGdOejA0WVdldFdsQUNrRWNu?= =?utf-8?B?TzJCc1lKaHRyVUhhVWJGRVJTR0ZXSHJWSjBRQVNrdFc3SUJ2cmdoVnNKVzNJ?= =?utf-8?B?QzhlcFNRZzdoUkhsM05PbzBsQllGa0VUZkp5OE5RU0QxMDRRV2VRdmllSHZ0?= =?utf-8?B?Z0hMNERPbmIxL1E3cE5wWUxQclROSVZYQW9JRkUyeEZaT3BWQ0VLbVlXV0tX?= =?utf-8?B?NUNzdS9Yd0NaaWZqeklnOWZyOGh2Ym5zSXpSakExd3ZwOUFDNFptc3ZFV0l1?= =?utf-8?B?TnYrRjB0ZnZNM3BOa0NEY2tFOUc1UEtDYzhOeEt4bXJvZERNU3Q2SVBudnRO?= =?utf-8?B?c2ovRzlXWDhOU25NQ01salUxOHZYbms1MDVoWUVzZlVqaG93UlNKR1JpNzEx?= =?utf-8?B?OU1Wb3dwYmtkbWpFajRPcVExWmVmak45NzZENUdmeDVXejU5ZVJWOGd3RWFS?= =?utf-8?B?K1NPYTdtRmpncG1oVXhmakhmaTFVVkpzNzdaWUVyYXRqQ3Q3L1kxK2Y0cnJN?= =?utf-8?B?UWpNVzc0SlQySjh0YkxXdHhZb3ZGbGxCb2lUWGYyWWJOZ1lGWUhUMWkzWlNx?= =?utf-8?B?dXlWZ0pBb1NKUHczWlQzZUZhVVlKN0p4RDFUK0V2VDhiVi9PQzFNc3Qya0RW?= =?utf-8?B?RTBTNWFsQW84aWZJWVpySDFmYWIxdE0wV0dnb3h4aDlQTzByOFE0WXdQbktE?= =?utf-8?B?YkRLaGRLQ2VJVVR0V21sSGltWmQyTGd0cUZ4VUFQM1RBUUtYczdlMkhSZ3Q2?= =?utf-8?B?Q1ZOZUZHckFmWEtXUnIzb29sRWJGK2t4WCthai92MDU5OUpsNWg2cjBIaG9n?= =?utf-8?B?ZnA0djkwTXByYzd1SHRneXc1cXpTVkhGL1J5Nkl2QzhvcHluR3FNdGJ6Vkt1?= =?utf-8?B?M2NzcWF4N1FqUkdCNkZQVHdvdzlFSGU5SWlDcTVsK0NPcGpmZU80dkNUQUU4?= =?utf-8?B?V0hMSkVSSUZtcFEvWlVWZTlTZGpaNXFzSW9FVDRDZG9MZnp3SVRhWnZrYWhE?= =?utf-8?Q?L5ngrWCLXP14C?= 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)(7416014)(376014)(366016)(1800799024);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?ems1MDZxbEZLQ1ZYOWFoL1dnbXgyd2Yzdng1dXh2SW1KRVN4WDdsRlVvVk0z?= =?utf-8?B?UllGSSt5cXhLVVhnakRFQmJ5ZmNXR25WeWFRQ0NZWE5XOUNXNXRObHVHZEFU?= =?utf-8?B?eHF5aitpaVJzclJsQTlkOHlxZ2R3MzdxQWh2Nm9uV2o0R0RJamhDUksxbGZL?= =?utf-8?B?ZEc0dUo3ZXdJZ0JMa296VTdqTkllanl2RFo0RWtRV0xmalpwSWcraVNTQTlM?= =?utf-8?B?SHVjSjNhK285aUgvSzlPWVU2TGVVWWt4WVg5d0dwWjg3ZGpjUmFnV3gzK0Qy?= =?utf-8?B?U0xYbU9nNjJ3eXI3Q05Ka0QyTm5MclZuN0NLZkFIR3ZPcVQyQjMyOUFIVnVt?= =?utf-8?B?RU9oUkE3NHNMdWJIOWJXeThYWWJwTFRjNHRHUmFSVWFUQjVWaUpHVjdHZFJ3?= =?utf-8?B?RjljY01rN2FZUHBvRWJCOS8xTU1qQmlJR3N1VzVZbWdTM0k1MUpPYkVqT3Bm?= =?utf-8?B?eDJuTDZxS2RDRkJzUHJoTzZaSjNnS2FtRERXL2JKMlE2VWlGMXJPS3ZlcjY1?= =?utf-8?B?NzFhc1RaTUVhZTh6N1JKaUsyR09MV0xTQWIyT0Q3bmplazRDdFpxTnJ0cm9w?= =?utf-8?B?U29DUGpLNVZ3NU0yL3p4dkovU1dpV1NkM1VOaDVJemc4dUJVQittS3hlNzZR?= =?utf-8?B?cFk4QkVxbmpFQ2lPekd2RVR3bEVtM3hzallWbWh0djJRaHFYYWNyamRXdXRZ?= =?utf-8?B?enRycWRvVUw0YWRiajNTOVdDUGxSMTNlVWxybG9nZzk0eVN4aWZMSzJZdDZj?= =?utf-8?B?YTIrVjI5VlI2MlJQeWFKK0FzV29rYmE5VkRHQzBnU28ySXA1dWxxWVJFTFpp?= =?utf-8?B?Zy9TSUhJQXZvSzJLTUZoOG02Z2xGM2Y0YzJIQ0lJeERzbm13eXc2U3pYbmZF?= =?utf-8?B?bTFNekxIVjlPTXZtbkxRMExBVlpyYnNnVUp4WWUzMmFVZDdXaGR5ckltOHZt?= =?utf-8?B?VE10VEx2Z1lHbm9WZmxvTVNJVlAzd2U4Q1B3QlR3V2pIVER0RSsweW4xQTQv?= =?utf-8?B?a21pU2V0eDEvRGlqeUtETkJ0cXFNcS94bHBGc0huL0RGaTQ4REV6ZUVxZG1E?= =?utf-8?B?VVZRTGgrYWVIajVneFdXZUtQNmw5SXJZSEYrZjRVVnlDT1d3WlFnbnJRb3BO?= =?utf-8?B?eFdDT0xySDZJbDM4eHFmSDNJK1Z6ZzFlaEEya1VOdm1TZlhOanZ5T1ZkS0hL?= =?utf-8?B?dHN2V2xXQ0U5S0FnNWsrNjhaUWZwWFpORDM4dnhzTDlCNjdDZTBiZzF6d1ls?= =?utf-8?B?NFFHUTBUc1U5NlpENnhxeEZHQ245eS9VTXljSmthYnNTRXJrMyt5aE44VEtj?= =?utf-8?B?d3BYOTE2WTJLNGJYZDcvQXM4MGIxOHJWcEhHMjdGaFJIa05FUGNmak13Q3RL?= =?utf-8?B?VElTTEVYaDUzZHNFRUpZZWVRaG1qTXJhUUhvaHYrQi85YnV0bGIxaitDaEdS?= =?utf-8?B?NWhKQXdFRlc4cy83QnVnRUNkbjZ5TXlIQXgzZnVHeWZ4cDlwc2ZHOGhVbTJ5?= =?utf-8?B?Ti8wOG9VNUdUa21rU0wyUUZJSE82R0lCQzZXWkpqdy9SWDJ0TzU2MmZkOUR5?= =?utf-8?B?YnM5REZGUGdCeUpIUDk1WHVkS1FpRW9ZZnlndDRQektWVUwrdkx2bnVranA1?= =?utf-8?B?RXdHeHIzeXRiU3M5OExLRy9BblA0NUtpMWdWR1d0NUpnMUNteFRiSEwvYktv?= =?utf-8?B?U3YyMWI3WGdzNUlSQ0l0dnFWNG5XSWZneFZTRi93R3laTXF2OTZUSkZlalRl?= =?utf-8?B?VnFXNS9lTDVHRlMxUU9nYWhnd2RhVUQzOEdGTGRkcHZQL1JheGJzNEpOUzMx?= =?utf-8?B?Rmo5ZHNjQ3JESGQ5S094cXdQYit6WUZzbnRJS29MUFNWK0NINmNDOWltWitk?= =?utf-8?B?MVNwSDBDVDcyY3IwR2F3dnVDdzBiM0YvKzhUdU90bVp0Zk5hOGwrMHF6U1gz?= =?utf-8?B?QytSNW45ZSsva1l0b0lTeG9TUnRLOWJ1dGR0S2s3NUN1S0hHemZYLzkrNllS?= =?utf-8?B?OXkvb3V1ZDFTcUZsclpzT2lPNUhMTDBqSWk0eXg1MWJIMXV3NVNDSXBIYWFv?= =?utf-8?B?bldzTWRTRlBxV1ovdURMaUxOYUZsZm5YV2h0NkllUjRlZzkzTG90dGxFWjNp?= =?utf-8?Q?/vwM=3D?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: acdf92f2-3afd-424f-19fe-08dd5e701e5e X-MS-Exchange-CrossTenant-AuthSource: DS7PR12MB9473.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Mar 2025 18:36:19.6265 (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: qhZlHwe7puH+rYFR6wqP2m1KwIiGXr31SMbMhamhlSCM3C0yXLTqizLidkH+rLaN X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR12MB6138 X-Rspam-User: X-Rspamd-Queue-Id: 39A15100006 X-Stat-Signature: wt87u4seq8cxfnf6sgiregyzh943gtj1 X-Rspamd-Server: rspam10 X-HE-Tag: 1741458982-192280 X-HE-Meta: U2FsdGVkX19C6csw2ZFmwgD6X2bMzrfJo5Tpo5PKnu4J25i21S6UW/C7fm49F/rpwUyrFIpZOwYTeOaal9I2godvqd9PNKajTuzV6dSu+97e07/12Cb+XMID253TmwI/3UbaIWYrqx49s7TAUdv41SrgtyKuFCdQ8GdROn5LZAxXBL0WgPtC7GZrpoNFyUlht/6TWePJUQA9CEv8gWqPG7BPTJkyVu+rCevWZ3sfCY2KddRwH4k5il1CMA/qJAVw7NfTZgcoQDyovgmqQhkQqATpXJTrULOcvHl/uEHaD4nsjXaoXHRn3P8kzkilkYBoaH0/ZClt9DltO21ZjPpdxY9S6W2xBdmWIXen0RfxBpBgKcLzac3nEfhWa7LhwwvB34HZ7e1faJRlYcet+NiDXDBeC3vXc/toUPYYjgqiPlGIJY3/+6YCDf24YrBJDI9tdyNN/VLflWbY7xmoQ83mjM7NUjrskfK1gtq6h+v7LG5r4zW2qZAY4bOPJxN+zX4vW6qFpftISFXh0Pv2nTurbRUgh1NsrNvDm1WuKLk86WwEYq5beVWC+ZKVFy43ClxqNuwjwbycWBPQtM2KPhL1EiaBQZgWaF1GrIxjXQuE9pFW5aKe3/hY5mohyAoeyoHOHkJ6637yxWV+ZZ+PBJLSJMrf5McCLwXW4WcfIEaueKve2w58AX9ZcLOVuVeP7rSJyBCGQkxKY4BGZy1KM+8RP17iH7cQf7HEsRAB0Zhgkuvhs3brfhRMM/yy9adFEklSIDLtRy90cRWs2JVd2TvmJbApjCZgQzeRwj3KRXSz77Bhfwsni3UC8iBmRo/lfE1+odOAv/iwK9FSLD83GG3zqRw9mYKIS6+IP9b1fW4emM8AuEnp6W04DtYt7hGyQSdJZe2L5P7NcyeFckkMVOLaLWr7hydyg3nVyUR71zPBYYWfXGYDP9byTe4BT6lp3yWBn4ZYd45u0RKAMr+Zm57 FOlWkb4q kqpx1zbszu+XQiXFTzS9b7gqyQ0qGPjyRwXdGvR2ulUL9rTtK5X9Pim4+QqWsSOZHem+9wMEP6mV3oKwHRDD4E6l1Gae8dZgYMnBCIcJfCFPTgOPE7l2CFPu7KjDQg0SnhaVSQLQOl23T3a1ZbJF1LuHfDqlL+Ezu9cdUjqIldkKEvcqF4gxcjlg73oLKIXISjvjvy35ZjGD7oIP2bN5abjgFHoWiOV3W+j43UKUxQKft4ThrAN/x/e9xcvsvzlTiu7KiXZoSSdWxQXB81cPCITdr9d5RcIQ0K2oIjTk183KMrnKCm66Ok8YDEDL7vPon12Agj7EGS8TDt1TOdN5DJLYLOYb59GZJH41HpNz7QEdBJt93T5Hfs8vWzH1daivaEa/CM6+JpoXL7AAkuj4J32m8CQN6spgeVGGk3IhvY3Mb2ymhy3ktWeCzyuv4IpnRgysApDIJk2uC0w+R+yU7trElrwbL3hJYq8CCzXBzkdue5SPzZE63ZoMr7PDByl2t9tZ2R/ZCNbeqSWS0JHXmN54Vrf4K5xufVrxiX7InOzaxjD/9hQXJ/p1MRRLQRqAPfcPf225t7/B8OpibMswpu2z9IyNXMkLxtXb1lHFksbq6ED/UCTB9dg54yBiTvPq8e6wqrDyud+EDLJxyhBJAGyxYqQMIuN+zaUE3owOenMdNk3TvwGoqBzvTUsUKDdb7Rcll3/UQwo+xtDRrVQkdYHCouX43BCUyorMAvaYfhr7kETJ3oMuMKPjoyZ+dyVG+8RjBFvQ8M+YLrWqEYaUAmZfVKQ== 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 8 Mar 2025, at 13:32, Zi Yan wrote: > On 8 Mar 2025, at 13:14, SeongJae Park wrote: > >> Hello, >> >> On Wed, 26 Feb 2025 16:08:53 -0500 Zi Yan wrote: >> >>> During __filemap_add_folio(), a shadow entry is covering n slots and a >>> folio covers m slots with m < n is to be added. Instead of splitting a= ll >>> n slots, only the m slots covered by the folio need to be split and the >>> remaining n-m shadow entries can be retained with orders ranging from m= to >>> n-1. This method only requires >>> >>> (n/XA_CHUNK_SHIFT) - (m/XA_CHUNK_SHIFT) >>> >>> new xa_nodes instead of >>> (n % XA_CHUNK_SHIFT) * ((n/XA_CHUNK_SHIFT) - (m/XA_CHUNK_SHIFT)) >>> >>> new xa_nodes, compared to the original xas_split_alloc() + xas_split() >>> one. For example, to insert an order-0 folio when an order-9 shadow en= try >>> is present (assuming XA_CHUNK_SHIFT is 6), 1 xa_node is needed instead = of >>> 8. >>> >>> xas_try_split_min_order() is introduced to reduce the number of calls t= o >>> xas_try_split() during split. >>> >>> Signed-off-by: Zi Yan >>> Cc: Baolin Wang >>> Cc: Hugh Dickins >>> Cc: Kairui Song >>> Cc: Miaohe Lin >>> Cc: Mattew Wilcox >>> Cc: David Hildenbrand >>> Cc: John Hubbard >>> Cc: Kefeng Wang >>> Cc: Kirill A. Shuemov >>> Cc: Ryan Roberts >>> Cc: Yang Shi >>> Cc: Yu Zhao >>> --- >>> include/linux/xarray.h | 7 +++++++ >>> lib/xarray.c | 25 +++++++++++++++++++++++ >>> mm/filemap.c | 45 +++++++++++++++++------------------------- >>> 3 files changed, 50 insertions(+), 27 deletions(-) >>> >>> diff --git a/include/linux/xarray.h b/include/linux/xarray.h >>> index 4010195201c9..78eede109b1a 100644 >>> --- a/include/linux/xarray.h >>> +++ b/include/linux/xarray.h >>> @@ -1556,6 +1556,7 @@ int xas_get_order(struct xa_state *xas); >>> void xas_split(struct xa_state *, void *entry, unsigned int order); >>> void xas_split_alloc(struct xa_state *, void *entry, unsigned int orde= r, gfp_t); >>> void xas_try_split(struct xa_state *xas, void *entry, unsigned int ord= er); >>> +unsigned int xas_try_split_min_order(unsigned int order); >>> #else >>> static inline int xa_get_order(struct xarray *xa, unsigned long index) >>> { >>> @@ -1582,6 +1583,12 @@ static inline void xas_try_split(struct xa_state= *xas, void *entry, >>> unsigned int order) >>> { >>> } >>> + >>> +static inline unsigned int xas_try_split_min_order(unsigned int order) >>> +{ >>> + return 0; >>> +} >>> + >>> #endif >>> >>> /** >>> diff --git a/lib/xarray.c b/lib/xarray.c >>> index bc197c96d171..8067182d3e43 100644 >>> --- a/lib/xarray.c >>> +++ b/lib/xarray.c >>> @@ -1133,6 +1133,28 @@ void xas_split(struct xa_state *xas, void *entry= , unsigned int order) >>> } >>> EXPORT_SYMBOL_GPL(xas_split); >>> >>> +/** >>> + * xas_try_split_min_order() - Minimal split order xas_try_split() can= accept >>> + * @order: Current entry order. >>> + * >>> + * xas_try_split() can split a multi-index entry to smaller than @orde= r - 1 if >>> + * no new xa_node is needed. This function provides the minimal order >>> + * xas_try_split() supports. >>> + * >>> + * Return: the minimal order xas_try_split() supports >>> + * >>> + * Context: Any context. >>> + * >>> + */ >>> +unsigned int xas_try_split_min_order(unsigned int order) >>> +{ >>> + if (order % XA_CHUNK_SHIFT =3D=3D 0) >>> + return order =3D=3D 0 ? 0 : order - 1; >>> + >>> + return order - (order % XA_CHUNK_SHIFT); >>> +} >>> +EXPORT_SYMBOL_GPL(xas_try_split_min_order); >>> + >> >> I found this makes build fails when CONFIG_XARRAY_MULTI is unset, like b= elow. >> >> /linux/lib/xarray.c:1251:14: error: redefinition of =E2=80=98xas_try= _split_min_order=E2=80=99 >> 1251 | unsigned int xas_try_split_min_order(unsigned int order) >> | ^~~~~~~~~~~~~~~~~~~~~~~ >> In file included from /linux/lib/xarray.c:13: >> /linux/include/linux/xarray.h:1587:28: note: previous definition of = =E2=80=98xas_try_split_min_order=E2=80=99 with type =E2=80=98unsigned int(u= nsigned int)=E2=80=99 >> 1587 | static inline unsigned int xas_try_split_min_order(unsigned = int order) >> | ^~~~~~~~~~~~~~~~~~~~~~~ >> >> I think we should have the definition only when CONFIG_XARRAY_MULTI? > > I think it might be a merge issue, since my original patch[1] places > xas_try_split_min_order() above xas_try_split(), both of which are > in #ifdef CONFIG_XARRAY_MULTI #endif. But mm-everything-2025-03-08-00-43 > seems to move xas_try_split_min_order() below xas_try_split() and > out of CONFIG_XARRAY_MULTI guard. > > [1] https://lore.kernel.org/linux-mm/20250226210854.2045816-2-ziy@nvidia.= com/ In addition, the new comment for xas_try_split() is added to xas_split() co= mment. See https://web.git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git/tree/li= b/xarray.c?h=3Dmm-everything-2025-03-08-00-43#n1084 Something went wrong when this patch was applied. -- Best Regards, Yan, Zi