From nobody Sun Feb 8 02:41:40 2026 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) (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 B2A0037F0F4 for ; Fri, 30 Jan 2026 21:00:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.165.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769806845; cv=fail; b=lPD8nDW/1BUs08FjzbQ+R5xmM+RUBZwtPcmJrUd8pbrliKjPeU9tcnJU5+Wnun6EEkhqNvPEHhNp27yr68VKme8+xYR6cVOJi+HigBLhHCugySE9mIobq+wDNXrSEB56YeqMfJKpZ7p1tXrjwUlC1c1Sv/mUNl1ZIc+2KW5ekeg= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769806845; c=relaxed/simple; bh=TWKW3hgjo33tDEizdPHScmEarVaNUQwpMO8wkyTg8IY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=GXe9Xprl9rHtz/SWOB61HYQJDchZneqImFmChH0MB4iMJ0jwrSJaBPSjS2Vm2lWrnEsxsRy2VaC3RUO8ONmnmMRq2aRSTnUtf/Ug4VuntwKqlTdJxZW3Ln2jHYl/0/8mMfpmIzIGH2OlZdWPTboDb7xA2Iu/+m+N6WpE/UPmshY= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=IR78uMu9; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=nqJ5Ncvz; arc=fail smtp.client-ip=205.220.165.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="IR78uMu9"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="nqJ5Ncvz" Received: from pps.filterd (m0246627.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 60UKDNIL3407068; Fri, 30 Jan 2026 21:00:04 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=5+paSCMylJ4zGtmQlkiq9rkiWuy2a+5XA3oGRYJ+hhY=; b= IR78uMu9Ojx2pKmXkHCZqXfcDyq5HMdjMuoUDloDeaQqymiwioJBS30UdsOLwack T6XoFVWrxC35KHLey8v32/D52yh5uhOQc+zc6EXDWia/8L2XFZSNd/HUTEgs6HR5 3peVlVDwX2iS7lMhSecFqUZuwLg+KikxoTBrHYl51ss0oxmRU7DX26p4w6hB7QhT C9n2axV0aLkaCpN7GuVfIywR7T9lG7XiX4XLcZuub2DvHsjOojPLgCnY7ccxbPmn dZqNdTZS7Qq/GiCbjlNzTqkwfqvAqi9urAvVc/y7wUi0vH8CnKa6oWWrQLxIiWC9 mafcLCfbkpRBUF6TkOBqSA== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4c103e8dtj-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 30 Jan 2026 21:00:04 +0000 (GMT) Received: from pps.filterd (phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 60UKpkOE012776; Fri, 30 Jan 2026 21:00:03 GMT Received: from dm1pr04cu001.outbound.protection.outlook.com (mail-centralusazon11010053.outbound.protection.outlook.com [52.101.61.53]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 4bvmhe6d1u-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 30 Jan 2026 21:00:03 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Yl62WRKgshqou+s5tjAfQn+EstrKd0HFQCxOjpZ1nExKiMGGRrDDPE8Q5eLKhpnvzV+CyqTjqC0xoSmywgirQ6DZ0WPPGU4THSmpMpq+iVI3RpOLuLUdXpV7/csREJTMH+z9xh4nGgqoytDQy6bsML9m6sVqedJDZOcFgr8zi1ePoxrYXTmDRuG2rrRY/VwEMsPwSVNBjnpD0PYb0NtB2GPG1t0WMfs1FtGdKiaCG7UHT9DzlPqEotkvHVhl7t3b4Q7XXGtapp/wjykNqTABxlKdLlBpDYTftpwla8WQV55woysr+odUG0kWha3sWsEFUqHvpiUzmDZOnWoZVIxcXw== 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=5+paSCMylJ4zGtmQlkiq9rkiWuy2a+5XA3oGRYJ+hhY=; b=ONinMHvNo7IXBtHJH6mT2E24R+MjLFxtbz+Ms0yIdUsgY2QR4SPLM/TiaFLLRZxQZvnzUuvQGwARQSZ0AVxt9TYDlAZef3O3AlhwRR4Y3pPhiz/wb3quSwfJUQAp5LeTa6QlBFO11tvzj2amDE6jt9/tVTneli10LBe4HV7YzHaIB5qmeWNoNxYG2B1NxLv8pbAWTZdVREAYL+3TJ/UcirxLZUA26fDs2Aajq/kifMy4kRu310Sj4PXAekBFTXcoDEKWYJUSBwZlmu2/4Ts53En7oXB0F4mqMyiE87wj6AYBYOIV9qz/vNjyVDJDECrkXoRBHpJ9tVKDSvBMLwgM7Q== 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=5+paSCMylJ4zGtmQlkiq9rkiWuy2a+5XA3oGRYJ+hhY=; b=nqJ5NcvzB6zdGcoSeoSBUO1tFNMmx58LEgSn/IgS0fQ3YnzM2XmJ6HLarfegNojCiOohn9lxG0H976SmeHghSGu/3LOsoUXdsqH/Te1Nvb1cpZByY82hJSWuI1y/E31FWcSDOhw/2eN0Jccxe3T50FdLoMA6+KeNbILta7qMIjM= Received: from PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) by CY5PR10MB5961.namprd10.prod.outlook.com (2603:10b6:930:2e::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.11; Fri, 30 Jan 2026 20:59:57 +0000 Received: from PH0PR10MB5777.namprd10.prod.outlook.com ([fe80::4b84:e58d:c708:c8ce]) by PH0PR10MB5777.namprd10.prod.outlook.com ([fe80::4b84:e58d:c708:c8ce%4]) with mapi id 15.20.9564.007; Fri, 30 Jan 2026 20:59:57 +0000 From: "Liam R. Howlett" To: Andrew Morton Cc: maple-tree@lists.infradead.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Suren Baghdasaryan , Matthew Wilcox , Sidhartha Kumar , Vlastimil Babka , Alice Ryhl , Kuninori Morimoto , Geert Uytterhoeven , Arnd Bergmann , Christian Kujau , SeongJae Park , "Liam R. Howlett" Subject: [PATCH v3 01/30] maple_tree: Fix mas_dup_alloc() sparse warning Date: Fri, 30 Jan 2026 15:59:06 -0500 Message-ID: <20260130205935.2559335-2-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260130205935.2559335-1-Liam.Howlett@oracle.com> References: <20260130205935.2559335-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4P288CA0068.CANP288.PROD.OUTLOOK.COM (2603:10b6:b01:d2::26) To PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) 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: PH0PR10MB5777:EE_|CY5PR10MB5961:EE_ X-MS-Office365-Filtering-Correlation-Id: 6d203c5a-afd9-41e2-c648-08de6042867d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|1800799024|7416014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?uwoSMVaGKURa71nrNlzYVnNuhwe6V/OyKO6OXA4nelSXh1+MQFhIGMjYVmea?= =?us-ascii?Q?ceCrUY046CiTuPIKOwYN2pGr2coBwDKBUW2btLwuwHosi/yAA6R1IR7C+NCR?= =?us-ascii?Q?8aRO0aL2Cr5prPWWU+TF7k+7p4jOK6Q7EY02VSuJxnLcfHCz/9RMfMVmY5Tj?= =?us-ascii?Q?8nYM/dm4aqozDUd2NywppQ1H4ROfYbUivqfnCkJc9CsdHMTYY45tTnwy4XFo?= =?us-ascii?Q?IzB3MG+kfNL3v5rIcFw6j3ZV0wbRK03U2ajjJCE+EvPrAemd/XRSpofi6Fwa?= =?us-ascii?Q?zEwu5Y11Mb+GujkhvKzyGaTloIhylmczqVoVzK9oTqtSTkcdA0AFR3pK0aac?= =?us-ascii?Q?u+kkaWJKLHJ8GXwhY2yd4AwT4ulsfiZA8DMyf5p1N9u6Wc+xizKNYDnvBFT9?= =?us-ascii?Q?lX6aQEPJpV8edzw/bc36aFTKSAh4epjCnNioymDP2dee4w7sNjt/p8gct4Q+?= =?us-ascii?Q?kGI1Yuydrw8JjqJwbsVzut0htZRGsD0SOD4xTqGys77KblxB+1Jn8DFXmxbc?= =?us-ascii?Q?8JtzTy8KDnGY+sHdLpCoFb7HNIvUjCx9vSZs0rNedyGIib5gXVSD8jD25/ll?= =?us-ascii?Q?QQRZl/XBQ5qoDGC/jd1MhfYmPQfV67idGMmQZ9Xs8Zf93Bh+cu9fEWcIV8G2?= =?us-ascii?Q?nw5fRetuIG7H/6yjwJpeNQ4NCqvqrqMO5vqXpmHZ88PHB1kOdli9k3hBJegn?= =?us-ascii?Q?bvXmJdG848tdiO7NwhlvF4ONfMevxO1kon4eLPKkrHQdPRXx4dnvanIBPlcY?= =?us-ascii?Q?uHkCJ2PCqUm13Iw6qjI9jmUz7dCTPKmSMwSRS0PKLfC7TKu+Dh0dytMaVmex?= =?us-ascii?Q?SmGB57WavwOdAGZWHgMB8mrQmUIpeB1tMY+uJNqr+rtZlh2wpa2ewPKLcLtl?= =?us-ascii?Q?Hv/HHmbq43d6WpdTZIeR466sKUNr9wpV0IZ+1yMlDq+so3yVJWzikZCw03dp?= =?us-ascii?Q?xKGpqZ9bEeZmgyIe6xEApgryNH4wN+8ZccenGoSGo+23KURk1NcBOGONGJLK?= =?us-ascii?Q?JYn2nQzp9FGbaTBoZeMVRZL56Qz02IiVVvD9WIFBxLtwj55jQHDIGCt7Q2Hl?= =?us-ascii?Q?KaprGp6xfw1LAqt4RcjijNwQ0ZD/lFvR07VFD15qIMRG8ic6pPLzPMh3vkOu?= =?us-ascii?Q?8JvF/IzcETQ7bWpFbUZ8525AnTlbrSImW+tMxZFVsmb6X/uLW5YLluOl5j38?= =?us-ascii?Q?aBRPHUX+4DdQiu0e8sXKxlY+ryiqK53mOJHTFHOsSdOgEuLk3zasWhdfyy9H?= =?us-ascii?Q?rV214/R3DawSOtAgq+vXW0Zhm1wAmvKc7LErfovitSsQ3PQrfcF8AY5GYs0U?= =?us-ascii?Q?KNCTBdTLm9btj1L5JaFzcQpURuMH0YmEIiCbJTXQSuGk61esJd+7aOOhjIVf?= =?us-ascii?Q?Ro2zHrronQ6wD/QIz6DaV9nkF7GA+rH7luDxNCsF1umBUPZug6lajpRvMAph?= =?us-ascii?Q?gaJl7ge8QeAs0UlS17xQjrwPgR3P97zNwp5UbYdxv3RHl82BnFVvEA68Tot8?= =?us-ascii?Q?/ihvoHVrnK+cElQ2fpr/anshXwUitK1SZMYYVju1vAbVRha71EzfPopnh7Mz?= =?us-ascii?Q?tO2kelnnPLuhfMLW21Y=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH0PR10MB5777.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(7416014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?38+WFLJyFgodf+8Bn9jH1D1wh71FO+6XWclocqObo4fvAYoQ6cKgi4ePScIK?= =?us-ascii?Q?GFv11GgU9tbLGb/cCQekN4zPYUsdUCdA4LlE12TGdIDM1h+RPS9I4cNG+trp?= =?us-ascii?Q?B0fQ9mn7bW9LxdU4LzFTzFOUjC/evU8gJk7oyUpvuLbvUDEEoWado6py66yC?= =?us-ascii?Q?HG25tGa2Ejg/1wY7WXH7P8N0u3Rx9paiZ+nbe7GVQGP/Yf7Vb5/+yp7kE6R+?= =?us-ascii?Q?ETiTm35dDZE81VOjJFDUhaQtx/ywYOKyK5c1TmvXcA1TZerHBrYrAK+MT6AQ?= =?us-ascii?Q?sQfzhCiHdDzIExNHSPFSSLZscjif/MavJ/17Z7E9bVz1QY7DiyyWmUW376VG?= =?us-ascii?Q?Kh2R9I6KoYpG9UiYcnoRrJ06LJqzAQeH5JYxFmsPcPpTCrKXMjWLZ5fS09Io?= =?us-ascii?Q?6PUvTOq5jKkrcgjyQk1oLFPsYc5Oa+MJclb4hardgiVmsiMWccG1+Ac/lxQI?= =?us-ascii?Q?XLm3hG5Gq799fjMI3FLQ87dD7hXIdfK6bhlFaYpylK4YtS7q3+pxjhfe/H33?= =?us-ascii?Q?ZukmgcXZQrIpm46RiFJhH82xBTr6NTaJLgp/GSbL1r+nvZtzK3JAZMJ2ZDGT?= =?us-ascii?Q?A89Y+QO60G8SbUC2C4Bpm0kt5XnKf4KIaOqkJtZo4cWp5DFx45MYggZwDrTK?= =?us-ascii?Q?6ggIz4lSnYphg+hw3Bc0Jf9hDlK+jwi/t0WHh6tDSH+R62oJst5mesTxgMmr?= =?us-ascii?Q?d3soz0su6lsiQFBArB0XffLyaQ1EPXGqSC2MyMRmU76WgBFiCIHCe9wH2x1S?= =?us-ascii?Q?P7+PKMkqteUUI/Nt+bTiYCIC5uWOxBiSfwTVm9/Ns3a9PN4wH7xtuYCp8af4?= =?us-ascii?Q?jvCkU97wli+JSxrrTL3AVrxVmG6ddx5ubyrtauBJuRZjZX1AkMMcRuVR7Cmp?= =?us-ascii?Q?M9hTf9zpYUVzic4lJ7HevvvVCCkjBdmV5Q/mfYHnaa3xxzsNr9yCORFurgsE?= =?us-ascii?Q?nkuHVbEd9ZiSWMKHLWb0/4SUZUuUyhIjc9W3h97xLUS1eNh83/WzS6IOpdGh?= =?us-ascii?Q?VWkoPPWvz1CdGKi+Sru29t77+kFHFhFWRV6NDPH5BqCyDhg4/PshXE7RZRw1?= =?us-ascii?Q?oc67HvzV2DA+PPNIg+/vwUO2IyR8TM47XUGcQtjAWXBAWPG4L8Avl3d6m6Uf?= =?us-ascii?Q?wb7e0g7HvFvUIL7cGTte6hRYVMZgAzwRtPSGzTFwuEumcmXQuh1lS0X46o7L?= =?us-ascii?Q?96bNqaGbQY+5p7/Pr7+iLnQ8F9UMtuRmflRxgOR0j090Lt955Rso6UUAv5Sk?= =?us-ascii?Q?vifb1gmBeH+GcMM5oObx9NY07jJvNpzvagaQeUz5SOaz8W5nV32JnOKCOt9F?= =?us-ascii?Q?97kHy4Znwuayjnmu4Od8AdykLg5N/JLbXyKZTcF2/BpYaqb6kvnvXSbkVCsY?= =?us-ascii?Q?ybizgGVJqH8G6rolXTKlnxYYPo4ikQm+n5lvjleefC9cYk6Jqa8o7HZbrUJi?= =?us-ascii?Q?LMuc8jo70WhV8dnSmmc5Qj1ZtpOFHFGen6w8rCXAt7nDX3ZKEYZ9m0Og/6kU?= =?us-ascii?Q?crvccCy1JjTVaFLK965JW2L+nKg0PGGDwVYIs9hI5FK1RvuxhSHzfSeFq2F4?= =?us-ascii?Q?FcU87MTSDGot4cpRnKbyfm9xUhi3Os2PaszdJNFG9yNwQW/QsgoJJfSCI3if?= =?us-ascii?Q?gMB+lrcbUb4rvm0vVYaBN6bMoKZUC+5TNPH4nhguFGqYftYtVY4KLJ/EDCkr?= =?us-ascii?Q?ne2zwST+n1L5/67N6rO/qGhfw8SW/sTaliXrMFWF5S3FXDIZ3Vh/6LjsVoE+?= =?us-ascii?Q?mdH3PJsw8Q=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 47LGxIQ0Sw+WQG7FY6HsLJn+bTM/JBQCah+HGMMQmTC0Uy/b+HwVpwH0ERsQ/2tkoBiY1lux+N1EBxWn9gKn/Xybts2/KyhMR/CcbQetdNYE2Jv9XPGJs572EUO/B6TY1PqjdbpHavS6x1qguONuzeRv2cO4mwf1IJ2QyCqgSKC3xLu++ZkZeUe7WyrxJ6PbeLHDJ+LGPqnp974pQFDu78PmPtbMmeCUiUyHvjIICWKFupZzCh+mAH1Jx68PQjhn976ydEW6ovZCG6vVZVvoaSDMqOPcBOTNEBJUMrzyJEx9ww5y0d3cSYerWa5VHPPRfPzTgwlfdkvtamXpnxJB/rnESYg33TGn2bdy242viPUPmykBBYLiyRwcbNl3Bq2Z5XkVG0I6N37vofV303aNLjxluGGIKKarI+Fhdch66S3ioZO0c89Bz2R8ajVvAHYiX7XN3CktXj7XsNinmfQ8Q/ybOaQT+mX5ubq69/lIkExxRYVJHxQlL41TzLtp38pqJ+nduTzO0UdWWzO660YQawhIdaaJY5P6czRQjwAwYVjWuht9fgods8H8bZ3qokUnGhDxo3FvG7PsZvM4i9qjiRX+zV09VDC47RpDT5Cpsrk= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6d203c5a-afd9-41e2-c648-08de6042867d X-MS-Exchange-CrossTenant-AuthSource: PH0PR10MB5777.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Jan 2026 20:59:57.4751 (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: hZx6xHy1VsiDzQSy/lukupnp8+grVUS96UR4DKLTMVDuKWx0G1I/4v0ivGRsibVj7BgDnxaHvVVvMtCsdgnkNw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY5PR10MB5961 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-01-30_03,2026-01-30_04,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 malwarescore=0 suspectscore=0 spamscore=0 adultscore=0 mlxscore=0 bulkscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2601150000 definitions=main-2601300172 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTMwMDE3MiBTYWx0ZWRfXyUcDt7FKU5A3 /fD1Y891C5c1JlWKwcTsgvNxBdcAk7M390Li1OvEvjMRYY5qX9G+wiW8ablIm1/mpxzbp7yw1Zc c3MhjYaCvb1YZMcTYOvnDjE23RdvAyf495vKjk98ucQCym3oPwaKBsg0DiaE9nxwfsSFlQfYaoZ 1dLou1AlEoMqHFdwo7LBfFvBX7aXbDODznDXyAiQcRZubiArlFQfwzdTB/6UtldJe4XRflkVP7P ImLJP0c2N80b1mYGjMPHnTYFwvzeOq67BYNoC6SFgC/cjxNHMvO6X/MKco6tpXu+VdsRzJRu4nP YO0GmCQERYNsHOOekE+mJDajfNQJBvtEojtVQN0eV2bswqBWiTH5o3Jn+BGjGTs2nsrcKfk6PdJ 3tR5FHppjx6/w+TUhXMNweedqHKhsbYKuy06ktYyC3Uta5v/hc3BPgN1TeZK1+74EgOWcDp6i51 cEDGTnVmUIJpjpo3GhQ== X-Proofpoint-GUID: iLUUM9VxBtJts_N--7E3mhPgOtTmxs0K X-Authority-Analysis: v=2.4 cv=M/FA6iws c=1 sm=1 tr=0 ts=697d1bd4 cx=c_pps a=XiAAW1AwiKB2Y8Wsi+sD2Q==:117 a=XiAAW1AwiKB2Y8Wsi+sD2Q==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=vUbySO9Y5rIA:10 a=GoEa3M9JfhUA:10 a=VkNPw1HP01LnGYTKEx00:22 a=yPCof4ZbAAAA:8 a=Y5ejhBfbtcslctzzM8EA:9 X-Proofpoint-ORIG-GUID: iLUUM9VxBtJts_N--7E3mhPgOtTmxs0K Content-Type: text/plain; charset="utf-8" Use RCU_INIT_POINTER to initialize an rcu pointer to an initial value since there are no readers within the tree being created during duplication. There is no risk of readers seeing the initialized or uninitialized value until after the synchronization call in mas_dup_buld(). Signed-off-by: Liam R. Howlett --- lib/maple_tree.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/lib/maple_tree.c b/lib/maple_tree.c index 5aa4c95000188..0e0158ee7ba55 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -6260,8 +6260,15 @@ static inline void mas_dup_alloc(struct ma_state *ma= s, struct ma_state *new_mas, for (i =3D 0; i < count; i++) { val =3D (unsigned long)mt_slot_locked(mas->tree, slots, i); val &=3D MAPLE_NODE_MASK; - new_slots[i] =3D ma_mnode_ptr((unsigned long)mas_pop_node(mas) | - val); + /* + * Warning, see rcu_assign_pointer() documentation. Since this + * is a duplication of a tree, there are no readers walking the + * tree until after the rcu_assign_pointer() call in + * mas_dup_build(). + */ + RCU_INIT_POINTER(new_slots[i], + ma_mnode_ptr((unsigned long)mas_pop_node(mas) | + val)); } } =20 --=20 2.47.3 From nobody Sun Feb 8 02:41:40 2026 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) (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 104F33859F6 for ; Fri, 30 Jan 2026 21:00:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.177.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769806845; cv=fail; b=aZV4EDGj5ZMALjma3FAt91QfTB8HVzPEKk0327DySgGAxikwOmvP3t7lvTuoXCzmLsAbdRT4U61f1VjWwV7HSt+vZJTUMMi1VJt5qFFzXkpL7Smku3PA4qKPV3Q0r0UXh0P1jh0FTdl8pnJrhPQnePtCjb76h5qVh+7dP2JuywA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769806845; c=relaxed/simple; bh=BDrFDkBat8MATdocoahHvYfm72NFuwQ50spoKWVsobo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=Hqb1WFEkz0yYGkShedbLQ+u0m+RnLOQWVu66LzjEfzdb+CeFkM1xJ9SbUazleA4uWU7DAV+p+Hdeu+7pM2jYnV7KMk+xlfB9QsQFAsggMNQOVnpxBZrA3Eanr7pi36OuqGtZo7RVzPIYb9mF3n1jgaxPTRMJRfXMmh5lf26Dvzk= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=daVAtDFb; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=Mc1V5h/+; arc=fail smtp.client-ip=205.220.177.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="daVAtDFb"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="Mc1V5h/+" Received: from pps.filterd (m0246630.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 60UKE3Vf4029215; Fri, 30 Jan 2026 21:00:08 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=MR7uPXwZ2+qW4GqAtFuWdYc76VZrpAB9Uw8TQSQ+BO8=; b= daVAtDFbQDQ2OhaehDQ5RPyWed7dwOwvdjyqgl0kKU/+vI9vGSWV33+cQAOV09d7 A+IKMo9MGyCTNpagITKwMWJuBOLPnxX+26tXpxSG+qWQbJIBqEqLB9q8SOfU7ucg GIBgJPk/AcTVcOCYWS6JzAumfpXfdWTaXrPG1KAcUPUHD09OXsDf+dQgIWEcDhj4 la86hM+OVknsfiJHVjek8npFJtTNk1ULJOiFeDOdztbgMJR0/qUY9ZOCDBf+zHiT G9C+oEzW/AE16yX/4752OhDA8PKEMB9V05v7t9UqrT0EEN0K8reGGxHgH1wLMvYB f4yE1JjmTUgAuCNvDqY4Rg== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4c10668cex-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 30 Jan 2026 21:00:08 +0000 (GMT) Received: from pps.filterd (phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 60UJkq9S010432; Fri, 30 Jan 2026 21:00:06 GMT Received: from dm1pr04cu001.outbound.protection.outlook.com (mail-centralusazon11010036.outbound.protection.outlook.com [52.101.61.36]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 4bvmhe6d7v-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 30 Jan 2026 21:00:06 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=jpqPFDlxHBxfcemBYLQ7HLPGqyO+EnCskJQdtc4ukqLYykiCaV0XZj9cMQS6qAakL8AGGSH2/NkPX7+aH3w3Gedwl6fkR52of2b6g1BVO2EUJfXQ57lnhFv4wn6+D7hXCaDYfBvQ9mX7IkWuGIGdtYcLcQNjMiEnPf1wOVFdSfVbcEEHJzm+Ys57siHKj6aFU4CTY814EUrG38KQWUCz8zA2+LO7BXPRUByJtoD3Ol9sGmgqLBeMXRjnExvarbDsvWHjZY334LGk4A/qwT2Z3o9WtVa/AzNZ9WKDKzA4ex0KYYyiBaFJ09dXZnCX086eumVCrI+v7htcL3UbPr1SPg== 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=MR7uPXwZ2+qW4GqAtFuWdYc76VZrpAB9Uw8TQSQ+BO8=; b=OZugpBjrd4XY5YpglyfBfYgHj1ZiA5omWSo0CONhHqWRFOjln6WbxP+ftMzRMJVOuEGkDX/CiE7CxOJh0RUS2aMbhrMuvcTRsoVcXHLrYnVoAkyzToU0qig0H+jiJYTkXuoR7+36SxH91aD7nQZorMBawkT5RGwDJfPC91zpJKYpNIyVzqwN8WNRqnQnciOz1LbKAbqdh/Ydm7m58N02INDnLWBDWnHsYWjgzvwepRF2DyxGuhA67EsHzXxBMTO3odyJAkdurqxINljikP0BQwrlgn8izJUpcd9wMr8G2csG+ToTXpvVq70+MEiqbf4sHCsQd7jfRIJP8lB9IB6lNA== 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=MR7uPXwZ2+qW4GqAtFuWdYc76VZrpAB9Uw8TQSQ+BO8=; b=Mc1V5h/+eoZmKzAfEqpnlGEjppfPg0fEL3gzn+gp8ccRNbreuRusVbAyGi4p79dS0PPKsFB/PQODgQxXvYk0wGduiK0WevAE98j+2LjLPgUDlPj4/GBVVLKkPQn7ZjXsKCjf+zXllxIO0G8Mq56MFvTrr+FIsqJTbCZa6NYEDHA= Received: from PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) by CY5PR10MB5961.namprd10.prod.outlook.com (2603:10b6:930:2e::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.11; Fri, 30 Jan 2026 20:59:59 +0000 Received: from PH0PR10MB5777.namprd10.prod.outlook.com ([fe80::4b84:e58d:c708:c8ce]) by PH0PR10MB5777.namprd10.prod.outlook.com ([fe80::4b84:e58d:c708:c8ce%4]) with mapi id 15.20.9564.007; Fri, 30 Jan 2026 20:59:59 +0000 From: "Liam R. Howlett" To: Andrew Morton Cc: maple-tree@lists.infradead.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Suren Baghdasaryan , Matthew Wilcox , Sidhartha Kumar , Vlastimil Babka , Alice Ryhl , Kuninori Morimoto , Geert Uytterhoeven , Arnd Bergmann , Christian Kujau , SeongJae Park , "Liam R. Howlett" Subject: [PATCH v3 02/30] maple_tree: Move mas_spanning_rebalance loop to function Date: Fri, 30 Jan 2026 15:59:07 -0500 Message-ID: <20260130205935.2559335-3-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260130205935.2559335-1-Liam.Howlett@oracle.com> References: <20260130205935.2559335-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT1PR01CA0081.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:2d::20) To PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) 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: PH0PR10MB5777:EE_|CY5PR10MB5961:EE_ X-MS-Office365-Filtering-Correlation-Id: b6bffa4d-0671-4b79-9a11-08de604287d7 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|1800799024|7416014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?iWsoMHQsyhe/96v4nGw41iNAZD4KTpz1NUzK/cUsLOyjV8V6Q3QQCvQXiiYy?= =?us-ascii?Q?Hut90WvzCs7pLYN+8mJ4BBLm7IHPrR4fh14MAu8eeUmUNNY7eiDfqIO1/8DT?= =?us-ascii?Q?N/AM1Rfrl9FOQVoxWvZP8KShVGzUreNHziSPZizD+YfOGoCz6z3BwNOAyyF5?= =?us-ascii?Q?hW3AZNy4PXpE2gAyECQhFlRxa47YLpIPuiEbOJIQUHEc79kUXo2i1FSK4tBF?= =?us-ascii?Q?ugkNbhgK7wc9ExoPL+FyWwOJ8PRhoBbZNercgMhoGq5706caajF7fFDyl7mN?= =?us-ascii?Q?uDu6KHjOp21XwEvTYedYYv3BWcH2pfH9gcOtJsFiYM+BL9m+wAUbFZ4q2rYE?= =?us-ascii?Q?Uw5XnkCdP0f6cmIKMt3tV2YmbNU/J554MYOz8uDPKBEDi8R6/GxypFf/Cqgr?= =?us-ascii?Q?NlAkCu7NOmzMaoGjNAFDshC0khhyDDI5iWMZwngQdxDgjA8dBLGP8jKMGWeb?= =?us-ascii?Q?uQOzu9ydOuD+N2hqDAYTMmv0avek9bLiM8pu7E9lO9qPtjxUoyYNXzSwj7fy?= =?us-ascii?Q?eCXGKOpUPwPKULWdnaPGwntIRwW/wmXLzV9O7Rl79bUJ917mNP1Sas82lkfr?= =?us-ascii?Q?U6x0FudvqKFsbB8PdbvG/tBa2/lks20j8MDKN3F6itRdLGnlFm+M60MwPeI2?= =?us-ascii?Q?0g9e/bLnFWiMsgaXSVZPM3OjLbgbU8a7xqj4/zChU20OxVwOBzmciU9JbaWC?= =?us-ascii?Q?CtHHgDmWYClrjqewhObmA+a55Ti5huUTCLFeoxf8JC5bVuL1q6h8c0mSSSyE?= =?us-ascii?Q?YAeq+q6PEVyt5bCTDbj3BIqPgZqdGcgzaBVd/c9c8BnCbX9D4TxUNj0xYEVn?= =?us-ascii?Q?VpUmcJohfN1lEF4q4cml+gQ6Htwl9P5v+3dpgdluctm0wPw2xclORBfBeWkT?= =?us-ascii?Q?6KJMpmmHn2YJQnmnDJfY/VrnhDhD4vxftPrRxYDJwV4ZV9vPEIet52gdIblV?= =?us-ascii?Q?GBwLA646BmH5/RUl40WCIMfe1GqfHC1mWYNk/Q2JUmtxFml8JvKOAJmeB4i3?= =?us-ascii?Q?re7BXJkyann0UJLs/z3HkH4kgqjavGwboGF0JnusmFIEIwBM120cQ6SKYydE?= =?us-ascii?Q?ZP3SiQvQGtI19WgFoKpDrxtk/59lYzo7jSXaDTAzbj1s965LAeMSVwApD6yg?= =?us-ascii?Q?97sopGXAuqOfk6o7jAy8xlkaQ33bAqa/JZP7xl6mDtunGNHBxRGw65Otoya8?= =?us-ascii?Q?5E6YdJC+SVjT6Jx+4YiXTsT9jfSY/y+sozg0YN3T92kKPA4C4HAuVEM4K/tE?= =?us-ascii?Q?V7BSa4xOCgL+hYYruq5bK14YfoJ1EucDgJCbpG1Hl8UN7CN3ziHN3d3/jA/D?= =?us-ascii?Q?/RYp1bhQeSBgJj3BbRrz+x4TiItxiHeg9bOYUNVfLQ7wdBYyZjVQfGeRUBxK?= =?us-ascii?Q?Te7sU3v/5tK4ki/rNs+6kUbjRXs2smrw/vniHv22CStirkJ4DSEs1PTETG9l?= =?us-ascii?Q?5mEL4rT/jP7RdoBE2NzGAeeCoYpTOAxvIvs+Fo0nbN9UOdQXXY23uEw63Ym1?= =?us-ascii?Q?nrto/evBxvntuXNUSBgn5JczXCET0sytky+2rER6nejmagSzETtgUFxS0b0u?= =?us-ascii?Q?mHnQuClgimY0V2cpTsM=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH0PR10MB5777.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(7416014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?qDbrsy1hVOsh3qQMS4rxEHHu8zMcBmZCK3g1cbr5IlUIMiUxvh22fAo4ZVKb?= =?us-ascii?Q?YhkinMK5rOfgOz3HciVPFKR2NlHkceT494dh8yO9FFCM241GD6Kb3E2h6Ayw?= =?us-ascii?Q?eIpT8y1DLJ9A+tsnaBjtq+WKhlDg/PntFLxNS7/oXhkoi0dlDMT2V7NGJa/Z?= =?us-ascii?Q?d73Se4Tmjditgk8wZJP7L02YXdU4iei2GWg47V0fX613Etxw+hmZ/A4Fca1V?= =?us-ascii?Q?knJqxARtksyqszecNoj8WqFmTna7mcaLif9OMWsAoVxHczfgYPJtf1KM84el?= =?us-ascii?Q?z3QmxlgdsXnOELyY1xv6mzPfkWJeWFDxl+CJH/nRfZIjwQchNa+3xiATRTUR?= =?us-ascii?Q?/8Haql8nhX1rIidUYSdrB9judIN9XWamXNTjWBDJeJ+wy5USZvyJ6edPeSqR?= =?us-ascii?Q?wd2ETUnilJBzVwS0nA3mJhZLLQ1xOfIMxWL4TZ4hwm2FYmnv33sbuo1Mg1h+?= =?us-ascii?Q?PTU8K4B0Ym3HNPRYNv/VYUz6a0d0A8hFXGpQLO36TUuIWpZSz1cSJ53enEpG?= =?us-ascii?Q?RA6cnS3qhrmSa9ZE4OKd7+DoppKGvrP9fWo5cpx4AlFufsbgKsw+N/piv9tj?= =?us-ascii?Q?iewcLz6sz0CCylkj/gSQpGVUPd725CbuKXHrs3mtotLa5rXfK6mQBN/uBGNe?= =?us-ascii?Q?1fUj4b7pPymOJkXi7XRTaO+t4xwXbaVonWBnt7VyMRrxGZkFF+6847EPzEsu?= =?us-ascii?Q?gev07QoA+SzZ130HMMc8YZ/2HhRzYrpx56B/OMUp5WwCrhUB8st4eTpcgBPS?= =?us-ascii?Q?QVQj7qelbUR5bY9ijCsNTGXTbD4o7ZNoWr+ZhE95NeGY14eSu3HrPBAw2Mhl?= =?us-ascii?Q?b9H8eCAYMtP4VxOg86Y299kvzc38ybqtmEI9V9UBx7WwHaNcRIq1QJ0Eg3Mu?= =?us-ascii?Q?msxj2g9GQFifrXMYDMlvJ0ix6FMfDe/ogezdVDx0ld/1maGouFxWL2BESZ+i?= =?us-ascii?Q?wsP1gDbdMprn9m3nCp37H+bW+TpYGxdQEGx4iahLhgevC+wFuYWJAzkVpwTv?= =?us-ascii?Q?374bB+r3DhDe3avGkIyBD3CrbWsGGswtq2Me/z/ekEoSavPODoveWBeuGvol?= =?us-ascii?Q?Hh9RVRbx8rJQ4/eFrPnWUXkozMrC/yRSf5IFRzvYhgpuwgRPRxD5MsEjiYkY?= =?us-ascii?Q?NzLToLuxwn3vyF9+auPmjfQiRPD2Ov8gsEl3fPC9etyvNezPkmbdEXm1M4wD?= =?us-ascii?Q?m4hKX6cKNneyddB3zrYjGXtNUGEeRt6muMRlhA5TbdxndKIwYlf3A7xkaynM?= =?us-ascii?Q?/VbyTAG6RycDIFWs+rXAXq9mWhfYVKes/jereQpDz3Rk+Irtj4F+BpZU8JY3?= =?us-ascii?Q?pyMu2XxrBIUJVaOz7Cof73kNd3f8wX1pp2EdgInEXa63x2rPyXt0IfxZnMM9?= =?us-ascii?Q?cpso4rYwwpFv2C7nEO/SVGWc8uZ7U2LLWZlmtXSel9lTrL9V0lWiYXdWWAcW?= =?us-ascii?Q?zF3IXbLXDO8kjNKNOWDShTCOR0aAlYeyHDgmikaulJ+5ZNqS7u2K0bp0cggI?= =?us-ascii?Q?METQhKWDtPnei4iFM3iK/SXd9hKk49MAYMxdsdT4spYjwi/fQOXpDgLXxxrh?= =?us-ascii?Q?W8Gj+9Bat/kl2tQ1N+kB7/W+ZdbVC3N7tQPMmpU0mVh6ccJkBRMi7GEdSMbV?= =?us-ascii?Q?XNYoM1jxtm+jrOeGjeqzioKcm+8x4ur28qYKUVr36+EuvRu1AdQFrFYoG8Du?= =?us-ascii?Q?lPp6jP1JVk4vgbqNA2A2e/TroQJFYjdf/iLTkIu9GmPaMDmGFu046O2wTBLv?= =?us-ascii?Q?x3y1J9amow=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: w3LfaRyQX/FbF35RyzcjujiFyOWkkLponl511M/1F08dk1r1OHVVHNOyZk9u7rrrESWox/QBXi2jicwZKnubaaeURVpRzXsho/Qg/7sF9/HtFdVdG8B4dFbXlUDLvvJ8JFsX8Lz3SyGYkjhwtwExI5SH7i9JzZYMqoIoffvfvDBo4Lp0nn7OgCq5T4zgSRSosoIwYEeOklXl3y1Oi5/7hlxyVbkLx9AGetbAxKL7BENrmLKpMl7SGZqpG0TwvZU4PBUlRNnk3QUskCMjsI5NAPWViJqIv+PX45xeTTALPMYPhUEXrw5epM7w219v+fseJ/ROY32OTFLob4KTFM1O+HjlVQlo4NLgw+y37T74lN03mZBVBcom90juMnvF6CvimxA/XekYFg0oEoFbaSSWguT5lvn5FiNmqpiGcGfepQSDdXezfecuCafW6hXaFK8hqOTXIV18rL8EjTXAlNOr1tKq/MVy5EC7SVpORPmLXnYKNkahklLeun0gmdCn7rNnuDWvxB4AuTsKj3oVOXoOEyc6hDzkCDX1nC54l9TLj3zKgQz35ZLnoNvmgWOMPE8ZtpTK7Be1nnkMfKWR/3xylEgy65muNcp7E/fC+kys/kM= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: b6bffa4d-0671-4b79-9a11-08de604287d7 X-MS-Exchange-CrossTenant-AuthSource: PH0PR10MB5777.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Jan 2026 20:59:59.7804 (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: 8AXVtSVbn4ZQ1t+wb4BqeMnGl9+qFlcmggGuopFzpz+F5hg3gy6umV9k3by1mCLqdXk0uLEGFDyRc7l3uihc7g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY5PR10MB5961 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-01-30_03,2026-01-30_04,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 malwarescore=0 suspectscore=0 spamscore=0 adultscore=0 mlxscore=0 bulkscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2601150000 definitions=main-2601300172 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTMwMDE3MiBTYWx0ZWRfX3QsCeEPgnW1L mip3Pfl0GopEyLpiHrkE08ObBtfTbxJynOh83XFsJFeG30v0OoP0YGd9oUYX1TmCeOQO8/N4xxL f8G63HJDM/MbtAObjECNdJBFLiijTeYElH4Ij8mZDgqBpns+RakNctQ78X1vo+quiufDvzEdIRT zXFBWn1iXp8B84gzwAlMnOkcOfv9qpbWbGwV3sgTRzKfygSw/iCZq53HitkgsgdjukILglCYWyS luzU1P/bTz5L+DeyppDPON71EOQ8kMH+K+4arGf/GtB2doPJ69cms4y3eN/ruayaBLU/1moABsr NibQdlPw29V6GIbRWf5LV26dja58A5AsZnWYpZzRB4/0yrdjGpYbiJcdGDg9H+WaoH3oXJWNA3g nu0MjMglH4zKh9TRyWYmaJI5A/H/JzsDZjcxLVfqYxtDJ4Bu8wvSzy8sg+lTdr5Aq3cqr7LdBlq 4jnoBsaSqWWGud/qRNg== X-Proofpoint-ORIG-GUID: hn6NqjPHL9hIREfChkW0558AfZ0-vU7K X-Authority-Analysis: v=2.4 cv=EebFgfmC c=1 sm=1 tr=0 ts=697d1bd8 cx=c_pps a=XiAAW1AwiKB2Y8Wsi+sD2Q==:117 a=XiAAW1AwiKB2Y8Wsi+sD2Q==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=vUbySO9Y5rIA:10 a=GoEa3M9JfhUA:10 a=VkNPw1HP01LnGYTKEx00:22 a=yPCof4ZbAAAA:8 a=KfpCAqERy7lSuQKxsjcA:9 X-Proofpoint-GUID: hn6NqjPHL9hIREfChkW0558AfZ0-vU7K Content-Type: text/plain; charset="utf-8" Move the loop over the tree levels to its own function. No intended functional changes. Signed-off-by: Liam R. Howlett --- lib/maple_tree.c | 108 +++++++++++++++++++++++++---------------------- 1 file changed, 58 insertions(+), 50 deletions(-) diff --git a/lib/maple_tree.c b/lib/maple_tree.c index 0e0158ee7ba55..70ad474e6ed14 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -2595,49 +2595,16 @@ static inline void *mtree_range_walk(struct ma_stat= e *mas) return NULL; } =20 -/* - * mas_spanning_rebalance() - Rebalance across two nodes which may not be = peers. - * @mas: The starting maple state - * @mast: The maple_subtree_state, keeps track of 4 maple states. - * @count: The estimated count of iterations needed. - * - * Follow the tree upwards from @l_mas and @r_mas for @count, or until the= root - * is hit. First @b_node is split into two entries which are inserted int= o the - * next iteration of the loop. @b_node is returned populated with the fin= al - * iteration. @mas is used to obtain allocations. orig_l_mas keeps track = of the - * nodes that will remain active by using orig_l_mas->index and orig_l_mas= ->last - * to account of what has been copied into the new sub-tree. The update of - * orig_l_mas->last is used in mas_consume to find the slots that will nee= d to - * be either freed or destroyed. orig_l_mas->depth keeps track of the hei= ght of - * the new sub-tree in case the sub-tree becomes the full tree. - */ -static void mas_spanning_rebalance(struct ma_state *mas, +static void mas_spanning_rebalance_loop(struct ma_state *mas, struct maple_subtree_state *mast, unsigned char count) { + unsigned char split, mid_split; unsigned char slot =3D 0; unsigned char new_height =3D 0; /* used if node is a new root */ struct maple_enode *left =3D NULL, *middle =3D NULL, *right =3D NULL; struct maple_enode *old_enode; =20 - MA_STATE(l_mas, mas->tree, mas->index, mas->index); - MA_STATE(r_mas, mas->tree, mas->index, mas->last); - MA_STATE(m_mas, mas->tree, mas->index, mas->index); - - /* - * The tree needs to be rebalanced and leaves need to be kept at the same= level. - * Rebalancing is done by use of the ``struct maple_topiary``. - */ - mast->l =3D &l_mas; - mast->m =3D &m_mas; - mast->r =3D &r_mas; - l_mas.status =3D r_mas.status =3D m_mas.status =3D ma_none; - - /* Check if this is not root and has sufficient data. */ - if (((mast->orig_l->min !=3D 0) || (mast->orig_r->max !=3D ULONG_MAX)) && - unlikely(mast->bn->b_end <=3D mt_min_slots[mast->bn->type])) - mast_spanning_rebalance(mast); - /* * Each level of the tree is examined and balanced, pushing data to the l= eft or * right, or rebalancing against left or right nodes is employed to avoid @@ -2672,10 +2639,10 @@ static void mas_spanning_rebalance(struct ma_state = *mas, =20 mast_ascend(mast); mast_combine_cp_left(mast); - l_mas.offset =3D mast->bn->b_end; - mab_set_b_end(mast->bn, &l_mas, left); - mab_set_b_end(mast->bn, &m_mas, middle); - mab_set_b_end(mast->bn, &r_mas, right); + mast->l->offset =3D mast->bn->b_end; + mab_set_b_end(mast->bn, mast->l, left); + mab_set_b_end(mast->bn, mast->m, middle); + mab_set_b_end(mast->bn, mast->r, right); =20 /* Copy anything necessary out of the right node. */ mast_combine_cp_right(mast); @@ -2708,17 +2675,17 @@ static void mas_spanning_rebalance(struct ma_state = *mas, count++; } =20 - l_mas.node =3D mt_mk_node(ma_mnode_ptr(mas_pop_node(mas)), + mast->l->node =3D mt_mk_node(ma_mnode_ptr(mas_pop_node(mas)), mte_node_type(mast->orig_l->node)); =20 - mab_mas_cp(mast->bn, 0, mt_slots[mast->bn->type] - 1, &l_mas, true); + mab_mas_cp(mast->bn, 0, mt_slots[mast->bn->type] - 1, mast->l, true); new_height++; - mas_set_parent(mas, left, l_mas.node, slot); + mas_set_parent(mas, left, mast->l->node, slot); if (middle) - mas_set_parent(mas, middle, l_mas.node, ++slot); + mas_set_parent(mas, middle, mast->l->node, ++slot); =20 if (right) - mas_set_parent(mas, right, l_mas.node, ++slot); + mas_set_parent(mas, right, mast->l->node, ++slot); =20 if (mas_is_root_limits(mast->l)) { new_root: @@ -2726,20 +2693,61 @@ static void mas_spanning_rebalance(struct ma_state = *mas, while (!mte_is_root(mast->orig_l->node)) mast_ascend(mast); } else { - mas_mn(&l_mas)->parent =3D mas_mn(mast->orig_l)->parent; + mas_mn(mast->l)->parent =3D mas_mn(mast->orig_l)->parent; } =20 old_enode =3D mast->orig_l->node; - mas->depth =3D l_mas.depth; - mas->node =3D l_mas.node; - mas->min =3D l_mas.min; - mas->max =3D l_mas.max; - mas->offset =3D l_mas.offset; + mas->depth =3D mast->l->depth; + mas->node =3D mast->l->node; + mas->min =3D mast->l->min; + mas->max =3D mast->l->max; + mas->offset =3D mast->l->offset; mas_wmb_replace(mas, old_enode, new_height); mtree_range_walk(mas); return; } =20 +/* + * mas_spanning_rebalance() - Rebalance across two nodes which may not be = peers. + * @mas: The starting maple state + * @mast: The maple_subtree_state, keeps track of 4 maple states. + * @count: The estimated count of iterations needed. + * + * Follow the tree upwards from @l_mas and @r_mas for @count, or until the= root + * is hit. First @b_node is split into two entries which are inserted int= o the + * next iteration of the loop. @b_node is returned populated with the fin= al + * iteration. @mas is used to obtain allocations. orig_l_mas keeps track = of the + * nodes that will remain active by using orig_l_mas->index and orig_l_mas= ->last + * to account of what has been copied into the new sub-tree. The update of + * orig_l_mas->last is used in mas_consume to find the slots that will nee= d to + * be either freed or destroyed. orig_l_mas->depth keeps track of the hei= ght of + * the new sub-tree in case the sub-tree becomes the full tree. + */ +static void mas_spanning_rebalance(struct ma_state *mas, + struct maple_subtree_state *mast, unsigned char count) +{ + + MA_STATE(l_mas, mas->tree, mas->index, mas->index); + MA_STATE(r_mas, mas->tree, mas->index, mas->last); + MA_STATE(m_mas, mas->tree, mas->index, mas->index); + + /* + * The tree needs to be rebalanced and leaves need to be kept at the same= level. + * Rebalancing is done by use of the ``struct maple_topiary``. + */ + mast->l =3D &l_mas; + mast->m =3D &m_mas; + mast->r =3D &r_mas; + l_mas.status =3D r_mas.status =3D m_mas.status =3D ma_none; + + /* Check if this is not root and has sufficient data. */ + if (((mast->orig_l->min !=3D 0) || (mast->orig_r->max !=3D ULONG_MAX)) && + unlikely(mast->bn->b_end <=3D mt_min_slots[mast->bn->type])) + mast_spanning_rebalance(mast); + + mas_spanning_rebalance_loop(mas, mast, count); +} + /* * mas_rebalance() - Rebalance a given node. * @mas: The maple state --=20 2.47.3 From nobody Sun Feb 8 02:41:40 2026 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) (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 B5C883859D5 for ; Fri, 30 Jan 2026 21:00:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.177.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769806848; cv=fail; b=e4JgAYk6j5u/iAkTIRSlgP0vWCQl2QkTIp/tqOKGjtgPdrp8LqSAwXCfo9ZuMMitIbz832Vs6CWKbK2OyFZmxBfn3bQRt+a5h12tlAUSgUB5irGkd/r6puAjwieSTMir1kqB/gdi98b3m2AUujS8cVgAdr/vg1WSwfeF3FgrMms= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769806848; c=relaxed/simple; bh=vD18d3+5UjQSMz+nXbQTPmB5QFpPMdieIhuMbpIYmz4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=sBm+jhahVPx0HPmOQpRgpZ3R4XZMhXUmGbrTywwsOLLmV5+SVzL+ad1xOaMrn8odrGpmsObjTTFhgUZTpFVzpmMe/OBCOuIZ33/Pzlfsu1XuAgs2GEtVCKLtSh5bu9XuNDo7+faAKRUp/6/Z0VgyEktqwPrUYtb0w/vwLb82ehU= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=UjnboYKY; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=fuIEtNG2; arc=fail smtp.client-ip=205.220.177.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="UjnboYKY"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="fuIEtNG2" Received: from pps.filterd (m0246630.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 60UKDIDG4028214; Fri, 30 Jan 2026 21:00:07 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=L30JJ1psmkMPakOhtTEkNu26hTHGCmn7dafYI9225y4=; b= UjnboYKYfO1w9WNsrsbMV0RLOZHED84NhzrwGsOf/SbWqYb/+ht5WEDIj7itOGgs 5y4L52C4VzJxUReTWGnnzgY73/eAeK6PA+M/2YIsKB/ETa8vZ7KlMuPVAlYCNQTO KnoomC2O7qBt5yp8HFi8zFpCQP+FX65j6vtjGJ1AuLKYfD3uB8wvlTODF+feUprU u/9ed79u9je8tgEYLGtZtjxQDJ1F36wuzQDuv/+5CQC0ZNVUjfiz7xOfLEj/w1nq 7yQMF6Jl1gcMfcY0VuTeTv/ZvnKPtMeueqQg+i5MlQ893scoI6s44bPK6R9i0KU3 wwkHJp/xXRfIJC04yUCEvg== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4c10668cet-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 30 Jan 2026 21:00:07 +0000 (GMT) Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 60UJ6DU4012456; Fri, 30 Jan 2026 21:00:05 GMT Received: from bl0pr03cu003.outbound.protection.outlook.com (mail-eastusazon11012051.outbound.protection.outlook.com [52.101.53.51]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 4bvmhe5fr8-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 30 Jan 2026 21:00:05 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Ls70rIFvIdRUvX/xCtO85Luqev66cj+KYmxp84Qzrb6YZP1OEuQfepbE2F3OG+Q/Eop4+9hZ5PfEDkfui/oEGmlXJMeMV3Qa8X82K/LChPdIoq4qwzuMSDtRNF/pIQWci315jLivVFTpw0sqmyx1peh8X5rJ9a8j7PqTTNOK63goeTrBSKoXGpH1kDVUF6mKR48m/vnLoZ6UIQrl1luwQtAUgO5s4UvXDK1wpXVf+eMKm9T4ZmxE1KuneJvm3vpimPUIbUN0seIKoKYh/BMU7bT1TGnxZPSrdJcG9AGM4spo6Iq6pGFU9Nc3OnfHDcIE4r7xnPHUTZX3+cFwzsyXYQ== 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=L30JJ1psmkMPakOhtTEkNu26hTHGCmn7dafYI9225y4=; b=loy9a4SYjoV1QF/A/dsLHiTQf5k91zxt6BdQZzkHTMHAyvo08jznqDaWZisvr75f47MymY4m+0GMnXyjZeRKoybCDUKPHxa3sY7E5n6GTG6Tb9RsFGY7jqPnKCLibdP6htglS2gaJ6Q1yJS8gbpwotETUNOZfbNNp5oM+vpmNk+I7F1rQT5y9XjxwtMP3AIUK001jBCs3mznN4m+VfriYcJ+jQhjX/aDhS1jUsu/siKRLg6BL0vdA1eNQ08VC3R/3gHFx7YGxIi0PYNKhZ6cVV6IBTdGMWGjehTzjAttK0OFPHE7boSQIlOdS1/vgr7seOMX7sgPjaM+ljb7PA4IcA== 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=L30JJ1psmkMPakOhtTEkNu26hTHGCmn7dafYI9225y4=; b=fuIEtNG2i8ExKcqCG6pGxp4sTrw1ZtUzMP9FGTEbCJtlVUIvJlYSogPrsf5O8IuCGUgZiLgHfIVpht+doraqBquHELLKbnce57nskphXuuaQxVMpxZcOatsJqn10S8y+/sg8ykZ/wlvlkUvBnBoWTUJ9fZbmEycuA4EBPzZAe5I= Received: from PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) by SA6PR10MB8061.namprd10.prod.outlook.com (2603:10b6:806:43a::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.11; Fri, 30 Jan 2026 21:00:02 +0000 Received: from PH0PR10MB5777.namprd10.prod.outlook.com ([fe80::4b84:e58d:c708:c8ce]) by PH0PR10MB5777.namprd10.prod.outlook.com ([fe80::4b84:e58d:c708:c8ce%4]) with mapi id 15.20.9564.007; Fri, 30 Jan 2026 21:00:01 +0000 From: "Liam R. Howlett" To: Andrew Morton Cc: maple-tree@lists.infradead.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Suren Baghdasaryan , Matthew Wilcox , Sidhartha Kumar , Vlastimil Babka , Alice Ryhl , Kuninori Morimoto , Geert Uytterhoeven , Arnd Bergmann , Christian Kujau , SeongJae Park , "Liam R. Howlett" Subject: [PATCH v3 03/30] maple_tree: Extract use of big node from mas_wr_spanning_store() Date: Fri, 30 Jan 2026 15:59:08 -0500 Message-ID: <20260130205935.2559335-4-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260130205935.2559335-1-Liam.Howlett@oracle.com> References: <20260130205935.2559335-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4P288CA0055.CANP288.PROD.OUTLOOK.COM (2603:10b6:b01:d2::12) To PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) 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: PH0PR10MB5777:EE_|SA6PR10MB8061:EE_ X-MS-Office365-Filtering-Correlation-Id: 34e97b15-c343-4d99-7084-08de60428910 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|1800799024|366016; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?DRD4jePw0xLVYlSIeoa6BRHmwD2K7d1lSWNEs+sn0tFIAzic6muxeqajLytP?= =?us-ascii?Q?HSwt3EAY0ZxW/VCZP1PEp1S5drbsvzQU5CJswllQv9epCJwV3h5bttEg0iSB?= =?us-ascii?Q?Uhcl68y0jrFLiwVICI/oQiMPw3I0JAtR9yMUr6YNEB9RI5CAs6TgFTG4X4TL?= =?us-ascii?Q?KHAr6DrnySAgd1peSg1eCy2maOAbnxLop+7TQuWyT0wdHIxEMA0axhrYs0uH?= =?us-ascii?Q?BtQaVvCa1YfT1VqqFNj6n9Z1a3tBhyuU87+E3sLV8XNaV7U29uC+7UIuZGHr?= =?us-ascii?Q?6GPPTkSK5bXOrncOUCDGdHzsk9AtgC119rwv0KlNnmaUFNS3t0hj6PsGoeTf?= =?us-ascii?Q?1CHIvg3GB4kkTFPKadX5DXcRhVy5fHHs10jfI3aYOCdFDbfdB52K5YqUGD+p?= =?us-ascii?Q?eykPXZlBX5c66YyPlk7ICJWkSeIWg5k3bMKWJrcdpf3+8xSx7gqt0AlGCeQk?= =?us-ascii?Q?8P2nTuqhvgthuU5m5CuIV80QF/wP/V86orzlPQW6lRiybv8X4hqW7r13hG4i?= =?us-ascii?Q?LmDUGt1q1RfYwlQyPMNBnhsyseBbs2BM/yGQ4bQlqBX+6sGLsq1l1dFBCNJ2?= =?us-ascii?Q?dyw/uV63+wHH/SSKqDQJolW6ejqh21Rq9064tkf3wcTAxUKwdrnt00mFA8zI?= =?us-ascii?Q?VL+1EQBB+/8+n60uqfsdaksEOzYFwxv8S/SDLLifqYckmCvbm8CKga7kTkrb?= =?us-ascii?Q?qc9/Tl+L3Y2LWlfaVP58vWHl12gC5j/okiLLtfKFudXcbvM/l4iiL9NMELop?= =?us-ascii?Q?CD6+LK7XLAdR1taoCiWnuE+oYtLZEbCd/yXAJEeK1ao5bUcXgSova/BfD72J?= =?us-ascii?Q?7gPlqjO53xm+Ik5iEMzpuzFdu/WbIfDNw2CLxro2oTqpd5GvQYtIK0/pyq4V?= =?us-ascii?Q?1sv5dPk6TBRkwVDLsekl32G+xCvAEaMzGgihYnCyWCL4z+VNaTgyOfvNCJDP?= =?us-ascii?Q?DSQZqviffoMOWUver1liCSX9HGIhmrY4CTXLPhNlOFLzmBVTVE84pRdfDqP1?= =?us-ascii?Q?igB5xsbbxQ1NZQCnKHrB+jAxDvbD34rSSbnUn1DdHaewHyFklIegdsti+K3O?= =?us-ascii?Q?sYC0K/2k/KuK2kJ5zXm4KG1IOdh9gPi2H39gwTO5EoAvc8kE1+K95WPmG2oU?= =?us-ascii?Q?qrOWbEc7Sq1g3RF4HmZI+v0eFErH+bAfwbBMyrV1kJ8N3s6OTTISFyMj3D4Q?= =?us-ascii?Q?FvxhQ6JFfeFUFgQAX8TD6qmKJbnBgqDPQWF6iiG8IcpPvMAYKvqXDf/NVyD5?= =?us-ascii?Q?bSE+0aiT0QWMFM1BpMUr4sB0DxuieiKXE0SjW4R/Cukt27VN2mtj/2Npkj3E?= =?us-ascii?Q?Bzue6nXTR9xroV85xOMtySNPPuxLd3ipkhXGvnL0xN9MnTk+STIVZjKf5l5v?= =?us-ascii?Q?cxtEWDx5c9pFqwoYnYWJ3knQKGWzYQPQjujH/qNg95XUCNxRJe4IfnEQgYB0?= =?us-ascii?Q?10/UbLB5CclNaTanmWaRN9rgHFL2CIrUjcK4ihU+mZwP//014p+g3voUhHeJ?= =?us-ascii?Q?O0ZQPxqqD85JV0QtPo7zT9Pse45hLgJ38d3AWbuR6SeQBFN5mVmEt/JRGtDn?= =?us-ascii?Q?0RDhdDGABAHk1NF3pXw=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH0PR10MB5777.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(1800799024)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?kXfTA7Egfx+5ZN8lZ/JJ30gHfUNPcahuYounxHosJENbMFXP+QzpKzAYVuDK?= =?us-ascii?Q?qSLj9N1yNjbyosW2vvBVQ807+u+IyM4T0yXK7Wc0WOzz0l2qGilbV1ncYraY?= =?us-ascii?Q?2+ZPqv/OLP0L4fZHXt+CaYjkQFPcyX2230nFeVeMrtckvfqiDdp/A7XFnZA1?= =?us-ascii?Q?/dsnuunQQbhZ/kXrQNXtcMBmCqpDe8CGiKTvc1OsdqU8uJoaA/KkJGrLm8nO?= =?us-ascii?Q?zLskwkir7xTqpJuijXbmHv1EKhfuP1SNo0TZofWZXl4JpZ0YynoNKSrZVhGI?= =?us-ascii?Q?eXALVlZ4Ds+ijuF0WQPU7sKRUGxDkEQQQNxdnUHl6JF1yVULwL9n0M68wEsk?= =?us-ascii?Q?T/Whstn/vx5lFizDfEb1kRuy1/jPmRnE8ZdZWQpWHnEENBF4kgqnj/t+s/YV?= =?us-ascii?Q?yCCk+Pj9hStn8TU3iQFXzrmTX2fSSLzwNCAo1xmE4NZgcyeHlDlkpZJ0EpSL?= =?us-ascii?Q?X9XGZfFeIz2VovsUkEWnaJFQjFO5oPnNFCxjKWA+lIrV7IIcs642li1yG+58?= =?us-ascii?Q?aBQEj5vGa9WBSg16Di9pFrMXvqXbOw9QFfzKsmi5YRVL39nFx+eMBOWImoaC?= =?us-ascii?Q?WYA2nbFS/k+s+VR8lCotFkOAGvC2NKCFYomDAet/Nj6yXqNS5G7KPQeNg8I4?= =?us-ascii?Q?bz+ZR08NWl4/uxCFHw4HnjpaRucNK2QrDnLqpG6tYbBC2V4OCMP/xZmRhHoD?= =?us-ascii?Q?D9GXrWoe3VRsQlRynwCjlA+iqbhxndluMtn9cDOVEyF44/ksmCiNOWghnp2I?= =?us-ascii?Q?dhJV3B9JX8Nf53ktz+D6etRPgDXu58sxeYLL5lWswqEX6NMnN6Cb0YJsupX0?= =?us-ascii?Q?8IN+KMEhMJk8DSN6SMcBgVBHHDV1XKOXWM18s5sFe5Tdw6v80/c7U+S/E6UD?= =?us-ascii?Q?0Hp4LCb5O+wHW3qzib8W2xLGna6Ys+ioQm85McAR82/bJ3MX0kVMW2wx773h?= =?us-ascii?Q?sHOavi8CO76FCMWaX4g/FZoon9CBuYw1C4KF0GUHyxcAS4gG41QEod9pTNji?= =?us-ascii?Q?U9hldWeOiDZEvTc8cNslosOf30ps7sNPEUJuoonP1+GDb5Ukp+q29SCT7c+d?= =?us-ascii?Q?kdTcqK6mFo2VnrEnmTQWAoWiZXKVmFNa85gwJ/TfmO9H4kbd3MnTiYUOPlZM?= =?us-ascii?Q?CVvqZ8nXqNo0gkJ/anT4BTkE7k0f9yKpqqifCXpmT1ePwzAs2S501E7DLOyQ?= =?us-ascii?Q?I7pmGO32eT8TG9cVDEeToxNidC6LJV6XlrxDdLYnMREv6pHClUpjdH8xc/ZO?= =?us-ascii?Q?zAaWUfkAw47x9tWtDGvoebLTAftUzIUFUQlTZX+KIhDM6aDOUhUzwHK0s3QM?= =?us-ascii?Q?U8VS+AumqSL8bF1tw4x5OZsjE2YPWOgSB3P6nTBfDxxtJiOGpFRWm5EyWLOS?= =?us-ascii?Q?2IHbwlNtc0C4T2E1HsIdYy7ofiXnVPKuYphkgRdTiZqDSVcmaq5903a3QcK4?= =?us-ascii?Q?y5MipIFowz0l4tUTLdvyZlKT0V3UeJGCmG3iKIH6ivFwt9F910514l+jOOwl?= =?us-ascii?Q?LN+7kUf9jMWDyK7TKZa+kSWiqefTS17ppWx7knrba/Lmxl5vjN1b30rYdNQe?= =?us-ascii?Q?bYN6yiBroSkfi9uHxImBKWki8Lqz4x4nfQmMozUYlDyLfXzUYiU035Xnrmw0?= =?us-ascii?Q?TvECNVcdIDNuZCdvqvwsIbIlPjeXTbHvtkPg1vgvf7CzVlA9JmT48Z/pycO8?= =?us-ascii?Q?HqeTjn2Sp7FLVa05DBMHgZcY+onB6r3XCVlq4hT3525UF6cL9+58TaWmucMh?= =?us-ascii?Q?8bW5GfTyBw=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: g+0PI45DpYHM8l/Cw+7+8cNpk9WYO5iFC2LnoYed01FLrrIXvvRIyy+XzRYJJf8TQpu0Uqw6mDkhA//SYZYUVmRILgi4mefiIw5DUUvNhBH1OMnzZ5HRyXcIUbkCdtRlKDGnzY+KGVXYEnxqxBh3sjmurVEUT0/4ZSynkGkDT/gnYoZGlRCARl+GvewPCLTf7jiRXV1A1wdjBcc7xl10IH75Z0ZhFHMZd1y9FMlQq33wLsHndIMLyB0rhOj/hW1W382FNlpJasuVzL0kPxoOXZBl3vVfizsRRvI++wPIxFBo+0VFk3C+frYHmomCcYUDYZwcqaQy0vnHg1Mf7QraSI0pXeq46zJ3Pz2L4CvDkTbAW/2mO7HpaCzlbwfMoRzD9peZsPzWV6qaTFO8Z47OJXtWAbNz3SwXrCkqZLgHy/ZJzTIr+7bdAxCABJQrpFVWZFZSQBZzJu6inzg5DRIYW+GlgMwxe54YRrcQffVdlARlY6pFML9xo5kC5Umro7hCqsEWD9NwxOgEmwAzyV1Yt+O6/D3AwPX//rpOnDJtNYkelOjzzzfGSaSbqxtP6+nxjJvYuKrmcyXUnszNe9XvQmYIG0+Pod/S6ghIf9M89wU= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 34e97b15-c343-4d99-7084-08de60428910 X-MS-Exchange-CrossTenant-AuthSource: PH0PR10MB5777.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Jan 2026 21:00:01.8073 (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: qRtd8n3hCbWGvIMWz+VPWwpJGVyIZNdGHR6VBRsjVb7W9BN9QDGXpQPprGBX35JdhnvvlBdgv4qhms/03cFKJA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA6PR10MB8061 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-01-30_03,2026-01-30_04,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 mlxlogscore=999 bulkscore=0 mlxscore=0 spamscore=0 phishscore=0 adultscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2601150000 definitions=main-2601300172 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTMwMDE3MiBTYWx0ZWRfXyQAualn74See TB2Iz96sgoJpwtNsJrXAuuXB89DyLIXAoaaUcKQ3muTtluYyRGxvmphlubJrODHMu1y9aleyV1Y CYf3g/N+SHZYjvjxjvnyKtf9vhb8opltZFIvSw8QYvT4KJDNByvyMQPKJ1KtRMksAwEUMPWk1f6 f937MzS1QPNwAFA3zCnZUyfGqEM7KYxF9pQBLw7vAx4wB/0CfnuTAho4yto2Xto+Rbo1MFzzWUi lSuo1bkYgmGYvpVPRyuRYpOctMZNLB8INk9Yf+JlxG73Ux7Ib6Z2lwenxgkEKDok81nqyLs8ghK SURzQZyJswSoOsyCZGc4PRnACzsEtviqr96xXrpFZDLKa/75qXC1DlC5tYun7QzzPCI39wIicuK 3D70B3wUly+iQVRB2gZY4iXwqCRrsBQbaQP4Zjt5YuVrw/unABES3dS6IKaABBUUNI+GAjnL3vK 42vd3Es5yNyYTb+ISFQ== X-Proofpoint-ORIG-GUID: gMxYYy0O_Dsl5rncrGCCV5qL7s95_eRv X-Authority-Analysis: v=2.4 cv=EebFgfmC c=1 sm=1 tr=0 ts=697d1bd7 cx=c_pps a=OOZaFjgC48PWsiFpTAqLcw==:117 a=OOZaFjgC48PWsiFpTAqLcw==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=vUbySO9Y5rIA:10 a=GoEa3M9JfhUA:10 a=VkNPw1HP01LnGYTKEx00:22 a=yPCof4ZbAAAA:8 a=_QQW3CUrkSdKJg9byCUA:9 X-Proofpoint-GUID: gMxYYy0O_Dsl5rncrGCCV5qL7s95_eRv Content-Type: text/plain; charset="utf-8" Isolate big node to use in its own function. No functional changes intended. Signed-off-by: Liam R. Howlett --- lib/maple_tree.c | 44 ++++++++++++++++++++++++++------------------ 1 file changed, 26 insertions(+), 18 deletions(-) diff --git a/lib/maple_tree.c b/lib/maple_tree.c index 70ad474e6ed14..9ab42821ee2dc 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -2748,6 +2748,30 @@ static void mas_spanning_rebalance(struct ma_state *= mas, mas_spanning_rebalance_loop(mas, mast, count); } =20 + +static noinline void mas_wr_spanning_rebalance(struct ma_state *mas, + struct maple_subtree_state *mast, unsigned char height, + struct ma_wr_state *l_wr_mas) +{ + struct maple_big_node b_node; + + memset(&b_node, 0, sizeof(struct maple_big_node)); + /* Copy l_mas and store the value in b_node. */ + mas_store_b_node(l_wr_mas, &b_node, mast->orig_l->end); + /* Copy r_mas into b_node if there is anything to copy. */ + if (mast->orig_r->max > mast->orig_r->last) + mas_mab_cp(mast->orig_r, mast->orig_r->offset, + mast->orig_r->end, &b_node, b_node.b_end + 1); + else + b_node.b_end++; + + /* Stop spanning searches by searching for just index. */ + mast->orig_l->index =3D mast->orig_l->last =3D mas->index; + + mast->bn =3D &b_node; + /* Combine l_mas and r_mas and split them up evenly again. */ + return mas_spanning_rebalance(mas, mast, height); +} /* * mas_rebalance() - Rebalance a given node. * @mas: The maple state @@ -3400,10 +3424,9 @@ static inline void mas_new_root(struct ma_state *mas= , void *entry) * span. * @wr_mas: The maple write state */ -static noinline void mas_wr_spanning_store(struct ma_wr_state *wr_mas) +static void mas_wr_spanning_store(struct ma_wr_state *wr_mas) { struct maple_subtree_state mast; - struct maple_big_node b_node; struct ma_state *mas; unsigned char height; =20 @@ -3467,24 +3490,9 @@ static noinline void mas_wr_spanning_store(struct ma= _wr_state *wr_mas) return mas_new_root(mas, wr_mas->entry); } =20 - memset(&b_node, 0, sizeof(struct maple_big_node)); - /* Copy l_mas and store the value in b_node. */ - mas_store_b_node(&l_wr_mas, &b_node, l_mas.end); - /* Copy r_mas into b_node if there is anything to copy. */ - if (r_mas.max > r_mas.last) - mas_mab_cp(&r_mas, r_mas.offset, r_mas.end, - &b_node, b_node.b_end + 1); - else - b_node.b_end++; - - /* Stop spanning searches by searching for just index. */ - l_mas.index =3D l_mas.last =3D mas->index; - - mast.bn =3D &b_node; mast.orig_l =3D &l_mas; mast.orig_r =3D &r_mas; - /* Combine l_mas and r_mas and split them up evenly again. */ - return mas_spanning_rebalance(mas, &mast, height + 1); + mas_wr_spanning_rebalance(mas, &mast, height + 1, &l_wr_mas); } =20 /* --=20 2.47.3 From nobody Sun Feb 8 02:41:40 2026 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) (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 4E0A8302165 for ; Fri, 30 Jan 2026 21:00:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.177.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769806844; cv=fail; b=DhZ5V/T5avEttounIB3NJLz8t4pPYosyKfTGul/65l0tIlSWu+di3DG1hHXYUsKVegNWsVfwWEOX+EbZ/Yt4nsiByKBJPDWySqLNdU7pI6a9sQf4eASGJcksdzGyriOP2VvuFkcvFbKzU6dcDQb70nvCS1ng8ah5GU/8epfvUz8= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769806844; c=relaxed/simple; bh=YPqdiaY9P3ZCoSDJd+4ZZoAEfYauIJFoLWcPnlHCQNs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=V3EsfN4zJpWaq/6f6ZoaPOhBr7zXjAmmxkl2i0yIkWCs1Tk6KYiw+507iYn2WnMJ0NHDJ8LiMU0+1mcwTreqHSkELW+2P6x4lsKnzvxBquCFneBC15fDcXDL6++ENTJf13FQ39tMlyHQ0yVTtKDvf8j/DZR1EjeWAo/AhZjSywI= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=G8LDvpQW; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=SWmwwfOe; arc=fail smtp.client-ip=205.220.177.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="G8LDvpQW"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="SWmwwfOe" Received: from pps.filterd (m0246630.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 60UKE3Ve4029215; Fri, 30 Jan 2026 21:00:08 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=UBVpczB/At/Hp0AJLlZrh/IdMx/NryCDZYyORdy8gXY=; b= G8LDvpQWVkytiyUcPHTJhgMISlBx2tO4lefnWa+L1T1ZpjcJJ2XMHVF0p/gmtzoy V2BjYmKZbsIR3vJFYgSSSDQrBxxvLSRHupiqKRBAim87+RlJUTjW5+cyv/sITxqT ptIY7WGVNnvr8wdeSW5fXLGsO8lJj6PP+yoWfnW98YVC+T/qHWSyiLuXcD+ctcv3 jexxODRyW+5KiQzkylpcoCNBb66Eil/rTkDdZPI4GSw2VQj08bXgycc1G/S6+B97 +/f0vq2jDuz5b3cfTmpN4+s95CMOkJINPAMq8mzj4CGpxmNJVCDTsCQMYrIpK3OR Z5X+fZiWNhpzWWsdTs29oQ== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4c10668cev-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 30 Jan 2026 21:00:07 +0000 (GMT) Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 60UJ6DU5012456; Fri, 30 Jan 2026 21:00:06 GMT Received: from bl0pr03cu003.outbound.protection.outlook.com (mail-eastusazon11012051.outbound.protection.outlook.com [52.101.53.51]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 4bvmhe5fr8-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 30 Jan 2026 21:00:06 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=U4QdItGjB81ei9/K2cgbXtb+d4UaR45P/aI0rGN7AHoaZ3t7ZLNDT1zNJABdvK9hO5hvYpyZccZ3ESRaGbmngbXUSYFoKK7wrkQv91Oq8iBIYNevNHMkIBB9sSNyA8cq1QXaRLvlH3qgAB1Y/fY+iw3IzrxiwtVL9TLiWJTUcYt6eH1E0YvBD6y2N6pF+/RMCsFOsgLze3isic9esKxuvNYOXNf8seLa6RFlZYtx/+3yWSNdJps/nt3lsMbqpqXh2P6WD3raEO2Y+aZ8Gp3XoyQbqJIdaV46y8tTom6iz5xoaiCyCozRzcS9zZ6nyAsDjoY5H3oRHwuym9bdmEzpgg== 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=UBVpczB/At/Hp0AJLlZrh/IdMx/NryCDZYyORdy8gXY=; b=ilQD4/unNHKabBt4r6SQUj0M9ONQdiuffDS39v2WuOnP4un991UAUEOaLOwC9HTR2nAEQCcRG22uNLDPzUs8teBDKN3VauAk4regTRzyG8yo49Oyn6GVlaDHws7NBmA6D3Oa6df+c7PiY57C4nW8LGITLbVflJdWYZ2SDnIz4ysJLQENq/z9fb5PU7CoQAfHvC3onpQvyWTA7ku24/HZvsTU5JBWMjVO3tvDYjuOP3wEy0mhDsEsxiyVUjGynonBoU42MQN2TkAlYvxIjWIDqeCfMN2uYhLK6zYBCH5zAokgIOFDNG4ThJM1l8ikYDgiRV697dxQBmXmq3bxzAt/uA== 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=UBVpczB/At/Hp0AJLlZrh/IdMx/NryCDZYyORdy8gXY=; b=SWmwwfOeoUBnAUltvVaeYJhQ0knNyBgB/u8gJJQ0SkEkV6L+9zDRt+juc0NfrtJeIs/9uH3lO0I5/EbY6zFZvR9TSr6JxMsoHD8wuJ3CBgs/RxQTa02mYC/P+zac3iK5wWuKssDH3rA+Ebqirf8N0ihc0mpx80dkqQB5S/XjSC0= Received: from PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) by SA6PR10MB8061.namprd10.prod.outlook.com (2603:10b6:806:43a::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.11; Fri, 30 Jan 2026 21:00:04 +0000 Received: from PH0PR10MB5777.namprd10.prod.outlook.com ([fe80::4b84:e58d:c708:c8ce]) by PH0PR10MB5777.namprd10.prod.outlook.com ([fe80::4b84:e58d:c708:c8ce%4]) with mapi id 15.20.9564.007; Fri, 30 Jan 2026 21:00:04 +0000 From: "Liam R. Howlett" To: Andrew Morton Cc: maple-tree@lists.infradead.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Suren Baghdasaryan , Matthew Wilcox , Sidhartha Kumar , Vlastimil Babka , Alice Ryhl , Kuninori Morimoto , Geert Uytterhoeven , Arnd Bergmann , Christian Kujau , SeongJae Park , "Liam R. Howlett" Subject: [PATCH v3 04/30] maple_tree: Remove unnecessary assignment of orig_l index Date: Fri, 30 Jan 2026 15:59:09 -0500 Message-ID: <20260130205935.2559335-5-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260130205935.2559335-1-Liam.Howlett@oracle.com> References: <20260130205935.2559335-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT1PR01CA0094.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:2d::33) To PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) 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: PH0PR10MB5777:EE_|SA6PR10MB8061:EE_ X-MS-Office365-Filtering-Correlation-Id: b5ee6ef8-c3f4-44d3-6723-08de60428a5e X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|1800799024|366016; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?0y+UkmOrnsh7yPXrEq6F258O1KhPhGLfUoG6GGk7tQtiPNqTlEZ4ICu59gqV?= =?us-ascii?Q?GfF+T1pxFoYobNeglHh83j/NwG+vz288wwysf+RzEgofafkrnHQFLhzP2VHw?= =?us-ascii?Q?b2LYDpCdLxRphF/9U4PU4Sz1gglLMP9GHLMABfp0hZBDAO6u+Psez84REyUF?= =?us-ascii?Q?czERuR0LuAqxgN580Q7AJHQdXr8DxWc9RUv6n6A/7Us0lJnz1bpVR5oJ3Ukk?= =?us-ascii?Q?vJOJE39z4ez49rbg8q+e+o+I0Oopn/su5iYV1QTp5zr2lZ4FViYEOhS2NjBq?= =?us-ascii?Q?EP7tlRcgvPZW9umg0mMKR65c/K4Bmk1Zdn5TPYejqyxsghY1oSgCzx5Xu7rP?= =?us-ascii?Q?nFKTNYOl2JLf19BmLlbL8jHdZQPLr0RYhxD0mSnxK3r1yATHKxX8jYlq+ukZ?= =?us-ascii?Q?awMSrWvPUz4YdlBnRRhYlJuOyTupbyUHPOFE5s7EaQO4Sz08xpO+sCJEvlot?= =?us-ascii?Q?XNAUbK4Cvo2R33eHWtbGfnnQPiAqXoF2xocglGyWuXlhTsXJGLpCK2jxM/S3?= =?us-ascii?Q?fMFb4sJ9U7+/PN85l/Oi3+6nv/e7OTI2PXhkkNX1e50AokYwWoWIzOzkv0yY?= =?us-ascii?Q?yrKJwkpmzQAtVcK+oaSpOlKIMSBxz4a6t3Nj9+6DARy6N88umamPjje40xKX?= =?us-ascii?Q?BUufzL6mht5wYkdYpTWASeyq68+8jwRZCQXZSXAGFLzrY8K6I9XCCBRWaB/b?= =?us-ascii?Q?pTSEKXyT0Ih4o8h/9QRVLZeqPD5pXHLVb0k2Q5+wYXeW5Em9NitUdUXW7KOw?= =?us-ascii?Q?h2/dEf24Qa5KXm8LR0PjdBguDZOveQP8+WzbH3W0+Nuj7mcvT4527ZWcD/gB?= =?us-ascii?Q?ebrsIQADUppgWer4YkkNNqMJjMPfywhHy6PXN+ZFDun1ads/o6D6ejG7J4aR?= =?us-ascii?Q?YaDr/KI/aUTgCMW9ThIxV3OEjz5KRdFh9fqgW+XOBmCbijRS+GFIeC3XXxYy?= =?us-ascii?Q?Mg7zAwyUiyabhG69Bd5F+BidZXislXV/bZWhqlL7ouzLoIyj4aIrtfzu5bCj?= =?us-ascii?Q?cyGJnNz38SsoJp9WIIr7bu4IIuHA0JKrmZcjFkcVc+fHXM5T7L03mGV2LR4Y?= =?us-ascii?Q?nFRtLbtzsQANzbi+5I0fvzggooI1taGVaa6/+7yLnxcPa4bSkPmlC0YmPBY+?= =?us-ascii?Q?z1xeVcuKxcJefKyapZxlq4gTyuQZf0BK09vuRpMxnJOYNAQeFFmwDGud/tth?= =?us-ascii?Q?89xIcMsfsKdNVE3Ag/tu6NtQ6flmHmJ1yXms10iSyHx5raozrq9aIKZ7RyLs?= =?us-ascii?Q?A2nylO5h2vzXeM+WCt/VbruT63FxnGFTuq3xmpGnUm+XeUgKhxboYaW6unDC?= =?us-ascii?Q?NbUQWs/6uhh4kGUTCp+nsZc1kMHOOirY6BC3rMNxzdPYNydQ5Z8QZSO93V7h?= =?us-ascii?Q?8OOG3K1weROiLdJsh27MkOxjKMlGGRmlBzpJvhQzW70AFsvU5MMevdabZkqH?= =?us-ascii?Q?uao3UzAN4vDFZj4cjGiwySFqGmGZvHj9nrnZPIhUAHuXGSxc/ZnnUSIk2nrX?= =?us-ascii?Q?vnTnIE6c1HW9G2dMM9Klmy1BpOfflbJQ6V0fx7wD9uACtl0z2CpxIfKqqauk?= =?us-ascii?Q?w043Can1G8VDJn8tDog=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH0PR10MB5777.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(1800799024)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?PfQUpz0sV1OwqSIJd8Co9YABnKXfZmpX+z1kt+87fOz0rE4Ev6BadLIppMFc?= =?us-ascii?Q?Fu++/7FYEwo4GuF6uB0nWd06F12aAmNPYlJPYd7eKGX7RSKOFPaUgzJqTLU9?= =?us-ascii?Q?pQy0pHbHY4c+QMeu1sP2SKmovKwME2xx0/K5EMjRj/l1tL0zLp651UJBi/0m?= =?us-ascii?Q?KosyNHpx1atQJnYwXsOhtE/F0CtebraS8uwxDW0O563UpjqF+ZLR5hW6F56T?= =?us-ascii?Q?zmOQMdU1N19YFs1DG6JzWq3Hl3ZACoHK/1PzV5s4YfItEF0W97RdfkGW1fhP?= =?us-ascii?Q?OfKnBarnmp+tHMT9x+OCQXJiR4k773R1hK8BsIVvmvVXX4QZGmIyoAvUBlql?= =?us-ascii?Q?DkK6RofLZ4Co/UOhJytx7jfs8qLtOPsqsgBs9jQl88nO5dKO6kvopHvx7IQz?= =?us-ascii?Q?y9/9ErY1vpZ09itrmd3bXnOKODbs/MKc1CwnbkkIC5KYpmtBuF3+QSQ562HD?= =?us-ascii?Q?/5wPUcUpOS38OHisJZsFW5G7s9XsDytTvJmvy6l8pKP0cODsaQDY3IfhiBYm?= =?us-ascii?Q?/bXOTc/gnD+avC1UpfmkVs4YOYqvn3/1KPpI/0SgtdzoKaEI/A4+nbKbVX9n?= =?us-ascii?Q?u3DZcwY87lFyzfan+ns3UO5avlBYFbjYvZHYr6oNrV6KIRxmbL5cVwB7354N?= =?us-ascii?Q?fJqDuEQOydmS4TAtsH0ajN5aY9u74oWVOvnIf9hsFavJ/AMrnXzQCO/XlkLR?= =?us-ascii?Q?mqTJJe7xUpp/Nf0l7l0rwRHztXmzbtc9ULUaPK+XMb6wPMO8TJaPavbI+DHj?= =?us-ascii?Q?VhhUE10yWj+WnDqnEjw5KxpJmOmgaxQiSqEsXqTBESVAW/t/aftdg3pC/yNJ?= =?us-ascii?Q?sqmg3+T4q6JfnzrrJ1ddohGxp+wcYZTyYyb1jsm4HJ+2QU9pR2obv9BAezTA?= =?us-ascii?Q?8GKwPPPymZHbm9lfsQDsk6sBaN/5kahMKeexI7dQ/ACtsmFcl/6JEPej0lmC?= =?us-ascii?Q?D1PesbIS0E2iq7q9AHMLrQYUKgXKGIVLUxi/eTzasN5g7AoUV9oxijLpU7Mk?= =?us-ascii?Q?KEwQo/WSjcDcmi9uYZXZlCYUNtT+SYBVCVudv3QDvNEzqQnzlS6FhqUBKh+r?= =?us-ascii?Q?UhmMx0iISmht/0Iljw6EDqSYAz+snIW7/NveqKbPRb4y1ly1n8bUg9Zrn0Q1?= =?us-ascii?Q?jLoTnHg+ui4cm/EMTZKDcItZAxrVYq6Mcubg5fla4Aa3TqW0z6dGRqpLa3Kr?= =?us-ascii?Q?WcwUD2MZNpEyY0dLPwVmBYApM9I2v2pvPjAQx6p60H0kXH5lsz4B2rxHgEuG?= =?us-ascii?Q?r3FJZHPhra6GQ/S47gx/BQv+KbbFp6KzYrxUJTYDW+m7GpwomWwwt9qf6tGc?= =?us-ascii?Q?O6Rl0MHrKuqV3Co4JZjEyMyaMod4UEX1v/CtPKB3hmAXeVltLQAeoRdvm5UR?= =?us-ascii?Q?0mvjXyNQmjtoaLxw3oqNr2GQEYkN7dn2xmufMjKl4oNnKMzA8SZv17LDT7wq?= =?us-ascii?Q?xCvFkVhgxeEYN7+5v+PQYIGrtjzG/EZuUfQ1A0ZnLLWpK6l8zAGpoR6PknSx?= =?us-ascii?Q?xA9dWgP1GHudYbeyRl6ySmH2JFu1my0kaactKU3teAI79YBWPUmcyA8HOXJ2?= =?us-ascii?Q?E2aD0oN6ISElZfbGiF9uPzzE3GLY55Qs9BjToGVksNc7GCHP6VLu7s3fxJPA?= =?us-ascii?Q?JqiuzU0qEjD0HrxDyCsc3BOml9fA+dTp19gAAYK3CSX62o0MyF2iId+o9X/a?= =?us-ascii?Q?YLbTOD2A5/FfeKHHJRfekKeNPWMY88QWK4DyDoUTyXtbLptWCI8WzLKMpeHX?= =?us-ascii?Q?fLCfqBou4g=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: xt1g5wpi/lsO/VGHIEjzWYDliAkVfu+zshSh8uFYPW1kVIUw1gPf8amtkIkb7NFG1OCdBCGGQbLFTz4HWRQW/uHdkpSKDVhA1xnGpsTfbg270LxhgS0ujiPtRxCm4Z6Tfpz0uNjSHN6zkI+imG28WERgbzNepL/RGvgSbYhM2X1hKLARupiVd1rn/tnoawb4Zax+ocwT7wrUVQUbdV+FvBiDj0pCavk2nAZ5aZcHcznN/SIm9EYjyD7zlD9AxOb7amogf063/tk18tXCXy+3YWSbMyOy862xEGEaX3J9cSmQ7TUQIMx7ukC13iIvh7KWbtyxDUSeEb63cwetqkh2uOIcnYUZfmn8rLMIWEm7espUQKvbJOxZ18R8HcZ1h90ptEtBq3ZEnbU21thisSkVtmA6W9Nj7S5244STzK7sdDtChA33EACCSjiTkd4jC+8IC3UOGvM1qXXguncWSfX967DwBqOkLi1FIbK8zNl1J8clAy9s1y3rhpkbxnSfa91KKaN4TyhnQb7WR8VfHJo9V23ojyurBetXoJqN7y/aQGqMFplBBXX/OmLGhNtyt5dDy4fIGNryRZF61m5pupxe9Loa757HyNxbIQktEQTgN6Y= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: b5ee6ef8-c3f4-44d3-6723-08de60428a5e X-MS-Exchange-CrossTenant-AuthSource: PH0PR10MB5777.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Jan 2026 21:00:03.9825 (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: b2HxjVvjl9m5Mnu6Z+vWSp708sgfPQkPTraD6mVRb0dO8Bz+1b58y94LWTKbwiAQtLVP8pLO7g/tDinm7iSpKQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA6PR10MB8061 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-01-30_03,2026-01-30_04,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 mlxlogscore=999 bulkscore=0 mlxscore=0 spamscore=0 phishscore=0 adultscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2601150000 definitions=main-2601300172 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTMwMDE3MiBTYWx0ZWRfX45nXUexXzL/W caH/j+BUu9DGuDZ9JEowkT0WuIEO/9kjDZc4ZW/kTbRNTlBqKUDmwDWIESF8LfPBmvdrI3cYS/R 0naZIMP/WTg4XnRdv7gw29a1QmTX+95WPecp6oIHmAi/P1ZTKeeibcAXGjUOmvkKaXvMpvYO38i 4zxmmNgqTXA+3EA6/gwy/5G3NEaPkVFJs3a5fwuYpCVH5XOiUOUKD5bLhzCcw++uG0yf+/c7aRj lSZ3fID3RHWY0XEjCm3qjZhldi41SHldrDtLj2D+MZOFe09Q17q1ttanUPkx08PLj1as1LZ1zBs sasJ15Oo+fBICf92V9fhljuokhf8OoX+gevsANOAnmUix9V1KRbhRyVPMZoXyUb+PiEGcTE6pbJ FyAQKocbmKBBQi1GeXCG9b1ZU+RlqSnZSUlrAlHbBY7AUSzoT+Zq1XB/IUMqVcVh96mYuIPWKfy thCHN5aSrsdIpuH56hA== X-Proofpoint-ORIG-GUID: ZlufzSr6PrKZ3CR4h9FhxAOPxKZ0vX4j X-Authority-Analysis: v=2.4 cv=EebFgfmC c=1 sm=1 tr=0 ts=697d1bd7 cx=c_pps a=OOZaFjgC48PWsiFpTAqLcw==:117 a=OOZaFjgC48PWsiFpTAqLcw==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=vUbySO9Y5rIA:10 a=GoEa3M9JfhUA:10 a=VkNPw1HP01LnGYTKEx00:22 a=yPCof4ZbAAAA:8 a=sHg5AOaFVM-jeF-jK6AA:9 X-Proofpoint-GUID: ZlufzSr6PrKZ3CR4h9FhxAOPxKZ0vX4j Content-Type: text/plain; charset="utf-8" The index value is already a copy of the maple state so there is no need to set it again. Signed-off-by: Liam R. Howlett --- lib/maple_tree.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/maple_tree.c b/lib/maple_tree.c index 9ab42821ee2dc..1e780427c04a0 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -2766,7 +2766,7 @@ static noinline void mas_wr_spanning_rebalance(struct= ma_state *mas, b_node.b_end++; =20 /* Stop spanning searches by searching for just index. */ - mast->orig_l->index =3D mast->orig_l->last =3D mas->index; + mast->orig_l->last =3D mas->index; =20 mast->bn =3D &b_node; /* Combine l_mas and r_mas and split them up evenly again. */ --=20 2.47.3 From nobody Sun Feb 8 02:41:40 2026 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) (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 B5D0F3859DE for ; Fri, 30 Jan 2026 21:00:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.177.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769806847; cv=fail; b=O1DEoasiP42CYv3ev9v7/HkLrl/B5bIFgOCxVqpS71nMl7oSSOWnt1cHLEHjvg64KzG5+mGMwmMqK5sZ3lclsqDtr1IUp39oX23GWks3QKLyYS/SL+Qc3C8OI1/DBPFT7+8xQ8Chr8uP/UvkZGltyUP+sGHGufKQpDbtozsbQOo= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769806847; c=relaxed/simple; bh=sS+4OcOQeJ+Hd1kPwbdr3HZzP3+Au23J1b7Y21w80eM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=eBpmoSjrxgvlNOYe7tG3SVCoutdgpu6TBBB0ppP54KPKXlUvIWY6fR0jDTIAi84pVk1AVyIIqLjQiKFY73qHaK7BCHT+A2DVNXWDvSxtRntUJQG2dzZ0O16vevoBKfZd5kNr4B0ZYhVMYjmhvVbz5xaTUMKGX+Jm8Gso1dSocI8= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=FHvx7hWO; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=J3uCt4OJ; arc=fail smtp.client-ip=205.220.177.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="FHvx7hWO"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="J3uCt4OJ" Received: from pps.filterd (m0246631.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 60UKDSlH3910818; Fri, 30 Jan 2026 21:00:12 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=PAodV3H4Y2rNiIqjcqcBpwQAAZmeSG2ZSvqdZ0H+vd8=; b= FHvx7hWO7ktKAQPCai/VC59LTT2ZXXE9wOok23ooHOZDTunXPF2+sJxfjzv/hfMX fkSjtkMe1d6eHOuxAj+y02VDJn1Z1S1BYthnMMptL9RargEh9QH7nHxIGVcgW3iu F5TrH7N483wXW6r70iFR0QFBzeWGZx7Wh2+TMzg8mfJgJcRkXt7DQ+w80fWMi1il APNceQADcOeIQ5GhgMZFpBANDFwm7iNNQTu+Y/ERiZZM105/fLOR7M7EKmZ9Inyz aGyI79bpO5+X+QoIsGiq8OWQVXmuOxm6gDSZdOOMFb3NPpunT51UW2r4+5Ikcwy5 nJbVLU1t6kQnchcpJD7swQ== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4bxx09pm59-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 30 Jan 2026 21:00:11 +0000 (GMT) Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 60UJ1vPR012499; Fri, 30 Jan 2026 21:00:09 GMT Received: from dm1pr04cu001.outbound.protection.outlook.com (mail-centralusazon11010027.outbound.protection.outlook.com [52.101.61.27]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 4bvmhe5fxw-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 30 Jan 2026 21:00:09 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=rlmpbFOFkzs03Kr44467kbpAH3q46zM3ulBp/M8hoFVxVCzEviAcRyLcN6nYx250qBkaCck4Ipa12W/90Gkyik9NGP5DFgNUtqnqnq6C3rH4lDB/GDtr4xSbGql+X5Cd+BVqBK+TnmN/JlxoxQLUomF5mHeJQlSz0b6dt+Ad8ClmoBp52z2mr8pxql5WNOsyZbxrCueuJXOsTjNywiAWv4foTUpr/PYB3gbtTmvAOknn2ELWwOkIIa4jteQvFN3d5VNdqXO2zX5+ic/aGoBnOlnJoYp7Y/eiHEEldsf2uK3D7dyqzdcaOm+B3kQDaPzJoVkxyipF1hW+82RZ55gkCA== 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=PAodV3H4Y2rNiIqjcqcBpwQAAZmeSG2ZSvqdZ0H+vd8=; b=buCIQBjOBWsipRK7/AiSyflPuQ/aDrL84ha/8KLRS3Kp5ChgNsq8HNi0KWizieNaYPSaQgh4H3gPIKjsl+X8Pb59s2CJ7wz0w2fk4TxuuQUfpZ5BPX/a45tfIrSKUZdKb+J18bL1jXdgtSZrRoF1jE5/xIlWXr8g3BIUO/Pqe0U9Bx086oFnHNG+EdPaYJjlqkuzdyxf/T9NYHtGxv6Croa2BIpZQbSvQb1sgVy2Jg5WP7WvT3F8SfqH5jSZzR5oSkkem33h8bL1shtnGz7HQm45aFM0HIfcOGcGqbiNmXdyUzUXbYFR/KdN6AUvclwebwgbEAm1myjH2CgTG2U8aw== 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=PAodV3H4Y2rNiIqjcqcBpwQAAZmeSG2ZSvqdZ0H+vd8=; b=J3uCt4OJDad0Rs3f4RZiJ+6LzAVxwDTAO6tt96izlE9a9LcNG7zvsQlVLaFVTFZwsiVF540Kp0xGJx+Mu8LAo94R9nTjs4i4L023csMIjIgRFSHw5K6Zk6aa8ye4OJc9uKAuFm4chuBLb9w2MWLQeEi1HT9FanzSw1HuysfTn3Y= Received: from PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) by CY5PR10MB5961.namprd10.prod.outlook.com (2603:10b6:930:2e::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.11; Fri, 30 Jan 2026 21:00:06 +0000 Received: from PH0PR10MB5777.namprd10.prod.outlook.com ([fe80::4b84:e58d:c708:c8ce]) by PH0PR10MB5777.namprd10.prod.outlook.com ([fe80::4b84:e58d:c708:c8ce%4]) with mapi id 15.20.9564.007; Fri, 30 Jan 2026 21:00:06 +0000 From: "Liam R. Howlett" To: Andrew Morton Cc: maple-tree@lists.infradead.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Suren Baghdasaryan , Matthew Wilcox , Sidhartha Kumar , Vlastimil Babka , Alice Ryhl , Kuninori Morimoto , Geert Uytterhoeven , Arnd Bergmann , Christian Kujau , SeongJae Park , "Liam R. Howlett" Subject: [PATCH v3 05/30] maple_tree: inline mas_spanning_rebalance() into mas_wr_spanning_rebalance() Date: Fri, 30 Jan 2026 15:59:10 -0500 Message-ID: <20260130205935.2559335-6-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260130205935.2559335-1-Liam.Howlett@oracle.com> References: <20260130205935.2559335-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0501.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:10c::24) To PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) 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: PH0PR10MB5777:EE_|CY5PR10MB5961:EE_ X-MS-Office365-Filtering-Correlation-Id: 3d27b696-a3d1-435b-61ea-08de60428bbd X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|1800799024|7416014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?vhuqP6A2igc6KjVgodhqDFsFrXDTiB9l+5CsjnEFlNvXgOHzewDbG5TweVri?= =?us-ascii?Q?CeXSw4kkElIZliwaiCNFgyo7hiya6f4TsQOh9hp4zt0UfbA03ZQA8mEiDqy2?= =?us-ascii?Q?fT0JBqeT+nGkPzy8KI+zNTw2vWY9+ObOfsjpxnlCHNC4L/MbV7BxnBlSkIdB?= =?us-ascii?Q?FwwxPzjqcsKroqtAHdXlqS6V6C2/APq3MPhYXO+C9RlE6Ts7TqDBUu/JxvrH?= =?us-ascii?Q?nDq3E59kmOmWXvx4q3MnEYydFhP2n+HbFzFONufo4ojBkm1sBtduPD90A0oP?= =?us-ascii?Q?TnoMPYZasNptx1qKBJQcsl7QzIX9BiVxbNMc6UxDxUXmNZzM8rhUqkDU+0gV?= =?us-ascii?Q?zQV8UU29614TqUyiZaxdTbE3Lu4uXuFvncHLexCdpEkVUdz7zA2dONTY2qgw?= =?us-ascii?Q?pV4oGe2uLxv9CmqErEdlA4/EX+h4cnd09ENz/7laHKg+y434Z8PXnN7wb5oh?= =?us-ascii?Q?tvZ4aKBqVJXFFSVz4djcX01NlJP/78S6IOpYiZQGZprkWy9xpA4btAO96SHe?= =?us-ascii?Q?Tg1KZQeB3ESiuJFcyOW//iAmlNwIWO2E9MRAA5uAu5XqA46XNMjxzPsGxwz9?= =?us-ascii?Q?gVDZ/kzWSHyVZ3CMPUC4WnEIGxOVDROrLKOuCj94g4N8fRBY5WiKcWcRgVAG?= =?us-ascii?Q?yDMAJQaWKlzSFJvDJ5p3wUxLJVdW/7zKvKYYie9sIovVMq8cjpMihjaB9U/S?= =?us-ascii?Q?pYBnpYjGMdCZnslMY9DqKZgUFVQR29B5rn8Z3C4MhbIq3vZVyJfjhTXbsKXJ?= =?us-ascii?Q?WclYAuM4mZdDwa/cRabDs8ixG3FrbjusGC59sF95gGVIB2YIqE5hFCmI/faH?= =?us-ascii?Q?tnZHg0dXvzT9NNEWoepkcp3dcrIpiq3OZc6gB/9azF+8o1kTPt47i3XV3RRL?= =?us-ascii?Q?hkX6IFxwUeW47F9WAbidACAL7Viasb9SVE1l8BOqvDdXqbkJni2HwoOY+hC7?= =?us-ascii?Q?K+Sok9nga8VNEJQ27jDaj+Q8bY4yNqtMf8uz2qnacC9xLXrLwXYXkQ8vwVYb?= =?us-ascii?Q?pqFbXPAenbV3hJLTAWeoCZOfwBrLz5VeWlZ7PqYDbAoRp+bKj3y3AU7pZJQ6?= =?us-ascii?Q?08QkNdjNgDOPX0JxmWJDxUlhixCySi9oG6E9JaLwE2bjfjjnSaHBMrJCnaZO?= =?us-ascii?Q?88qpsUKugw32keTxxYxMvhPeVMBS0qPWaW8zkziVddAawbrAaU96pWJ0Dyxq?= =?us-ascii?Q?+uILsGumuFpR6ncTH8ln/puaHPk+yiURK3DcVmqaAtdqWiaiX3MsE53DkTQn?= =?us-ascii?Q?emx1ZXEJ7z0CxpjtCpLnCrhq5x8doNEYNuXZAOjCuLOmqrg7qLccGbPe2w7N?= =?us-ascii?Q?Si+EeWGOsXPJ9DQhpYS5otDqC8w4hYa8gxD3R5fXwU5GOlr1hi9m049gsvXD?= =?us-ascii?Q?DXsFPCXzbiKLx7G6Qbms1L6Nu7cPuXxGIBOwfZflRIrA40ptczf6MApFLfpr?= =?us-ascii?Q?JNuqtVFwFgmxDwsVEoffWEeR/BNQkR/JtLC94QOb2JQnxeOjMfQBPwQhMR0R?= =?us-ascii?Q?BJIuobUn0xAhWou2Bvcicsn75Cb45XzQ2DZct/eQCFDcNPBOQsICqGd8sSEn?= =?us-ascii?Q?iZFsvGvuQ5GyCHJ7RFk=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH0PR10MB5777.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(7416014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?05r/Fz8fkVxVaMVheiERYNe3s1vdL62tPjqSC2fn9nHO5L+bMLij/Z3Zc0Oi?= =?us-ascii?Q?O9J+RZhuxLKmlR/sThwhOPC4EZiohWtk0Q6M6hD33SE8XdlJ478LvX1WWg9d?= =?us-ascii?Q?4hQGMBum7yvE//G7VxFP1kzQEXER/o23165AsOg54aO6YZtQe3ZsS4YzPtuv?= =?us-ascii?Q?nnrFMWAs+aF0o/VRY07EVx7Z/5MLoZm8224KAT5RmEkhtXZCMcry2qy0Hm1/?= =?us-ascii?Q?+KTGDasEokg4S1mMfwsqfVVJaPKEG+7kkK28+BCiM3Xd9YAeuAwag2oM0ML3?= =?us-ascii?Q?3n1tM2BAUw9YGpl3ADGB6QnZr6SLh9r9ihCwMeb0TgICOffKfDWe0fefxcI9?= =?us-ascii?Q?nYtfhAidEclK+atXJ7OT/jYhjP9ettzIOKhRitd32t6To5NDbEreZvtRarwh?= =?us-ascii?Q?In+ZtAci6MYUggEjBwqgjqttzriS+ZM3AsaoVD6z2vEqCTiyGv4tSZqEiOb/?= =?us-ascii?Q?LKiwP0VpgUYg0ia2gjeyWM2Ltw/rbOXWszWShnMOft/p0ZuBKYE1cu67s48Z?= =?us-ascii?Q?LTa13iIPwCJvJ4rzZdXe9xD0UQUBKY9UdmphS/FB0/laTjOInlnRMGfcSykY?= =?us-ascii?Q?LkPuU9tbA7aNsEQLy8zyEc2loLtv4K0fOuH0ZYf26AzOlL8YiJPXkGMsDwH4?= =?us-ascii?Q?QL/XdyyPUKn6FPAee0+wVoZoc3VvqBN1nrsomU9Ue4erxr0O6kC7uAEyYcWG?= =?us-ascii?Q?RlMYkyUTB3aHyHNg5pE6PM6XfxLXsLHKhgq05dsumE8IZaxztM25MiZWNFBY?= =?us-ascii?Q?1NLzE7qDy4E05EkEBw4MbgfJGFjfPp24VN1WJADkp84UyZD2+HZHXB7Utq6q?= =?us-ascii?Q?ENMQ71YM2jVxgNMiPb4Y9stEnIBx3Ya9eHxEwLLSAHqJuO3RKwk+MslnY/FU?= =?us-ascii?Q?Lw3LGKwS2LtHKurlJCzUUTCU9cNq+HUf9O1icPtWU91qLGl9HmBPYMWTlNxH?= =?us-ascii?Q?7MRyWYTBtcS/vKMjZE/Inf6gmc73sqImP4JdPXNe4BLuNWzBuqYL7YHdPRDC?= =?us-ascii?Q?PCZkaGXIFdUmHSWuftHL7BV5Sjf7HBYZK3FpjauxsXm+WSz5/NDDthu1MMRT?= =?us-ascii?Q?933D/2qk8KLO4FK4synwBxqsVtBWP5rVC2lrvj/oNydq0I4RanKXR7ja8ykQ?= =?us-ascii?Q?bVJVyp6aGTKp40H5SGp9thWWOU8S9ACf1yfw3QvAs6pVLoqqx5EzVTi6D8Yu?= =?us-ascii?Q?VmduHRYKLdZWidSjvBuEBZTbL7ZQ3Wm37hP8TrrnqO1GkER5YtbLLGZ0ku1g?= =?us-ascii?Q?W2y0tOl89ipQhJTdcEYKQtdU25KrX+EzEQU3zofK1LXgIkc0HRjPT1+vBA1o?= =?us-ascii?Q?jPxoCqLq1k5WAerAxnbuCpTcyw1biA4vbI19bi3y9dVWIH3riosDQP0GmIZL?= =?us-ascii?Q?BPKU0ZrE4vA4JcDT86GXgkXJ/W9hfFGpp5b9pak2uOim1Yz6uMKapdjUT2eL?= =?us-ascii?Q?TAgRhGzW6jOma0GIyPwotMxC1HmkMn3UNDskYK4fjOAe8GmkC33QZ1T8A+rI?= =?us-ascii?Q?P8pogIoKdMIeF8fbNMvzzsB8ZGorlPC3b49FtuNmwuzr3UDxHh2WJc9Yst00?= =?us-ascii?Q?BzhMQ7qKSZgJlB3yxgGL61W38S/jwH59OrhcISjVgAF9Tseyl/82m7vDeGSy?= =?us-ascii?Q?uCEkwzAqfOvgMJIwJxxIMKId3W40/73hgzW2LALPOcG2TVC3lgCRFm4QZvP8?= =?us-ascii?Q?xAjZJ9QxuLMGXZLtbtj9BaC6H6/sc2XUPXMQGFFXHUO2hk0eqMk4/DlLcxMA?= =?us-ascii?Q?tcykHIaRwg=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: CFoIPP+s8JVJPqdDHGGGrcOfbxjsEdfxo7iXZnkGCkpemiqVf4iFqrKPz7ZqZlip18TKCt0BeSd0/OWSnvQWNqbcWfnH3B/PJL3Efrw6yNh83gKWFwoq3cTHjDGepVOwKphuTvPpWKexKDg9FNrY7AUczz/7jqpIgfibp+vWxfEYH4+hRBV9MNyEt552zZGfCIb22t7R/zRovc5OenxrbPKYlkAfboLHXNf+VfQDrsMP08QlQhEQ7xhBuqMjDIC8RjoxbrXWCI7Bj3DuVN82KTxS68by5lOdeH8VdgeOvvaKmmpPYHVbmKSRdPazX/7K+C/U+3OOleibSn130Rjs5trfMgqrmlITBzmnSrocAHiYhbb8LyunrhC/8jkpw2rv98nlRntGww4emxn4p6d9fzR1u9XQOfXD8lVkpCMUaGKgG1SDUBh0nDMuBDFvLIOGHjwILg9I5x6hQf/uSOrQo0tsalihlkiOTkSG92uOIA+5g7zHjQMG565wAuGoCQXBbo8UBdGFBGMIhy3M8Ay7KPaKCe1Z86Tue3rkG8CVyiVxIfcIY1kyabF39HZKGbucfAHPQk+cfkyXyusT2lBajnLjEXalyI0elfu/MNMzOGE= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3d27b696-a3d1-435b-61ea-08de60428bbd X-MS-Exchange-CrossTenant-AuthSource: PH0PR10MB5777.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Jan 2026 21:00:06.2543 (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: /R8NMePMufmZ4owt+G/Kf4TTSbTR7sejx2dWRTAnvKbnlMqZhfuyaQpPZywPfTydsTcKyu+DSAK4yU0IzucCxw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY5PR10MB5961 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-01-30_03,2026-01-30_04,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 mlxlogscore=999 bulkscore=0 mlxscore=0 spamscore=0 phishscore=0 adultscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2601150000 definitions=main-2601300172 X-Proofpoint-ORIG-GUID: hSAGH4K7qRiomwhugWRRFKohoF6qVRhO X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTMwMDE3MyBTYWx0ZWRfXzxPOZXS3sJYT yZlY503Pi/GvRFs2UasyoFdpEbwKB3DPE5Miio7+Mb03hPwnz+XwhI18NvN2emMSAYJQ/iS4RpV l44v2khH8Zr9BDTuOa3NHO+3MHBm5fvj5t6A17yjbcLbaIXn1VWV6Z+sZIimHkjkANCav5njRLl FqI8+rRo6ymxf1Zrwp9ATVmtWjKSUyII8V+3R7V5rqUYQ2eF2jZAHF/BZ1QpVSZg+jpRLM7YsQT AzNIEwtlv3Fd3t8nwz0ZI4jKjuFKeSA2pOk5qqGOpigyifDKtfTda0F4BQi+Cf6O/zr2hPFlx/I vtfr4i/8r62YP/aY8NjK2afy+kopPmx6GmuzbDeKb8VflkLJc1XcxtBibComlggL7vBP8wF3ZQD kjSuN21m3o7s09hIKXrZm2XpwBire2bet10OfUYpPWoBqv3Vt1QTPuLviySd5zn9bPPMrxYsFwQ WGBzDpMysME/qG4qMnw== X-Authority-Analysis: v=2.4 cv=Qe5rf8bv c=1 sm=1 tr=0 ts=697d1bdb cx=c_pps a=OOZaFjgC48PWsiFpTAqLcw==:117 a=OOZaFjgC48PWsiFpTAqLcw==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=vUbySO9Y5rIA:10 a=GoEa3M9JfhUA:10 a=VkNPw1HP01LnGYTKEx00:22 a=yPCof4ZbAAAA:8 a=M57lEg7Pwa7NdtlU3hgA:9 X-Proofpoint-GUID: hSAGH4K7qRiomwhugWRRFKohoF6qVRhO Content-Type: text/plain; charset="utf-8" Copy the contents of mas_spanning_rebalance() into mas_wr_spanning_rebalance(), in preparation of removing initial big node use. No functional changes intended. Signed-off-by: Liam R. Howlett --- lib/maple_tree.c | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/lib/maple_tree.c b/lib/maple_tree.c index 1e780427c04a0..fb14ce4a49c3c 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -2754,6 +2754,9 @@ static noinline void mas_wr_spanning_rebalance(struct= ma_state *mas, struct ma_wr_state *l_wr_mas) { struct maple_big_node b_node; + MA_STATE(l_mas, mas->tree, mas->index, mas->index); + MA_STATE(r_mas, mas->tree, mas->index, mas->last); + MA_STATE(m_mas, mas->tree, mas->index, mas->index); =20 memset(&b_node, 0, sizeof(struct maple_big_node)); /* Copy l_mas and store the value in b_node. */ @@ -2770,7 +2773,22 @@ static noinline void mas_wr_spanning_rebalance(struc= t ma_state *mas, =20 mast->bn =3D &b_node; /* Combine l_mas and r_mas and split them up evenly again. */ - return mas_spanning_rebalance(mas, mast, height); + + /* + * The tree needs to be rebalanced and leaves need to be kept at the same= level. + * Rebalancing is done by use of the ``struct maple_topiary``. + */ + mast->l =3D &l_mas; + mast->m =3D &m_mas; + mast->r =3D &r_mas; + l_mas.status =3D r_mas.status =3D m_mas.status =3D ma_none; + + /* Check if this is not root and has sufficient data. */ + if (((mast->orig_l->min !=3D 0) || (mast->orig_r->max !=3D ULONG_MAX)) && + unlikely(mast->bn->b_end <=3D mt_min_slots[mast->bn->type])) + mast_spanning_rebalance(mast); + + mas_spanning_rebalance_loop(mas, mast, height); } /* * mas_rebalance() - Rebalance a given node. --=20 2.47.3 From nobody Sun Feb 8 02:41:40 2026 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) (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 9651338945E for ; Fri, 30 Jan 2026 21:01:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.177.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769806888; cv=fail; b=F/R8pidXZIUlPNNmauVKjbE0l2Okem1pYfHiP5szAlLGpAptsTuKh1+Yx35MORkNT1c7PgOqEChYlBnzB8TkWySHzV9awCVWMuJBCtC/u8KVUv/dp8kmSdyjbd+We5pg3t0+KTp7VOMCTwpsoxpf92X/GJGgIEOrEw1RiejNsKg= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769806888; c=relaxed/simple; bh=fnsHgr2uhrrjhQb+lNL7GCYQd53pCBFksnYVFgxG2yE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=naGBRsk/ZggdQZ19ltbNKo+gP4Z5bVZLQo6R1YFLd9LfqEMvY287UO16efeQ8B7BFGXcka/xO0uYWrYLD6fxqbnCUOcuN+8DPAKQLLWyoEkDSVIsKx8kSSw86m/10W5yuo0D46o5+XEUrewCPPqE5Cn+iHbLBG+q05/+CuMfIGo= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=QkPexreg; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=T8ipQ6Q3; arc=fail smtp.client-ip=205.220.177.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="QkPexreg"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="T8ipQ6Q3" Received: from pps.filterd (m0333520.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 60UKEkB5611033; Fri, 30 Jan 2026 21:00:14 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=m31wVm3xrbms261iI6YNla3eOFHUlW1kVlFsSJ3MWFs=; b= QkPexregg6nZE95uqizzrH3N44gdGzuGse0tm1nXefA2Wiihlnbb3RxVGLjtjHj+ b4W6D5tyYvdEIdTdSdwyr8gl6NixWyr4GEdma00LhOpMQuWVaRu97qdcOkx50NR8 HRpp3QBNXCZSctpE+NRbYzEV0iyjfTGP8RZUbyjdEZx0evdCE4PvYMiX3rtdTPd1 TQH4KB7a6StkSfrd4SxykvdqIr8PFg6RRVAmyrCLFQPfskuhjNZryKOmMZS2CPvA C4QRy0b0ky6ydCeg0nPycg0sNKGB+6/asR1gJ8JSSIe+kqcyFIPqdtqY7W3TMR33 qVyehn3AH/pH1cBqDkuytg== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4c10d88bn2-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 30 Jan 2026 21:00:14 +0000 (GMT) Received: from pps.filterd (iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 60UKQdxu001917; Fri, 30 Jan 2026 21:00:13 GMT Received: from dm1pr04cu001.outbound.protection.outlook.com (mail-centralusazon11010057.outbound.protection.outlook.com [52.101.61.57]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 4bvmhjqu4g-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 30 Jan 2026 21:00:13 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=qVuAbW6KJp1nXNnk4YOlNMVAH7nA3VIP9sLmZBYrjb5++G1rbMCSnCR/v9QM8sMkyZZvTn1tvZtb/2YeVZjlWHS/6A04MfXF7bVS5ElRjbVylOC/E3o7kzD24XvfCnLhPKITZBwFb0TDAGUbMhwMcHVmgZXkCvXIetgrshtCfajRPQUQK/ADZ5qWCoDYF3TAaimOpLS4MdZiTl3Iqg5WlmtVgIpyr4Hs8PuSN30oWL23nZsmNxg70e23STvbY8osn6yQ/ZSy6umY1wOo+ktCzRvdOp/i1QgQ9bOqpQwObTdEbyGHSn5MFw17ljI07blXMu3TdHznqNIJJ9b8xObpoQ== 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=m31wVm3xrbms261iI6YNla3eOFHUlW1kVlFsSJ3MWFs=; b=R3VH+sDO9gMP8C1bXq5KdfLO5QOFvjqSnnd7OHNz7FzCrRMNx1qgDnj02TY5/aYUud410xEf9IqnrgCrvnhZMG5GoNNW+CQvDXYdC6oY7XwFZh2DBhf6olyA+Bs2LD6qZzQXDYjjfMYRJRwutEr9En67gf6jom0yGcNWKJPQyPVNbxhwa4ZKrSEr2S2IqpbuC6RPQSnxjsha2MftI6fC02KqDwFCxFIYooo3swgJL+ryW6Ma64Kn06pPfHsq8i32Z2Nm03EzKPa51RMayfA7+ZHym2wavI7D/qA0/t7KJ9uk27kX0oF87TqJibML+zBqts3rc+78Og0ZSUit784QeA== 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=m31wVm3xrbms261iI6YNla3eOFHUlW1kVlFsSJ3MWFs=; b=T8ipQ6Q34sXiwRmEbKmw/CsZwfbTOwCI9AouiYwKf3ZWLED4EMw7YGwS1BRs+VnDz5nbYvZSmZlvHXBvSWvVeBV4i2ZSeJ2qpc4R4se2K/gM+2dgzIyXMp5pOlhjW1jcvYuLK7LUvEkzCyskSWjwc/K735Ex37bl6D1RpQePdwU= Received: from PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) by CY5PR10MB5961.namprd10.prod.outlook.com (2603:10b6:930:2e::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.11; Fri, 30 Jan 2026 21:00:08 +0000 Received: from PH0PR10MB5777.namprd10.prod.outlook.com ([fe80::4b84:e58d:c708:c8ce]) by PH0PR10MB5777.namprd10.prod.outlook.com ([fe80::4b84:e58d:c708:c8ce%4]) with mapi id 15.20.9564.007; Fri, 30 Jan 2026 21:00:08 +0000 From: "Liam R. Howlett" To: Andrew Morton Cc: maple-tree@lists.infradead.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Suren Baghdasaryan , Matthew Wilcox , Sidhartha Kumar , Vlastimil Babka , Alice Ryhl , Kuninori Morimoto , Geert Uytterhoeven , Arnd Bergmann , Christian Kujau , SeongJae Park , "Liam R. Howlett" Subject: [PATCH v3 06/30] maple_tree: Make ma_wr_states reliable for reuse in spanning store Date: Fri, 30 Jan 2026 15:59:11 -0500 Message-ID: <20260130205935.2559335-7-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260130205935.2559335-1-Liam.Howlett@oracle.com> References: <20260130205935.2559335-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT1PR01CA0105.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:2c::14) To PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) 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: PH0PR10MB5777:EE_|CY5PR10MB5961:EE_ X-MS-Office365-Filtering-Correlation-Id: 9895d006-64be-4b4d-1fc5-08de60428d02 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|1800799024|7416014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?/TCsa6MROsqzklLJ43s192lNovnMnqMn9TgsBvbp88kCkYl+AD8YFXPuQ8UV?= =?us-ascii?Q?hlVN9Dzh9gVtUPZjBys9aJ4IWkeiR3B8LT1lHF/zIZGpcOesZM2JBMRsJdeB?= =?us-ascii?Q?q1aHGld7NAsfmIKn25ChWTtHEXTfaN0+32gvoGC4yNZbHgVVc5iHe/DwWC0b?= =?us-ascii?Q?a4bgpAzDVpC1WuchcXIq76AcLzgTj6rxFNtosZi+bFbSaxIrB9hyoGjw2Ywd?= =?us-ascii?Q?SOZdFRu0Rfiswiv8VkaOVUBCpRsDyuP+61LmM9eClTGDUhqqSX5anxRn+lSL?= =?us-ascii?Q?5U56uCL+5zZSJQG3Y2cubTAanLi8lCOHr3ibPHi3AwyvtHfoGRtLfNKbxy//?= =?us-ascii?Q?i4+3NHBE8j/s0xQy7zVbTksZoqb2IQZlij3gZmnLcN6U6Gwdd3Mu2O53Ycjp?= =?us-ascii?Q?wURrZF2hQQW/lS7kWAdUviyadRHIqO1hdkw8XEICNeMIM+cZrwqcrWVBr2O+?= =?us-ascii?Q?kCkCEzEhoXTOLhbZrb039KpXzMvaAT4OymAUsLtmNkE4QbqKJZbKrQmz+9dH?= =?us-ascii?Q?YO7ckwv9EctMANVe/sYZLLlYCheQ53X88WgKUq0g1g9ClNbSZEofxVCZEAUp?= =?us-ascii?Q?sciBa4nIXHN7wJRAUIDyyoVA5kI8JH/1TEL+s0wEpkgOM+zsWCxHnvS6BhTL?= =?us-ascii?Q?Z+/fYKak2j1UjponKEVnHRaHhBhm7NFfdJS+1WOz9yeWQWa6VOX9t/q/ldhd?= =?us-ascii?Q?t7dLvsTAAdYz5ZxpACw59+Dxi6RgwXrKkdvHZ1ceGlxV6Xisz2jk+5aKniOX?= =?us-ascii?Q?o4RJfeS472S1K4kPAs5AKLkHvOMBElBqc1WXTr+49FN3M8SAILxVJh46Up5Q?= =?us-ascii?Q?hm7wgOLmRNz35yN5Vy159o90tX5DvA26kpOS8dOlt9Qag6DxBmgW1ryAYyKg?= =?us-ascii?Q?cELafrB9aCOFLfQRVansW7rtX0d0o5a78h2ISzFvvVEEehi+0AldmyKNh46A?= =?us-ascii?Q?56qQUToUgPO84i0ba5K6aAA8bGYvZSvezN3mZGdTu0OqXUgqROZW2KnrfpfJ?= =?us-ascii?Q?yYIEhxaXoTSEwuJs0l22ykfKajwEeiFZl1tP3/J6JSJ2e3ItAfoZ7Mf/clT9?= =?us-ascii?Q?FN4MMjDk0SxWNR7qRLRP4r9DpFyiXUosIIa7Juc9UCoLuxp95dCGA8weDK4M?= =?us-ascii?Q?khURTkUKd89mjtB+p4vf/CObM8iOL7564mEx66v8TBnPNS3wrg3O229iMe9k?= =?us-ascii?Q?kIsLY17q/eA0d3yNCakIOXzNwOaiZD26MUZOusnNxL3IC1LbQGiO3A97b5zW?= =?us-ascii?Q?APWzp7NBT4GFiglQFYqmHOAhqmVzITdcIFrlaZ/S+EZfZu6fTCc0WHApmK0H?= =?us-ascii?Q?MEFIwpsaidQCeonINhwofIT/TRCdIH0zpciOeDxojyDa/SjvQrADco2OUaM8?= =?us-ascii?Q?lzwsBWYGediJx4wYKHApd40quZ2o/AcexO1G+fHXajtmFy7rvTeCajgfukFP?= =?us-ascii?Q?bnIOY4PeJlwYjGfFvoxJHU8fFLYNO+XFhUpd2X2127y3FUREX2U9NOuzNslj?= =?us-ascii?Q?CY2KVf3kK38yeZArpBAGhrvL9oTixqtfsUu0CL57icpVoEuDmL+rO4bwjN89?= =?us-ascii?Q?cxoZvtT3T7LIA4pvFxw=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH0PR10MB5777.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(7416014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?iqwtNrErfgeSeNSYzWyhLjhUro4ucIkgJfG2ZdORIm1JGLorFu6oNP4R2bRV?= =?us-ascii?Q?FYanPwcbNUseqR80MF2yi1CsQAZDUXijy39ososa9dwV9IFnKuz7P00wfFPb?= =?us-ascii?Q?syTCRmu3iwzSI7qR9L9DyjEN/jqiJZoMWsl7tm3E3zjvrh675foWLh0hgm3D?= =?us-ascii?Q?PweopiMY0d9J2yrNvqdd3EVhoge+KZYKE6qAr1JuPomFAU5viOmAfsqvA/fa?= =?us-ascii?Q?90LQQ3K8uRMohQ1W4f92wOiW7PmF4vkGQx67/hk5CYmsYfcnT9xD82EwuWCn?= =?us-ascii?Q?Ivih5Cxgnch/iXSvcN5DDs1tPUTY2lQ2z0NrMW/GmKxrxqxPEImKbBhu6Iar?= =?us-ascii?Q?cZUmCv42XavJUN+TzhuOpxBtz5L+PHNLC57eP7FP5R3n7QbyYRB0foDVmwgV?= =?us-ascii?Q?SHj2E0ytJ52idqilxBQiTuVWW413DE9pzyM+CnD58Kz+NnWlzkzi48yW+Lck?= =?us-ascii?Q?sfHfmsmBLXDn2TgyQci5yzckqFcC/zmSPnKaClmvtSRh0QwpSbwU7+GNeLEF?= =?us-ascii?Q?wBSNlLN6NVl5B/Y8z/apeMWVzORx2Tb4NpM3XIv5MWc90ci2LkcS4l9Gmtwe?= =?us-ascii?Q?IkrxvHPtzHmDsrLpBSp6m2cwkBAP/MJbFwvb5BVjiE3nPJ0ohaEKYLadcXkm?= =?us-ascii?Q?McKhSfwy/qppXRUEtgNFZItZ71gszzd05TYHWHJOax0xu9dlJrM8La5uGOna?= =?us-ascii?Q?GwEaXfFvnjWKzIU54hRYVBUCTJ8p4VbjQRZKGp9zrA/wEbOkvxFl3GKRbglj?= =?us-ascii?Q?KXjN7Al6X4H0VQYKhdQUxc5KcsnRlW36g30eOqBtZtDe6b7nH/fupJlQKMff?= =?us-ascii?Q?6wOMvwXKsn9KykOTiHQCTF9std7yb+gKnBqoGgHRiTDX476yZWruD1g+jaWR?= =?us-ascii?Q?NwtWa+MKxwnHPG8/tOK3Di5G6M+3RtJ+DrwcRuPxZ/yAWShboaH5FMY3PW2Y?= =?us-ascii?Q?4O6TaGESmBk1gFoXKq0k0jetG3SzF4pSojpOYVzT/e787+zPs/bSlYWMzI3R?= =?us-ascii?Q?K+uTW6E/IO/yr5OLdQrn0LUPOLL3XDIutEhFTtrt5/M0Uhs9Wx9smTSZ9yRP?= =?us-ascii?Q?D5Nxd89PxK3hAFq/Lz0cryaqhhp1Fv8PjxYyQ0oyKF+u8q6vvPk6W4tKAJCc?= =?us-ascii?Q?YVxLllgw8uHJAFT5evZQbDoL4pYDDGGrek0gajk8S3C9dVyPnIV0aR5p5pdI?= =?us-ascii?Q?G6XX0GeqPs9Ew2UNvDQOMQGkFs8W37qIzXlHyIWw+B7vqDpZMqnefeZWg4n0?= =?us-ascii?Q?llht7yfXZUNhlbM69AjIsth/2UkX8hcwUGNi2YL57NFxiDFC8+BTPpHAcXxB?= =?us-ascii?Q?hTHA6pTBlAYKmPg7k+wqi5S5G56SzCMglVbJ5BqFzJqLJ26Y6kWj/e+qmb6l?= =?us-ascii?Q?gZxFAqLWyBCZKFJ1J1fHRQM667OhWdCz2rnlel9xKPrKqFRHITuNVkuJXyqY?= =?us-ascii?Q?Z7V8zHn2YTdIQKHsi02qa1O/g+BwY4DK/NnQVYonJ94eVT90ndrsJDoAUmgS?= =?us-ascii?Q?W3vrswzbxOgTO0C4yNyDT48v4JsQ3MLOTxtoN6MZKG/vA/+LBOCrWnEp342G?= =?us-ascii?Q?uCvLSpabqu8wcpTja1oISh1iS0pIhzw0o2//I6Y5ZjocT4WnfN+8K/dpDigF?= =?us-ascii?Q?uemnTvpgLXWbLds+f1sgxdJgm2uIwgwrbyxh8sUEtHIrd3YI0NZnwem6aslc?= =?us-ascii?Q?aFsk/pI1jGXAMDtP3qZA8D2msllqB61e/tmj+Y/dsro+P8TE7DI+BYuVerRD?= =?us-ascii?Q?/6LJo8j0PQ=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: qyYTq0TlCH98CQxPeJt3rjtU5Ur0iKo5o/GCAauerVwQJnIk2qI3OA1XFnpetzU6/xoGC4xLX9dFzlWTjv8KLSMfPcEsPtdhls8qv6g7I1WZigsKPQZCVpMQqHm167P1BF9jelWvdIOCQgf0W3dpKoeuHSazq+nVFvndf6z+jvf4/SMUSh4KJ7NwV6Zy5aqWXf0wJSIFvzlC4bOoQW4kQAG3n24w7Iq3xlILAh9UAjvnyBRwQCkMmWIg+P9qboCXIOOaU6vncVMOJqNlha7MIiWW2JZPpoa6kT3BhqoIIIuI6KZxQVoGlyuLeDCFMO4Sjs3DUQcHlAjD0z++Ydr44xKjAp4OBzcOhwkVMSKW5Hi2xb1MS9i5G6JUkAjRsaokeud/d8uJ2Or5TcZYg+2zCGQVCJTRVqE50p6htKp8va76Qo3V7fqMT5KlOObKkeYQmQxcb3M4zNq3VocI4O5MKLyLJ81DDPJPDhJjZ4FgxDcmsxH8pmVd8nrhT9LkHy8KICIuslCQnPTvj6MrIaHr0NjzmKwHW4WkZkDr8om8YNSClMZSyB9iCkoCZtSnJLOHr4cfuIN3ygi7v57MZhhCi9J2QiYvzHlmJ1kToU+/ugE= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9895d006-64be-4b4d-1fc5-08de60428d02 X-MS-Exchange-CrossTenant-AuthSource: PH0PR10MB5777.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Jan 2026 21:00:08.4214 (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: I8Yx1f2uiR/tw7kOuMA1lAclmg9tQ45lVf3w0m9TfcE4Phulh5HhnEGSgfl6EBBKa8+dmqj5+cKiCdHSOP4QoA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY5PR10MB5961 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-01-30_03,2026-01-30_04,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 malwarescore=0 suspectscore=0 mlxscore=0 spamscore=0 bulkscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2601150000 definitions=main-2601300172 X-Proofpoint-GUID: RiFV_2mvdrf8s-eSNX0MOGPWFX3JqFmh X-Proofpoint-ORIG-GUID: RiFV_2mvdrf8s-eSNX0MOGPWFX3JqFmh X-Authority-Analysis: v=2.4 cv=YuoChoYX c=1 sm=1 tr=0 ts=697d1bde b=1 cx=c_pps a=e1sVV491RgrpLwSTMOnk8w==:117 a=e1sVV491RgrpLwSTMOnk8w==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=vUbySO9Y5rIA:10 a=GoEa3M9JfhUA:10 a=VkNPw1HP01LnGYTKEx00:22 a=yPCof4ZbAAAA:8 a=gTX0PQgR-87UWUccDAQA:9 cc=ntf awl=host:13644 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTMwMDE3MiBTYWx0ZWRfX3pbl4AnXLh6p kh6xMFjd+IfiuXJZr5aNp9xYlCU1YBlq2IkdySBkGws8AXRcg2OXg8a91kpXm1f+GuuQCwWUQhK GnJoyCn1g5zYCHxT0G8LBHXi5DICVRMMhtXWSUZUVI2VB8RYbg0nTtKMQxAs0Eo5/NVO7B8Cr04 hg/l3VfcQ0HCAQKZHyHu2n0fu5ykmC+f6giW/vswrwhVF5sBASndjPYJ5xz0CJxtEDW0bT2N47y h3IqJgmCW6hFyfHBa2hPDpCGfgdRNB35cfkS6YK+FXik6k7gZu9r+Zqoz36jxzBK7pBkZwwtpK6 CjWPh2pj6blLAuSQLS5glF2Lyb7HdG1T1QFIMRtEyX2MCgBGxh/v9wIZ2pUF33wJRLdIjwAvAJZ +hbcE76iIskgUouVkmjcyMBtNbR1tgviU35ZUdMZA8Wtj7viIMpEK2uPCSRNLH8CVCf8lzMWAXZ 8yaDb4EXGauZhuyz8UrldaY2m2v+jpuhmBsYoAiA= Content-Type: text/plain; charset="utf-8" mas_extend_spanning_null() was not modifying the range min and range max of the resulting store operation. The result was that the maple write state no longer matched what the write was doing. This was not an issue as the values were previously not used, but to make the ma_wr_state usable in future changes, the range min/max stored in the ma_wr_state for left and right need to be consistent with the operation. Signed-off-by: Liam R. Howlett --- lib/maple_tree.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/maple_tree.c b/lib/maple_tree.c index fb14ce4a49c3c..ab14876bebf7c 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -3319,6 +3319,7 @@ static inline void mas_extend_spanning_null(struct ma= _wr_state *l_wr_mas, l_mas->index =3D l_mas->min; =20 l_mas->offset =3D l_slot - 1; + l_wr_mas->r_min =3D l_mas->index; } =20 if (!r_wr_mas->content) { @@ -3331,6 +3332,7 @@ static inline void mas_extend_spanning_null(struct ma= _wr_state *l_wr_mas, r_mas->last =3D mas_safe_pivot(r_mas, r_wr_mas->pivots, r_wr_mas->type, r_mas->offset + 1); r_mas->offset++; + r_wr_mas->r_max =3D r_mas->last; } } =20 --=20 2.47.3 From nobody Sun Feb 8 02:41:40 2026 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) (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 F2E0C388861 for ; Fri, 30 Jan 2026 21:01:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.177.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769806887; cv=fail; b=BDeOJ0AEamoAH19fmJVR1qNoJbpc8q71hZAuE8UZ6cZytfvPUsZFdNZKby0xFty9aZSir3GE7taCPI0ILebcpzZgnVm+aCXIocrUCyRheSYSJswit4yHSjxEa9vmMCgOJr8in4OuFDXFd0+5UeSediSRMEKZIgrF5bVKZ83gznE= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769806887; c=relaxed/simple; bh=/7uG81EztmqO/9Izgbm7hoyskeeXdFiOG3hxKGl6uZg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=qSvCvsL8icZBsy5JinSM6izvjDLuhqD3Rhc8fyThWG+K1JUa4eAH/SgKmttjCI499oHThlHTfIOO0D0dMNy4hfnq8jBtDiQssCjGyK8Q9WHWngpJw/C2Snuh4PxYm3EYMymyrLEJRvan75I3nueQHkuy07b3ZNTYidWQAEVoSF4= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=KC3Dr5HS; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=w6o/7NzR; arc=fail smtp.client-ip=205.220.177.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="KC3Dr5HS"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="w6o/7NzR" Received: from pps.filterd (m0333520.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 60UKEWS0610873; Fri, 30 Jan 2026 21:00:18 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=n8vg59wYyGp9OYEKC17r9gTc+r9ahrfGb7yHqJ+IgVs=; b= KC3Dr5HSTj0HUPuL9IjvsN5i9KGijjamacO7vpdw7KM8ULbnG21DRhEhgqATU4Z9 lh2y2EW242FElSwc2L+Rt+4Cj1j/2tbxO101c971oUu/9qVHbDn9+CVrR4kluSF+ jshJdoRJ0xArbFRNrG3U4JrahM8cSqUho8N1ePLCWRjtYSpT8T85PMmbEk7qKciy 2Za65vEEN8s/5flsTwrEKyA+UqA9+qYDCsOa0LAG4qgk2HD4BfaY//gihYV8ErrS laewRCmCjVREwvAIk2jzfOuj9D5ukThPlkyPJKt3/zUqXSle2VaQw3CPjOQfeV3Y 3U7SNizSVFK3aGYHoo4Rxg== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4c10d88bn4-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 30 Jan 2026 21:00:18 +0000 (GMT) Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 60UJhLP7010549; Fri, 30 Jan 2026 21:00:16 GMT Received: from ph0pr06cu001.outbound.protection.outlook.com (mail-westus3azon11011022.outbound.protection.outlook.com [40.107.208.22]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 4bvmhe5g6a-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 30 Jan 2026 21:00:16 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=K/BF+2+ce68eAytuyI5xoru2J9qdISofbNnvzTA98f8jPR2xm9COCK4N6vBBZJrmzUIk528v9XaPSY0fUJRWfst5dzg5POqrcQJLyIVf5aenXV4hDsyR3caHEMvHDPyjNRRpZr2H7n6nlDIazukRw8FPKDIncMBoOx3vUOsutCRCE1ffRZOzc+1EDJCZbtpCO7sO9lnqrUHS7NFSy9BtPcL+qouK7dlRiiUdwSwanutJ2F77wJmWaTbEXvs0NkzgJNPGiE5tX2xBG61pJuKi8Rl9bQWK2L4+2sMOqSpnk9vRlpO6oqyny3QG9ZqeO4lUOFUWE9fTSNIXshyq23rZeQ== 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=n8vg59wYyGp9OYEKC17r9gTc+r9ahrfGb7yHqJ+IgVs=; b=lWM3i6vuGG3Pxl+Swa26lTjZd88k47Vzl0b5Q5SyNJ/G/dOFlBwvyRZpMm6N/yZWwHF9yZvbxMuicyxHSltoBMnnywQiyeo7O64Y5LSuTPQby03fe+Mp6GflSy9jmrtBsB+rt1bZHsTPgEx1rCZccQdGMLJL5ZWK1gyGUekuwDQijvUbF/35aFWSPSU4zwpEux7lIlzK6UIX8ZQFouiof00KeEUjon1Rfv3j+yqdJbLgtis5VZRXPlvt45LNzLGKyZ2LiOeQhuIzsLqKu7IbyQ8A1CqtCE67eu8vMSDQ1vHYxc6FF7WcY0gVD/GhxmNufR3txiKyMwsUHxF9ZEAj0w== 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=n8vg59wYyGp9OYEKC17r9gTc+r9ahrfGb7yHqJ+IgVs=; b=w6o/7NzROCbE/9LoKQUeJ0IZZZ61bTWPBGEZf1fTX/KAXqyO8Xo3goiDV1Gh3WLLhxeKAwpMZULcrKTY5TZOZP7BPCyAB3ryrtUn7EvaLvPcMfd4OG1D+DAxZQB6zJTaWb9VPr0LnnbeG6LIdCpBFm0OA7EXpTK7diJGUDBY0E0= Received: from PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) by CY5PR10MB5961.namprd10.prod.outlook.com (2603:10b6:930:2e::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.11; Fri, 30 Jan 2026 21:00:10 +0000 Received: from PH0PR10MB5777.namprd10.prod.outlook.com ([fe80::4b84:e58d:c708:c8ce]) by PH0PR10MB5777.namprd10.prod.outlook.com ([fe80::4b84:e58d:c708:c8ce%4]) with mapi id 15.20.9564.007; Fri, 30 Jan 2026 21:00:10 +0000 From: "Liam R. Howlett" To: Andrew Morton Cc: maple-tree@lists.infradead.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Suren Baghdasaryan , Matthew Wilcox , Sidhartha Kumar , Vlastimil Babka , Alice Ryhl , Kuninori Morimoto , Geert Uytterhoeven , Arnd Bergmann , Christian Kujau , SeongJae Park , "Liam R. Howlett" Subject: [PATCH v3 07/30] maple_tree: Remove l_wr_mas from mas_wr_spanning_rebalance Date: Fri, 30 Jan 2026 15:59:12 -0500 Message-ID: <20260130205935.2559335-8-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260130205935.2559335-1-Liam.Howlett@oracle.com> References: <20260130205935.2559335-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0395.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:108::27) To PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) 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: PH0PR10MB5777:EE_|CY5PR10MB5961:EE_ X-MS-Office365-Filtering-Correlation-Id: df819817-9b99-4710-c721-08de60428e5a X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|1800799024|7416014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?NUt2/Sgrmkt/wgF4huJb+3m9xW2nKdvUqU9n5t6+rBrkGNIC0/DsEBG7PW5e?= =?us-ascii?Q?dVKp1KIhB9eqE4IsjY/p08k14a/gnesvVw/9sP1NWCTd31jrUWDefJWxyon4?= =?us-ascii?Q?enkkyaXljp5zmropafMXV4rG5XfsRKNQmEX5K/wDz/s/uaeZVnXeN2pA05QP?= =?us-ascii?Q?Z7588GUeyiSkCg9a09s6Ru7Uo3fJh966XEqkmT6gxr7LrIxh5turRUUo/BDv?= =?us-ascii?Q?a31dwGQ653PgMtc0xHum/kCOfqz6ZiJLn8zdMVQ2vaofzUQfQukPH8ph+227?= =?us-ascii?Q?pGLGjKj3D005ds28v9hh0BACyGmLosU5IeRUZ20BkBYEXIKIz0FP4tkCXhNB?= =?us-ascii?Q?LW+OLJ6IsduaawlD/aiIXFJ02cgtB7PelJsBUEzqckwqYja7M1Prlt/x03IN?= =?us-ascii?Q?Ysw80mbDTn3CSsvrGrQB8o5g62Z44qnXPpfnMnXb++OUo8sWFaI1C28V/HQl?= =?us-ascii?Q?216NNuPiiYuDEzR2/wIi9MKJJla0M/pIhvkO4AY0Q+PASfl1IH458v37vP8J?= =?us-ascii?Q?s2GDJSzixK/HhYHw2DwpDATz0hIW/bj+urIrViKiX5LCp8WFT2DsaZevudtp?= =?us-ascii?Q?T+ZUXTLpXz8xBOGoIMpbX/gi1PXRJieEKBUda7qiiIgB6/oniULLXqG5nsRO?= =?us-ascii?Q?cqOFpun1pcbwoRYzr3hG5A3nrZMmzhxndHEnqjTodyUy7zHs30sMA+y165t+?= =?us-ascii?Q?9bzSFj69Kt7G2p0k5d4lWadGvNsEQ+PENpFmksDenCv6S8+C4JdtvDsOfDLG?= =?us-ascii?Q?J+939gVMZgZxdFgnI1UW1jlGndMbI2BeObjhAsov8m1AZKaKsNwTJvC/NXVA?= =?us-ascii?Q?i6rSr0TuvE7xbeN6HAnxSkoIvSzf8poTHcfzv06QkRmn4pfTFRpmGfpEH4Jg?= =?us-ascii?Q?ebsw44IsGDgDEeQuv+ubLhTtHcoTuflEgk3Xgz6tBPviZaMzwEptLvqwWxMj?= =?us-ascii?Q?FVbmMDpNidvzUINSrGhQsbwrcHKXm6QuF4eJOz9f7LX+zvPlDfUpK5md+ZVk?= =?us-ascii?Q?2DSMnc8DblNiNsZW12TyNNjAPfPRFooGoglZGz24QzjVQgfFY/rtkmGIMff5?= =?us-ascii?Q?d/CR+FIc1gHNEn+mu5369A4k9jHY8y20yjGM+GT/O0N+oEl0oupBAXTcTwhr?= =?us-ascii?Q?7QIBj6Mg+hmIjt4mW4QJtG+kQyDMgkiqG1MIgwlACAIC1zzQd1binFJ1R3zH?= =?us-ascii?Q?las08x8SLXoMPWDjEdD+u3cIqi0moj0SHVHsuZXas/w4L0yR+YbZBjNGbeYJ?= =?us-ascii?Q?yFF4IdwkeAzRtNnyGm6BOgiqv1hetOk0cgDawXwiVIpEZf1H8f8qI653fwDV?= =?us-ascii?Q?AKCUQqHQb1F4Q8CRFYpKh0V42Wx3ssEInjbanVtCCx7Si4zatyfCnJAZ4H69?= =?us-ascii?Q?YP0E4pHq5icZqehqUGKIcFF922vJTtIYDxCcDAfKJcipPs3s2SvkLrETuyBS?= =?us-ascii?Q?nwc1TEcI+LA9oA7NnxMbsApj3OmFAVOCeUxeLL4noX5lDILtRU4pucnUkCms?= =?us-ascii?Q?fOGhpqdgneOnAPrrR5JUc6VduHSxQZoGgWkzfh/tRcdnY9T8vPfn+iETdYfh?= =?us-ascii?Q?i5Yf35UX8vj0icO6Bio=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH0PR10MB5777.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(7416014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?GbK3rnmUGEUL4y4e5vrglZ8zeAnyN6/RL6eJJSUrp8Ed4PXW+6xVqOikGDRL?= =?us-ascii?Q?hmobfUqHk4/gQhTzIw7NATB+kVFBKSeuSp8H/aUb7h0euL3HiQp2HicRk3xr?= =?us-ascii?Q?qryZ+VRb2byvkHwveCKl0Dq+wjMnU6tflfdCqYFe+vbVt7C/ZRor6hcsFNCM?= =?us-ascii?Q?npAAOFoQEAHEXfkr4AGzrQkt978bHkIOk0PD/AcxouvLXLSGXIP8iYFA3bjU?= =?us-ascii?Q?61RrZgGnGiffynw+a/qeT1bZNqG7yeMuTmRxhON+gKpsEYFhnHUbXM39/HT7?= =?us-ascii?Q?IEPGpctLGZghStK0Ov6bTPnl/POvKR1uStN8BYBBTiFiTw3K6r4/DKRg+O/C?= =?us-ascii?Q?afnrjPMUvOhMUGhiCBLkiYk83TBlfrW57ClUubeFwn9RXPzUBA3IVFHG5/ao?= =?us-ascii?Q?V3dzBspx8cAGTstHJVLFThxTp18xPsOCXjv2uub7LJ6NK+mIV8+bT69eRQ9B?= =?us-ascii?Q?pi4YBnkgmT782511de9H3sUfUwv71Csl5wSyRSRM/ZRrHSlMvpuB51Dbxjda?= =?us-ascii?Q?TPZNbyUfRiwz7QMPg1RgnnNciKDnpnbzlfOMkscr4xU8IX3b5f6jASMr4IaI?= =?us-ascii?Q?HKHcXBv2pahFY+QmJIlDYyKXzeD55UiXVnI8TN4ytClozPFQtuLP7xaweowv?= =?us-ascii?Q?Y3/nl16B+R6kf/893F/31Hu7NIer3+N40QvVxhckmWh392miLCqtWQ2tmAHU?= =?us-ascii?Q?QkGAZN/4AE9DlODRcSrU7qaMECTrO7UmjfxKfEZf1sgoW6WVitU7TKNgEkU5?= =?us-ascii?Q?AeKeKcUATDL/2e5SQC2cx0evwXLLVP3EHiCEMhkRCHVMRdvTYaQUkBvC9qAU?= =?us-ascii?Q?onk41uLo5ypq+M7NsgSudyIGNR15fZvbiRqBpHmnymry0t3XSiCCiRg3v0dP?= =?us-ascii?Q?r0uP+y+qTvN/bxo4OjJ0uZR6ZmB6RscRv7pktNgmDuK8vFoSDZ6dY4PZWtJr?= =?us-ascii?Q?9jeFd4TPyaL+ybfhA5W+/CWFZUo/Hk7IqqvVI66CtEG41j+Mp59bDCZO/rZd?= =?us-ascii?Q?veWBQvrzgBFctMsID3R7uwCG+Do56V1wNdBglNsaWz/Ze/FD+W3V1TFOrefm?= =?us-ascii?Q?LfbAhXq0gEic/nKBCgcmFOMZ0m0Q9T7IkiCK+16Eon56/XWjKam8YWQjnaoC?= =?us-ascii?Q?8H6xPImVkL/TeHcLOZ/oRrPwKzqwE/xnPf3sXlPl4nVFaxFICaJsm3Ngo88c?= =?us-ascii?Q?6U4VHt5USBCfCbcyS2jo6bisYzcKkrJTePfLEEMeztQzoYdCUqfz2ptLorHd?= =?us-ascii?Q?kVeOeGBeoFHzo+7y9FrOvgo+/lry4VK0j6XIaeUoCCcoYF/KmbuYRLpU2I05?= =?us-ascii?Q?Lvs7rRG3g5I7KEJoBlFLJPvcI7jzrUPxfGSiOlU9u/4XyosYEy/p9PfqQtkO?= =?us-ascii?Q?wYZvwsDU9kBh+4+/1tXM6sc//9+odQlIMDc38hNgVZQChX05R7OWVUlU6+2p?= =?us-ascii?Q?8ROUq9HWFwVIUSCQkh2wnRGwntFgXGzSdvX5euOATvU4/BNQmFotcRvT6kSl?= =?us-ascii?Q?MmCYr2wOYRGKZX+rHo08ERofmgMSbEoFSZ1PBp3MSdUOBPhZe09SmWmEFE7y?= =?us-ascii?Q?KVxys3d3mwq1W5A8nboAX9N403ZTGjtXhbpO4zGUafJLqfzQuidk9K/87omJ?= =?us-ascii?Q?VyLz0cQxH0knoOZg9lcLb4fhS0RTL4K9Bc8xZ/XWzWzwoh8XZAZywYCJS45Z?= =?us-ascii?Q?/7ZQB9IcnIuaPKWBO+uYnjfdgaFKWidXFKniYWldFSLmnOLtQ2Lnf3oniji2?= =?us-ascii?Q?KkLVq6+uNQ=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: aieqYXwHFsRqbhhh061wryi5SCU3/R541T3fgkmSkjylUU6Uuw7ESTaasCJpDimJ+DZV5EuHsbl6Dk6+59gBsq5+yQ9ueT8Oo04bT1Ts5rlziu6FkBDLajpZHSV4swl8+TjQ2ZuVICHDfJZ3gQcQhMQNVqLhEY6jsUlj0Y88dO1hF7dJ0C99+LYpdbLRAA7bCSUVz0+FgM/qPw2cCAMCZukGPgRGE8FxZgMIykzRiXlXFjGFQ7ExddS2pOuz+KX+ZIVgx6yfYcztX5pgguZGgTZFAKOok/Ymr3YwemHxsQF+eeCJOo5kvKzj3erNdHbwTk25HWEi5DxXaF2h2GrT+IdmyVWP7ottl3IFxBrVE10dxhCfaqMARKfOFI7DdeP5ctGmjz6lUsB8WXxRdIU+g2EO/EW8NvEyxcb1t4TJ7EAqDES5+nJCLI5o214sLjJVA++p2UCXMpGZU5HL7f2rPvdXLsG5LKLkwp5C+CKixlWCXHdpbRZO373YPFJIOvOw5NsEcRS8ObO/kVRJ5l7YebbXvL5uskoiZ42Pc4QF2YDc4/ILAM4GYA66pLzlxOUhAiXFn0p5BCbAPlJ8LELCsYycHnxy8nFpWf7JyC1SyoQ= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: df819817-9b99-4710-c721-08de60428e5a X-MS-Exchange-CrossTenant-AuthSource: PH0PR10MB5777.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Jan 2026 21:00:10.6570 (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: 1lVEfHgaVbBOhtw/uA+kxGsfekRXhNeeI/n/C9QFsCjH4PQiN/IkmWbmssIeOJvZ2oO/6iZ9GXsYDgOm7KxuRw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY5PR10MB5961 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-01-30_03,2026-01-30_04,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 mlxlogscore=999 bulkscore=0 mlxscore=0 spamscore=0 phishscore=0 adultscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2601150000 definitions=main-2601300172 X-Proofpoint-GUID: oti43Y2Tu6qpfaQ5KbIBtuzKTAJFbPqs X-Proofpoint-ORIG-GUID: oti43Y2Tu6qpfaQ5KbIBtuzKTAJFbPqs X-Authority-Analysis: v=2.4 cv=YuoChoYX c=1 sm=1 tr=0 ts=697d1be2 cx=c_pps a=OOZaFjgC48PWsiFpTAqLcw==:117 a=OOZaFjgC48PWsiFpTAqLcw==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=vUbySO9Y5rIA:10 a=GoEa3M9JfhUA:10 a=VkNPw1HP01LnGYTKEx00:22 a=yPCof4ZbAAAA:8 a=3hMZsP_xGy9I1FFZ5EkA:9 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTMwMDE3MiBTYWx0ZWRfX8QYvMPJfc4tq zVpfi7N250Jv3M26oelhhFKvgDwNEYclvckAfTF2sx2g74mgTVHDVzGb0xF/z6EdlFJwd+xq+qI wo85wMgiawlr1Bpshi1VcpQR/+Rj9+ijH/uVxJuCSCclWuJd8SxmSu6gMRiznJRnBe9I+jhLN+V 1KGIpKRcCt6ZvPcy3Rfre9MY7Hks88yfma5j+BzW3lql4QcSBbZc6lxOhWTWziYJ7Xb7IaIWAgl CQWufQvla2FhmLfiCynLQ/5blspR5pp+wZ0T5BoepD+0SAGToQ7VGvj9Rz+3HSSDUhwTHucGEEO CkA9vFoWQ3nUGQRDrq+K6aKk9MeENHu6BSFudAThoBWI7MTEawMwKLZIKrJxPPx+PxSpQkdzxR7 vAyKsw6iGMki+3QmbCmwTjrsRh6y3JXMfxNlM5aTOgIF4oZKiFj/MrOmSjkQsGaKQmQRDPovNvL SJy58U7x6BFkqrhz0Aw== Content-Type: text/plain; charset="utf-8" Use the wr_mas instead of creating another variable on the stack. Take the opportunity to remove l_mas from being used anywhere but in the maple_subtree_state. Signed-off-by: Liam R. Howlett --- lib/maple_tree.c | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/lib/maple_tree.c b/lib/maple_tree.c index ab14876bebf7c..afa39bbd687c0 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -2751,7 +2751,7 @@ static void mas_spanning_rebalance(struct ma_state *m= as, =20 static noinline void mas_wr_spanning_rebalance(struct ma_state *mas, struct maple_subtree_state *mast, unsigned char height, - struct ma_wr_state *l_wr_mas) + struct ma_wr_state *wr_mas) { struct maple_big_node b_node; MA_STATE(l_mas, mas->tree, mas->index, mas->index); @@ -2760,7 +2760,7 @@ static noinline void mas_wr_spanning_rebalance(struct= ma_state *mas, =20 memset(&b_node, 0, sizeof(struct maple_big_node)); /* Copy l_mas and store the value in b_node. */ - mas_store_b_node(l_wr_mas, &b_node, mast->orig_l->end); + mas_store_b_node(wr_mas, &b_node, mast->orig_l->end); /* Copy r_mas into b_node if there is anything to copy. */ if (mast->orig_r->max > mast->orig_r->last) mas_mab_cp(mast->orig_r, mast->orig_r->offset, @@ -3454,7 +3454,6 @@ static void mas_wr_spanning_store(struct ma_wr_state = *wr_mas) MA_STATE(l_mas, NULL, 0, 0); MA_STATE(r_mas, NULL, 0, 0); MA_WR_STATE(r_wr_mas, &r_mas, wr_mas->entry); - MA_WR_STATE(l_wr_mas, &l_mas, wr_mas->entry); =20 /* * A store operation that spans multiple nodes is called a spanning @@ -3494,25 +3493,23 @@ static void mas_wr_spanning_store(struct ma_wr_stat= e *wr_mas) r_mas.last =3D r_mas.index =3D mas->last; =20 /* Set up left side. */ - l_mas =3D *mas; - mas_wr_walk_index(&l_wr_mas); + mas_wr_walk_index(wr_mas); =20 if (!wr_mas->entry) { - mas_extend_spanning_null(&l_wr_mas, &r_wr_mas); - mas->offset =3D l_mas.offset; - mas->index =3D l_mas.index; - mas->last =3D l_mas.last =3D r_mas.last; + mas_extend_spanning_null(wr_mas, &r_wr_mas); + mas->last =3D r_mas.last; } =20 /* expanding NULLs may make this cover the entire range */ - if (!l_mas.index && r_mas.last =3D=3D ULONG_MAX) { + if (!mas->index && r_mas.last =3D=3D ULONG_MAX) { mas_set_range(mas, 0, ULONG_MAX); return mas_new_root(mas, wr_mas->entry); } =20 + l_mas =3D *mas; mast.orig_l =3D &l_mas; mast.orig_r =3D &r_mas; - mas_wr_spanning_rebalance(mas, &mast, height + 1, &l_wr_mas); + mas_wr_spanning_rebalance(mas, &mast, height + 1, wr_mas); } =20 /* --=20 2.47.3 From nobody Sun Feb 8 02:41:40 2026 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) (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 A435236A024 for ; Fri, 30 Jan 2026 21:00:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.177.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769806845; cv=fail; b=pYmk6MZvnR0Li6T+n8Usw7imuA4xxEHkRiZa4S9wtvjI5B1hWZDsWLCpDpbGzowumgQ2nJo5qkUEqUe5VtUc0LhxVUGOFLl0Z2j/2J1rk/IM91MpMlbdVuU2GGj/ng5FYaFw2Y8Ly947+m5m5cRg2A4nqSMzBed8RF996jV5IAo= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769806845; c=relaxed/simple; bh=NTEG/GfRQsrSkdc6o1hX+glLBIKl8cZ7vQh84iN3qbE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=cEweWuISMRbWp3xKPaXOxxv9KQBgbQZixZeSBeCPdAYf5zap75fvZN6ET7m5+cho/67EdGun6xMJD57ewz42Hd83PpC2OiP2ORIQu2B5Cxn+QoXU9XRMS9u5RJD3iXprushryRj+xKaTK25QrPQuf/9u1MqiCvenR6F1LAuoxDw= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=ZIpqfYj4; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=Et9ihOp7; arc=fail smtp.client-ip=205.220.177.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="ZIpqfYj4"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="Et9ihOp7" Received: from pps.filterd (m0246630.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 60UKDnfT4028937; Fri, 30 Jan 2026 21:00:18 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=ft62lqWNUCLCETJbkBSmh0V88SUea+5+KSo70XSkRwg=; b= ZIpqfYj4BISa3Yb8tujNCwsbA+ylFu3RzRDSdYN3ZJqo9H1N9y18uy7fJ0PTZLuu G+JQs9pGj/GpGRTPEDj7VyISiUOMl9GxF/E+HyRy0+PgEI8nlQAhfMcF3dhHvWwA PMUKsvP0PwLHvXTR8IqQJh/m3RmadnoyYIXF7xaK5dJ0Elznr6a278oMac3at6/o W8tk40EEUo3BmGo45lgU/d7hAg1VhbNZWLp3qOqmdEFXh89K/6k5mgVnOfHxQQuB bGOhpaUoyxizuUC4qxxdMrLw/op1/2HsZuwe9VsOeljHBvCylvTS73kr0QULs+TH HeDTEHVXIobp0rDL4H7NDw== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4c10668cfb-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 30 Jan 2026 21:00:18 +0000 (GMT) Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 60UJhLP9010549; Fri, 30 Jan 2026 21:00:16 GMT Received: from ph0pr06cu001.outbound.protection.outlook.com (mail-westus3azon11011022.outbound.protection.outlook.com [40.107.208.22]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 4bvmhe5g6a-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 30 Jan 2026 21:00:16 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ooyrCg71EixF3f9it2BEHaR1vpwQWFvkKaxzUWbsflG1ZMn2unG+GbtqGKQSDL7SFtBGcxHVoFyxi52cUPfm6M1Uv5GKf1hSfAXUvRW9qg9AooYlk0mFhKy95yM78xT74qc7yN95VgZqmBHWmi5vdRGVbqYreIBocmjiLoGMaiZPKx5BCJyHEs93BVxHt9VDvv/qmZr9fVMK6CL0ABkydHDmDxuwK895fAeRTwunK75fP4QiWZXUcFVCA05JignAtfzoF0RbniGZik/FzJ7RR3WBn9CxYTpueOnG/JiimOP6H5i5sm3p3aI/vHdV/8y312NEtbAobm8tOZCHlRYhcg== 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=ft62lqWNUCLCETJbkBSmh0V88SUea+5+KSo70XSkRwg=; b=HoOGuXFNVSkYWa2NwxC/NgIJkrep4hiZIQ3kgzBPqmYOwfyyIy8UAmz9985+5rhBpaHAyPu086Ouf0V2LTAUqdqSPnA93G5hvMKFkwR6IQmM5J5K9a7WcwDRo09N2WPshKuluBw5NYqwbzUhpdGJVVOFVD9dWT7tf6c4Ya+iTilIfpXfdo3TwZQ1ebz72We8EZbdMeMHeaz6X00g+dm5TqASTGif+WUaf5ieasg1S39TCX/MzgZdy2gRZXFkJMEFtQUpF5iL/m4Dk0t7RCpVBzm9OTUuWA6Q0jQWWCbuq53gjA02ckGTJD5wbMvkNUbY7CFEZRGW3PgW0xi58l2XTg== 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=ft62lqWNUCLCETJbkBSmh0V88SUea+5+KSo70XSkRwg=; b=Et9ihOp7PkORsaYgeaXk1OIT3pwoZQoC5liCkEWzkMIIbfOj/Lla5rpDxR+VyZ2UVZbBG+4tmWeRAPd64ECJ4h30/YLm7E4fFydkGTNcyL21kJv43uhdLgfH/Upo4oGqDNN6xAzRBWi+k5yZo/vW3cTtJycG44Y4EOhzEh57vf0= Received: from PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) by CY5PR10MB5961.namprd10.prod.outlook.com (2603:10b6:930:2e::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.11; Fri, 30 Jan 2026 21:00:12 +0000 Received: from PH0PR10MB5777.namprd10.prod.outlook.com ([fe80::4b84:e58d:c708:c8ce]) by PH0PR10MB5777.namprd10.prod.outlook.com ([fe80::4b84:e58d:c708:c8ce%4]) with mapi id 15.20.9564.007; Fri, 30 Jan 2026 21:00:12 +0000 From: "Liam R. Howlett" To: Andrew Morton Cc: maple-tree@lists.infradead.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Suren Baghdasaryan , Matthew Wilcox , Sidhartha Kumar , Vlastimil Babka , Alice Ryhl , Kuninori Morimoto , Geert Uytterhoeven , Arnd Bergmann , Christian Kujau , SeongJae Park , "Liam R. Howlett" Subject: [PATCH v3 08/30] maple_tree: Don't pass through height in mas_wr_spanning_store Date: Fri, 30 Jan 2026 15:59:13 -0500 Message-ID: <20260130205935.2559335-9-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260130205935.2559335-1-Liam.Howlett@oracle.com> References: <20260130205935.2559335-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT1PR01CA0127.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:2f::6) To PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) 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: PH0PR10MB5777:EE_|CY5PR10MB5961:EE_ X-MS-Office365-Filtering-Correlation-Id: 00285ea9-9bd8-4664-b2c7-08de60428f9d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|1800799024|7416014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?wG3+0avr0U13lnzbUBpb29JLHiRF14/X9Q2qOcp4sMub7Y+hXhwI8g+cX/HL?= =?us-ascii?Q?Fsg/njBJw7dpCwQsqBrEwlXokuf1Lmo3MslXhW5a6dQopz97cPGpP5aq+1H/?= =?us-ascii?Q?jtLp7bL51Zak2R9K5cnNPtercNps1eVv2B2aQkdtk9sV63wXpm+0+ELUxhiU?= =?us-ascii?Q?SMmz31HxaSQgCGP2m0RTUHaGTBepXi4BIm5HN2OifFmKNZmo7/CjZSuUCqME?= =?us-ascii?Q?xp+ov8eJYq7qb5s3I2q+JPxjrK6XEGda7HalKF2iuVKnJvWfkVv0R0LKmMW0?= =?us-ascii?Q?4HMAQ1ZWOeYCIrnJzj7Mq7LPwDC2DqZMk3dp3rCjwHgNz1qc8rS1Gm+GhAPK?= =?us-ascii?Q?3UQUzo8idANmbMy0NXSg3yxZ0IoOJj9clFMA/RN1sdD3ciMw3IpvW9koGKrE?= =?us-ascii?Q?38D7h9dKhYh6iLCxxjE4clFfZPyap83PQhHMIcHCeMTdyXebeOxdaXl+u4gi?= =?us-ascii?Q?Iuj2C/3lWzMF/fRskcYzr1wDeRPQtTMOq7X/QGVqzCBtEsqab2JBRrs2n08P?= =?us-ascii?Q?XCD2DOIZ8TC0mjshqy0XTeAzkTU6tWYcGMiPO/Q1TjXpLEwuTlqhEojm1UQx?= =?us-ascii?Q?bg3t5Rgmmyy+hTDY7SoWwwCnDRdP7IHgavRHk6NzmU5HLIF3lv9u386XLi+9?= =?us-ascii?Q?7VN4Irneo1LyfUPLRl13FWx9fWshPtCBzfVQs+LvZqlkaDejLNT7uMUY+ZD6?= =?us-ascii?Q?iDBCFuuCg6GsPnjF1Wlpfd8Ii/M+XXRi4nK1bv0lrQOubBE0xGQe1zhLVY6p?= =?us-ascii?Q?Vh0SLsWcRhhSpWh8bRcctFt8znRetaPooaeqdSRpXTQ2+rvkjmY2g6XcsKox?= =?us-ascii?Q?sOM+ljy3ZuGXumDzYiNfmcjt0t1AXnVmFGoh2LgrRaQerEXdGj/jfGIdGmy5?= =?us-ascii?Q?QzS/fttp834kdogIx/Sj4gWl4k5obytV+tMMiU789/qwyzZLLcMilnmjW+Y2?= =?us-ascii?Q?1r6Uf+LeeD0Sczix5zSPUJkmgSa4YiwK9PHARX1tEeOC6VaR19JAveqtGtwz?= =?us-ascii?Q?mngMig28IFQipgiOt6VQxIoU42owR2Y+OOBoSm/VGf4Mqr1uVu+xWKEb3koK?= =?us-ascii?Q?xXXk5FtL3GcNrllIUZdbp5g1q56x8gMjITgXa7T8bwS5O1k1MR1bxnhx4QLK?= =?us-ascii?Q?66D/j84um+Oi6RniKs/VQ0iQ8ykrQG00XqugWcIWUTtySfMdfLTs4Wg3L7mU?= =?us-ascii?Q?2SVk37ND1k0BBTs/AQkJTq+9Tb9Iy3IIeZwBH1KeRzBOHRX2QygH2N4SytkW?= =?us-ascii?Q?AlxWSowcMQs7Ak/L9E+KLE+laDcODcU+aOpPYgYM5Lv4W3RQgwYq7wvsFxVr?= =?us-ascii?Q?kJo3gVEEkPOWkfIwhHn53CrzysFJ7ikz9sSp+E5QR+Cju2R3lzT1UzpOFK3U?= =?us-ascii?Q?TIoBUSNgOOw/xt9RvqBmeh9GaD3aGLcu4rw1G+7OuvNjl/4qidN0PgVfsCyU?= =?us-ascii?Q?RD0vlZ0jqtgoZw33DMkr4s0714kubIY+1bGja5QfxdkHpJfz2B7mxNyQ+Thb?= =?us-ascii?Q?D8+cWhSJVvmCGHYh5EGwWvXgSVFSHqfqKVR/+pCY3Rso3fmJNTRLrLCKffMI?= =?us-ascii?Q?mvkO06CeYYfvZjNa/+o=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH0PR10MB5777.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(7416014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?au+DsvbDk6QuY3SDDehPYJOcLV0RvIsac2LNOLuCM9OEQ0d36UIUTTEXAT6A?= =?us-ascii?Q?Ee3exTDnpwS+Agl7Cen6uXxLDRRCJ/gry85cgbfkJt4IyUhQ7cO1nPRIGVgT?= =?us-ascii?Q?2IuXKwF3Glzb2yY5WB9vM8M6IFk+5q5CcKCFDGjIxoWFnzK602IMoisbUjjk?= =?us-ascii?Q?3dkes1wARmdcMavADf6nb9kw0EXf8EzK7PeiKQcqiVw0vezKtMzXbDTf/g5x?= =?us-ascii?Q?2llmIXMOzesk4QQ37FV8OSeKYGQN+Wx+hVgweyGNxV7hIUisOPXT2EeWgV+o?= =?us-ascii?Q?dvc+PWJffVk2FE+XoQNJwU7A9OljVypTnr3asx3jkGYmiqR2fUsJIQRKG0F0?= =?us-ascii?Q?hywnAY3j5sTeocSV2QAwfmtgqXMpYyPTtThZtIhGZhIa+NE8SH063giDeKUS?= =?us-ascii?Q?RNhXbp8OL5si7irJu6W1h1WNsayUA5fFWjlsQT9Du9p9xUQrYX5Qb4kuzWIU?= =?us-ascii?Q?qyvENwsoxuHxNkyNhND1T1pJZshb0s8kM+6yMLu7KrjcmYnShmRxDNJeZsq/?= =?us-ascii?Q?h5fOL9LffdYdtbmZxDz7UvkcjY1vac6uS4PTNiV5QuqobHxRtg03WbXQaW1Z?= =?us-ascii?Q?+k2ub6zQ4dosTK0Say+r4kKs3BAw43LJvaeHYpMxyC5XAgGZgY9Ddl/5AUN4?= =?us-ascii?Q?UX+ZeHT9oIbxM4dXUT0ycouZjtKfL9PBqHZwklHGpb1Ch+Z46Sgg/uqg4Jta?= =?us-ascii?Q?RpXanD7vuSvwpZZz6gigWFVDhxMW574Dbt5D3vuFZPXmr0jYtbNuAL0UukEh?= =?us-ascii?Q?n1b8Smi752iFdJsXOeVzSmSpwjqj9hrwny55oiCRMhe22DTYymL8Sbb9hpGX?= =?us-ascii?Q?zOHabUcOA3a7aMW1karQYewN2pu3wHJ6nzjcywg+mPXdS2yvbrf5b6qY4Miu?= =?us-ascii?Q?N5jXl6DNnzCJxneaFFfce5kers5SY/2cpveUWT6JaVHMNqdpMPdkdFkv+JBj?= =?us-ascii?Q?okKUpA/f0E4GmEynrj00S/L5LgonmDXtVr/8+TPu6gHlXjAp5kwHmjDuDRGx?= =?us-ascii?Q?wtPgvbayoLjY/BoeAXqD0GcVrIoOUbBDDmH1+jAgns7k+waAgfBsVO/Xt7B1?= =?us-ascii?Q?94IwuG9lwZUXvJ6EIwT0lPWwxJhSyukgR1N8mWlMiriQpTAqK1KGBbxO2XtD?= =?us-ascii?Q?IIsSXrHr157XCi/IL+W0GXMlYgwFZquuIberrKPF4hGeP1PxJ6KQ0O1kTyfX?= =?us-ascii?Q?Zlc6z/mNxsXyUF3HxHws7THhGJ/tiFmhjaajFUdFvz3qKEavna4GGihd97Vs?= =?us-ascii?Q?OuZCLr9WG4kaCxAsvKO1eF41aOoEIdsZwePB5hD3SWDpeIu8Nb2Zh5UxfH5f?= =?us-ascii?Q?L4J3lE5CrbF8/1CxDQ44AdhwZyyknUP+17UD6frfygYFNWkaIrm/IbuHXTkM?= =?us-ascii?Q?TQd/M/GV6idhkUa5c1RUkRktBz7AQIb9KoZANBgRMDt7RSwhz7zcAPTnrAf6?= =?us-ascii?Q?0+rsauYXzwfkFS6MnnnSKaomEtMifMCQ0DNsnT+5+JZ399PknkXUK58lOtjl?= =?us-ascii?Q?ppGUyUjg6mEPkNlBqUF/aNxacxtBLxEIyPTQ5mimQZTfuuYs/kVpHVZXsUmc?= =?us-ascii?Q?Sx5buVPRl9z2HfzK5Q6d03QVOLlJYAVysgTPY2jN076E7n/j+LTw0gfz2bey?= =?us-ascii?Q?zKdXl/wmzSKdqn3gRGO5s+qSWvLXqXtfbLTTSUUFN75mx3d3URTpMWf6Rsxb?= =?us-ascii?Q?gc7ZcU5ZOmcBQkec1U7oRY0G60BvtRFgk1bTFJ8Z11UQVHN/o0OXazfHGDb0?= =?us-ascii?Q?dca75Ud6yQ=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: cmTOSxvqL06RxeBAXvgBhD0YhPrV94S8Uew0ekLbZrdQ/MeLmEj52D6NWHmWgK4coxOVLAUhhG66pwtV1V8Mrjqh7S4T0QcEkWAkmumyT9vMVDhQbdpguQLJbCNGTRP8SbKEnZziarh5/hsg/DsVHiXwtIbM1FPsgb820ttSWRmzQzN3Qoa4Mfy5lASA/56roAs/ykMN4AulMETQRQCD8iCpgWC1nFvCNSKV2CN1YLIIMWIuqRpTgDPzsxTrmc00l3BRMZbGvr1Raq77TiVFV2ZSm/t7Td4jaTjufCtaatKNR2jdUMN6jNnIF0bqapadltPakD6mfcC6607wGIX6nELmhDn1IBXKLkFC6OnrxH0x+ndALsTDKd5h3EgBpTjjpFZbNAGQDUsuuZqHHuie/zDDGVXcZ0P8wGLZHLNeTB4vNsu7PjaR6M1Yt0R0J1JPOkr7GfGHC3dv5mkC5mdwxNguiTYPoODh6DAUb0YkQMFoYW3joVR/YHC8aSgB4imDA0w6VEKbUBbG2z60sYf/OPSeRN/XOMdu10modU0OD4XKK2l4WR9YpNlZqi2IA0Tme7Hx7QtOr9uBk3p3FU8X1W326piwAPE720LxzYO+71c= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 00285ea9-9bd8-4664-b2c7-08de60428f9d X-MS-Exchange-CrossTenant-AuthSource: PH0PR10MB5777.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Jan 2026 21:00:12.7997 (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: gAa2IPbFzOmZk0eGVgXlCia8mpS1jRlf998KiUFyCwiVRpRG/u4q+PqUzVK/7MZlpHJCllJkx15Did9beSA9Mw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY5PR10MB5961 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-01-30_03,2026-01-30_04,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 mlxlogscore=999 bulkscore=0 mlxscore=0 spamscore=0 phishscore=0 adultscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2601150000 definitions=main-2601300172 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTMwMDE3MiBTYWx0ZWRfXy1QJpLu+ZmKZ 8JtOitwyywbmC/Ch+33LfC1nquk0lKeHUswYd1TbQIeDx7EN6Z4krONfncsbZc6DjA60W0xlvpg 53UXgrNSYC/N4R97rewbLceOT27rDKFaInlDWhyac8AN3NV7sYWc0fBaspQSjfod1abtt8wO3el 8wujjlyUEy98XNjs9JMjWagpCos4IwYsL7Jrb18FWfCsKg+uTElGE4h1Aotvogsf4tDgVO97SFF LsemdNpf5jCzEWQvg2ZmSk2QO7KjDB9FgJtBlMQAXPuLT+GH+qY5FsDOHehbO+jS7yThkC1fMU4 17EAZJWXsQTxLvZFEGjUOA6KuewEeHcL/CEB2uym/DV4Enmxr42aUzd7p4wf9OaE8/SCj9noMAe D8O59nW3vXSTi2VTEwbdFxICANMfiufDLnAU21TcuMKAgqZDdZj4h8TOOTkbtY85Qop1UJ0btRt gJAS9n/7DhKMzNwF4qg== X-Proofpoint-ORIG-GUID: 2QfzLcC1egybDnNZoGsgViJrjKxaP3Xv X-Authority-Analysis: v=2.4 cv=EebFgfmC c=1 sm=1 tr=0 ts=697d1be2 cx=c_pps a=OOZaFjgC48PWsiFpTAqLcw==:117 a=OOZaFjgC48PWsiFpTAqLcw==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=vUbySO9Y5rIA:10 a=GoEa3M9JfhUA:10 a=VkNPw1HP01LnGYTKEx00:22 a=yPCof4ZbAAAA:8 a=OdRVoOdji5KT7ucrDR4A:9 X-Proofpoint-GUID: 2QfzLcC1egybDnNZoGsgViJrjKxaP3Xv Content-Type: text/plain; charset="utf-8" Height is not used locally in the function, so call the height argument closer to where it is passed in the next level. Signed-off-by: Liam R. Howlett --- lib/maple_tree.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/lib/maple_tree.c b/lib/maple_tree.c index afa39bbd687c0..91d3fb7ac39c5 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -2750,10 +2750,10 @@ static void mas_spanning_rebalance(struct ma_state = *mas, =20 =20 static noinline void mas_wr_spanning_rebalance(struct ma_state *mas, - struct maple_subtree_state *mast, unsigned char height, - struct ma_wr_state *wr_mas) + struct maple_subtree_state *mast, struct ma_wr_state *wr_mas) { struct maple_big_node b_node; + unsigned char height; MA_STATE(l_mas, mas->tree, mas->index, mas->index); MA_STATE(r_mas, mas->tree, mas->index, mas->last); MA_STATE(m_mas, mas->tree, mas->index, mas->index); @@ -2788,6 +2788,7 @@ static noinline void mas_wr_spanning_rebalance(struct= ma_state *mas, unlikely(mast->bn->b_end <=3D mt_min_slots[mast->bn->type])) mast_spanning_rebalance(mast); =20 + height =3D mas_mt_height(mas) + 1; mas_spanning_rebalance_loop(mas, mast, height); } /* @@ -3448,7 +3449,6 @@ static void mas_wr_spanning_store(struct ma_wr_state = *wr_mas) { struct maple_subtree_state mast; struct ma_state *mas; - unsigned char height; =20 /* Left and Right side of spanning store */ MA_STATE(l_mas, NULL, 0, 0); @@ -3476,7 +3476,6 @@ static void mas_wr_spanning_store(struct ma_wr_state = *wr_mas) * Node rebalancing may occur due to this store, so there may be three new * entries per level plus a new root. */ - height =3D mas_mt_height(mas); =20 /* * Set up right side. Need to get to the next offset after the spanning @@ -3509,7 +3508,7 @@ static void mas_wr_spanning_store(struct ma_wr_state = *wr_mas) l_mas =3D *mas; mast.orig_l =3D &l_mas; mast.orig_r =3D &r_mas; - mas_wr_spanning_rebalance(mas, &mast, height + 1, wr_mas); + mas_wr_spanning_rebalance(mas, &mast, wr_mas); } =20 /* --=20 2.47.3 From nobody Sun Feb 8 02:41:40 2026 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) (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 70823387591 for ; Fri, 30 Jan 2026 21:00:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.177.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769806849; cv=fail; b=Q95gyfCcAlm1ZMwqIVPg4jrxOQiucs59S1mH2Uj5rjmYEenX4X6P5IeAOm7Xsp52mjRg4Hoxu+fsG/f/+KON/7uvr206pTSXBscfBOqjOOnHCHtHotDUzqptqlbGbcrFPMm/LsLk5MsoR/dh6MAesdUaViJ69CiHLpGNEuh6bTw= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769806849; c=relaxed/simple; bh=Ww0F3AJ4EXPbkNsXqjCCiI1aspo3rUPFNgMx7kPjfbE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=eFq+HTD1MQ88AXmR6u9YHEmrCpWhqz8335LLtdcpG1SLv3seN9KUyNMqhaWVxSyRc5yliIv0aUI2OVHCEi2QlnFQWrc0YLde24U0+eAWLBJc39lrmal8i7G1UKvPUnmjb55+q/dUKnieafKfUJRA4JW3kdWr/LXzxLeuZMryrN0= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=giFrih5G; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=KmZSQ0hz; arc=fail smtp.client-ip=205.220.177.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="giFrih5G"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="KmZSQ0hz" Received: from pps.filterd (m0246630.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 60UKDIDL4028214; Fri, 30 Jan 2026 21:00:21 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=6BRZ85az23keMYfKCiwlz8J93jy7Cdd8clS28lbAo54=; b= giFrih5GM1ZknX+PW/5IwWv6HNoDCOIkZFbQ2be7pndSaRxtUqyynilDcre5/7TA SuzaWQiB1NPNS4eOK9KhiVfuXrVMbetyzAkZ2YaQ+1l11N4xN5bM49GuBGWgTQaz nJO9+RjaQPBPwn2Bp7QNRXlwl2cZGTjJtBYKbjD+RPPZi/xctzXgXMNP3qUnwFss Mpgg1D4Iy+bBRNKkATgp70ZK/uh/vHooooPqzbHqfuRrXsa1g8DtlkTkU6yT5iUu fJiRq01UQ4QypgSLcp6kupCMCS4lr6rhwiUNi4VVxYLtcziL/krJmrsuQMRxo+8e ZJN5zv+l+QNVzTTiKZWeLQ== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4c10668cfj-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 30 Jan 2026 21:00:20 +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 60UJKVtf036073; Fri, 30 Jan 2026 21:00:19 GMT Received: from mw6pr02cu001.outbound.protection.outlook.com (mail-westus2azon11012061.outbound.protection.outlook.com [52.101.48.61]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 4bvmhtex0q-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 30 Jan 2026 21:00:19 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=KHMnnkhZZMapZJAoKLOXOqf85UFAByzlBNTpvHRN+nr2mFO3RvhFglE/4Udt2qqfnS0nA3AeVoaPZTXlzo1VFDnJwWnD2WQK7fKKHJI/mVK6tYsgfkChzmwgar7TXgViIbPHhbrOgGOdr3lCDm+yxMgi4Q0O22cL8oqNUChj5MqmmRvOA+kVsWDPS7YaSSGh2Gh6xxireyWqQ8LVQF81taNgOiepUQ4daZTmypsNfNyn4ac5GybcGgFQaAVoQoBLdGRFNyL6Ho/rYspg1cde24MI//5gsZSnOMIpdSgASDgRvPYeUCry2pCkQ5AvbJwYtDpNQGndmzvEQdUAfh4tOg== 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=6BRZ85az23keMYfKCiwlz8J93jy7Cdd8clS28lbAo54=; b=M2b04N/uI4kNjxLRs0GfQc0Gz8z7OmQBTRQDm55ltUppN65ntl6VlReENwL3aZS+AUkZKtniIB990MCdMmlIzCoxWgE3TxbG2KID7Aga55Pu0Wm1OW915jfXqHDoz3+2ndXnUq1+WqaZsG69jPaxUSas281MrPOozEyp0ilYu84MGTIzdy+oly8k3ve5Lzaq7/qg+2mz4lXcaKnLdsTRdVjjEHg0F+H6yy+AsCbhvq6r7t4hUzCYoYqNylLZVN4Vrn+ToKkhoY3nk5ZHw4Vb2T9buNByfwk1I+FaQDgpgkHaZ4rVQ1pbJmAcSM/1/sii02vQmrY0pB1KssbvvpLmzg== 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=6BRZ85az23keMYfKCiwlz8J93jy7Cdd8clS28lbAo54=; b=KmZSQ0hzxdmCmayaU8uHo0hyaMj+7UuZQVAiUFCAej6mYIG+D/rQo22fKNYEVXv5bf4bK5bk2eJhn7m/t/NabCi0gHA7IrTiCDhRbwsaD5p3fBVZLNwRbK1uIf2084Lz9fAPZaO7wB9mN+woLKSDQyQkqE0BSqA9dGOC8bzGbQI= Received: from PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) by CY5PR10MB5961.namprd10.prod.outlook.com (2603:10b6:930:2e::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.11; Fri, 30 Jan 2026 21:00:15 +0000 Received: from PH0PR10MB5777.namprd10.prod.outlook.com ([fe80::4b84:e58d:c708:c8ce]) by PH0PR10MB5777.namprd10.prod.outlook.com ([fe80::4b84:e58d:c708:c8ce%4]) with mapi id 15.20.9564.007; Fri, 30 Jan 2026 21:00:15 +0000 From: "Liam R. Howlett" To: Andrew Morton Cc: maple-tree@lists.infradead.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Suren Baghdasaryan , Matthew Wilcox , Sidhartha Kumar , Vlastimil Babka , Alice Ryhl , Kuninori Morimoto , Geert Uytterhoeven , Arnd Bergmann , Christian Kujau , SeongJae Park , "Liam R. Howlett" Subject: [PATCH v3 09/30] maple_tree: Move maple_subtree_state from mas_wr_spanning_store to mas_wr_spanning_rebalance Date: Fri, 30 Jan 2026 15:59:14 -0500 Message-ID: <20260130205935.2559335-10-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260130205935.2559335-1-Liam.Howlett@oracle.com> References: <20260130205935.2559335-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4P288CA0043.CANP288.PROD.OUTLOOK.COM (2603:10b6:b01:d3::29) To PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) 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: PH0PR10MB5777:EE_|CY5PR10MB5961:EE_ X-MS-Office365-Filtering-Correlation-Id: ca7b8613-196b-4674-019b-08de60429100 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|1800799024|7416014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?1PBXInFx00qUO7Ri+xQcWZ02OwluJjkhpi+Pk8xdTXcTcO91x9e5vxAk8ebt?= =?us-ascii?Q?zGrnBTx1n0hiBFn79ioVMbMKffcgYP+hgfFtdajSIKWMvthaPcfLVaJFfH+m?= =?us-ascii?Q?NZyl4c6YspkXjyrdK4d1oebZMDsHgvPav+CksaPdSatmjQNTmt6BdCwojk0R?= =?us-ascii?Q?ZAxieAdFWmyvTcSg6teRT2815I2EcC/kTK6uL3219UO6kmXHw/JQrO0dO4Yf?= =?us-ascii?Q?oLr9hIlOJOPYE1IPMjVG42aBddSB/JLg3JqI8yE3pe2KEkcp6h/r/J5nur4a?= =?us-ascii?Q?hOgPx+6ouqLQy3xNXA66XScbw1RRKVb3mjaJ9z8iifFgM5u2KaUZG2rwxZl6?= =?us-ascii?Q?ozXI6aje00H0jEc91c/sZJMLbar8laSySx0KUk4aM9HaWT6SVVnH5DvsjEYo?= =?us-ascii?Q?WLnNgLH6eMMfkQX/CPcxS2/QehtrF8kkPP4X2BgQHHh5Zj1pzrMlyC4b1VOr?= =?us-ascii?Q?ttWSfLzTC6l9r0a3eo2Zu+hD8wFcXw02eq5g0i6ezduXPGzItm/VAJh8KSTx?= =?us-ascii?Q?a5IcO2ogbPM5+4RRJ3bg9rChcriDAv914yqShMdy7K+FI3uLJvrLo5KwDxPW?= =?us-ascii?Q?LKN9xYoXdB2V1fEy+NN1G+k+Ote9mCvwmD5aUokvSDT7ny4AsuK3XqYivg5C?= =?us-ascii?Q?JqXLVyU8PyVfNgbQ8ZTQkaffQ0GwHIsTFE8pvbFQESGm3dxxogGt+0vEV+Tw?= =?us-ascii?Q?grIaEzgFk1Wo0BWW6Mo+wNBJmiXFOIfUaBeZbzAWJBhxnvViow1NRGm3tgrU?= =?us-ascii?Q?DfnkY67gHbx6f6kpknJids6+d7HCWtm6qfKnE4FY/M/EoZl8TJzkhVOgCIoZ?= =?us-ascii?Q?+PZ3wV0DyRosIgUPgEBNr4ToD+o/B+2ujCrSMlx7NvvXabzETVlXPUHsyXnS?= =?us-ascii?Q?iL+wum3SRhqR1i1VGvF2v+xGel3TYxkfOU514StXLammuMwatYsHZG0oD4kv?= =?us-ascii?Q?yzkF1Jtd75nWi1/1ht1cTno0tAB8yf5/VN8Hl2do1y4cyw4iuaY4dWWArUHG?= =?us-ascii?Q?6g8WLY7ltV9dOthj0523hZZ4o/GJQxpS4nshA5iwbs0oweBZqDiDhzRlujTe?= =?us-ascii?Q?wYjKQ7dy9wqztdh+2ezWZxgmg0YkUP5iTFoSyvmjCYN+1M0HL1UcdNaS8b4b?= =?us-ascii?Q?FKzYBhTHaCkkn/neS3bfxWxRciyuFeCOLvMNQtryLj8jY7xXihxNkSc4zzOk?= =?us-ascii?Q?UJDf+v6sAWsvlLi0ONKVU5PBn8H10Io3L0utmmvGvGwy7hHjWo3mKD6EjV64?= =?us-ascii?Q?QGpjcaJ060iXLFR86pw1zn4jXY0G8b5Z0mmZGre8hTFSwxXJ/R0tzvv9mQ4T?= =?us-ascii?Q?sLhNdHFBgUkkBnLwYHT7VOJGEgzIq1q6Q5Ewp8auvb0tjoTIF0/seY09y13J?= =?us-ascii?Q?VjgVXeIkduivyNz2JOZzBgeHTJMBmPdFmXVxnMTCq1j4HfVm4SbS+HfPM32J?= =?us-ascii?Q?d6YE81mmxvKLnEDw2eSkBS87UIKhvLqFhrRs4bUUC+6x0OhYoBCrFb6s6lZV?= =?us-ascii?Q?j2usf/lfGYBX1Xls45YTe19kRa2X9emeKkqQQkt2NuAf9Do9hRBD6Ieu9yAl?= =?us-ascii?Q?+D0Y2BkxhlaNbmO2VB8=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH0PR10MB5777.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(7416014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?4Qye8rfQ31JTosa27X4irEl3qOb0/Yci3jULFvd9UCzxL0iS3v8I4NxJ0j9W?= =?us-ascii?Q?2RxAWfq3nX7lo+f+AILku1BPXAheGGRDAWoQPSYP+J5e7rq/quycUFTtjmkD?= =?us-ascii?Q?CXjOFLFdwBR4QBMZYUV5lzmlyyaklKwGJNmi5FHyjP9YH4txCBwOzEesr55v?= =?us-ascii?Q?omhlkdcUBmpAv8TXzuyK/a4QyeXx3DPAEbkKY8k7+EbT6ZbnN4vK9SB0KbgK?= =?us-ascii?Q?aQ6llZ5w8vW1wKJK8Z5dQT9OD03KOosuptKfbUt1D0wTeldx8zmuECkAV+UL?= =?us-ascii?Q?2n6rr31rSB+Q5lgcwa86d35R0aiztVt9ktZtRKF5IJkl4SCtLJwoz/8OIFxF?= =?us-ascii?Q?y7+l1JMnMDngXp3ORmPiM1QI5m4UUhQ97hj2yuV0gzoGyH9nzPHldv5EWVyZ?= =?us-ascii?Q?dyePLY5yd1epvooqpMi4peCPj6KbyRSl9CjwurbGHUBrgsanOdGCUTvxASrl?= =?us-ascii?Q?6EWaWQJ9cxq4ArYI2KbdysS09iAol+j9zpJzPDn1+O+rd9ETkxh4EeNKe7CO?= =?us-ascii?Q?8DHtM7C9wepmVQy26Y2XJcu8jiUqEEw+BvT5je+BJ832N9kG2ud4uCx3L+eh?= =?us-ascii?Q?ykQ7ObhSc5V3mrhUeKuG5sFawq54NQriiGII9TEHSOk0xSrWOAaCzM1ai1op?= =?us-ascii?Q?snF8mTITNqCiIFlFYzIzIezez6LRbjBZptly5qYPGQgUzqeYbBn6PS/bsZnY?= =?us-ascii?Q?LrycsGSiyuEkk2MIKBny0Ix1kWJa/IYiDnmjowc2sfUWxpVnnqPBtkQJ7WS9?= =?us-ascii?Q?9VWN/x3CJWNtR4O11L8CNqBLbZecDH9Ns37IBME5TbsLtjrQgMAnv/bpPDtC?= =?us-ascii?Q?P2NOEP2/k4gLBWe1QwykVYFjnV0Ro99SG9ucbTsJJ2E+Os7EYP0YMeAkBr6v?= =?us-ascii?Q?MtdccK9GNmxe8hyJQmduQZGM+KuqpGmApa15JqkDpvlFR+AyhYxFpGwxhBIr?= =?us-ascii?Q?0x8TQJqwD5oKWxj+joClGt7McPhgwNhM7MwXgNvmLkH5f4FPVBPoi8zQ3pyb?= =?us-ascii?Q?kz1zUcfA52Vl9euOEvi0JMfxPIUnNXSFGID8Gafv5t3QHVd7msFp0XAybrWs?= =?us-ascii?Q?kBq/uqmxUOrwSVWuH2GZr7Z4ISzMm99wtolI0vgddo8oDKhuQn9ze+KdKGgp?= =?us-ascii?Q?AA6UWVefjyIcrAPYlHZgzVXrvqAypqrf+tRAWbpl5KUm92FecPATIjUFpfKf?= =?us-ascii?Q?0CxKoN/qlnXwLQ5L1QvF/CrPI5f34ReryypC3YtBbnwbV5K9SPHzvfDzdHOM?= =?us-ascii?Q?OCxz63lyHwshImhiUBrRxljFZqHk6OLfmytXQzMGMsas6BCnv0Ri17xfSi/B?= =?us-ascii?Q?gxqlJBZ496oZZ+PuFlUWdn5jV7sntWJ3AuGuGrV89O0O6r5fK2vLmjid7QS4?= =?us-ascii?Q?aovtFZ9lKNPypUoE22FeFm7YNAXGjwOAUcT+auk1EW+6phsfxohqmmVqiJpf?= =?us-ascii?Q?TFfAHSYCa+mG46JNlsZ6pEcCFipfeG8vjBpN+2aFpHiinedlP6pPaKJ+x4HW?= =?us-ascii?Q?W+f/PtEoUZ2fFasG5yvvcXE52sBuI1uloOKeR9XRNtiPbR9839lSxmhGFGdA?= =?us-ascii?Q?jjkeaAXk2NU4SIIXLYKZUrOWl9aVylUlQv8u3bd+chim1wwFJpqXGwE3puES?= =?us-ascii?Q?R7/L/3OsfLu/XzHImN1UK5FkEJ2iTam88fG2DH7zO5vBhD+PoDlfoDwErekx?= =?us-ascii?Q?Tu+onN0Ai8chPJnArrGyW0ZIHFKZ/jva8kbS7oCqGMqhLD6jWxPoySb+Ucg2?= =?us-ascii?Q?bZDN/iuhUA=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: SnzMdIlT/y+ZCoAuAK7eGXruOiHX4oHslzOifd6Licn9aivfD/RFaq2e1l/mBRYVcLyDFgr2duGrTlku1k6QU45dCAmc+pN+Lc8CNYZ6RNs+zo2QbmXKLsa7opeLiekhr5zBMrTdL+uj0Tat+36imI8j3aYmbIR50qDqntOv3gVy25shUgsV1NsSWTjdoJoCrLkUVbATPs8MANTOxfMj0htFIGR0m13smdFmlYwZI78woMhr9PmBwBe/bqv/48rCXGbzX4E3luQuKPUM/5YXL/0HSl4hUtAhblJcNanMefU46SagkSW+z1BznNClo4u9kfeyOYiYl8efGWixVFMuUtjVPhFWuUfTlEnNZdj3ltWI0tBqCGfxLzLzyh2j6nMT3gpNRX4DFx9Ocn9HMfMTasOQbsm0lTTVdfpoKUtzlfyn3lByV3sj5fNNJNzzoO4GzMwEceIe5991OeqX80w1+6ppSvtRGp+Wo3Qj4W7qK22WwvyNjeUKA2MrqrIWKZQtym+NQz3kULu3n1K8Z7CqyGxDSAVb5UxlC2SlFsNPMQLwoHDDb/EgCf6ClGVyeAf3BNvSgRkYlxGUFi/YVGJaRGVIbMEGCnCknHJfoN6fDO4= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: ca7b8613-196b-4674-019b-08de60429100 X-MS-Exchange-CrossTenant-AuthSource: PH0PR10MB5777.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Jan 2026 21:00:15.1119 (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: 1/Id0IS3Zz0Eiy/GyIZCVOrDx+WANfh2cmbdK859azYhtg4EyjbbUOtDnDxyiaJ8CPqtwsFIqiNqlJG1e1W2Bg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY5PR10MB5961 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-01-30_03,2026-01-30_04,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 adultscore=0 bulkscore=0 mlxscore=0 mlxlogscore=999 phishscore=0 malwarescore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2601150000 definitions=main-2601300172 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTMwMDE3MiBTYWx0ZWRfX6IXKlnLofOUx RQB9z7P4LaE2ILi7KxVezwNpQwW9CM2NfUtFnTJTUgfzNBV95Kxvz0pWe6y4pjNXiOYeMejmmLT 37pBEBRRbTasnSqlASrFEGvUh2AxvxMBTs1+DAadJpS7OxXA5yjvUBj3RttbZX/YFbmBzS63rGk 01qylZmT7fF3hNr5IMAyTygu480GJRtCaR8nuOE3xDD+t/4Q/btOLaMXI+F4U+BXDkXpwnhahPA f3SmCqVUuSE6Rm2JGdJ4xBzBFbDilRxqbS9Jh0Q/sfFpUTXQz9drbSBoxFTjG1bYhYJTEx2Sd9O PcNnXh5Y/M7bqtsK+gIreiBCLuwSNlOP0MzpAzJLgbhJF2NIF16T3WkBso5k4fGAFFW/mn2xPFr 88VHYRo0t3gD2gBgBDhTEKfVOYI05zpvfwkjJWS99uwvGhItRuasDN7oXRbwJlMMyHvRSdCAnLe jNJTvIhqDrWJ/PdPmH45gKaYujqAPgrbA3ExOduI= X-Proofpoint-ORIG-GUID: 5n3gDZPNEuoDLBV-qFSQUCF80Yq8BNSt X-Authority-Analysis: v=2.4 cv=EebFgfmC c=1 sm=1 tr=0 ts=697d1be4 b=1 cx=c_pps a=qoll8+KPOyaMroiJ2sR5sw==:117 a=qoll8+KPOyaMroiJ2sR5sw==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=vUbySO9Y5rIA:10 a=GoEa3M9JfhUA:10 a=VkNPw1HP01LnGYTKEx00:22 a=yPCof4ZbAAAA:8 a=CYoulDwovmb3McnCtv4A:9 cc=ntf awl=host:12104 X-Proofpoint-GUID: 5n3gDZPNEuoDLBV-qFSQUCF80Yq8BNSt Content-Type: text/plain; charset="utf-8" Moving the maple_subtree_state is necessary for future cleanups and is only set up in mas_wr_spanning_rebalance() but never used. Signed-off-by: Liam R. Howlett --- lib/maple_tree.c | 41 +++++++++++++++++++++-------------------- 1 file changed, 21 insertions(+), 20 deletions(-) diff --git a/lib/maple_tree.c b/lib/maple_tree.c index 91d3fb7ac39c5..c5bb341da5e9d 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -2750,46 +2750,52 @@ static void mas_spanning_rebalance(struct ma_state = *mas, =20 =20 static noinline void mas_wr_spanning_rebalance(struct ma_state *mas, - struct maple_subtree_state *mast, struct ma_wr_state *wr_mas) + struct ma_wr_state *wr_mas, struct ma_wr_state *r_wr_mas) { + struct maple_subtree_state mast; struct maple_big_node b_node; unsigned char height; MA_STATE(l_mas, mas->tree, mas->index, mas->index); MA_STATE(r_mas, mas->tree, mas->index, mas->last); MA_STATE(m_mas, mas->tree, mas->index, mas->index); + MA_STATE(mast_l_mas, NULL, 0, 0); + =20 + mast_l_mas =3D *mas; + mast.orig_l =3D &mast_l_mas; + mast.orig_r =3D r_wr_mas->mas; memset(&b_node, 0, sizeof(struct maple_big_node)); /* Copy l_mas and store the value in b_node. */ - mas_store_b_node(wr_mas, &b_node, mast->orig_l->end); + mas_store_b_node(wr_mas, &b_node, mast.orig_l->end); /* Copy r_mas into b_node if there is anything to copy. */ - if (mast->orig_r->max > mast->orig_r->last) - mas_mab_cp(mast->orig_r, mast->orig_r->offset, - mast->orig_r->end, &b_node, b_node.b_end + 1); + if (mast.orig_r->max > mast.orig_r->last) + mas_mab_cp(mast.orig_r, mast.orig_r->offset, + mast.orig_r->end, &b_node, b_node.b_end + 1); else b_node.b_end++; =20 /* Stop spanning searches by searching for just index. */ - mast->orig_l->last =3D mas->index; + mast.orig_l->last =3D mas->index; =20 - mast->bn =3D &b_node; + mast.bn =3D &b_node; /* Combine l_mas and r_mas and split them up evenly again. */ =20 /* * The tree needs to be rebalanced and leaves need to be kept at the same= level. * Rebalancing is done by use of the ``struct maple_topiary``. */ - mast->l =3D &l_mas; - mast->m =3D &m_mas; - mast->r =3D &r_mas; + mast.l =3D &l_mas; + mast.m =3D &m_mas; + mast.r =3D &r_mas; l_mas.status =3D r_mas.status =3D m_mas.status =3D ma_none; =20 /* Check if this is not root and has sufficient data. */ - if (((mast->orig_l->min !=3D 0) || (mast->orig_r->max !=3D ULONG_MAX)) && - unlikely(mast->bn->b_end <=3D mt_min_slots[mast->bn->type])) - mast_spanning_rebalance(mast); + if (((mast.orig_l->min !=3D 0) || (mast.orig_r->max !=3D ULONG_MAX)) && + unlikely(mast.bn->b_end <=3D mt_min_slots[mast.bn->type])) + mast_spanning_rebalance(&mast); =20 height =3D mas_mt_height(mas) + 1; - mas_spanning_rebalance_loop(mas, mast, height); + mas_spanning_rebalance_loop(mas, &mast, height); } /* * mas_rebalance() - Rebalance a given node. @@ -3447,11 +3453,9 @@ static inline void mas_new_root(struct ma_state *mas= , void *entry) */ static void mas_wr_spanning_store(struct ma_wr_state *wr_mas) { - struct maple_subtree_state mast; struct ma_state *mas; =20 /* Left and Right side of spanning store */ - MA_STATE(l_mas, NULL, 0, 0); MA_STATE(r_mas, NULL, 0, 0); MA_WR_STATE(r_wr_mas, &r_mas, wr_mas->entry); =20 @@ -3505,10 +3509,7 @@ static void mas_wr_spanning_store(struct ma_wr_state= *wr_mas) return mas_new_root(mas, wr_mas->entry); } =20 - l_mas =3D *mas; - mast.orig_l =3D &l_mas; - mast.orig_r =3D &r_mas; - mas_wr_spanning_rebalance(mas, &mast, wr_mas); + mas_wr_spanning_rebalance(mas, wr_mas, &r_wr_mas); } =20 /* --=20 2.47.3 From nobody Sun Feb 8 02:41:40 2026 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) (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 8E6D93876A4 for ; Fri, 30 Jan 2026 21:00:59 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.165.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769806862; cv=fail; b=YrTy9xHOX/D/iTp624pwcLtUiqpQrBjNG96w9MvRZm/rVR3bO8pncnjtdmeyLqmbhHPQktxbnac9JAKw/f8rGUjx6tpGTUxDfbpUbAJZBX2iX3Z9hpOU5ak6YQY5CaTSmKPgRN3cOexsY+3jUdG21FgcPJMF+qKXS4t/u5opQt4= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769806862; c=relaxed/simple; bh=4au7z9qLneh2PZCHWVOE9/JKGJaotP+64HF+f2IUrs8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=bDmm0EK+ouExDEzDGPCytZvquvh5PC5qDoEMqEg2TfT/ugRuVq2BL+3JPhb49iXrTe9yEfe76bp9k+5U8OkroaYqXgq/JAd/FRaqrQBY7eh9F+PEST/RcDcYT/Zm0LAMK7+VJ8Y1YAbKYQISZARrGW69pf6i6gZchm9N25uvzLE= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=n2ulqnto; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=O4ri/6b9; arc=fail smtp.client-ip=205.220.165.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="n2ulqnto"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="O4ri/6b9" Received: from pps.filterd (m0246627.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 60UKDNIN3407068; Fri, 30 Jan 2026 21:00:32 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=zxV/p2KqJn2g62arMPazK+xNgyy3Zs5cGjzURR8JZIA=; b= n2ulqntorzfdt1MtgpaOr184ptdmCvHb5pqpHnl9UGFuX2jPS2sSXlOdMUGzVn9V kB5XWS14wmDZkD19NvinteP9dzRR+gZjtfYI4XNxanTfaotU/w2XLhxyhzv4fn/E nqNGyZsN3sBsSPT0l1jGk2GbREqtNiZLAKv+KEOldx52uu6dRbFjuCD0qD1c4jUm Fru2CqNaNn4CRGawHVqCyFAAskDogULb0PMmGAmMZiMbHm3eth9mAhzF65Nu05m+ xOvKn7HF514Guwo7RlDwiOmmQf1thXrydeHddP5IGYolvKhj+DiJbsNzjY2T0Xq+ /uSMgDAUtZguLys2Tf4wDQ== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4c103e8du1-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 30 Jan 2026 21:00:32 +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 60UJgAIV036086; Fri, 30 Jan 2026 21:00:30 GMT Received: from mw6pr02cu001.outbound.protection.outlook.com (mail-westus2azon11012002.outbound.protection.outlook.com [52.101.48.2]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 4bvmhtexc5-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 30 Jan 2026 21:00:30 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=EOqYlp0UyC0Vw+1IRItHfaaZqMEx6pw7ksQdHx740CHwm6JeHwsLQGOst0HZXrFnB2wHzCnfE4n42WXmCfb+/kPOr1XgNuHVW1tzahFNgUsIKcs3nC3pJpFMLSo4BMoKyAq6cEc1xiVVFMtMjRTVovfZHNMErELntRg8atr97xe+pp9oujm9mit7I6KbSCK0iCA8QAmkabwjVHbRUq+E8ULMho2hJVCk4COu1MVE7YmdStxxQFrx6JQPbhit7LLkXss1vG6Behr3+c2tln61tKOn6zv9YrEooErkcJ3YkYK8gWXMHIII2DqS/nouHQ/fcPtaYwIW+W1ka63flLTm7A== 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=zxV/p2KqJn2g62arMPazK+xNgyy3Zs5cGjzURR8JZIA=; b=BcftGZ7sB1UhRqCM8sDhC5AKBqnM0cql5HQ9NrLulU3UljMJICyjmkOXPk7DTqaI1YaqSUyD3lYU69PLuSqzwTHhsGngiSJ/CpNJ/wXdpoGmZT1O+bhyjl8zDoxoFZdShcogfqlRbHnIh3dbeOMVSdNmkEoenqsQ0TclyFclpafMhhiO/OnwUewUg30g5/Q0K9PGkXfdHc32JzLRcfWdpAyiL5E8rsBXCkfSJe4FWZtyOiqsS1Oth7/Ac08d02QTprtV2XsV2hWI4lTF/5UDXPLl2BARZy4d/YNeurDO9NpD5JWzyPk63I+8Ys2dg/xw+d0jQ97/2eAykUYJp6j8ug== 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=zxV/p2KqJn2g62arMPazK+xNgyy3Zs5cGjzURR8JZIA=; b=O4ri/6b97J511jG6CQJ4TvpNqpNN8S9i2klsN3ZPPGV9V1L3qiLJsXc9lSrt4K3WTBDK1sDxm0BVYvBv5DvT5mNThT/72PCtHU02qHq579zCus66Ip06objGyiJ181xCOnLGEn85Q5UkOCluemlyjIuC24h0YauCJOCkXYgdrv8= Received: from PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) by CY5PR10MB5961.namprd10.prod.outlook.com (2603:10b6:930:2e::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.11; Fri, 30 Jan 2026 21:00:17 +0000 Received: from PH0PR10MB5777.namprd10.prod.outlook.com ([fe80::4b84:e58d:c708:c8ce]) by PH0PR10MB5777.namprd10.prod.outlook.com ([fe80::4b84:e58d:c708:c8ce%4]) with mapi id 15.20.9564.007; Fri, 30 Jan 2026 21:00:17 +0000 From: "Liam R. Howlett" To: Andrew Morton Cc: maple-tree@lists.infradead.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Suren Baghdasaryan , Matthew Wilcox , Sidhartha Kumar , Vlastimil Babka , Alice Ryhl , Kuninori Morimoto , Geert Uytterhoeven , Arnd Bergmann , Christian Kujau , SeongJae Park , "Liam R. Howlett" Subject: [PATCH v3 10/30] maple_tree: Correct right ma_wr_state end pivot in mas_wr_spanning_store() Date: Fri, 30 Jan 2026 15:59:15 -0500 Message-ID: <20260130205935.2559335-11-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260130205935.2559335-1-Liam.Howlett@oracle.com> References: <20260130205935.2559335-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0461.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:d6::29) To PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) 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: PH0PR10MB5777:EE_|CY5PR10MB5961:EE_ X-MS-Office365-Filtering-Correlation-Id: ef8e46cc-3743-4421-2a19-08de6042928a X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|366016|1800799024|7416014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?KEO+9DyHBMFuKEQLKucHaaMa9kDWvkLCULT1NwPb4XYLjviemyib4k2Lh7Pk?= =?us-ascii?Q?xUfNKLsSr0ps6tMqxXVuaC6DR5fLwjPTc0NOjS8xILeKDmqEvGRDvn0XTZHm?= =?us-ascii?Q?xyxdZx4v3xjfLobvkYf7z97e+fZgWglZB1h/DIwRYzTeHa1qtwyWGKbP6rtO?= =?us-ascii?Q?9dooBHGwm8HRel8nekOj31TZ6IKKelbDN56yU5x074ZQCUQ3RuOSsV0YCpB/?= =?us-ascii?Q?GSJB5jEoe8TFDeYiaK3ciZ1dH5JjV5sIojlOc7qrWkd1un+5b7eiYDY5VMtF?= =?us-ascii?Q?+em+o9idcHoAyyrr/E+PuzobowYOzgOR8+axPfoBekeM0jzBgXa6qOMxokOe?= =?us-ascii?Q?IoFrkZP2MZ+hRukYbvjZrLbPjRxWGwp2pk4b8Rb31ZJYvM+HTFJ5oCt3grHZ?= =?us-ascii?Q?P0et4U37XhpAp4vd1z3AwQwqxekWTWJOSfJEbqpXQT1AGP1d+1v4+8sBePkr?= =?us-ascii?Q?yMMwF4qvqxhd/k/VQJ3g9cXp8nZ6uoJ8riaMpNtdaszRhxnsJBpGJGnlDFbn?= =?us-ascii?Q?t8Hmlew+/eR+gOQMBn7bxlJAYz2qXaC43HbCj52Mmp5M/c24er1b4Upfe66q?= =?us-ascii?Q?BHWH6xn67cEIXPozv8YIqJ0JoSC6at51pymobgNkqcu7umt8xz/n2kGrncKw?= =?us-ascii?Q?wlT/D6pcVuL3+MzLY2t/WHrCIzRItYnN3jQFV5WsuEL3hsEkxwzb0DHSnkPo?= =?us-ascii?Q?Qke+NGChJ3/nP5jy7SopFQTC2ulAiN26zy5k3SktIRXKtqFoIqtJRFtl38iI?= =?us-ascii?Q?Gg5goOE/wLUjL+sTxYaCdWCSmOQBq7dBTHbLuAcZ/ABQb2cMjtJ/lsyw49Yd?= =?us-ascii?Q?XomtQEM9DaA4t1hXPqbsnL2tEIqtrkQiJ+P/+oyU1p+yOg8p/jcPSbrCZ3k5?= =?us-ascii?Q?RxT/vHhqtAOuaWwPdGLzrhAx6G3pP95bmvIbqc/F19jUbclLShwUqfbxZypw?= =?us-ascii?Q?P9sHpNkccgPPVb0Oh7JvuCvfUhhKj9SQIPZwfH8GkuPrwmQWYWaiYJ2i6Fun?= =?us-ascii?Q?eHxYO4oqBHWrWMxl/ckyL89x3wJhnNUTI7sRh3tiesGAF7nzGTV3L7NI5Wxq?= =?us-ascii?Q?n8QUz6YaKI5mQOGaXudNBk+dZJGAGDBU2RxGEOrI+eOhajljGSMFS4OmjL93?= =?us-ascii?Q?jRRfguEqP2xhmi91Bs5B/fc+LiS62NFg6IpFf928IzSKUXyeY80h9aTtD3cN?= =?us-ascii?Q?J+t8xXQY5L/PcltyEnqCvEUbtTfU/4MfGluUnEsTHcz5FAs2AXhwH2bLCnAe?= =?us-ascii?Q?O689MqZDQeeaml+UpIE8LjVzL7Zrse5lNpusnbEwhzTrEXKALUWMU48JtQ8N?= =?us-ascii?Q?dfeh2er9Mg02kkBJFlRAdTsgCza7apQjPC1lDuI6BbIBH32AaQps4xbwprd5?= =?us-ascii?Q?eS+luvi3JKli1PxxFn0e5Nu34NM3R6TNsVu3UbsPjKopAnnqpU9R0kPlS0Z/?= =?us-ascii?Q?VdOooJ2nw5UstwUOmS3hNkcCcQ4MCvXJO2Vm4aeAA9O1NLCZIIjjVZi6FdOQ?= =?us-ascii?Q?fcZEw6t5o0svy+Lbh2UD7jq6hwqriiQD3RouFGlM1Ct036mS0VFAvv1NoH6s?= =?us-ascii?Q?B+nQCSEna9HLmRZkZjY=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH0PR10MB5777.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(366016)(1800799024)(7416014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?eYTt3bCqGAJXnLfIpJ1vEwmMgDJQ8M/a2UQzGIzE8lnPl1JCQN49sKI/bRkW?= =?us-ascii?Q?1rvifRmZ/sza7vEeS0Rzsavz0O+jCDtqB8Dg8S9fn+bwArDAD+w2jqOWtddA?= =?us-ascii?Q?j+tNXIL0HDu8iOwHPqXpU9jNAmuSFdsIC2MSuBkBfLYabfFAVchPl0MzBHy9?= =?us-ascii?Q?FZKtNVFMljAMeUSdGZAVF7anuSVrNF5R14xX5fd1OmH6KeNADZtWNuB5j80V?= =?us-ascii?Q?4bq3HvEx9sGhTnGpN23eUcw0b3Z5nkxHGcQ73WQwG3kTAvErWdag94SaQHhv?= =?us-ascii?Q?xr7CqViHg9iR25gLaZgCUicuKcdXvtGnsWnZLoSkbldMEDwyVOmCpqQZNl8/?= =?us-ascii?Q?dNb5h9qyYe078CInpmGfW93PPHzyiRtq45tzeuXzVCHXijSClzu13j03vYgP?= =?us-ascii?Q?Ma04PFIFC+Mku/vK1YbGJzdHahBCDjIM8PO0ERzXo8sshjLZ3otttPmi70lc?= =?us-ascii?Q?6egM2Gt/c+s6LHl84JR/EqX6fnECAkPGFLV+M0g78DCjfmEkGms1T1jKwT54?= =?us-ascii?Q?kd6x4S6imBprzKlvmmBWqwqrbPsuevQfft/3BSfSbivYHJeVG10EdSh8F5u6?= =?us-ascii?Q?qZDHglbQLiVc9AKrDBy0ZjUPjlOFeXxMY41s9jpw9h9nRZCwm6r6X27Lw/nY?= =?us-ascii?Q?025OghgGTtTu2wsbXItF2LsqKmztk6UIaL0XoeoNGAoVBNVxbujyCl2NtDPt?= =?us-ascii?Q?rQfhwbD7I/wMG/r6s1R0UO35bz/12YejmnA7PoTEQOOKQgyJ/7mlGZJglyGe?= =?us-ascii?Q?/cuMa2V2Ne49pJGLY9sdKFelChha0Eg0jfLIUCwdbqwTdipFTtsyO7G39eqc?= =?us-ascii?Q?fAU636LJjkk1bshMml/aEiB5zY2VPwHnBy9A58cs9OvRxsNQkojA7btdRAA+?= =?us-ascii?Q?xQFl0YUXL86IkC9Guppn7K57UFx6NpB1XoR8ZKT1mQXCNMd0dEdnpsrNFHsg?= =?us-ascii?Q?q6CYFEN8NR6XI09KYm2Y1Ku4cgwazaDwA001U/p39W9myAAgfi0GgqabwRkH?= =?us-ascii?Q?1trm01WZRVK0bCWOvANFiEnzVh7rOrNigayUsH/xO1AmjnBo0snPvWkSYR3Z?= =?us-ascii?Q?aNp60WqMUzj2mUk3qr9kOvaCneIVXhGbIDyvcKqUYTdwx1ByHufUDe0lf+Fc?= =?us-ascii?Q?IlTR1Y56c6Ju73evIm4BfJMR8KoTD+sCoX3XGTJ3r7AdhKRQf5srj3x89hcN?= =?us-ascii?Q?eepHbzIC+q/EEzqauowaBXuDwKSjKQ4Tvz5jtTUvaeMGNoFgVHnlDRl9Vklz?= =?us-ascii?Q?kkBoN3uPQlc7X5GnQO2z23DNgwOrvXb1EQKuqsJKXg6R7jOBfLT2VjIrGAWd?= =?us-ascii?Q?tU3eAOlaOLUsMyxtFoXoVGuMbzk0jMGGxV2OmBFnlcDtUh2mfmHdd9nUdWUc?= =?us-ascii?Q?0Le9hIBYjf7RgVyKX440s2JFmFH/AiwLMA1AnFDp0i7ZmJcbdGa8C9s2aBnM?= =?us-ascii?Q?dOVgnsJ52AY47DhBtL552tGo93NEm++ELu2Zoa1wJ3xGL1Il+0cBtahdOlyE?= =?us-ascii?Q?UF1n0J9BTtxr1cSY6bLE814hKU0cCFtXlgl1YaFFg5qLR8oF3UZvFjRBEBmZ?= =?us-ascii?Q?SwBTCkzLLoKTXxejjxc993DscKNBckI/MeG/lu9K/4A6LwBV065Q72LZ2atC?= =?us-ascii?Q?4fK0rSIV3jAmG+KOmS9abpImjRWNe4Yg+LC7rru9jOn2lzkc61hRqmaPl+ie?= =?us-ascii?Q?bwGrVzTCl73qy4QpwtKznj7j8k2C0ooC3rHEGr0t88ovXa5bZS8j9x5Kpyq1?= =?us-ascii?Q?EaZpcdt9Ww=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: S8GzTZB+0wae+hAaGEjXAqK0tCiFDFlyBhQVavZNaLVaLj6qjf5RqglLkAq6Ck64Oxlh77GZuDRjBpYjfNK24Zx091kzhH7NqME6kIOL5TdznKnRC+65WjVmb9/cx+QOvJU+D9Dmu0oPuMHyRZNmHjS/5GscdDBYu+e8qOZsmWZhMzNNGkkNsyYsZZrpZd+VEG7dIGu4EXTR5m0P6gDFIm/mujHMhHBgNYLXFI3iR8e/DULt0jfXlUgG++ZiavcyGy8PrJCL7rIg+sLBHPPLh1d0hFe/lBGBtnrI0PQ2Rc99ezMb4hOn16/ZzdA7lvgg5ekgTriHLVcX0MccaFo6mvU4tNRMpjbt6Q7hLmrF1SGcAud2CehxY+wbXGvWPTT6XL79M+EygvUCcQll9j08dGvF7H8a4NWLHYGgW+lHeSrd20EUF8UuOZ+SkJvPkYtHMggraaOmz/ZvqGCt9Fiytv1VcANukQ5QswjNzbCTtvrChmrDoZZvhLZ5hl5rhPlEHRqjOx77eH/ntrCvdszvgn6mNcwx3ZYx+dNLoDjFFQqQApGEKMA0bmkAR/1ohQ66mHWl8D/EHNB9ZcoAMHNwG5wTt44BmaIbe4F5VFyx1ho= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: ef8e46cc-3743-4421-2a19-08de6042928a X-MS-Exchange-CrossTenant-AuthSource: PH0PR10MB5777.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Jan 2026 21:00:17.6795 (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: +Y5ydhHNCcof/gnYVJpdxVK4jDq5PNLgo0p/NWDXP1+UPGJSThXdps0rRXl6Sp+mQZH48eGkr/hLQjT4acrYrA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY5PR10MB5961 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-01-30_03,2026-01-30_04,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 adultscore=0 bulkscore=0 mlxscore=0 mlxlogscore=999 phishscore=0 malwarescore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2601150000 definitions=main-2601300172 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTMwMDE3MyBTYWx0ZWRfX77YDs4yo5gQI FAuFScK5VCgMkEXjqacqG17uIsKQ6A7U/z35YPxDsE9DOXvtDoIvSgfipgMCJ7cDlc84U0S/K8j qP8eeq+deN4C5N1mkWoXE7nYNuf5oNU/GQjyqyoInt+QfBAkis2ryNqg7Gv4Rixi8OKbB+82Aci jjwtqHllxmXSCV0lk6VBV7Xi/TE/7zqFmXEon8l88J471BHkre+7wxNu56gkROgasx9Y3P66oap BJCRCZbO8jXDDRs11Iq64WS6tqFUr2ZGwppr2rJkmHcunXB7vhtRfCtyrrrIvGBpPIwnArQFf+r eMBbBFgIfRE1db1jeFRqzL6NapiJ4kswUnE+T3b6iVmABgktkIrlXe456Bw33Cb5cifW7kwS3f7 qqtKkVXsBFelFqyNZWsS/EQH+6e+mxDcgIYkCR52d4AVE6FgxAatPLKoepcCg7ASO2QCqbBgzNZ uTGhDhJBeun3FLkoshmxToydsZf93igqM4N+fRWQ= X-Proofpoint-GUID: O5EK-VxuO4y9zSdS1HsHU729kBjaHK9Q X-Authority-Analysis: v=2.4 cv=M/FA6iws c=1 sm=1 tr=0 ts=697d1bf0 b=1 cx=c_pps a=qoll8+KPOyaMroiJ2sR5sw==:117 a=qoll8+KPOyaMroiJ2sR5sw==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=vUbySO9Y5rIA:10 a=GoEa3M9JfhUA:10 a=VkNPw1HP01LnGYTKEx00:22 a=yPCof4ZbAAAA:8 a=-8DI_9cH-nddbzlGVogA:9 cc=ntf awl=host:12104 X-Proofpoint-ORIG-GUID: O5EK-VxuO4y9zSdS1HsHU729kBjaHK9Q Content-Type: text/plain; charset="utf-8" The end_piv will be needed in the next patch set and has not been set correctly in this code path. Correct the oversight before using it. Signed-off-by: Liam R. Howlett --- lib/maple_tree.c | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/maple_tree.c b/lib/maple_tree.c index c5bb341da5e9d..caac936bd8d40 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -3494,6 +3494,7 @@ static void mas_wr_spanning_store(struct ma_wr_state = *wr_mas) r_mas.index =3D r_mas.last; mas_wr_walk_index(&r_wr_mas); r_mas.last =3D r_mas.index =3D mas->last; + r_wr_mas.end_piv =3D r_wr_mas.r_max; =20 /* Set up left side. */ mas_wr_walk_index(wr_mas); --=20 2.47.3 From nobody Sun Feb 8 02:41:40 2026 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) (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 1C2D0387345 for ; Fri, 30 Jan 2026 21:01:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.177.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769806864; cv=fail; b=QQHASvCkYdzyiFAmRk6UT+PI+Sbf+5JGhCVIo1x7Gjh36wkT0vx/Qcxdt8iuYbMWPDj6/SUZqGTgVp7iohAtvhIVdO3UYopCC+EgcOkgo0gitfD4cxpH28tqHpHZyDeG15DtHJ7Edm/Ftz88n/3ROwbGlIc0kb9upShoMmpN/I4= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769806864; c=relaxed/simple; bh=rI18sq1t9im7Bj9r/zI/9NhRRia5mAD5c2NwF8zIMCg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=gEKVGCObIwQysKwfdOVu/O9q0wAl4itckL+244xvP/8plvA3KjuTSfmA1VCAhq+Pl6mR16noO+Rigs1q1T00nmxiLc0uT3MOHDBB39lg2eN4aWS0/+zWzC5+vuDRMYmaxXfqQAWYjk6XHbkSJCd+UQSV2aMXMufAp6O0Cuf4AW0= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=dPRFOODz; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=LzX+Qsln; arc=fail smtp.client-ip=205.220.177.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="dPRFOODz"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="LzX+Qsln" Received: from pps.filterd (m0246631.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 60UKDRnT3910790; Fri, 30 Jan 2026 21:00:34 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=7EhrgKQnDfJ+QTXrI98tq9qj6wGR4JohjeNGICPwKP8=; b= dPRFOODzWTq+fUfSfcKjP20tGaLnMx0m1BMzS2tYiWMIt6zBFI+I/FsEMoEooGDJ G2GtN7XW6B99n6fnM76XR/mP4K9ZbD7MjKu5sBV/SBpA+eRd/0ehp/WU4EOIw5Pb Mthlq3gVGG99oqcvBmYtm31+JqopygeiSg2CVTYwZo7rlxp0WnJEpFdjbDdE3fiC McbgRbrkXnhPDGxDhfUJ7OCJQqeYaeXKckPkfEEjd3C2Dftc6DJiqUJZ5CO00hSJ uVfYRhJzGyB93kMmrDlISmVfJq5rvw4Mi06RPYo01fq8cJkQIDvdUlfgjjEGK6RU CnwrAr8YAFOCQuEWxTDnQw== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4bxx09pm60-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 30 Jan 2026 21:00:34 +0000 (GMT) Received: from pps.filterd (phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 60UIkbKD032726; Fri, 30 Jan 2026 21:00:32 GMT Received: from cy7pr03cu001.outbound.protection.outlook.com (mail-westcentralusazon11010008.outbound.protection.outlook.com [40.93.198.8]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 4bvmhe4g0t-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 30 Jan 2026 21:00:32 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=dJBFX1cbrM/iEjfPn8mSwNTrnmCAjVGyn9y/CYO+GHgkjEukFaLNDIqUrVBrmpc5CI1LEXCZw2t9WMbhfYp+PQEAoygFOfVOO/kV4HyEC7RGeXLEopREXLguO86eAu0T+lEUtICnj83QtdarT7O0Ij/i2F/ckWcxDQwY2ZpzgbB2rzUFCbcFDbFoUEnxOC5alH+N/mXkAnpOH7N1/8CGK5EeXVBB1dkQTkfPZXHe434/sukIIrFuDmqDkHTsGq22N7KvVO2LLNOBv0MF8uckFisuLzIV6aM0UAixRHi0qTYj6LXU5o/s7Bq0rhe8JcOf8SD7u8ogrDbb3NQP9EWJyw== 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=7EhrgKQnDfJ+QTXrI98tq9qj6wGR4JohjeNGICPwKP8=; b=DDWl/AtmLoey1C+K3JVEvmDtowRZ8THk9+efnBl8VjE6BMt9j8mRBXJCqcNqQkeCqEJVTmNOQMyfrYRDZWVkOx3x75rUqP4s9tusRCQVC/XyDoyp1a7rgn/iVUZtAC5qTg1oQBstOtY8q71UjZP7fMTwMHNwK5m4AHjEbF6AX1K73dOjMu8Ddw+q533V4nw7MxBIx8sq5TWzULSuXKGJk2L8iS55oopIbSivenktqDRm7Rzj4XQdlz/MTdn9caI5NGkP2RC4VFDZnqDDia7xHdzBgz0JD2ihAa08bBUcFD0UhF+PYlvYUb/kkOE5978tOk6Q8u1DN/uOIioxYQHJtw== 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=7EhrgKQnDfJ+QTXrI98tq9qj6wGR4JohjeNGICPwKP8=; b=LzX+QslnQEPyw7816lw3PM7JKBcaJ7DGh2D9QvrGKyaEJBe9zOn3pf17ldAIBez++E3DaZygEgoEvb7FMuW422Zy0uxDPPnP4/MIT8G384s4u1L9/EyQYx9xu9meE4zEfAa1nPt2luCpDo+rippvlNQKrlWTyhtgxZ+H5xeSk6o= Received: from PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) by SA6PR10MB8061.namprd10.prod.outlook.com (2603:10b6:806:43a::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.11; Fri, 30 Jan 2026 21:00:27 +0000 Received: from PH0PR10MB5777.namprd10.prod.outlook.com ([fe80::4b84:e58d:c708:c8ce]) by PH0PR10MB5777.namprd10.prod.outlook.com ([fe80::4b84:e58d:c708:c8ce%4]) with mapi id 15.20.9564.007; Fri, 30 Jan 2026 21:00:27 +0000 From: "Liam R. Howlett" To: Andrew Morton Cc: maple-tree@lists.infradead.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Suren Baghdasaryan , Matthew Wilcox , Sidhartha Kumar , Vlastimil Babka , Alice Ryhl , Kuninori Morimoto , Geert Uytterhoeven , Arnd Bergmann , Christian Kujau , SeongJae Park , "Liam R. Howlett" Subject: [PATCH v3 11/30] maple_tree: Introduce maple_copy node and use it in mas_spanning_rebalance() Date: Fri, 30 Jan 2026 15:59:16 -0500 Message-ID: <20260130205935.2559335-12-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260130205935.2559335-1-Liam.Howlett@oracle.com> References: <20260130205935.2559335-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0088.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:ff::21) To PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) 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: PH0PR10MB5777:EE_|SA6PR10MB8061:EE_ X-MS-Office365-Filtering-Correlation-Id: c344bdc9-fec1-4ef5-2189-08de604293fb X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|1800799024|366016; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?O2rdKbkGzGWqbVy9QWH9muVtYR8ZzkBRhJ+DX8vuabR2I8opLXtadwO7POHN?= =?us-ascii?Q?Wxw1TOV+j0qumWAhEt7qZGHqFQGn0RYscC+X3dCIW+/kHU1ZHdTiNdVFKoPm?= =?us-ascii?Q?0MTphL+5qdAFsnushtYVvd30XEijlax/pIeUATWDhkU1tJ0KosS9vaCfQwL0?= =?us-ascii?Q?8R1WS9mfcKAzLOc2oEjj9wZ8ZeXHS80prZVzIu4noixUNf5M0YUIEKy4Y0LV?= =?us-ascii?Q?IGCwoE+yorol+sMI+8oKPA6DGaVbG0xJh02ZnPkiuzH6geLKLOVqjpOCH0Nh?= =?us-ascii?Q?A77grzgXrqWLa4QSXpN85MgWiPZ9PI7rI9DoAedfJFnA2RHNuWzRBgtt6axb?= =?us-ascii?Q?iqllHN16gcugtsRYR/oTuIw8TVCEM1Kpnnzpd9RPIZVruBeB4tn5MbsufNXX?= =?us-ascii?Q?VzbFmSwTAPIAAZZXkzGTPvVNf3W1q/ElI2a7N/WhYgEmGKWW0ELnC193hzne?= =?us-ascii?Q?6GsUTt6yPKJUuevrk+JkwLsmHRUGbXXjE7oGRS+otHBeqD4WKJk9Ss9aMvGO?= =?us-ascii?Q?9Cr560ojvNsJtUYySauhvSstzH3jKJhtlh6oJdnMrhw/qENncFiqD1HKsSEE?= =?us-ascii?Q?RImi1gXwTYmvtXFLh4bfnvBQo60dW3EPTDZUWAKjtnK811o2gpe+3gz2ea7E?= =?us-ascii?Q?YbyymjBNODaOM04hqoBwybznsl84cJnd9vjSIHmuG8njuftQR0diL62itd8J?= =?us-ascii?Q?9MME2kTpycEZzjQ+fRF4hiSGNMGYmQBH65hQe7bfaR998DzGCZeju6q+dnys?= =?us-ascii?Q?vsIJ3Gj7rOS3Yx0Ylo5vgH0rGB3iHnmcSQneuszr9XoG5EfjMyZ6iob66jNS?= =?us-ascii?Q?sya3EhXou/6cswphegKVK4dWtvHxHFXtnb/bv+DPCU+N1HR4kxOxNeJ3j+7O?= =?us-ascii?Q?nIXw1a/Mvy3bLJd3ah9zwvzOLhBvTGbxEKeyzCEn/ciINK1us41EIy33jNP1?= =?us-ascii?Q?PC3D4fgF1H5RMVNT7rLu4I/pQC7zE2nFK6yRdD/4yWySLwTM2pqjv2CVEN4e?= =?us-ascii?Q?ZfJXGTcQkZl6bqn27F8f43x5nlXclFqtbAnxTzWb7oQYTh13lEOVDujeVzUq?= =?us-ascii?Q?zK0otM+ynpY1eNRh6tzhyQuxOQYHFOCi7I2dTcQyuMWXeVr7adpdzXwG/ZD4?= =?us-ascii?Q?uwRnTBorBh/jOJJ2p8c28KkWc8xgOWy3O5ljxuzTA4NE2MU8FwYcA2JEt6nh?= =?us-ascii?Q?B6Zchh7NGkjVP3ZbhxPNJ0aaFdwZTep85Ausb5g531Vd+X5oUPDq+Zo/gdHe?= =?us-ascii?Q?/9BN6Ees/kyzmit/+hEcjIG0HRpe//j7WinSq/Eb7DZsdyydFBxLtlPdyr3i?= =?us-ascii?Q?FP8krR6YVKMZSJzhV8+g6v9BV3QtsZzeNw4LHxJk+OvfJbJzWZy9Ag1Z0yDd?= =?us-ascii?Q?QlbRmRC1rNK1N28TZsw3rKXmwIurBM7z6k1G1dTFHPAHX5Nb9bvU3Ls4Oo5G?= =?us-ascii?Q?3xXRb8Rcj7WL5WBt7qsuAguzZ54J6ANj1OVMX5GxY2AIVr0ZrN415KY8FVOp?= =?us-ascii?Q?BLNmNf/11FGgZXiLze6m2u6eb9IVtbC2298wmhFS55JlO3guucaCnrtd/6HG?= =?us-ascii?Q?GVs8hwhcfUk3XtfFEhM=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH0PR10MB5777.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(1800799024)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?WxtA9H/jcdD56dzGXPW0TLgUEqbOkTgIoIr0inqPWqVf/k/PAnpTWsWWiOde?= =?us-ascii?Q?uZuugJAcON7r6EPP7AdI6ezg3okwx7wVzS1Rr+EhvLeq6QT3spH9d7FmqouF?= =?us-ascii?Q?lsPMyzKY9Y3sXkIw+lVC9co4dKOqeRWteKsJmdr6Fj/q4wwmQe5UowNPkEhT?= =?us-ascii?Q?RhNSVDe3LcTeMfLzQgP4dcleCovhIVxf71czTK7GevbZVjGRkNoyRdS0Wgxk?= =?us-ascii?Q?GqSo5hLfUay21FvhsS7/aKhvDS8bo9UM/9Ohs91MokFkrdMzNdYszJHntpv8?= =?us-ascii?Q?ff4Eomgusmqe4cSF9ezXEAgtiCElwjJFlEUnsjvguf7AB6eLP02UoNbPY5SJ?= =?us-ascii?Q?Ql1apWet+vc+9LkTqo6tG+JAu2A/+I2lk2mFyZXqGk9uwt2MHeymRM50eyHe?= =?us-ascii?Q?aa+wgTQ8guU574JdgUHziVQ+C1BIAN4cVbrAmW/WOIAda5QAQqlGC9cHjodb?= =?us-ascii?Q?1qv44UDhO3n3zFEG6G/SCJHtWHn6VCLxjeg8Z0b7bh9k1TQstIlCxO4KFw9D?= =?us-ascii?Q?xGizEAAP2S41ZowvUlop/Nkkiig26l9lkCncYqHQe+FEl8QM+Yw+ZOSR9Utd?= =?us-ascii?Q?Tq0j5TkOCT35RhCd3JXV6liyXB+a9SJRJHt0YC2/OShv7V4NYtB5wBpy+pBu?= =?us-ascii?Q?FMZ6x1j+ZVi49+XsvI8+3vjDy94fOYnBuFDkFPtPmYHnGDVGI7Gvqt/T7N58?= =?us-ascii?Q?yS0KSba8Q7AiCNmAHPvPs/lcS2AyJIdGfFZZVSppjSIfE6Hn/XX8JEN1RPoN?= =?us-ascii?Q?fYZjaICfE0pPRX98Kuxd8X5KFucDR3AC2O0PDGZeSyZQeBqXfXJAwIJ8eoPp?= =?us-ascii?Q?D7IEu5Mg8S3DOtYjbKh+0xY0YpVW+vP/1XUSQdYXVSxWHTouGj0g58omoSV1?= =?us-ascii?Q?vSsVCgw2TkA94ZUMJ1sao9dGzg4UefKnMxoETDYSHs47qrgFz1MjmhRdJfBi?= =?us-ascii?Q?2F+61iXb8vGFm1e+983cBkCL/MhcTPzEIghpjAtEMKxLY+r0oH295Ha0BLqF?= =?us-ascii?Q?MBPr3fUgUy56KwDYGGUp8JAu28vpykHv7ezokbXUtjYNg/ruCgjDMsjr5lIR?= =?us-ascii?Q?PtF3Apcrk+n9ZVGuDp01/DPIp2g6DlXTeKTZXLR0q3KG6YfilrcPL9anmXEe?= =?us-ascii?Q?cbc6FzP+rhVFwa9tzf6YtwXK94H/jxOUQrdjn8RBdIPyl24766/zGk4/jhuO?= =?us-ascii?Q?61+uPC+51T290dWNsvPK7yPc/LQmQ6mO+gj9npfh25Hn5gMxeBSvDYYIE5d7?= =?us-ascii?Q?AP7XRgJq4F4uTBlzDUB2t3hn0OD+8Cdnxr/TIsE7q+OhU5/OvsfB8AyONA8I?= =?us-ascii?Q?otGyOiMMsrfE4FaQT9BlJQP8WHCy64JQygbkKOnY6JLW2X4NLjWhXhXnyS+G?= =?us-ascii?Q?GezWOvTsX+B5PBw+wpeLoq/I05KF9lSBcktfks/hDz1PywMrK6hr7JjlB8X2?= =?us-ascii?Q?eCNpobJFuV26/fZYUPQIrs5haNdmFbJOHVDlNmQ0mAYSNaO9NwGJfODedX5L?= =?us-ascii?Q?TpSoay+hyZBr5D/ECGvyTO7T53mTOk1vS03PIC0Zt2Ex3OBeQFo2FQ2TVMOj?= =?us-ascii?Q?ZWHHmkCTzdzREjhJtmXeg+At9JCn4t2l/Q2PQd1dFR5PGLXH3x1WNtYBQYvN?= =?us-ascii?Q?/5tbKsmsLcfZ+U8oXTckECq0Z+doDZLI+k0bZhCkakZKfzWk81ipCWiqo7iN?= =?us-ascii?Q?U32a1s0PqLWecYcdYXT2Vp2yHbAbuWPDRyEnNgC78Zkp9igRly7PTy+4H6Ej?= =?us-ascii?Q?N0oi4hGuGw=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 7187CSqHhVfpwkoo4miYGNlwbQZpIROA3T8FjrfFYTnbXvMh/HCiLus8wAciA7bo3yMT9c1ydVginxlQ0W6cpUn2Q1SPbp9dLqVUyxt1hAVuaHGy5dPTqYxL65n+dNURav3QdjOAVYFkTvoJI4xHtkohcqQVOXuI3lfmO9qeWukCkJ9VlQlWSvuwRPkmGU+MVo15/g+YJ2YmEp++39Qs4575CzZB7Sx4lj9ErrsVThbVSWC5QolR/NNiWf2kHemzBvLSv72z3cE5ALsG+6FwCmet6iikBQmm02HHat6kDi8GUvPClckZ9vf4y0wqPGhepffvpAvAlo/wEcnuGwmluZ4WmxP+ZcHYWeFnANR0NEQV6hOgJPS/ScBUM4afDxUvTjUlhorUvxxNwEITTutfoPpqTMt6nxury9yapG1Ph5+nnDnAEcQT22nEC8tYgfuy9A08ZK+c8iAi44E/YYQM8IRwoXhlJpC3c5A0Z8Yq1ODWU+G9dj2r4dUBcwdokfqpohUR5FKmSy2slo9fpFmpPdx7eOSqz8+d2D3iC7xUnM8ZL/eM8dsUrUv9KJl+7+pTgFDcPeuxpL4bDEPAGoio7dW7r7BNblb5LMDqurbFsMA= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: c344bdc9-fec1-4ef5-2189-08de604293fb X-MS-Exchange-CrossTenant-AuthSource: PH0PR10MB5777.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Jan 2026 21:00:20.0889 (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: ua0CeFzfSOB7TFUkwpt8SPdV9HkUgEJTEGsw6A+3QPsanhHbuMg7rEvpPS9DgD7RTodkL6Cq06WUs6ojKnM3qw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA6PR10MB8061 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-01-30_03,2026-01-30_04,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 bulkscore=0 mlxlogscore=999 adultscore=0 malwarescore=0 spamscore=0 phishscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2601150000 definitions=main-2601300172 X-Proofpoint-ORIG-GUID: OPLX61kJxbeSS2oIhiFrTZ7vWqATBPSZ X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTMwMDE3MyBTYWx0ZWRfX20F+bV467hTa V3npmLAcWpO6kvMoB8p4/L+7ZWb7Yo3vlB+3Pe7nvfsVeZu/9a9wZf9L0uFqTNu0ukJdL3CPVqV JbxiyeCNMKIRjYyvStcBfcxXkSZ/8zG8bOTtd29ZYdB/2ZHJfvOAQu5cjWDtOw3C70lfDD4Bg6G dJkFDR+GOsxgt5V1GK11vuBzN4W7s3IzaUmlj+zM1qVyxw/mUgCr/Qla5EdNgmbkbGKWaP5lFtP 8/zqNH8jfRCuqw6H3QE+NQh0cVraSkMLehB4MV7QT7R6SkSJ9Puu9el29/pUEk9eT5OkRJHJRZG DXqH643cobmtBrsGgwR+4T6H2NlKefRuQeQVzIeBorzWpIOXWUty5HaMnWJqZY2MrMN31ZfedXP Jg8wrjT3M6VMFug+c0tEEhzMbEfk8Re1SY1V5dTfY9JZyBh4rHTD+I8D3b74thv6DFdVTl3tt+r gFITXrfTbINAjYWwgSQ== X-Authority-Analysis: v=2.4 cv=Qe5rf8bv c=1 sm=1 tr=0 ts=697d1bf2 b=1 cx=c_pps a=WeWmnZmh0fydH62SvGsd2A==:117 a=WeWmnZmh0fydH62SvGsd2A==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=vUbySO9Y5rIA:10 a=GoEa3M9JfhUA:10 a=VkNPw1HP01LnGYTKEx00:22 a=yPCof4ZbAAAA:8 a=Fk0WoDt32--Uo3WLaF4A:9 X-Proofpoint-GUID: OPLX61kJxbeSS2oIhiFrTZ7vWqATBPSZ Content-Type: text/plain; charset="utf-8" Introduce an internal-memory only node type called maple_copy to facilitate internal copy operations. Use it in mas_spanning_rebalance() for just the leaf nodes. Initially, the maple_copy node is used to configure the source nodes and copy the data into the big_node. The maple_copy contains a list of source entries with start and end offsets. One of the maple_copy entries can be itself with an offset of 0 to 2, representing the data where the store partially overwrites entries, or fully overwrites the entry. The side effect is that the source nodes no longer have to worry about partially copying the existing offset if it is not fully overwritten. This is in preparation of removal of the maple big_node, but for the time being the data is copied to the big node to limit the change size. Signed-off-by: Liam R. Howlett --- include/linux/maple_tree.h | 26 +++++++ lib/maple_tree.c | 140 ++++++++++++++++++++++++++++++++++--- 2 files changed, 157 insertions(+), 9 deletions(-) diff --git a/include/linux/maple_tree.h b/include/linux/maple_tree.h index 7b8aad47121e7..9bc7fa89bc2ee 100644 --- a/include/linux/maple_tree.h +++ b/include/linux/maple_tree.h @@ -139,6 +139,7 @@ enum maple_type { maple_leaf_64, maple_range_64, maple_arange_64, + maple_copy, }; =20 enum store_type { @@ -154,6 +155,30 @@ enum store_type { wr_slot_store, }; =20 +struct maple_copy { + struct { + struct maple_node *node; + unsigned long max; + unsigned char start; + unsigned char end; + enum maple_type mt; + } src[4]; + /* Simulated node */ + void __rcu *slot[3]; + unsigned long min; + union { + unsigned long pivot[3]; + struct { + void *_pad[2]; + unsigned long max; + }; + }; + unsigned char end; + + /*Avoid passing these around */ + unsigned char s_count; +}; + /** * DOC: Maple tree flags * @@ -299,6 +324,7 @@ struct maple_node { }; struct maple_range_64 mr64; struct maple_arange_64 ma64; + struct maple_copy cp; }; }; =20 diff --git a/lib/maple_tree.c b/lib/maple_tree.c index caac936bd8d40..554fdffd6c5b9 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -605,6 +605,8 @@ static inline unsigned long *ma_pivots(struct maple_nod= e *node, case maple_range_64: case maple_leaf_64: return node->mr64.pivot; + case maple_copy: + return node->cp.pivot; case maple_dense: return NULL; } @@ -624,6 +626,7 @@ static inline unsigned long *ma_gaps(struct maple_node = *node, switch (type) { case maple_arange_64: return node->ma64.gap; + case maple_copy: case maple_range_64: case maple_leaf_64: case maple_dense: @@ -690,6 +693,7 @@ static inline void mte_set_pivot(struct maple_enode *mn= , unsigned char piv, case maple_arange_64: node->ma64.pivot[piv] =3D val; break; + case maple_copy: case maple_dense: break; } @@ -711,6 +715,8 @@ static inline void __rcu **ma_slots(struct maple_node *= mn, enum maple_type mt) case maple_range_64: case maple_leaf_64: return mn->mr64.slot; + case maple_copy: + return mn->cp.slot; case maple_dense: return mn->slot; } @@ -2595,6 +2601,110 @@ static inline void *mtree_range_walk(struct ma_stat= e *mas) return NULL; } =20 +/* + * cp_leaf_init() - Initialize a maple_copy node for the leaf level of a + * spanning store + * @cp: The maple copy node + * @mas: The maple state + * @l_wr_mas: The left write state of the spanning store + * @r_wr_mas: The right write state of the spanning store + */ +static inline void cp_leaf_init(struct maple_copy *cp, + struct ma_state *mas, struct ma_wr_state *l_wr_mas, + struct ma_wr_state *r_wr_mas) +{ + unsigned char end =3D 0; + + /* + * WARNING: The use of RCU_INIT_POINTER() makes it extremely important + * to not expose the maple_copy node to any readers. Exposure may + * result in buggy code when a compiler reorders the instructions. + */ + + /* Create entries to insert including split entries to left and right */ + if (l_wr_mas->r_min < mas->index) { + end++; + RCU_INIT_POINTER(cp->slot[0], l_wr_mas->content); + cp->pivot[0] =3D mas->index - 1; + } + RCU_INIT_POINTER(cp->slot[end], l_wr_mas->entry); + cp->pivot[end] =3D mas->last; + + if (r_wr_mas->end_piv > mas->last) { + end++; + RCU_INIT_POINTER(cp->slot[end], + r_wr_mas->slots[r_wr_mas->offset_end]); + cp->pivot[end] =3D r_wr_mas->end_piv; + } + + cp->min =3D l_wr_mas->r_min; + cp->max =3D cp->pivot[end]; + cp->end =3D end; +} + +static inline void append_wr_mas_cp(struct maple_copy *cp, + struct ma_wr_state *wr_mas, unsigned char start, unsigned char end) +{ + unsigned char count; + + count =3D cp->s_count; + cp->src[count].node =3D wr_mas->node; + cp->src[count].mt =3D wr_mas->type; + if (wr_mas->mas->end <=3D end) + cp->src[count].max =3D wr_mas->mas->max; + else + cp->src[count].max =3D wr_mas->pivots[end]; + + cp->src[count].start =3D start; + cp->src[count].end =3D end; + cp->s_count++; +} + +static inline void init_cp_src(struct maple_copy *cp) +{ + cp->src[cp->s_count].node =3D ma_mnode_ptr(cp); + cp->src[cp->s_count].mt =3D maple_copy; + cp->src[cp->s_count].max =3D cp->max; + cp->src[cp->s_count].start =3D 0; + cp->src[cp->s_count].end =3D cp->end; + cp->s_count++; +} + +static inline +void cp_data_write(struct maple_copy *cp, struct maple_big_node *b_node) +{ + struct maple_node *src; + unsigned char s; + unsigned char src_end, s_offset; + unsigned long *b_pivots, *cp_pivots; + void __rcu **b_slots, **cp_slots; + enum maple_type s_mt; + + b_node->b_end =3D 0; + + s =3D 0; + b_pivots =3D b_node->pivot; + b_slots =3D (void __rcu **)b_node->slot; + do { + unsigned char size; + + src =3D cp->src[s].node; + s_mt =3D cp->src[s].mt; + s_offset =3D cp->src[s].start; + src_end =3D cp->src[s].end; + size =3D src_end - s_offset + 1; + cp_pivots =3D ma_pivots(src, s_mt) + s_offset; + cp_slots =3D ma_slots(src, s_mt) + s_offset; + memcpy(b_slots, cp_slots, size * sizeof(void __rcu *)); + if (size > 1) + memcpy(b_pivots, cp_pivots, (size - 1) * sizeof(unsigned long)); + b_pivots[size - 1] =3D cp->src[s].max; + b_pivots +=3D size; + b_slots +=3D size; + b_node->b_end +=3D size; + } while (++s < cp->s_count); +} + static void mas_spanning_rebalance_loop(struct ma_state *mas, struct maple_subtree_state *mast, unsigned char count) { @@ -2750,10 +2860,11 @@ static void mas_spanning_rebalance(struct ma_state = *mas, =20 =20 static noinline void mas_wr_spanning_rebalance(struct ma_state *mas, - struct ma_wr_state *wr_mas, struct ma_wr_state *r_wr_mas) + struct ma_wr_state *l_wr_mas, struct ma_wr_state *r_wr_mas) { struct maple_subtree_state mast; struct maple_big_node b_node; + struct maple_copy cp; unsigned char height; MA_STATE(l_mas, mas->tree, mas->index, mas->index); MA_STATE(r_mas, mas->tree, mas->index, mas->last); @@ -2765,15 +2876,26 @@ static noinline void mas_wr_spanning_rebalance(stru= ct ma_state *mas, mast.orig_l =3D &mast_l_mas; mast.orig_r =3D r_wr_mas->mas; memset(&b_node, 0, sizeof(struct maple_big_node)); - /* Copy l_mas and store the value in b_node. */ - mas_store_b_node(wr_mas, &b_node, mast.orig_l->end); - /* Copy r_mas into b_node if there is anything to copy. */ - if (mast.orig_r->max > mast.orig_r->last) - mas_mab_cp(mast.orig_r, mast.orig_r->offset, - mast.orig_r->end, &b_node, b_node.b_end + 1); - else - b_node.b_end++; + cp.s_count =3D 0; + cp_leaf_init(&cp, mas, l_wr_mas, r_wr_mas); + /* Copy left 0 - offset */ + if (l_wr_mas->mas->offset) { + unsigned char off =3D l_wr_mas->mas->offset - 1; + + append_wr_mas_cp(&cp, l_wr_mas, 0, off); + cp.src[cp.s_count - 1].max =3D cp.min - 1; + } + + init_cp_src(&cp); + + /* Copy right from offset_end + 1 to end */ + if (r_wr_mas->mas->end !=3D r_wr_mas->offset_end) + append_wr_mas_cp(&cp, r_wr_mas, r_wr_mas->offset_end + 1, + r_wr_mas->mas->end); + =20 + b_node.type =3D l_wr_mas->type; + cp_data_write(&cp, &b_node); /* Stop spanning searches by searching for just index. */ mast.orig_l->last =3D mas->index; =20 --=20 2.47.3 From nobody Sun Feb 8 02:41:40 2026 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) (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 83EF0387370 for ; Fri, 30 Jan 2026 21:01:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.165.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769806890; cv=fail; b=sdorNgNblxW0aMRphAn7OGEzIqumHkVQyerVMm+frBiy5hf+/oqze0q9srLVpV7Zb2Aj9gA68GiKXYpVIdFdNnPjuitgIrXhp6gXovOzpQB0617EYCRx8rnsnj2Bfl613SbSzICo4ndUsn0eBpUP14/li7/whEIhA7u7kNMeQ/M= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769806890; c=relaxed/simple; bh=A0h5uvUCLd/O5vrbkFTjFTKGEfy1eM7yBw0ZYG/rws8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=U+nVaipmrcflfmGjSoIt2ornDExQ7A7ET0GAc+O418gTh63SABnWkmSxbn9VCOyJq6itphdaYjgNgpg0Mvpdkq8WOI7HP9HZaA94DoyNrT9e4gxC9y8xaQMnQQMb82CCP3burJZH8dYc69cLogDEjKp81/xJS7w88gjuWb3HkOY= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=dM3jaSYT; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=pDKiOnPM; arc=fail smtp.client-ip=205.220.165.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="dM3jaSYT"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="pDKiOnPM" Received: from pps.filterd (m0333521.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 60UKDVsR3538874; Fri, 30 Jan 2026 21:00:34 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=5NvHNWgh0z3jOXwBLQYSIoh1Rxui+PQGVsVsGs8wmOQ=; b= dM3jaSYTdXuHrOM6C+XpVcN0PhCHtq+fEq9Jb0xqcI3+1TulBMpaOX2xUpWc803o KtKTyaJkze41k5kN1Ump//wkCKnHBs7Sxg683SsS163i3wZEf4uG6s9t8MtZ/HCY 5n4Yx5q3JI9rUP1UdWX2Ysc2lSkSY36Kgwi8EKllIyNBYpGo662sepUndSFVhEme DzwiyK7z08XjahGGiv7JhlOicePbkDexJlp5DfQaRXZZLCBevNaI7Gmo2RGUXFgG mFsRXlACjZUW0oqDx2MbBV3kh/qox9/hYJCibI/ZETlnMcyk5PaszwhmuHvtkfw8 g6jB5wJz6pAglWbPNbvddg== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4c10b2rcrk-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 30 Jan 2026 21:00:34 +0000 (GMT) Received: from pps.filterd (phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 60UIkbKF032726; Fri, 30 Jan 2026 21:00:33 GMT Received: from cy7pr03cu001.outbound.protection.outlook.com (mail-westcentralusazon11010008.outbound.protection.outlook.com [40.93.198.8]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 4bvmhe4g0t-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 30 Jan 2026 21:00:33 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Az9LG3CTYQao5L6h3n48pvqA4jzvmJskNl4zZtls7QJUlnxAC/b42WXg+QwYo9Xem82wUCNGzUO6NVrnJDI/uY7F0cVsXaXBkOTM1XXNAiNF0GMFlzJczj3HELn3PzRrns8dnZF5w43YenVeCNtmar2IwEbcMUBxb/kG0Vp293nu+n5q/f0NG7AFfvfFuPu6j1ZkJmxavaYKGqTLdKhOAymn6v1GsKn5CzGQTMNJGp5TzHSnDzElrklkskN+dPqRF4xAeODgWWNy3R+BzCe2aJTWsMG5OYT1pceOE3+WGSc+Tqqsig36AJbCykI1IkfdZ4Pg5xT60sAzzsdkFv0hyg== 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=5NvHNWgh0z3jOXwBLQYSIoh1Rxui+PQGVsVsGs8wmOQ=; b=ODrm77o4VJglHeb/cQJEmoE/zfnkGJ2UnE+auyuD4fWwO0Dqet5nRDdgyw+vqawO0m67nqnhXshGLhh6gJOqRtl2rUF2L6NgtImRTBaKkwGuJ+QykkHno9BP4eoCz/tPFaKfxwRXlNPb7/tT1e2I+FZsypKL2cccxW4IuAKMLcJ99ufyIqza73f+eHlwHgdErsZHmJA4SX9zOGrooN5U7b7TU4ynnb2Sjc4dO3gInsN+Y3ZqrZaE/xtq9i1FCizvNptX7AMxaNtMZCl+4pDDJjR4+9yht/gq7vrBpLqXB40MYSOhHLqhS972khner/pBjicHKCL7Ne6JFeGsNR7mRQ== 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=5NvHNWgh0z3jOXwBLQYSIoh1Rxui+PQGVsVsGs8wmOQ=; b=pDKiOnPM8V8RS4DZcrc6tYC+iizfPtlwzEmRwXHcXuZybWGORvwGhYgDQuTvnj8saxybadvtkk6fycwkYFNed3c3jLBWDV7XwoDaEHeAYeoEzxl9LidAvniFeUcEYF7fJqV3qAntYXh65jvnjwe7nGBPFZ3jHLCxO/jwbItL3Fg= Received: from PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) by SA6PR10MB8061.namprd10.prod.outlook.com (2603:10b6:806:43a::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.11; Fri, 30 Jan 2026 21:00:29 +0000 Received: from PH0PR10MB5777.namprd10.prod.outlook.com ([fe80::4b84:e58d:c708:c8ce]) by PH0PR10MB5777.namprd10.prod.outlook.com ([fe80::4b84:e58d:c708:c8ce%4]) with mapi id 15.20.9564.007; Fri, 30 Jan 2026 21:00:27 +0000 From: "Liam R. Howlett" To: Andrew Morton Cc: maple-tree@lists.infradead.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Suren Baghdasaryan , Matthew Wilcox , Sidhartha Kumar , Vlastimil Babka , Alice Ryhl , Kuninori Morimoto , Geert Uytterhoeven , Arnd Bergmann , Christian Kujau , SeongJae Park , "Liam R. Howlett" Subject: [PATCH v3 12/30] maple_tree: Testing update for spanning store Date: Fri, 30 Jan 2026 15:59:17 -0500 Message-ID: <20260130205935.2559335-13-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260130205935.2559335-1-Liam.Howlett@oracle.com> References: <20260130205935.2559335-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4P288CA0034.CANP288.PROD.OUTLOOK.COM (2603:10b6:b01:d3::20) To PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) 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: PH0PR10MB5777:EE_|SA6PR10MB8061:EE_ X-MS-Office365-Filtering-Correlation-Id: fd270d23-05b5-45a8-462c-08de6042956a X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|1800799024|366016; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?pXg5sBUZms0TfvqFsVMivqM5n643y7K31+pgOAFgGAyar+cfyo74WENo2B7v?= =?us-ascii?Q?i/i5Rx1wJJ8VuC/bTQ3ZZ0PNVGJmdn2H9kbCtq6FffQ6UddlvcxO8Wlpkvd/?= =?us-ascii?Q?bk594anzwAwF1YCCUwWoynB01nn9Rf7WoMjZRxLYPvSC9jBJxFrkT4UokDYu?= =?us-ascii?Q?AncZJx1pbk815Hatu3poVjgYPFN0/f8lOJ57RLhkSBngy414G4wWib/4PZ3M?= =?us-ascii?Q?kyNc8KzhwEqvwTVu4eFWy2A3hT5spzKb7N9RN49se+fn+QmfPcAVQ2SFlTKC?= =?us-ascii?Q?igPaj0sDZqb6cSyarJn8HepV+8d3RBzU87NTLr7N+hiHrMfYWYEIB3arS30I?= =?us-ascii?Q?hJ8GFAGhKaJOt4mkYqUYW5y/M0KNXVGeDPCST6vKYE8bsQ6Xic9LCKSlGGTp?= =?us-ascii?Q?yU47+tS3McAwXj7Z+l/9Vy7Tch8Lm8Yz8wbw0UP6oXnEoZ/Pb9cNUmAJECEh?= =?us-ascii?Q?tWoxuCxlRTHqPJz+SfvW/oVWDKp7ITgZf6pulB6piM9HgwPOdJoXfBmYVCTy?= =?us-ascii?Q?61MdsPLVYTY7Br6yPCViAx5XczoDIMwZ0o/ragQR1dRMvxuTqfIb/E0wMhhT?= =?us-ascii?Q?ukb35+NoO1VlyOyuZvu1XVrHE4bxUDyTjYavggZC4fG6xrCr6pK834bub/cf?= =?us-ascii?Q?VgBBktQ48sIO52TRXl3z81uF4tqpVSu6mZVyDOfXHsRMlT7sflF2m2cwAt2h?= =?us-ascii?Q?Vedt5SGsKdAFQkvLveD0KV22vE5Rcxfnnmc0uPGFp2wdlKy8BRCqLC27Wxtm?= =?us-ascii?Q?wn091Tbu7QOC9ssdrvyfKslZygnR+TYQq3xKUVR+6dCcfW9j3QLJrGyQtUiW?= =?us-ascii?Q?PGaWGGlfbKqTVwxj11DGlxQxjqKP5bewzassrLe3fDyLieDE5bA2PFxK+AKn?= =?us-ascii?Q?CVNeXff4zaZweReMNUub87jZ1Wwl1luG5sgJ2+LjMPmE8Cm/A074D+RfQdPq?= =?us-ascii?Q?PRxRZzCgUVS7IQBZDrcuEIdIEYYPlsxrtrNsLTgil/CEmxNIkG7QXx7PrQXD?= =?us-ascii?Q?CbLwwrDcjRdZxEaRDnyGWDj+TFshHHbmfHTgfTKtAEAHZWKR51dxs+uQ2NW/?= =?us-ascii?Q?QreAmXTl7SP1miIOw2/jaIpjCnVXLK22FPnuqWxczaJQQRO7OIyUidLtFWYe?= =?us-ascii?Q?J0EeOZCvu+/QJB0HTDDmNzC6zafm3y0Dn5s1kbbR8fpgagE19mtPx/58+w62?= =?us-ascii?Q?9I1NXWqePyQOHSsrcRyfJ7ioX3PyJhwbI4GcLpO/wRdWoTFh8Vm6Db55lEy4?= =?us-ascii?Q?h1JDX9jkXqA57HX63rBEFrZYlk9n4N9fNqPSZyi8xdUqwI0zVmbn0oTMuqLj?= =?us-ascii?Q?TcvzsOuCIOw61duDqTYHJz+K89tWxMwX4ttSCdwVXuXyw47fTSPa/fZSl8a6?= =?us-ascii?Q?UlKtJVd3OKu+drpk1j4pRf88dvaG2kNeVzAkKVc5HegVmzqHj1p+dSApmMF7?= =?us-ascii?Q?/w1iQ9IpRxJSAwDmoQl9+qN+W5n1LrIpS/AirubwEAdoQOcg+xk8g4rPVt7s?= =?us-ascii?Q?y4LXQp086WJo4Sqal/oH2ZKYSVyzI/J2KC4UxZz0Y1hpd1ndtHSUaNQ8mp1d?= =?us-ascii?Q?04A9N+WQJoGBxPvGxlY=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH0PR10MB5777.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(1800799024)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?hvTLHFb58zkX68LhR2AI76iThncnWKnemRfuKtdag6pTCRlemXTR8NgpI3DP?= =?us-ascii?Q?rxva1G7OpnI7AdS/Yaee3b7Oq7QD/LK/W7Epfu3VodRGUIK0x2ldWz5EyAL3?= =?us-ascii?Q?JtktI2b+2rj7bgohGX0vJx8q3yeiK7P1N5QSK38TO9+3kFH9IywrwHuwMJ7J?= =?us-ascii?Q?quheYeGatedCKkWcmzs9bkBImS3GqXx5FB6Wb7VUiEwaJvpBL+2CUAZtxE0T?= =?us-ascii?Q?YVIX/boU9ccNNNoGquUcCZvEaL1tpqq8i8mCO+/NzHzdRlRJa20w7rs3DFSd?= =?us-ascii?Q?KI+pAyDEcq13nlKcVjHDN+ff96HJXl80E6hljardB+bCKBx1GS6I/YfxmpdN?= =?us-ascii?Q?Y2gVtz0aaElX8EeydSqCI74lXEMzBPjryu/FRmCTPasOp+Z7H9thWiqcqSXI?= =?us-ascii?Q?QueA1S+xxIFQxNvWp4s+JFY56d1Pz2hJQ7IuOM7VOygk/E+oZY0MTXhjR6B7?= =?us-ascii?Q?QdQT8+Rwjs2e/72TOC7DsetwpBATl/kvSRFCBa17dl+JXFw7/Kw4MVRSB16O?= =?us-ascii?Q?IgbTjE3lBVvrOLGa1IqkxX5tiAfnGL3KM3u8RHW/h7hxxUBH40orkNdOnOBW?= =?us-ascii?Q?pSIhFDDFaTB4xZLclqd43QRLObHwy6Rl30kDWQNB1XM5S7DBi0TT+aPQNG/0?= =?us-ascii?Q?wjGi77syWhTnvKWP2kD1/wHcYf0Nl+rAwo5VTZC9rbaCrt9bsVOlMSlEDnTD?= =?us-ascii?Q?JkSUYy4teU0z5gPvOANJeuVUPn4FeeP/vTWrBQu9jndy54VEN+9/48tig1Fb?= =?us-ascii?Q?Bcnw1FjbzgNmyXUZGAw4/TdMla3EVeeFGVC6DVe5qVv1HhdpEM/ANy94nYs/?= =?us-ascii?Q?kJoeU7e/FYNuwbFbgqrFCieTNqQRVdOz/pkDPmLvXDqUT5jXA2rDhKNGAmIz?= =?us-ascii?Q?3VWdwH+ptquyn/Yow/a1i7YlimiBwttzKOWBTuQCy8fC525Qi4eJgn/apFau?= =?us-ascii?Q?PZYydRP7hpK7gfwXqRLsNm0schtHnxKK0jSU+btWJ+66j2p9rbn/QVcYUxt9?= =?us-ascii?Q?KRoqez/0dK6B4qPTOutOlFsoD/QxK/WesWVR13qyORHobGAJUePUDPdx629+?= =?us-ascii?Q?w7jC9l5xBbg4MIaHDTb/RvBtPWG6vitMKL3VEtvK5BVuu2AAh9rc8/RQfX1W?= =?us-ascii?Q?WhPWg9pgDlI4CBUkgMTwTMz1Z7itDzxVn/0lKiOhxqBhioZnoWwahsjwfnbK?= =?us-ascii?Q?x5Bxd6LgwYm7qp3D2SgFCOew1nbH3d8IWrQeez3L1H9sdSoXw3X2UnXH3r/3?= =?us-ascii?Q?yGKQf2IBXoU0mT3H2HsAC4yFD9hqZTymALGEPlf31yHfRd/95re/S+QRTKH/?= =?us-ascii?Q?Vb25qMf4s0bAXV6td7D1sTOXIMI0t4FK5K9Yka7P3YSyLJIPr7/+SGj330oh?= =?us-ascii?Q?hy0QakZqF/Rwa/wLjgHDI9VD+BykSdvxfTmWJH4EBoSivJM6VXZ6cNEBRnZR?= =?us-ascii?Q?xjHVPnGbHk2JqH2r525qtM1XzelkIFZosa6zYfZbjZECUfepq/O7VNH+l2IA?= =?us-ascii?Q?zaomVHr/iUdG6b8Fk0/snPMKE2uC7jGKIpbbRsdRVVyyIvmAFW3IzzdrExWe?= =?us-ascii?Q?JLSbLJdPTik8zgIo5aCoZzmCzA9eZTHI6ahaLhf6an+far105nzzQRTrnNwT?= =?us-ascii?Q?+1L5rfuJXz1DUZzFT71yjjH2m3qf+QlGg1q+tnv1Of9lungwnVFWS3uhGj5C?= =?us-ascii?Q?8vkbXgyIYduRG0mmqulVFmEqY9bt3E4YPTQ3pnnkbooOxmgppOd7W1yUBmaK?= =?us-ascii?Q?8DMJ93ZmlA=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: Ygz44e/cS4JyTdUCPS8+tOxUAtCL8qyft0zw5bmtg7Fo9gIsaLRTv7TOSbVMGqLphqBOjC8xnAKTAub+sOPk36c1q1mQQNsFPaN0JyqmFgUZr0kKpWNOxWTP2jG/yIld5bFrFIRnSs9UtTiqPrIBj9sovX/eGld4XHtcB7hp6ZqJHPaVlgYD758wQNQ7f2s1cxkIKtadwRFGd+vRd0qX76wK3UwtWe7d764u6NpsE8RGJSzar9czfyIB+3Ee8ZctrzXRpVoAW0WvL3e8Q0j32mIIZwwvz3Kxsuka4LDFf9IGPDIe1BtyxJsVyE5RLZXctYHOl4FQOJgq6/R5+0PEXLh54CZAz6/RiQbC8pDHZbbAiviv9ilUkMvtNdZq62/xUwpQXHHQtofEFWhiU4tLLDIHzMgQAxr+EIK6mJvf//BloHtomhsTs4bDw03dSegW8dO5v1yNBcJIfksGCPGSvVlW7F17RV3KZUhOaXjgvdG7EGOyXjhPf1tNx8hru5yet3QGAYqQTqZDtHWoJvNjOtFc3S8liq7v6Ui8ufazfUh8IEge/yc5nsqHJdZWSH/t/Ri+An8DHHi96SWcDaXlPCwueGtxJTzB993Gqh0IMyE= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: fd270d23-05b5-45a8-462c-08de6042956a X-MS-Exchange-CrossTenant-AuthSource: PH0PR10MB5777.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Jan 2026 21:00:22.6103 (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: aafhPqdSvcTaxBTvwgw7y/sxf3Q8Sa3zq1nwKMnRmX8jmkkp5WheDL8+OaVQfe3wABCsVrM87DtQRu4eTJFjkA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA6PR10MB8061 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-01-30_03,2026-01-30_04,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 bulkscore=0 mlxlogscore=999 adultscore=0 malwarescore=0 spamscore=0 phishscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2601150000 definitions=main-2601300172 X-Proofpoint-GUID: 4l8rU8vcVpnbecyvpt072QTHKlLJyL4E X-Authority-Analysis: v=2.4 cv=BLK+bVQG c=1 sm=1 tr=0 ts=697d1bf2 b=1 cx=c_pps a=WeWmnZmh0fydH62SvGsd2A==:117 a=WeWmnZmh0fydH62SvGsd2A==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=vUbySO9Y5rIA:10 a=GoEa3M9JfhUA:10 a=VkNPw1HP01LnGYTKEx00:22 a=yPCof4ZbAAAA:8 a=t0zg3OoRVwqkdlAMXQQA:9 X-Proofpoint-ORIG-GUID: 4l8rU8vcVpnbecyvpt072QTHKlLJyL4E X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTMwMDE3MyBTYWx0ZWRfX1lsOCmATPNg7 aytRZS7LUP0K13Y8iRxIAln6J25Aw5R1jcgt8qwfnLXDNT3I3R/0dTa7RJs7xIA/KuJ0I5B2O+P u7N7q1e5WxGyaadksEgFgym0AvDAJiC3hRtMXk/7BhSn3ikhpChvbf7z5UgObWpnwgOGUIvDkXy VNX8O1fbssJPdxTGPVsIhc8WsDlSpouns7IC/N4er1AeM+ul2nxJkUXDJRwljThdlz2sp1aMd3P jdInWL/mw/GeSJTXarBHjcc6hViZPjugK8QJlbMl9buds7tBtcXLuXpmTa5AGo9eNIqVOfmlhKZ wwWxP2rxZeW7CrylL+bcSkmLMAF5fgWF9gC85mZlT51kRNHpnpjz2UBe7zswMQcg4nhQ0JMtDdN kOnEZ34o7KrKpFjGMfJP9YkOWMlq5w5NMK03lcOQUUdIeCHjyP2RlIjvuCQivRKgwRnrdhYzpjh ML0eIW0iKw9JX4ek5og== Content-Type: text/plain; charset="utf-8" Spanning store had some corner cases which showed up during rcu stress testing. Add explicit tests for those cases. At the same time add some locking for easier visibility of the rcu stress testing. Only a single dump of the tree will happen on the first detected issue instead of flooding the console with output. Signed-off-by: Liam R. Howlett --- tools/testing/radix-tree/maple.c | 172 +++++++++++++++++++++++++++++-- 1 file changed, 163 insertions(+), 9 deletions(-) diff --git a/tools/testing/radix-tree/maple.c b/tools/testing/radix-tree/ma= ple.c index 5c1b18e3ed210..85fb5616c133c 100644 --- a/tools/testing/radix-tree/maple.c +++ b/tools/testing/radix-tree/maple.c @@ -38,6 +38,7 @@ struct rcu_test_struct2 { =20 unsigned long index[RCU_RANGE_COUNT]; unsigned long last[RCU_RANGE_COUNT]; + pthread_mutex_t dump; }; =20 struct rcu_test_struct3 { @@ -33997,8 +33998,25 @@ static void *rcu_reader_fwd(void *ptr) } } =20 - RCU_MT_BUG_ON(test, mas.index !=3D r_start); - RCU_MT_BUG_ON(test, mas.last !=3D r_end); + if (mas.index !=3D r_start) { + if (pthread_mutex_trylock(&test->dump) !=3D 0) { + rcu_read_unlock(); + goto quit; + } + printk("start is wrong: %lx (%lu) vs expected %lx (%lu)\n", + mas.index, mas.index, r_start, r_start); + RCU_MT_BUG_ON(test, mas.index !=3D r_start); + } + + if (mas.last !=3D r_end) { + if (pthread_mutex_trylock(&test->dump) !=3D 0) { + rcu_read_unlock(); + goto quit; + } + printk("last is wrong: %lx (%lu) vs expected %lx (%lu)\n", + mas.last, mas.last, r_end, r_end); + RCU_MT_BUG_ON(test, mas.last !=3D r_end); + } =20 if (i =3D=3D reader->flip) { alt =3D xa_mk_value(index + i + RCU_RANGE_COUNT); @@ -34014,7 +34032,8 @@ static void *rcu_reader_fwd(void *ptr) else if (entry =3D=3D alt) toggled =3D true; else { - printk("!!%lu-%lu -> %p not %p or %p\n", mas.index, mas.last, entry, = expected, alt); + printk("!!%lu-%lu -> %p not %p or %p\n", + mas.index, mas.last, entry, expected, alt); RCU_MT_BUG_ON(test, 1); } =20 @@ -34047,9 +34066,11 @@ static void *rcu_reader_fwd(void *ptr) usleep(test->pause); } =20 +quit: rcu_unregister_thread(); return NULL; } + /* RCU reader in decreasing index */ static void *rcu_reader_rev(void *ptr) { @@ -34119,13 +34140,17 @@ static void *rcu_reader_rev(void *ptr) line =3D __LINE__; =20 if (mas.index !=3D r_start) { + if (pthread_mutex_trylock(&test->dump) !=3D 0) { + rcu_read_unlock(); + goto quit; + } + alt =3D xa_mk_value(index + i * 2 + 1 + RCU_RANGE_COUNT); mt_dump(test->mt, mt_dump_dec); - printk("Error: %lu-%lu %p !=3D %lu-%lu %p %p line %d i %d\n", - mas.index, mas.last, entry, - r_start, r_end, expected, alt, - line, i); + printk("Error: %p %lu-%lu %p !=3D %lu-%lu %p %p line %d i %d\n", + mas.node, mas.index, mas.last, entry, + r_start, r_end, expected, alt, line, i); } RCU_MT_BUG_ON(test, mas.index !=3D r_start); RCU_MT_BUG_ON(test, mas.last !=3D r_end); @@ -34180,6 +34205,7 @@ static void *rcu_reader_rev(void *ptr) usleep(test->pause); } =20 +quit: rcu_unregister_thread(); return NULL; } @@ -34329,6 +34355,7 @@ static void rcu_stress(struct maple_tree *mt, bool = forward) test.seen_modified =3D 0; test.thread_count =3D 0; test.start =3D test.stop =3D false; + pthread_mutex_init(&test.dump, NULL); seed =3D time(NULL); srand(seed); for (i =3D 0; i < RCU_RANGE_COUNT; i++) { @@ -34414,6 +34441,7 @@ struct rcu_test_struct { unsigned long removed; /* The index of the removed entry */ unsigned long added; /* The index of the removed entry */ unsigned long toggle; /* The index of the removed entry */ + pthread_mutex_t dump; }; =20 static inline @@ -34506,7 +34534,9 @@ static void *rcu_loop(void *ptr) /* Out of the interesting range */ if (mas.index < test->index || mas.index > test->last) { if (entry !=3D expected) { - printk("%lx - %lx =3D %p not %p\n", + if (pthread_mutex_trylock(&test->dump) !=3D 0) + break; + printk("\nERROR: %lx - %lx =3D %p not %p\n", mas.index, mas.last, entry, expected); } MT_BUG_ON(test->mt, entry !=3D expected); @@ -34854,6 +34884,7 @@ static noinline void __init check_rcu_threaded(stru= ct maple_tree *mt) vals.range_end =3D ULONG_MAX; vals.seen_entry2 =3D 0; vals.seen_entry3 =3D 0; + pthread_mutex_init(&vals.dump, NULL); =20 run_check_rcu(mt, &vals); mtree_destroy(mt); @@ -35250,6 +35281,8 @@ static noinline void __init check_spanning_write(st= ruct maple_tree *mt) { unsigned long i, max =3D 5000; MA_STATE(mas, mt, 1200, 2380); + struct maple_enode *enode; + struct maple_node *pnode; =20 for (i =3D 0; i <=3D max; i++) mtree_test_store_range(mt, i * 10, i * 10 + 5, &i); @@ -35410,6 +35443,128 @@ static noinline void __init check_spanning_write(= struct maple_tree *mt) mas_set_range(&mas, 76, 875); mas_store_gfp(&mas, NULL, GFP_KERNEL); mtree_unlock(mt); + mtree_destroy(mt); + + mt_init_flags(mt, MT_FLAGS_ALLOC_RANGE); + for (i =3D 0; i <=3D max; i++) + mtree_test_store_range(mt, i * 10, i * 10 + 5, &i); + + if (MAPLE_32BIT) + i =3D 49750; /* 0xC25B */ + else + i =3D 49835; /* 0xC2AB */ + + mtree_lock(mt); + /* Store a null across a boundary that ends in a null */ + mas_set(&mas, i); /* 0xC2AB */ + MT_BUG_ON(mt, mas_walk(&mas) =3D=3D NULL); + MT_BUG_ON(mt, mas.end !=3D mas.offset); + MT_BUG_ON(mt, mas_next_range(&mas, ULONG_MAX) !=3D NULL); + mas_set_range(&mas, i, mas.last - 1); + mas_store_gfp(&mas, NULL, GFP_KERNEL); + mt_validate(mt); + + /* Store a null across a boundary that starts and ends in a null */ + mas_set(&mas, 49849); + MT_BUG_ON(mt, mas_walk(&mas) !=3D NULL); + MT_BUG_ON(mt, mas.index !=3D 49846); + mas_set(&mas, 49876); + MT_BUG_ON(mt, mas_walk(&mas) !=3D NULL); + MT_BUG_ON(mt, mas.last !=3D 49879); + mas_set_range(&mas, 49849, 49876); + mas_store_gfp(&mas, NULL, GFP_KERNEL); + /* Results in 49846-49879: (nil) */ + MT_BUG_ON(mt, mas.index !=3D 49846); + MT_BUG_ON(mt, mas.last !=3D 49879); + mt_validate(mt); + + /* Store a null across a boundary that starts and ends next to nulls */ + mas_set(&mas, 49800); + MT_BUG_ON(mt, mas_walk(&mas) =3D=3D NULL); + MT_BUG_ON(mt, mas.index !=3D 49800); + mas_set(&mas, 49815); + MT_BUG_ON(mt, mas_walk(&mas) =3D=3D NULL); + MT_BUG_ON(mt, mas.last !=3D 49815); + mas_set_range(&mas, 49800, 49815); + mas_store_gfp(&mas, NULL, GFP_KERNEL); + /* Results in 49846-49879: (nil) */ + MT_BUG_ON(mt, mas.index !=3D 49796); + MT_BUG_ON(mt, mas.last !=3D 49819); + mt_validate(mt); + + /* Store a value across a boundary that starts and ends in a null */ + mas_set(&mas, 49907); + MT_BUG_ON(mt, mas_walk(&mas) !=3D NULL); + MT_BUG_ON(mt, mas.index !=3D 49906); + mas_set(&mas, 49928); + MT_BUG_ON(mt, mas_walk(&mas) !=3D NULL); + MT_BUG_ON(mt, mas.last !=3D 49929); + mas_set_range(&mas, 49907, 49928); + mas_store_gfp(&mas, check_spanning_write, GFP_KERNEL); + MT_BUG_ON(mt, mas.index !=3D 49907); + MT_BUG_ON(mt, mas.last !=3D 49928); + mt_validate(mt); + + /* Store a value across a node boundary that causes a 3 way split */ + + if (MAPLE_32BIT) + i =3D 49590; /* 0xc1b6 */ + else + i =3D 49670; /* 0xC206 */ + + mas_set(&mas, i); + MT_BUG_ON(mt, mas_walk(&mas) =3D=3D NULL); + MT_BUG_ON(mt, mas.index !=3D i); + MT_BUG_ON(mt, mas.end !=3D mt_slot_count(mas.node) - 1); + enode =3D mas.node; + MT_BUG_ON(mt, mas_next_range(&mas, ULONG_MAX) !=3D NULL); + MT_BUG_ON(mt, mas.index !=3D i + 6); + MT_BUG_ON(mt, mas.end !=3D mt_slot_count(mas.node) - 1); + MT_BUG_ON(mt, enode =3D=3D mas.node); + mas_set_range(&mas, i + 2, i + 7); + mas_store_gfp(&mas, check_spanning_write, GFP_KERNEL); + MT_BUG_ON(mt, mas.index !=3D i + 2); + MT_BUG_ON(mt, mas.last !=3D i + 7); + mt_validate(mt); + + /* 2 levels of basically the same testing */ + + if (MAPLE_32BIT) { + /* 32bit needs a bit more work to fill the nodes. + * The two parent nodes need to be filled (they have one space + * vacant) without causing a split at the store locations (or + * the siblings). + */ + i =3D 44426; + mas_set(&mas, i); + mas_store_gfp(&mas, check_spanning_write, GFP_KERNEL); + i =3D 45126; + mas_set(&mas, i); + mas_store_gfp(&mas, check_spanning_write, GFP_KERNEL); + i =3D 44790; + } else { + /* 48950 - 48955 =3D> ptr, 48956 - 48959 =3D> NULL */ + i =3D 48950; + + } + mas_set(&mas, i); + MT_BUG_ON(mt, mas_walk(&mas) =3D=3D NULL); + MT_BUG_ON(mt, mas.index !=3D i); + MT_BUG_ON(mt, mas.end !=3D mt_slot_count(mas.node) - 1); + enode =3D mas.node; + pnode =3D mte_parent(enode); + MT_BUG_ON(mt, mas_next_range(&mas, ULONG_MAX) !=3D NULL); + MT_BUG_ON(mt, mas.index !=3D i + 6); + MT_BUG_ON(mt, mas.end !=3D mt_slot_count(mas.node) - 1); + MT_BUG_ON(mt, enode =3D=3D mas.node); + MT_BUG_ON(mt, pnode =3D=3D mte_parent(mas.node)); + mas_set_range(&mas, i + 2, i + 8); + mas_store_gfp(&mas, NULL, GFP_KERNEL); + mt_validate(mt); + + mtree_unlock(mt); + mtree_destroy(mt); + rcu_barrier(); } /* End of spanning write testing */ =20 @@ -36029,7 +36184,6 @@ static inline int check_vma_modification(struct map= le_tree *mt) return 0; } =20 - void farmer_tests(void) { struct maple_node *node; --=20 2.47.3 From nobody Sun Feb 8 02:41:40 2026 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) (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 AF8FD3876AF for ; Fri, 30 Jan 2026 21:00:59 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.165.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769806863; cv=fail; b=JvADthVC8aHrgJ/QEdxMeKuHK2s7XlLQF187UvCqDgaApJzAajCWOc3tGzPI2iaOvjJvmVEtRhXjdqW6Tt+7YMaTvWIkfRQwUKqce5u2kf1P8Kh7eg2HB9+L1H6fyO/L/EYOuxFAljteBy4EYpCu+0VZPCdyACMf9ByN4N+U9vI= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769806863; c=relaxed/simple; bh=J1SgX65NCbyG7WM6crTogXqltdgndXTXjQvDzSbwDqs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=oMmeofzr0cxJAPDp8epsMBbMcDyYHrhrq66Yc/+FAH0Jvl5/pCI6Q0vHZPPGMDh2JHD8g11GI6LQ+DEwny4mHe2bV74kbYubHuq54rknW/BNnyj5v8WukXASZu5kRs3ojGPRQHLurWH14qBKSF14LxQ1Hpu1biUiIfwwtlx5omI= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=qOUksuf9; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=m/z9ctXY; arc=fail smtp.client-ip=205.220.165.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="qOUksuf9"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="m/z9ctXY" Received: from pps.filterd (m0246629.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 60UKDSfM3732752; Fri, 30 Jan 2026 21:00:35 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=tgkE4OW0KG6KU/HEahv4pxM8DZ5R+yPd67+MplgFSU4=; b= qOUksuf9lmtXUSXrs6ZQYE2/esFSZjosC4B0hFpPodb4yk+fuHyzqi2Q+pXxbaLG /iDHaaeoX6ocwWLHNIMYTOg4ndoFt2POFYYNnPnz8USwF694EIXUgozCaLHkPE+o c10LTzDVAElqQLdonBzCnGcWIg2u1xGRZLSltCASBV/0pdPShAK/mjev86BJ2rWF f7lFoIIP3C1C+wQW+a+hD9NghSuwu2GIvW2EmRajvyiQIUQX1jHdWmKq7h8yZ0j4 cEGI6eTgjiFYO8SAaDh0INM3tsGMnVW7a1eyC5dR1eMcLnl0lU/UCZK2CPHRCe0k b5NuPvfxGwL42hplyLp/+g== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4by5t6dj6j-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 30 Jan 2026 21:00:35 +0000 (GMT) Received: from pps.filterd (phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 60UIkbKG032726; Fri, 30 Jan 2026 21:00:34 GMT Received: from cy7pr03cu001.outbound.protection.outlook.com (mail-westcentralusazon11010008.outbound.protection.outlook.com [40.93.198.8]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 4bvmhe4g0t-3 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 30 Jan 2026 21:00:34 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ldYg38l5Fv96vrYO3MgZVyY/AJPRmc34jF3h+6SZ5IIC56pQBRBLk7LZgrgOqFh0JkIVH88jrEDFOEwAUHqrNx2n0BJOUF/nScxiTbFY50cuEOxnc2vn2hFLJUJcYFISt7eIMcLX1yYvJQcY4nGASUtFXRCNzD3DwCU0jSqmgSVuijUOamz3I/OC43YJ7toW/1VxgLbBGv5GmV8A9qoxOf2wA7O3435gM4Ja9b7ryBTmYdAPzs9FDqYufOc77AerLJZRCjF5eHdqoU++fqa30Npk/lpGE1dt7JoitE7mekIMyTX+xbuodcZSBjpcuBB8U5wp9YL7Uc3S2wrSVOuRFg== 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=tgkE4OW0KG6KU/HEahv4pxM8DZ5R+yPd67+MplgFSU4=; b=iN+dvJkNST5gmSducpAk0vWYL9rElOOmNm/LzCN2PB4y7i7aAg6ieIDd5FkJ12he6vCCJdbtfpUrvKuyyQWOoErc6uRBgtIv3iJ2FoF/ODtdf9l/T4GIZ9OA9Q9arhyKWuSqQyw1J5ePQ3SsZJEKVJ5LfxYry25sWbnvL3ZwEgLMhdVtooWIYJHJbaFPMDVuamn9EUC5afJhi8wSMd2shCbOk21dg/CAtIrcoS0v6srkMH+nHHwYAp2JStGGRslAm7eGdCbWdEsorsEtEJnb/diFw7N69hJLX7szJGD66n3eRzjuyfR3u8A6uTP5DHbybQUnnMuHN0MZy+CKrLn1cw== 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=tgkE4OW0KG6KU/HEahv4pxM8DZ5R+yPd67+MplgFSU4=; b=m/z9ctXYK2VWu7NGeDcEPTD5wG8+1s4ycMwBgSpdVxq22Vy7DcSJpACwQaq+sYW9WtX9HKKeViNIV5c5z1wO5JjGJM8OqXqYKq91Qn1kVtokJ+xi8ub1Hflt+cmrY0fetNpydZqVbCe4FWAm0EPKVXssEreWMdYPMRJuUMx39+8= Received: from PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) by SA6PR10MB8061.namprd10.prod.outlook.com (2603:10b6:806:43a::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.11; Fri, 30 Jan 2026 21:00:29 +0000 Received: from PH0PR10MB5777.namprd10.prod.outlook.com ([fe80::4b84:e58d:c708:c8ce]) by PH0PR10MB5777.namprd10.prod.outlook.com ([fe80::4b84:e58d:c708:c8ce%4]) with mapi id 15.20.9564.007; Fri, 30 Jan 2026 21:00:29 +0000 From: "Liam R. Howlett" To: Andrew Morton Cc: maple-tree@lists.infradead.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Suren Baghdasaryan , Matthew Wilcox , Sidhartha Kumar , Vlastimil Babka , Alice Ryhl , Kuninori Morimoto , Geert Uytterhoeven , Arnd Bergmann , Christian Kujau , SeongJae Park , "Liam R. Howlett" Subject: [PATCH v3 13/30] maple_tree: Inline mas_spanning_rebalance_loop() into mas_wr_spanning_rebalance() Date: Fri, 30 Jan 2026 15:59:18 -0500 Message-ID: <20260130205935.2559335-14-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260130205935.2559335-1-Liam.Howlett@oracle.com> References: <20260130205935.2559335-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4P288CA0038.CANP288.PROD.OUTLOOK.COM (2603:10b6:b01:d3::16) To PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) 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: PH0PR10MB5777:EE_|SA6PR10MB8061:EE_ X-MS-Office365-Filtering-Correlation-Id: 761fa455-e1b7-46ae-3bce-08de604296d7 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|1800799024|366016; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?sEDAB9ilB7rbXdUWUrnlldvrKn5CQDLmjk/rac3GRrfmKr8oS+m9kB7G7Bkc?= =?us-ascii?Q?yDrPucEB4qNQYpAW6MdeDfbZWQ0N7h+PzskCYzrb4eLnB7cg5vLtjs1BUu2b?= =?us-ascii?Q?bwKoawM5e47gdUH7iBUci3r1b0REmkA3dwAkAm9yd51maFdVCGdR+8yABtuL?= =?us-ascii?Q?DrQptCjMLF1W7CEtaya/Xw3FBW3kgx5T/g/qdpeziJUHtI5j+sSEXAMlWX4i?= =?us-ascii?Q?k9wyheR2mNBjekvMdj+v+BLyMgJigiBBhL0VGszLbiyxql5mubUObrUkB3t7?= =?us-ascii?Q?z3YJea/XB2qk7EbukD/PqbnlofNXjE/2wKbjSx4ScOHAVl0yabJY0jiQS3uq?= =?us-ascii?Q?ocHfOn2fXgRgG7gJx8Np2nij9xuOHqRH9uRRxDkJcCt9ZeVseGTzLBl+4xeh?= =?us-ascii?Q?9bS/a0is1VR+PLyGRIcwTvvB9E5qFR1HOv7+nWd19vfDbDPKughv60wlCuzu?= =?us-ascii?Q?wwV2bXuXb4lev0VPghRatQFD0pH0FtNzITSgkzveGaMlkl8e479/G3RZ8XKJ?= =?us-ascii?Q?lHSkf2Kt3RJZ43rQ5vHIffMiu1BF7laS2B9I4HFwoU9DghDLKo7d6Sc2bYRU?= =?us-ascii?Q?BrIyBwSnFTWDfHxmKw6rMsSZjbO7/TrJ46nnN0dT5MPLgJCkajmWvxAOkOne?= =?us-ascii?Q?Bv0LyXr/uyxheafNkIVRif2wVhyixI1obTirUvQH3s3QVs4Z16mgfm/hZ7hi?= =?us-ascii?Q?z0dJL1MvkcmWAbKYFRyren26mQ6IEM3UV/FTL2qBA9pOsuAFCMxCaXpo5bFG?= =?us-ascii?Q?YoL1LqRL3qd5U2NFZyZH4h21dRYZotnUbLDXPI5rYRSC2qSuTuPlM6KW//ip?= =?us-ascii?Q?MyVXBKOtKuNFL+jbLvN1QEqLFYx/CynJuWxbMwRTY/tN6GCzkaDrcJWzNjJj?= =?us-ascii?Q?THiWN+thN55uuaTfs5RjJl9wvgu519DlsmJvFdqGaraJ4gfFDAYO9y1v2hdo?= =?us-ascii?Q?g0JvOF/G1G6pAmmHjiE0HI4+rQt+ySTQ5hE/IcyrpHRB5kEcveZUX3oe14RK?= =?us-ascii?Q?9lDOUxGPjMppQ3tG4DTjrAuGDxMKDiaSkA9+82aDyfd4Fd0EnT/z7p9/O9Cw?= =?us-ascii?Q?iwJ17wRsUmI40PgxZyAXqNU46iDxkE3Bm8K2lkIb9XazJ9P1tdupAN21J+hv?= =?us-ascii?Q?WmIJmX+imzab9woh+PfF2cYPSNjM0ddGY+RJqzTnKrIFrBqN2W/EkIllJKM4?= =?us-ascii?Q?EPHzKHbOshaN6iLUvHsgF4hrHHZdoNDfUnsdw8W3TPrhddvZe96+d2e2Vbpr?= =?us-ascii?Q?6oHCo6PjRdvmTlYn5S7Fi+XjQgUdvmA7zHxxb03+glYfLViaXyjFvwxCffk1?= =?us-ascii?Q?+arIZw7XaQ42rpP6fo0ARk3MUY9cS9KohQJ8pUlSNQd2XNJrfagl8wjZZiCb?= =?us-ascii?Q?6IFnKpV29Kp+xI9s44tY+z0X9ml6qiAbitd786IreySwDU1VPfsBUiC4Xw/L?= =?us-ascii?Q?xlAT7xILfvVoiTkZ5fBcLzUlQlgH3AW443zsCNmFb8JBOY+efHFxnwYWs300?= =?us-ascii?Q?zvecE3eK4G3YYXSZ3Yz0sy3ol8BC9j8I2yIBoVKY+WFn7hivqnffMoItDaDz?= =?us-ascii?Q?PTJSYWH8jsJIUEcydoA=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH0PR10MB5777.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(1800799024)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?5dQ46g0PwRHa+q1Sg29zOSO+8ulbmMNlvawac5ewh9PWTLZ1ZvYTchbfRFE6?= =?us-ascii?Q?pgs8fjzJJQ7wb4kashqFy/P/XpMdYqh6NNlVMfYghaV4RgCKXhFZjB1L41QD?= =?us-ascii?Q?u6dpGgaIkhoA2+7H3W2Xvcx99QHkyOYHQS3gFjaXGogydKI+AdJlG8p0vLoV?= =?us-ascii?Q?lxQAJYZf9xSMZ0ImDTDcs6UaIyMVHA2oT4mF2u/7jUBxQFIOz6N4GP4YmLM7?= =?us-ascii?Q?ooray+KJSQqLN6+QxfzIR8wnp0XdRVns2D3pNyax6Vx/6dhhsX8Ftnr7HgLY?= =?us-ascii?Q?bMpBWueyNJQ/IxEd9Ij3AI+oApc3bWn9vXugZ/kjXVSbppIBHv6j4s4q1BVm?= =?us-ascii?Q?MVQ68pt4zm5xSJMZOOUB8R07Q79QPmr3ls4eI1kh+i6FOMoMYjGTtPK5zc66?= =?us-ascii?Q?+Pf0A72JFbSGEjtealqrKSP9qBKRzRBoAToYpLo2RCpa4Y2bys0atR8Qb4iE?= =?us-ascii?Q?IMR30kVpI2D+smanpV611zo3RzEdlXOMe9DJIv/DTzBLNQxOi1r8OrdB3WrR?= =?us-ascii?Q?axJuBYWdMgqf6la23hjqngE6ReYXUWlZQUebdZPvYw6YXrO4GdqmBpZsN7mb?= =?us-ascii?Q?w8vABtu/187K+2726aXGxfb5AEBf0okJIgVKZbJF/MFAS30DNk2rh3AVOHNK?= =?us-ascii?Q?4/9erlg4MgJ9Kg+q7oeqV5HzLFbUip5P4OJmCskDo1sP7QtY3rheMULWd+zN?= =?us-ascii?Q?Dtg4FGm45jpsW2yFEMI0M1iCiRbTA2xhRFB9Jd829aRiiMvPQ7m90mnA8pxh?= =?us-ascii?Q?6SgvfukAd7fmQgzNIviPTXZDCcrlJ+DQIRoCM6oUDVMbIRWq09++THWxdCRB?= =?us-ascii?Q?Jlz04QQWwB7MtnH9WDr1EV6vigIq2LaTXL7gtZTfdtSZaVvv9SzoyRBbwiPg?= =?us-ascii?Q?qa43i/yJp4uKMguzTepCarXMroT6m4nKiFQIdEgflur7MpY8oQpbAWVYCnI4?= =?us-ascii?Q?NL17DXJw/A+bZE+ALE3ypmuOoGv4ymPNzMz1n8pZEbtcBd33UJ1NcpCsoR55?= =?us-ascii?Q?N0wiMEMxcRC8tGppu4ys0lFavcy6tYbZxy78mUKT2PZdQgIxvkmUKkW6FLjj?= =?us-ascii?Q?Rm2Hkxuemsv1EbnYhvRATqrylqgkvKXD/UP2zWJ0GXilltIZwuouUgC0lJrI?= =?us-ascii?Q?4T0JIUXoZynxNo1YE36xkYfWxdtiV2goaRq4Nbpe2MBhBRJ1jgfLxL0Tfo90?= =?us-ascii?Q?3gGhm+DlDuUePkMwMXWbkSMVmtAyXb7d1LwJGqeAbB8YabbAQKT+2YlAhQ04?= =?us-ascii?Q?6lU/w3uV2m7qO/hYkl8N55yTAjoceXs5noBx9JmF/iP+/lfSbOCNqfpyGkam?= =?us-ascii?Q?10kMmhUjnolCIFfRizxLAKBH+JrnMlJ+5P9OV3eRW8BLalV1kcfBWvZDcRB1?= =?us-ascii?Q?F2gOPuw7UkDtqjj+t9IuQctf4SMZ/42QFTGRTRYAZwyQdkROnMDKUGqBOVI/?= =?us-ascii?Q?4zbkrO8McljjQt097DGgpupfbtI6XOJa6DjpqBJyGohHMCotwct0KhNpXTbY?= =?us-ascii?Q?OhlbLXpqB9Pbl9/aP3tKpBnFOGCAndTK609qMUiwc2nbqt1UeODUpe85r4zE?= =?us-ascii?Q?rA9cfoPJyY9Fs89eF6g6+S51kIuy2c6GdkaX1j3LTxbWne5gHLmLO1QQp2CG?= =?us-ascii?Q?uUZCnnowtMj5SWlvbHSZfSl/NAVMtvzeTApyfqla5XVILAW5pIu07uSm3me1?= =?us-ascii?Q?Zl0Z9JRgGpITRoYcgp/stiYALuzhgH4Zp2orddtnouL9FftquaFYsDRWOF6z?= =?us-ascii?Q?N2lSzOK2QA=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: cuuxvump5y7DOhP0gsPfJeoXz9a9tE1CAVZkS1hRcByPZ0jP7zoV7ypV8NYj6+F6o9ziZSrtKieM4D3yC1fJjPtz1ElecMMXHZxnv5hgfghomMyyHRzuojrIO//l1GLBkcJdsuihEkni8gkl8oEW8kJhWqkpd64QLWVaFMpHTOJlzZZUkeaT3nGjCOHffqxTrI3zoLJIxeQqAIh6jMj5PBvg5Em3FRDLMhwe4XOcqi4NLt6VudlaZlgSOy6rohqXb83puFk/Ctor1brx/sAMh2D1H7DHQcN66AiyOo2hixqpOYGZrXeTMQte2hUkr3BNI0EzHKIMiuX72npOhXJEJj8DU3H6aQYoyexLfAPhzBK55UbqHkrRhrS0NPbJDR2Db+078MrJ28QBrJXgvUPSh2eD/AiHXUGTAh0mpue6PB4nMo6Wc3Kg8pvipjewhKzqTJsdOd+7ViVa/u4hufn76D8hXkUHW8sPQBSHMKyemB18MOZolDzsqmsT6ZQga9ZWTlnKCVvVoj+kk5JjIPPJsgWE04W6m3/0+pYuxBJHssVqPmXj68A3OZDMeey/eg21gGJpIrx03guiHqvIzocWbEcMavPt0KOVggnmEKZsM60= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 761fa455-e1b7-46ae-3bce-08de604296d7 X-MS-Exchange-CrossTenant-AuthSource: PH0PR10MB5777.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Jan 2026 21:00:24.9013 (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: w0VkgcORmyALRFimJuKo/xBSpirjjlHxpozZ9KdDXRGwNmOKmopcd7hHNIjtCn9CKf4ZW/Yi9hURDdPXPf4/7g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA6PR10MB8061 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-01-30_03,2026-01-30_04,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 bulkscore=0 mlxlogscore=999 adultscore=0 malwarescore=0 spamscore=0 phishscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2601150000 definitions=main-2601300172 X-Proofpoint-ORIG-GUID: hUWun7F-Tng_NVpukEmERx6OsRlvbVtA X-Proofpoint-GUID: hUWun7F-Tng_NVpukEmERx6OsRlvbVtA X-Authority-Analysis: v=2.4 cv=IIcPywvG c=1 sm=1 tr=0 ts=697d1bf3 b=1 cx=c_pps a=WeWmnZmh0fydH62SvGsd2A==:117 a=WeWmnZmh0fydH62SvGsd2A==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=vUbySO9Y5rIA:10 a=GoEa3M9JfhUA:10 a=VkNPw1HP01LnGYTKEx00:22 a=yPCof4ZbAAAA:8 a=SVrgk92_VGy3w6ovwu8A:9 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTMwMDE3MyBTYWx0ZWRfX8MEiLZBxqmkr d14JxkKWRx+SsVjRjC0t9eRhq3hEmH5oj7+R1DYLZHTRPlpI5px3djdDZYL5oEzi1M+3TDYy8J0 uEMG4hLs2GZ1DDjhQ/dn8hwFEVRC1Qxu7BGtkvP3zQJeIFD0+fgBs0A9jYyA6MMaim2EbER4CbC fNZXqF1qap3vhKT7H9xK3OmceQWtdcedMImjOTw0n+fSCD3mQmVYQO2SmtwfN0j2xGPxvnFHxUE 421/uEPF4uNXDqoGYDrJsFW9xEAlXmKk3Tyvn4tTEO1o6gBo+Jg70ZOt12JKzdRMawWD+X9h11R fisScszUc2xAVdJQk1bfL++iLFgYqgBt7R+NttWHWA4wktRbb52wZAJ/7LPr3PDVbMR2XzsZtdV bug3MMzlMZIEDJ0dQKHSH/KXzt9Wv23NUq17KPnO9MiDBtKV11kdx8s8FD3M+GCMKyL2f9WiNmw vnFBOf2MNnko7oaNzbQ== Content-Type: text/plain; charset="utf-8" Just copy the code and replace count with height. This is done to avoid affecting other code paths into mas_spanning_rebalance_loop() for the next change. No functional change intended. Signed-off-by: Liam R. Howlett --- lib/maple_tree.c | 108 ++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 107 insertions(+), 1 deletion(-) diff --git a/lib/maple_tree.c b/lib/maple_tree.c index 554fdffd6c5b9..a9b7e398c7dbd 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -2862,6 +2862,13 @@ static void mas_spanning_rebalance(struct ma_state *= mas, static noinline void mas_wr_spanning_rebalance(struct ma_state *mas, struct ma_wr_state *l_wr_mas, struct ma_wr_state *r_wr_mas) { + + unsigned char split, mid_split; + unsigned char slot =3D 0; + unsigned char new_height =3D 0; /* used if node is a new root */ + struct maple_enode *left =3D NULL, *middle =3D NULL, *right =3D NULL; + struct maple_enode *old_enode; + struct maple_subtree_state mast; struct maple_big_node b_node; struct maple_copy cp; @@ -2917,7 +2924,106 @@ static noinline void mas_wr_spanning_rebalance(stru= ct ma_state *mas, mast_spanning_rebalance(&mast); =20 height =3D mas_mt_height(mas) + 1; - mas_spanning_rebalance_loop(mas, &mast, height); + + /* + * Each level of the tree is examined and balanced, pushing data to the l= eft or + * right, or rebalancing against left or right nodes is employed to avoid + * rippling up the tree to limit the amount of churn. Once a new sub-sec= tion of + * the tree is created, there may be a mix of new and old nodes. The old= nodes + * will have the incorrect parent pointers and currently be in two trees:= the + * original tree and the partially new tree. To remedy the parent pointe= rs in + * the old tree, the new data is swapped into the active tree and a walk = down + * the tree is performed and the parent pointers are updated. + * See mas_topiary_replace() for more information. + */ + while (height--) { + mast.bn->b_end--; + mast.bn->type =3D mte_node_type(mast.orig_l->node); + split =3D mas_mab_to_node(mas, mast.bn, &left, &right, &middle, + &mid_split); + mast_set_split_parents(&mast, left, middle, right, split, + mid_split); + mast_cp_to_nodes(&mast, left, middle, right, split, mid_split); + new_height++; + + /* + * Copy data from next level in the tree to mast.bn from next + * iteration + */ + memset(mast.bn, 0, sizeof(struct maple_big_node)); + mast.bn->type =3D mte_node_type(left); + + /* Root already stored in l->node. */ + if (mas_is_root_limits(mast.l)) + goto new_root; + + mast_ascend(&mast); + mast_combine_cp_left(&mast); + mast.l->offset =3D mast.bn->b_end; + mab_set_b_end(mast.bn, mast.l, left); + mab_set_b_end(mast.bn, mast.m, middle); + mab_set_b_end(mast.bn, mast.r, right); + + /* Copy anything necessary out of the right node. */ + mast_combine_cp_right(&mast); + mast.orig_l->last =3D mast.orig_l->max; + + if (mast_sufficient(&mast)) { + if (mast_overflow(&mast)) + continue; + + if (mast.orig_l->node =3D=3D mast.orig_r->node) { + /* + * The data in b_node should be stored in one + * node and in the tree + */ + slot =3D mast.l->offset; + break; + } + + continue; + } + + /* May be a new root stored in mast.bn */ + if (mas_is_root_limits(mast.orig_l)) + break; + + mast_spanning_rebalance(&mast); + + /* rebalancing from other nodes may require another loop. */ + if (!height) + height++; + } + + mast.l->node =3D mt_mk_node(ma_mnode_ptr(mas_pop_node(mas)), + mte_node_type(mast.orig_l->node)); + + mab_mas_cp(mast.bn, 0, mt_slots[mast.bn->type] - 1, mast.l, true); + new_height++; + mas_set_parent(mas, left, mast.l->node, slot); + if (middle) + mas_set_parent(mas, middle, mast.l->node, ++slot); + + if (right) + mas_set_parent(mas, right, mast.l->node, ++slot); + + if (mas_is_root_limits(mast.l)) { +new_root: + mas_mn(mast.l)->parent =3D ma_parent_ptr(mas_tree_parent(mas)); + while (!mte_is_root(mast.orig_l->node)) + mast_ascend(&mast); + } else { + mas_mn(mast.l)->parent =3D mas_mn(mast.orig_l)->parent; + } + + old_enode =3D mast.orig_l->node; + mas->depth =3D mast.l->depth; + mas->node =3D mast.l->node; + mas->min =3D mast.l->min; + mas->max =3D mast.l->max; + mas->offset =3D mast.l->offset; + mas_wmb_replace(mas, old_enode, new_height); + mtree_range_walk(mas); } /* * mas_rebalance() - Rebalance a given node. --=20 2.47.3 From nobody Sun Feb 8 02:41:40 2026 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) (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 DBBFD389462 for ; Fri, 30 Jan 2026 21:01:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.177.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769806889; cv=fail; b=Zw/MNW26/Ss8rL9S7jMw+lKUC4DZxzrPfmgQMG77Ekmqzzjt4Xdmr595ntilLt9SCsfwLP3cmnXBwsR3GWsI/2JVo+BVKcjlWo1byLB+7TCvuLmx1GcsHvIQ/S9zTZ0fe6y2xRxQM34t9MBU7ZC7CPl16QNZHbNrTklrWmUjh7w= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769806889; c=relaxed/simple; bh=O6jv8fHga4G5+7Qcr6KFSPjhCxQYkqw4KWg1GKDMn+c=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=QwN1BJBQn/TbM3qKlt4LSxlPlNJuOwoYqIJ4JXZj97DUZ/7jUgBvRmC9FPetMRZTfLrt93z7gF0QCrG3XNY/NFW3mV60IbgH9+XYJTDy0VLU5ZEswK0eWoHNvxM/Eur0Xx5aX+LUuBYDQvYL8sfLQKLGGoC6HGe7vPTZqnWMw7c= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=prgOe0az; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=k1EJFnM2; arc=fail smtp.client-ip=205.220.177.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="prgOe0az"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="k1EJFnM2" Received: from pps.filterd (m0333520.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 60UKEWS1610873; Fri, 30 Jan 2026 21:00:37 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=v2fiLpzpBEZoZ4g87VtBK34J8dF2qLs+qFx6Rw8FYEU=; b= prgOe0azWEgN/a+ctz9PeZWdL1h6IvCEqyhlxcMt69mCaB/+NLuXuf8x8ieTcQst LdZmCubqh7R0C6o5A1wRczVwJIV7vIeltOGvjJ/M3Z6vq8uEn0KfHf4ehi78bjUx h0bdInHk46McMILyRX7uNl8UVCZ2up+KAPf49yHoe6fwTpsdDaDKLmD+gh91jTJq +X2yCUMv9eIGYNLYAzRWy/RbheAUygSmAMcncjuxFM4E8Rzbt8T9S45n9cPjmp2F 41JhaLE8DXtQrvrK/i6Hr0fH6r5BtXC6c3WLakKmmfR92aDZiUkZGJ0vA3Ysx4XV liaiLFYlqHvFo5BSrojU/A== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4c10d88bnu-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 30 Jan 2026 21:00:36 +0000 (GMT) Received: from pps.filterd (phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 60UIkbKI032726; Fri, 30 Jan 2026 21:00:35 GMT Received: from cy7pr03cu001.outbound.protection.outlook.com (mail-westcentralusazon11010008.outbound.protection.outlook.com [40.93.198.8]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 4bvmhe4g0t-4 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 30 Jan 2026 21:00:35 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=OCFWIkeDyLpCZyDYpModd/WDQNTxp6wyXICdi0Kuf2C9zMTNpOIc/HdxojQLu422SdruoPf1ql8MpLaZYiptpwkvcPotHp7vOHhIMhZDfhXVQlPw78PIVIRU3FFu6uSaRg52zT3jnCUSEZ1NJcIG/Mwbc7wxG1nJHJqUiBC0QVIYY0kQYRnqRj1MwrCOlkfhPJujpue9AQJCxy2rC6D8iIk0dvz3m/tOfA8EiUBka0gbz2/KxGvMx6FFiuWNRUyu71WzI+G0WG/QPoIjRZGWkPk8MnWjXZ2pZd6XYjdrypD9xUsrPrTQehES9Pm39fsJLIXupXA0HbOlqJztqCm/JQ== 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=v2fiLpzpBEZoZ4g87VtBK34J8dF2qLs+qFx6Rw8FYEU=; b=hAcdMJniej5oorHg2uYp8T8MTHtEKzrnQ14RQBJ+2cRIiNVBXqr+XX2qdGpA+o3iX827B+qBl/MRPxFJfAcP/4Qz29yooeCi0ED2yxPN5awQhLhfi5YbYYHWGIWrUL2CSSVqiC+miDUzjg9Lbpfp5+RIV4eWlf8qAh0t0UwcRYUmPCXJZNZvwHJhz5auolmtl3puNteC94WlLHi9JCGsQCI8JpO2x3HzjGrxZJsTYqf5UCsM00XyesfiLYcXuOv/tW7qA4cPHq8bKN1CFSf67AQWej8QqAOon1NBas9day5f0YB8F01GMWl3MldEBtmAzR3k/tMlVQm9Qnw+W+gUuA== 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=v2fiLpzpBEZoZ4g87VtBK34J8dF2qLs+qFx6Rw8FYEU=; b=k1EJFnM2xB5/EIoTJ6TwJMsiZ50Je/Hob6NXRqFj0r3rf72CIzxxx5tjPQo9caf5rpuDP5+iDjC05jF6c3OLkOcRgx/9OEJM6pqJET/cIkBc94oxy8TzkBOybzedCqEoDYBi3A3w5LVsYx1DRKsfRQViyLmTtKFa4f4p1L+qcxQ= Received: from PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) by SA6PR10MB8061.namprd10.prod.outlook.com (2603:10b6:806:43a::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.11; Fri, 30 Jan 2026 21:00:30 +0000 Received: from PH0PR10MB5777.namprd10.prod.outlook.com ([fe80::4b84:e58d:c708:c8ce]) by PH0PR10MB5777.namprd10.prod.outlook.com ([fe80::4b84:e58d:c708:c8ce%4]) with mapi id 15.20.9564.007; Fri, 30 Jan 2026 21:00:30 +0000 From: "Liam R. Howlett" To: Andrew Morton Cc: maple-tree@lists.infradead.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Suren Baghdasaryan , Matthew Wilcox , Sidhartha Kumar , Vlastimil Babka , Alice Ryhl , Kuninori Morimoto , Geert Uytterhoeven , Arnd Bergmann , Christian Kujau , SeongJae Park , "Liam R. Howlett" Subject: [PATCH v3 14/30] maple_tree: Change initial big node setup in mas_wr_spanning_rebalance() Date: Fri, 30 Jan 2026 15:59:19 -0500 Message-ID: <20260130205935.2559335-15-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260130205935.2559335-1-Liam.Howlett@oracle.com> References: <20260130205935.2559335-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4P288CA0092.CANP288.PROD.OUTLOOK.COM (2603:10b6:b01:d0::27) To PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) 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: PH0PR10MB5777:EE_|SA6PR10MB8061:EE_ X-MS-Office365-Filtering-Correlation-Id: 2791a2de-12ad-4377-b9cb-08de60429844 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|1800799024|366016; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?Wv2gFkl57tgnzleaYsbxrbzo9ExSJZuakQBI/68/btDRUsu1FCfmbPfTnoHr?= =?us-ascii?Q?Ik1QWJvJ/QL7gFW9PkYFxrd+tFMjw/TMltbuR5JFi8Lbh4jBu8rInEPfp6N6?= =?us-ascii?Q?i3SJRhDYeLa2bjFLq2aN/pdAhmwoaoLdywVl31bCWDCh5fRLpFSKVa/FGmsp?= =?us-ascii?Q?3ilrNn36+jPn09rCi+kuBtZHEafySwE13ZE3IruswKRGXQxpONbcas3XIp2I?= =?us-ascii?Q?Djm6svFktdTzZfAjxYD8B51chpatuSec/PNXBiuAfz7kL49ltQvERU2eI5EI?= =?us-ascii?Q?13zURUDBa+ed1ZtClTHxAVlksl8eovLW/JpZjKVZ4ua/SC+CCNwA84tibXmS?= =?us-ascii?Q?B4learv/xjrpTgR2zkSaKaQOE46XHu2B/iTh4Z3SyETp3pgfpweOGvbaSeiE?= =?us-ascii?Q?ZmoFl7yr3v87ytcqQ5g16nLoqTjLoZL9qR0ZIUL9nUq9aC+lNgKgCKb75vtL?= =?us-ascii?Q?HBdKzbV9no+yxqLbPS1uT8hvaWP44Dn1pZThuA6kxxanaEMg1MRA4iAdJmcm?= =?us-ascii?Q?6jHbt6gPPVzphg7GX6YL8QUO9Woah7F9aRjySuB4v18HoYzM/apZhFybfn8h?= =?us-ascii?Q?gx7N3mCDSP4XG3gErKbLiv2e/n+Bhg1OKDTBXFHEnOFpLnd5Ae69Wn4ld7oX?= =?us-ascii?Q?2KHmno+VnYAnm/VSqbkMCqqXS2iEu8VKVAWwl8ByHaZ+8pbYjGykLNs8H6xq?= =?us-ascii?Q?HWcS70NxUZAZNVxVZz0gcfAbGntCSjhqTUjxDNSG1CjZBw/B9WTongTOeVp0?= =?us-ascii?Q?0USZxJOX9p7PhZkr2wjntgXqrbYvpwPsFfvb3yzDlHHzRjFhxlefb5B056Vx?= =?us-ascii?Q?dx056lZxgRBJ8d8Z7qd7j8WR1S5pPnNpY2qFDF2ASwa7ShUHvOh46YV3IfUo?= =?us-ascii?Q?fTcqlk5R03sv75OsaYQDBJNZ8lR+UCxoqVWfhgOZ9E39hBqsTp1+/56/+u/Y?= =?us-ascii?Q?qMM0I0nuS+OQOBWIKsVsmZqiItR3Bh0rqxeubtoqOJD470zzAwyn1Z8wCZWj?= =?us-ascii?Q?C7GCjTsoaCq0SLe0V7iREQ1XHKEDvYqoiIsUtfBAdM8xoyNczO0MZvTlk7h6?= =?us-ascii?Q?7UogMhVVuNOurfKOo52X2IKFIm8vBsFC11UPOME8MBUxDzN6iecXtwhTzpp8?= =?us-ascii?Q?f7M9U/YQ2EvaXZGUP1w07TuAFSlQkkNAlAj2qzQKiYtwgYK+FvP3NG0BdDMo?= =?us-ascii?Q?Q9KQ3uQDa3RCeFYtFvnyue5/MuA07GZfok2p9XQuo3bExmNeWg3mHJqS5HMo?= =?us-ascii?Q?C8/zJWKKfvM1bDAxm+JOxNuy6dOvulfbOTNozfNGkQoIacdCeeMR7t13oZAg?= =?us-ascii?Q?0IHbd6Ld2F8tcDe/jPf7EDCdbPPwrKQlChW/Jy93nmbCCQsCuZZ7SBfiQ8I3?= =?us-ascii?Q?G7spJwGu32e1LJR4tQHQBefiAtH1UQhFXeHq7wB46ID7iDnptpla3ODUCB3e?= =?us-ascii?Q?GytlSLZDnzInFWxS2fMtr0kxKaCxIPHhcpMrhyQdw3DupYDherlaJhJNuQVw?= =?us-ascii?Q?F+6v91uV+2Iox/3M+UlTRHXByXugBkMM3zyXvKwwRrdJLwhhRxUvqwTvcxnp?= =?us-ascii?Q?Km2ce0Qn8kAzPwW394g=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH0PR10MB5777.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(1800799024)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?T+Ghcc94SN56KceUeQxgYJOpuCkKwjbp1lyqnjQv6zbb1V9X89CkT7tBch0q?= =?us-ascii?Q?6ESX2d9lrkDM1KlNXrgTzlsi9Lb1bk/bpArYgp6qEDGo7Ouwu9ix+lJl0HAu?= =?us-ascii?Q?OtjyKekpqx6RqjQIZIrPa31sj9c5Grp5QHLLL8azsMC+oOVAjR5Yhe7pLmGb?= =?us-ascii?Q?uInSmCQkFcDLOBLGtaoRkVog1SHXR1e4Z8Smo7Sld1t3fUTp2nGHu+qX5ZzI?= =?us-ascii?Q?DGVCYCKRKhOjk2kRgXqF/rcgpwQf+VBxX8rMjKmWekwk+bx2qoadQ8ifvIe0?= =?us-ascii?Q?ayvpHO6cp4jRoZDjhjYIMGDWj1mYOK3ocE3ytjGzagKlHzmezyqlfiJjZ/ZK?= =?us-ascii?Q?OJcipefBO7xqo2kDXQKZerU/yKu/qG9fdNbq3w+Z87v59x2aROrAGPyNLwsq?= =?us-ascii?Q?slq8HrCEzUhtUDbxE/WgJHJeFKSPYa5Y5PkqQ3f0Q3SqLUasxCjcYKCV00Wb?= =?us-ascii?Q?9l7ArOiJFFSV1YgDUsCypzfHUUiHrhaNw0oIol6G7BIJHjWHCXwUqXpnNLNX?= =?us-ascii?Q?45skKHOBQvcJrbNve133bXTfFpXYBBnvwttnQyiPRvSHgwjPB8vs8U1IHTLx?= =?us-ascii?Q?DOykZweg6mKyJVSYOhX0SQKjGP3V8836f3AZUqgPahNfxZZllye/fIvoGqlH?= =?us-ascii?Q?020hToyUUZhSeJUCzYfu84OY8yVrpreK0XloxEe4JzhYHH94wFi6DFCyUc84?= =?us-ascii?Q?+EAYjwj8hE+oB6vRUlczV+RML//zHXyyQUDxFxGyWS8LXr7Fx01AfquJYeQ9?= =?us-ascii?Q?wk7KFTkB3kwjEapazMpmGC8O9H2VKrvI8JxvGHpCIbnc6nsod8MksX+vQi4w?= =?us-ascii?Q?e7kcSEJ25opQRo4LktrXduN8Dij1mWeTz6z2c2h7zGcQXNeQdQqkuLOnhPYa?= =?us-ascii?Q?DQCVQVURpIozAryOCctTtV2v0daKmCud0uIPwKITG1hOV9cqfg3J04MnGg1E?= =?us-ascii?Q?006WiqijGP84Xs5oB8oCv7LKiMx6F4d00Meoq6wnJbmZRRSCCT7LlkRyLiDu?= =?us-ascii?Q?mxHqB9QMk4PviDSst7VEEo9LvHlzD1aNDP/kiziP+/jLsf7ITdszx7Npcjb+?= =?us-ascii?Q?Ed2R6/Ip34jBSbRysApT5O8NgziNPD+xqom0Ka/1m7jeUmbrGpxqeTJ9hKYu?= =?us-ascii?Q?g81HWWmGpKxw4QlNEvyi0P4OjQ3bmNNgKElzEbUccgOlAjYJssgPUc4ivqlg?= =?us-ascii?Q?u45nTt/3OaSkLwtaX8tf0yu1xz1TMVy0EOzqQgFGdg5+l523SRTYQ3YDkeVw?= =?us-ascii?Q?5zh96+RoOTq4o5GzU6KpyMkcq+MyJ8nfi5LV8+hwPNGfrm+3ElH16pmHb3lJ?= =?us-ascii?Q?XYviRxwm4UIIOy9TfVgjhJxT4BKtE8c9Selz38aq3eLb03fby5n2jzjwecU1?= =?us-ascii?Q?PGdrPj3/yi7cTyv5GsM5cqm4hXveJQ0lK3M9sg+BbZQZpFVuLo3tekbh27oK?= =?us-ascii?Q?d6lTcITEvl3CbOLvNTSxZsONr9pSuTBDNWX93C8yhsmKn7wB2UdNKjr0HtqL?= =?us-ascii?Q?ec8q4h9sv7FyQDmIXZNrOvtO4ZgSk3TE/7MHx2jZUcVZdXAcS3GIgz31f89k?= =?us-ascii?Q?2I0vutZtevcIOHaXjz20aItlwkZhOG5yQhjZguNVhGlELVqf4bbTsrxVqVaL?= =?us-ascii?Q?n6x/2ZdcqS/2bAYhXTFsp92S/oPb1K1R5TYwRZtiKCJEF/ruaffnbeuZv28J?= =?us-ascii?Q?jFhWVUpcgZkDE0IIGaUOKYfm8mFUcLXtVLHrU+3bd92NewuBZf4J7gTmou+V?= =?us-ascii?Q?OQzIsHrVyA=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 1wL1bAZlBSCfb1NmgPMGGbAzY4bIv/uLwhdMldlVutraZTNfKHvcV/LjGHfmi4ybTtvUn5IkLoq+9D/seiJdM2RSZPEzgD4wzzGAqHIzBGzhFnhnWSkPhyrkflCtryKU9Itf9UHTsTzmnl7j4lmFDDHqnI1lX3qx3Qo+GKhZTfS7xLtxFEbNfwDRQbJhVlWlegTkVOi97D+4YQPJz4cS+XWZaJ4i0er19U7pVgV3VgZpjqFw3f5ANm4EezxUlzQM94yxoGtaavAJVdSqJdtCp+6SfcxDDaO6V9LUOg+MoK3wy9G8G5Lo6T4cBWTuOAS5HFMdueWIM1qSMyIqSc/3fkYdTP7LMK7HjqOX42A0OsdPEPBaESGvVoch/8OWljFsZHEumrzwDzqU4Wp8IOJXd1wpgdAOl3S6yXp25B9HWRwfJtUdL6tsIEvPYQ0lwS5vyKobliCvRJFOYmI8l+HoiOLKdGeu1uCqasOqCA7c/ZMVWXbIAMHA/qZCoiOxvr6fpJCSF81Q/TIUv6GQ+p3Co+aoWGui1IhoER3/4JoVGJccX/+sfBCqC4kLEsfzFLwDDj6UheGAc09nYUA+d+s8UcR/jKccOoU0TM3ER3O+p7k= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2791a2de-12ad-4377-b9cb-08de60429844 X-MS-Exchange-CrossTenant-AuthSource: PH0PR10MB5777.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Jan 2026 21:00:27.2784 (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: 8Rw+tx7gY4GwPdK6OVC0JEgZL/l3cGxxmFC4fiQVildP1Pd78YlYLZ79XCPAzByayDGq2K6QJHGTh5BMi8Gh2A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA6PR10MB8061 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-01-30_03,2026-01-30_04,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 bulkscore=0 mlxlogscore=999 adultscore=0 malwarescore=0 spamscore=0 phishscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2601150000 definitions=main-2601300172 X-Proofpoint-GUID: y8ifZkgJV67ARou9smMRTVa5niyWd099 X-Proofpoint-ORIG-GUID: y8ifZkgJV67ARou9smMRTVa5niyWd099 X-Authority-Analysis: v=2.4 cv=YuoChoYX c=1 sm=1 tr=0 ts=697d1bf5 b=1 cx=c_pps a=WeWmnZmh0fydH62SvGsd2A==:117 a=WeWmnZmh0fydH62SvGsd2A==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=vUbySO9Y5rIA:10 a=GoEa3M9JfhUA:10 a=VkNPw1HP01LnGYTKEx00:22 a=yPCof4ZbAAAA:8 a=Dk5oX4W92Jz44JyhfwQA:9 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTMwMDE3MyBTYWx0ZWRfX6ubUyw/QAweM 7pXwdhEkAZ/PCIssROIwp61oxUTMPxpdkEfqD/rZ2/PpPWRMk87j3D8d2BTIQ1NF+QON8k3X91e 8i7o3MFxlZls7yGZ7o1C1k2E6hOONdO6QYoOOD8yFiQjEfiRsnJCaG8nSIhPtsNu3867RWEM8AE 54LbZQRWP04uOylU4sg1wDCGGOrIerKoQrg4NawSs90/Jc0CufKTyUPb9lDtb4kXJNYVdqr4Tum v8PseP6XnYY6HlevxC56WuAmophOX7iLwXRir9dQsrrWokE2ppqzIS52lAp8EJ9lGPUXjPc8lPR T0+v9v+zXChBRFjKxFWBvHZsfrHMZRSwW5lvRnCpLpPBrpKONvEq8N6HSdIQuoGk9EdaqxPnhyS 9IvRxoBkzSiTB05b5o+/hT7PdCSJolBsR/JdBP3fMYCY691YbHSXaD4dkJuV/9ci8dTPvnrUcZH b7Udwl/1RsrjYWN4GxA== Content-Type: text/plain; charset="utf-8" Instead of copying the data into the big node and finding out that the data may need to be moved or appended to, calculate the data space up front (in the maple copy node) and set up another source for the copy. The additional copy source is tracked in the maple state sib (short for sibling), and is put into the maple write states for future operations after the data is in the big node. To facilitate the newly moved node, some initial setup of the maple subtree state are relocated after the potential shift caused by the new way of rebalancing against a sibling. Signed-off-by: Liam R. Howlett --- include/linux/maple_tree.h | 1 + lib/maple_tree.c | 175 ++++++++++++++++++++++++++++++++----- 2 files changed, 153 insertions(+), 23 deletions(-) diff --git a/include/linux/maple_tree.h b/include/linux/maple_tree.h index 9bc7fa89bc2ee..e99e16ac1c6da 100644 --- a/include/linux/maple_tree.h +++ b/include/linux/maple_tree.h @@ -177,6 +177,7 @@ struct maple_copy { =20 /*Avoid passing these around */ unsigned char s_count; + unsigned char data; }; =20 /** diff --git a/lib/maple_tree.c b/lib/maple_tree.c index a9b7e398c7dbd..0d6f810a4a1fc 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -1304,6 +1304,18 @@ static inline unsigned char mas_data_end(struct ma_s= tate *mas) return mt_pivots[type]; } =20 +static inline +void wr_mas_setup(struct ma_wr_state *wr_mas, struct ma_state *mas) +{ + wr_mas->node =3D mas_mn(mas); + wr_mas->type =3D mte_node_type(mas->node); + wr_mas->pivots =3D ma_pivots(wr_mas->node, wr_mas->type); + wr_mas->slots =3D ma_slots(wr_mas->node, wr_mas->type); + wr_mas->r_min =3D mas_safe_min(mas, wr_mas->pivots, mas->offset); + wr_mas->r_max =3D mas_safe_pivot(mas, wr_mas->pivots, mas->offset, + wr_mas->type); +} + /* * mas_leaf_max_gap() - Returns the largest gap in a leaf node * @mas: the maple state @@ -2258,6 +2270,44 @@ static inline void mte_mid_split_check(struct maple_= enode **l, *split =3D mid_split; } =20 +static inline +void spanning_sib(struct ma_wr_state *l_wr_mas, + struct ma_wr_state *r_wr_mas, struct ma_state *nneighbour) +{ + struct ma_state l_tmp =3D *l_wr_mas->mas; + struct ma_state r_tmp =3D *r_wr_mas->mas; + unsigned char depth =3D 0; + + do { + mas_ascend(&r_tmp); + mas_ascend(&l_tmp); + depth++; + if (r_tmp.offset < mas_data_end(&r_tmp)) { + r_tmp.offset++; + mas_descend(&r_tmp); + r_tmp.offset =3D 0; + while (--depth) + mas_descend(&r_tmp); + + r_tmp.end =3D mas_data_end(&r_tmp); + *nneighbour =3D r_tmp; + return; + } else if (l_tmp.offset) { + l_tmp.offset--; + do { + mas_descend(&l_tmp); + l_tmp.offset =3D mas_data_end(&l_tmp); + } while (--depth); + + l_tmp.end =3D l_tmp.offset; + *nneighbour =3D l_tmp; + return; + } + } while (!mte_is_root(r_tmp.node)); + + WARN_ON_ONCE(1); +} + /* * mast_set_split_parents() - Helper function to set three nodes parents. = Slot * is taken from @mast->l. @@ -2642,6 +2692,49 @@ static inline void cp_leaf_init(struct maple_copy *c= p, cp->end =3D end; } =20 +/* + * cp_data_calc() - Calculate the size of the data (1 indexed). + * @cp: The maple copy struct with the new data populated. + * @l_wr_mas: The maple write state containing the data to the left of the= write + * @r_wr_mas: The maple write state containing the data to the right of the + * write + * + * cp->data is a size (not indexed by 0). + */ +static inline void cp_data_calc(struct maple_copy *cp, + struct ma_wr_state *l_wr_mas, struct ma_wr_state *r_wr_mas) +{ + + /* Add 1 every time for the 0th element */ + cp->data =3D l_wr_mas->mas->offset; + /* Add the new data and any partial overwrites */ + cp->data +=3D cp->end + 1; + /* Data from right (offset + 1 to end), +1 for zero */ + cp->data +=3D r_wr_mas->mas->end - r_wr_mas->offset_end; +} + +static inline void append_mas_cp(struct maple_copy *cp, + struct ma_state *mas, unsigned char start, unsigned char end) +{ + struct maple_node *node; + enum maple_type mt; + unsigned char count; + + count =3D cp->s_count; + node =3D mas_mn(mas); + mt =3D mte_node_type(mas->node); + cp->src[count].node =3D node; + cp->src[count].mt =3D mt; + if (mas->end <=3D end) + cp->src[count].max =3D mas->max; + else + cp->src[count].max =3D ma_pivots(node, mt)[end]; + + cp->src[count].start =3D start; + cp->src[count].end =3D end; + cp->s_count++; +} + static inline void append_wr_mas_cp(struct maple_copy *cp, struct ma_wr_state *wr_mas, unsigned char start, unsigned char end) { @@ -2670,6 +2763,42 @@ static inline void init_cp_src(struct maple_copy *cp) cp->s_count++; } =20 +/* + * multi_src_setup() - Set the @cp node up with multiple sources to copy f= rom. + * @cp: The maple copy node + * @l_wr_mas: The left write maple state + * @r_wr_mas: The right write maple state + * @sib: The sibling maple state + * + * Note: @sib->end =3D=3D 0 indicates no sibling will be used. + */ +static inline +void multi_src_setup(struct maple_copy *cp, struct ma_wr_state *l_wr_mas, + struct ma_wr_state *r_wr_mas, struct ma_state *sib) +{ + cp->s_count =3D 0; + if (sib->end && sib->max < l_wr_mas->mas->min) + append_mas_cp(cp, sib, 0, sib->end); + + /* Copy left 0 - offset */ + if (l_wr_mas->mas->offset) { + unsigned char off =3D l_wr_mas->mas->offset - 1; + + append_wr_mas_cp(cp, l_wr_mas, 0, off); + cp->src[cp->s_count - 1].max =3D cp->min - 1; + } + + init_cp_src(cp); + + /* Copy right either from offset or offset + 1 pending on r_max */ + if (r_wr_mas->mas->end !=3D r_wr_mas->offset_end) + append_wr_mas_cp(cp, r_wr_mas, r_wr_mas->offset_end + 1, + r_wr_mas->mas->end); + + if (sib->end && sib->min > r_wr_mas->mas->max) + append_mas_cp(cp, sib, 0, sib->end); +} + static inline void cp_data_write(struct maple_copy *cp, struct maple_big_node *b_node) { @@ -2873,36 +3002,42 @@ static noinline void mas_wr_spanning_rebalance(stru= ct ma_state *mas, struct maple_big_node b_node; struct maple_copy cp; unsigned char height; + struct ma_state sib; MA_STATE(l_mas, mas->tree, mas->index, mas->index); MA_STATE(r_mas, mas->tree, mas->index, mas->last); MA_STATE(m_mas, mas->tree, mas->index, mas->index); MA_STATE(mast_l_mas, NULL, 0, 0); =20 =20 - mast_l_mas =3D *mas; - mast.orig_l =3D &mast_l_mas; - mast.orig_r =3D r_wr_mas->mas; memset(&b_node, 0, sizeof(struct maple_big_node)); + mast_l_mas =3D *mas; cp.s_count =3D 0; cp_leaf_init(&cp, mas, l_wr_mas, r_wr_mas); - /* Copy left 0 - offset */ - if (l_wr_mas->mas->offset) { - unsigned char off =3D l_wr_mas->mas->offset - 1; - - append_wr_mas_cp(&cp, l_wr_mas, 0, off); - cp.src[cp.s_count - 1].max =3D cp.min - 1; + cp_data_calc(&cp, l_wr_mas, r_wr_mas); + if (((l_wr_mas->mas->min !=3D 0) || (r_wr_mas->mas->max !=3D ULONG_MAX)) = && + (cp.data <=3D mt_min_slots[l_wr_mas->type])) { + spanning_sib(l_wr_mas, r_wr_mas, &sib); + cp.data +=3D sib.end + 1; + } else { + sib.end =3D 0; } =20 - init_cp_src(&cp); - - /* Copy right from offset_end + 1 to end */ - if (r_wr_mas->mas->end !=3D r_wr_mas->offset_end) - append_wr_mas_cp(&cp, r_wr_mas, r_wr_mas->offset_end + 1, - r_wr_mas->mas->end); - - + multi_src_setup(&cp, l_wr_mas, r_wr_mas, &sib); b_node.type =3D l_wr_mas->type; cp_data_write(&cp, &b_node); + if (sib.end) { + if (sib.max < l_wr_mas->mas->min) { + *l_wr_mas->mas =3D sib; + wr_mas_setup(l_wr_mas, &sib); + mast_l_mas =3D sib; + } else { + *r_wr_mas->mas =3D sib; + wr_mas_setup(r_wr_mas, &sib); + } + } + + mast.orig_l =3D &mast_l_mas; + mast.orig_r =3D r_wr_mas->mas; /* Stop spanning searches by searching for just index. */ mast.orig_l->last =3D mas->index; =20 @@ -2917,12 +3052,6 @@ static noinline void mas_wr_spanning_rebalance(struc= t ma_state *mas, mast.m =3D &m_mas; mast.r =3D &r_mas; l_mas.status =3D r_mas.status =3D m_mas.status =3D ma_none; - - /* Check if this is not root and has sufficient data. */ - if (((mast.orig_l->min !=3D 0) || (mast.orig_r->max !=3D ULONG_MAX)) && - unlikely(mast.bn->b_end <=3D mt_min_slots[mast.bn->type])) - mast_spanning_rebalance(&mast); - height =3D mas_mt_height(mas) + 1; =20 /* --=20 2.47.3 From nobody Sun Feb 8 02:41:41 2026 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) (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 B0578388863 for ; Fri, 30 Jan 2026 21:01:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.165.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769806883; cv=fail; b=j89tVk2K5KiqPp/gr3Llw5aphmag8L1sZmad2TKiMqIq+gFmuChY9QgE0ueI+txnfvgygTGq9chzEVb8C4hmxJ/3Jwd9MheIUINRncT1HWPsgXvZ2q4EJuuJqRToK4F2z+97+Fp1Kz/p4/A6wC/Px5ItoqWv+LjxRxY8xDXaLec= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769806883; c=relaxed/simple; bh=YmRtXBhufaSugN8olQGEzXV50mM5LSmmSbzPfMY43h8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=LWdflPwuwcQqGT06jBSAJGYpCMiAMqSCHd0dwCpwWDP2pMLIKr+KzaaIiwcnlH7VG+s0KrHVULPdCf8rtSVzXwHsnppO/Pq5FujMxNSD/7IsYX4/OLjX4PPM05VwQFUvnvRc1b5QmQrmJNnD+u8XzqNcQTfSy87GsNwsANL8K9U= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=qhM0L+W4; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=pmN+XkmV; arc=fail smtp.client-ip=205.220.165.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="qhM0L+W4"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="pmN+XkmV" Received: from pps.filterd (m0246617.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 60UKDSp83338145; Fri, 30 Jan 2026 21:00:37 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=a09mnnTsWNk8ZDi1O5yzp+1ctxr1LUvOzgOJrfdz7X0=; b= qhM0L+W4GWcgvPOMpq41b3r/+2s1aPxYtfrbH5THd85Pfar9IhXqUWuPR9rhF7my 6119bKte4t1/CHsiWiWmuySEJ5ZJ8fP0VPS5pHcLHICVHVn8oF0go1CV85wQlZ9M 2gSf95jgXhTzpMlQhSqz8RrWX19vdwouf1JBNo5r+uW1wRcvCgZFzaTsZMjufgqK lAHPsj3eAKSgKQVVtJKghToub0ujnoPx0kx7AVs4p3W2ET7IiCOZBkRIKIWxX9Wc JI0FVOyaMAPUrM9G7s3y3lEPgPsgTbIx4US73iAK6IB6+lhKpZkR/4wdmoDZO9UH 9ELiEoPx7LWan/OLuJ1w/g== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4by39rdw48-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 30 Jan 2026 21:00:36 +0000 (GMT) Received: from pps.filterd (phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 60UIkbKJ032726; Fri, 30 Jan 2026 21:00:36 GMT Received: from cy7pr03cu001.outbound.protection.outlook.com (mail-westcentralusazon11010008.outbound.protection.outlook.com [40.93.198.8]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 4bvmhe4g0t-5 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 30 Jan 2026 21:00:35 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ZXHWMuMew5nxCRl9WbIzlXFTfak7kDsJOPKfoB26aUwaBlVBeUVMnTvzIr3sP0o8pA84ixAET6f698OAFzA/566vQDc1GKjaWBZHhGn+V7J7yUnIGaWVI5pMC7PPQ8JmZPMqHkMRmGtFaGgHaWbJu5A4THB/AQIwjuMqZ2x3Fw74KYot+TMsq6VZLku1Ey9D/7JAlcS2GnA0NTPnwIk8mDG8FFBiopkOCYO1vJKpB4bOc535ko9PbG5BKiRc2640tD1MTxfCWKm3qhgBqogAgL3IP6/6YS1ka5OwVxIqx0wvsVRZi/ZF3hb9w+Dl3o9Rt1VLRTleZNkpCAzLkUbccw== 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=a09mnnTsWNk8ZDi1O5yzp+1ctxr1LUvOzgOJrfdz7X0=; b=lOfEPkGaQvhvZYhTTNeXikwX4ZiflfvgbNdfUsnL6VIQuwlevrR/oitj6FLQVXg2WP80LKTKCZEt0dLqWaqUY9mg9ReZYmRix355jPhYknXIKDKp5FPGXFC1r7Z4ohJsrhwBfgTy88iM1mUB9DhU3KIjJPrjxBSvETiQAoK7WQGperVaoQ3jCT4toQs17jAmKBlul7a+GffMOW4jQVFH4Tg1LVr0rVINop/OIQ9oBjinXaM8q7hTInuk0y+F5r6vHOSO/shV8BBXZ7mXtcO5wWS0zfknOdQW+Cr9eNr9ZxjNl2iW9pVFvTk7ThBZU3eX+r2qMsv71vUF6GR3o1vDIQ== 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=a09mnnTsWNk8ZDi1O5yzp+1ctxr1LUvOzgOJrfdz7X0=; b=pmN+XkmVxy0xhDM80Z8Edx7cXlC4h4KgO5bJjMOMTq2uJ1R335sugobcw+79hiKGxFYSZNe5twxkI/1Rw23yIDhBidrndmhnGq5dwt8KT80gvCdnjLIR1GbYLiAqsGZiecjZO/vrU89TKsLAg1W8RBL6t9uPx8aUFjXZgyxfiVI= Received: from PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) by SA6PR10MB8061.namprd10.prod.outlook.com (2603:10b6:806:43a::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.11; Fri, 30 Jan 2026 21:00:30 +0000 Received: from PH0PR10MB5777.namprd10.prod.outlook.com ([fe80::4b84:e58d:c708:c8ce]) by PH0PR10MB5777.namprd10.prod.outlook.com ([fe80::4b84:e58d:c708:c8ce%4]) with mapi id 15.20.9564.007; Fri, 30 Jan 2026 21:00:30 +0000 From: "Liam R. Howlett" To: Andrew Morton Cc: maple-tree@lists.infradead.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Suren Baghdasaryan , Matthew Wilcox , Sidhartha Kumar , Vlastimil Babka , Alice Ryhl , Kuninori Morimoto , Geert Uytterhoeven , Arnd Bergmann , Christian Kujau , SeongJae Park , "Liam R. Howlett" Subject: [PATCH v3 15/30] maple_tree: Introduce ma_leaf_max_gap() Date: Fri, 30 Jan 2026 15:59:20 -0500 Message-ID: <20260130205935.2559335-16-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260130205935.2559335-1-Liam.Howlett@oracle.com> References: <20260130205935.2559335-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4P288CA0078.CANP288.PROD.OUTLOOK.COM (2603:10b6:b01:d0::11) To PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) 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: PH0PR10MB5777:EE_|SA6PR10MB8061:EE_ X-MS-Office365-Filtering-Correlation-Id: ad42c22a-368a-4d68-a247-08de604299a5 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|1800799024|366016; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?eDdkVIhuNfGXNLOf0gVfeV/BiU4gBzzuXgA6qF0GmB9z+71l8T2GNjTamwnR?= =?us-ascii?Q?7Ue6kQoMRvNRFDlsqb8NZ1BSTx1gSv1hnrT/68PynWKj6DmKA/vEEZ9RNKku?= =?us-ascii?Q?EFfLN+rqravPu7V17jDyWUVVJgWtv5GkF2IcRZ26+D3gmVClc/czC2njrVKx?= =?us-ascii?Q?Xq0mZB8cHIDq7scUgtupR9qS5j7ZEWzURfsSYZHTqHtbUl+/lCPm317ByHUX?= =?us-ascii?Q?pVd6Pft0dYlRfGMjUDuG51hP8Qv58ISI4ghEA22wryLTk8ZJwgfG1dMfEZ8w?= =?us-ascii?Q?3R5wpOP1xGKjc5wzvZB6FMNGvKSuCJs6oL/ALP9Z++4wnnj/3FdAhRsnV2uY?= =?us-ascii?Q?HSy9cv/UmkhjQbGsZNCE+3oSnMIuQnhuGM0kC3qkXLu+hI4U/9gYKQAwgnUo?= =?us-ascii?Q?fobQJGWJtUhO5/ioP/TowD+NlWg3K/4381LCd9k6J9mgpyphq51O55y2aehp?= =?us-ascii?Q?QmUwI4q0Xfv0UuMzL+LqgyLsDLVXQngnP4vG27uZZEmDr2/q3y+UcgaSmcR4?= =?us-ascii?Q?4FPIwhob2PXTew15gGxMauQCwkb3l1KeEQUNY1JOC8iy1/TJvKI6D8nTH/BM?= =?us-ascii?Q?wZtX/n1ZAid2GDCzC28LQDHGUbqz5uoGrVmOMrbUG9Dx3CPl0AYmN3SHUYgb?= =?us-ascii?Q?u7d2zO5qjt1IMJlisk0t5UvpVovg5S3n3d3zyd42YA4eodEu08h00d7+iwL1?= =?us-ascii?Q?+5W//k640qRn/3q/O8u4+3Cj2L45CFzABBnViujQFP6eiecDDu4vwMqkl4PI?= =?us-ascii?Q?7is6j3zL8Z8gZ5UdpIEJsFGpJjRdOVRqTDdfGZiOpTvQ60ZisCDMpxXliFsq?= =?us-ascii?Q?rmqCoOdUNhNLVH5lvZyICf0yl1+9EnuZK1qUVfhJGGhXB25IgjiOK9MmuBD+?= =?us-ascii?Q?v23qyLvCgpyE4RGRu9k/kapZHOBay/CdzFHVP2oufGJv3t4pyoitgauJzckB?= =?us-ascii?Q?6umJ/T10s3HLI1MBn14DwtGK9eFlxc83cZwwOHnjYzC4yJKOjTzxUfaphsvl?= =?us-ascii?Q?omYK9QvkZLD5B4fsfvdyY6Ph36+3f5x0++d1zWPGzTE8Q3vF09ymHs1/j3to?= =?us-ascii?Q?gZRNWBd0weDZwhdGZRkkeqV/SDwol+JWlCY6xLwRq7og2SAE3EmMVy1ka5F+?= =?us-ascii?Q?IXqDiNbwHvqaUj0j17+xMWqxDk3NWFmk0xCGZdoMLFdYYswFieXpMfZiiKo6?= =?us-ascii?Q?lSOYIdwNAn+OOoiijSBYQclNB2Gr6ja1rPXgSXKxn1/G3ZO8UuDUSXDMtAYa?= =?us-ascii?Q?WhTZK3HEFAs0BfPCJMOoUcteRlx1HqabyVhU3KhX64BCvWRxaGdoogc4vvMF?= =?us-ascii?Q?lBY7RzDTQILzHjsPNTLydbWLkvcyCRWOK7KBOGMGc/MQrJ7FI1a8h1UP2+WV?= =?us-ascii?Q?skBqONSUSxbStTV677uxWOgX5S/2Vc7FIuZ5x/v6q8joRtbQD/I4s4MqQmvB?= =?us-ascii?Q?kaYXY/745ZoeXD/9sUXgMRNt/XpS0aVVVA8yLETEmUgfH9MPBdOReNJ/6zFb?= =?us-ascii?Q?8fF1VP3H58ieCk1nvfpQdtx63nNYlHYjhKS+jmpwLYzmNhafSG0gSeA3jJNP?= =?us-ascii?Q?CG+c0JCOUoBcG6IVh84=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH0PR10MB5777.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(1800799024)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?QiSl965y9VQt6rgnq96RRO6GXc+2qGigqk69zzU+0yAiBoVi7HUY4TW6/oCe?= =?us-ascii?Q?RqGMswhoW1EjYRHDCCAKShFsjZvER3tjBOkkkAD9DPSAY3sWSm4jHOLxN7Xr?= =?us-ascii?Q?ZBd17FeNMzh65Xyul4O9wlsiEWLaPphaKsmXSLQ6KH7PNUxTCcLODMc3/WGN?= =?us-ascii?Q?Q23oBvUisQ5z/HmjZ4AdXsmxbCypuhgXb287xb7Ni64IDnsJyvegrxo35IDF?= =?us-ascii?Q?c7RNRuHQvqYz1ElhtsCpiIVGfkJHOWPIJh7JMsBv5EdaxAqYb28g9Msffn0l?= =?us-ascii?Q?0Cc56WjsVTlhl0/2AxSei8YQcFyEaaQtDMEP+0GTLSy24dbMbyVMT94T9kgQ?= =?us-ascii?Q?EV9PvR7j3N4zWJC3jZzeIsBC2WywgOCJe8N0lBZBAu4wk6XSyCWMlBzzpEBZ?= =?us-ascii?Q?CwvnZ3RdUocaNIX0hzMdzEzt5zvj/ttVpI8zmKWKBhINUm61ZJ1IEyByMAiP?= =?us-ascii?Q?YxwvrA1tE2xKU+7yi+4fczDNVSfBEgMQtfbidlAyfi5ocRZ/hbCo0MY+M6Gh?= =?us-ascii?Q?wMq8gb8lUCEeQj2AYq4vil1wP8UDBO7VrBfQ0BkAlLL4MV2gxJ+QXzgJteDo?= =?us-ascii?Q?UFCYo3ZRFBj1dky9+z90QLO9Je2buSPlJhDdOerwM3DZqKBK6s8jnfzUyjZI?= =?us-ascii?Q?infMzB2rBLyMj7tX4Y8n6OUecEweJAue/H9Ca9uNZCFigO+i/zVc3mC/ByXD?= =?us-ascii?Q?tv7O+HJ5on6b2H3FswdU+hTzpNvpih1XfP/I6rBy/5MgWD8/VJ0e8ELieCfr?= =?us-ascii?Q?1h8eyuy8RNPHvt6LygDWVZwtyzGkNsLMHYjZcPsNhtq68kMGW9QUZhHCmCMX?= =?us-ascii?Q?PMtI3anIF2BwfH8ZZh/5soFHtTjRAWto2p/V6aq8V8Knd34C3DGN+JbRfbaq?= =?us-ascii?Q?DK4QdlZ7CAnsauLbLOKOwnJaV7WbmBSTxRGjJZLjSRODo9TsCJSSa1NbIyfO?= =?us-ascii?Q?Kwa7pK+4LlZytFXbnTdJZtYblaqfVDUSSbHR9F5dB7S9vagX6HbOOuauHTs/?= =?us-ascii?Q?4bTxOxVB4B9f8R7Eo+Hy/po0n32RV0cbOOMXYO47IUH9nmwbWSPKgF+Z+UuE?= =?us-ascii?Q?SzAxwJsGS3LVywR6+tCIs24C4thDUaz/FipG/oRxEOhBkdac1YcgMZcPXeir?= =?us-ascii?Q?gT3UtZ9ncJjVraDZOifasnJm2OnZcQ7YavkpDtRSbvnH3Nfj8oUMeL06RZxG?= =?us-ascii?Q?/PfELocApRZmjYaKbQNLSq6jyQ4oQcqOSHb3PFhnWTkJ47dw6HpCbLH/bcBG?= =?us-ascii?Q?TRhrxQTuMR33iN1X+F/995kVkldxrpSJt3XDgK0IkoCV8iQgXqsBg+1s/suP?= =?us-ascii?Q?bF51ey3rjSDRy4M1Lfqm/Kd1mLUYMj7xfmkg3Q6/u5RkFad5c8h+9CGqKzvp?= =?us-ascii?Q?jRyiE8fTUvzgJcS4aOrvsJJwQ9UIoWNAVQY8prIyBaN/ee1IDf7h4oBUwnBd?= =?us-ascii?Q?4fwssNrIdZ9WMbnxZ1iV54QWHgIPFTluE1L5N5K52L7KMJ7K/0v4qZ23VuX3?= =?us-ascii?Q?XE1ZVZfJBTdDn27XPTYs8GPuvp9oK6d/2iwwBLWnTCSE3OVdru9NHaeXC287?= =?us-ascii?Q?FhpFy0ND16h3icM4gmqi39jomrF4zhgLzG+LwR+nFkoyqYgE5qTiT2OKYiPV?= =?us-ascii?Q?FAEIoya5J6V4h1RJPvp3FpKsOSSRcCBwRYt5qXyEggfNTZCgUZbaH6sYce9B?= =?us-ascii?Q?PrpoBZdwToa30tVO1MRKd/qrMwREh/B2nUrPMrcyMwRuBgjagKVGZRwPZ7AB?= =?us-ascii?Q?CWdhn4IdWQ=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 9n64N7BJ5+p6wFGxDM8JtOp9gjRj2SMY7RrHh25fp2EU0yMBHQZtFJrmyFuwPEXysw+x0yQEY9x5Td0VZCkZ1Mmz26QbQty5U2+0Cu1VTLPr2SXeObtTa7ID0AqLbcxzUZd2vVOY9uz5Fhk/Tjzta4AnvuXbQK1ggkKphtN59LxGEuOVevP6+UAjA0fE11KvnwhPWjpUxap1rXuOXWgsvY7QzJ3Agur5mo53WVSb/H6legvnxLdfnKTB7kL1DhX9zm8T5brFX5RPhlj/BW/Tf2ITHAQ0xmOGC0ZNo2gVVFHDctUJIokPAVnvtd88zHIgy7YRI+Rf6ZiE7OaNaqcoEB7pj6gZJLgfvfnGHZslVdYCh4RUU11btLHVANxJ66PilIKMOtofHKhrx8XXV5Hj2Z6d7r0eE20qOX9XIeNqglUN4V2+jFWByLoBxWD9BGoh6ukR7QtC9XlAV1gpq4q9U2FJNMK9fjkvBT/b9y/DUzKIwPCP2p5ZIQ0miBBojJ7WpXte5BZXfUqAGF7F7QxyeoFlJ1h7TYJTDWvfMspTSkL4hCQFD5epb3PyAGTC+K6EAyeoFqCFW+XQ9M32Bggiv/HJRP6shfJ7eyX7Sh1bssI= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: ad42c22a-368a-4d68-a247-08de604299a5 X-MS-Exchange-CrossTenant-AuthSource: PH0PR10MB5777.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Jan 2026 21:00:29.6201 (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: MJJa4M5VejeUPWVo7yvhNfZE1Iqjt33GZpZ7i3MU6iWszMR29/GhKHmOBXu2xd7M1d9kIk3Y46sxNX6sxIdUSA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA6PR10MB8061 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-01-30_03,2026-01-30_04,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 bulkscore=0 mlxlogscore=999 adultscore=0 malwarescore=0 spamscore=0 phishscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2601150000 definitions=main-2601300172 X-Authority-Analysis: v=2.4 cv=LaoxKzfi c=1 sm=1 tr=0 ts=697d1bf4 b=1 cx=c_pps a=WeWmnZmh0fydH62SvGsd2A==:117 a=WeWmnZmh0fydH62SvGsd2A==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=vUbySO9Y5rIA:10 a=GoEa3M9JfhUA:10 a=VkNPw1HP01LnGYTKEx00:22 a=yPCof4ZbAAAA:8 a=-3J-9aNdBi9tGdEVLXQA:9 X-Proofpoint-GUID: JwCDEaAwPog_-JOh2GCKsOB2Xo32psU1 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTMwMDE3MyBTYWx0ZWRfXzhCn1JBZHRhg ridEsm2woTjZzEScoMFXb1gSBz4suNcO/+s/+4sTecJ9ybAai9nPCOPaZKUmB/m2Vnpzad3ZMNH uaR+wfU1s+zciO/jURpvKzJWo4G6wXqG2VmJ0D32LJ/HwWuQsAT15mZyydFndG3gE6vuQ5CBtSA M0vGB+H0U3S9ZVMxDyhd/VRJo1h3OQA/NSh0CVooZvHZBQHi+b2Q/qfB0lC4OUAkSJsUG8BGpuV kpUJOEWcgPDms16M+jOs8Bh4TnKp/g5cDhT2RL5/CFeRptyMT3mGMf4imZzVFxqRBLk7cJBRTTK 9sKPoMLyYJ4pXI4Ma4GgzuoNO5FeOnZf8Rw4X8qH1FDHbhbbh8eTlPNXJlU7ODQBi6rm+6Y5ptB QTiP7Z8ygc9/55IMobRXGuF4TnfqN26yaCtn4/xlQZHpo2cumrO6JDylb/Fn2NbRtn7eFiaQ6UQ FmRLCIRpIJrlJQmemww== X-Proofpoint-ORIG-GUID: JwCDEaAwPog_-JOh2GCKsOB2Xo32psU1 Content-Type: text/plain; charset="utf-8" This is the same as mas_leaf_max_gap(), but the information necessary is known without a maple state in future code. Adding this function now simplifies the review for a subsequent patch. Signed-off-by: Liam R. Howlett --- lib/maple_tree.c | 48 ++++++++++++++++++++++++++++-------------------- 1 file changed, 28 insertions(+), 20 deletions(-) diff --git a/lib/maple_tree.c b/lib/maple_tree.c index 0d6f810a4a1fc..499cae720251f 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -1315,26 +1315,14 @@ void wr_mas_setup(struct ma_wr_state *wr_mas, struc= t ma_state *mas) wr_mas->r_max =3D mas_safe_pivot(mas, wr_mas->pivots, mas->offset, wr_mas->type); } - -/* - * mas_leaf_max_gap() - Returns the largest gap in a leaf node - * @mas: the maple state - * - * Return: The maximum gap in the leaf. - */ -static unsigned long mas_leaf_max_gap(struct ma_state *mas) +static inline unsigned long ma_leaf_max_gap(struct maple_node *mn, + enum maple_type mt, unsigned long min, unsigned long max, + unsigned long *pivots, void __rcu **slots) { - enum maple_type mt; unsigned long pstart, gap, max_gap; - struct maple_node *mn; - unsigned long *pivots; - void __rcu **slots; unsigned char i; unsigned char max_piv; =20 - mt =3D mte_node_type(mas->node); - mn =3D mas_mn(mas); - slots =3D ma_slots(mn, mt); max_gap =3D 0; if (unlikely(ma_is_dense(mt))) { gap =3D 0; @@ -1356,26 +1344,25 @@ static unsigned long mas_leaf_max_gap(struct ma_sta= te *mas) * Check the first implied pivot optimizes the loop below and slot 1 may * be skipped if there is a gap in slot 0. */ - pivots =3D ma_pivots(mn, mt); if (likely(!slots[0])) { - max_gap =3D pivots[0] - mas->min + 1; + max_gap =3D pivots[0] - min + 1; i =3D 2; } else { i =3D 1; } =20 /* reduce max_piv as the special case is checked before the loop */ - max_piv =3D ma_data_end(mn, mt, pivots, mas->max) - 1; + max_piv =3D ma_data_end(mn, mt, pivots, max) - 1; /* * Check end implied pivot which can only be a gap on the right most * node. */ - if (unlikely(mas->max =3D=3D ULONG_MAX) && !slots[max_piv + 1]) { + if (unlikely(max =3D=3D ULONG_MAX) && !slots[max_piv + 1]) { gap =3D ULONG_MAX - pivots[max_piv]; if (gap > max_gap) max_gap =3D gap; =20 - if (max_gap > pivots[max_piv] - mas->min) + if (max_gap > pivots[max_piv] - min) return max_gap; } =20 @@ -1395,6 +1382,27 @@ static unsigned long mas_leaf_max_gap(struct ma_stat= e *mas) return max_gap; } =20 +/* + * mas_leaf_max_gap() - Returns the largest gap in a leaf node + * @mas: the maple state + * + * Return: The maximum gap in the leaf. + */ +static inline unsigned long mas_leaf_max_gap(struct ma_state *mas) +{ + enum maple_type mt; + struct maple_node *mn; + unsigned long *pivots; + void __rcu **slots; + + mn =3D mas_mn(mas); + mt =3D mte_node_type(mas->node); + slots =3D ma_slots(mn, mt); + pivots =3D ma_pivots(mn, mt); + + return ma_leaf_max_gap(mn, mt, mas->min, mas->max, pivots, slots); +} + /* * ma_max_gap() - Get the maximum gap in a maple node (non-leaf) * @node: The maple node --=20 2.47.3 From nobody Sun Feb 8 02:41:41 2026 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) (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 8D01F32B99F for ; Fri, 30 Jan 2026 21:01:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.165.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769806884; cv=fail; b=KR45YslEr85cBoPbbc0PCPfpjyI1bpyR421TIXtQN7iIOXs5FODBg0mHy9ZXeWLZU1DEiSTUv6jPGe582IBbs8ekAfK8/tteRDoIDqnWEppcrVglNWUELK4+ejPaWiboIOHLqoSrrAgQhd1CV4Oz8lAuIPsLc/rvyQxzIOnyEvo= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769806884; c=relaxed/simple; bh=54vO3rZoAzKTDeQmV3paAMLLn1i0yaMWwCGqgwxMFJg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=jLF8kR6LVlmJbHwkMLwimEf+GsFhWvHvSobE3nxwHPu9UJyl5GO867MCpDjsZlRADkGEvHSrElHIZUFXiG2/YUMGTC6nl3PozwwTql9EIj5qnGrGRExmBxHdHQJR04GQUQHyTMW5vwbOakrB10j6pPNMa6H6TyZo2m5mUJWYFMs= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=kfN/F4Hm; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=VDEIcg4m; arc=fail smtp.client-ip=205.220.165.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="kfN/F4Hm"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="VDEIcg4m" Received: from pps.filterd (m0333521.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 60UKDR463538556; Fri, 30 Jan 2026 21:00:38 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=QEIeGa8s8FT4BesebaeHml1I0z9WBgn4siTvKsY8tgo=; b= kfN/F4Hmq/aJh5qLGPcvGhrSEnzHPVbnAY2rsWRWUf3j5xpKBXC6WDRg4eW5l3g5 Ezvfxn4H9VuMdpvT4JPbqbWQF3pBs49eZtdT8fLkfnxJ3VGQZvWTALeH7dvkjO9H fHGXmrmFCt7bIM3UiF+ELDi1Dv1L9c9BYMAHN1R7LBdEAR/bbw5PmMt80cMI3HY6 IxhCgN2Fcwn3ehL1a1c0bOXRwt+QztvjMsYZav3ekF+7QXR7UfQsC18k7wOu2l/J 6jYvUmr/nIbc2hadoazEjEvGRi28Rx8l/WtTwpbC8CUz1D70wqbsbmrdjiTYqsog DuUWMqV8IpmVHxqFQL+E0A== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4c10b2rcrq-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 30 Jan 2026 21:00:38 +0000 (GMT) Received: from pps.filterd (phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 60UIkbKM032726; Fri, 30 Jan 2026 21:00:38 GMT Received: from cy7pr03cu001.outbound.protection.outlook.com (mail-westcentralusazon11010008.outbound.protection.outlook.com [40.93.198.8]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 4bvmhe4g0t-6 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 30 Jan 2026 21:00:37 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=gBbj/cQ3znIxuJ4ZVSIMW0jyKpF9Br8UFDDBGD2gDks9dgsdC9jGWLzaSSx2d3W9ZQqHy5uQgQlGMFPbhpAfQe6HIzVNRvYbrLhmXw6bIryYB9/OJh+Y4Q6vosIQlg5Jh0CcAVurNy13XtoDUd78FIZZOU6BWpiQEOhavyMuiEmW33LbAyMOac/v90YukGhlo+Cysj+yhmpopbM/8NSrrng3qhVSWiHxvKZVVERic0klI02HdkcO7xfT3jHDXzk2ZhYXqnsqBpVa7aJQbYKQIeWHIIDDuwk5289gep/VwJnFctCXZScetEFOE4qU7dL+fXoOXdPr/f2qfGU3d2cl7g== 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=QEIeGa8s8FT4BesebaeHml1I0z9WBgn4siTvKsY8tgo=; b=fFVCfEua1tbcQxRIYqwzlKUdfEo/qoU78F0hRijCVO0+934c6C8ocY7dVUNw/6HMOTtr9vaLiaCNWD4tH77STLolGtFU1E63LgOBnhr/OK8we+krXnCbuixaaw+tb5BYpxFW0QmjqiEWf0dceoUXwjpCt4Fy6IljIQ2UhV8osoP0daNQ3zFLnI6eePZqUJ+fIzvjxHakG2LV10fVFtp4o76ryJre3pxq43KyXVejvSpyxzIo2L35DagjP5r0Waq40vKJV5h/DsFzyhRpW5EkLURLBlFHc9l4VBA86JiDvdB8T3ZqRshCAwcTwMYKoRl6CjkDiRFLup4KCjteTdLXEQ== 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=QEIeGa8s8FT4BesebaeHml1I0z9WBgn4siTvKsY8tgo=; b=VDEIcg4mJ6MppWIGAJb7wc4NadvGdL6AL5qchpCX/taN+8y26ylNZKbgWff05VA5DLk2Eg75UeGHJuTYReEdIVyhd2CuRtY03Il3ZK/IuyYdwIVvmHr2CpzwrawyjSans38PbSXZL8qhPUV2tVE+C3BlI4T8qcOOmsvGsyxyS2E= Received: from PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) by SA6PR10MB8061.namprd10.prod.outlook.com (2603:10b6:806:43a::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.11; Fri, 30 Jan 2026 21:00:32 +0000 Received: from PH0PR10MB5777.namprd10.prod.outlook.com ([fe80::4b84:e58d:c708:c8ce]) by PH0PR10MB5777.namprd10.prod.outlook.com ([fe80::4b84:e58d:c708:c8ce%4]) with mapi id 15.20.9564.007; Fri, 30 Jan 2026 21:00:31 +0000 From: "Liam R. Howlett" To: Andrew Morton Cc: maple-tree@lists.infradead.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Suren Baghdasaryan , Matthew Wilcox , Sidhartha Kumar , Vlastimil Babka , Alice Ryhl , Kuninori Morimoto , Geert Uytterhoeven , Arnd Bergmann , Christian Kujau , SeongJae Park , "Liam R. Howlett" Subject: [PATCH v3 16/30] maple_tree: Add gap support, slot and pivot sizes for maple copy Date: Fri, 30 Jan 2026 15:59:21 -0500 Message-ID: <20260130205935.2559335-17-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260130205935.2559335-1-Liam.Howlett@oracle.com> References: <20260130205935.2559335-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT1PR01CA0077.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:2d::16) To PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) 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: PH0PR10MB5777:EE_|SA6PR10MB8061:EE_ X-MS-Office365-Filtering-Correlation-Id: 7b9a234e-2f9d-4aeb-c25b-08de60429b09 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|1800799024|366016; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?2Jj5AKjdI3T+bZW0zr9TBaR6aBjWSxuWxYjpab2uuYtCSY+CaOBqGjKZrMtJ?= =?us-ascii?Q?o168ZQlzj0HZpUIQJyaUA1Cfj1B4vYDHKqBWwMH9tnmqJvn4oIT4cDMVqnBr?= =?us-ascii?Q?lJZ2gTzypSsJbl7U3TG5ArJ5YntIL1Docu0XyRt9b2+WXHAjoGNAfP1trJCd?= =?us-ascii?Q?vi7yO27p1o1l64znv368c1DIAJPkuGPjKCrLrb+Vlpo9LdfK4GGJ/g40+NNt?= =?us-ascii?Q?MLIaxLRfMW45Tsdbrn1OgD+MqzHZyzORS1C/F15nT7BrjDizZIz8OJjvV+tD?= =?us-ascii?Q?Ch9Qf2mK+NXz5JXkH8vdITNxXtVo4QHdDqdrrkW7l994mg0Qlkg1i5UVczGW?= =?us-ascii?Q?fGjzxcUhHlPcNW7uMYOI+jUWOh2oFoo3VwE6wKI6ndDV/fzVPali4P2Xygil?= =?us-ascii?Q?pDHV+VDVZtbeRZGUGtD/qGVxUYrL7BXW27Nef2li5I0DFvsuCp/RaxMDl1m1?= =?us-ascii?Q?T/PzQ9J9whSfYaJLj6tTfFa3lKTiuUTKpiwpwRcxC6KPMXJP89VG9LMHNh81?= =?us-ascii?Q?XNt6vf8rC0/thkdi7bKZiBwBrESOiEzrazmWo4RV34Gw5PEp8CBNNIgX6OyH?= =?us-ascii?Q?Qt4XZskVuCf9RGAWNECis46TIRhngWhPWbzLGhuL7JWhIHR3aLuI3t7ZIfg+?= =?us-ascii?Q?yD4l2a1To/E/iXflKvCa/5PYwZ7PpzwJ5wcyF6D2KMqoxeonOhsOBPtNdgh1?= =?us-ascii?Q?5ze4ZgI3R9jP+crfOjtDDpIAQub1BlxuidX7f3C/ra6llbEbR/YTUR9dd0u3?= =?us-ascii?Q?L60WwIhpngBPjUwzLduZRTStz28f5tPM01NV/8Vd8yjLD7bpAwWYmobIes1C?= =?us-ascii?Q?UY06rzbyiFCf5U/wVmdw0zNN3uoIA3K9T66eMETt6c79n45fC5ssGsV2ndxL?= =?us-ascii?Q?eiqvfDPUZw3SE6ffKilE0RrLPwHC5JBVwscLVizXcHKvJYM+/l3+Rh0BegjX?= =?us-ascii?Q?hABLvVkvzR7Lu+EyCXe+BdckqoJxYiVVboIhLsgWaMVYEdRIo5xZSmrlrm6s?= =?us-ascii?Q?pZVxV088WPdGYLJOQzKgiIgUL8UdDsNoMlsQQAb2uIaOlsf9eOr4lcdtQNXm?= =?us-ascii?Q?PPuJvhNn1rEcQQtsrk7kgA2Hame9MkyEUbRmoUsrAobsK6YLZDMimt91n0LC?= =?us-ascii?Q?kw8eCES5OEa1B4RpwmH2G3No4mXB+HpuBCh55eyu1I929cCUC1RSfPfm1NmH?= =?us-ascii?Q?988sgm9j0HyIMduFR1BuUP6Qzbh3tuuY6np/edGUeQiC3NMsQMpOw6+0SCRC?= =?us-ascii?Q?Ab9pFXM6pe9qbIYBUf6MdhXXKMj7vQJrXUCKYgkanxH1WVIXQBUacQc0at6w?= =?us-ascii?Q?NlsYdjAN9HuWVcPiVFx9bOyYAQiXMLYuA3mkM0jqo96lh96qcp1Kgdc+dZBm?= =?us-ascii?Q?Fr2yf+VigOGdhVgLb+pMPYQ1005xzKaiamWacuxrO/26DuY0Eoqqv6vFy3C3?= =?us-ascii?Q?BSwXZl6hEDK8CCojiZQREu4l/IjcX9J82ZYScXtgP+kigVI3jwjtn3p7PJcj?= =?us-ascii?Q?Rl9pgK5gZO9pQhTU61WzXLsSuu1aEIjRhahaUTmLrcUFbbEwsXPlg7NeU7zW?= =?us-ascii?Q?iXr5NVLwGvil+LvuKr0=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH0PR10MB5777.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(1800799024)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?T5yZrRrlpknWyYQ5T4WlducbMdERb3v6eVsfeZsywym6Le3wPZp+f++dc+rs?= =?us-ascii?Q?ZXchyhjD7ojwGozeYrPdVu+j+LLwQo4P+A3lE7ybGxwh5hHlMiBWSzKnfiWr?= =?us-ascii?Q?FHZ6D4R+53IMlKhtpFtn1oUYOQf1vzuQ/f8fmIVxKVEtjMpMJpsQaUtRo6gf?= =?us-ascii?Q?MCCjKf17XIWCwzau+Ky+8+GNlDSROq1TN9S19FCgQ/Eh5UI/p91T/IL/FUOl?= =?us-ascii?Q?lmnWx+HA6dYIYcL4Wh1/obRP/fKoliRP8QnsGQqn/6BILGghBuNQugP/1eO/?= =?us-ascii?Q?soc9n6xzW7aw1+KRFmd4UmQanR7DWMNS+1+SUp+XOqj+wpYZbrJC/MvY/5Co?= =?us-ascii?Q?sA3ndkhZWv4ZLs9ppmC6dGta0e87j7WAW+ubNB+mm1SpZQI0Y3tFS3PevGE3?= =?us-ascii?Q?AHcPpJleVh4wf/gsX31idDF/uJ++sJfeTY49AaAe6AbvQetu1lqoBaczSUxT?= =?us-ascii?Q?5/SCrBO7EFBTR4ttPHDHsYn63mSS2Mqbm06GN4W+ND5trQl2YOWxgjk8Mwdz?= =?us-ascii?Q?b4ZiNle8FgN+GbI0LP0Q+VPePS9cMIAgJ8sYiLQzKOvIppcL1yCUphwXBI37?= =?us-ascii?Q?LN3Luc1E9XHD+4Tl+U/I9f/ouzxULvD/FSuxNFIqBl0TVrBKweLF3kguUQVM?= =?us-ascii?Q?VDkUVsA62nPEaScUXC5+hu4xJl36f4mdXc1NadK/dfH7Tvh2UB++6QFSqWto?= =?us-ascii?Q?5fLswVHQm2Bmn6jNrIN9reYrNROgnWLDgbAEywc9JR8Do1VulS/o85YB/Ola?= =?us-ascii?Q?xAJwnpioDAo1EjWTxFNeEfuxUm/kJ4ER8L0G83s/WQ510XjDCE5PvCLtyyxA?= =?us-ascii?Q?NZxSto5Io865YAviPsZR1lGuqteLOTr+TLMPEIYF24Rd+xG6MixmzkDcAQI6?= =?us-ascii?Q?ayhldy6Mx+eoVa7C7RdJs8SwZ9lK/zQL+LqncA95Qw8CpFIaXzkHMF1NsJrO?= =?us-ascii?Q?Ssz8VUgoecJEayJ/qZ2NkZQyDQ0pgoX0TGSQ2XI7Sxxi26u9kvrePetZHTPp?= =?us-ascii?Q?qC5wth9FdL8wXOm3pgY4CJHzdAcCypewPXS5ntFDZxeDQoiV8UPjC73Cwpmz?= =?us-ascii?Q?hf5acPjo8/4Rne4/SaZzql5ESqPevIRtH1KS4dlEdhDVhXPSJC+QsYmVMiIo?= =?us-ascii?Q?LscVQTnSPEne7HT9kZ/alJ54rTU7s/cOxRxf5WCeB9IWtaokfucz2evHfHbO?= =?us-ascii?Q?L3hB783vi+aqRsCHQU9n2L1HmBzKVaXJL4gmebmjc5w3m9EAhFMu13aGCNoo?= =?us-ascii?Q?oXAM8OWBfDctzSoiBeLwJgvaT7DLzbH0hRkY9Zgr7oqOkvz2IkSN9V0Ay4KB?= =?us-ascii?Q?/XmRrVacxppteT9k7wXo8Z4n1YiZyKhlI+N3v5KKEvV/9JjEdreqa4Mat/Ax?= =?us-ascii?Q?2lAqSHJs7iOA9hV/Vg7szZJDfCU3aoAV02sDlgQQKA2CbLp5gvrq9s8KE9pi?= =?us-ascii?Q?gIhPtredcSYjC/n5Y7nKC7RYx8SEcgrRTUzRQpPFWmIdlX1BIW5bamlNgega?= =?us-ascii?Q?BF0PYOF/hZ35+umg37ZhDqfFkbFDJWNagoaovZdKMbgRfzzYdOjptLJ8X63F?= =?us-ascii?Q?CknZb6aIyWZ+ThgkfV/fCbCnNviLMRX72uvF5PGaBMQyJvf98+clO7g3cajC?= =?us-ascii?Q?2/RTgQ/j3zEr75aoDg7sORC/J4Z3PkXjg1GIPHeJK5Yl4H7l/kE49iD1HYQf?= =?us-ascii?Q?UZlNu7PUmqn32u+YTSizbNAh7HWaxvpi123mC71ngtnIHFWwRDI9SKoUgfI/?= =?us-ascii?Q?PewrSoDspw=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: x0FLYnW5weh9DxwaFOaH5ocCqOzU8g3hjZxLLJK1u1yyVUsW56wzSH9x9vgz/L9cBwoap+Ydk0ckUuGScfVHbmSut5drz0NcyUl8jqcLQmRR01I9jwiG2bc57+0usN+CWq7ffOwcf1fC6G95PlVBUT1NkGBgXkBmyJ+T3WY3ONkk1wJx6CdZ7JM08IM7EcbTirg4zYJob+Gamy1sDJuUiznkMNZD6zLAg4cGhY0sKZOmHFt+3mQUANcrg99gNLPUtYQk9BkmYmwslIbkoDyurryrDSv0FZaX/hMkBNNl4a3kJEDeuU2ADjMDzgvLoy4aXKL1kfLFTj3AVnGhGOkFnhRybWumqqMtLTAxngnYHqqnnCbt2/svuIZYRJsppakp7eyE9Nr6zBz1IUDpMvMERcjkybI3VUKqire+k2FEP+UmGEm44RGyWaoWkBYY6FMU/FdXn660EDEN1BhBok71IVO7Dyx3gDzDQdAJE2PwqHG3lh2Ra5ZOLvL1vT6b2EeS6TldFlm7VBhcN7vJT5c/Ux07VRR0I9wcucyuUuK8tiID8dqTjsUf+Nn3ObhTFgjhVnq2iSM0BhbOnlxUnJqG5TMbuItFl/2oq4JEcAlftTs= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7b9a234e-2f9d-4aeb-c25b-08de60429b09 X-MS-Exchange-CrossTenant-AuthSource: PH0PR10MB5777.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Jan 2026 21:00:31.9428 (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: gA0518yWCDyJJvg+EiZMSVDyeKsL8RZuMKr7TldIr3LZL8fFTz0+4ahZESA4DoULX+71JDmx/umOsVrGpyFAlQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA6PR10MB8061 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-01-30_03,2026-01-30_04,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 bulkscore=0 mlxlogscore=999 adultscore=0 malwarescore=0 spamscore=0 phishscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2601150000 definitions=main-2601300172 X-Proofpoint-GUID: CUVuGpSLZLOpSIHHdVyVx5VEqhvdpH6O X-Authority-Analysis: v=2.4 cv=BLK+bVQG c=1 sm=1 tr=0 ts=697d1bf6 b=1 cx=c_pps a=WeWmnZmh0fydH62SvGsd2A==:117 a=WeWmnZmh0fydH62SvGsd2A==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=vUbySO9Y5rIA:10 a=GoEa3M9JfhUA:10 a=VkNPw1HP01LnGYTKEx00:22 a=yPCof4ZbAAAA:8 a=WDoy55lLVV0zyn05J78A:9 X-Proofpoint-ORIG-GUID: CUVuGpSLZLOpSIHHdVyVx5VEqhvdpH6O X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTMwMDE3MyBTYWx0ZWRfXyM4CHf8YK9dl 3exvzU048N1sIAxicfM7lZMyDk6ludxrpVvKfTJli/sUJfGKz+C7lvixYFPMBj+Y4NRPMI+CSMo imOuD2+TgXYSTFMIuZslznxpu96O5l8+wN3eBp6xuKsn4T0CiRyz7pB1PTOckeCi9nrHz9vIkxe x0rbJA1ap8INda4M3GniLWsl+oVlOXH7hRJr0dmQIctKwihoQ4LoBFnDoKfVrLQNb0crE/qhJ1M rsOWyULIhgRkEJPR6MfXu7+sHj30mP07BRKcIcM7Snqj2tnqPak9oCcAkkz24qbAMqfGxgXnjF5 iy2zStV1hnKuMvJB2RnszmOg1rDK7Kct0apWA7nUBu/1R9fNPgHnwB5i5mG2Nu8E1KUFbqJPyHe cQDKmoADvoWGnkQeMy2SwTFhgIuVxcLrF48zHDC3VA5qZrBgJp4yZ0eElcQINc7pRhKBWCVXAXt Tf/nWikKgazNk9PNd3A== Content-Type: text/plain; charset="utf-8" Add plumbing work for using maple copy as a normal node for a source of copy operations. This is needed later. Signed-off-by: Liam R. Howlett --- include/linux/maple_tree.h | 1 + lib/maple_tree.c | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/include/linux/maple_tree.h b/include/linux/maple_tree.h index e99e16ac1c6da..db6a02788902a 100644 --- a/include/linux/maple_tree.h +++ b/include/linux/maple_tree.h @@ -165,6 +165,7 @@ struct maple_copy { } src[4]; /* Simulated node */ void __rcu *slot[3]; + unsigned long gap[3]; unsigned long min; union { unsigned long pivot[3]; diff --git a/lib/maple_tree.c b/lib/maple_tree.c index 499cae720251f..9c701ee7412ca 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -101,6 +101,7 @@ static const unsigned long mt_max[] =3D { [maple_leaf_64] =3D ULONG_MAX, [maple_range_64] =3D ULONG_MAX, [maple_arange_64] =3D ULONG_MAX, + [maple_copy] =3D ULONG_MAX, }; #define mt_node_max(x) mt_max[mte_node_type(x)] #endif @@ -110,6 +111,7 @@ static const unsigned char mt_slots[] =3D { [maple_leaf_64] =3D MAPLE_RANGE64_SLOTS, [maple_range_64] =3D MAPLE_RANGE64_SLOTS, [maple_arange_64] =3D MAPLE_ARANGE64_SLOTS, + [maple_copy] =3D 3, }; #define mt_slot_count(x) mt_slots[mte_node_type(x)] =20 @@ -118,6 +120,7 @@ static const unsigned char mt_pivots[] =3D { [maple_leaf_64] =3D MAPLE_RANGE64_SLOTS - 1, [maple_range_64] =3D MAPLE_RANGE64_SLOTS - 1, [maple_arange_64] =3D MAPLE_ARANGE64_SLOTS - 1, + [maple_copy] =3D 3, }; #define mt_pivot_count(x) mt_pivots[mte_node_type(x)] =20 @@ -126,6 +129,7 @@ static const unsigned char mt_min_slots[] =3D { [maple_leaf_64] =3D (MAPLE_RANGE64_SLOTS / 2) - 2, [maple_range_64] =3D (MAPLE_RANGE64_SLOTS / 2) - 2, [maple_arange_64] =3D (MAPLE_ARANGE64_SLOTS / 2) - 1, + [maple_copy] =3D 1, /* Should never be used */ }; #define mt_min_slot_count(x) mt_min_slots[mte_node_type(x)] =20 @@ -627,6 +631,7 @@ static inline unsigned long *ma_gaps(struct maple_node = *node, case maple_arange_64: return node->ma64.gap; case maple_copy: + return node->cp.gap; case maple_range_64: case maple_leaf_64: case maple_dense: --=20 2.47.3 From nobody Sun Feb 8 02:41:41 2026 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) (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 C3FB538A9B1 for ; Fri, 30 Jan 2026 21:01:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.165.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769806900; cv=fail; b=K1mraKp8osUtdwb+gkMHjTTi2E+xAvrcnJ3of+6VxwitmRwnxhMBHjxPOt3d1o198OlHguwa9cJHILG0ByWwNBk577j9SzDDhiXR/B+E6Qr7XMxLuSNzVs3aSs6hwxjemDRz7TGP4889lRumy6WdSd28bjyAFGMY6QMyYAg5FNI= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769806900; c=relaxed/simple; bh=u9rxAYkbQE9BpS9Rrd74ojh+dnRjBiKRLi5vuyLFXdo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=Fs0uJKnvAr4GEMrDArxg3wAylwEHMDpiWgEzTQbgEiItBe3n4FbnEjrJZ15YRRuli24NXgszhP0r68fKBagce5vQRrHpBp+ltVNC+Rg6wO0ayEiASYfvFgPJcTB+q7a4kOkLWU/5aa8ddDYqFuw2cEbqITsqhpiaOdvvOvi1izo= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=UcYwNVt9; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=E87C3ZUG; arc=fail smtp.client-ip=205.220.165.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="UcYwNVt9"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="E87C3ZUG" Received: from pps.filterd (m0333521.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 60UKDFAA3538359; Fri, 30 Jan 2026 21:00:41 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=HmeKxgO88hyfllkZzZCoWUJVEC/PG2836wEk2mNISGo=; b= UcYwNVt9WonXkg6vcpaG19Qv77127lB+nRByJpSv/SXgd79dwu+G61MQ/xHSl1fe roSdox1ZhE+6gOQHdeR5cmsw9OJZq0f8pdoTFalV8OAP0v1wv5xpKqzXVYIgCoCv prfm9my0wEfOpNCNjgqURkz9sDLgCpBySHgtLGn9JlRUct/IhKgAU1EqcDHTFJw+ RQcwkcP5ySWiEehXmHZekwO4V+G8m7fUbjnxj7wVbcDTiHuSJvhRf+ysVDUHf6ya 35p+u2Tco1j2VbJYDnKadQYKg9KLPZmGEL58ZfIakzk5EBQMF0eKDjmAcPbwa478 od/RvVC3dmK9k5jCDEnSlA== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4c10b2rcrs-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 30 Jan 2026 21:00:40 +0000 (GMT) Received: from pps.filterd (phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 60UKs4rE032717; Fri, 30 Jan 2026 21:00:40 GMT Received: from cy7pr03cu001.outbound.protection.outlook.com (mail-westcentralusazon11010007.outbound.protection.outlook.com [40.93.198.7]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 4bvmhe4g8w-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 30 Jan 2026 21:00:39 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=qtvHqsDyd8E6hU/4Jf7dRtOH77bEc4W78GbRtxBRRPXaKrG12lgKLpcrn5/dq/v3Gewjni9KSX4MgO7158/lL1ytTxkoCv4uhsrqoHpNgxtM2QiYPh5FhvFMT44DoSqR70++Y+Z1G9N0Tk72dG3gyPvaLWAt4tvp81LSFpWqGjvPGTj/7rrbUcPxjiWKTLvbx9g+Lbuj7wLDG3PCROcRS6pMRH1MCWIp3ecc4SvvRhGqKy+zL5xaReIF4gQq3pb6ynm98Rw41x08enmNcTJQBJPYDeSm77DaqxaMzzbkQUZiGgtokyTgC1BIhz/+SGaBH+Dsdn8zUsui8/zsZQjbow== 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=HmeKxgO88hyfllkZzZCoWUJVEC/PG2836wEk2mNISGo=; b=uBvH7pb7aSQkNFq/cDmV10M/gbMSZw/NqtKYZV3iSwyBsY2PyZltCxpCETE4lGWWO+llEAsH5XZazSFVCrhOJhYxcSmUjVNzmxFITXWP3QUjRGWpy/N+w+t6pVU5v0hwX1Gk8XKJ7YL857YJRt5HsP7ssqD1/2PLbIrFCz7kmVsc6rfov2+mCsyr3/yqpRA2rbEnxHvgZH4KETXLSBsZIeO4ODnFBhE6GjbBnNezWNjnWZhkl/GraXyeZXUJkSxd+lF22UtRpcNjkP1jrIPi8P3qdofmzrUgyuvyFEv14QuRJQW85LRfM/l80kSy5oT/Ud/kEFgmhdb3GmU9lzXb2g== 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=HmeKxgO88hyfllkZzZCoWUJVEC/PG2836wEk2mNISGo=; b=E87C3ZUGG/HWto2S/dNKbzzwHTsI3TVkyCjrPfdXoq6XpU7QLyYRx63qJfTtYfpyYyN8VK/0NxHKWIle/FwfvS4UBVPGEipbsYDbHM5gw8CQTdPJ8Firy06+Ihk5LueVODY0ax3KvczJYCN1Q97r7ER5jaXzAsc2Nx+Ikclu4dw= Received: from PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) by SA6PR10MB8061.namprd10.prod.outlook.com (2603:10b6:806:43a::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.11; Fri, 30 Jan 2026 21:00:34 +0000 Received: from PH0PR10MB5777.namprd10.prod.outlook.com ([fe80::4b84:e58d:c708:c8ce]) by PH0PR10MB5777.namprd10.prod.outlook.com ([fe80::4b84:e58d:c708:c8ce%4]) with mapi id 15.20.9564.007; Fri, 30 Jan 2026 21:00:34 +0000 From: "Liam R. Howlett" To: Andrew Morton Cc: maple-tree@lists.infradead.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Suren Baghdasaryan , Matthew Wilcox , Sidhartha Kumar , Vlastimil Babka , Alice Ryhl , Kuninori Morimoto , Geert Uytterhoeven , Arnd Bergmann , Christian Kujau , SeongJae Park , "Liam R. Howlett" Subject: [PATCH v3 17/30] maple_tree: Start using maple copy node for destination Date: Fri, 30 Jan 2026 15:59:22 -0500 Message-ID: <20260130205935.2559335-18-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260130205935.2559335-1-Liam.Howlett@oracle.com> References: <20260130205935.2559335-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT1PR01CA0153.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:2f::32) To PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) 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: PH0PR10MB5777:EE_|SA6PR10MB8061:EE_ X-MS-Office365-Filtering-Correlation-Id: 4eece3bd-6bd8-4fb8-34a2-08de60429c63 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|1800799024|366016; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?EZaJG4fm0YRHtxlQTVTOVUgEkLq5/TrY6AacyceJ9luj+h6UlEo35VYOfy1f?= =?us-ascii?Q?cuPesx6Y3uY8LpxcaRinuYL5rvWin/IvVdk89GR5S82UTkylAT17RJDO7k0X?= =?us-ascii?Q?O+HCMmA3WOJdyN7MmuPB3c9kkjzdboxgRkQTGgfNf1mK7uPsSEw/zmriMshS?= =?us-ascii?Q?X66oAhbT62E3w5irAR7bgTepWCHCjTR6as7kTJocjjUyd7ECJRmonQJo8/lS?= =?us-ascii?Q?eQUkFoEOATzr0zhnTTo0BTWxMp4j6qXr/onvH7/GSs51qq/IGkzoe9HMTZwh?= =?us-ascii?Q?uIWyxzjJn18u99dW4djsoeCgrmDsRbCT2ToSGJ1g7n4IrTajo3QuKozurYAX?= =?us-ascii?Q?7zeBZx7IJhXEDmQRfs/TEGiF9YGXKZoca68U0OJr37gc1o1AxaSPsydeSpkI?= =?us-ascii?Q?uFQSgrx9qTB2Dvr/YzrMVGCr8w7wmyLzXnsVYacmP2NKQAJISXI1N63Ny5iq?= =?us-ascii?Q?epjPqXt62zy3o1dNNS3Ou3L7Og8+4wrebylWu/qyvMPIS5ne+Gk5VnONu0oE?= =?us-ascii?Q?5+h8Z/30tgFWGU6m13y17aElQDttp9s6gFPlod+h0H6+I4GjDwiM+olwR7pV?= =?us-ascii?Q?UFxh+MDebxJ6hWJCWTGMPLrXE+lu/62sOwffewBM5u5b5AHN42ynkUM04iXT?= =?us-ascii?Q?BfTfKU84zRzV1ubi76WsZFx1fvVj1c+BipCXYEHCGPUCShx34SbbA5U8oBK1?= =?us-ascii?Q?umVoFSSOAu/NFe2AKVhr8s6Zz72fkYXplrOBupm/VJcc5ePC82s0Z66HYaq+?= =?us-ascii?Q?L/A+vk6VdYZqIxFz/SBdoJKkYAnWSxv6y8CMrDeFKnY0YToxRxJqeBEBnvXV?= =?us-ascii?Q?saS9RCZVZ3KYaQwCeg9oleK1xi0XTlFpSkOepHg6SLue+2HiYXQOeee3zL5X?= =?us-ascii?Q?MQtdsR84rlwUY4urTbKoR3n15aPfr/ixkf+vUqd4krNnBDpDZH45PKv0n+sd?= =?us-ascii?Q?GLPfAocRzpWuj1iakDFfgAldMUaeQmHjFlUiotwGEj9CYe6qAbR5l74XFDX6?= =?us-ascii?Q?9Fd9bT3ZT6skm2uWQQr5MxAtEvkORft2yz8rYStCi4BjpyZCBJpk+dygPJct?= =?us-ascii?Q?aZJhf/jb//I4yvhG6zEwOjeDmxtrUGXJeAV7ozojDHA4jZxlSIiwRWErtB3H?= =?us-ascii?Q?6kJvDhEosQCUQPCQqGWpcEVyNRXD4nDehjxu621foHJAcuwrfNNxULiIDwPH?= =?us-ascii?Q?T2vnO5iuXnPvYhhboIuvQh1Uf9WjSxv5BhlrSpnHgRnO66W9dfu+o3J7OUMu?= =?us-ascii?Q?a0MN2GDt4/L/YBWfsdzI35156yfd8tHrwNryOF9itHhoaEZjgWMf5HUI4976?= =?us-ascii?Q?ZI56NAp/l97/L2Cm7uO6Y1lAMjSjy9fHF89kRwoAXt2u8lc3VApj1MlVFzQf?= =?us-ascii?Q?JeDwyHtJvUc9JrPgtUrUaUn4nFUCGnIK5vHoGdY1TgxXuOqiS0BOXgP6n78f?= =?us-ascii?Q?wLVD5IH3ZaSxrvzJTosfJtBWMK0mt5Hb+oog3VBvN7AjTIOjQevIp7SYBolr?= =?us-ascii?Q?Fsl3EzLpQA44BVq3Xifo4z/ngjOSOxACU+JiPP0JkvSsmRgcKmu48KXEkpRy?= =?us-ascii?Q?lh7UP7UpO1gabQQ38lY=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH0PR10MB5777.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(1800799024)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?/xqEx4GfSF89djeiaiTBjouJrsxr4kN7ifzL2bxmO1imzWVV/4aSVZZ3hG+d?= =?us-ascii?Q?FB0kIf0gUqKolJaIkAo/WTL5JcLpC7jzbYj659lbTp+TpdCmh7fuDHgM6/eO?= =?us-ascii?Q?USndO1xr95rsmZQDBrViJEbLOc2RISvp4yXOgwKpvIdGLn+NIqvEvoEZBqTD?= =?us-ascii?Q?JPWYpTZ+dt8wqmWg9jCGIOLcuQYryPaSRmUC5sFb6NG3PRqwFe5EfZduQLJS?= =?us-ascii?Q?KbHBtSv35XKqUY615bidhvcn4NdfMwLSYSPlLULN7ZhWwZRChRCyTG8ZKJmX?= =?us-ascii?Q?N9eqifT+iFv/Zg+7n7u9ZP1J6V8cg2rB6zX5iX1eAOvVsotWzevQslgV34r6?= =?us-ascii?Q?kwX2Pfav8+N3NWhifx4z1aOrQ06MpsVHd4+DznmJfKRfCd2GZf+9KCvUtNj8?= =?us-ascii?Q?zNdozpqMGSclaFrhcWvPJKYRym4H9KuWLTE7Fp8jUQe0gc1C2cM8QeqJGNpP?= =?us-ascii?Q?QO+D2ZwR8cFzNlCr90mnEOtCFSfSGMhaBILlvwoQ8WVEOrK4gNlsPtdVtbxl?= =?us-ascii?Q?QiQPZZpdBGzsUMzKIxYqq/GvCD3t2FcL4DxaB+3KIFFkpXkeISrA93xVRmUW?= =?us-ascii?Q?zSVqZNrwzyUL7tafE8/1LdCy96LovVzE2QVkmrICkjQi7gWrKpF/rp7caIm3?= =?us-ascii?Q?TOzO/Fh+q1AVcnBxh08U5Aal5gUi1Kya+Pk2EKmJAibHWxGMU5v/9HLqK9+8?= =?us-ascii?Q?fWWfIzZecQnEb1/GYedPn4tOGsCP+1XAv0qehbgjv29XGEhgBfZl73muVWMK?= =?us-ascii?Q?GEQd8PIu2vPRIZIi3AeCpNelvsmJcy32ueUWV81w6ll/UAEaLzeSUuId9fmU?= =?us-ascii?Q?BU5liIL6T0vTyBmGFjj4Bdi+i1KDJRRFhBQj70v7h0Rkb/TRjl9WSe2pPRTW?= =?us-ascii?Q?Y9iHPV4FiiV2Wdg0dedXgzMIF9lsV/yv3/JG1yZDUqfUGaE2ScV1QtjIxwGy?= =?us-ascii?Q?JKd0KKmsR2pPoTYjMWbFzWvb+kbxxEcPdrx3924Ql9KpOkXSTvbvB52q8ZA6?= =?us-ascii?Q?FWmMP+Z59o/q0XNs67GJ8IJG5bCl7eqUYVj6odqgI289uVUM/ipq+ivFKbYa?= =?us-ascii?Q?oSKUwBNh8ODvKu1dpxGidOp5HaBzLeH6cNvS6T2fnL0+Lw4UkbPyYUns92Hs?= =?us-ascii?Q?xmzX+9VAUXrMY3Kvsvf+mgOoTw808uhnxhLXYs1BeuyJ2KYzVjRi2U56gLej?= =?us-ascii?Q?KvEDILrXQ7YCnvj0CWdsGumZMqwCU7vvQVareXNDMLDffBx8fq39hl+KOiDt?= =?us-ascii?Q?IcSfZV5Q1YhUYFBFgtrEo+/vPuEccyiLThaRLxQKygsMxgqX7lmIZ0quXbJ9?= =?us-ascii?Q?nYBc+t5F3M1WCe5f+z3WVmH5gRIIYihp/2+uh4eetpvKXtc+6YbbBvth5Ov2?= =?us-ascii?Q?2JBEwbNA7PgGu9QQ3EvsQPgIqqn5TvYKNuiD3PshGYLoAiPxC6vv79DTurim?= =?us-ascii?Q?4B/awA4z+/bvyr91ZI8JQYVHrjDHBQ+jhH9cS13Rkt3I68oflrgsla74aagI?= =?us-ascii?Q?1FDAeChc6Zx6d48yj3IdNwVH12RSV7yW7M5jaG4dX4RL4LsOnOK4ZdzUEeei?= =?us-ascii?Q?IoMia58LvSTaz8gs5nl6dtNp6h4f/FuGgCfS5HlIhBANvMdl1A8Cf8HuC+I0?= =?us-ascii?Q?/c91j8Ts6gIIutYFiuiI3dQpNcmA4mREWgOuBDxBWKnt18s3momDb8VDxpdT?= =?us-ascii?Q?xIwF0qKyYsTT2uhAWLfhiJnZi96h5zxwhCJzxk8Y4E7acW7Vwfhvlb5wyryu?= =?us-ascii?Q?JMfe56pqtw=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: a8pZYZ6wmtLO7bUICjuKTYhJfPXnwO1ZTbOimvqSkUPNCJRIg6TNCzUCwK0WQ/4IPXvAt0fVnjwT4647PC0XT2zNvHUIBdEX5ma7JE2BpAriZB+Y2+UaPR4DX3v/ioB+EnwjJ5GozwFC5w2LUhij8OtMVp0aVswAgmkx9ICS8BupYjNl1QP3mBVXbysv0mYjpQzG/Kaen8/pUIokzCXEEtYTfo5gcp2zr+vMt1r8R+a/In4Py/1OAGDsQnUo6is1TmJj0W6YdAJ9PNBtfZFxktt8xkmucnP2WTVAUgP56sm2LL+tpK7/TjSC9TjPq07qg3MOlJG/eI9933l9X9qN8GREzQNNaII+3v0gaTJ5K4N4bYuvm3eqdUh7rRI9i+XbWkzkrYn6/VaRFMmFKNe6gPEe8JLRzrpRdP16DFSMzXinzPPMJDKTKlkaebauwmDTThe7dIKjKuMCN9Z72Y+r1VzjOlZqpv/yiylOMrFvoSz/0mWsw13J0OUauXSxMqgqNM068VHEp/9fFTOJddSLO2JKGH2uGZnJZRiam+FdP2Tde7dfodRAiZuMD/qkp+mFKserU7CUHjWkkqZWuhsC9PbXxu+E18fz+h6sXesErw0= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4eece3bd-6bd8-4fb8-34a2-08de60429c63 X-MS-Exchange-CrossTenant-AuthSource: PH0PR10MB5777.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Jan 2026 21:00:34.3340 (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: VD7fy/InQC+ObNLWJuOT9pwYJk2utvZwt7uVC7dihvpkEMibAvnCNid6diLc+367V8tgH5lPM0dpYI1ejHW6Tg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA6PR10MB8061 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-01-30_03,2026-01-30_04,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 bulkscore=0 mlxlogscore=999 adultscore=0 malwarescore=0 spamscore=0 phishscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2601150000 definitions=main-2601300172 X-Proofpoint-GUID: EOvLayaE06tPrDhqtHrT2607FvY7Xp9N X-Authority-Analysis: v=2.4 cv=BLK+bVQG c=1 sm=1 tr=0 ts=697d1bf8 b=1 cx=c_pps a=WeWmnZmh0fydH62SvGsd2A==:117 a=WeWmnZmh0fydH62SvGsd2A==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=vUbySO9Y5rIA:10 a=GoEa3M9JfhUA:10 a=VkNPw1HP01LnGYTKEx00:22 a=yPCof4ZbAAAA:8 a=ftHlONicu1wf5FYgji4A:9 X-Proofpoint-ORIG-GUID: EOvLayaE06tPrDhqtHrT2607FvY7Xp9N X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTMwMDE3MyBTYWx0ZWRfXx9l4cKTzAS+G 1FX4aK29PriavOR6ooNfZRj+yEmXwlkBCj30V8fTta2VuM8xEeISC4ysqOC9uFTG6w09DBXbv0a FE34IUshJrZWbHijGcZUwfSR5IIX0rNiTRaBUcdJohW05Ow8ZYV/Wj2tVT7nl69BRG2MqeGQbYj y9qQTdGW23s0h8iuVqeVi3hOVZUpDy0h+9poyy1kln/34zDTRU5qDjXBFtfvwTeF0z27/3u3KN3 +9nXVEur1PRAxWIw9jhvCIr4OmJ8i8jTXXWjD22zK/5fhoGtWNJKAPDuR3VT5moEnWxs9y1H0Cq 6xT1krJPbu0NtFGKRynM/70OQcgneFMUCyTIb4g2FwkRwVe68NvsZgmMJCbdbLVP3H7WoSlWeqS cJfgA/Qwq/eFD64WL+jKjonLVqLuR8f6eYgJ01YvTF46JVk/4fUtRCoADec96lwWzr4z9+2VHWn 6my4RM8a3p+KgcUb84Q== Content-Type: text/plain; charset="utf-8" Stop using the maple subtree state and big node in favour of using three destinations in the maple copy node. That is, expand the way leaves were handled to all levels of the tree and use the maple copy node to track the new nodes. Extract out the sibling init into the data calculation since this is where the insufficient data can be detected. The remainder of the sibling code to shift the next iteration is moved to the spanning_ascend() function, since it is not always needed. Next introduce the dst_setup() function which will decide how many nodes are needed to contain the data at this level. Using the destination count, populate the copy node's dst array with the new nodes and set d_count to the correct value. Note that this can be tricky in the case of a leaf node with exactly enough room because of the rule against NULLs at the end of leaves. Once the destinations are ready, copy the data by altering the cp_data_write() function to copy from the sources to the destinations directly. This eliminates the use of the big node in this code path. On node completion, node_finalise() will zero out the remaining area and set the metadata, if necessary. spanning_ascend() is used to decide if the operation is complete. It may create a new root, converge into one destination, or continue upwards by ascending the left and right write maple states. One test case setup needed to be tweaked so that the targeted node was surrounded by full nodes. Signed-off-by: Liam R. Howlett --- include/linux/maple_tree.h | 14 + lib/maple_tree.c | 624 ++++++++++++++++++++++--------- tools/testing/radix-tree/maple.c | 2 +- 3 files changed, 458 insertions(+), 182 deletions(-) diff --git a/include/linux/maple_tree.h b/include/linux/maple_tree.h index db6a02788902a..0c464eade1d66 100644 --- a/include/linux/maple_tree.h +++ b/include/linux/maple_tree.h @@ -156,6 +156,17 @@ enum store_type { }; =20 struct maple_copy { + /* + * min, max, and pivots are values + * start, end, split are indexes into arrays + * data is a size + */ + + struct { + struct maple_node *node; + unsigned long max; + enum maple_type mt; + } dst[3]; struct { struct maple_node *node; unsigned long max; @@ -178,7 +189,10 @@ struct maple_copy { =20 /*Avoid passing these around */ unsigned char s_count; + unsigned char d_count; + unsigned char split; unsigned char data; + unsigned char height; }; =20 /** diff --git a/lib/maple_tree.c b/lib/maple_tree.c index 9c701ee7412ca..e0929bf0cfa1a 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -353,6 +353,13 @@ static inline struct maple_enode *mt_mk_node(const str= uct maple_node *node, (type << MAPLE_ENODE_TYPE_SHIFT) | MAPLE_ENODE_NULL); } =20 +static inline void ma_init_slot(void __rcu **slot, const struct maple_node= *mn, + const enum maple_type mt) +{ + /* WARNING: this is unsafe if the slot is exposed to readers. */ + RCU_INIT_POINTER(*slot, (void *)mt_mk_node(mn, mt)); +} + static inline void *mte_mk_root(const struct maple_enode *node) { return (void *)((unsigned long)node | MAPLE_ROOT_NODE); @@ -1320,6 +1327,21 @@ void wr_mas_setup(struct ma_wr_state *wr_mas, struct= ma_state *mas) wr_mas->r_max =3D mas_safe_pivot(mas, wr_mas->pivots, mas->offset, wr_mas->type); } + +static inline +void wr_mas_ascend(struct ma_wr_state *wr_mas) +{ + struct ma_state *mas =3D wr_mas->mas; + + mas_ascend(mas); + wr_mas_setup(wr_mas, mas); + mas->end =3D ma_data_end(wr_mas->node, wr_mas->type, wr_mas->pivots, + mas->max); + /* Careful, this may be wrong.. */ + wr_mas->end_piv =3D wr_mas->r_max; + wr_mas->offset_end =3D mas->offset; +} + static inline unsigned long ma_leaf_max_gap(struct maple_node *mn, enum maple_type mt, unsigned long min, unsigned long max, unsigned long *pivots, void __rcu **slots) @@ -2507,6 +2529,112 @@ static inline void mas_wmb_replace(struct ma_state = *mas, mas_update_gap(mas); } =20 +/* + * node_copy() - Copy from one node to another. + * + * @mas: The maple state + * @src: The source node + * @start: The offset into the src to start copying + * @size: The size to copy (non-zero) + * @s_max: The source node max + * @s_mt: The source maple node type + * @dst: The destination + * @d_start: The start location in the destination node + * @d_mt: The destination maple node type + */ +static inline +unsigned long node_copy(struct ma_state *mas, struct maple_node *src, + unsigned char start, unsigned char size, unsigned long s_max, + enum maple_type s_mt, struct maple_node *dst, unsigned char d_start, + enum maple_type d_mt) +{ + unsigned long *s_pivots, *d_pivots; + void __rcu **s_slots, **d_slots; + unsigned long *s_gaps, *d_gaps; + unsigned long d_max; + + d_slots =3D ma_slots(dst, d_mt) + d_start; + d_pivots =3D ma_pivots(dst, d_mt) + d_start; + s_slots =3D ma_slots(src, s_mt) + start; + s_pivots =3D ma_pivots(src, s_mt) + start; + memcpy(d_slots, s_slots, size * sizeof(void __rcu *)); + if (!ma_is_leaf(d_mt) && s_mt =3D=3D maple_copy) { + struct maple_enode *edst =3D mt_mk_node(dst, d_mt); + + + for (int i =3D 0; i < size; i++) + mas_set_parent(mas, + mt_slot_locked(mas->tree, d_slots, i), + edst, d_start + i); + } + + d_gaps =3D ma_gaps(dst, d_mt); + if (d_gaps) { + s_gaps =3D ma_gaps(src, s_mt) + start; + d_gaps +=3D d_start; + memcpy(d_gaps, s_gaps, size * sizeof(unsigned long)); + } + + if (start + size - 1 < mt_pivots[s_mt]) + d_max =3D s_pivots[size - 1]; + else + d_max =3D s_max; + + if (d_start + size <=3D mt_pivots[d_mt]) + d_pivots[size - 1] =3D d_max; + + size--; + if (size) + memcpy(d_pivots, s_pivots, size * sizeof(unsigned long)); + + return d_max; +} + +/* + * node_finalise() - Zero out unused area and populate metadata + * @node: The maple node + * @mt: The maple node type + * @end: The end of the used area + */ +static inline +void node_finalise(struct maple_node *node, enum maple_type mt, + unsigned char end) +{ + unsigned char max_end =3D mt_slots[mt]; + unsigned char size; + unsigned long *gaps; + unsigned char gap_slot; + + gaps =3D ma_gaps(node, mt); + if (end < max_end - 1) { + size =3D max_end - end; + memset(ma_slots(node, mt) + end, 0, size * sizeof(void *)); + + if (gaps) + memset(gaps + end, 0, size * sizeof(unsigned long)); + + if (--size) + memset(ma_pivots(node, mt) + end, 0, size * sizeof(unsigned long)); + } + + gap_slot =3D 0; + if (gaps && !ma_is_leaf(mt)) { + unsigned long max_gap; + + max_gap =3D 0; + for (int i =3D 0; i <=3D end; i++) + if (gaps[i] > max_gap) { + gap_slot =3D i; + max_gap =3D gaps[i]; + } + } + + if (mt =3D=3D maple_arange_64) + ma_set_meta(node, mt, gap_slot, end - 1); + else if (end <=3D max_end - 1) + ma_set_meta(node, mt, gap_slot, end - 1); +} + /* * mast_cp_to_nodes() - Copy data out to nodes. * @mast: The maple subtree state @@ -2684,6 +2812,7 @@ static inline void cp_leaf_init(struct maple_copy *cp, * result in buggy code when a compiler reorders the instructions. */ =20 + cp->height =3D 1; /* Create entries to insert including split entries to left and right */ if (l_wr_mas->r_min < mas->index) { end++; @@ -2726,6 +2855,100 @@ static inline void cp_data_calc(struct maple_copy *= cp, cp->data +=3D r_wr_mas->mas->end - r_wr_mas->offset_end; } =20 +/* + * spanning_data() - Calculate the @cp data and populate @sib if insuffici= ent + * @cp: The maple copy node + * @l_wr_mas: The left write maple state + * @r_wr_mas: The right write maple state + * @sib: The maple state of the sibling. + * + * Note: @cp->data is a size and not indexed by 0. @sib->end may be set to= 0 to + * indicate it will not be used. + */ +static inline void spanning_data(struct maple_copy *cp, + struct ma_wr_state *l_wr_mas, struct ma_wr_state *r_wr_mas, + struct ma_state *sib) +{ + cp_data_calc(cp, l_wr_mas, r_wr_mas); + if (((l_wr_mas->mas->min !=3D 0) || (r_wr_mas->mas->max !=3D ULONG_MAX)) = && + (cp->data <=3D mt_min_slots[l_wr_mas->type])) { + spanning_sib(l_wr_mas, r_wr_mas, sib); + cp->data +=3D sib->end + 1; + } else { + sib->end =3D 0; + } +} + +/* + * dst_setup() - Set up one or more destinations for the new data. + * @cp: The maple copy node + * @mas: The maple state + * @mt: The source node type + */ +static inline +void dst_setup(struct maple_copy *cp, struct ma_state *mas, enum maple_typ= e mt) +{ + /* Data is 1 indexed, every src has +1 added. */ + + if (cp->data <=3D mt_slots[mt]) { + cp->split =3D cp->data - 1; + cp->d_count =3D 1; + goto node_setup; + } + + cp->split =3D (cp->data - 1) / 2; + cp->d_count =3D 2; + if (cp->data < mt_slots[mt] * 2) + goto node_setup; + + if (cp->data =3D=3D mt_slots[mt] * 2) { + unsigned char off; + unsigned char s; + + if (!ma_is_leaf(mt)) + goto node_setup; + + /* + * Leaf nodes are a bit tricky because we cannot assume the data + * can fit due to the NULL limitation on node ends. + */ + off =3D cp->split; + for (s =3D 0; s < cp->s_count; s++) { + unsigned char s_off; + + s_off =3D cp->src[s].end - cp->src[s].start; + if (s_off >=3D off) + break; + + s_off++; + off -=3D s_off; + } + + off +=3D cp->src[s].start; + if (ma_slots(cp->src[s].node, cp->src[s].mt)[off]) + goto node_setup; + + cp->split++; + if (cp->split < mt_slots[mt]) + goto node_setup; + + cp->split -=3D 2; + if (cp->data - 2 - cp->split < mt_slots[mt]) + goto node_setup; + + } + + /* No other choice but to 3-way split the data */ + cp->split =3D (cp->data + 2) / 3; + cp->d_count =3D 3; + +node_setup: + for (int i =3D 0; i < cp->d_count; i++) { + cp->dst[i].mt =3D mt; + cp->dst[i].node =3D ma_mnode_ptr(mas_pop_node(mas)); + } +} + static inline void append_mas_cp(struct maple_copy *cp, struct ma_state *mas, unsigned char start, unsigned char end) { @@ -2813,38 +3036,153 @@ void multi_src_setup(struct maple_copy *cp, struct= ma_wr_state *l_wr_mas, } =20 static inline -void cp_data_write(struct maple_copy *cp, struct maple_big_node *b_node) +void cp_data_write(struct maple_copy *cp, struct ma_state *mas) { - struct maple_node *src; - unsigned char s; + struct maple_node *dst, *src; + unsigned char s, d; + unsigned char dst_offset; + unsigned char data_offset; unsigned char src_end, s_offset; - unsigned long *b_pivots, *cp_pivots; - void __rcu **b_slots, **cp_slots; - enum maple_type s_mt; + unsigned char split; + unsigned long s_max, d_max; + unsigned char dst_size; + enum maple_type s_mt, d_mt; + + data_offset =3D 0; + s =3D d =3D 0; + /* Readability help */ + src =3D cp->src[s].node; + dst =3D cp->dst[d].node; + s_offset =3D cp->src[s].start; + src_end =3D cp->src[s].end; + split =3D cp->split; + s_max =3D cp->src[s].max; + s_mt =3D cp->src[s].mt; + d_mt =3D cp->dst[d].mt; + do { + dst_offset =3D 0; + d_max =3D 0; + dst =3D cp->dst[d].node; + d_mt =3D cp->dst[d].mt; + dst_size =3D split + 1; =20 - b_node->b_end =3D 0; + while (dst_size) { + unsigned char size; =20 - s =3D 0; - b_pivots =3D b_node->pivot; - b_slots =3D (void __rcu **)b_node->slot; - do { - unsigned char size; - - src =3D cp->src[s].node; - s_mt =3D cp->src[s].mt; - s_offset =3D cp->src[s].start; - src_end =3D cp->src[s].end; - size =3D src_end - s_offset + 1; - cp_pivots =3D ma_pivots(src, s_mt) + s_offset; - cp_slots =3D ma_slots(src, s_mt) + s_offset; - memcpy(b_slots, cp_slots, size * sizeof(void __rcu *)); - if (size > 1) - memcpy(b_pivots, cp_pivots, (size - 1) * sizeof(unsigned long)); - b_pivots[size - 1] =3D cp->src[s].max; - b_pivots +=3D size; - b_slots +=3D size; - b_node->b_end +=3D size; - } while (++s < cp->s_count); + if (src_end - s_offset + 1 < dst_size) + size =3D src_end - s_offset + 1; + else + size =3D dst_size; + + d_max =3D node_copy(mas, src, s_offset, size, s_max, s_mt, + dst, dst_offset, d_mt); + + dst_offset +=3D size; + s_offset +=3D size; + if (s_offset > src_end) { + /* This source is exhausted */ + s++; + if (s >=3D cp->s_count) { + cp->dst[d].max =3D d_max; + node_finalise(dst, d_mt, dst_offset); + return; + } + /* Reset local src */ + src =3D cp->src[s].node; + s_offset =3D cp->src[s].start; + src_end =3D cp->src[s].end; + s_max =3D cp->src[s].max; + s_mt =3D cp->src[s].mt; + } + + dst_size -=3D size; + data_offset +=3D size; + } + + split =3D cp->split; + cp->dst[d].max =3D d_max; + /* Handle null entries */ + if (cp->dst[d].max !=3D ULONG_MAX && + !ma_slots(dst, d_mt)[dst_offset - 1]) { + if (s_offset =3D=3D cp->src[s].start) { + s--; + src =3D cp->src[s].node; + src_end =3D cp->src[s].end; + s_max =3D cp->src[s].max; + s_mt =3D cp->src[s].mt; + s_offset =3D src_end; + } else { + s_offset--; + } + /* Set dst max and clear pivot */ + split++; + data_offset--; + dst_offset--; + cp->dst[d].max =3D ma_pivots(dst, d_mt)[dst_offset - 1]; + } + + node_finalise(dst, d_mt, dst_offset); + ++d; /* Next destination */ + if (d =3D=3D cp->d_count - 1) + split =3D cp->data - data_offset; + + if (d >=3D cp->d_count) { + WARN_ON(data_offset < cp->data); + return; + } + + } while (data_offset <=3D cp->data); +} + +/* + * cp_dst_to_slots() - Migrate the maple copy destination to the maple copy + * slots + * @cp: The maple copy node + * @min: The minimal value represented + * @max: The maximum value represented + * @mas: The maple state + */ +static inline void cp_dst_to_slots(struct maple_copy *cp, unsigned long mi= n, + unsigned long max, struct ma_state *mas) +{ + unsigned char d; + unsigned long slot_min =3D min; + + for (d =3D 0; d < cp->d_count; d++) { + struct maple_node *mn =3D cp->dst[d].node; + enum maple_type mt =3D cp->dst[d].mt; + unsigned long slot_max =3D cp->dst[d].max; + + /* + * Warning, see cp_leaf_init() comment and rcu_assign_pointer() + * documentation. Since these are new nodes, there are no + * read-side operations that can view them until they are + * inserted into the tree after an rcu_assign_pointer() call. + */ + ma_init_slot(&cp->slot[d], mn, mt); + cp->pivot[d] =3D slot_max; + if (mt_is_alloc(mas->tree)) { + if (ma_is_leaf(mt)) { + cp->gap[d] =3D ma_leaf_max_gap(mn, mt, slot_min, + slot_max, ma_pivots(mn, mt), + ma_slots(mn, mt)); + } else { + unsigned long *gaps =3D ma_gaps(mn, mt); + + if (gaps) { + unsigned char gap_slot; + + gap_slot =3D ma_meta_gap(mn); + cp->gap[d] =3D gaps[gap_slot]; + } + } + } + slot_min =3D slot_max + 1; + } + + cp->end =3D cp->d_count - 1; + cp->min =3D min; + cp->max =3D max; } =20 static void mas_spanning_rebalance_loop(struct ma_state *mas, @@ -3000,173 +3338,97 @@ static void mas_spanning_rebalance(struct ma_state= *mas, mas_spanning_rebalance_loop(mas, mast, count); } =20 - -static noinline void mas_wr_spanning_rebalance(struct ma_state *mas, - struct ma_wr_state *l_wr_mas, struct ma_wr_state *r_wr_mas) +/* + * spanning_ascend() - See if a spanning store operation has to keep walki= ng up + * the tree + * @cp: The maple_copy node + * @l_wr_mas: The left maple write state + * @r_wr_mas: The right maple write state + * @sib: the maple state of the sibling + * + * Returns: True if another iteration is necessary. + */ +static bool spanning_ascend(struct maple_copy *cp, struct ma_state *mas, + struct ma_wr_state *l_wr_mas, struct ma_wr_state *r_wr_mas, + struct ma_state *sib) { - - unsigned char split, mid_split; - unsigned char slot =3D 0; - unsigned char new_height =3D 0; /* used if node is a new root */ - struct maple_enode *left =3D NULL, *middle =3D NULL, *right =3D NULL; - struct maple_enode *old_enode; - - struct maple_subtree_state mast; - struct maple_big_node b_node; - struct maple_copy cp; - unsigned char height; - struct ma_state sib; - MA_STATE(l_mas, mas->tree, mas->index, mas->index); - MA_STATE(r_mas, mas->tree, mas->index, mas->last); - MA_STATE(m_mas, mas->tree, mas->index, mas->index); - MA_STATE(mast_l_mas, NULL, 0, 0); - - - memset(&b_node, 0, sizeof(struct maple_big_node)); - mast_l_mas =3D *mas; - cp.s_count =3D 0; - cp_leaf_init(&cp, mas, l_wr_mas, r_wr_mas); - cp_data_calc(&cp, l_wr_mas, r_wr_mas); - if (((l_wr_mas->mas->min !=3D 0) || (r_wr_mas->mas->max !=3D ULONG_MAX)) = && - (cp.data <=3D mt_min_slots[l_wr_mas->type])) { - spanning_sib(l_wr_mas, r_wr_mas, &sib); - cp.data +=3D sib.end + 1; - } else { - sib.end =3D 0; - } - - multi_src_setup(&cp, l_wr_mas, r_wr_mas, &sib); - b_node.type =3D l_wr_mas->type; - cp_data_write(&cp, &b_node); - if (sib.end) { - if (sib.max < l_wr_mas->mas->min) { - *l_wr_mas->mas =3D sib; - wr_mas_setup(l_wr_mas, &sib); - mast_l_mas =3D sib; - } else { - *r_wr_mas->mas =3D sib; - wr_mas_setup(r_wr_mas, &sib); - } + if (sib->end) { + if (sib->max < l_wr_mas->mas->min) + *l_wr_mas->mas =3D *sib; + else + *r_wr_mas->mas =3D *sib; } =20 - mast.orig_l =3D &mast_l_mas; - mast.orig_r =3D r_wr_mas->mas; - /* Stop spanning searches by searching for just index. */ - mast.orig_l->last =3D mas->index; + cp_dst_to_slots(cp, l_wr_mas->mas->min, r_wr_mas->mas->max, mas); + if (!cp->min && cp->max =3D=3D ULONG_MAX) { + /* New root */ + if (cp->d_count !=3D 1) { + enum maple_type mt =3D maple_arange_64; =20 - mast.bn =3D &b_node; - /* Combine l_mas and r_mas and split them up evenly again. */ + if (!mt_is_alloc(mas->tree)) + mt =3D maple_range_64; =20 - /* - * The tree needs to be rebalanced and leaves need to be kept at the same= level. - * Rebalancing is done by use of the ``struct maple_topiary``. - */ - mast.l =3D &l_mas; - mast.m =3D &m_mas; - mast.r =3D &r_mas; - l_mas.status =3D r_mas.status =3D m_mas.status =3D ma_none; - height =3D mas_mt_height(mas) + 1; - - /* - * Each level of the tree is examined and balanced, pushing data to the l= eft or - * right, or rebalancing against left or right nodes is employed to avoid - * rippling up the tree to limit the amount of churn. Once a new sub-sec= tion of - * the tree is created, there may be a mix of new and old nodes. The old= nodes - * will have the incorrect parent pointers and currently be in two trees:= the - * original tree and the partially new tree. To remedy the parent pointe= rs in - * the old tree, the new data is swapped into the active tree and a walk = down - * the tree is performed and the parent pointers are updated. - * See mas_topiary_replace() for more information. - */ - while (height--) { - mast.bn->b_end--; - mast.bn->type =3D mte_node_type(mast.orig_l->node); - split =3D mas_mab_to_node(mas, mast.bn, &left, &right, &middle, - &mid_split); - mast_set_split_parents(&mast, left, middle, right, split, - mid_split); - mast_cp_to_nodes(&mast, left, middle, right, split, mid_split); - new_height++; - - /* - * Copy data from next level in the tree to mast.bn from next - * iteration - */ - memset(mast.bn, 0, sizeof(struct maple_big_node)); - mast.bn->type =3D mte_node_type(left); - - /* Root already stored in l->node. */ - if (mas_is_root_limits(mast.l)) - goto new_root; - - mast_ascend(&mast); - mast_combine_cp_left(&mast); - mast.l->offset =3D mast.bn->b_end; - mab_set_b_end(mast.bn, mast.l, left); - mab_set_b_end(mast.bn, mast.m, middle); - mab_set_b_end(mast.bn, mast.r, right); - - /* Copy anything necessary out of the right node. */ - mast_combine_cp_right(&mast); - mast.orig_l->last =3D mast.orig_l->max; - - if (mast_sufficient(&mast)) { - if (mast_overflow(&mast)) - continue; - - if (mast.orig_l->node =3D=3D mast.orig_r->node) { - /* - * The data in b_node should be stored in one - * node and in the tree - */ - slot =3D mast.l->offset; - break; - } - - continue; + cp->data =3D cp->d_count; + cp->s_count =3D 0; + dst_setup(cp, mas, mt); + init_cp_src(cp); + node_copy(mas, cp->src[0].node, 0, cp->data, cp->max, maple_copy, + cp->dst[0].node, 0, mt); + node_finalise(cp->dst[0].node, mt, cp->end + 1); + /* + * Warning, see cp_leaf_init() comment and rcu_assign_pointer() + * documentation. Since this is a new root, there are no + * read-side operations that can view it until it is insert into + * the tree after an rcu_assign_pointer() call. + */ + ma_init_slot(&cp->slot[0], cp->dst[0].node, mt); + cp->height++; } - - /* May be a new root stored in mast.bn */ - if (mas_is_root_limits(mast.orig_l)) - break; - - mast_spanning_rebalance(&mast); - - /* rebalancing from other nodes may require another loop. */ - if (!height) - height++; + WARN_ON_ONCE(cp->dst[0].node !=3D mte_to_node( + mt_slot_locked(mas->tree, cp->slot, 0))); + cp->dst[0].node->parent =3D ma_parent_ptr(mas_tree_parent(mas)); + mas->min =3D 0; + mas->max =3D ULONG_MAX; + mas->depth =3D 0; + mas->node =3D mas_root_locked(mas); + return false; } =20 - mast.l->node =3D mt_mk_node(ma_mnode_ptr(mas_pop_node(mas)), - mte_node_type(mast.orig_l->node)); + /* Converged and has a single destination */ + if ((cp->d_count =3D=3D 1) && + (l_wr_mas->mas->node =3D=3D r_wr_mas->mas->node)) { + cp->dst[0].node->parent =3D ma_parent_ptr(mas_mn(mas)->parent); + return false; + } =20 - mab_mas_cp(mast.bn, 0, mt_slots[mast.bn->type] - 1, mast.l, true); - new_height++; - mas_set_parent(mas, left, mast.l->node, slot); - if (middle) - mas_set_parent(mas, middle, mast.l->node, ++slot); + cp->height++; + wr_mas_ascend(l_wr_mas); + wr_mas_ascend(r_wr_mas); + return true; +} =20 - if (right) - mas_set_parent(mas, right, mast.l->node, ++slot); +static noinline void mas_wr_spanning_rebalance(struct ma_state *mas, + struct ma_wr_state *l_wr_mas, struct ma_wr_state *r_wr_mas) +{ =20 - if (mas_is_root_limits(mast.l)) { -new_root: - mas_mn(mast.l)->parent =3D ma_parent_ptr(mas_tree_parent(mas)); - while (!mte_is_root(mast.orig_l->node)) - mast_ascend(&mast); - } else { - mas_mn(mast.l)->parent =3D mas_mn(mast.orig_l)->parent; - } + struct maple_enode *old_enode; + struct maple_copy cp; + struct ma_state sib; =20 - old_enode =3D mast.orig_l->node; - mas->depth =3D mast.l->depth; - mas->node =3D mast.l->node; - mas->min =3D mast.l->min; - mas->max =3D mast.l->max; - mas->offset =3D mast.l->offset; - mas_wmb_replace(mas, old_enode, new_height); + cp_leaf_init(&cp, mas, l_wr_mas, r_wr_mas); + do { + spanning_data(&cp, l_wr_mas, r_wr_mas, &sib); + multi_src_setup(&cp, l_wr_mas, r_wr_mas, &sib); + dst_setup(&cp, mas, l_wr_mas->type); + cp_data_write(&cp, mas); + } while (spanning_ascend(&cp, mas, l_wr_mas, r_wr_mas, &sib)); + + old_enode =3D mas->node; + mas->node =3D mt_slot_locked(mas->tree, cp.slot, 0); + mas_wmb_replace(mas, old_enode, cp.height); mtree_range_walk(mas); } + /* * mas_rebalance() - Rebalance a given node. * @mas: The maple state diff --git a/tools/testing/radix-tree/maple.c b/tools/testing/radix-tree/ma= ple.c index 85fb5616c133c..dfd7099f0d8ef 100644 --- a/tools/testing/radix-tree/maple.c +++ b/tools/testing/radix-tree/maple.c @@ -35508,7 +35508,7 @@ static noinline void __init check_spanning_write(st= ruct maple_tree *mt) /* Store a value across a node boundary that causes a 3 way split */ =20 if (MAPLE_32BIT) - i =3D 49590; /* 0xc1b6 */ + i =3D 49430; /* 0xc116 */ else i =3D 49670; /* 0xC206 */ =20 --=20 2.47.3 From nobody Sun Feb 8 02:41:41 2026 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) (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 0B301388846 for ; Fri, 30 Jan 2026 21:01:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.177.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769806869; cv=fail; b=RttaBUP8b/v2O6UYNLvqIDKhjcaGttRBUemG09QJQK/OELoPkrZZm+/UEclvJ3pyQUUNgZBngg09VJpvP6lK/vMa5I5F/6aJX21suoTuw6tFLWf59QY+mMjixrlyuflTaJgWUEqIcvbeqcAmaxzqsTg1aJQ+xsdUkqLsjS487EM= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769806869; c=relaxed/simple; bh=tNIIJUdXckQKwd9qRGmnP4xY+/JKzeqzcrdQeUyystk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=VexUvr/QZqJMVc+X/M+/F8XwRwqn+uvYaR5L1IbGDyZWSkCZEbTgK2lIFV4x/9Tz7/+u47MVo/GUf5u0ttgf9W7vIJaCL91aEUBsO4tBZGsVXNLJO+yIpcIJ7qGOhmYnu0berF/rqk+y7Zmrijs8KW776EGKivft+omKjfFNzWI= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=ikCa+AT1; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=X8CJ4YMv; arc=fail smtp.client-ip=205.220.177.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="ikCa+AT1"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="X8CJ4YMv" Received: from pps.filterd (m0246631.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 60UKDofD3911263; Fri, 30 Jan 2026 21:00:42 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=8AShXmuFjnf28GhJL3wIDEdXL+bJ0c/kxT/x9llbPwo=; b= ikCa+AT1RV1dfLVBqsu3Te2ECchjRJChQMK2xtbRjjtIAKWDz0okyFrkLR4nr0v5 mbQrIoY4ZF6BPRt69SLMktW0msIQCeyJr6BqdY1k+qU16yeWof+zTAItJKQYe/Lb xLC6V07krlrNisrXW+I9cwPaPD4tG6oXwpVxn0j3QcoejqacrCAiVMijSdF1FU3Q UBwqPR6EqxUD1hY4YoQy4cEv8TPOTLhurHgRsUBXPJPRVqfRWo6eqv4UXhMzvGCU EWljfn07pO/HFz3nIeVJIf2G1qF3Kknmcl5tjT7Q6DbNzijTuioUZVGe/TlTS/Kc OGwmzIWnp29o8iWE0LQbeg== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4bxx09pm65-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 30 Jan 2026 21:00:42 +0000 (GMT) Received: from pps.filterd (phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 60UJLgNY011083; Fri, 30 Jan 2026 21:00:41 GMT Received: from dm1pr04cu001.outbound.protection.outlook.com (mail-centralusazon11010046.outbound.protection.outlook.com [52.101.61.46]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 4bvmhe6egd-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 30 Jan 2026 21:00:40 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=DKUDGMabv4OezDZxu1M9LwL/rq/0a71VXNc52GvL2WbIecP3Mcd2YgpINUqVGPRM+oPjJousAJ05P/SYXij48+ItiWWQOiZoYsBSYeao7GfgtKV/vZ90IsS2N0738/hNxK/6Nr4H9rCJTMbRj9sALZ5/0RlrVLXUFiWBfjVezf0p6aGAxjLY4rbeMAQPDOjiC4tXuxI5XAPx252YylydXgUNip/ADkFk5ayb35LtDN3AjO8c2sSmxtBB34ZBwMthJw1hSQ+JvN5rYWjrEmtvASHbETe8XutbuQdqFU8QSf3ODE3OmSLntQccYTtbmTI2W6rVUOnh9tODNP0CY9hqFw== 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=8AShXmuFjnf28GhJL3wIDEdXL+bJ0c/kxT/x9llbPwo=; b=qwb+T+19zXxWp1IiFeuKOXWSrxnEkfDz7g2dW//w3Dq74KKpwDv4vn4Dr8D4KO1pgZierwylO2y1sY/lhCV3/mRAYCJdo4YSYQKtQ/ndDzGawfoPbBJyWdjWjSXKjgowpzPzSPXSnEbALgoRb1f6p1XpwsTE+vNdzg/bkmDxUU+RGGH0WdwoNur2DhlZtYlnfHMUaTgGmHTjz76CblOnGlv30bkuN9mom9fUUpBlAq3mJi90GW/O6CY/wqAf+gHvp0ZbqismuWwwpkyNLUlsy5Dy4Ko3nty8f+wbKX80y+0183fAkcZ4WgmnJWBiZUPIfAe8aIr7/HuA0GYQGKxVTg== 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=8AShXmuFjnf28GhJL3wIDEdXL+bJ0c/kxT/x9llbPwo=; b=X8CJ4YMvfrbPG0TGK3KJmhHHUjH1InB8qLrNt2uTNh35kRTjaPvIdbP8l0gg9JxuFk4o31/PNTWEYnz3KVKolc3q5HuDuUUuCgv/h2qS4kNZz4ezPam8GDqgH+iy19IBALQhpL/OuYYtDr9JI4FHJ/TTVZCtVJpRWO8s+0ETPXI= Received: from PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) by IA4PR10MB8541.namprd10.prod.outlook.com (2603:10b6:208:56b::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.12; Fri, 30 Jan 2026 21:00:37 +0000 Received: from PH0PR10MB5777.namprd10.prod.outlook.com ([fe80::4b84:e58d:c708:c8ce]) by PH0PR10MB5777.namprd10.prod.outlook.com ([fe80::4b84:e58d:c708:c8ce%4]) with mapi id 15.20.9564.007; Fri, 30 Jan 2026 21:00:36 +0000 From: "Liam R. Howlett" To: Andrew Morton Cc: maple-tree@lists.infradead.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Suren Baghdasaryan , Matthew Wilcox , Sidhartha Kumar , Vlastimil Babka , Alice Ryhl , Kuninori Morimoto , Geert Uytterhoeven , Arnd Bergmann , Christian Kujau , SeongJae Park , "Liam R. Howlett" Subject: [PATCH v3 18/30] maple_tree: inline mas_wr_spanning_rebalance() Date: Fri, 30 Jan 2026 15:59:23 -0500 Message-ID: <20260130205935.2559335-19-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260130205935.2559335-1-Liam.Howlett@oracle.com> References: <20260130205935.2559335-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0404.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:108::20) To PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) 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: PH0PR10MB5777:EE_|IA4PR10MB8541:EE_ X-MS-Office365-Filtering-Correlation-Id: 63b04c00-74f7-4e5a-1956-08de60429ddd X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|7416014|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?copihA6OhRRx6FfztvO/J9eObpIaBxXqPiNWF89VWTZlpgNv+Xv+rPiaH15+?= =?us-ascii?Q?cd/eLOIQuuAaqcZL8iSz4RZa4/omBm7sB/TSbjf08ALdw7PfSaF7HLcbSM++?= =?us-ascii?Q?EMEV7kzD+/DSINZ/v6brf0hqsm9u6vJpCLvSwZ/XsqanK846VoVIr28ywQGD?= =?us-ascii?Q?CK2UvV+FqMpXR5MZFrz1o3KkAHiDdJzZnZT1c2ejtgYKF5IxZrO+KJdMvtRn?= =?us-ascii?Q?f+EAr17VlIzccEwVgmMXDUGZZezjSDaPm32xin4TkzfCuhh9H+UaJWEzrw9C?= =?us-ascii?Q?W4cd8KVgt17CyUosLaaMsdHqXi3Yx6yks+XrNkumpKVrkGVbarX6xFdnNDDF?= =?us-ascii?Q?yBaaDQQKcA/aOxgKCxyXcL4v66vLyi/28JaGAWHrkmm4DD8E8gH/p5TIuR8c?= =?us-ascii?Q?OT5S2Z+xMwAEMWH81d+pb/18TaEsGS8o40EdQMPNcDp4Il2Tbwkhzhuzd+yM?= =?us-ascii?Q?rC4jo6RF6VakUc2pN7kIQQMRoBc7X4CTzmkfQvKG+wgtkxb/kQEopmKYaQEd?= =?us-ascii?Q?gETm6g+ic1cswQeBToeo9RPbwf3W2Ly7He7pthM7m79iYqaMGp9Oq6lTEHt1?= =?us-ascii?Q?I3R1TiwzOdHqUfq34yd6eWOPyBYSCGBUJA2Qnct9tQsihsKaWLBMA+SyLr/B?= =?us-ascii?Q?cAJD5Xp5XwBb1ee2QIYifHdqZx18QLO2tFc1uJiGrcECJlgDotEemETDWSOk?= =?us-ascii?Q?kY/pfqsEohEO6SGbIMDJX7Rs94U9AL1OOZ142WB8iGG4SpfQSIO7gWfSPM8i?= =?us-ascii?Q?r3GnctB2Q9J2ljUCt7Ai8zN/FCCY4k+s7+WHfHzqqA8pxJK3fvJ5rG0kZBbQ?= =?us-ascii?Q?JD0wcNiWiLhAASh/qouI8Ekvg0LPr4VUz1ljNU2aokfdGOXRCsgbCqaQDQWG?= =?us-ascii?Q?rJOO3xPjJ4fXYNUCnI+vIpf2lchbCca149o2rsR/t92LUlNw0jNF9uMpjXBx?= =?us-ascii?Q?5NcPwXSFP/v4tjuQjtVfBf3oyxIhmt31yRsOuebkHS4oqjWyN6pkkFCih5+p?= =?us-ascii?Q?hLEk8u9HjJObjeq1LP1vCTybYE6fGNc/iLMi6dZt0d6b+rNSWuVUWcoeZ/aA?= =?us-ascii?Q?lLHY5rOqseVryISY2cNFKO1n+F1gwY2rn714ixne0/GP6mcSmwa27z5E2Mi8?= =?us-ascii?Q?eegaix5e911jhB9sVM7Ey3120QpUlknOrCAiP9H5QikF+QrWiIBukXCGYLJS?= =?us-ascii?Q?ud69KwBZNxwGxFAs2LXg/U7i83NmHQ9dIWfUecbiWGuT3a5yHWEE3xhlXuC7?= =?us-ascii?Q?PnZdj2ifZWil9L9GFiX8Ae/sqF9TuqcOqZEH2PCQGbhkP3/SSRbIsXKFWo0X?= =?us-ascii?Q?W7C2rMmxNWTyUT2LBpFuNmnFPirgObsrYs6v4ecDDdRbq+CgCxW0M6cODhYm?= =?us-ascii?Q?BdP9KM3qRjhx3dz+cckXks300NLaRfM89qONpIFheuFi0JVVMCANXyNoKXU8?= =?us-ascii?Q?tfiEF7sNBUdaB5CStGMnKJkCt3HJKp654aYK7CtoLG1/G1Ri4AjWGL3q4ZIw?= =?us-ascii?Q?Oyzn6WLrRjY5Vjz+DZHHNPsVl3J965ovLicVAOI/qQJR5MxuS4MSh3qnQZmw?= =?us-ascii?Q?Hx8UoYoVxduzVGbKVgw=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH0PR10MB5777.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(7416014)(376014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?tQ3Y8yxgPKwtOvo7CMkdYsCyQEgsVJwlMkrU10NOVJUoC2Dwf90dImYyxfji?= =?us-ascii?Q?kz6+fxAlpOb2itKYVIDM3P4VqSPTAD6xB/DOeTzPsiCcMKEaOutkC9qcmT24?= =?us-ascii?Q?JXW//8oSrpK8CwwoTAro7N1dR6JzegFSSpVu8AgdSLB0Ho1egE8zbGPnGkm3?= =?us-ascii?Q?H3lf9GhUNd5HJ+b27a7qAjgnXR5ClEaQcGe/78Hhf0+Azepd0rTWH4GnR5Yg?= =?us-ascii?Q?atG+GY3laWIN4bHtu/K5WL5TfrA88aTnaZXyWv2b6GkTa4+Zn5mgPG9VqkIG?= =?us-ascii?Q?8Gg5ex34Een8kZGuCgHrwGwBIHSPco1r3vj7/8H9dl0j3tHJUnajndEqMmbh?= =?us-ascii?Q?IhSZgx/Uqmfd8nn/MvsNi7rZoV3VCVsDoJvAVg8q2s9N/mRtsnrtxVB9aprz?= =?us-ascii?Q?7b03vvb6RUIpwzx5yXnsFm0LLsNPAS7IPD6uVn4D2S56S0tMhvTF2/xjuWFf?= =?us-ascii?Q?EyjiYqB+1s56XWBmGSR1nvg3tVTy4/FjtrEMUNo1X6QXF1XJMyIQbSvCajVF?= =?us-ascii?Q?iS/y4sqMOAfJtqO0yCWrDlBB72XXpnFMMKvP4+0ADHDlMrVy6EMnS2JWKFq7?= =?us-ascii?Q?gFDf4toABe5cx7adoUe8GUyCWcKRMXAiKb1cRodsz+5Zl1Gh1AzxZMTgmXTD?= =?us-ascii?Q?er4JRLbGWWj+gbW/iBRcCPxJWC5gm0fAjOOt/B3YwDv1nwdRqwKu0MPhdEOX?= =?us-ascii?Q?bvf7XJlYr4bqPX4x7Fvg80Dht2GbgsTwrCCdIOHOaRs/aUipP4misKmTNDGy?= =?us-ascii?Q?QBu82nbENl/iZ3xjbLbladoZANVdyNjNDoW8dfLZ/Z3XV1wKO8LTbukSF4SP?= =?us-ascii?Q?N/gD61ONqMBL2eFriXHdJHPHqZxsyZoRermGz6+Qt/L/bhh2TyKob5WmNBkj?= =?us-ascii?Q?en2CONAcwwJduc2ceqyWxImwdFYB/OxP5YCPV41eTxvZ+EmnyMyLXjtPIX+x?= =?us-ascii?Q?HEKRugNXGRlKFSZ8CAQRp+cdkm4eqp8T806qHLf5VRPxsP4ALKFR8wUo4QN5?= =?us-ascii?Q?fkWj5BN3wJm0Y5buNuWZbhAXIg2sHyg/zGR8tn4LJ+MPziUQBds90YOma+6X?= =?us-ascii?Q?6/Q7fd8+xMPhu65C3kVsqmWnN2Td8vdpHRHcu8pV0MyaBs7J/AQBAKINlmmY?= =?us-ascii?Q?CQpijQgyvf+Ghc2x+qAvUpCBkca+iE1ieLsllv7zwH9PBGZU4dY1/R4qiDHD?= =?us-ascii?Q?SVhtraOvHUwFFFY22KTcASMmUm5pVgDyTqJcuchJQGlU3CsSF5yYMJsG0gy0?= =?us-ascii?Q?iOK7E2EUlASFv5LEWdMUgY+uljLK6fRa+eM730xxYuzq2Ug0aHZkgGZRtiys?= =?us-ascii?Q?EiR7tbhsGrY76jV2UTPZiazbydo+PulNPlfFLdomMEmruC/j+oINojU6j0Oq?= =?us-ascii?Q?8ghl1S1WL9YqYDpv5DHLaFyOqan+tj4lrezgTv0u/iD1DWLqvuJzeS944vvN?= =?us-ascii?Q?4lFdOhqtd0c74u6oYSjjYwEtr9l18mafS62tgqNmjWCFVdLKOGve+WUgytQa?= =?us-ascii?Q?eG3rVGNL6vr5oos8/JYI2pGi9UlzJWm8jMDKrnEuaTp6Dw5g+4G+3gcM8QrO?= =?us-ascii?Q?Prix2swUQmBM5nVPnfY4FPHD3GL7Eju7WSj90Y7qO4oPIbTQyycgHwFItQC5?= =?us-ascii?Q?LKMJO5njXYLk44OOj+xauowSf4R9uxYq6/6zmSTXPIYQ0J1vzI5USNry7Tpo?= =?us-ascii?Q?lJqVbhy4wHMDQm0/GOrYlN2t7SOEY+Wp9gJjdXUOp9OqWND43lS5V4TniAhe?= =?us-ascii?Q?24+ngnCDUg=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: j/Gf8M0uQrmdm3ppP7j+xaMtH+kyy6afdGk3VzayvlsDeNigKM0s7AH1ngjfNOZeVnFWyoyQPKy4zg7VsNbYKRj/22XLwhcm+CgvdNoneMKoQi8ily9DwZPQN76VxKVR/78NhrCVUGFh9XmZqNFIjUnvELMNlN1eJx0CTFgR6Q2MMwsFEcjF/+wdCvtRNSJFXwE6rLxlrBdnTodrVa/jjHL25rzPAoJyzu11Kuwj0ziox9H45WAlWtmHFRP5kzWJ7v+pipugNUt1UMzf+iaj0UkCqTF7FIb4U0Nk/yw8DlCbKpg63j1N6bbH3zo+UUFLMgv447YTUlO1XLs1gTocAi0UxG9u5O4Lfg7Vhqk4ePB1yvtrsagQhFJ/A3IzaAGSXoGI4MxSOkE/yK4EBnKByclL5NMEcMI9Mq2HZv643tdi/X15aIqqYVHRup8Y0qTZ6qvnq9XV8nmfESpiM+Ds0DbhUyt/AdPJsiWNjOApTYB9L1D7uxulN8KDGRPqaUpa7kIgh6ZeB0uaFT9uoeJWFzqWVlUDkFhOFQEb7AkZUG0SWDVixgiz9KnyNUkf68AitGHaIN6mFFUO6zY8Tl385U75SBECgNBLiw+LLsh6WD4= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 63b04c00-74f7-4e5a-1956-08de60429ddd X-MS-Exchange-CrossTenant-AuthSource: PH0PR10MB5777.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Jan 2026 21:00:36.6604 (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: qLd11R3A+jN8LBtmlur90hOZzZvSKAYAg3JVLKbdH+o1LLBnFWvosJDBcViD2C5xY5MVQctpYovEPPFKtF89tg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA4PR10MB8541 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-01-30_03,2026-01-30_04,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 malwarescore=0 suspectscore=0 spamscore=0 adultscore=0 mlxscore=0 bulkscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2601150000 definitions=main-2601300172 X-Proofpoint-ORIG-GUID: qdbLrYkchAw8nid748bj43luGGSsOem- X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTMwMDE3MyBTYWx0ZWRfX/zBcltqrAxcM F/9pOfKcy2vZay6jMNO/sSQN4LILHNJYmJQ6Jhn2icXeKPmR3R6CePwv/2P1VsIKLS8+PQSvjsF Cka/ZcV7OjC6sMFbSkzcR20Z3t/1lz87XQ3Pg8RV5gnVvV+3WSayBuMkabBOSehuTSTsrcfc73n XTCPzYmiGPYz007oQ5MUhq3GFG1wnP1gb/1kDCDO81b6Q1Wm+T/RqitOcLe+qIm+ZC8828Y/5h9 cr7JwGVI2KYtg3ecHkj+JsjsqR9TEmDbyybyRc1wAGsdYMOnZc6Dyma9myyHEFuoV80lt23lHoM dPvyHFUKEDW08YUOidQylKobXAmJhDZJO0xGTADEP8WsBPGXMnaMbT9VEGIMn5hzlGV4u7U2W2G d9Y2aiF0cqTgPonYmNpNonL17xkSxpKs3L6tAiIAxaHt2ujrUd6dO7zkMeznXZL+ZuWmCO2dcr3 JVrgwvMBQIZhPBm4vQw== X-Authority-Analysis: v=2.4 cv=Qe5rf8bv c=1 sm=1 tr=0 ts=697d1bfa cx=c_pps a=XiAAW1AwiKB2Y8Wsi+sD2Q==:117 a=XiAAW1AwiKB2Y8Wsi+sD2Q==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=vUbySO9Y5rIA:10 a=GoEa3M9JfhUA:10 a=VkNPw1HP01LnGYTKEx00:22 a=yPCof4ZbAAAA:8 a=rS4Dkz7vSkpNL7l-vQcA:9 X-Proofpoint-GUID: qdbLrYkchAw8nid748bj43luGGSsOem- Content-Type: text/plain; charset="utf-8" Now that the spanning rebalance is small, fully inline it in mas_wr_spanning_store(). No functional change. Signed-off-by: Liam R. Howlett --- lib/maple_tree.c | 38 +++++++++++++++----------------------- 1 file changed, 15 insertions(+), 23 deletions(-) diff --git a/lib/maple_tree.c b/lib/maple_tree.c index e0929bf0cfa1a..a10f71620e732 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -3407,28 +3407,6 @@ static bool spanning_ascend(struct maple_copy *cp, s= truct ma_state *mas, return true; } =20 -static noinline void mas_wr_spanning_rebalance(struct ma_state *mas, - struct ma_wr_state *l_wr_mas, struct ma_wr_state *r_wr_mas) -{ - - struct maple_enode *old_enode; - struct maple_copy cp; - struct ma_state sib; - - cp_leaf_init(&cp, mas, l_wr_mas, r_wr_mas); - do { - spanning_data(&cp, l_wr_mas, r_wr_mas, &sib); - multi_src_setup(&cp, l_wr_mas, r_wr_mas, &sib); - dst_setup(&cp, mas, l_wr_mas->type); - cp_data_write(&cp, mas); - } while (spanning_ascend(&cp, mas, l_wr_mas, r_wr_mas, &sib)); - - old_enode =3D mas->node; - mas->node =3D mt_slot_locked(mas->tree, cp.slot, 0); - mas_wmb_replace(mas, old_enode, cp.height); - mtree_range_walk(mas); -} - /* * mas_rebalance() - Rebalance a given node. * @mas: The maple state @@ -4085,7 +4063,10 @@ static inline void mas_new_root(struct ma_state *mas= , void *entry) */ static void mas_wr_spanning_store(struct ma_wr_state *wr_mas) { + struct maple_enode *old_enode; + struct maple_copy cp; struct ma_state *mas; + struct ma_state sib; =20 /* Left and Right side of spanning store */ MA_STATE(r_mas, NULL, 0, 0); @@ -4142,7 +4123,18 @@ static void mas_wr_spanning_store(struct ma_wr_state= *wr_mas) return mas_new_root(mas, wr_mas->entry); } =20 - mas_wr_spanning_rebalance(mas, wr_mas, &r_wr_mas); + cp_leaf_init(&cp, mas, wr_mas, &r_wr_mas); + do { + spanning_data(&cp, wr_mas, &r_wr_mas, &sib); + multi_src_setup(&cp, wr_mas, &r_wr_mas, &sib); + dst_setup(&cp, mas, wr_mas->type); + cp_data_write(&cp, mas); + } while (spanning_ascend(&cp, mas, wr_mas, &r_wr_mas, &sib)); + + old_enode =3D mas->node; + mas->node =3D mt_slot_locked(mas->tree, cp.slot, 0); + mas_wmb_replace(mas, old_enode, cp.height); + mtree_range_walk(mas); } =20 /* --=20 2.47.3 From nobody Sun Feb 8 02:41:41 2026 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) (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 F2E263876D2 for ; Fri, 30 Jan 2026 21:01:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.177.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769806874; cv=fail; b=Vh3CAIIDeGSwjIzjemytTVFofFCZMas/LBbOtu1S7QLlEEqMZAsV6bZZRxpjuE/InL1qbGAqB/G2ohsQMHJ9U9ZMO304pJnqKK/e3jL5e9F8qIw6HVpEFBT3p35P4Lr+nxE5s0butHfRMszeeDQZszzqFBkqlDHBOXQIgZEAj9s= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769806874; c=relaxed/simple; bh=XNh+QFYrxWjfwZkJVgXgtZ/SMM4Fhg7/7dmBmJOlm0s=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=Dco8vVfVWFq+p0wYkAFd4mRKnE4VccMMW4tkIf8b4HROZJZZWsIC0jk9xd+fKloisOvWoaSoHwbF3zT4FP0+nitBrGJ1FcIrlAnrr52dniajCExEwrXesN6r9MO92H9qANSKqdrLYTo5v0gEWubyWUeI7Mxmo3eMKx6CJOECRDY= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=DjjgQR+y; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=Jun/OfVK; arc=fail smtp.client-ip=205.220.177.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="DjjgQR+y"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="Jun/OfVK" Received: from pps.filterd (m0246631.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 60UKDPhf3910766; Fri, 30 Jan 2026 21:00:45 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=GggqnMr1CdAEFqCqYjCEDFfCefwKB68K6xk+1Y1Dq5U=; b= DjjgQR+yKHW/Mg9MNLAArotMmEmFh3oQMjaTZaj3E9OqhEPXZqGIImo8zRlYcfPo pVl4rBlwNzJPqFp6tuqAbwPsPp8CSBYBFL0ly6RZ6Pv8q2yi23rwDjoWtdgZyPJ0 kO6+9kOEacoPnID1OAmvyg+5b1TFyffkaSDA7LL1BJZq0RGr8XKGhyab6ERtET9U cPW8tdmsZT8C3PygrS4n14KUjOSa7Wc5tZ5yKFErTAwb/e6SUpj0ITIjL5b6KN87 wk4gEZeFeNtgnDeBYKvbdSMiAtBSJtINeC1hGDn3zKaFS5fBNAJMDSJgxey6yhC4 iQtKf5yfatKgIwcjmr4gRQ== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4bxx09pm67-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 30 Jan 2026 21:00:44 +0000 (GMT) Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 60UJV0Fd011872; Fri, 30 Jan 2026 21:00:43 GMT Received: from cy7pr03cu001.outbound.protection.outlook.com (mail-westcentralusazon11010024.outbound.protection.outlook.com [40.93.198.24]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 4bvmhe5h1g-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 30 Jan 2026 21:00:43 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=KO0n+BTGK3KrFVvIalmTNM0yuxf+HJFxjVZsDz75QW5qUdTjg7ZSFLrXlflRRcXWNZek+CRDJQqJHg1v+lwzFEznNjyoJgzpxkSDX4r46cFBhwrFaWVXBaifJkT8ZGjy5xn7NOawAT4zUOFKwWQov3+ys+EJz0SfpXE/tR56SVETNcxSTQLTTduuR8ReDUtaDkdegKXrFlShIuN8T/o16ZQvaNt2IBzdXDZ5veSahZL0k9tjaBvpIQDlMXZ1NTKPVjD8dtVoYq//cFnok22hCRG7QHz+udXaksy6b9caand+ZRf7+0+8CsX/N0iWlcmriZLFzr/TPYzPrIuxFm4SWg== 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=GggqnMr1CdAEFqCqYjCEDFfCefwKB68K6xk+1Y1Dq5U=; b=V1HXk/Bo3BdW3e+WGisHr9FkON9BKsRDhqRca4qkqD6pCymBh3FKUmlGBwZo36G11LsAXcsODiR5XJfKmarmiG7ntQaZXkzGHKbSKhvxuMEVWmeAN2dpG5VHOh/oVVdgNw5+tX89Yn/BarZKgcHm12QWy98dgdFibCfkIcekh6G8mS2UKGGJ6ChoBdcGLBtDYD8UJHHMleHoBlpMuqVQCi7Yityc2WJsX9Tnm8g2A0ViGSmre4Bnit3aQQjLjyRdWBocmu8v7mSDIo00OqH8qlbLlGZX8G2D1EzqLNE5OStIS9zqG793w12d1Xg23uYPJC9Xk3Olj/G0J3s43dDLZg== 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=GggqnMr1CdAEFqCqYjCEDFfCefwKB68K6xk+1Y1Dq5U=; b=Jun/OfVKWPXxiRbKf7GUnPC8tjqX5d92qnqE2Qo+akrl6VIGhCs9DFsr7fPAg0LPGX/a6jQtkVy6nrBsWI/mVqwKYbKVLAkl9xJxlc02HUlC6jP4wpvmErd8bH0SCYZR25VEmPNAtzuLhDulYodYWS41Oe7d+HW/05zxAPhzWuY= Received: from PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) by SA6PR10MB8061.namprd10.prod.outlook.com (2603:10b6:806:43a::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.11; Fri, 30 Jan 2026 21:00:39 +0000 Received: from PH0PR10MB5777.namprd10.prod.outlook.com ([fe80::4b84:e58d:c708:c8ce]) by PH0PR10MB5777.namprd10.prod.outlook.com ([fe80::4b84:e58d:c708:c8ce%4]) with mapi id 15.20.9564.007; Fri, 30 Jan 2026 21:00:39 +0000 From: "Liam R. Howlett" To: Andrew Morton Cc: maple-tree@lists.infradead.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Suren Baghdasaryan , Matthew Wilcox , Sidhartha Kumar , Vlastimil Babka , Alice Ryhl , Kuninori Morimoto , Geert Uytterhoeven , Arnd Bergmann , Christian Kujau , SeongJae Park , "Liam R. Howlett" Subject: [PATCH v3 19/30] maple_tree: Remove unnecessary return statements Date: Fri, 30 Jan 2026 15:59:24 -0500 Message-ID: <20260130205935.2559335-20-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260130205935.2559335-1-Liam.Howlett@oracle.com> References: <20260130205935.2559335-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0272.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:109::24) To PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) 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: PH0PR10MB5777:EE_|SA6PR10MB8061:EE_ X-MS-Office365-Filtering-Correlation-Id: 4a6b3e21-e3ef-4206-f437-08de60429f33 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|1800799024|366016; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?1DsKWZFITXO/lWQLEcZ4pGOTxdkdh+J0cLok4T82gdILOukLRlNvwaHbXZYe?= =?us-ascii?Q?pGTmzUgI3IsaVi6xAx4iNp/gc73ba5YwP3Hz9pNi3UUq7xofFzsur8ysqCPk?= =?us-ascii?Q?XXb5KAWAj8drZzBjtzgvIjgMqWzwBOeKJNDZZWl0UVQS21fYSgi7etn4rjtd?= =?us-ascii?Q?uOgWMrtGDT8sbBU1TOmlPV32O0KgeaZgs/7Z2hJbCdBrx/J2A1quK6m5sEod?= =?us-ascii?Q?6I7MBIWBCo7USlfvt6yCMp6rCess56vDrLOoODwDHqWVezTjvaLzE8Y3I0G8?= =?us-ascii?Q?7EWSCmv3s3t8YoqIVoc0BmI+t1D6c4a1yf7Q0nwo+9HP6ky0ndkBtzUZVU3k?= =?us-ascii?Q?HnVnZSJYP6cRloSNkbnSN//Cvy7/0tk5rE2AR+LXAQx3RNgA6XmCd18aqLCW?= =?us-ascii?Q?Ac/RfF0lue6SNep+OGrM67TIhIa8ueCZV+j2wUsWOEOheJlO+1NB4G061Ebo?= =?us-ascii?Q?BggsBgbwue8H8xihyJbwu12pBAyekDToxqT2Au12an3yt7sFm/EauVbD2frK?= =?us-ascii?Q?yvrQI6m205xfyHp3ctw+d7P5Ifebl2NaHZVrhquNo+ZUPwPlkAvjQb+lQdVE?= =?us-ascii?Q?pSUs9qRU7TWeH5TH/XlNf5XodQNXjr/RMxBqdB+ZaVwo/R058J+IsABrdz1C?= =?us-ascii?Q?Mw79FFJE7tTHnGC6VvsWpPey9Z9XiQH6wPS4EdyK6uV6IJShoNjx2GiRelt7?= =?us-ascii?Q?WhP95P6FvP6x4+M8Lg81yEWzCcpjuQZFp/wXqZWq4HTD//xJbVpkVRM3u8+L?= =?us-ascii?Q?hpIbeyQx78GMOCYzpQhMwLPJMCTpN7+Ts0QlAzdPWQydQuFN+TeB4e1scPt8?= =?us-ascii?Q?us9LD5RCSZTmZGgV+7SvOwV7sCK3c4yFxOj8Ghxr4awmmi+POC3vKfGTzA7e?= =?us-ascii?Q?RVJCgf52fWsYBoLM5KpGg2qccM/+DWtUGsPLHl6RfNfbt1mu76gvRp5cVm9G?= =?us-ascii?Q?ZObZW/i4kWBaYdZkUN+ty6/0dmY5a+hnCA3H86TezFcW80Ckh1hb3mkTo/zb?= =?us-ascii?Q?gOPDSMGTfV8Jns933a1vrjQ8Nj1bJ7De9bYOGzLzWrDhNFIHKpB+v/TLNF+U?= =?us-ascii?Q?3kNvr3sfyP7OMU2lJfDSOYH8WWTl8goI9HaZymXEJO8UBYT2dffW5q1sPSK4?= =?us-ascii?Q?ikwqZdmyg9AUhysk8In4ma3aXcstpn8xMFrKUufXQpe/S88cw9LpAP81T+nO?= =?us-ascii?Q?fYp+sTPA5XAQaLky7qPQ4KM74JURV7go9nBijI7MkaWxZT2Vz/JZbUNKRKSN?= =?us-ascii?Q?YwOT+SnnfJACKKPue4uGmvoso6HXB57nmx7ANSF21FsngBQNvaGaY/8ypn0t?= =?us-ascii?Q?81cV/R+XLqTV/9/Vv79oSTdtI+Q0gxM1HH4XfpcBIC3gS+NgGE9H3cdc3mPo?= =?us-ascii?Q?nMAa5QICBw8GaO5LlILwi6gB857jPKho/VdVMhJmQWWoUVgpb5avi5Uyc6Rf?= =?us-ascii?Q?F6pw4jCKEPdo+9IrSEexNdNYoN1FaBUHboByqdTJ3EnfSKzLEOO69JMgHAhR?= =?us-ascii?Q?prtpp0S/sIJIoLD4xtzBLPmkNBm/q+6th5/JBubiPrHmpkudUC7kIcTAJAxj?= =?us-ascii?Q?lyXuA3Y6poMXQ8J/k78=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH0PR10MB5777.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(1800799024)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?62ZNCspy7IaJII16Z/OGa5FUSXVfKBhGt2C+usM2aK8o9Nmqxxq06t0lD0as?= =?us-ascii?Q?rmv+0tkRf8qpvI+fy8v4tKqAUxYw7UIgH+EEBiV/+rUIOneTvkSPH7A7o6NH?= =?us-ascii?Q?Hg2lkq639qiwtculzshC9pTLEjbM5vCqWMWPeoWz3vp4cO9f/Ku2EfdtPtEu?= =?us-ascii?Q?5f055l9f9MF3Lg3/yeHqsnqAQDwLxtVGnNRMwtKmO5xuUuxZcY9EenaiY3w3?= =?us-ascii?Q?CJgpb35sAYgpIJ7Dodrvrif2+qyT+576pYZI1PT5W+DTGSVc1VdF3NuTxLJc?= =?us-ascii?Q?BHJzExhvsRwBgjw62uTjbKP9mhvyQeDUVrDbfvCl0+oJpeL4LuV/ijNq2Bc5?= =?us-ascii?Q?wxy1tcssRye9Obmlk5ijFKvM92OzNnVwHYnFIGYb1UIxmf+mD6zcfLlIvzKJ?= =?us-ascii?Q?TKNY48FBFNErWRZAwI9A8mWYMm905guFCA/dFHl1mSxbE/NsR/j8zGGdWqMi?= =?us-ascii?Q?Jqd/l+NWyObmPHqfpaeobKZ5bdg/iId2jWwtxtmAZFkNeDcOB06+GsCNNhc6?= =?us-ascii?Q?3FO/pGkHGN2k4J9HnvbtEQwjz4Ba0MdPzlh7A6D7bReWsunfImo+e6gp994m?= =?us-ascii?Q?HItN0df97eYr/is6wpRDGc/2hOnekNoFyxaOyAErfWyTFc5couaKB6/6cNwD?= =?us-ascii?Q?ihsL40xxKKjdICK0XSj7gnojS0IOZPXG+b2oDiCpAplPJTmNrZVkwkuyP/aK?= =?us-ascii?Q?mYg5OBQQA9HYFMthudYOZAD7Yy//othbi6BRx5eD5ga/OWhd3rNPSAXWnz29?= =?us-ascii?Q?hRMGZcs29JdF2OKkntcuMPg/8GmCavFZJDJAzfRfsydE4T+AuNKMSmQdCjHO?= =?us-ascii?Q?uIxAZUZMD3oYzK1JccYCgJTjSLPSUH0AM8FK8dekACGGo5TpyiIoswDrBYhf?= =?us-ascii?Q?FLX/fR4BgqAUJrJj2+Z2EWmG8KRQzM7Xq9JUl14ZwJWtdG0PC3hhMJ3LRAVh?= =?us-ascii?Q?m8ZAioC+WkysmXMrij6O8snfbAKKOg4OsT8tCC9yf+12REUKpRsKQwzlCfoK?= =?us-ascii?Q?lPY3Y8MUs3spvQukdKVv3Ys2P9bsjL44gLbT1yW8yEDOX0bIAnO1h5/623nF?= =?us-ascii?Q?gtl4TtR/nxJITKtekSo6i8+nOhT8VtYLLO2jN8eBfa50gsxdt6SdWTnzFZri?= =?us-ascii?Q?f7GANGM+KzhbqymutTPkMZ86eKZJCM6uvfc0P+EXAUdmQfBgWAxpWQn1ytET?= =?us-ascii?Q?Ok6ReijrfISyAGa7bDX4iLYMJwYRZxV2L3L7ob+q8Yw+ofoJR8vc1cg3xRNE?= =?us-ascii?Q?P9+aUQZYlwk/5sl58ZRM14w7q2C9AezcSRp8z/WTzVlswOMt2Jtu7LbPT8BN?= =?us-ascii?Q?McAAEuAAbj5Zs6wRJlhAi06qKG0m3psffJD8sIZCwxjIHRjesJXNlM4WYKRB?= =?us-ascii?Q?unF0bBusICt6SBU2/kJHlOy6DmL72pF1rSo9WfDAVj6OZE8xufAw4JSQdl1B?= =?us-ascii?Q?DBQD36usofTZ287HqnY+39RepU96pBDObB+/usq69PxGlOf9ECxQzhP1FB9D?= =?us-ascii?Q?vEkyFGpZRLJSECYYUGNRJ1olttgnpBzNUZgQSpBw5w8WdjkNihW16OyflEXU?= =?us-ascii?Q?Vmn5e6YOdnujlRa0igHBv0liYX5EQS9B/mNY8e+JqNnmC1IKRsd9an7FwUz6?= =?us-ascii?Q?Njy/o5RdLUFa7CvmQQYKmoT5QxtQZCmW0FGUwLaxpvlnLObTHBbXbFtHvWaL?= =?us-ascii?Q?+tSqonYp/CRs5WSOY8OP4XQdFsci7/+iWRrBiZwrQvZHiErqWJ3kS/P/47vZ?= =?us-ascii?Q?zeK+17BOaw=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: kgHS/oPw1MlHS0hs4gynYl448+baqGhfBd64ccI/CmNHjN40qma7MINzH6bCl2Fm+8FJ9TQDNT8wMC4utEP7mCsvgeLpjE/grcsEhG5Q2xZj2Om6QKnon0Fg/DncUHLfjdEtijwBcmXoAJPLXUNf9mEKTG7hNmR088S8sXnY5sx+MxFbXW71MWqo/X7SwuQkFUzaqoBv/xaQDv4QWnaCp1t5lexVQI1gdgrCCmv80unkYIHzhvmf7nEoPxH/s2gIFM1/h7HobreaUjFkvJGJ7PMSJAJNu7vguOTXmNPfulFkK5gVTTHqEmwuTUj4Eok8guVe16BM650Zeg24OC8qVrweClcZpaA3oErC+q+b8ph2EjMJmRydt9uvsKXLNHIbiHwAYe2aJR2h5U+Uwta4Gq5Nh+pmV4WG848eImygBL774Y1T7vocHxRA5mVR3zgqkgRpY3l9FjqnPaAdnB9XxNu69ol+kBvCeka2058GX54scID1YAMIz/O7MJINIbv/gFP7kcxFhkTnZ2KwV1FtK7ZnjtM9wTZmCyJe8LC2gItFE2eIyWHrFwFAzUX6NKE+590HexhjpZO4+JmvhYXDTuB5zLpUmSa93/PvAAsSp8Q= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4a6b3e21-e3ef-4206-f437-08de60429f33 X-MS-Exchange-CrossTenant-AuthSource: PH0PR10MB5777.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Jan 2026 21:00:39.0091 (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: ILQUJbwBTaq/1zQ5x1EF1Haa2HSK+iD42H56ET/834InvVdKy0YeuNcUYTbr2Bps9ZBE/FS/EyqrzgURvkedPw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA6PR10MB8061 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-01-30_03,2026-01-30_04,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 mlxlogscore=999 bulkscore=0 mlxscore=0 spamscore=0 phishscore=0 adultscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2601150000 definitions=main-2601300172 X-Proofpoint-ORIG-GUID: 6psFSQNhZ1JTqxNkvpA7myfs9ey7BCqK X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTMwMDE3MyBTYWx0ZWRfXzp/NpypPoeUw SACykloyDpqvOFFnathZZv8y1MqwsAhLYerzhVNMaox8g3GRjJghNVb88ZV+orTM2KsrxLL2azy fvlOPPpcPwiDiGwF2Zfkks8ekDuB30kt5UVNtneU7Iy1iwzn5EYjKZqtOxmfYQf2CJepz3zxgxv BKap/PjYrlYGHZHrW+GGwbNjeSWLQ96BN3PhuQETA7CbcFDq0DVGL7TOg0rlx8B3sE5qPyaEFZx NM4ihYGFr5wJskM+gTRdj/fQ97E3GaKKjlntVPJu6Eb0gDiv0XPxA8scIRJ2GyHinlcV1D2ABVB YQjvd5j6D6Dn3P37cYVCCZ7LRwDJ2yQokBn6MK49E+mJ5q1wYSckFGJPsB77hHv6oKDNnyZyTJD 4dD0LqtT7w5gxVI1e8FBv/jRHu2UO0rPIuuPCuFLXLG54T7tUaSdlVuOB+1ko7OwVmaxPs0pUBu QOOBo9IfwJY+AAISmBg== X-Authority-Analysis: v=2.4 cv=Qe5rf8bv c=1 sm=1 tr=0 ts=697d1bfc cx=c_pps a=OOZaFjgC48PWsiFpTAqLcw==:117 a=OOZaFjgC48PWsiFpTAqLcw==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=vUbySO9Y5rIA:10 a=GoEa3M9JfhUA:10 a=VkNPw1HP01LnGYTKEx00:22 a=yPCof4ZbAAAA:8 a=k0M0yfqvNG3lIp37doYA:9 X-Proofpoint-GUID: 6psFSQNhZ1JTqxNkvpA7myfs9ey7BCqK Content-Type: text/plain; charset="utf-8" Functions do not need to state return at the end, unless skipping unwind. These can safely be dropped. Signed-off-by: Liam R. Howlett --- lib/maple_tree.c | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/lib/maple_tree.c b/lib/maple_tree.c index a10f71620e732..4a64b4f37aeb3 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -3294,7 +3294,6 @@ static void mas_spanning_rebalance_loop(struct ma_sta= te *mas, mas->offset =3D mast->l->offset; mas_wmb_replace(mas, old_enode, new_height); mtree_range_walk(mas); - return; } =20 /* @@ -3718,7 +3717,6 @@ static void mas_split(struct ma_state *mas, struct ma= ple_big_node *b_node) mas->node =3D l_mas.node; mas_wmb_replace(mas, old, height); mtree_range_walk(mas); - return; } =20 /* @@ -3779,7 +3777,6 @@ static inline void mas_root_expand(struct ma_state *m= as, void *entry) ma_set_meta(node, maple_leaf_64, 0, slot); /* swap the new root into the tree */ rcu_assign_pointer(mas->tree->ma_root, mte_mk_root(mas->node)); - return; } =20 /* @@ -4051,8 +4048,6 @@ static inline void mas_new_root(struct ma_state *mas,= void *entry) done: if (xa_is_node(root)) mte_destroy_walk(root, mas->tree); - - return; } /* * mas_wr_spanning_store() - Create a subtree with the store operation com= pleted @@ -4215,7 +4210,6 @@ static inline void mas_wr_node_store(struct ma_wr_sta= te *wr_mas, trace_ma_write(TP_FCT, mas, 0, wr_mas->entry); mas_update_gap(mas); mas->end =3D new_end; - return; } =20 /* @@ -4263,8 +4257,6 @@ static inline void mas_wr_slot_store(struct ma_wr_sta= te *wr_mas) */ if (!wr_mas->entry || gap) mas_update_gap(mas); - - return; } =20 static inline void mas_wr_extend_null(struct ma_wr_state *wr_mas) @@ -4378,7 +4370,6 @@ static inline void mas_wr_append(struct ma_wr_state *= wr_mas, =20 mas->end =3D new_end; trace_ma_write(TP_FCT, mas, new_end, wr_mas->entry); - return; } =20 /* @@ -4437,8 +4428,6 @@ static inline void mas_wr_store_entry(struct ma_wr_st= ate *wr_mas) case wr_invalid: MT_BUG_ON(mas->tree, 1); } - - return; } =20 static inline void mas_wr_prealloc_setup(struct ma_wr_state *wr_mas) --=20 2.47.3 From nobody Sun Feb 8 02:41:41 2026 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) (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 24434387591 for ; Fri, 30 Jan 2026 21:01:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.165.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769806885; cv=fail; b=T4pQVoKrd6LXcet66ed05h2LzeKfmxJMjEWRekQ6r9dVISHe2IkhusGO9TLyz0kxhczFJPWm6Vq/LTOIGRDvHznIdrvlzTsHQ4H6duUe1/di2TjlgP6Rl3T2nskYR3NR0Ub7dCevv84qODX1DmaK3hmbmcFh+nDJawfVb08ShOA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769806885; c=relaxed/simple; bh=mYnjtAxBcKzYmIhDVxlOcHkxvi9T7CdldN09g8O0JZI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=us2nJPoiq8b/dIp/Ojnw5OgZz0CFBqTVUbl4QYLhRYA+2XzpDGTkQCpfPhf1S51QtLm1w//0fT0Rad0LLt6kAhjcgZybqMwop0D+cMYa6V8pjyMMOUWA4ed2nS7deESiAdxzFfh08GHhxyH0wagoiamRPNtEBv/PYACHyboNwUU= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=fQAkYIkh; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=XnJNN+c3; arc=fail smtp.client-ip=205.220.165.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="fQAkYIkh"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="XnJNN+c3" Received: from pps.filterd (m0333521.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 60UKDR473538556; Fri, 30 Jan 2026 21:00:48 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=Z46YKdo2lBzG2/pT0aZ7gRzGN1eS4pfYd2iyISwVPU8=; b= fQAkYIkh14KC+ixcyuTcOTxlWwozxr83fcbfk1bLpNbOWddk1RXMgeTyQlpG8JNv hfyO0aWYJ/ROTk6VLZVC17Ffb1DKT5tXjXtRi47Jah3XDoThrTMa5j7H4vzmHqUQ yPyPeS4bBvKv5aesmmC2e0gjKmoxDyphvhYw3KQe6d5sN/qODpI9Pkma/R8fOPWX ZNUcBUo5UEsyZu2LJ9ALMgVmZOk8DmMSZfyHBnM9qdb+zz2LpwGukNCus12PpGd0 glcGIaeiT4UYmEWV9V75R4jzLeNLryQ9X0LAETeKWNQ6RYA7jF/0sVHNKKaonj1A isURhrIJ355kvjiEFR55dQ== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4c10b2rcry-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 30 Jan 2026 21:00:47 +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 60UJKVu7036073; Fri, 30 Jan 2026 21:00:46 GMT Received: from cy7pr03cu001.outbound.protection.outlook.com (mail-westcentralusazon11010052.outbound.protection.outlook.com [40.93.198.52]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 4bvmhtexx1-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 30 Jan 2026 21:00:46 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=aI1wEoUFbgZKqSc6Oo31r536OyU+RxTXKWkBqfwUiLNWUj3jEjYSh2z0eVsNsfWPaiuUAanUt9HlsYAHZXTAxMIfJniuzoCNCVUKuUm0Usvn43iSHyIjHB3Fq6w6nM2YYhN0Kv8gFLjqtjJeHP7/rwhRUsCqxWMnQXC342w+kZ59Ii85t5+fpFJ2vsGHJs3q0g5vlzLcqwQ/MIo9sVEtuR6D+SBuWFvJt/7l9LaKZ7zRVeROqagWJ05ukyXg9iq6t+WgUQMXtWaiUsIwFa1N6x8hbRWvJsNYaFN4E/Lpa4ofkI1YRlLSvXmDXYl2lFmMlPXUDXg3a45W2+t/hSIB3Q== 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=Z46YKdo2lBzG2/pT0aZ7gRzGN1eS4pfYd2iyISwVPU8=; b=Ae+jaQdcOAbT3TYMBtO7h7osDygLbi4rkf7Vyl3NqvXWrpk547iidCZu7k0DzyrGzAu7vfcCUjiZRo3kWd7GBswlPF4d2CYvzH2uvuv+Qjt/NhXiWi5cF8aDOkXPFyKfjTRfIIPEBTm0uPdHL76kNMLHBKyhXKvkr3iUKI5rMM4OYWxG92ttlXcSnWi1xGoRxSvo3dR5eO5tKwHRSJnpkKRiG8beVOXAu+SnFaGKwjYgTQGZLqsDEpRkOgFc5dT+sIRizTJvR0MsQy/sxsKuY/XIdM/fTxv7dI+qaxZnJsyv2E5wrY6pw3+Gr7sjDkTs05NKgu3SR0xy+PFCVJNiPA== 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=Z46YKdo2lBzG2/pT0aZ7gRzGN1eS4pfYd2iyISwVPU8=; b=XnJNN+c3B3xzBpmBi6OoUgltfTY3bCVGsGypgVLvp3VRio4IHybb9mMViou88VUau8gCdoBMTh6DlTV3W0Rep5Ez7zpMXa5YnHPFls/AhanUxZ8iK19KAcWPRfNQYRkJc9BLNeo+2l0Vj1hU0YRNitzUGHt5TFdxolyI+mbWsD4= Received: from PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) by SA6PR10MB8061.namprd10.prod.outlook.com (2603:10b6:806:43a::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.11; Fri, 30 Jan 2026 21:00:41 +0000 Received: from PH0PR10MB5777.namprd10.prod.outlook.com ([fe80::4b84:e58d:c708:c8ce]) by PH0PR10MB5777.namprd10.prod.outlook.com ([fe80::4b84:e58d:c708:c8ce%4]) with mapi id 15.20.9564.007; Fri, 30 Jan 2026 21:00:41 +0000 From: "Liam R. Howlett" To: Andrew Morton Cc: maple-tree@lists.infradead.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Suren Baghdasaryan , Matthew Wilcox , Sidhartha Kumar , Vlastimil Babka , Alice Ryhl , Kuninori Morimoto , Geert Uytterhoeven , Arnd Bergmann , Christian Kujau , SeongJae Park , "Liam R. Howlett" Subject: [PATCH v3 20/30] maple_tree: Separate wr_split_store and wr_rebalance store type code path Date: Fri, 30 Jan 2026 15:59:25 -0500 Message-ID: <20260130205935.2559335-21-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260130205935.2559335-1-Liam.Howlett@oracle.com> References: <20260130205935.2559335-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0280.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:109::15) To PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) 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: PH0PR10MB5777:EE_|SA6PR10MB8061:EE_ X-MS-Office365-Filtering-Correlation-Id: f17bf571-2b6b-4bf8-46af-08de6042a0aa X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|1800799024|366016; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?Q4AGsO4qYHjMGQ8IrpisGaw51weAlErIPv3wWCxzHdr00LBmWafIRn0FsGXC?= =?us-ascii?Q?RhQYw8CDhsRn41vA+CIQPY/2/89bAGqdeVbpucWyTlcGqBk93Y0Tu7fa0dw3?= =?us-ascii?Q?slcD8ldCwYiKKNUK/CuhB2YYgtnVVOW0qcmZIKcI3VAYQfLOTCWr9thmHsz3?= =?us-ascii?Q?gBksu83Wha2Wwsw/sbybaNqRFiq8LGTFag8CTxHRYfQN8PGV4vaB+3ZS7jgP?= =?us-ascii?Q?jysCYK52bL8UP++vc2kZ5+PMT0oPpeU941zODlLFuHbZ4hQhrq8fAz2fsqmg?= =?us-ascii?Q?ScXWaMoE60Q4CtdadmwUmMgNpzWPXCXPe5mpBtSlQGj4NI1XxiSkPCOTaYBV?= =?us-ascii?Q?Kql2UDNTt7yW4Jb2Hlf75AM3DxYC47mGdUg+ShuKtqitwgJPBFhRnRagYrmi?= =?us-ascii?Q?tfkE+1LcscwG7C3U1PEqp1IoVaIw2a3XHZKELjwOp/pDLiuW4CVPpHKXp0gr?= =?us-ascii?Q?exa3tzgKy7vDPIiZszkaDLHUHHdD2VcnHqgRTjZSy4PfVTTHWkrQ2KisSi0F?= =?us-ascii?Q?0Ooc/ggiDNH0VVhttotKsNHx/+AgV0/77JRYASkbeSDNSY1RqTEnO7jxGSQL?= =?us-ascii?Q?sN57xGDR/p4h8/9cykcoPJvrQp8sLOF/tMiYMKZTFonkz89OA+fWTjte65Uw?= =?us-ascii?Q?NQ1IsP74zG4lDpWZR4JrayMiIl29/XMAx7gKk+80FhZt80xyIUA/IvfJx+B1?= =?us-ascii?Q?EZu95sXXsHXi7qN9vZtEp8VJf8IRvlNojcJo4SSTOdOf6tYsYlQMdTBQdwQ7?= =?us-ascii?Q?G3etJTqQdOBj8U2TGzk5dvkwicuKtfhF6lblzgwDDZDFSdf/p/Az6QY1ngXN?= =?us-ascii?Q?uayHwzbGNMtcQ3P44VqZ8zw6jsXwi7xLdm9xG4l0IqNcD40o3ByR6Sms7sg5?= =?us-ascii?Q?g7CbwZ/vvAkS8NlVvYRcU5OF5EPe3lF1fHBKaRGUyYAmDzV4L4iGHuB933st?= =?us-ascii?Q?NkS16T1fVEIEwbOfo+6PGKXSQsOgZtxvOiGG7giYz2kHpyZo5H3b7q0hFQrA?= =?us-ascii?Q?AdhljOmHp2O5yjrXIsr1IFEJbYd/pP28lVWAE4h2uxqRKf0vtjA/YFVTpwsK?= =?us-ascii?Q?rwyTk4Xz9/zwp+d+Rfh2iDfYps3G8FmCfBa++KdIyeqxTbyQTelxdbvAjw9B?= =?us-ascii?Q?CLwDFn9uetNA/bny+9WGbZe9CI3Fsum193n+A13YFkMMCRVajUG8qeothT02?= =?us-ascii?Q?j/h8pF86+hW/mfm/qcMmp+IqjAAZ53/wLrXPl2v9N2E+62oPL4DbUpkcoWqc?= =?us-ascii?Q?P2Xits/sOC+b5WkobbN1EWg5+XjTxj87R6qS8ExECJyZE9fC+yb51QukdV7Q?= =?us-ascii?Q?3dxnmz+RrO6g2DmDa2n4UYnOsVoWz5tBsEDdD3w/6pYJzLsjfVreUi7Aev3M?= =?us-ascii?Q?NzD0kwHicXX2IwSxIQEALs/I03H5+I9KsEAyeF/m24t02GNAR8gB3ctXZq26?= =?us-ascii?Q?4PeTztkYItPu50UahuhEZjq1LXtv6mNCZC/h6ItZ2jCb+lpfnNgXscRBYoye?= =?us-ascii?Q?8KU+BDfrsrc4v56dNy0l7pMGiwRt+wvHWM6KqWnHgZbV4ZXj/YF4QkaoFkYd?= =?us-ascii?Q?H9q4yzNCuAkcwwnjQag=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH0PR10MB5777.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(1800799024)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?8Ng/E8vvMWNYfYbVI9TCsc8PFSHkzzqoCJjsI5vgDq8/5ASk1gQXA3TpXdDz?= =?us-ascii?Q?LjdvniiFXloLVGn9LIEJxizRGohVRwR80lsLs64BmTEu4UuFfeqbfUsqZuY/?= =?us-ascii?Q?/LzZt6Rg4YgxTrnHKCx+awpyIMxXjlu/FtmZi6mkSNGsU2kCkGstniKG2wCM?= =?us-ascii?Q?uUT0qEpt0bVM3FJ1wQ4p/3JTfrbgLUqgvcjcio2kD6pu9Q+3HGeNTpJoyl7E?= =?us-ascii?Q?E48elc+qoLC4q5lbaM+LbIDZcsQcJIcsal7KRcTyTuNcTWUm/19NU36Ce3M8?= =?us-ascii?Q?kcFeyk857uGu2g3boJyTDcZ9Nrlp/wbO9JGvkiDexsQeYP1RYAclcUkK+gxX?= =?us-ascii?Q?VK79ocCx3ulD/S0cMVJ0FPZ88AmKWDqSu5XuHDIdGtia+L6sTqrzncDdtOMY?= =?us-ascii?Q?A+A7m8yC3spjbYcMmZWyah8qSIHb3y1dB+5L27MrhdW2kFSBykXCY3kTotVp?= =?us-ascii?Q?ZzDr7p3EScsd2HlfPDRxpUvvSsWVtGuWieFozgmf+zppqsQ/B+r3GXSlzIxa?= =?us-ascii?Q?4YsccT0loJpajMFT3LNu04v6dK89fa59ZYLuDpwsWnw9VgeJZVG4ZbVmGDj2?= =?us-ascii?Q?8l6UGEKEJlnXNScZE585p0cxfv242OFHXXT2FW+kkRTIqST8BeKVwyZBOFow?= =?us-ascii?Q?qrS7cH/pgJCmuOHNXXjXkmpXlb6witZBAAuiVy5bSwiiIct/7pMLVx69uQwi?= =?us-ascii?Q?ao88WaLTH/W2edpVIVuFA0lialUyCYZNI8ftPprlnuWCBn/W+1XIdTt+jZgT?= =?us-ascii?Q?pzxtmUtCXB59olXTB9fZPN6UdQ5v6TjnqGRWeJsvFOcNb6XTQmIlMjVOHeou?= =?us-ascii?Q?DxoAdx4UZLEYLRxmhpR1K+wS6GsIJpYSmqliTPHFsqlylV8yEJJkQJO/tVnF?= =?us-ascii?Q?v2kXWM05O9tNx7VOZwAcnsakHtmXnJaiI9FocR6xC6Cs+ke2QMeCKAlaUt0V?= =?us-ascii?Q?dD62Cdv8hOv9hf/dOzODY+p9qJWXbSoA6QgMIsg+FEcbM8NkcQbWhXTcIBJd?= =?us-ascii?Q?samp6NxxBkxvlbZY+rIju4/+1ErE6DjhE17xgqXel4q21qPRsgwc/P7A/srX?= =?us-ascii?Q?4J0S5kTS0UXrCz1qjkQz6ulC2I/jZyYtBRCOInofuqVLXWFtY4y28TSMliXr?= =?us-ascii?Q?ph8FOPQrEHC47/EMf/lrrP1CZ/xjWJrQmlgvTFzbarG44rd6W807J0Dkx62f?= =?us-ascii?Q?BzuT59N/9lWIst+YBWI/4KsXr4IetSTLlc4C5hCdzxqJULtGGWa56LJF9G9U?= =?us-ascii?Q?yeZ7RFStQ4qvUWLLM25FkKClXv5+QL87aliCy3v78+Y8v2p1SWGokMuF1WSJ?= =?us-ascii?Q?voAnr4b7Tvcutb248DPAIeKKaO4G9uYnWxp4bnuYY+CiYLZuyYKgKopKJpLO?= =?us-ascii?Q?LEK8uJ6WhqyfJ7aslv38C7u1z91rMQFJGhc0q+hwiaqUfA9UpD51sA+p8j5q?= =?us-ascii?Q?lpr+RTlfqfMx+otqIa2Jhy7HXML/XDnyIxh+NJJiGNkI+rtos/2ZVzorXjrz?= =?us-ascii?Q?L/ZDGs0gdDqKf5GekIUNqzjaf73aV2xQ4wWxUcHdyekPs73T2MrIuDJVTMni?= =?us-ascii?Q?zlbpCFJWEC/o+KkRggAd6OXMkkPJds/dbAsoKNavC6yJTAWL3X2bgNNhvcm0?= =?us-ascii?Q?OCSIVonPnh56p4EWMImF2105CKJyUjZNPI5kIaE4PENls2BMfIrf/7f97XK3?= =?us-ascii?Q?hdtWkwOuwPQtMf44k+budgoDZ8LOaO390k7gky4lApd74aewaAHy6iN5EKnu?= =?us-ascii?Q?MRoXEJZ/SQ=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: fuN5Tg3vc2YNTPpFAeCnQB4uWV3cEYUr6mA69/82e+ekmQd/sTQmOnutINUZTRC6PgYV5LmQwroTSRJ/+IxcG1NdL2WR524tFbYPWtGEbqjUpkzXN/J67L0DmwFW0CTBXRXB8Rku4ZTzfrQjfsn0dvVMQXYh3AU9KBPn9BXD/XcatoM+C5aJEHl5pOGuQvdoErIGKygNzExcTpW1DVNrTHPpeT4C9YH+0+JD1JZSk+2z3OQdO19buPsldGHeBZ82tYUamT3FmBJpfiacVmPZJudcy8EsPHfW8Cee7TWnps0STbA0dhPLzZ5MMx5FHy3116FODPLQk0KGWXLbcElSRm4LW8YGSqQMkNWJLWOYVbA42eyGU8F2XgYwo8EwaiZLavr3rsyiKktg99gHSSQVpsNzLT0NQkk++iVL1ObUHCcAWwbCuM4gcMK5bbKAURqw1NyzlZP/8nO5ydvURpJVtUt3acw8Xx/z1lGWK7pxe7nfYYcx1tIZM9qV4PsyiGZ7vMZjekwGlv0VJvunVT/UjVLg1d4LLWnB09gs7IBMGX0xnuZIna9Dvfq2UIJLm3o7SmXrp3yILMEc5D0G4mCLRBhINCwlCbNYLp+FJz56x20= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: f17bf571-2b6b-4bf8-46af-08de6042a0aa X-MS-Exchange-CrossTenant-AuthSource: PH0PR10MB5777.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Jan 2026 21:00:41.3749 (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: c03scqu3VaQQtZpzbkwXBt7aN4Du512cZ7YR6Zk484lHl2UOEBR67+a0AvQh4OqlDqjhh4pP4vAKuhO/Z4k62g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA6PR10MB8061 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-01-30_03,2026-01-30_04,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 adultscore=0 bulkscore=0 mlxscore=0 mlxlogscore=999 phishscore=0 malwarescore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2601150000 definitions=main-2601300172 X-Proofpoint-GUID: 3m33lqd9TBd1PR70kHYnVB5z2J7foQy5 X-Authority-Analysis: v=2.4 cv=BLK+bVQG c=1 sm=1 tr=0 ts=697d1bff b=1 cx=c_pps a=qoll8+KPOyaMroiJ2sR5sw==:117 a=qoll8+KPOyaMroiJ2sR5sw==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=vUbySO9Y5rIA:10 a=GoEa3M9JfhUA:10 a=VkNPw1HP01LnGYTKEx00:22 a=yPCof4ZbAAAA:8 a=_NXkmabX6IJC5lhnbH0A:9 cc=ntf awl=host:12104 X-Proofpoint-ORIG-GUID: 3m33lqd9TBd1PR70kHYnVB5z2J7foQy5 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTMwMDE3MyBTYWx0ZWRfX0uv2vhxSngfx kx124r7hCJLihwaO8rfP6iZXWj3GzIouceZ86n0Zl8NxM0ugSg2aI0JQC9JbXWdi9HhdVtnHjX/ 5qZdGGDUGuSJfrDVgziZCn95reO/yWCET5F3z4aLckohbNkOeJyhCDvTOOalOa8J36Bbz6Hypn8 yvGBU+0TLnApXE3XnowDUxUx6mwLpTGs501q/1oxg719ck7nqCKLpYIJYZaBwXHtMQptMZRCvNE 4unApP/FVAUBIpZmCFbyzLCMrFyR9cjq0N6ctpkefQemf0QF2GuKoObqcHUSMzgjg9/Rl5et5Ge Obvq9fUxatxWmn6j+vdzzIdignY2lHSfW12YRPHqGq78IV37zawcR12Qeb4ELOklRe1Ikm6n7q+ FZQsKMJIFdwhdCjQfaiMz/joIOvelSmJRqBabtdx7QzP+ACU0fTXEdIXimFvUDp/WeOs6uHECiI c/LbbKSl2JgrKXIe22Epzi9IfIqi3hhXsyNB70/c= Content-Type: text/plain; charset="utf-8" The split and rebalance store types both go through the same function that uses the big node. Separate the code paths so that each can be updated independently. No functional change intended Signed-off-by: Liam R. Howlett --- lib/maple_tree.c | 47 +++++++++++++++++++++++------------------------ 1 file changed, 23 insertions(+), 24 deletions(-) diff --git a/lib/maple_tree.c b/lib/maple_tree.c index 4a64b4f37aeb3..5280fa6d2d6ec 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -3719,24 +3719,6 @@ static void mas_split(struct ma_state *mas, struct m= aple_big_node *b_node) mtree_range_walk(mas); } =20 -/* - * mas_commit_b_node() - Commit the big node into the tree. - * @wr_mas: The maple write state - * @b_node: The maple big node - */ -static noinline_for_kasan void mas_commit_b_node(struct ma_wr_state *wr_ma= s, - struct maple_big_node *b_node) -{ - enum store_type type =3D wr_mas->mas->store_type; - - WARN_ON_ONCE(type !=3D wr_rebalance && type !=3D wr_split_store); - - if (type =3D=3D wr_rebalance) - return mas_rebalance(wr_mas->mas, b_node); - - return mas_split(wr_mas->mas, b_node); -} - /* * mas_root_expand() - Expand a root to a node * @mas: The maple state @@ -4373,19 +4355,34 @@ static inline void mas_wr_append(struct ma_wr_state= *wr_mas, } =20 /* - * mas_wr_bnode() - Slow path for a modification. + * mas_wr_split() - Expand one node into two * @wr_mas: The write maple state - * - * This is where split, rebalance end up. */ -static void mas_wr_bnode(struct ma_wr_state *wr_mas) +static noinline_for_kasan void mas_wr_split(struct ma_wr_state *wr_mas) { struct maple_big_node b_node; =20 trace_ma_write(TP_FCT, wr_mas->mas, 0, wr_mas->entry); memset(&b_node, 0, sizeof(struct maple_big_node)); mas_store_b_node(wr_mas, &b_node, wr_mas->offset_end); - mas_commit_b_node(wr_mas, &b_node); + WARN_ON_ONCE(wr_mas->mas->store_type !=3D wr_split_store); + return mas_split(wr_mas->mas, &b_node); +} + +/* + * mas_wr_rebalance() - Insufficient data in one node needs to either get = data + * from a sibling or absorb a sibling all together. + * @wr_mas: The write maple state + */ +static noinline_for_kasan void mas_wr_rebalance(struct ma_wr_state *wr_mas) +{ + struct maple_big_node b_node; + + trace_ma_write(__func__, wr_mas->mas, 0, wr_mas->entry); + memset(&b_node, 0, sizeof(struct maple_big_node)); + mas_store_b_node(wr_mas, &b_node, wr_mas->offset_end); + WARN_ON_ONCE(wr_mas->mas->store_type !=3D wr_rebalance); + return mas_rebalance(wr_mas->mas, &b_node); } =20 /* @@ -4416,8 +4413,10 @@ static inline void mas_wr_store_entry(struct ma_wr_s= tate *wr_mas) mas_wr_spanning_store(wr_mas); break; case wr_split_store: + mas_wr_split(wr_mas); + break; case wr_rebalance: - mas_wr_bnode(wr_mas); + mas_wr_rebalance(wr_mas); break; case wr_new_root: mas_new_root(mas, wr_mas->entry); --=20 2.47.3 From nobody Sun Feb 8 02:41:41 2026 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) (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 C714C3876B5 for ; Fri, 30 Jan 2026 21:01:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.177.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769806872; cv=fail; b=Yv5e/xMFjnSG5DPThss69eNgT7ZXFZ7PUUy+iR1f9Wp0DUbN1eqXzF33SBGQrDL54CEHyGWkGcro5LYSXWBRkTwx3a4ZYbUJWD3TPZ/9piyOZtVjreeLc6WWHhKkH6JjYsv+SABLUOqElilTf9VBtUKNN3x5CarCIBJWfyGhC/E= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769806872; c=relaxed/simple; bh=OxBcX7DWu+wKFvldGTiyhJZiCUuduUdTabsEI4YmhX0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=GzviI55mClp304YA7mBbltghc++Fl23a+QueGKBhdKtFM3EeJAkAbQ6usoMYS30AHVr3n4Z7qaeRP2Rtov+3umgblaUCEX7NoDxZHeBPlyfXTNENu9oaZgiIS1bk21XMEAW4oBJl+UZmRs7mbpv10Rk3PhJucCDsg5wavJH1gx8= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=VVXYv+ms; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=M7ckk/GK; arc=fail smtp.client-ip=205.220.177.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="VVXYv+ms"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="M7ckk/GK" Received: from pps.filterd (m0246630.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 60UKDVUt4028717; Fri, 30 Jan 2026 21:00:47 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=pSIi1yhXk5IuY69n99aDDBJcBkNo5zv1nX/Mvo5fjno=; b= VVXYv+msFwFDnazBBo67M7NpBlPZsgzsKfOeSp2LwXuLULPnC4PtERT2hQWDzko4 rtJlHJ030jaYCQT7doTOl55TvRLAlyNB4xxrCyJPF/IblZfO9VTbxtSATrR33G3F 2yPC9IqszhO9qyLXzDNU0DSbmmzK6l7bukXba9Q6vdKGPXThrQXxuUrnpy6oN7mG CvzQnSJl3MIKNewPQm+GcgRLCyngZ75Gq1CwzHLm2baA+JM/Siy30k3ksfPk8VrU KmMfHriyERMVFJMoqQdJu/MEhp9xRgyjuPHp+5PxJSl8CUmvgI8kORVrcAlEdO+Z uS2iZiuKHeqaIaVaSAZhWA== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4c10668cg5-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 30 Jan 2026 21:00:47 +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 60UJKVu8036073; Fri, 30 Jan 2026 21:00:47 GMT Received: from cy7pr03cu001.outbound.protection.outlook.com (mail-westcentralusazon11010052.outbound.protection.outlook.com [40.93.198.52]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 4bvmhtexx1-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 30 Jan 2026 21:00:46 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=vzC84NQ0U8kwCmMjAaYtafukJzfQ86BuamEzbCMF+8ab0+9NMUkOknmysy7sWl9ZXFR8wKxGRshtNBwMw4fEH8Mj+WjXCWazjHu8r1806hqVWD3hLbSValbCNTFLnw7Q3+sY0A74xnXpUL6SIUwbqwlqLxeVEDbx9qhwf3jHvViFVmrotOt5gkguMMjvihLumlWYuj7EYOHT3jo5suaG4jhr/6w7RhLkzWibC1N92IKsuHz3MSxX612frwbxPdQRxKC3RknU8XiBTltt8aCftM1mtfIbCp90Uhs7iGUJ/c4GhpdDuvR8w69f34Kh+YS/Jd6chLMLbxkT9QcwFzLuOA== 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=pSIi1yhXk5IuY69n99aDDBJcBkNo5zv1nX/Mvo5fjno=; b=MePd96wWsfIjOt9sBhwG/x+q1GzxjJyolFFMzQfiqYAoblDERgtN2EwuSvisyIcxT3BLc3uSaxcWtJMfJG8Wfx8BgyCB4rJOZzLQvx1AvjwjNiiWW2GXOWR+eiV/9b1K85ZnaStjtH3sN3tlpoa0QT60WoACIBWlFdBk4JYhGiYdkWMWmhdLpwJ0rHuYdfRImV8J3ttjQthzva23JjXmg6qLekt4n84kEJxsxhSZWT2DnFtA8LxUZRmnFHwpLFjVeXqP8ae9I/CkIobC1xtBJFYdGWZnQ4aHrK6IDiyDFqfvAo81Nf/70cVWoN55HJTcmJ0U+OI972rQVRufS9v15A== 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=pSIi1yhXk5IuY69n99aDDBJcBkNo5zv1nX/Mvo5fjno=; b=M7ckk/GKktnINiuOVqEn+yfjgNE40nfiig++9qynpKfni6Q7uOANfTBMjFvk9VNYpa9IkvLxU00LT0UVrcZuikuiZnJxdqTtPxDBleE+M6aVepBdNy+6hgNEYesB75tu+DtAeuhnpjFdf5eYD27EgLiJYf3r8ANTzF50e4IFiGs= Received: from PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) by SA6PR10MB8061.namprd10.prod.outlook.com (2603:10b6:806:43a::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.11; Fri, 30 Jan 2026 21:00:43 +0000 Received: from PH0PR10MB5777.namprd10.prod.outlook.com ([fe80::4b84:e58d:c708:c8ce]) by PH0PR10MB5777.namprd10.prod.outlook.com ([fe80::4b84:e58d:c708:c8ce%4]) with mapi id 15.20.9564.007; Fri, 30 Jan 2026 21:00:43 +0000 From: "Liam R. Howlett" To: Andrew Morton Cc: maple-tree@lists.infradead.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Suren Baghdasaryan , Matthew Wilcox , Sidhartha Kumar , Vlastimil Babka , Alice Ryhl , Kuninori Morimoto , Geert Uytterhoeven , Arnd Bergmann , Christian Kujau , SeongJae Park , "Liam R. Howlett" Subject: [PATCH v3 21/30] maple_tree: Add cp_is_new_root() helper Date: Fri, 30 Jan 2026 15:59:26 -0500 Message-ID: <20260130205935.2559335-22-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260130205935.2559335-1-Liam.Howlett@oracle.com> References: <20260130205935.2559335-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT3PR01CA0040.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:82::26) To PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) 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: PH0PR10MB5777:EE_|SA6PR10MB8061:EE_ X-MS-Office365-Filtering-Correlation-Id: 3c315743-641b-4678-a34f-08de6042a218 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|1800799024|366016; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?UqllA14kmPWtWx2OcX0K4ilP3sic+k52t593GsI2bOeYT7HE1JxX+ATURy17?= =?us-ascii?Q?maUUUpARUpvDhvPEIvHsKCroEYL72SkYCEBiv6dSrqw+zs+NoggD8rlW494/?= =?us-ascii?Q?EqJEYnry+LprDEg4jArhc5aTgKJfTbrH90WBSZu8ZUnzCSyhv/4Mf4ZrruOS?= =?us-ascii?Q?Kj/LBXXH2QYtPs1c2pB3pRTcloCLwMUpHCNpGlHZgSsUh35TKHx1kmdecOBH?= =?us-ascii?Q?/ll4loKHmnLcab3nzPZI7pTNJmz41yolsI5ephxAk9CS7z2CjZJWRkHkJd3v?= =?us-ascii?Q?dPxl0+bRJfZj5uithEzJ2Q96l73J2k69X+tbzLaTkB5fmZPqyPov/YHettve?= =?us-ascii?Q?PiNRi0PQqFUrjAFGW7MylOkhqGZ8zPRBCs5C6wbtWgLbsqdbJENLtvehx6XA?= =?us-ascii?Q?J4zmZYZlGcG/LTeKksNY3zLceOuABT42ruq0SxG0rwbg8ae2Ca71e+Lxh6hr?= =?us-ascii?Q?D68ywLyqDFSZ93azmx2cjoBxBlvmVb33lXnWpgNbWKa/R8Oc0EXBYBv5LZp7?= =?us-ascii?Q?9Gbxhz553KpRPfzyH92tgQKTOW366uCh75wVBHRfF5CnNzBRu9MLDd5aRSBR?= =?us-ascii?Q?3u0EOOwhgoFVFRMGRTVI3U9PsMO6Bb9IvvSLzj3Vw5TnGKj4U/jmFKR6L9Ou?= =?us-ascii?Q?n4F4EuMmq8JTUnPYtjC7ju27wo7jTQZp+HEPFEzL7BdQT+K3V9Ysp7ZFpo/x?= =?us-ascii?Q?7k1UcVR91EgbSGjoR6BsM+wAbbAszX+VWAL7D9+WRkcIdX6jMJEHFfJs0VM7?= =?us-ascii?Q?e8Hig16VXqE6aJ3m/vZNgnLhIuwy8SQE/8vvrvPcmNnmd9W6M9s57jg7p2RB?= =?us-ascii?Q?dwR/WRwI+F913qNMN8TXAb8RUy7uJJ2sCUcP+scHh0QivB/kJUc4zcCFec6q?= =?us-ascii?Q?grAouemeBALOd2zbzuXSs/sPj/vsD7pO3XU/q5LKtQ93PWazv/J7W9BHV/h4?= =?us-ascii?Q?T0vQb9TOQ9ib2flQ/KkyaT3clSr7BGbM5iCUTbQu1Cn3yr7RKUsZ++LrI6i3?= =?us-ascii?Q?xSPvG3iWx0mSQ0+WbThNJhM0P/LGsS2av/594KA7Mag4LYA+jOATrj6e3Hww?= =?us-ascii?Q?tW9yorh5q12enrwKgbHtP3aMNfis6f3wrsFPqtoM6LGKjbSZc5r8XZj2MBMo?= =?us-ascii?Q?NFl30fxf7eZbps4xrHyuUSjMrCBgXhWcHUDpGDrbpF3CCA7Su7QQ6/6bPvXb?= =?us-ascii?Q?AOZm2peE3dnNN0ZwG9Q9Gyzex8KRQgpotTlErdSRI9ay+xHSj8TNwtGPclTP?= =?us-ascii?Q?Y3ZydCCRZa8skD+K+amH+f585brqwUjC9MVBRzEA9NiMRHMR89+Rwra40II7?= =?us-ascii?Q?/WjNolII2TMihwwD34jTEfs3vb7AJfSQHBJ2dBKRQwcFf721KWmCu4dGJrIP?= =?us-ascii?Q?1i3WKlXcPd8RmJOcKqyVWIwABpJ1XxBVtpkoRL/Yscpvth0cDSz5J8gG7xza?= =?us-ascii?Q?BqHmRM3NKXmN2RXuc5LS/2o0HeEPmtxhOiyrcDk0XTTKqxzb0lwY2xvetggc?= =?us-ascii?Q?vPg+dV6xAjRj7LrHrVZ38AgH+h2UvSCT7r80dv4g9Gfo4TNn/ASKE7P0Udtw?= =?us-ascii?Q?ZhDNn7XzXMGp7Ug8lyw=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH0PR10MB5777.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(1800799024)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?aGSjpHivr43VXQfaBHK15bMysGCYaC/7qaverupbPvPSYIgPyRmOCCijOXR+?= =?us-ascii?Q?VCU2CGmSnijtaHdvXA8DR/OOWZVy7CFUOkvzu84NhywlKiQMhd4MEml4uo66?= =?us-ascii?Q?roqlNbk9UVejX03HAlkSA+urPTOaTCRFi9R5VeRRj5H1v4rmvtaeCiD5g88J?= =?us-ascii?Q?s/S0joHy2xyIEsChXVZYvhs1gOG+q6NiMdb2L9bZ26ByZdxWonTqu4WMcsRa?= =?us-ascii?Q?pO2zNLpI9SGDZ8sW9k6vYIGb2hmktxN7+JWW2vVuYc8uP1F96qH9Sosyy6DH?= =?us-ascii?Q?ifH/ZuLHpvi+QJb3XjKIg6Muix24ecLT0TzXtJ+GWYlytHn8R2HoWPKuJgtS?= =?us-ascii?Q?TDd1G6waHlaIvMiM1zNa8vSoOEBQml8l9H4pzMn3bJdjbzHSL8O8Xb40caWK?= =?us-ascii?Q?xpSJsFQMhRn6QWEP3FtnHeCf99R0oNy2vg1sJsLPvT85ZyAgdB8vk88RG810?= =?us-ascii?Q?rdxgLVKcIoBpH20LbqsXQwX4qOEV9Z+7Exr8DoMKtA8HfgjzvWFuNn2XJGOh?= =?us-ascii?Q?7csWoEF5mQCwUVEQIMURLhpsQrIJ4dliH5bbjJu4yAD/SZl6ZwgRBfxCJUtu?= =?us-ascii?Q?SgjzmYoZdEjs0T0/if9J4oA/tqEyQg0EFmKCyVCCS43YkiY/O9ORgyUkcyhv?= =?us-ascii?Q?yN/eKWFvPz4dfQVKexDyt4ERWKDFXh+2Bn8mX0IxJ22Ew44EEL/DW1+GRPJA?= =?us-ascii?Q?fvkm3mwjsS5e9EXlYf/GggYtOnUwmO/XtmFHlh32QZKQUW9/IvQRMAGVghM1?= =?us-ascii?Q?l2xLrwle4rY36KcXKV9Bd0YdrHOCXQVZ4hvrjmlNoKoB4jkMGPSwODqft71v?= =?us-ascii?Q?hDi/5QuZYgOB6tTDLOUZxalwkVs7VnzQbwK81K59gpISWLTR03t4Na8hWBJR?= =?us-ascii?Q?svGe5bwMZvNXRHO1La5dd4cPallU+YXI1Z7kw0o03jioyyuEiXv86bhLoM8B?= =?us-ascii?Q?UPIrhhuplxLFXtAD0qGGVnP56H3E+1e2BWriAgf/ZHWAEh+EA9DjtwyHf8Af?= =?us-ascii?Q?/Qhq2uOaQ8DipnrnF/Oq7p2sd9k9MmvKwdLLO4W3C7DI/5CtK8UeXP5qTOOm?= =?us-ascii?Q?vUrqr8ENgjBHtkPc5ZcRy9y4qymh36EXCsheeuMcYCPMu4Q9RP9y78S8IiDu?= =?us-ascii?Q?JxtP07OVTwhdKZTDBPmsnIqqp7D0VpXHGtK2o9H0+cnVF4K5FeY0u59824z8?= =?us-ascii?Q?Tl2HYndiSfXJFpxd38u5ve+5rfmCC1Dj+b+n9O8ie91PUlGWuqjuV39D2gJ5?= =?us-ascii?Q?7+w/+dhoUJp/LGyQZ6n/FPOwa4maEmzqyzdakD/bgDGscdpPmsoUxj8ggSxV?= =?us-ascii?Q?PGMroh8JiJLK7kBWDFfEN30sVABEfo2SFmlKTPWmnd9h2EFFxJ0Dz+9rZ2KP?= =?us-ascii?Q?VHyZfFX7sMVe5mOsH9lWaSDYu/Cdn6sbEcR9snD4pdAFnBhDLFCDbDgr2yNm?= =?us-ascii?Q?EUT9ynrEx/xJTPu5RegJLC2fN4rmV+AMl2oDdfRmYdQrCJVe81iv3AQtUkVF?= =?us-ascii?Q?vF1A41iMUfn50ESxwZrimEyvTxNqnQdLfoLs1CZDUp/msXfBJg0GVS2iFHDi?= =?us-ascii?Q?EzohjY4S7S1gvKCT+hJUzwwSqfJFUFbm30Q7b6iLD/oxlcOXbZKgX955TWAc?= =?us-ascii?Q?kITXyLqwrxUluc51mNfGUDK2/NUfwYYLLYAYvP3JPcOTSIqfl9Vxx/mnaFIU?= =?us-ascii?Q?UjBhj7X56NYaHIjhrk7ocJY73QdXRq9SDslE4sB0fPOf2cuN99egLNsOtBOm?= =?us-ascii?Q?G7PeY6RvPg=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: EKk8umIXAYdMx/2nx4OfVycog6JPcfw+9DL34juHGRSNQ58OsI+HfAR5ceW2+WcrBAWfSmEd0dsV8hp9uQRXZmBa6xKvbqQdNn0hVtN3L9gMdvv1lCJ2dr7WpgoDZmVdYeNPrbGaIGvVIjjPu0Z9VhDv2tjxioAomgSm2GsIEKvl8YZmrc3rgrqRd6LDma+VnayRB8iDQTECahms4gMsvcPOtG92Fd6WvX+VyAKxapdyOr3T7wxyUx52o4qilNhTHbv0G8MFj3K2zE/sZgQ9+YxCG0v7R5oHIKhkzTY8/tVJdIhulTwuyPI7h+8tejneucCrNdfOd8YZHJB+spx99XKUDOfgfp1+c6krlcssBG1TmW8kx4yfv9qeFPfk0L2HRF8NAHlUoLewbamKy2AVC63Gf8a8z8RzFMmYvLFBvVXLiUw7ajFnt6Ea+lkIA7NCgtzSnpeNYq0jp25JRP8mpmckkIlCcw3ketRp7wHWj3Vb6YNRIzwbvho/AAvc10ONV0bINm0RvyKrLbAUMkQK2Y8LS1qDxLzQyS+buLFTN2FSgfdOEuF6wl/4MGdo7no7Pdoyn/fD3P16qCV1ILszQsJkLuZ3wLAKrB3iBnO3tvI= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3c315743-641b-4678-a34f-08de6042a218 X-MS-Exchange-CrossTenant-AuthSource: PH0PR10MB5777.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Jan 2026 21:00:43.8066 (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: 0xRSwQ1Z77dMJ3OZAftDXZaPvLqz9zhowGUWIw7J1bFRCRcVClsVcGQLEhu6svs2ZdFwLH2aHoian4GDojj3jg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA6PR10MB8061 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-01-30_03,2026-01-30_04,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 adultscore=0 bulkscore=0 mlxscore=0 mlxlogscore=999 phishscore=0 malwarescore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2601150000 definitions=main-2601300172 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTMwMDE3MyBTYWx0ZWRfX6X/+ecMORZYH eHpsveGt7GRAiV9CoA9RJWznMJ/f4zvzWjL97I/nVq/qir8FSBW5FdbP7xc/OHz3tbpFiSqhORY 4+SPDOoRnr7tBPbhC+9DKGPpanwJxQIW8PDewiBMlIU5yLLsI5mIbjApzSK9AxLSfPYE15FhPE9 3kInTrq6GSgtrxS03kL9RmQWoKmBYkuYW5yrLuR8hwwu5nmxe4cNyk4k4E7xGPmdkc/E1B7LuhN crGDo/qhCOImXa6Hxs8uA7DB//Xq+GtdfV4WCOwVJt4stm5Osgtg9uOHQOh5fSKVRBbokTCb5Lk QEAH8VWnq7iwNABhlc9wjh0qOpcqi5XGaHCi6Pv0JkW+YhxWjjOtqj8JFKwNouVVI/YU6sYSV/e 4Pw0grqsdyBwY17O8IY+sz/YDP9gC7TatQxivJoV+4jaEyFBr1OKwPl7B+Kw/x5vY0vuJCRE1am Q63tb3bTghBWy+N/JGMpAOJGrc8shGRc0+KzZhOs= X-Proofpoint-ORIG-GUID: Peoe5lKnrtRI8MNsT4kJTXNZoC08Elf_ X-Authority-Analysis: v=2.4 cv=EebFgfmC c=1 sm=1 tr=0 ts=697d1bff b=1 cx=c_pps a=qoll8+KPOyaMroiJ2sR5sw==:117 a=qoll8+KPOyaMroiJ2sR5sw==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=vUbySO9Y5rIA:10 a=GoEa3M9JfhUA:10 a=VkNPw1HP01LnGYTKEx00:22 a=yPCof4ZbAAAA:8 a=j0p3HzqOWq5dXWzuM78A:9 cc=ntf awl=host:12104 X-Proofpoint-GUID: Peoe5lKnrtRI8MNsT4kJTXNZoC08Elf_ Content-Type: text/plain; charset="utf-8" Add a helper to do what is needed when the maple copy node contains a new root node. This is useful for future commits and is self-documenting code. Signed-off-by: Liam R. Howlett --- lib/maple_tree.c | 70 ++++++++++++++++++++++++++---------------------- 1 file changed, 38 insertions(+), 32 deletions(-) diff --git a/lib/maple_tree.c b/lib/maple_tree.c index 5280fa6d2d6ec..42038e42a4c7e 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -3337,6 +3337,43 @@ static void mas_spanning_rebalance(struct ma_state *= mas, mas_spanning_rebalance_loop(mas, mast, count); } =20 +static inline bool cp_is_new_root(struct maple_copy *cp, struct ma_state *= mas) +{ + if (cp->min || cp->max !=3D ULONG_MAX) + return false; + + if (cp->d_count !=3D 1) { + enum maple_type mt =3D maple_arange_64; + + if (!mt_is_alloc(mas->tree)) + mt =3D maple_range_64; + + cp->data =3D cp->d_count; + cp->s_count =3D 0; + dst_setup(cp, mas, mt); + init_cp_src(cp); + node_copy(mas, cp->src[0].node, 0, cp->data, cp->max, maple_copy, + cp->dst[0].node, 0, mt); + node_finalise(cp->dst[0].node, mt, cp->end + 1); + /* + * Warning, see cp_leaf_init() comment and rcu_assign_pointer() + * documentation. Since this is a new root, there are no + * read-side operations that can view it until it is insert into + * the tree after an rcu_assign_pointer() call. + */ + RCU_INIT_POINTER(cp->slot[0], mt_mk_node(cp->dst[0].node, mt)); + cp->height++; + } + WARN_ON_ONCE(cp->dst[0].node !=3D mte_to_node( + mt_slot_locked(mas->tree, cp->slot, 0))); + cp->dst[0].node->parent =3D ma_parent_ptr(mas_tree_parent(mas)); + mas->min =3D 0; + mas->max =3D ULONG_MAX; + mas->depth =3D 0; + mas->node =3D mas_root_locked(mas); + return true; +} + /* * spanning_ascend() - See if a spanning store operation has to keep walki= ng up * the tree @@ -3359,39 +3396,8 @@ static bool spanning_ascend(struct maple_copy *cp, s= truct ma_state *mas, } =20 cp_dst_to_slots(cp, l_wr_mas->mas->min, r_wr_mas->mas->max, mas); - if (!cp->min && cp->max =3D=3D ULONG_MAX) { - /* New root */ - if (cp->d_count !=3D 1) { - enum maple_type mt =3D maple_arange_64; - - if (!mt_is_alloc(mas->tree)) - mt =3D maple_range_64; - - cp->data =3D cp->d_count; - cp->s_count =3D 0; - dst_setup(cp, mas, mt); - init_cp_src(cp); - node_copy(mas, cp->src[0].node, 0, cp->data, cp->max, maple_copy, - cp->dst[0].node, 0, mt); - node_finalise(cp->dst[0].node, mt, cp->end + 1); - /* - * Warning, see cp_leaf_init() comment and rcu_assign_pointer() - * documentation. Since this is a new root, there are no - * read-side operations that can view it until it is insert into - * the tree after an rcu_assign_pointer() call. - */ - ma_init_slot(&cp->slot[0], cp->dst[0].node, mt); - cp->height++; - } - WARN_ON_ONCE(cp->dst[0].node !=3D mte_to_node( - mt_slot_locked(mas->tree, cp->slot, 0))); - cp->dst[0].node->parent =3D ma_parent_ptr(mas_tree_parent(mas)); - mas->min =3D 0; - mas->max =3D ULONG_MAX; - mas->depth =3D 0; - mas->node =3D mas_root_locked(mas); + if (cp_is_new_root(cp, mas)) return false; - } =20 /* Converged and has a single destination */ if ((cp->d_count =3D=3D 1) && --=20 2.47.3 From nobody Sun Feb 8 02:41:41 2026 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) (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 7FFED3876BE for ; Fri, 30 Jan 2026 21:01:20 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.165.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769806882; cv=fail; b=GM1OpLUjyt9vT4o8BMQwSZQRTWeY/rKY2wNzSUsLcxA4uL7VkdcUlwyKQ9PR4RtGk08Lk8Xi3+2cIpLaYudB/45FE0bMMWllu/SQcRR2vrRlzaTj9ENFWfEoCqfV3YyhkhBZYcMh23Hi4yMZUXDY9AKXYRMYtuOWrStDXCDkgME= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769806882; c=relaxed/simple; bh=Hhyb1qSMGruBQzWqUyKvrBXfvFHxyAsIzM6XM02n6k0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=F7/nvhf4OHN91sNfnSGcRVsh4lrqDyWVEdkc0Cb95yO1pOfWOOKYxF8rtAcdqkwNpndpPLGcJSR8a4+xy54BIcV69wIsGn22TuiT5a/gO458yv6GLG1DX+uUXngd5QgI2wpjsWADJdRcjgfoEE5b8t3PrHyHdzjpGBd+/7UlLaY= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=BJl1aY9U; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=aTtvc5mc; arc=fail smtp.client-ip=205.220.165.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="BJl1aY9U"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="aTtvc5mc" Received: from pps.filterd (m0246617.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 60UKDWSX3338239; Fri, 30 Jan 2026 21:00:50 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=ij127MjH/23HQH7siD1bBvxIFpCr1d8ovwaQeRj+ZqQ=; b= BJl1aY9Uh2IYKr1OyHwd24bFhHZN+hhNP8DzgOD9D8EIW40zz+L9Z3zvzOBIl4wC q4lwlQs0ltMovTmQgw4SRvLiAXa+7AP9utQvX9Zm6Rkw/r/lnEuHAKEGzLy2rXOE HvdejfC7pK4dk039BcIN6YEWwmAOGdHtZ1ZQoqHNHgcdPGAKRKOFyMPr0bIQUurm 97FPyg8iOozntBMKOqXsBSkQbNkE8UZ9RmYuicTpgwRRJcp7NUEmwvgPrfbRFaEz Bqgt1kgE61w8gdCLS7H/ia8xx47BlOTkTJwJ6QRraZbh/5i3/bgkRW/tZmuXNjC2 /OuZCakGiyFZkhHapKCmLg== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4by39rdw4q-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 30 Jan 2026 21:00:49 +0000 (GMT) Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 60UIlbpn012598; Fri, 30 Jan 2026 21:00:49 GMT Received: from cy7pr03cu001.outbound.protection.outlook.com (mail-westcentralusazon11010028.outbound.protection.outlook.com [40.93.198.28]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 4bvmhe5h8c-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 30 Jan 2026 21:00:49 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=cyn1o5shLfO7RLuHuKMZbOUtlInNr6LxdkPaFixlEXNGVXiks4LaSxrgkagYn5Gq6debfzKOpA7VFAJng/SYDDAbwUcYRiEIOvTFhsKYMj0SPDQXqcx+fV7rxQ6lBPQrp13+CSeZLe2Rg4Wd+jMbP26hqOn7WBl1l8On9hHF70ZarlQnUUqTL2W6snRSr0C8J6XZr8qAWoQlq3YjoMfQdV/iZTR9BD6UOe0If56LrzmJyDgz2ZAWE7QOqeakcVTtXLwyNDHxwZt+L4/vUKk2W17mZzIXrOIOPGhsMhiJ3VKsghiOmofgCavaCVZmgWs0iczGc7uVSSkBiDbIshJKCw== 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=ij127MjH/23HQH7siD1bBvxIFpCr1d8ovwaQeRj+ZqQ=; b=H8Kn35fj31a4gBN8oS0U98ZfPAaNeqjj6KBMwoB52aoBduUc5EHBEfwY2JB0PUpA5OQJFxBJpa3FO8WXKAjhQow0AbpNzzDRDaFt/Vj1YcFKr75FY8MBd7I12xWJQ5btz/hx4sSKdM0J2dy0qt3OObmAMYhwk480BcInxtpAFYhGizmEJ1iEZ8t968r/rGzrds8ITVezPL0wWGkTOVlNkIoU/jMR/8XxxByT67gToJPbf2GjfprydQARSiTKR2JyrijYldSHowdWKMWcZRe/jhf9XsozWO1oJfaGmdXVGTShoFd2B5wyWxrPxIjGhp41A30TTAZDy2zdxzJjtE5r6g== 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=ij127MjH/23HQH7siD1bBvxIFpCr1d8ovwaQeRj+ZqQ=; b=aTtvc5mcQPbjrJ7Oe1pzWrah7EK6uknQhArvN4QRviUIbezX20MW3BvkyFUExHSor/hfZO2AQ/oCbgdYmfjYPoZeY8XoF9jF2gq6D2kwwJMatkBbTnkn2KDrdsJZi5M6CKfTCg+z+1Bp2lpMEZzpDQ7scFqISBRJSLUWDSviytA= Received: from PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) by SA6PR10MB8061.namprd10.prod.outlook.com (2603:10b6:806:43a::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.11; Fri, 30 Jan 2026 21:00:46 +0000 Received: from PH0PR10MB5777.namprd10.prod.outlook.com ([fe80::4b84:e58d:c708:c8ce]) by PH0PR10MB5777.namprd10.prod.outlook.com ([fe80::4b84:e58d:c708:c8ce%4]) with mapi id 15.20.9564.007; Fri, 30 Jan 2026 21:00:46 +0000 From: "Liam R. Howlett" To: Andrew Morton Cc: maple-tree@lists.infradead.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Suren Baghdasaryan , Matthew Wilcox , Sidhartha Kumar , Vlastimil Babka , Alice Ryhl , Kuninori Morimoto , Geert Uytterhoeven , Arnd Bergmann , Christian Kujau , SeongJae Park , "Liam R. Howlett" Subject: [PATCH v3 22/30] maple_tree: Use maple copy node for mas_wr_rebalance() operation Date: Fri, 30 Jan 2026 15:59:27 -0500 Message-ID: <20260130205935.2559335-23-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260130205935.2559335-1-Liam.Howlett@oracle.com> References: <20260130205935.2559335-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT3PR01CA0056.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:82::17) To PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) 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: PH0PR10MB5777:EE_|SA6PR10MB8061:EE_ X-MS-Office365-Filtering-Correlation-Id: cc2da6b6-e4dd-4894-11e7-08de6042a36f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|1800799024|366016; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?qqQY5ijS1Y6lZAibZTKJ2ntkNIxPERB0hhhUeigOCyRC9vRUt7OFTLe38RzT?= =?us-ascii?Q?qILiWxvccbd042Lo9LX1n3VdmWC7ZACWK2Dd2cDpq8hE9rmlWJ5IBhmRT3zV?= =?us-ascii?Q?V4KlSmFfqhsqZB5laRvyFG3Ukt03XTC5Nw7ecWxaq5Ylbyj+THqk11/CgHRR?= =?us-ascii?Q?tWsK3K1frYW9SqjHs77CygAGBmH8TOHY+aC+g5LtJ0Xhpya1ordniREUlBFV?= =?us-ascii?Q?td63cu7IZSVLstGEosBtjcwUjFCtfCpXt7juQ0HiuxMzKt3rczDwN6iqjs5H?= =?us-ascii?Q?jutuhjs8wTeldl6DiRJDEDHuKfYu3Uskt74JFHS709LzK6+q96yzuQ0pnmTC?= =?us-ascii?Q?F0wcvYA9uFtV9zMt9guJIwTKsFiBP9bxwY8+yNs6P48iD7Ps8U+ODurG/2vx?= =?us-ascii?Q?zGqVg0nhGThCPAEKCJY7DfBx4YAUYpinCS4sl/yBuBVpsO0ib/LoMGy3NA1+?= =?us-ascii?Q?vcZPOODdktDoQoD8YNSfAHWoaNl++vPApI4raoj0inAD6cw6JEP9c73zUrtM?= =?us-ascii?Q?eGgfwxLeqOgroz8sWc52Fq1JfmWNStfEHu5cupRyNeM8X1wey7DZejdlhBzF?= =?us-ascii?Q?fw3kTY+vNUAt68Z8seYt+Yj7Dc0z9GL6t/i9uf1e/YmzDlJX5eHz/ZZIPCaZ?= =?us-ascii?Q?vanWu8xqtJ4Ukxtb2+xCyiLOcVMcn/v4h8NzNGTUJWDmGHULBg6su9vMm/BE?= =?us-ascii?Q?kJtNyF7xHAHb6URaH8ynsOJrhlxV0uQKy5MpDF0RkGrq6E6Az9At/8SO7fbb?= =?us-ascii?Q?rL7RK5kdFazMvT2gXKaD1f0zHWWnSn1QtUoisgPWVjhyJXREIWliQSoIAuYi?= =?us-ascii?Q?JGzstmek45YsFBFsRBu8Gz6ah3wV+5hMFEJYhgAhj5YovazgOThVvoAK4C6F?= =?us-ascii?Q?BoiTaATgL2VZ0pDRm3mc7MJKkPtUkSlEcqYPhFk7TOor6QtOH6HJmQHC28c2?= =?us-ascii?Q?nGl29ZmkGOQaTE9FuoWcypdSBqlb02CPapdDX48fN9NOo6cz7EsyqCJk10bH?= =?us-ascii?Q?4Y1599vrxn7ksisUOkXI7A7VD2M4fh2lfqB0Gwr6GThb6kq8r1ROC55LBJ+q?= =?us-ascii?Q?sszsrwSqvKZZwitY+2Ir5/5CvsU3T5VIu8EQtw0xu180PJDAxirYBURdUXIG?= =?us-ascii?Q?CoVL5Gw2lhHSHJ7CP/GK2RqpsNEx5GAGALnOPpxN5Nd8hsfidYYM53KQvJhS?= =?us-ascii?Q?i9wTA3cwtP2sfEBaCeU9El4PWKwHHJ99wndIJDEeyVKAbguLD028C+L9znkr?= =?us-ascii?Q?oIlOAUvsf5lkLEGzLJtA1MRWYouiGF7Nxb5VB98x3vV+PjbiaaKQ7EMn0zo6?= =?us-ascii?Q?oMfwKcMyqB1BGNvXdXUlcC/lSrp/QZmbat3PfNvdSi3Dcn4vaD/jpu7P9bbS?= =?us-ascii?Q?2C8zn9lqrM1LkSVFNPwQDOtxBIBFgvUeoRlECVG8BMRGliIL/6o6wLuhpyvi?= =?us-ascii?Q?iN7KSwuGpN8hu7/gso6F4OiFW1hfAqX5RA/Mlfbr/JlEmwiCgLHMUl5Qu36T?= =?us-ascii?Q?VE/KdUkDogPNVlLTtlWcQtwBSgoCgYBtiBRZGFnJT+MGkTrW6khri+BRUlwR?= =?us-ascii?Q?juDKPWIBsUMZP7v/zLA=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH0PR10MB5777.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(1800799024)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?6KPyFoAgp2a8e86W9T1oVygDOs+Mg7vU7DqFR+IFMyqZe4bDfKzF5R4m4KEm?= =?us-ascii?Q?IHXyxPYrwshnAdgbcXfVpzdLlOirnyiUzLNO+oBfxACStSBo20IxK9XxsjW2?= =?us-ascii?Q?5EulrQKuO5y8bhfUN7q8WzQPIE+FwtRSG18Syxff4GuxumBwEY1l0rr0Bx2s?= =?us-ascii?Q?Vcaexr16n527uVCDXAkkbR3TopZwy1yrIp8O4rDY4Sg+Y2WZGkCFhnCBwYU2?= =?us-ascii?Q?sQDPDaI/uY6azfn/TZ+yx8IjROy2p6L+l7zonSUndNzFcQ41H0j5x2q5m6ti?= =?us-ascii?Q?oSU0IjMYvO27/fj+slO4UkuqjaHbhyGNKhGQhj+2uv2RWp8RdH3yMxH/FzX7?= =?us-ascii?Q?RoJOQDWNQP45XTS70jwQmx4G3a/Tf6qm/3tVX+3DXfPzvB2MUfj7059yP+vH?= =?us-ascii?Q?XTFl0SGaybsbhdMguUOspa//YV+a9SZramklqvvJUYksQ15kibXq1BUibxUP?= =?us-ascii?Q?f7T+SxmwGqyq5H00NaUG51cOMdo7x20mEvZmJpAtFAbvrdjtRxnaor/Rjkw2?= =?us-ascii?Q?+QfQ2zXa2vIfYWWnCL1uI00fD4UarRqIc37OlKK/lTNYwDmhztjYmBH6nk+b?= =?us-ascii?Q?pmbESuMuSPJ5CaUrbSlubdlOkfjgtIASUDwI/5fsqurOFd0+Ijsfs/aB82Ml?= =?us-ascii?Q?NPRCCmRIRrP/jE7eQAczIFWQJsl5Ib1JdDT65UxZ+VzcP7leQG36gqJy/RSQ?= =?us-ascii?Q?FdQecPembFvV6ZjW//j5xhx7Io9xRONi7kPWG0bx1+nvyJKLjUQekSdbGxMh?= =?us-ascii?Q?McMBPSrKw466uEE6rbGjZUHGLsIancvyfWPMAANDErJCjOjfnz7Csp6NlxIV?= =?us-ascii?Q?xXLEo4T7DQSDPXXSLfEVLIGAr47fLEte8p4ezF9sJtT16zvrXn7Sg4NhjQqg?= =?us-ascii?Q?Zgqcu/fbX0DlnnH0kOVrJZ+01kKadgpnVUPXfktKaTn/YVm8aan/0SNfSv9Y?= =?us-ascii?Q?WLx0sjAZUNdGy9i+WmHP6f6MYRjOmd+LvKLh5XZYpZojAZSSucf5hUJnGBHi?= =?us-ascii?Q?2n/9lbXc/Xws0yXere4qmIyr1s59XNNJiypWCt56mGcl3q6WD2zGSwmIOtLh?= =?us-ascii?Q?PPjCYFr9IsLU/BzdP+NRGXjQjDILuuIf0n8ryPVmK8CNQCVYat/QKFxeXVi9?= =?us-ascii?Q?LCxfUMetHPJC5DQhZVYFXL2CvPsnVTf7TLTxYggz2xjj13/KTF8e0KWV6btX?= =?us-ascii?Q?DMOmnki3CHvlxlhisxuPagm2iK+gTB7Qt68h8maz7NK5iqoUJ/39k61m9X2c?= =?us-ascii?Q?wpxHtGVc828ngTo8ew4MfLV1S0jJ81Ms1Lo5Tu7mboPBb4aLa0MMbgZP8REo?= =?us-ascii?Q?kT0LlNL1QXjYqBIrGw+ZUr2xOvNwXw6ttpvFBM/64IuR6rJpteiU7dGuT0xH?= =?us-ascii?Q?vlGl6e92U8y1G+VXYND9A/53q9aYkyQHNvMDmGlBYhj9qiJbXeicobsdo3i9?= =?us-ascii?Q?1S/FGooVFazElFfNKMrfkjD+UhbuuFOTKrV1aB+1XasCBzcAM0bRqkhwsofh?= =?us-ascii?Q?KKYCQA53FdLUIjJy6UlqiWPrvJmhj3D4zi8tG+XKTTlN8JVMlMsBc/eC9oZU?= =?us-ascii?Q?zgCr3PAErUuLVwGHZTdZmP3MsZCnNfL9uswHH3jz1Ir8HgeWQxAO54BkU3Ly?= =?us-ascii?Q?Vc4WkQk7Foxi5O+HptE0Tm+28YA8JxB07VWEOBmYOeObUXgDOkg599OEoZ0P?= =?us-ascii?Q?/XawJvKTeDGbb4zGmXqdFtwJOvoi6IcPjc4nVJaNVgoBhogylfF02JUafQ4F?= =?us-ascii?Q?LtC/aND2pQ=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: bM3y1L8c7usy6PgcNL49wvDlRdBJ9r4PKsVBZQ0VYmzDuhPFQZitpwwt8OfzO/VrCq/1eV+ihLaGkPUmzVWmNz0UcmAUY7lt4b4xyaNxOuFjlQlxcyhwLvL1gm0zBUm77SZM9wB4QWHqlWXeWSaBLImCK9EYERtxCmfsoO0N/ozeh3Ba+tjDS7j8azvF1tl8m5G0zTf8WYYKsJEaL8wkxtkW0YaAAN3/OcqAYC89oLTmmIe7E5LF4EQdsAHTOLDrf9BizmwiqmW4f/H9jDCHTFZMUxwGuFOmvyYgfi4BKdVnH/c7U+wVrBS41NC7xroTvJQc4FFE7AR5tNK+gxZ09tuKkD4jQHGm9s/2WX9Q+EHAc1KLBcmYaPohBvVFhIi7aJy11xnrdb1T69ec9NzSKTmaS6z6dBo10Eb79RWjr1OwxnaYRHBsyCJ3W+PBmOH1yf8cOskPajzMYz1hmrrLzEwulNZA2EIrv85/0nMUXodY9KllSlk0DwkhMtI76uyV2zEdlnJLOTAFC6ahrHQSYt9l7DoYCECtfms9RiSpaK4O4YmNtcfXvI5U8T1stsyxu5oqCffxVpAhJUjh19+mAlzAu0LPIK35uoeWsRP+OAY= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: cc2da6b6-e4dd-4894-11e7-08de6042a36f X-MS-Exchange-CrossTenant-AuthSource: PH0PR10MB5777.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Jan 2026 21:00:46.0366 (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: LIhxwKSWd0YCVjDm93maLblMKXSW2alTCcqizL4F2tmgGLYBTetQwShRKniFR3mN+EIh1+PzQ8MsEDl/hoPQTw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA6PR10MB8061 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-01-30_03,2026-01-30_04,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 mlxlogscore=999 bulkscore=0 mlxscore=0 spamscore=0 phishscore=0 adultscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2601150000 definitions=main-2601300172 X-Authority-Analysis: v=2.4 cv=LaoxKzfi c=1 sm=1 tr=0 ts=697d1c01 cx=c_pps a=OOZaFjgC48PWsiFpTAqLcw==:117 a=OOZaFjgC48PWsiFpTAqLcw==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=vUbySO9Y5rIA:10 a=GoEa3M9JfhUA:10 a=VkNPw1HP01LnGYTKEx00:22 a=yPCof4ZbAAAA:8 a=NMtRElkMPdqfRlTI_JQA:9 X-Proofpoint-GUID: cHSYxCVG2foq3GY8DwhFe7TU-boT3VzI X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTMwMDE3MyBTYWx0ZWRfX9z1WBtLyQvKa HGayjjzDgi+jq+FKoWPGOssT0rvuACr0bC7QDnvwEQRz6qYNWZT/Xh1vj+9qB3TokiAUU6xyJn0 SBesbcyBRuCtzMjuR813ygk7nDLG7rjlnhSSuqtfpmkv/sHnOkeePIcArP8Vmz0miN5Z/44T7U9 ysQiQxLNvCIoWAYAfzNcVupOOFHlnKRYsLW3Sr0yEIsMFtvftqPCZsib1t0Z3saVamL+WnOjmRF bw5N0LRuylq6llRanYsfBrO7wARTMZBRRFO+iz2eTT4AdKA/hGqWrKy7kovBg1BaHcLkNfGDUAA +B3U4xSgj1dFUAxkO3hXZoMwCWZGUAW3vb3a3MGgMBySo2RfzRkjLye3yTW9CRlKDCcuuJcB7sL u1xFIF9pFRjUq31kwq0NhL+U1UwcDM/uUUatGxYsegcdwn9O4eHXDPHH4mR8rMmZEZNYzvyKMzU EnZrTWEzW9Zxp2JMDwA== X-Proofpoint-ORIG-GUID: cHSYxCVG2foq3GY8DwhFe7TU-boT3VzI Content-Type: text/plain; charset="utf-8" Stop using the maple big node for rebalance operations by changing to more align with spanning store. The rebalance operation needs its own data calculation in rebalance_data(). In the event of too much data, the rebalance tries to push the data using push_data_sib(). If there is insufficient data, the rebalance operation will rebalance against a sibling (found with rebalance_sib()). The rebalance starts at the leaf and works its way upward in the tree using rebalance_ascend(). Most of the code is shared with spanning store such as the copy node having a new root, but is fundamentally different in that the data must come from a sibling. A parent maple state is used to track the parent location to avoid multiple mas_ascend() calls. The maple state tree location is copied from the parent to the mas (child) in the ascend step. Ascending itself is done in the main loop. Signed-off-by: Liam R. Howlett --- lib/maple_tree.c | 213 +++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 206 insertions(+), 7 deletions(-) diff --git a/lib/maple_tree.c b/lib/maple_tree.c index 42038e42a4c7e..0d5d68913de44 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -2305,6 +2305,19 @@ static inline void mte_mid_split_check(struct maple_= enode **l, *split =3D mid_split; } =20 +static inline void rebalance_sib(struct ma_state *parent, struct ma_state = *sib) +{ + *sib =3D *parent; + /* Prioritize move right to pull data left */ + if (sib->offset < sib->end) + sib->offset++; + else + sib->offset--; + + mas_descend(sib); + sib->end =3D mas_data_end(sib); +} + static inline void spanning_sib(struct ma_wr_state *l_wr_mas, struct ma_wr_state *r_wr_mas, struct ma_state *nneighbour) @@ -2855,6 +2868,112 @@ static inline void cp_data_calc(struct maple_copy *= cp, cp->data +=3D r_wr_mas->mas->end - r_wr_mas->offset_end; } =20 +static bool data_fits(struct ma_state *sib, struct ma_state *mas, + struct maple_copy *cp) +{ + unsigned char new_data; + enum maple_type type; + unsigned char space; + unsigned char end; + + type =3D mte_node_type(mas->node); + space =3D 2 * mt_slots[type]; + end =3D sib->end; + + new_data =3D end + 1 + cp->data; + if (new_data > space) + return false; + + /* + * This is off by one by design. The extra space is left to reduce + * jitter in operations that add then remove two entries. + * + * end is an index while new space and data are both sizes. Adding one + * to end to convert the index to a size means that the below + * calculation should be <=3D, but we want to keep an extra space in nodes + * to reduce jitter. + * + * Note that it is still possible to get a full node on the left by the + * NULL landing exactly on the split. The NULL ending of a node happens + * in the dst_setup() function, where we will either increase the split + * by one or decrease it by one, if possible. In the case of split + * (this case), it is always possible to shift the spilt by one - again + * because there is at least one slot free by the below checking. + */ + if (new_data < space) + return true; + + return false; +} + +static inline void push_data_sib(struct maple_copy *cp, struct ma_state *m= as, + struct ma_state *sib, struct ma_state *parent) +{ + + if (mte_is_root(mas->node)) + goto no_push; + + + *sib =3D *parent; + if (sib->offset) { + sib->offset--; + mas_descend(sib); + sib->end =3D mas_data_end(sib); + if (data_fits(sib, mas, cp)) /* Push left */ + return; + + *sib =3D *parent; + } + + if (sib->offset >=3D sib->end) + goto no_push; + + sib->offset++; + mas_descend(sib); + sib->end =3D mas_data_end(sib); + if (data_fits(sib, mas, cp)) /* Push right*/ + return; + +no_push: + sib->end =3D 0; +} + +/* + * rebalance_data() - Calculate the @cp data, populate @sib if insufficien= t or + * if the data can be pushed into a sibling. + * @cp: The maple copy node + * @wr_mas: The left write maple state + * @sib: The maple state of the sibling. + * + * Note: @cp->data is a size and not indexed by 0. @sib->end may be set to= 0 to + * indicate it will not be used. + * + */ +static inline void rebalance_data(struct maple_copy *cp, + struct ma_wr_state *wr_mas, struct ma_state *sib, + struct ma_state *parent) +{ + cp_data_calc(cp, wr_mas, wr_mas); + sib->end =3D 0; + if (cp->data > mt_slots[wr_mas->type]) { + push_data_sib(cp, wr_mas->mas, sib, parent); + if (sib->end) + goto use_sib; + } else if (cp->data <=3D mt_min_slots[wr_mas->type]) { + if ((wr_mas->mas->min !=3D 0) || + (wr_mas->mas->max !=3D ULONG_MAX)) { + rebalance_sib(parent, sib); + goto use_sib; + } + } + + return; + +use_sib: + + cp->data +=3D sib->end + 1; +} + /* * spanning_data() - Calculate the @cp data and populate @sib if insuffici= ent * @cp: The maple copy node @@ -3412,6 +3531,55 @@ static bool spanning_ascend(struct maple_copy *cp, s= truct ma_state *mas, return true; } =20 +/* + * rebalance_ascend() - Ascend the tree and set up for the next loop - if + * necessary + * + * Return: True if there another rebalancing operation on the next level is + * needed, false otherwise. + */ +static inline bool rebalance_ascend(struct maple_copy *cp, + struct ma_wr_state *wr_mas, struct ma_state *sib, + struct ma_state *parent) +{ + struct ma_state *mas; + unsigned long min, max; + + mas =3D wr_mas->mas; + if (!sib->end) { + min =3D mas->min; + max =3D mas->max; + } else if (sib->min > mas->max) { /* Move right succeeded */ + min =3D mas->min; + max =3D sib->max; + wr_mas->offset_end =3D parent->offset + 1; + } else { + min =3D sib->min; + max =3D mas->max; + wr_mas->offset_end =3D parent->offset; + parent->offset--; + } + + cp_dst_to_slots(cp, min, max, mas); + if (cp_is_new_root(cp, mas)) + return false; + + if (cp->d_count =3D=3D 1 && !sib->end) { + cp->dst[0].node->parent =3D ma_parent_ptr(mas_mn(mas)->parent); + return false; + } + + cp->height++; + mas->node =3D parent->node; + mas->offset =3D parent->offset; + mas->min =3D parent->min; + mas->max =3D parent->max; + mas->end =3D parent->end; + mas->depth =3D parent->depth; + wr_mas_setup(wr_mas, mas); + return true; +} + /* * mas_rebalance() - Rebalance a given node. * @mas: The maple state @@ -4379,16 +4547,47 @@ static noinline_for_kasan void mas_wr_split(struct = ma_wr_state *wr_mas) * mas_wr_rebalance() - Insufficient data in one node needs to either get = data * from a sibling or absorb a sibling all together. * @wr_mas: The write maple state + * + * Rebalance is different than a spanning store in that the write state is + * already at the leaf node that's being altered. */ -static noinline_for_kasan void mas_wr_rebalance(struct ma_wr_state *wr_mas) +static void mas_wr_rebalance(struct ma_wr_state *wr_mas) { - struct maple_big_node b_node; + struct maple_enode *old_enode; + struct ma_state parent; + struct ma_state *mas; + struct maple_copy cp; + struct ma_state sib; =20 - trace_ma_write(__func__, wr_mas->mas, 0, wr_mas->entry); - memset(&b_node, 0, sizeof(struct maple_big_node)); - mas_store_b_node(wr_mas, &b_node, wr_mas->offset_end); - WARN_ON_ONCE(wr_mas->mas->store_type !=3D wr_rebalance); - return mas_rebalance(wr_mas->mas, &b_node); + /* + * Rebalancing occurs if a node is insufficient. Data is rebalanced + * against the node to the right if it exists, otherwise the node to the + * left of this node is rebalanced against this node. If rebalancing + * causes just one node to be produced instead of two, then the parent + * is also examined and rebalanced if it is insufficient. Every level + * tries to combine the data in the same way. If one node contains the + * entire range of the tree, then that node is used as a new root node. + */ + + mas =3D wr_mas->mas; + trace_ma_op(TP_FCT, mas); + parent =3D *mas; + cp_leaf_init(&cp, mas, wr_mas, wr_mas); + do { + if (!mte_is_root(parent.node)) { + mas_ascend(&parent); + parent.end =3D mas_data_end(&parent); + } + rebalance_data(&cp, wr_mas, &sib, &parent); + multi_src_setup(&cp, wr_mas, wr_mas, &sib); + dst_setup(&cp, mas, wr_mas->type); + cp_data_write(&cp, mas); + } while (rebalance_ascend(&cp, wr_mas, &sib, &parent)); + + old_enode =3D mas->node; + mas->node =3D mt_slot_locked(mas->tree, cp.slot, 0); + mas_wmb_replace(mas, old_enode, cp.height); + mtree_range_walk(mas); } =20 /* --=20 2.47.3 From nobody Sun Feb 8 02:41:41 2026 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) (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 908CE389470 for ; Fri, 30 Jan 2026 21:01:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.177.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769806889; cv=fail; b=iKHbuTu9xv+qEmAKI+qRRnlvIl89ykF6UiBC2Q+N6Y6LnTMW+Z06hHMO0HCuLq8ZHNPZscOawTQDRoz/9IdDpmUBq7fFszMNP6mPexcXS8qK/ZQUcy+4wBeicYUTRm08Wy8intyPlyaOL27QS9U6ttIDq3fychS4YA9ebYf7Bb8= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769806889; c=relaxed/simple; bh=FYsPfRvu4oRrjyBB2w1X6NbCAcpLTkK+pFdPjGN20R0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=khV31fSTk8Ga12/7dqF9RB+UtjKuIxA0OrgkdWBYh3ktOV41uHKgO1Qwt7Nk43Q3XNtohQKSFoXfHMoi/c1ylGf2Fz6xj6nNum6wtwpMV8nb1hLPyawSAZX9e/+U9NJ6bvuoW1x2U22EaYtRzpEIooo/vPvKFyK1Xo1drNml0+0= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=dssBxWTk; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=mq8P/tnK; arc=fail smtp.client-ip=205.220.177.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="dssBxWTk"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="mq8P/tnK" Received: from pps.filterd (m0246632.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 60UKDVg84078825; Fri, 30 Jan 2026 21:00:53 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=vunzutFJY0FxaaQBRK90L5ua1XE38f/nrM1TBCreTyk=; b= dssBxWTkIzPFt5kcqFG6kcAYecyHgBgiQyl8pQ+RHPyaOlgzoAVO0l0ECrYmR6O+ 7C7innWbLJmaJUfsvU2CKUCMIpDlmz5fBSxOj+/qVsWKvahRd9OM2AaVCK56kHRj eJi2pK741K7orCJQzaqbLZ0uf3wkaY8uNIIXSHzu0mbPuLgfFivkF215U/Kpjrx6 WqOGhcb1r0ndBV1O7UTwAL0Deo81pxfux6sQvrJvINNj4XNaBpViTo38b062km0I Yb4vuuAovId1R/KEKqVxvaI5GZ3WvC+a7M2HU9P9jadvsIqyihLy16c+C0csOcaI HbuDRUHWkAY5KywBgVbMHQ== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4by2vgny34-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 30 Jan 2026 21:00:53 +0000 (GMT) Received: from pps.filterd (iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 60UKQd0c001917; Fri, 30 Jan 2026 21:00:52 GMT Received: from cy7pr03cu001.outbound.protection.outlook.com (mail-westcentralusazon11010044.outbound.protection.outlook.com [40.93.198.44]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 4bvmhjqvdm-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 30 Jan 2026 21:00:52 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=HmO5ejXsO6ZtpMBsco8S6MLVXSg8Yihy57NUksNjtaeFxM2KJ/SMnuxglrehcoWleTHCNlrA3ZGEOkLkA7pEmYHsgjHoU5EFJ6Ufx6VAygLD8UGrkxmw2bcrwtNsiCRirJHqrznho9AS1c9aNbqEnB4NoMB/+NAbtPICf2e9LWBQTVFdNF7rf64Z2zxMfgVu1bc62F7RiGgZ8znKpHjrCnfSF3XADEogtmIbR7NkgPxuMwpg5U1g339BDdJ9CnvnyEx6UMICT/o/5v8NoF2eRRYaMaVpO4iCqfq2XtBHWzY1pRjjia6n4zwV86w3ImERXrvqCZXGP9RMtVoFZ++f4w== 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=vunzutFJY0FxaaQBRK90L5ua1XE38f/nrM1TBCreTyk=; b=MQfEosTp5kwMtnNZTL3msJ1+VoeEk8MxbrDHaHyKA585gZpTeSjy/fyPb6mdgiqgMOsrXyXqnisyU54QDEYQK1RpcCkEJu2iiB+vTt/ud0KwqO6vqjriZJHzhSnWsV7hasB1/kvXRbjWmx3ego3uvD4MIRPKKFLuMiCW/Z1I2qDc5b9jKhLjM70SaNPq5/aR5RlkMVNdo6qyLev7FOTTljSO2h/bvnQL4zmg65oc2E4Qtf89jxwygia8rr3r0R3tkv8oZm5mGn899Ck/pvWMwrk+VlR7DQj6SdCjdm+dE78r1djU42iFRxzNIZEEhjHQulEfJ8C+KF0BS3Xi5CZVRQ== 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=vunzutFJY0FxaaQBRK90L5ua1XE38f/nrM1TBCreTyk=; b=mq8P/tnK+KAftMqftIb6i3xuxENvWf8H4ox6GCOfKI48ZuJhYtt2Fh2A+XXmBzSQEGtLBxsJeyyyCyjjZ1qsoaCeyxGMLeMW2PHo3EaLXTWbdscm6IhKyGlL5XQf46PmtRDEszuQi0xgH0j/aEr1F4ci2n+je0gCzipNFF3xLRE= Received: from PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) by SA6PR10MB8061.namprd10.prod.outlook.com (2603:10b6:806:43a::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.11; Fri, 30 Jan 2026 21:00:48 +0000 Received: from PH0PR10MB5777.namprd10.prod.outlook.com ([fe80::4b84:e58d:c708:c8ce]) by PH0PR10MB5777.namprd10.prod.outlook.com ([fe80::4b84:e58d:c708:c8ce%4]) with mapi id 15.20.9564.007; Fri, 30 Jan 2026 21:00:48 +0000 From: "Liam R. Howlett" To: Andrew Morton Cc: maple-tree@lists.infradead.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Suren Baghdasaryan , Matthew Wilcox , Sidhartha Kumar , Vlastimil Babka , Alice Ryhl , Kuninori Morimoto , Geert Uytterhoeven , Arnd Bergmann , Christian Kujau , SeongJae Park , "Liam R. Howlett" Subject: [PATCH v3 23/30] maple_tree: Add test for rebalance calculation off-by-one Date: Fri, 30 Jan 2026 15:59:28 -0500 Message-ID: <20260130205935.2559335-24-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260130205935.2559335-1-Liam.Howlett@oracle.com> References: <20260130205935.2559335-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0292.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:10e::16) To PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) 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: PH0PR10MB5777:EE_|SA6PR10MB8061:EE_ X-MS-Office365-Filtering-Correlation-Id: 4072b589-93b5-451c-72aa-08de6042a4c5 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|1800799024|366016; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?bXbB3D7A4gM233nb4F0mbeklshCz+zCzmdzn5VFd05bHPPkraNTbCm1i87Iq?= =?us-ascii?Q?KYdI0C6fNqGfU1GbavA8GxA4+8OigFkTvGrpog53JZdAZVjAtNp3KQJGz4RZ?= =?us-ascii?Q?Sakdxm+pjsTIdc540kZPBD9vRNSmfkN5t+PYvVPUKPN6CT4Ho+9UtPpIWJdC?= =?us-ascii?Q?wpO6wucQphc8YgB2QkWm2thzYZ7jF2mfT+03T8KG3u2QkupILeSv3UMRAMKo?= =?us-ascii?Q?BG6rnoOUz1HrFKMwk2Sn2RNRBbu61AC5GQYdy/EX9HmJ3I+nYgfshhrspeNz?= =?us-ascii?Q?P1pRdGCoxUYpiPO9C9XeEwdb1TrIeQojvIIZHGQoDMstiDpwSRor2iiQ197+?= =?us-ascii?Q?RRRzhIH8LkbclVPUcbqikAy9pXDNfwawfG/t1B7xB5Caq/DbctsLhJZ5JEQZ?= =?us-ascii?Q?Rk5QH7g0rI9jXNSVoPrmxDaOxhABQAfbFx7mOE9F1MTkslZmNk+uN5M88Bye?= =?us-ascii?Q?VCICOvbU0H9HOPyeDHtpEEuHJZF6F03QONHb7PFpBL20tn8b7bpfJ7goP/BZ?= =?us-ascii?Q?jK/cZLQqcY+/qpvGBuX6pn3+G9WL3haxy/TFw3fm02lU5QW4pHf7kDlb1VWD?= =?us-ascii?Q?EymYMZRd3gJN1wReLW5ix70U8Ne4I4hV+rHszHj5abWnTw/udbnfRtlKX1HT?= =?us-ascii?Q?19sC3+7Y0/nGvGP69s/XOuAlgar/X/95+36XdwNooskXFP/sDodD0dw5CYQY?= =?us-ascii?Q?+pd8NcYr0gnWLqq3kfxK09aQJTZJADJq79ehLvmToXOmc4L1fpD01tsFUEZa?= =?us-ascii?Q?fuhOv89cK4AYQnTqw/cngu7NkoV8isFziCCj6WcKfwqL4mIYsTdjP9x3TXe3?= =?us-ascii?Q?L/N2mv6QiDDEaNTkE8du5B9AxP+Fi8+icPmyQCC7STrzQjcF9wNVVBJqnk4i?= =?us-ascii?Q?mj24Nan7H1oA4JB5jH5L8qJD10JwwDmmK5l3mor4VABPIFv6bN1P+l6ONM9t?= =?us-ascii?Q?CkdoDPrahMaGz6rn36IUK+robr4hp6wHuTxi/fZN1db+TeGwCPhEmKwfVMtw?= =?us-ascii?Q?QLNNtrHK2rm3e1s8r9A1bXNXtV5umtx+WS1F4I/GGiMZUGCepcl4PkXOM0uA?= =?us-ascii?Q?032nbJl+TREyGc3q1a6EcoBkZkEocOGEkLlQt9bECKRfZNEn0EYfs9iD26KW?= =?us-ascii?Q?4hYIys6Kd7nTsz3KQ4zTTMOG4t5EQfgXaCRCrr4BC2gKrB5HHUoI/H9FOUWx?= =?us-ascii?Q?XmufAwFkJ117HGkDmjo3XTK0kySmg32Hkp74fufHs5hVggChw8I0zPxE9npU?= =?us-ascii?Q?lEOoTi/jyBtpxXgDaFqCA+/jgaC4i77aB7ZsDSqA2yCq+/wVkufuhptNUPbq?= =?us-ascii?Q?REFg4fcnACdtgqfx4N9kTNty3l9tGmU7pi19aqeAC3Et/X8T5cj6wWnVuKps?= =?us-ascii?Q?ot/URlnbJfrdCKerygGX+wT4cKWoRV/l5MxS5KKOLEv/RFURxcN+F+fT2IjK?= =?us-ascii?Q?jKs1FT9ieZjjlEQBVIudHezKK7mugV6YmJ/iBkJr+/SVV1BG7cukk10lM4zw?= =?us-ascii?Q?j3WBYT47auJBW8AKgNqDRr5Rq9wxYmq02uG7gmHRWJVjQO60jjpG7AKe78Ql?= =?us-ascii?Q?O4aI0dql0zM3BEI6w8k=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH0PR10MB5777.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(1800799024)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?SgbeDTah0g27676ZcxJ/ftiQGOexiyx4o6w4LXmL8DWJGZAzGL2Crb7UyLqT?= =?us-ascii?Q?t9D0Vvgs9QRnA5JvoEHmKfm9pmqsEtgcNuoch7ZXFjyCq/vth3yLFJL48LqZ?= =?us-ascii?Q?cXLRWl/qQ6fQ81Q4wp4+AZhkLkxyQyE81TVrqDpmpsFzegi7PUusICYpaY5E?= =?us-ascii?Q?xDFzANoYkfYtwZaY+2T8jq3AIj31D84pPYN7D6FagZuj3+UzgLUBrFD8iCFK?= =?us-ascii?Q?6vJoDdeGTYQGfPDm2nySYipJeIg5G8be30C/9/USrs4N3jcgVuvET8UQ/qF9?= =?us-ascii?Q?2GSj6MuzLkoB/P6uD806BswMZDYURLf0MUiqaA34LNJykFq7hka9ft1gJVUD?= =?us-ascii?Q?o/AK/ngxL1jOemHeFLA90DM1zTxiVszk9dw74nHMubPS5POUDnrHDqoLMLqz?= =?us-ascii?Q?sgCc/dIeb83HKO9ZUNQKgF29IG9KKwTZjruJHTrYQWyXP35qvj8X//FkG1/S?= =?us-ascii?Q?oFxmfwPwyjHqpU74x26T4pQjC5xbKPzNrFlO1Bsz5IhsxjokQftSKs6Pjpyr?= =?us-ascii?Q?E0oW/Hm67lvlayqW9xzglQcxXdueLW6sWdS6ejAFeMDGBW/h+02oFJPSkAMy?= =?us-ascii?Q?KcL551ByKG5VSBvtSsrcp3QXojwBfQWyLksn1Z7yd5AfbuixomGnozhhkAGO?= =?us-ascii?Q?dZnMX3QGxmrW773DIW4xbOjM8LwWmi5MyGdPXFEI9oDxEI1ZQvqx7We53pBw?= =?us-ascii?Q?V7QZmZ28fG1bTDrk1Rci66HvqzC1vYSWuFXSZD8kYopuD9dt8aRfuwwcMgFm?= =?us-ascii?Q?vi3aZcYk5EFjbjzmzIdiM1t8aVAqaxeTh/dbhOeo0EMkStuHRtWkNSt3iOoq?= =?us-ascii?Q?+ify3J1nUWtTiTOKTiRnKMwC/TJjGVY+WIJRK5XGh2nudaJWU5nLAGr+xYRV?= =?us-ascii?Q?Q/k7Bv32mlzLJ+naO7NUbjY9HiFYN1eKZ4J9vRLEyJckC5+bRtVe7/Y1XBzm?= =?us-ascii?Q?5jbWfpex8ya5uj+Ah0FI4R02s1s6+QSMQ2cAp4AGAGq8JANCrTUc2lBz8/1q?= =?us-ascii?Q?WWhxjykHWuNtcwsy4KslwXp2wRJpbf/irAiNjMGbKnzqrkNcrqJkvfQ88+HN?= =?us-ascii?Q?Cgdqv5pR8lS0zt9qaCK8HA/lSwj3JXcOpavoSUpLwf5SRrXhw9BaIxwML9qO?= =?us-ascii?Q?hB+Z6FL5L0GHz9OjVD+rTnseWoTPQSbGSfW6CAaNJoLdEoxsdCa3MTNoxJj3?= =?us-ascii?Q?W96qsN/H5Aiegk0WmNd6aVmNKzC+bvo5ChX8NdHK6Yt2rxBNsbtz/nh8ZI42?= =?us-ascii?Q?YSN5+NroKzmX9/7W+HhA4KGRCkI0NxmbICj7sI6PtF7mRq711JnKbYGMNXM5?= =?us-ascii?Q?iot6sL1zH/VWnrtVZem2TnyQd6o9RYHyaS/XKMwKs+VajzuDjuwfTsmFFrmY?= =?us-ascii?Q?pMsd/8a+DUTPXKiFxJxYUTZzsctibwBpZ4RcVGrsPXHQW02AEYzJaMSg0WOL?= =?us-ascii?Q?a0JTEox7FqfkT3qM6VL/3wTAnlrx62i7P75Vo2Q8N9No2GgYuA5zEgQ+07/7?= =?us-ascii?Q?TdiJNSy1QZG0VY2k5WxFwaNP/fcnOMuEKAJqkZ+QfZPcVN6TeAL9BP8VS5Qk?= =?us-ascii?Q?K2zZlIaQ5P1r2Th21lA79CMInKRaE9AL/xlhc3sfcZWIFZTXsakDeD43WgDz?= =?us-ascii?Q?K2/IX4JdeLaXrbs3wjIYMbdTmy6HkUuDKo3e/3rFhY8+ma3tzeS72UyYUp5T?= =?us-ascii?Q?K8bV4gt9ER/CnNVpzYP5a97kQQYDAL9TwukhZIEnBly5ntTuPsCGBZ4Zinyz?= =?us-ascii?Q?ewXwUOrdZQ=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: EW8+xSeQvww1MU5uXdzSNYXm0FzOtj+UBtENIGFzTRYN1TZugMSOVBHZYuIFjs83m9xHXMG60hcfYUZVGBPV+Oo2QwfQD5+Jq/+8q0mOn7SHWRO+r14IS2tcYhZc4Ht//ySk8tOT5t6eyEqzvmu4BdBYvvLcCUJDW7SZKLL5SYnElPKVQqXXyuulG2sgEDFu7oPmLXA51GcS2heQpjcbzjOz6CCNKrvIF1lvNlxbwDLaZjQTGO6ifYyM2RfoaWseOmFwaRgBfAOPdk1r7mFjphsLXUSxJsuEgfguBEg9oA+Xem8o6HDaSyYVqNajokQGecruIZbFwlLC5MC+NCLFZB6Cjgkj+bVR+5kyulgiDcSqT6p+eB+/iepc+eHeI6RULBOX8LDVYfL0QyjdBxBtMGKfy0dwe/9IOvJ5bnpMu8jZ6QAjqA5FiSrD8g2GS+GE3JIRBc3jK0Tv7M/M7FZnt4+0laysNqyMH/qPk+XuFr6THoxxYwayTLnMcQJEaiXmSJ2oh84v90qMPgtfr4g7dKAyrZHBbfWnab4v2HfsUU2mxhyJM5rxcqZekes27Qj2gNMXkiNTLGjD//9aX9ogwphwUNlljX8gxEBkFNEMWIY= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4072b589-93b5-451c-72aa-08de6042a4c5 X-MS-Exchange-CrossTenant-AuthSource: PH0PR10MB5777.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Jan 2026 21:00:48.2493 (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: ArgT8YWFYb7b8KqXG0XOZEJi80Q76kP/Uy7CVnY8F9SlKumHbrpcOU027GUQSw+JouQI+Kf2RhzAAnHI+3L2sw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA6PR10MB8061 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-01-30_03,2026-01-30_04,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 malwarescore=0 suspectscore=0 mlxscore=0 spamscore=0 bulkscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2601150000 definitions=main-2601300172 X-Proofpoint-GUID: YKi-3cBNfUmzFrMEs9BIncTiCcsTSuRa X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTMwMDE3MyBTYWx0ZWRfXy+lJrsosb6bN 025fAzaYhI355xb0eQUOaJhgtYETRWBelVEBD4EBLDswHXMMTUSmZ5mc2FEK+M94kpMOYol5KN1 fT8l/dBNS0/wMpgD3I3H07atQ84FCg526uVnjHkvLjz/5FOJ9rQMU/V+xdpwNY0UxeG+0TNvT5k wlz9po3NjOqmdoZFohc3CXr5y01IUVGqYiizLuepgi4QCJ4PlzvKwD4fV5pLfyylSkAlv2xNmkz I7Z83cN27TpYZ3VtL7mRIw3pWxbbCqqgurqAt66JIAXnjwU6NfUkdbO9GFgZ7MPzlpOF1TlWf1X qbKINSITmFumzL1PGQz1M+Sw8IQ+9rjzaGQtlVFIqmvijL313ozlIoQ2zOxT+Mi0POWbu1TyJ1H 1ICAAyvB3fsj/EbzbQVX6MnLX9fz88iQLUTrCfq50nChZHA7td01XPl/dIGQTEiKl/IPCR6jr1R q6nz7GCBM+ouVt6yq+EaPYCE78O7pFND2WHi+rzQ= X-Proofpoint-ORIG-GUID: YKi-3cBNfUmzFrMEs9BIncTiCcsTSuRa X-Authority-Analysis: v=2.4 cv=a7s9NESF c=1 sm=1 tr=0 ts=697d1c05 b=1 cx=c_pps a=e1sVV491RgrpLwSTMOnk8w==:117 a=e1sVV491RgrpLwSTMOnk8w==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=vUbySO9Y5rIA:10 a=GoEa3M9JfhUA:10 a=VkNPw1HP01LnGYTKEx00:22 a=yPCof4ZbAAAA:8 a=N6NVBK_I8N3MV3nHsA8A:9 cc=ntf awl=host:13644 Content-Type: text/plain; charset="utf-8" During the big node removal, an incorrect rebalance step went too far up the tree causing insufficient nodes. Test the faulty condition by recreating the scenario in the userspace testing. Signed-off-by: Liam R. Howlett --- tools/testing/radix-tree/maple.c | 125 +++++++++++++++++++++++++++++++ 1 file changed, 125 insertions(+) diff --git a/tools/testing/radix-tree/maple.c b/tools/testing/radix-tree/ma= ple.c index dfd7099f0d8ef..5ea45d67556a8 100644 --- a/tools/testing/radix-tree/maple.c +++ b/tools/testing/radix-tree/maple.c @@ -35888,6 +35888,127 @@ static __init int build_full_tree(struct maple_tr= ee *mt, unsigned int flags, return ret; } =20 +static noinline void __init check_erase_rebalance(struct maple_tree *mt) +{ + unsigned long val; + void *enode; + int ret; + + MA_STATE(mas, mt, 0, 0); + + /* + * During removal of big node, the rebalance started going too high, + * which resulted in too many nodes trying to be used. + * + * Create a rebalance which results in an exactly full parent (0-9) that + * does not need to be rebalanced. This required two full levels, + * followed by an insufficient level which will be rebalanced into two + * nodes, finally leaves that need to be rebalanced into one node. + * + * The bugs tree: + * root 4 Label R + * /\ /\ + * 9 X F + * /\ /\ / + * 9 X E + * /\ /\ /\ + * 4 8 C D + * /\ /\ + * 6 9 A B + * ^ becomes 5 with the write. + * + * Below, the reconstruction leaves the root with 2 entries, the setup + * uses the letter labels above. + */ + + ret =3D build_full_tree(mt, MT_FLAGS_ALLOC_RANGE, 4); + MT_BUG_ON(mt, ret); + + /* Cheap expansion to 5 levels */ + mtree_store(mt, ULONG_MAX, xa_mk_value(0), GFP_KERNEL); + /* rcu is used to ensure node use */ + mt_set_in_rcu(mt); + mas_lock(&mas); + + /* Node A had 6 entries */ + mas_walk(&mas); + MAS_BUG_ON(&mas, mas_data_end(&mas) < 6); + while (mas_data_end(&mas) > 6) { + mas_erase(&mas); + mas_next(&mas, ULONG_MAX); + } + + /* Move to Node B */ + enode =3D (void*) mas.node; + while (mas.node =3D=3D enode) + mas_next(&mas, ULONG_MAX); + + /* Node B had 9 entries */ + MAS_BUG_ON(&mas, mas_data_end(&mas) < 9); + while (mas_data_end(&mas) > 9) { + mas_erase(&mas); + mas_next(&mas, ULONG_MAX); + } + + /* Move to Node C */ + mas_ascend(&mas); + val =3D mas.max; + /* Adjust entries to be 4 */ + while (mas_data_end(&mas) > 4) { + mas_set(&mas, val); + mas_erase(&mas); + mas_prev(&mas, 0); + val =3D mas.index; + mas_ascend(&mas); + } + + /* Move to Node D */ + mas_ascend(&mas); + mas.offset =3D 1; + mas_descend(&mas); + val =3D mas.max; + /* Adjust entries to be 8 */ + while (mas_data_end(&mas) < 8) { + mas_set(&mas, val--); + mas_store_gfp(&mas, &mas, GFP_KERNEL); + mas_ascend(&mas); + } + + /* Move to Node E */ + mas_ascend(&mas); + val =3D mas.max; + MAS_BUG_ON(&mas, mas_data_end(&mas) > 9); + /* Adjust Node E to 9 entries */ + while (mas_data_end(&mas) < 9) { + mas_set(&mas, val--); + mas_store_gfp(&mas, &mas, GFP_KERNEL); + mas_ascend(&mas); + mas_ascend(&mas); + } + + /* Move to Node F */ + mas_ascend(&mas); + val =3D mas.max; + MAS_BUG_ON(&mas, mas_data_end(&mas) > 9); + /* Adjust Node F to 9 entries */ + while (mas_data_end(&mas) < 9) { + mas_set(&mas, val--); + mas_store_gfp(&mas, &mas, GFP_KERNEL); + mas_ascend(&mas); + mas_ascend(&mas); + mas_ascend(&mas); + } + + /* Test is set up, walk to first entry */ + mas_set(&mas, 0); + mas_next(&mas, ULONG_MAX); + /* overwrite the entry to cause a rebalance, which was 1 too few */ + mas_set_range(&mas, 0, mas.last); + mas_preallocate(&mas, NULL, GFP_KERNEL); + mas_store_prealloc(&mas, NULL); + mas_unlock(&mas); +} + static noinline void __init check_mtree_dup(struct maple_tree *mt) { DEFINE_MTREE(new); @@ -36249,6 +36370,10 @@ void farmer_tests(void) check_mtree_dup(&tree); mtree_destroy(&tree); =20 + mt_init_flags(&tree, MT_FLAGS_ALLOC_RANGE); + check_erase_rebalance(&tree); + mtree_destroy(&tree); + /* RCU testing */ mt_init_flags(&tree, 0); check_erase_testset(&tree); --=20 2.47.3 From nobody Sun Feb 8 02:41:41 2026 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) (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 C9313387563 for ; Fri, 30 Jan 2026 21:01:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.177.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769806880; cv=fail; b=eeMENdd6SlA0BuaqtSf9VbdejXYKFjfHwNiZGqZKo9krRUk82kOABp2cDuZyJozAXaS6nFnC7A6X8P2t4DZFqgKVcVcOyQ8+4ACXa+ZR8d8GWFtwTgT5DKRfh0AG9dC5nFMC/NfAK4f7EnIr15kUZ1Tx9vd3y3lNDEgZKDtDYiQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769806880; c=relaxed/simple; bh=JBFkLw7KDLWwbjUWdTiD/uw6bXqzJKQeOl+l6C4R7PI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=MU7vmYrKxOsSk/Dj84vR9raEFvd5Y/rS+rVp4PkJyAXKJ3bxnVWnkjv1Zk/rCW2/y8RFF0cTSpJnxDkid0qxuOByRjBJWoe4PXCV9CzIhcOt0+vyMZEU2BoMObRdbtkiAK5FdHG4i/n8zI+XFmSgNsmkz96U29HvnBQPwgH3AFU= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=Gi/FUx1S; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=wdE+wXfC; arc=fail smtp.client-ip=205.220.177.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="Gi/FUx1S"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="wdE+wXfC" Received: from pps.filterd (m0246631.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 60UKDR0C3910794; Fri, 30 Jan 2026 21:00:55 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=U5/XfMrIVNr4jGac/hck8dhyaWvy8wm0lBic5iHql7U=; b= Gi/FUx1Sw6VtbFhEI16YJBRdV67DCA+XfdgMItr1JfiRJirOJcSXF7Zp68hI9glo OzDQQvouaVUnjPC96ZbZWgKnma3uaqgS7lEtW9rU4+1+wYvJHTMue391W+fe20T/ 4+OIYvjv3Vz+noCQbxt7aiuOei4kjOF7y9Nc4Lq5XVtwWnSvC8Jk1WLrkDIQNTfL ctSRvFqlpvESnLSmSjDYVUKIQGr5krDcJQrw89StcMlm1cW8Ep3DLdpIexIAsC0P NvIDYYsUBazFPyJyvdLgRu8zk6j3LXh2Qleg+O7jGz0Uv0gtrdrZaPdzB3BtAfYM 9C3KMO7kC7ZYEPAUzzNInQ== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4bxx09pm6f-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 30 Jan 2026 21:00:55 +0000 (GMT) Received: from pps.filterd (iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 60UJV7Bs001764; Fri, 30 Jan 2026 21:00:55 GMT Received: from ch4pr04cu002.outbound.protection.outlook.com (mail-northcentralusazon11013009.outbound.protection.outlook.com [40.107.201.9]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 4bvmhjqvgx-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 30 Jan 2026 21:00:55 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Nr/G7GABigowlSVnBXASvmMjHe3VSMPynV3jMw+m8nRDRK6G/5Ohcc0XNMv9OagezwjCBvK56/27T21O4qCDjK0RMf9ApoMca0B3oz/GL4b0NhMwysbEfx69diZI97lPj1rRh8U58YKv3duqwh4VhnUlrLNPylChImWHv8kIPtS3K61rer1ve40xqCZQtpsUHgELNY1zjJ6kxF0aBiA42idd5/QK7BAR5wqooNaZ8AxSilBDlD1K84ydd7ifJip5/QK24x0+5lCWIbhqppLYAPBbKcsfbyAGgCgYOUx7i/4XreB/5N9tTmlh4WQTZm3TylOgQJX/tVeFHTNAjH3Nyg== 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=U5/XfMrIVNr4jGac/hck8dhyaWvy8wm0lBic5iHql7U=; b=clt1VQgGLqxp6ixDe5lIO/wjGOOjjNr2i+FKRPC1B4kk0jBz+XDLd4Ql7cXSeWpKmquUR55EANtB+nRd65uEA7EhYLV8nwKOMjlYC13uXg3q/OssSed71fndZEf36ASOi3+ORowVajr+swK+MWKZXZJSIEAIvN6LoDnHV/nqQ8LizYBtPJWnx2jWh9u+RxAYpfWqVjvMSfvZX1oT8p7bjvYCq1UtUp7mliHKBtVCXg9F8dCz4cH70zU2QGoJZ3HEH8ErZU9GNYe9iuesLI9EkkHXDgAuEOA35BVs6V9fT8w8NbUDyTPRMGEbIPVWf0Py3+rltzxsQGDPCznZd50xhQ== 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=U5/XfMrIVNr4jGac/hck8dhyaWvy8wm0lBic5iHql7U=; b=wdE+wXfCVjclOTK9YyKVBd7RFoK8jJlEp7EeYaZQQKsT/yl2mFehp6cwVZsqQ9R6Ba1xtmu0wo62SXNwOj4ESEth1YMHy/33o1IVLRsJbTSkaIalPYe7lfkHHRc5Nfr+1ue5inhwa1PawwyMivojjVyKq0UXQV0YcThWPUcMP8U= Received: from PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) by SA6PR10MB8061.namprd10.prod.outlook.com (2603:10b6:806:43a::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.11; Fri, 30 Jan 2026 21:00:50 +0000 Received: from PH0PR10MB5777.namprd10.prod.outlook.com ([fe80::4b84:e58d:c708:c8ce]) by PH0PR10MB5777.namprd10.prod.outlook.com ([fe80::4b84:e58d:c708:c8ce%4]) with mapi id 15.20.9564.007; Fri, 30 Jan 2026 21:00:50 +0000 From: "Liam R. Howlett" To: Andrew Morton Cc: maple-tree@lists.infradead.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Suren Baghdasaryan , Matthew Wilcox , Sidhartha Kumar , Vlastimil Babka , Alice Ryhl , Kuninori Morimoto , Geert Uytterhoeven , Arnd Bergmann , Christian Kujau , SeongJae Park , "Liam R. Howlett" Subject: [PATCH v3 24/30] maple_tree: Add copy_tree_location() helper Date: Fri, 30 Jan 2026 15:59:29 -0500 Message-ID: <20260130205935.2559335-25-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260130205935.2559335-1-Liam.Howlett@oracle.com> References: <20260130205935.2559335-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0426.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:10b::10) To PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) 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: PH0PR10MB5777:EE_|SA6PR10MB8061:EE_ X-MS-Office365-Filtering-Correlation-Id: 593511d8-401e-4702-acd8-08de6042a61c X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|1800799024|366016; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?R9cHlsEsZGuG+KVDT7ypzZnifUnadr5l4/2oeUxqGkG2eCQNIQ67VdHSzdud?= =?us-ascii?Q?hZs/FSOHCLBk0GRJEB+IQn1c1P8m5HGHunmSB/1bjGIlnCtoYkBauIPVkocH?= =?us-ascii?Q?0JJPb5Uq/nqRTbSSj+4DvsBCPAYyF1OVLoGG6+A5GtwtKENs6KrnuPXHAltW?= =?us-ascii?Q?I87sUEkIb8TByDNp4WMWmfgd4ikKL6Z7olYfwrSgD3Ooe6o+voWxrvQnideH?= =?us-ascii?Q?Ai7YBVTTj/1UjAa/zV/YsfGcnYXvavJpbjtqkkhGr/Js33n54AU7zH/1QRNj?= =?us-ascii?Q?1Y+F8r0DmEDqbw9qhSJsrXR7ruJ+OB0NOWl2+kUtJHbGEKXc499SdKvMMJAO?= =?us-ascii?Q?fzcyXPK1dlZLVtF/rlSCuvQtIycFTojCUDIhvVpbS9aD6z002qPoll9id5A5?= =?us-ascii?Q?/j5/zao9kFJwgq0BFbE1j9/kN9gYgM4JOIjfXLS/2r9WyTYXcjwFHZ9eYfsb?= =?us-ascii?Q?ZRFIjFZUeO1ifhdLyiVhZWSqz8QDTk7FsnMKnuxwuqEeYtioYRy64qREfLO6?= =?us-ascii?Q?X7/GlCV5xs1MYPZVw1p46HVcJjiMbYDhrZAfMcoHtS9OeeqNq6F6O9HVgY2o?= =?us-ascii?Q?ru1HZSW5fYuaX5gXxMwDqwxfoLUPVVzuQNXUKHfdPxkcue/uY7hYuRGTG/kJ?= =?us-ascii?Q?zJnfTWLasrsJM8Oc3KSGymqJKLuWwMFoo+ApoEW+AK4+yPEq+6FZpgk3Rnqw?= =?us-ascii?Q?dnVazy0zgCITFOJG1JNipDISjgaMOpwj/QO6C6BcnsRFz00jcd6Op9NJJAbX?= =?us-ascii?Q?+6ucfoudUaliK6Jcfz7xDVBoSQO/xQgwewlZcz6AiOQtS12ag+0RwJEtwEaW?= =?us-ascii?Q?yUEvjwJ96smyKuOtec4xyDglrb6Dfiox7qKkU3xicphy4JAzUDniApj6ZQTI?= =?us-ascii?Q?PXZtIie/e8Y7l2NBZGx4okZKtgoocWYrttVZxcdcR5XaRAMCZ97LARB1f9pL?= =?us-ascii?Q?s5Wzb7zpCa/9ngQRPPs8utg/E8Ahq5ucKfXFih9LujKPt3DDJN78phZU2/62?= =?us-ascii?Q?ikpmEe94dRjQ6Irp70smz9w4qZoqDWzDcmuoYzFuSLdo1c1CoyCT2TzV/XYs?= =?us-ascii?Q?Fpi+iLYs2FsAgHB6NL2H/wHHIUjp1CL9d2932Xt7T2npZLqLf6M4VQwm2ZTb?= =?us-ascii?Q?n8CmOMVmHXnSkqXIZNgHbpxJFOoDU3YAPR1mAZIUrif3y0WJRmaR9blWGODK?= =?us-ascii?Q?w64m53ly29lNlEmr6gs+CLvfpNWNI4L+coMx/ZRrAymKoXf3jGCsR48X1Kgm?= =?us-ascii?Q?BmBtr+mHsk8mgfa4Ma9LRcjoFpE0NDPKi+iHKLo9jsXNRV7WCwVsPkQpJnhl?= =?us-ascii?Q?AZPNT4a2QoGyTRc0Gd9OVi10Yid77uhCe54lQgty+8yPaJUB9N2n5uEsKPnd?= =?us-ascii?Q?ZbvqxpiFng5hrogzDH+qliXR0OwD2B0wGTwAkPkaCtjrtSV33W41zThJaKCN?= =?us-ascii?Q?oJH+orCCNm5VD80CkmuxpvmY/5Gncn9+UTJRuQT4XNKuWcifHXNWkIHgkPvf?= =?us-ascii?Q?Hpd5AODCwpnjAUU7cO5qRY/qpbo5Oza5mNCX/iwF+Sy+qCkWbJ+S60Vwj4Ec?= =?us-ascii?Q?sk2De81mKJk38zlIJMM=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH0PR10MB5777.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(1800799024)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?XZZl+Q59JAST5wfBRLVTiXsoU8niJZiPYdTjAjJihJdkiwZ9yRVM4nOLHt1W?= =?us-ascii?Q?zNrjGEQjhmThLwCv9FnBGkqrCQWX0TcLaOu68yDevuYAWkfPXjA/eAN0GzMb?= =?us-ascii?Q?IuCJ5Am4Tk+rlew2IqV+5tR3C64UKJJOeeAxvrH8kTyRUmOGyJBaXcUfNb9g?= =?us-ascii?Q?uuMpJTZYs2LKwm+/VL/54uEjClspuPp5YSwX365jTQ4nDFlfeFmn3Wf00ZkF?= =?us-ascii?Q?v+ang9zbWYzonFqm40VwgbM52WmtazuRUZaMRBV6opVWTTSs7kGEqp+Fckjc?= =?us-ascii?Q?QyXXC+OQIIJfqyM3Dk/BzlQixkkOFccEhmHpUcMxhI6hIPCzce1cJVjTFieZ?= =?us-ascii?Q?ED022LdQFiCLMftnZHGbrF6eYDeugfrLbWdkNaHaqkGRM/lqvZUIYvHpYKOY?= =?us-ascii?Q?wS6b9STOH0aN3/r4PVItTD0ThwOAnKAGQ3hz0cSLmyuOn6gSnqU98VaCMY9f?= =?us-ascii?Q?xBO/F6KctThVsf7L/5KNPMPu4nnQbg3qlrKFTotOQnhkp2D8+2W4MAbWu8gC?= =?us-ascii?Q?V1fAYJjaEMxxDSfDtzks+UZ8EpR05be47iG9D+Mh+jeGIx7utJ61a6a5YlRu?= =?us-ascii?Q?FSOIiuo3FaeO5CtO+BpnGWmI8iDxHMmN4DtYRiznLotCjAYQ9aO6uMx8opn9?= =?us-ascii?Q?XFGJCsDYS0uwRbnDaD9oBV69B9dOW4JYkF5p/XbihUsgc5ezNhhjWv133yD5?= =?us-ascii?Q?V52sU1xn2GAPvn5AdrcehOkOhx5EGIXXlHng9AFsRdep7ClSLscVdwTxO27E?= =?us-ascii?Q?stPOeJX3Z+c6l+22DLhNwEMbSr54RIfv/qkDSWof4TFZ/y5q2OZcPr+dwqhb?= =?us-ascii?Q?50XbQKxpVqrAJi9pEgD9gjS3Gxd7XP9sYbX0JDmbbRXkr/TfxZTARCnSuFXr?= =?us-ascii?Q?qf7wjcMMwOj5RkV8mfY5vQe2QKgQHKTHSRQz4uPy/i/NBfnAQtrizH9vs0Xj?= =?us-ascii?Q?iDr6XZQc9OTAIJooC9KLQXGh/X2sPXphrJKQGsNiFtdKQXtOd60Q+Ml1puJR?= =?us-ascii?Q?ypVtwAwC/kDjWnudKLLf72kItS9CKQvJv6rkDQLpa4/uRqjHWx5PNm9zUzSb?= =?us-ascii?Q?SC4JCJalTCP0zvPiPRHQknTGrv4tUgejC7+MWTxKq9safGuOsScMLGuHH3Vr?= =?us-ascii?Q?GCtgSbpkpHZ8AS+yYZXlqsgBezfX4UtW+HgwPPctCs13LMuMqjJW69eqQNE6?= =?us-ascii?Q?OLyGwLX6PMgh9M+up2/qJmaE6c3cT6iLlZfamt9/iYp3Qe18keN/BzhdVJ3w?= =?us-ascii?Q?iGCNZ42Yb+Y6sgmbtp/xY9/PDWv3vop+8WV5YuQ8VqDKb8u9o/MmINyjr3bS?= =?us-ascii?Q?O3nTwzSb8U6vHNyhjZvBZ4eI0j3qr2nKijgYtA4MFgaJh0Y3enxzbmahyAcm?= =?us-ascii?Q?X9MVQmWqqS+KUSRcO5fB/laYBnVaKZTVbLD8Gp4Igq1kxJNQIZz7TMdh6Kc6?= =?us-ascii?Q?4meoQZ9UINrsNu5TnY8eEQiceKIZSb0OYe6Bf7WfxFQ9x2LpGQ+F1T+OGALB?= =?us-ascii?Q?V4u/PiNmrp7QTmlFarTOveoYf/6oAqp21U8CfvY/ZmlGmSZy5d8yGNsKBw+L?= =?us-ascii?Q?10crRpOrKyLj45uXfCrd2G6iD9/asodK7Jlh1Vpg0+A7UtBYzNN3n5MjPNIc?= =?us-ascii?Q?MawgcxRKGyBCppk+k6z95cXoX/fdoa/JrHBVtV3oyJY4dNZxXtC/XGEDzP+c?= =?us-ascii?Q?0OkziN0jObsWGumuw5BF+bt7FnU40HEanPvYLZYoZPp0S+IhrGVH6P7VdeA4?= =?us-ascii?Q?XizRpo3ZBQ=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: mdqgqCthwYc32mwBhGXDswEN0v64WLyGvCVxCORCIPN054UNCynf/PGYlrf0x2nx4iz050N6zQ4fLsyZOv/35BMAyB/GLbjmjy8FPDk1vLC08PmofobNPpb7Gv8ExzdkTfGTQf6erTVt8STWXQEJvprWxuQLkK9MD5dWKGuXNhXlYDULGkXn1hnlaDTqCIvHGADG3OxcG83KvnQtOAEsBjkzaXmu9QqXqllDTePrh8bas+VFC26btDT7sJJrEP+ZC9SzIqKPcwYIIEOWmu+IFGhwm9exTW8c+jLX5N9Xp0vCl1Unqis0ucak5/I4TB3XyTe2TfjIEy6rsRxyEGj9lk67tWUw7Onq4trTuf3haQTYy3hMtdvBfMzsnYbnlnUcco6/J+ZdLkVPuHX2ppmmquQj3kcRc3pPqn59MScn92BEfzD33MqGf9AIuGgN0nkcfXEDitjrY2LMqyxEEs928Z+XvKSsLDNMVI0uNXTlrwCMGtTKSs4NkwKshf6/RNdd5Sf9IaaDZsyipoLnjnLmD1TanxsYLbXfrNrrB2METkiyVUvhdxkfhyrIoy7qU7I7Agb7MJKG59ZWjJwELS5w53C+/KU3Pa7lMdEdAl2Iw7Y= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 593511d8-401e-4702-acd8-08de6042a61c X-MS-Exchange-CrossTenant-AuthSource: PH0PR10MB5777.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Jan 2026 21:00:50.5032 (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: 5MfSvw/XUqJsxSEpV4gPd/N9G0/u0h+oXywmrENRTSZk3IMUBCXIp3NLT0OPR80x2fv5vgbOw/Jtp637RDbsdg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA6PR10MB8061 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-01-30_03,2026-01-30_04,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 malwarescore=0 suspectscore=0 mlxscore=0 spamscore=0 bulkscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2601150000 definitions=main-2601300172 X-Proofpoint-ORIG-GUID: 43-0F42WVelMUeiERcnMpTdtOT3q0M_f X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTMwMDE3MyBTYWx0ZWRfXzb/HBkpPLdJJ p2i30FqGsTh11Kk05nCsLQrL4pbad82v0Q+CG7E2hfwLIZCwDWo+TBN48I06eyJYBn8izrhExpY VXyCDF5XYPfv8GqQyRWskGMRfCkkKT7FNVsG5JXNma8+VnqwPfl+puuqm/cPXolzBbG3YT8u2fP Ne9y1MkeWeMonTGHNse9k8fiRfr+mzqxpcoxwYhrpn1yXlRlinEzM3GeIwwdB+EFzC4rDZhnkmD bIE6QVXlPkVIADyrjoUW1FgLnJ51SHC+jYm8phaQiqE8YExnY6sw0b4qbnMY5aT6BlG/tj4zfcO uvJmb2lHm2tDm8ZS+oZgcYmZJa5YC4w+pymuDFtB/kaL0rh0+XxaGbZa2A09s2DgLbBs9SR1vt7 6SDMe1AGvsT79C5slrjGbwFP0+umjjPk1LshbAkp75DcGOAcfNKpVsA/HZpj1AOadLGKfy8BDAK weRH93qzjDdv9io+HlU1Q+MqtHORsncxLB34TZhY= X-Authority-Analysis: v=2.4 cv=Qe5rf8bv c=1 sm=1 tr=0 ts=697d1c07 b=1 cx=c_pps a=e1sVV491RgrpLwSTMOnk8w==:117 a=e1sVV491RgrpLwSTMOnk8w==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=vUbySO9Y5rIA:10 a=GoEa3M9JfhUA:10 a=VkNPw1HP01LnGYTKEx00:22 a=yPCof4ZbAAAA:8 a=QZEmuyFpAcF_U6Uib-IA:9 cc=ntf awl=host:13644 X-Proofpoint-GUID: 43-0F42WVelMUeiERcnMpTdtOT3q0M_f Content-Type: text/plain; charset="utf-8" Extract the copying of the tree location from one maple state to another into its own function. This is used more later. Signed-off-by: Liam R. Howlett --- lib/maple_tree.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/lib/maple_tree.c b/lib/maple_tree.c index 0d5d68913de44..1e79dfbb024a0 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -3531,6 +3531,17 @@ static bool spanning_ascend(struct maple_copy *cp, s= truct ma_state *mas, return true; } =20 +static inline +void copy_tree_location(const struct ma_state *src, struct ma_state *dst) +{ + dst->node =3D src->node; + dst->offset =3D src->offset; + dst->min =3D src->min; + dst->max =3D src->max; + dst->end =3D src->end; + dst->depth =3D src->depth; +} + /* * rebalance_ascend() - Ascend the tree and set up for the next loop - if * necessary @@ -3570,12 +3581,7 @@ static inline bool rebalance_ascend(struct maple_cop= y *cp, } =20 cp->height++; - mas->node =3D parent->node; - mas->offset =3D parent->offset; - mas->min =3D parent->min; - mas->max =3D parent->max; - mas->end =3D parent->end; - mas->depth =3D parent->depth; + copy_tree_location(parent, mas); wr_mas_setup(wr_mas, mas); return true; } --=20 2.47.3 From nobody Sun Feb 8 02:41:41 2026 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) (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 9075D38944C for ; Fri, 30 Jan 2026 21:01:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.177.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769806890; cv=fail; b=sKY0jZ4iz/l0iAv1jFimW39lmx9oOw84ovnJQ2+KbdNEYfKbawcsJPSD3vid2rxH9EyRi2XbUgz9UCSwVOA/QUzZzUXjzmqU6E+py9lsUeweqOXCGDkjYgQ7GdcA0x9/1LIX5XV5+a8QQZIHivJ95sOzgfwuBJ6/kws//cDIEBQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769806890; c=relaxed/simple; bh=gZIJqDF7DLQ3SZi++nWAlH5fzS3Y734ucz6COG8HwO0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=Od2zOKfsiscqOzFY4jh8TdPUWP2YOk+4locGw+RRBWHs2Vv+VFiT1Yhvxfwu6QNDj1KacXxDaVijWhCQ7J5sQo46UX+sTFuTnqRx9FkegB99teYLRGWhmBmcRUmhIgpGcm7aPN1aap5FGqy/I+A+a6KKfhomZufE6wF+gjkY1Jc= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=JPc3j+Cm; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=kvcryKoN; arc=fail smtp.client-ip=205.220.177.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="JPc3j+Cm"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="kvcryKoN" Received: from pps.filterd (m0333520.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 60UKEX5k610898; Fri, 30 Jan 2026 21:00:56 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=cZLwJevaMWXDFxxnCCpFIXoCfds/6RV8WV3DvXjTdOw=; b= JPc3j+CmEF1Bp8o4djyKk+ugUz0TtRQEWnGU9bfjpf1YilUzwOXLQVJmFmfWZKJ4 LMG6ucg2r9mXrA3HspyLfRPR88k6LhdfNbJhh6tctRbB5aLN0K181ts2WcyIq/hT BWMxtyvYDpHdp3TXWwv9qSOwJo9kP7WF8+rnsoenn5Rj5aAplzqHAnp+8QTIQArg waxxFQflpSGyng0GuIOlUFaFB/A3lY7P/Ydg9Fq1vgt1a76hJa54trxAyBuwnnum Y1yQ2Go5FT4Yiv56h4aLjNAGx6sphkjeqtUoZCvWWDGDh+GTvsT8KfBMKexn4aqm vXRUCq/5r9i0Iz0uYN6kFA== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4c10d88bpb-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 30 Jan 2026 21:00:56 +0000 (GMT) Received: from pps.filterd (iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 60UJV7Bt001764; Fri, 30 Jan 2026 21:00:55 GMT Received: from ch4pr04cu002.outbound.protection.outlook.com (mail-northcentralusazon11013009.outbound.protection.outlook.com [40.107.201.9]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 4bvmhjqvgx-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 30 Jan 2026 21:00:55 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=x5ftklkvlTfatNTKcCCCzM7PD18R+4FdoDw3amrF4DV3PWr0yfC4nL7KYQq+p3xO6lnWZ1X89byAsQQqLKf7YYqt6fqIDa/mYe/+60QdUBb1ajXwwbDRPaw2Z2E/FiICsz7mDWXe07J1nwYaDgs9GEM8hQCMwGKUy9Q0b9zGkYn0oKFGj4jYcR2b3Q+NKZKfti4DnqmsagmDAwkPlHlXiCC++CNFhUPK4X5umVLTP7wz8EHf3irvnlAuKxle2HqNWHqkaQ2Rq9ws+6THbguw6hzZ7hkdp0vsO7exDUulvzH0X1aHHZYZHAMY4jNOYnhPH+OJwUjC018K4HUWuuKhnw== 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=cZLwJevaMWXDFxxnCCpFIXoCfds/6RV8WV3DvXjTdOw=; b=kecG/+zIx4AeNfvy7/Qytz1kdM4IkDgq8e90VzIY5R2RIbXTwiQOgvq1DawKwS6O3eAI7gznVQLRc/7G6sxNRg8RLEBPgYP3VZmDipeaN8sXU2UWyyybvtyo++Hbkoc6wDrKQVz/aBOPgT8pfRu4vKMQrZiB7j94qf3ZdG0PzXzcGJgWUMibdsJvOXymtD2LErXEIgcSA+f9wtu39Uwo5ZTmovRI1RiTHl6R2Z3kuuic3VqLO+wMD2AaJfnVyjTH/T88QmslWnkVpDW7m6tlIgMmZQ3bMVl8WH+ue1CBWgy5OnCiB9eSVPsqp63kmoouERrpmUv2DxOt11qYNq4Qgw== 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=cZLwJevaMWXDFxxnCCpFIXoCfds/6RV8WV3DvXjTdOw=; b=kvcryKoNkf/h32Y64gcSxpIXuEWW4qwoZmbY9PtJ84lvxw/6VQh0uONfgBGkuT8q8uxUYK2wDfM9H5s/6KPporaKETTHOhFnEPMCHDIkBLNORKYI+HBcNYAMMPfZQDCiruveI9ot3rgiG3EWEGeWVoURzN4AS1a32Rv7LGmMwEo= Received: from PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) by SA6PR10MB8061.namprd10.prod.outlook.com (2603:10b6:806:43a::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.11; Fri, 30 Jan 2026 21:00:52 +0000 Received: from PH0PR10MB5777.namprd10.prod.outlook.com ([fe80::4b84:e58d:c708:c8ce]) by PH0PR10MB5777.namprd10.prod.outlook.com ([fe80::4b84:e58d:c708:c8ce%4]) with mapi id 15.20.9564.007; Fri, 30 Jan 2026 21:00:52 +0000 From: "Liam R. Howlett" To: Andrew Morton Cc: maple-tree@lists.infradead.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Suren Baghdasaryan , Matthew Wilcox , Sidhartha Kumar , Vlastimil Babka , Alice Ryhl , Kuninori Morimoto , Geert Uytterhoeven , Arnd Bergmann , Christian Kujau , SeongJae Park , "Liam R. Howlett" Subject: [PATCH v3 25/30] maple_tree: Add cp_converged() helper Date: Fri, 30 Jan 2026 15:59:30 -0500 Message-ID: <20260130205935.2559335-26-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260130205935.2559335-1-Liam.Howlett@oracle.com> References: <20260130205935.2559335-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0414.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:10b::22) To PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) 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: PH0PR10MB5777:EE_|SA6PR10MB8061:EE_ X-MS-Office365-Filtering-Correlation-Id: 4142fced-790f-4e2c-4789-08de6042a772 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|1800799024|366016; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?Gj4FJ0fAOTH/OadcernX7DkyRiaFTnyCDYl3LmplVmAqS3lGqvCDS4RpEWKR?= =?us-ascii?Q?276H7UE03lyBUzZNOH9trPFIkFf1H1KO1J790ywvFBzZvyHRk/7RmIhGx3mW?= =?us-ascii?Q?drFs3aC0KRbxd9L2Mwkud683J3tJpoJd8FHwAatZFI8n70XyViIPHgIEJy6H?= =?us-ascii?Q?u224hIbyR9dQKTzJb0IJFRuoUnUojAUZKWR3RDSD1ZnqhfXJiCVp3NsKX72F?= =?us-ascii?Q?j1WUqLjKp0u6i+J65DqNe4DdQrvWdGbeBXtHtn2aFn8hKjpP7npDyvuEUked?= =?us-ascii?Q?9qbHkSvjGgB7+1pmobZgYrkjWOitnFvbRQKjYX/tTGfHAlNCHzRnzfGRvvEl?= =?us-ascii?Q?NCjFkPccoekE/VI5wK/hJORzEIJQhSGRe0v3YZXpyXQLaqyHm6IgYupl9+F/?= =?us-ascii?Q?FU059u1xTJU7FJq5OlPsszijmLszfprlwCa4Tm+IxSfUSOw+HnGVXzVIjOaj?= =?us-ascii?Q?lNUNSlqr9g9ZAm556vsHi9W5EBXWloLRjOas//3/x3jj2CAZpJ/8jQbT+EHm?= =?us-ascii?Q?ZGb9lX1WYfSmcU38tUFvfcUEUbMSRp1gxLPgfYvosnAT6V37udjEiW3byGC6?= =?us-ascii?Q?rEUcsLqajPPPZumfFOAPu/XrSGUeSChav3iS7so3DXdKFCSqz7NXw7/A4zmY?= =?us-ascii?Q?ThtDADNS/6Lr56lw3aSYw1CMjqTTfT6qJFB9mhqs/eW9AFh6nmo0vkljj7QT?= =?us-ascii?Q?oLvTor3x7f5x4Puw6FWZrMXN6N/l8WkFf3jTNTpgUie1zuNZ8P0ofeuhPJCy?= =?us-ascii?Q?4wKBTq3RQLlCxNwV6PKDh1jLaC5JbjCQH4Nz3HjCnJRpdOMiRsm2HE1Yj36S?= =?us-ascii?Q?J5KG2zPph9BKHzy3TrcLRDmkC0ZHhyPV1rihyyRMxLZIphfsLDQLZ3Dliazc?= =?us-ascii?Q?HTjPoKyM6KRQ+PjTwPWZGUQCOGK+CI5Z+SxlKXLTKhkQG7BrTScJu9iYzJi9?= =?us-ascii?Q?tbdrvCJmwzvd7nHXu9oi8AusdehLQa+183PnujUJgwdPqS9pmVfoMs4pWnXE?= =?us-ascii?Q?W26o4UtKn2hxblIY5eXNlPscGgp8NIf1kI8gZRSqCCmAyWHJbqfPG/BJv9k7?= =?us-ascii?Q?mjUIQLb7yZkOwUiSk6Xi7Ncl4uhznfmflBdgpWF4PUQKeewWqDBAlJjTclJ9?= =?us-ascii?Q?DM5lIGBzN+UQrGDJVEDakSMkjQuFP0i6+IQapFr3yb/oP4OLWlhlqqMWe703?= =?us-ascii?Q?PK8d6xoAQweWSLHILnG7R6qjmxhvM6Ucy1rZCtaS3yH8lJiB9QZBnEbzcGxW?= =?us-ascii?Q?MUkp2b5wCND2AWWYGFtQjHywxOXt7NoATdzeroFEebiUUe3jqbTmmebbXJbJ?= =?us-ascii?Q?aUJmhTnvcJ9LYFyYmJ48C8T8YHgtRgmHpE24w265x7aZjdIycuYnqiwNAgok?= =?us-ascii?Q?zvWzsV0laz5w+LAjwiKwzx3LQuGuIoTSvsy0WQDrhYv/NXKSv5VAQ+wKL6+F?= =?us-ascii?Q?LC4pgR09gXv9yOnerIGtfYnKQ8uzO03nwctlPOGl/hgnOUCgV3h1APY9wtlr?= =?us-ascii?Q?arQTuq0Ms5QrBgRMXOLn80/JqhHYBm5KU9BSb7MwnyQUFsiPyDenQbwBQH5A?= =?us-ascii?Q?1Li9r3yu1uO3Gu2uaYQ=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH0PR10MB5777.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(1800799024)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?Srd37Zbok8vsBeto2D1LD4L2xwOTpf5mzNEe+xSJ992LiV67pgKngI/Q0MyG?= =?us-ascii?Q?Rzmilr8p+bRC8QTsvh53BDuysjBVRN59y8mivuSkTOu/toVSXoANhA6eSh9q?= =?us-ascii?Q?cMmI+F9A6AIyWJTfn1FeOzXWrYS7f46ctxEzS9Ll9t+LD87Y739wcjGGkdFp?= =?us-ascii?Q?1iScYMaRLFV071PDGax8Ifd8NDouvSsR5Vu5Cz2g//ZtvfTDq9VV8x7Nw2u1?= =?us-ascii?Q?qUNZm1cmLcmOJHxSJObkVJ00X3K411MiwaYsCef+xaVM/kDBYYNr5vojnZpX?= =?us-ascii?Q?kpVv54X8gYp0+v41/BqQ2zG//TBPXIqGhJ6X6pOFHjr7nwYUvy3V9vi3B0Ic?= =?us-ascii?Q?FpY44TtU/Vl34zAcisDM6YPTnxHUpOnW4P9H/LYjUlKcnM4VLGcI4slznnVp?= =?us-ascii?Q?IUCBX/4xgdJaiBcxP4MU6XfPlCCVYnlpsY5s+mzR2Acln8b+shpzUhOtoAN5?= =?us-ascii?Q?doAVXBeUhB/iU+RvE3EbIXeGQib04ORsv84aDNoKNCv2a4z9vm4RH4ReDUF1?= =?us-ascii?Q?97H6Gu3SWYFWMlZVADp4JsrQxtnkZ3JqEngsTlZGUMcsJixM7Sa+kiQ68tMC?= =?us-ascii?Q?ozIuG9iU0yD//MDhfoDw0vkjO7BJbHK5FMds2/VQJShMv+hz5HSg0WpYdoIR?= =?us-ascii?Q?Bf7S0wZ8C3rKIFlxf6GwqzQMvL/vKzwaNPUcRts/c/PuInmOO7cnffNYCYGh?= =?us-ascii?Q?bQrqRhETIbX1O6K9mBpUFN0EnNXSFjuS1ORQ6UxJZbCGsL40pP70cXPB5US+?= =?us-ascii?Q?clYBs8daZo4EZkzmwdSzD6AQJpKuoaPmJEc+4Bg9Gs3AG6gm89UAUjgxZAp0?= =?us-ascii?Q?t0609beGNoEDg5jvHSHS/HSc9VOWtmaprJ7CJ90h4auHv3Ycxg+BsvCoNLyK?= =?us-ascii?Q?MJG14RN1FxLDDc47ruQCh1SmLg3UkE/9TrFP2xSQUNoGGWgY4Et/UH1kbrOP?= =?us-ascii?Q?/2i0BtC2h3+jJuvYwijKR9f5awK6ynV2N7tu/sM07pvj4Wh+9C9/PqBF+1Rr?= =?us-ascii?Q?HvYaAAHQMRpxWdlOf6nEKy8ebwrNgiPknL/3COx4IeSgRhFutPsK+ogQlPt6?= =?us-ascii?Q?xjE/daq7U1KD1NJJDD4tkZs0A2+RDBjQlJC71jX3i5i13Gho/bWOZpcKDzEU?= =?us-ascii?Q?6zZgg2M8N0wRaq9qyOctTj386oLagZwQVwj6stKbaulETxUE9jVhjFu/2n1g?= =?us-ascii?Q?SRDFFzINJToduyHTABE/5Ihk8ZUEUc+pObfaXJG3kSGjiAvVXXCNHu7RhJZj?= =?us-ascii?Q?FQY8fIsNrEuPy2heJcVnBA66EScoQmdhCpUnv6PZAn2k9+XW9s2YbfHkF6Ku?= =?us-ascii?Q?5YEDY/BZtPWRnTaEUjZH9qez/NhVDt/wJ8HXT5a/mJZ6ptggeLUlq1eWCXXr?= =?us-ascii?Q?K3qhCEAWu1Wy2tuZRFTktlUnDxLobKh/Wyw96wNsaa3SvKAxSE//K8D1bXUU?= =?us-ascii?Q?5X0eSC93HBMP8BD9h7M7/Oc3Yi14ZzmoZsafEdRiNnGnPrskwz1QJ56+BDFV?= =?us-ascii?Q?l9/vG9i5VfYPVdzL9Y8KMrNmQp68AW7yUFFOymgYdtiYcvFOCgeazzdcsPS/?= =?us-ascii?Q?Dmo0wjBZLLMpPFetoeZz8IxMKYZYJ8ErplbGiAZyFFlJVAYidLw7KAFVdaI8?= =?us-ascii?Q?UEwsqE7hnymaKSIwS7rfnMFPuZ6pg3ILl6RqgSC7Z+2lqPRNNpGHkII/vm4z?= =?us-ascii?Q?NptqGpwxxDNGWwNUHRKjU9nlKR0QLUA473/rVFJEOQ6L/2wXAtp3LI+vnaFw?= =?us-ascii?Q?YbwFLR8l7w=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: PLHzSSPozKacIO2icX94jcp6/mL1u+/uVkmPf/cuQ95rLhNbBvBvgDV0fMPHRcqegg+6SnpbyFxMDGneEYouo4AI00UB229irkwXyGMJ7CcHs5+1wkeUM45rAqe0iwE8dyCFKhKYJZYo3/9nHjNa4Xqc9NnA6xyY/NP+2rd8j4UO/lIAbYKI7Zu6mktbuGWsZKlyhFIKy41FUT9jjLthWQoBzxfRrd0FhG7Yl/4GesbIuAnZZcTWckLSaoinq2KdTyYtxQczhRl6CqBSinPK5C+ssrsaJxmO41iHBmaCRGqzR4jUAWBuf/oWqWfkNtn76Q+uCIoMLcLU8HTEtyYDbklP3d75hFC+3UXTGySXvAidILQIDWlS0W+kP9G5Gd+q1mBpuz+Gj0FYdbsPmhRL0V2UAZmhWPVq7Rzl3lyIVsaRrkg0U0PnyLNa/kiTy7+v8+l+bEkRQijNWPqvBNBvT4/5IhPVRYLhAYoAvqBhAvAnjG4U09AbnpoKb+2KrrDFssO6kX0VM/P8pPvraGxWrCEokpxnq8wtxMVRIiGG70zw//L01zUa+y3QK6h6VDAcdOctdOUK/RM6MGcjMgd5QEa0ElsqE18hn4MZrnEa94o= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4142fced-790f-4e2c-4789-08de6042a772 X-MS-Exchange-CrossTenant-AuthSource: PH0PR10MB5777.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Jan 2026 21:00:52.7464 (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: BdOLQnYigWssoszjIsAOQv4lOqIstelSyJ2bsZOAoYVRQqZfw/QrXKMBzkJAUkx8sggV+O9D+0mHH+2T2llCKg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA6PR10MB8061 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-01-30_03,2026-01-30_04,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 malwarescore=0 suspectscore=0 mlxscore=0 spamscore=0 bulkscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2601150000 definitions=main-2601300172 X-Proofpoint-GUID: EI2iLiMAnfcfuT1xdoJERqqAh9HdtDT7 X-Proofpoint-ORIG-GUID: EI2iLiMAnfcfuT1xdoJERqqAh9HdtDT7 X-Authority-Analysis: v=2.4 cv=YuoChoYX c=1 sm=1 tr=0 ts=697d1c08 b=1 cx=c_pps a=e1sVV491RgrpLwSTMOnk8w==:117 a=e1sVV491RgrpLwSTMOnk8w==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=vUbySO9Y5rIA:10 a=GoEa3M9JfhUA:10 a=VkNPw1HP01LnGYTKEx00:22 a=yPCof4ZbAAAA:8 a=MoTMpwtd16bSVnSR3GwA:9 cc=ntf awl=host:13644 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTMwMDE3MyBTYWx0ZWRfX3uLmn3JpTXQ1 uA9WPggPmvMrdSKNh/ZsR/a5+BHeXqv/nVS2DihPw138pDXyxpeIV+/Qs+j7T9nGaf+UVklxf8S AXVaCjZ5JTSpptQyGyfoGjPxOJrs9PC+CtQHU8z9hBZwEerMg95yWAwiFat6ndCEtwu6drEmN9T UYDKNq6Iix2UG91TVjdCzqr8cS0dI1lFP89tjOk5wmRB9V3Jy7TFNtB9z0GC9Im8zzCdBbXV2Ul QCTUDehPsQVIjf1RA+om3b3PJlCIUJ49iHkj+UezMnGmgegNiMs/F5lIHyVOP02vg0b6r3tCVJD 7njpzNJUpx0pWlq9fDBFmT1813f31u60XvgAXK7kbJgtdZCNjn0+qwoIvarDSM5rK01wbIue8L6 BQ6Eoh3G9DudsfqjAvX3grNuPHbh966BPkYnsoSQpIulljNnWPT8x/tp1N94V+vsfWvPtt0BIz+ XutMp9BmH0udz2FmOFl6Fz45elw9vYrGfu8uv2WQ= Content-Type: text/plain; charset="utf-8" When the maple copy node converges into a single entry, then certain operations can stop ascending the tree. This is used more later. Signed-off-by: Liam R. Howlett --- lib/maple_tree.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/lib/maple_tree.c b/lib/maple_tree.c index 1e79dfbb024a0..f04989f8a115e 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -3493,6 +3493,16 @@ static inline bool cp_is_new_root(struct maple_copy = *cp, struct ma_state *mas) return true; } =20 +static inline bool cp_converged(struct maple_copy *cp, struct ma_state *ma= s, + struct ma_state *sib) +{ + if (cp->d_count !=3D 1 || sib->end) + return false; + + cp->dst[0].node->parent =3D ma_parent_ptr(mas_mn(mas)->parent); + return true; +} + /* * spanning_ascend() - See if a spanning store operation has to keep walki= ng up * the tree @@ -3575,10 +3585,8 @@ static inline bool rebalance_ascend(struct maple_cop= y *cp, if (cp_is_new_root(cp, mas)) return false; =20 - if (cp->d_count =3D=3D 1 && !sib->end) { - cp->dst[0].node->parent =3D ma_parent_ptr(mas_mn(mas)->parent); + if (cp_converged(cp, mas, sib)) return false; - } =20 cp->height++; copy_tree_location(parent, mas); --=20 2.47.3 From nobody Sun Feb 8 02:41:41 2026 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) (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 8C9333876CC for ; Fri, 30 Jan 2026 21:01:19 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.165.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769806881; cv=fail; b=DOhtR7G3CGMvXhqlAunbeJRF2jtnE4SpJk6zc6xykNKbf65Ltmu5jwOUm7XNWEtUzIrP6DvKseOdxHDc4ESXiIyXYiyBOoJDTXPerZGszTA5j63cs5MP5WHdu1XGrwAN2NncIR3iRwY3+0rOi7cHb5F1PbibB0e5RvqewyH+TT8= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769806881; c=relaxed/simple; bh=YoL3Fwd96N+bOV5DlUQTnVKO800Ho/4TkRjnioQSztI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=FTWhHrQ0oSFm91KZcl3t5gJaR087CKVm6ukFAmj6nxWnV9GKvNmZszGL0JES0JczZK5mI8fgGPT02p5CLYzYtEQ+qNrQaTgFxUfxswLOFrZGpJ9/fLDRsS3dVeIxg1+NJpRImpJCBkWukDt5SpTtKFfRRRYoCqQRJlGPPxZ3AZ8= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=WF57F7aO; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=Jst14YrS; arc=fail smtp.client-ip=205.220.165.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="WF57F7aO"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="Jst14YrS" Received: from pps.filterd (m0246627.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 60UKDEu23406906; Fri, 30 Jan 2026 21:00:59 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=nsCoVKnWNVdRGbFF7nf4ydhmpR0wG5Jj6DpOyXo7WSU=; b= WF57F7aOxgWOkLqz5TBRbE0LVwa1lhBdRj/ZHUr23uGIAXV1+sGAYjFFHl9rpqvw p51NbSL/WQhL/Wd58EVcHvF7p/ts5MX3S/R7tce5GXPW79kk+cs8QDjKOF6oCn9D mRaThBEKOKM+YUMSbm2rQGgyWLUZagaEqSvSZaArP742zzbtm3gJMbp+WRYM3dLl RB3J6CP0tTuBccdbUsEOKkxGCoRy/BmINb8/pvF6gp3W5QTuWLenlc4veGoCLSaY l9vhdYWu29mTxlrNjN+bOLT5+wRfflu3sjHmNPw7bVPJI29qoS170P0srxLgJqnz UYBUoNeG2BNAv6fKtmRQgQ== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4c103e8dus-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 30 Jan 2026 21:00:59 +0000 (GMT) Received: from pps.filterd (phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 60UJJC5L012770; Fri, 30 Jan 2026 21:00:58 GMT Received: from ch4pr04cu002.outbound.protection.outlook.com (mail-northcentralusazon11013070.outbound.protection.outlook.com [40.107.201.70]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 4bvmhe6f1q-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 30 Jan 2026 21:00:58 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ursIYMgX/kH/RZLnFGKviie1ds6vtmbeiJ4x0jk7BGCwTpqxogDzFyEWyP99Fz+mJtPcKY4AWKUfxafCwu+3ZNmEoQG5mGZBtI3ENOhyXXJtBXAwliUx7rXQsSO0X4ha5ui3eIRyvPDfYGY0BIctQjGVCDTQXt9VUcVIqrgXzw6nDVOScMtzcJwHGh9UTYlUPlAXU49Vd80yB4wg5POSzIM37aFNU7wqskxBB8BKdhZrbrXWnYf/9bSO5e0/FkyEO3MbtRL8YuVw4DiU397VHCLXovtsv8uS3FgvsD8Nw8mwsreT23RTJxDqdR6kMpZl6jHMctCm0S9bpS3zKB3ctg== 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=nsCoVKnWNVdRGbFF7nf4ydhmpR0wG5Jj6DpOyXo7WSU=; b=zMGjUfG83W0nfvHUCX9uN7n1lGSc138zU5kUiPkFsva2LU1WHEC9j5BQonFuOcTdH2BqigySRWFLC5o9qWUH7Y3DvbGzQHw67Xq2HiMnM7jeWCvH6jJ6ZbBOdjumtKOC/gL+KZe9gniJWmI7Arx8Btl7twChq1sO0yXQIgUFII8K/u9SoyiLs2J8xcSAsuMnqGGZvxrMasIrtmjwkFVVUueMFhf8JaRIYdGeCsWq2eaTu8fD4glSes/jJp2Ao9wzlAYWI0rr8RIFQwLH3bLJRxtiV+p2YKkI20J3d7rT/UMLF+NuWfrKS80jOD4A44AQpH7/XR9tA6n+hO/DP+irwg== 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=nsCoVKnWNVdRGbFF7nf4ydhmpR0wG5Jj6DpOyXo7WSU=; b=Jst14YrS+aBLGlwkFf8MThFv6AslMQcEQZ/Esh4jBy0br6OxNSiisKSl69V51eZhSGFcZoY6oIPKgRIWVaFzBUeBHburM1OjXO2H0cJU2wzNd18LrqyYlrA0JBBOkLiOvjxm9cNGHqf7c/dfL6R2OYAL0dyNypdrk9X3w6VX6OI= Received: from PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) by SA6PR10MB8061.namprd10.prod.outlook.com (2603:10b6:806:43a::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.11; Fri, 30 Jan 2026 21:00:55 +0000 Received: from PH0PR10MB5777.namprd10.prod.outlook.com ([fe80::4b84:e58d:c708:c8ce]) by PH0PR10MB5777.namprd10.prod.outlook.com ([fe80::4b84:e58d:c708:c8ce%4]) with mapi id 15.20.9564.007; Fri, 30 Jan 2026 21:00:55 +0000 From: "Liam R. Howlett" To: Andrew Morton Cc: maple-tree@lists.infradead.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Suren Baghdasaryan , Matthew Wilcox , Sidhartha Kumar , Vlastimil Babka , Alice Ryhl , Kuninori Morimoto , Geert Uytterhoeven , Arnd Bergmann , Christian Kujau , SeongJae Park , "Liam R. Howlett" Subject: [PATCH v3 26/30] maple_tree: Use maple copy node for mas_wr_split() Date: Fri, 30 Jan 2026 15:59:31 -0500 Message-ID: <20260130205935.2559335-27-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260130205935.2559335-1-Liam.Howlett@oracle.com> References: <20260130205935.2559335-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0345.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:fc::26) To PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) 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: PH0PR10MB5777:EE_|SA6PR10MB8061:EE_ X-MS-Office365-Filtering-Correlation-Id: bf8096e5-b991-48fb-b392-08de6042a8fe X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|1800799024|366016; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?bp4L2dCBFKzqSZKUsqmnUaJgrNUp9EzubyQH3rVVjGsp1uninkpQrOBfwUAz?= =?us-ascii?Q?HpXsuwbm64EQ4/nPagPl2OGldeNwpmODm/lfZAZxudoOd4FHKVkBL8qV8L9m?= =?us-ascii?Q?yhcjrf1/g20CI/FvgByPPfw7n6qP15g4Ps7ThsDRjMwgw3CFnd5FYmWkabMh?= =?us-ascii?Q?x27j72uRpj8Y1K3p9dqnax+n2fMI5Z2WushsBRC7h+CUbhB7ey/yp5iqo8hD?= =?us-ascii?Q?0DDtZUt4uMQontQdFMA2V9Te3oXQZeXRKtPx+/25qVMd12dj2tHgQU0XZaVk?= =?us-ascii?Q?yHDni7IB7USBxL22DewUnRfEA71dkjlGYPrBC2QPQg0aaVnxCwCWw9VpjoHK?= =?us-ascii?Q?wE7naVCdE+JfIZ1V+KwXfXjyh0j5qICNEVXrhdbZOnpeUdWq1bDi+s4elBLN?= =?us-ascii?Q?JTwnaJrnuMOWth0bT2311GVTXnZgVSfadxje6PnbDAfxhCGjYS0YDDKJSpOl?= =?us-ascii?Q?4Dssa7V4k574zzuHHrIW5LyKfs1eM5Eu6sryNh8X3GkLvHy5ZivZMFGgL7BU?= =?us-ascii?Q?ns7wMYhxuWZey2Wz2KBVFVkhiUzaxIJjIV+3DKsRB4/V4Lh0Bnd2bpzFhqgI?= =?us-ascii?Q?OCtnsOXxIsozL7iS7XldHOJBfEhTTPzfyTv8ziWtHGTMsUdyQc7UrmBkw3OR?= =?us-ascii?Q?MWod6xexWsYWEE6CJyXJFnjrAoUH3uq3CX5Ud1hlhQgTHTCYpB8YwNhY3uAo?= =?us-ascii?Q?RiCI9d7bVEkC5qmuqKjvSoWteoGymv2YHB9sJYlpQCYU4cSYnmJJTYb4yLON?= =?us-ascii?Q?kAWnjLJh7FE32vjBKVA3FCqqrJT7zpXBmD0RH0gKpd5LxmNxMDpy3p8kRrpm?= =?us-ascii?Q?9JhLNOfDXcXD9OMiYszhM0+zIUPHmWIFKjarWfRxrPyaGeg6zwD857EeGufp?= =?us-ascii?Q?Afao3KrKmrr3r4ctQlyjLWXQgEesWxHukvsNKuwuXvJfufF5WgJKBvCYrlag?= =?us-ascii?Q?Wvv61dlPjl+4X8mR6f3sI8z1zHfGUQL4F+9egQVLqhwSrn20bKkRvVCTeXMk?= =?us-ascii?Q?zlkFHjwG9TAcXwHZPfzsjVY3gcg7AJRMIkK7vYMHEgpPgDaoA2UtA6pwQquH?= =?us-ascii?Q?T2mtG8sCx263b6s5k/lOxj68MGfwPAJckOqsC1J87qVu24BAahtM/tEwGlnF?= =?us-ascii?Q?jk0WdeY3QhU1VxBH0/TlKbDM5uSsnv45lEqt6CeV4AyibBj9F/Ggp3bRwEWN?= =?us-ascii?Q?3DPOuS/HVH2eCGy2YWryyC/wZqzWni57q+Shi8RIFH58A8TxCcFa/+5gTxXa?= =?us-ascii?Q?6ssOGZjLLqeDZncAAeP3b98r97E1DPsBcW2rbqJIxyg8GWHyLXdCM4MVgyAl?= =?us-ascii?Q?cAuP8WjyJSdW8dgira01eewx43ibElTopRiHSETAUrBGGYKYfFluoGkSvuLT?= =?us-ascii?Q?SWuG4I68hYKrpoaHVhnrJJUJVZ9KEO9A8DW9rab/Sr1WZ1gitesACE5YUuuM?= =?us-ascii?Q?10DOx6NRHdAMi8PRjOk+y1qytY/Fa1aRWMNvv9ZR4qix1nx1+j5cbxbKa8oa?= =?us-ascii?Q?qitLFr59F1mr+49CTnd311aw5fddP1/74ezws0hXSY5suhIknAFeyPFaWb0f?= =?us-ascii?Q?TAUnHx6X2bo5CULOxK0=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH0PR10MB5777.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(1800799024)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?rIH0T1rPELhFR7iZ9PoSW07aPgEY3/xZ8bruwYINbatH6wzBz+Uc6XdOCGV9?= =?us-ascii?Q?ZQ8CFYf7fPzPQV/gLLB9nNwhncDcWy1/E7DCAgPCL7ZxuZhEAWOy4oVDU+ZG?= =?us-ascii?Q?1uH/kpzut5oUgPNYP0nPNGMfXC5KV7EfmliZBxZ3VT2Lio4wRJC16jEIva/j?= =?us-ascii?Q?ACvgnLAYTuOay1dP8yL6bnwFHpvFMjjWfMhoNdBlVQ+BK1l5TC6Ma6iJY0Jq?= =?us-ascii?Q?Kk2AzuGxhaj6VQWM42g/xkddy1rF39/Jd9MX/Wd36SMDFap96tsIcRNTZaJ3?= =?us-ascii?Q?8LrKNylnLGlk/eLTeTMF8HAXh/keRER8ThjGTtYi9Yak6fGxQQDQj0EUX7pv?= =?us-ascii?Q?HLdnpNxRmyg601/qSHvZ1DK2D8s63MiEYEySRo2BnWz+dVMN+ceXVbjDfbAq?= =?us-ascii?Q?0OW/SkTvAGSWzdpMQOThcKoMnqenACbfWpeMmswMuw4q7CylxR8EXYOUxf71?= =?us-ascii?Q?UGpST12uz4vzCMBo6dxP94VbqwUo/o8V94GnMcXJx73wZtcprHibX+f6IRw4?= =?us-ascii?Q?2T7gHIOxv3pmYimA+fDWOgiDv/jwceMI69ZqXgfJ8ER5pr2tukQmAcJVjRrb?= =?us-ascii?Q?G/uyPH2UfYrAyEZdGBQP0Ge/fpBZ7RNr5J9ypn/MJqVxwev3xZYMONWqZyR1?= =?us-ascii?Q?j+zp4GiCXLIsCQme093zdRJm0Ozbs0BFVctcBlwktob6GZMoTQuS92pUP4qm?= =?us-ascii?Q?n9njEv+TLR4J72qDaycxZ0bUVD0kpY9q4bjnawFpG1IaMX1tKS69Yl8D7/Zc?= =?us-ascii?Q?esTSaGeh6qoQHJH9+WJP2ydtcR3eqP0SVv8FHG9uiu6KzF8/BFJ+fFqs9ktv?= =?us-ascii?Q?0udxNmAm78m4R4FVjTJpF1QujR7z8cFnuSEFk684m0r4octFPf+l+sQiiena?= =?us-ascii?Q?dFsvnYUb+2Mk5fpENjbXKkqUikqWqNNJe4sdv51mw31eH4OJ+dV6Spi7fCtz?= =?us-ascii?Q?XkZb/j4Uz4tCRACUc6UuI3LiSCxeSuWHgM925zlB/v0OPbBQyGb7RD7pRnCs?= =?us-ascii?Q?nYmkLiO27N9mCH/99mPxBgQbMzOCYSwpnQWZsO1LLpwvU+De+HbIelvx5Z6S?= =?us-ascii?Q?Yw+yfO9RNqsyz4pcMou0x++LZXWj9dRkJrikc0yDaN4BK4kKH1cf06ZwUqsr?= =?us-ascii?Q?Oc+EHhvXSKrQKLOR70qOD8ANe0EaGn5BYvtqLSOQ0ZKiV+nFcuIGl05n0Tom?= =?us-ascii?Q?JujlJ8GEFgaxV56MjdVDnBKMJi8ylbOBf1WiKT0Pn9ttyUoFRg9Wkl6RKQJm?= =?us-ascii?Q?U916JuZtkmHPL/QuKlV1NkOkMikGz0t4nDiscSlNGxYnwVWVkCJS3ZM3n0SW?= =?us-ascii?Q?Tyi9pCa8o04U0GoOm8nmz0WshPh/l3ZaAjM7JD5GDY40brS5zp49JNuBc2Rn?= =?us-ascii?Q?LoDdiXv3NjmcKmScytFK0HB90pIjqKv+nZ1d41Jq7O4sbY3f9BOLyG7EAAsf?= =?us-ascii?Q?g7odKSmxjJPXaTHg9folorPLJq5D6JDVDhxf85FKtz/OS0XYR0JTHsSynxlp?= =?us-ascii?Q?lWsS06IhtVY9gLi0UXsGgK0Ui5WD5HhPwlbTzpcKRBzGeAj2ZYkoQcRT203w?= =?us-ascii?Q?BaYHrRem1X6K2hpNYe5P/fGFlwx3C+xwHWkpw3krH85j1AHrCGTCxhQ4NHmk?= =?us-ascii?Q?6jmXNnAxaAuJ8wVuWrYtrDKtNMdeykTzzBmDzvObCH17mKG9kTl2GxanOSyi?= =?us-ascii?Q?8wuWeLz6eDJVzM1/mmfFJ90BBT7Uitqyze4R7U1VUwAr3kB5CuWmb3Jqgi+Y?= =?us-ascii?Q?u1VTuuaMLA=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: aeTYscLVyCSeqVyEGD2W41yq5bXMFnwmViIy/JSuhbQn3wA8YIiyewLabaiBN6Lf6Oz5Rw0s2DgRvMRlToNA6cCFjFzbgas4em2+9IcEITnCRdBvGh1XaO87mBPujgvu9HvWnAkfoEMBefYk5NkeMXulz5ZD6i7NXuQ+h1+FzI1J2SmxcRO0Fd/bLeMsJnmqnK8Llt9ez3zfsrStz9D1VIZxzzaYfVXodv7Fx2c2kyJmi+1+2/mfhoVRrjlTlPjZZgnGNThfaA0F97weUjxTKTJHcw/XBYmbeFFDB5fPyPefF7SPcu/aakOVx5/9ndMo0kvwsw93D1Cvxi6SAR68Byk1E0JE/4AM5eZmWbP5cRLTreFDyaKZ77qH9lVkUI/tjVotPGC/B2nPwLx4EqPR0EvwLuwnd0LC1CppqyeZWhb4X0Dk2fV1SLpnDk6gg2ydeDZFKLr/Hx+Q4PUUE7MpX3R5MrfPdyH5rBn01VipsdAF0V/P2zrkMCEM1bsgpScw78T2XmjyN1yCxEaNZYQZODbU8y1L672vYzoHEio61CFy7ebDFBWLmFdYfN5gv8xBxxAeCZ1jCuwaKeR8L6LevK+2z6Wp5MpDfk75t1YRRwQ= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: bf8096e5-b991-48fb-b392-08de6042a8fe X-MS-Exchange-CrossTenant-AuthSource: PH0PR10MB5777.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Jan 2026 21:00:55.4402 (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: TGoMNxi/SB61uJ8m/EEJCu8xDugqeN/FsWEf+Y5Axq2+DGKNbceNrYOALb8HDA2TGaiWui958kREg2PoFOvO/A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA6PR10MB8061 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-01-30_03,2026-01-30_04,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 malwarescore=0 suspectscore=0 spamscore=0 adultscore=0 mlxscore=0 bulkscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2601150000 definitions=main-2601300172 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTMwMDE3MyBTYWx0ZWRfX9ewmtJlbAS/X rAUjbHitCcbcuXIWkCjSl9VsGwPolc5YD9843l1LNbN7Lw9ZSMXEsXFX5yt0ei/LCKyDaBxa6T1 M51O74pgn4Q6+IdH3yiA42LPgpEhdtNYUR2PQWk17Ov5Mdfjc5sHETRKECfNKOOtTbIx0AB3hDC 8HA8Abjrq6bItpZjHK0LorAtb8Ev4XqgYrbH6LB7o57RmVDvw+pfC0+BXlsi80Y163R1kBqit/S ptIkPbWQA3cF2SIKy6Y0jZundY+g0ge4ldIDFwZuk2jbEPrR2hOPzHPIHkge7GafO26e1HUwCje RcdzDvzhSXvc9/keGe/PG0yeM1OuuUX5eEHJPYoHHSQLbZNuJVnxRT0UpQ1ZdSmsuZL5B6idw+5 gDBby7JFwkFl/hFTrjXr7IeNpXhjAnY/wITle9sRFDuWl0Ce8ULarQTiCqyXdx4vSKVQdhZFJBo d0MopvJnmu0MHOdMBsg== X-Proofpoint-GUID: AUJXLc99nFP_zyLcuWX-PvWQas_ztOnS X-Authority-Analysis: v=2.4 cv=M/FA6iws c=1 sm=1 tr=0 ts=697d1c0b cx=c_pps a=XiAAW1AwiKB2Y8Wsi+sD2Q==:117 a=XiAAW1AwiKB2Y8Wsi+sD2Q==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=vUbySO9Y5rIA:10 a=GoEa3M9JfhUA:10 a=VkNPw1HP01LnGYTKEx00:22 a=yPCof4ZbAAAA:8 a=fZ5cR1aKDUsyH-17_CgA:9 X-Proofpoint-ORIG-GUID: AUJXLc99nFP_zyLcuWX-PvWQas_ztOnS Content-Type: text/plain; charset="utf-8" Instead of using the maple big node, use the maple copy node for reduced stack usage and aligning with mas_wr_rebalance() and mas_wr_spanning_store(). Splitting a node is similar to rebalancing, but a new evaluation of when to ascend is needed. The only other difference is that the data is pushed and never rebalanced at each level. The testing must also align with the changes to this commit to ensure the test suite continues to pass. Signed-off-by: Liam R. Howlett --- lib/maple_tree.c | 99 ++++++++++++++++++++++++++++++-- lib/test_maple_tree.c | 55 ++++++++++++++---- tools/testing/radix-tree/maple.c | 11 ++++ 3 files changed, 149 insertions(+), 16 deletions(-) diff --git a/lib/maple_tree.c b/lib/maple_tree.c index f04989f8a115e..5813ad17ea6fe 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -4542,19 +4542,106 @@ static inline void mas_wr_append(struct ma_wr_stat= e *wr_mas, trace_ma_write(TP_FCT, mas, new_end, wr_mas->entry); } =20 +/* + * split_ascend() - See if a split operation has to keep walking up the tr= ee + * @cp: The maple_copy node + * @wr_mas: The maple write state + * @sib: the maple state of the sibling + * + * Return: true if another split operation on the next level is needed, fa= lse + * otherwise + */ +static inline bool split_ascend(struct maple_copy *cp, + struct ma_wr_state *wr_mas, struct ma_state *sib, + struct ma_state *parent) +{ + struct ma_state *mas; + unsigned long min, max; + + mas =3D wr_mas->mas; + min =3D mas->min; /* push right, or normal split */ + max =3D mas->max; + wr_mas->offset_end =3D parent->offset; + if (sib->end) { + if (sib->max < mas->min) { + min =3D sib->min; /* push left */ + parent->offset--; + } else { + max =3D sib->max; /* push right */ + wr_mas->offset_end++; + } + } + + cp_dst_to_slots(cp, min, max, mas); + if (cp_is_new_root(cp, mas)) + return false; + + if (cp_converged(cp, mas, sib)) + return false; + + cp->height++; + copy_tree_location(parent, mas); + wr_mas_setup(wr_mas, mas); + return true; +} + +/* + * split_data() - Calculate the @cp data, populate @sib if the data can be + * pushed into a sibling. + * @cp: The maple copy node + * @wr_mas: The left write maple state + * @sib: The maple state of the sibling. + * + * Note: @cp->data is a size and not indexed by 0. @sib->end may be set to= 0 to + * indicate it will not be used. + * + */ +static inline void split_data(struct maple_copy *cp, + struct ma_wr_state *wr_mas, struct ma_state *sib, + struct ma_state *parent) +{ + cp_data_calc(cp, wr_mas, wr_mas); + if (cp->data <=3D mt_slots[wr_mas->type]) { + sib->end =3D 0; + return; + } + + push_data_sib(cp, wr_mas->mas, sib, parent); + if (sib->end) + cp->data +=3D sib->end + 1; +} + /* * mas_wr_split() - Expand one node into two * @wr_mas: The write maple state */ -static noinline_for_kasan void mas_wr_split(struct ma_wr_state *wr_mas) +static void mas_wr_split(struct ma_wr_state *wr_mas) { - struct maple_big_node b_node; + struct maple_enode *old_enode; + struct ma_state parent; + struct ma_state *mas; + struct maple_copy cp; + struct ma_state sib; =20 + mas =3D wr_mas->mas; trace_ma_write(TP_FCT, wr_mas->mas, 0, wr_mas->entry); - memset(&b_node, 0, sizeof(struct maple_big_node)); - mas_store_b_node(wr_mas, &b_node, wr_mas->offset_end); - WARN_ON_ONCE(wr_mas->mas->store_type !=3D wr_split_store); - return mas_split(wr_mas->mas, &b_node); + parent =3D *mas; + cp_leaf_init(&cp, mas, wr_mas, wr_mas); + do { + if (!mte_is_root(parent.node)) { + mas_ascend(&parent); + parent.end =3D mas_data_end(&parent); + } + split_data(&cp, wr_mas, &sib, &parent); + multi_src_setup(&cp, wr_mas, wr_mas, &sib); + dst_setup(&cp, mas, wr_mas->type); + cp_data_write(&cp, mas); + } while (split_ascend(&cp, wr_mas, &sib, &parent)); + + old_enode =3D mas->node; + mas->node =3D mt_slot_locked(mas->tree, cp.slot, 0); + mas_wmb_replace(mas, old_enode, cp.height); + mtree_range_walk(mas); } =20 /* diff --git a/lib/test_maple_tree.c b/lib/test_maple_tree.c index a182e48b5f5e6..434d8a2fdd99c 100644 --- a/lib/test_maple_tree.c +++ b/lib/test_maple_tree.c @@ -1024,6 +1024,7 @@ static noinline void __init check_ranges(struct maple= _tree *mt) mt_set_non_kernel(10); check_store_range(mt, r[10], r[11], xa_mk_value(r[10]), 0); MT_BUG_ON(mt, !mt_height(mt)); + mt_validate(mt); mtree_destroy(mt); =20 /* Create tree of 1-200 */ @@ -1031,11 +1032,13 @@ static noinline void __init check_ranges(struct map= le_tree *mt) /* Store 45-168 */ check_store_range(mt, r[10], r[11], xa_mk_value(r[10]), 0); MT_BUG_ON(mt, !mt_height(mt)); + mt_validate(mt); mtree_destroy(mt); =20 check_seq(mt, 30, false); check_store_range(mt, 6, 18, xa_mk_value(6), 0); MT_BUG_ON(mt, !mt_height(mt)); + mt_validate(mt); mtree_destroy(mt); =20 /* Overwrite across multiple levels. */ @@ -1061,6 +1064,7 @@ static noinline void __init check_ranges(struct maple= _tree *mt) check_load(mt, r[13] + 1, xa_mk_value(r[13] + 1)); check_load(mt, 135, NULL); check_load(mt, 140, NULL); + mt_validate(mt); mt_set_non_kernel(0); MT_BUG_ON(mt, !mt_height(mt)); mtree_destroy(mt); @@ -1285,14 +1289,20 @@ static noinline void __init check_ranges(struct map= le_tree *mt) MT_BUG_ON(mt, mt_height(mt) >=3D 4); } /* Cause a 3 child split all the way up the tree. */ - for (i =3D 5; i < 215; i +=3D 10) + for (i =3D 5; i < 215; i +=3D 10) { check_store_range(mt, 11450 + i, 11450 + i + 1, NULL, 0); - for (i =3D 5; i < 65; i +=3D 10) + mt_validate(mt); + } + for (i =3D 5; i < 65; i +=3D 10) { check_store_range(mt, 11770 + i, 11770 + i + 1, NULL, 0); + mt_validate(mt); + } =20 MT_BUG_ON(mt, mt_height(mt) >=3D 4); - for (i =3D 5; i < 45; i +=3D 10) + for (i =3D 5; i < 45; i +=3D 10) { check_store_range(mt, 11700 + i, 11700 + i + 1, NULL, 0); + mt_validate(mt); + } if (!MAPLE_32BIT) MT_BUG_ON(mt, mt_height(mt) < 4); mtree_destroy(mt); @@ -1304,17 +1314,42 @@ static noinline void __init check_ranges(struct map= le_tree *mt) val2 =3D (i+1)*10; check_store_range(mt, val, val2, xa_mk_value(val), 0); MT_BUG_ON(mt, mt_height(mt) >=3D 4); + mt_validate(mt); + } + /* Fill parents and leaves before split. */ + val =3D 7660; + for (i =3D 5; i < 490; i +=3D 5) { + val +=3D 5; + check_store_range(mt, val, val + 1, NULL, 0); + mt_validate(mt); + MT_BUG_ON(mt, mt_height(mt) >=3D 4); } + + val =3D 9460; /* Fill parents and leaves before split. */ - for (i =3D 5; i < 455; i +=3D 10) - check_store_range(mt, 7800 + i, 7800 + i + 1, NULL, 0); + for (i =3D 1; i < 10; i++) { + val++; + check_store_range(mt, val, val + 1, xa_mk_value(val), 0); + mt_validate(mt); + } =20 - for (i =3D 1; i < 16; i++) - check_store_range(mt, 8185 + i, 8185 + i + 1, - xa_mk_value(8185+i), 0); - MT_BUG_ON(mt, mt_height(mt) >=3D 4); + val =3D 8000; + for (i =3D 1; i < 14; i++) { + val++; + check_store_range(mt, val, val + 1, xa_mk_value(val), 0); + mt_validate(mt); + } + + + check_store_range(mt, 8051, 8051, xa_mk_value(8081), 0); + check_store_range(mt, 8052, 8052, xa_mk_value(8082), 0); + check_store_range(mt, 8083, 8083, xa_mk_value(8083), 0); + check_store_range(mt, 8084, 8084, xa_mk_value(8084), 0); + check_store_range(mt, 8085, 8085, xa_mk_value(8085), 0); /* triple split across multiple levels. */ - check_store_range(mt, 8184, 8184, xa_mk_value(8184), 0); + check_store_range(mt, 8099, 8100, xa_mk_value(1), 0); + + mt_validate(mt); if (!MAPLE_32BIT) MT_BUG_ON(mt, mt_height(mt) !=3D 4); } diff --git a/tools/testing/radix-tree/maple.c b/tools/testing/radix-tree/ma= ple.c index 5ea45d67556a8..feedd5ab7058f 100644 --- a/tools/testing/radix-tree/maple.c +++ b/tools/testing/radix-tree/maple.c @@ -35406,7 +35406,18 @@ static noinline void __init check_spanning_write(s= truct maple_tree *mt) mt_init_flags(mt, MT_FLAGS_ALLOC_RANGE); for (i =3D 0; i <=3D max; i++) mtree_test_store_range(mt, i * 10, i * 10 + 5, &i); + mtree_lock(mt); + if (MAPLE_32BIT) { + i =3D 47811; + do { + mas_set(&mas, i); + mas_store_gfp(&mas, check_spanning_write, GFP_KERNEL); + i++; + mas_ascend(&mas); + } while (mas_data_end(&mas) < mt_slot_count(mas.node) - 1); + } + mas_set(&mas, 47606); mas_store_gfp(&mas, check_spanning_write, GFP_KERNEL); mas_set(&mas, 47607); --=20 2.47.3 From nobody Sun Feb 8 02:41:41 2026 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) (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 A05E138A72A for ; Fri, 30 Jan 2026 21:01:35 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.177.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769806899; cv=fail; b=YpiuzHm4/ifwe/Eg1IqnFxcOYFQ4ySY5tFyvDKKMizYQnnH3taCHOUYAZZJPWJ9Yj/wcAdVXCt0Ilk+GazbyBN0b1Rc0EK/LlDNF4p9/Ko2oAcjBnnBzE9VFBgR2g4+ob9AL/gwa8eAP7JCQ+W2HEzB4PkhrWLJYC3h8njgoDVU= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769806899; c=relaxed/simple; bh=0DzMl4FT0BuU4fIKS8s5L4Qx/KEz+FwsxuduEqoNdEA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=JdLFoC3Xgj/BTG5HvmXy/Xf8ZOpjKEFujtmpBSDP5vZn54QMYXEjQjLAofgakNHek/g3MSeON3H9WSxPK4mRUi0pzuObMC3kg3DaDtzh/GTR7Y9OIANG8q7/WP9fKjYO4dF2PLiZ3MjDceUArNxhwUXfUwRqs9iGr2G3XGSixyM= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=hJm+xas1; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=Mx3MrQ0E; arc=fail smtp.client-ip=205.220.177.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="hJm+xas1"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="Mx3MrQ0E" Received: from pps.filterd (m0246630.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 60UKDRGX4028599; Fri, 30 Jan 2026 21:01:06 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=i8xlIk0QXY7+7TE0UYuywi3jvcllB/roaMwC0LiEzxM=; b= hJm+xas1LqaLEp2g4RX6YOIHqLRXmWu3KEzJgozv/B4AzYKi7V2fxOHTPlFyQLKu RKAU9R+TtKXi6aoxWymJooHuEzugLD97R8wYlKk+XyAFPpekebH5BLI+P/ln52gP FuDZYlvkzmYqF3/k7+T3nPgODlBTDfVbTba2yFwcjq4XVvuWmV5JVf7+b+4xa254 DC0KQV9YxFVmmIJB+TeNlxIOcmAYLyWHET96N1//eLLElk3VaZEQ2GL4e5kc1CKl DKW4ndoT2ICZOOQRg70vd9WFURHnXmJE8em9Icdnkcl44XkSdmp4wTiyuMa+sDtQ z3nGA1famJjBmCTUe5lW+g== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4c10668cgp-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 30 Jan 2026 21:01:05 +0000 (GMT) Received: from pps.filterd (phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 60UJ4dNA033649; Fri, 30 Jan 2026 21:01:04 GMT Received: from ch4pr04cu002.outbound.protection.outlook.com (mail-northcentralusazon11013062.outbound.protection.outlook.com [40.107.201.62]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 4bvmhe4gx5-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 30 Jan 2026 21:01:03 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=OCp0NpfaNesCjTYpLKvjKRzdnu+dP2BcAktvYk5w0DONufyWqqEOBFxf0b/8o18hCm1mcqFTBUXljZ+jTe6Y3h8SDFL3cjlQr0GPBDTQul7JQ/ddkoO7lpRZF8j9K1i6UuVJXEe8jy0s6U6F06lfs2qW+fokfYSZCh6QUIjw8XizmrMNw/NlQL0rudAr4usx/d1bjV6wmtJILXv9rXBdN4j549Df2Nv4ul+7erAaV7AgXib1FhXPXyRwT1tjEUuLxllgoMQmVmSyUl0XDVm5GegwRUMtnttVDPEkP2BzisYpTuhMjV7X3JsQkDH9kq7qqhlwINOTWvB5p1sNnkPrCw== 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=i8xlIk0QXY7+7TE0UYuywi3jvcllB/roaMwC0LiEzxM=; b=P7/p2BucsvVTa89zXQ+oEDpr5PGAlTljp7qyQ2QcRqZfXEEKGTqzrWVs9XQbzO7LgkZ4PQr8KRsur2D5VWPujjyWSbc5ZNlI/YGnstNOX/gvN0NzvpZwfZi62YyTUSwrUOPTJBYPbbC32sbh48U5t/+alUdvxofCR3UxsBb3MCgVQZSeDvYZxnpNudiaB28hn/MuDY36z1x26MLdj7dmgUCfPlbZuMooV/PpNrDgnokDKIX8Xf3650MUJpaUFQgCzCQxOCWwYVgAOY8TEHy4vwjLj1uINES+yd8du6QL08dghQ5qjMpdXlk6DA2VfTjhk3CyVdrtbEcqNb606m6iBg== 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=i8xlIk0QXY7+7TE0UYuywi3jvcllB/roaMwC0LiEzxM=; b=Mx3MrQ0EGg0sYdLrb1dkFu+nnqdUu86aMgCrIpiXAQpbSPrKvhNcUxLLb287Uk2u4/UnSkCLQFRsFCzt9R5SXBwJtcx5l3e7hWpsM8MmrLZ8npVPT7+WzsKWDsO+gLx0mQx5DrV4NoGTULFgvClGk/w78fU5KvdCP6DWtlM0hZU= Received: from PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) by SA6PR10MB8061.namprd10.prod.outlook.com (2603:10b6:806:43a::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.11; Fri, 30 Jan 2026 21:00:57 +0000 Received: from PH0PR10MB5777.namprd10.prod.outlook.com ([fe80::4b84:e58d:c708:c8ce]) by PH0PR10MB5777.namprd10.prod.outlook.com ([fe80::4b84:e58d:c708:c8ce%4]) with mapi id 15.20.9564.007; Fri, 30 Jan 2026 21:00:57 +0000 From: "Liam R. Howlett" To: Andrew Morton Cc: maple-tree@lists.infradead.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Suren Baghdasaryan , Matthew Wilcox , Sidhartha Kumar , Vlastimil Babka , Alice Ryhl , Kuninori Morimoto , Geert Uytterhoeven , Arnd Bergmann , Christian Kujau , SeongJae Park , "Liam R. Howlett" Subject: [PATCH v3 27/30] maple_tree: Remove maple big node and subtree structs Date: Fri, 30 Jan 2026 15:59:32 -0500 Message-ID: <20260130205935.2559335-28-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260130205935.2559335-1-Liam.Howlett@oracle.com> References: <20260130205935.2559335-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0358.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:fc::19) To PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) 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: PH0PR10MB5777:EE_|SA6PR10MB8061:EE_ X-MS-Office365-Filtering-Correlation-Id: 7a4482b7-5078-43b0-0564-08de6042aa49 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|1800799024|366016; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?ZyWTXtVGDkO1s57Q+Jnj+i0TC+fHSieYQreIAkQWRdgTCdCGR3o09bzGv0N6?= =?us-ascii?Q?0sF/X7beazYxWZhYQjhUK9OSJfFCkix6Ogo6k4f9OUinmzyOVQd4jFO0WUDb?= =?us-ascii?Q?D+rx88feBJ+QqC94fJdHZVJPfY58HF7PHAMdGi1UqaS/WV4xM5KpptObbL7P?= =?us-ascii?Q?1KybKLk4T/yxQCAnBx1bCBhLZ2bb6RW+4mBMOgyhjmNcHW3GfZaywGUv6pIR?= =?us-ascii?Q?MPCfdL5hUz/w8V2xpDdWAYztehNmhvgwn3JOn/LBpPollNPOponC7jI1jzez?= =?us-ascii?Q?v69nliYvRmZA+gcr9KOHa1v0YWh3d/Q/LAlrnsuHCiFauCnSq4O/aWbc3ZbZ?= =?us-ascii?Q?2dJGh9NCpXFa0Us/QVRacLfUGoi1MhbwrW2gisOAAEm30jBx93wwRGAIAZQz?= =?us-ascii?Q?p9tllVp5T/kPua9IOUQihKnTCWywZFTn9Q0wpONvLHXiP27I102bdoR8uSc9?= =?us-ascii?Q?wDJnawtDjNhhM84AnecibuKI1HyW+TDPxCZRvEQrEg4h2xVCkCWRTBp/W64k?= =?us-ascii?Q?1KDNit9OQ6Ix+7+YFFMJpRGUtqbOx+ZjqqSO8V9be20x7ikfycRHIOQu6Q6S?= =?us-ascii?Q?FUJhqdJJZIH30d3tUxFTep0R1ulXpQBCjEsTXGWvtdspXsV+dxisaSUFOj4p?= =?us-ascii?Q?3PTJmJ4ZVtGkdtsmEr4mfQPMLvNbfNKat8hChAei4yNQa6WOmqVeYPg3aK/v?= =?us-ascii?Q?ZltY9CsE/fDzKAKIupN7+/iNWQNGE/t+icvYugJSHS3bG1hVPQVkCPSfVc17?= =?us-ascii?Q?f6LSBtnti8JgV0/rZ0d+5bQ6A8g7Nodzcuo0Nm/++KHLZl+Fr5RCjg5bZ8Hd?= =?us-ascii?Q?zWt7zkG9pF3u3KY62wdUMna+xCTrhk+/a6NIFdGNxxkn1bP+5f49BO0NwcUC?= =?us-ascii?Q?VIjm2ZLbh10TjV+XvVT+r4G9ZqDR83GggBIMlWEFlvqOy+Wel6nlBTd1kSLd?= =?us-ascii?Q?m2aiytnTiMBTTGpd5JJ97FvdSQpwTv0koG84BMnGBhIMxEyAlLL3fXX/7NKq?= =?us-ascii?Q?8y+uopFeRI+8/yZxN5QUNASuFr+aa2au4pwmp8jf+7HPQghtvAmdY0xTcqmf?= =?us-ascii?Q?xdhjIhLkarXwmIWwf4y3SOZKo0U89sJgwD4A5tQw2RScYRbzfG+kHVYTozW7?= =?us-ascii?Q?zF8VcgFarWLCyhR4H6smNnQiQgkIzB4DnZOzQIBrtS90DV4RBqu/SoWIANoe?= =?us-ascii?Q?/fODMX+Oi5yoJq3q3Sdf8tG/8VF2CJTsFqBxPUSdhFXUNC3+eAtV1YO+twWk?= =?us-ascii?Q?Yrri1s28qdNRuvpcK3+Djy5mdjVrrAYbhKqUVTqnhr15n6h+EMVdSdfpYi+l?= =?us-ascii?Q?CIpwrcKk6rszE43VRMMUOSq8bV4y1eVnvr86ppZEeZPKiHd/pKOA1utp0WGr?= =?us-ascii?Q?GijF2re5ju9RpkFQQEI2E+lu7nDEcdjoiwADL/VxX7O65Tn0mFdHuePFnTNy?= =?us-ascii?Q?aIZrmK6nT+APs2x1Sd/rfYnlR6xbr3XIVFFZ6z/D4tffAyt42T8qpc5IWXGY?= =?us-ascii?Q?oIe6RdBSwoGuS1uwUKJ5lvMwcw5zLPSghn8xEhFX8Br5fUKCAKSw/seDXHeR?= =?us-ascii?Q?U4m5FMpb5e9Ty03E0tw=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH0PR10MB5777.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(1800799024)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?pmqky7wTYBeSf20eErW2+QSq72cagI+73xyNes2PLtpgWMc6Crz6F2lyGVXZ?= =?us-ascii?Q?tTDORAfsfx8xG4i6BEor7dm1NRuJdeJSCeJBpYbfXk0L0/ad3zYbKlctp1ig?= =?us-ascii?Q?y/ZZ8SGJBq6k49Lhnm7NdsAshra+CB1hPoBg5fB4WNr+747gqxvT8dj/GpHm?= =?us-ascii?Q?/S/cPsZxKyrcYEVoO/Hs6BXn+dcQxF9jmXNk3Gdj3eMU1bD4t6gAjalyjdEM?= =?us-ascii?Q?DUBiEDASMX+6o61ThchY0N0jZPETe11yQc/uCTi3XfWKrGS3HFChsyILtFb2?= =?us-ascii?Q?2pzWoTKaCLv6eX2HajWxf1zMhzv6qBZjWmWvLcQJubruOciRFYxQTD8kzPhJ?= =?us-ascii?Q?qSpttAAGTbdAElh4GceGdb302ZcIRQfY+pUdVxGhhG+wPKTmbH9P1b8iy+w+?= =?us-ascii?Q?Ak1zWIXHETS0CmxiMdFrPra9syIURwaxsE+FqO0y3WcLEMulw0gyD04K0jvF?= =?us-ascii?Q?gP3TWMVcesikb4HMIcU8nKQehP+4l4zZxyIBf4L49Lh/DBP24McV4eqh15f2?= =?us-ascii?Q?Ige0N+SP3Ve1wmKMAOEIkeG0tV1MPg5aIYhU0VqooU0ETc7qNyC9NsHM29RZ?= =?us-ascii?Q?I/tBjWt9sxD0hpie4pjEeQviW5IQeNso9p3waN1ubCkDcnDrLHx1V2Mug+Pn?= =?us-ascii?Q?vJaExq8VID1p1eneTrRaeOybfRRRgXjOk6oNiOSX+UqwTTA7AqhipWGzxJ+E?= =?us-ascii?Q?0AZk+UhEbfMwIhWoL/fQMgMOy2MZWeC9n5al6Y0hH+4nRzsKQfewxjLldAjV?= =?us-ascii?Q?weE/Y8GKsWcW5Xw36iEvjynA8KStESSTxk+8DjWuZRxBrjprg/XcEj64jyLS?= =?us-ascii?Q?0SFUYxgoZ2I2hqmq4YhXoeqvUV7C1+6I8yiqtz4gk3Tp1Pe4bcxWprxnHdQy?= =?us-ascii?Q?rcxs0GpA5WqPFeiYQU7IIZDbootMUiIP1A7VWFAK7/w1oXU6OHR+YdF7l+xL?= =?us-ascii?Q?/tQx9kzBOFDWGiY/4ORjoWTCTceQGWfMgLSebWTe/o2L+pPnxPjv6LsIfbp/?= =?us-ascii?Q?XjjelqaAPACong1xAdPDw1craaVIjNFW/D2IzI0Flw1dz16uIM2xWZccwDEC?= =?us-ascii?Q?2wlb8HMbTgr7vfP7RmFbyogSAE909kDv6zWCBXYQ3j0uUVk2tPf4I2Y97K4e?= =?us-ascii?Q?7ap6FizBIxod+XKZ6zTQ/rwALf7jMxUryfcPerWLAmR3J0LEFEbaWsHQ9blq?= =?us-ascii?Q?379+EBmtK1RqNjZI2S+rtQSPpafuaRTU+sqmO1s8UhnoALW5/mYgtyF0ajO4?= =?us-ascii?Q?A2aCg8nMgMeznZ+3SZiuEKCc0JNZcpSFuiK49BbwV0fBMLOkyuW/G9cR3UAT?= =?us-ascii?Q?zgrXxef3cXfNv3+66qBZSwtCnQFpMt+DesTLO4mT9wxSAno7GWW8Qt3Ykb50?= =?us-ascii?Q?luPbF+iT+W6XIqV5LhlwpFge5kVR53HfJyyxXHPvyqluzzRDv0UirD/t7CH9?= =?us-ascii?Q?HsawuBHpeoa1be7EegFU2vvVuNH5PNEvm6VPXyFCNsz6mW/wG4uZ4h7p3yLn?= =?us-ascii?Q?qV+ZngGIFB8y7bQPgWgAcg+/AiGLkPx0znY6Z7XI823Y+5hfdPWpIs7DTIaS?= =?us-ascii?Q?TPPqCcOy9De3S6C+I8AvuO4gSHlaoH4GShXenJtBahrwTLMnosB6Zuo0E3+V?= =?us-ascii?Q?yJCTa/jdBZJ30YmzzAwUFSu0tXyRwCSiQvi/puKFfXaoxQfOvwikvieV5BUH?= =?us-ascii?Q?JkR9mDuqthKjYMK4wu26mrWNczY7DCYLQ7v4H8qP7dIxMxE4+7safk1UOunn?= =?us-ascii?Q?reGWTvp+Zw=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: fmTkfzLDy2R3XG3RBKfmWzkZqyf5sjSSQ5KFjKrF+7z53mIYn4EYm/LWReanUEsmCKAkLi/3VFu9jAwTnW/m6bFbHr2LjmhYMlHtXMbio/D+IgUKB9zUk/XE8x2c6rsYRB0Wd6gJTlFSnQBwvdRhnJFTA14Ll0Wr+Y7qxgv2RX0KLeR0IhQ+v6S312DNCc8KU8HBkaHZbc04JAFNE5k809nys5+fftDcXY/fwd/rf813PRmI1coVWyhT2FPBheJbOAxRunQtLy+60U7HnAUUSuBkVUuwkh/p9KZatGFV6ZP61+BnqDZdPz8kBgfO/v1IXSYKtDh+0AABkNlS/vLICihmdnvfQyWvsrOecP/oY4RasNSPf4M2AnbWQaRtHDjrgqGi7rlzXmDrMOd3u5J1eejW2p7CdFw3/VPpnttwAemmpvhVHpc8vvFz6qs1+zLn9o6xGj86v91pHYHJ+0QB+y8KYgQgzuAhubBz93sPW5IjDsT+jfDIMa9NOoCV6M7hrLPZoWWc87ZuPMkT3zwuAYrqgcMNC1UFW7vYakEIRHFG6CepGHoXOA0uTuqEI58EL64wLbVU4kZBX4Rk1/qle10Vy8pw8lbTkhcglN00vck= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7a4482b7-5078-43b0-0564-08de6042aa49 X-MS-Exchange-CrossTenant-AuthSource: PH0PR10MB5777.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Jan 2026 21:00:57.6166 (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: BPZeJ5qmhd9w9SKi9uhdqBpgYdipLx+AFjh0/t0lOzs6H8fcOFxzCTGL94RF2T+N8J0y9f6fqQ7IBMkbcZyXbg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA6PR10MB8061 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-01-30_03,2026-01-30_04,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 bulkscore=0 mlxlogscore=999 adultscore=0 malwarescore=0 spamscore=0 phishscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2601150000 definitions=main-2601300172 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTMwMDE3MyBTYWx0ZWRfX5lGUtxLXIywq 2nt6/nbJo44xodDu1W/shxfV1NeT/PncyokQKqI2XJEd9ufH3LP4391FBJI7EA6y9h94s742RWR Q8sNp1l+RhbFmW5keWqVZIRxnfMRmhC0GnBgZNEHJKoBQpaHhQiqeQeUDJo9Rq8U/Tm96Tjf8KW 6nRpd/1nlkrJRYDCc1LRfi1kboHWcVSDsIVces8Xn+pZ+T4ma4Oaa5nyMO9G9TzmzhB75MWhA8U Hu8e3dF9rMp+8ZvJkcgl0E4kbu4f3aEX1gVptrOD5Uax7NbKcKOPjj3QZ/rZbWQNcsDIgHaCciD 3aleDwAhkCVtprlpRMxk+NnWdl/zDVC4aAb3btPhhVbQeo6ipNfQlHhhtW+NpIplKrl2StIhH27 2Jh5tK0buuMKIMCSnJN2PFDulOvvOvohoKe+6WKEdPcV5uFimn3mROjhfukP3ayKmZgiHAH4VrX 9m5JgaO4EgWTqjuaRAQ== X-Proofpoint-ORIG-GUID: JVTkxx9MU-IVY3ngMGs4s118GATcDZY0 X-Authority-Analysis: v=2.4 cv=EebFgfmC c=1 sm=1 tr=0 ts=697d1c11 b=1 cx=c_pps a=WeWmnZmh0fydH62SvGsd2A==:117 a=WeWmnZmh0fydH62SvGsd2A==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=vUbySO9Y5rIA:10 a=GoEa3M9JfhUA:10 a=VkNPw1HP01LnGYTKEx00:22 a=yPCof4ZbAAAA:8 a=AJrCfj9k8GgL1_glB6IA:9 X-Proofpoint-GUID: JVTkxx9MU-IVY3ngMGs4s118GATcDZY0 Content-Type: text/plain; charset="utf-8" Now that no one uses the structures and functions, drop the dead code. Signed-off-by: Liam R. Howlett --- lib/maple_tree.c | 1184 ---------------------------------------------- 1 file changed, 1184 deletions(-) diff --git a/lib/maple_tree.c b/lib/maple_tree.c index 5813ad17ea6fe..1cfbed6fac9f5 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -133,45 +133,6 @@ static const unsigned char mt_min_slots[] =3D { }; #define mt_min_slot_count(x) mt_min_slots[mte_node_type(x)] =20 -#define MAPLE_BIG_NODE_SLOTS (MAPLE_RANGE64_SLOTS * 2 + 2) -#define MAPLE_BIG_NODE_GAPS (MAPLE_ARANGE64_SLOTS * 2 + 1) - -struct maple_big_node { - unsigned long pivot[MAPLE_BIG_NODE_SLOTS - 1]; - union { - struct maple_enode *slot[MAPLE_BIG_NODE_SLOTS]; - struct { - unsigned long padding[MAPLE_BIG_NODE_GAPS]; - unsigned long gap[MAPLE_BIG_NODE_GAPS]; - }; - }; - unsigned char b_end; - enum maple_type type; -}; - -/* - * The maple_subtree_state is used to build a tree to replace a segment of= an - * existing tree in a more atomic way. Any walkers of the older tree will= hit a - * dead node and restart on updates. - */ -struct maple_subtree_state { - struct ma_state *orig_l; /* Original left side of subtree */ - struct ma_state *orig_r; /* Original right side of subtree */ - struct ma_state *l; /* New left side of subtree */ - struct ma_state *m; /* New middle of subtree (rare) */ - struct ma_state *r; /* New right side of subtree */ - struct ma_topiary *free; /* nodes to be freed */ - struct ma_topiary *destroy; /* Nodes to be destroyed (walked and freed) */ - struct maple_big_node *bn; -}; - -#ifdef CONFIG_KASAN_STACK -/* Prevent mas_wr_bnode() from exceeding the stack frame limit */ -#define noinline_for_kasan noinline_for_stack -#else -#define noinline_for_kasan inline -#endif - /* Functions */ static inline struct maple_node *mt_alloc_one(gfp_t gfp) { @@ -1669,169 +1630,6 @@ static inline bool mas_find_child(struct ma_state *= mas, struct ma_state *child) return false; } =20 -/* - * mab_shift_right() - Shift the data in mab right. Note, does not clean o= ut the - * old data or set b_node->b_end. - * @b_node: the maple_big_node - * @shift: the shift count - */ -static inline void mab_shift_right(struct maple_big_node *b_node, - unsigned char shift) -{ - unsigned long size =3D b_node->b_end * sizeof(unsigned long); - - memmove(b_node->pivot + shift, b_node->pivot, size); - memmove(b_node->slot + shift, b_node->slot, size); - if (b_node->type =3D=3D maple_arange_64) - memmove(b_node->gap + shift, b_node->gap, size); -} - -/* - * mab_middle_node() - Check if a middle node is needed (unlikely) - * @b_node: the maple_big_node that contains the data. - * @split: the potential split location - * @slot_count: the size that can be stored in a single node being conside= red. - * - * Return: true if a middle node is required. - */ -static inline bool mab_middle_node(struct maple_big_node *b_node, int spli= t, - unsigned char slot_count) -{ - unsigned char size =3D b_node->b_end; - - if (size >=3D 2 * slot_count) - return true; - - if (!b_node->slot[split] && (size >=3D 2 * slot_count - 1)) - return true; - - return false; -} - -/* - * mab_no_null_split() - ensure the split doesn't fall on a NULL - * @b_node: the maple_big_node with the data - * @split: the suggested split location - * @slot_count: the number of slots in the node being considered. - * - * Return: the split location. - */ -static inline int mab_no_null_split(struct maple_big_node *b_node, - unsigned char split, unsigned char slot_count) -{ - if (!b_node->slot[split]) { - /* - * If the split is less than the max slot && the right side will - * still be sufficient, then increment the split on NULL. - */ - if ((split < slot_count - 1) && - (b_node->b_end - split) > (mt_min_slots[b_node->type])) - split++; - else - split--; - } - return split; -} - -/* - * mab_calc_split() - Calculate the split location and if there needs to b= e two - * splits. - * @mas: The maple state - * @bn: The maple_big_node with the data - * @mid_split: The second split, if required. 0 otherwise. - * - * Return: The first split location. The middle split is set in @mid_spli= t. - */ -static inline int mab_calc_split(struct ma_state *mas, - struct maple_big_node *bn, unsigned char *mid_split) -{ - unsigned char b_end =3D bn->b_end; - int split =3D b_end / 2; /* Assume equal split. */ - unsigned char slot_count =3D mt_slots[bn->type]; - - /* - * To support gap tracking, all NULL entries are kept together and a node= cannot - * end on a NULL entry, with the exception of the left-most leaf. The - * limitation means that the split of a node must be checked for this con= dition - * and be able to put more data in one direction or the other. - * - * Although extremely rare, it is possible to enter what is known as the = 3-way - * split scenario. The 3-way split comes about by means of a store of a = range - * that overwrites the end and beginning of two full nodes. The result i= s a set - * of entries that cannot be stored in 2 nodes. Sometimes, these two nod= es can - * also be located in different parent nodes which are also full. This c= an - * carry upwards all the way to the root in the worst case. - */ - if (unlikely(mab_middle_node(bn, split, slot_count))) { - split =3D b_end / 3; - *mid_split =3D split * 2; - } else { - *mid_split =3D 0; - } - - /* Avoid ending a node on a NULL entry */ - split =3D mab_no_null_split(bn, split, slot_count); - - if (unlikely(*mid_split)) - *mid_split =3D mab_no_null_split(bn, *mid_split, slot_count); - - return split; -} - -/* - * mas_mab_cp() - Copy data from a maple state inclusively to a maple_big_= node - * and set @b_node->b_end to the next free slot. - * @mas: The maple state - * @mas_start: The starting slot to copy - * @mas_end: The end slot to copy (inclusively) - * @b_node: The maple_big_node to place the data - * @mab_start: The starting location in maple_big_node to store the data. - */ -static inline void mas_mab_cp(struct ma_state *mas, unsigned char mas_star= t, - unsigned char mas_end, struct maple_big_node *b_node, - unsigned char mab_start) -{ - enum maple_type mt; - struct maple_node *node; - void __rcu **slots; - unsigned long *pivots, *gaps; - int i =3D mas_start, j =3D mab_start; - unsigned char piv_end; - - node =3D mas_mn(mas); - mt =3D mte_node_type(mas->node); - pivots =3D ma_pivots(node, mt); - if (!i) { - b_node->pivot[j] =3D pivots[i++]; - if (unlikely(i > mas_end)) - goto complete; - j++; - } - - piv_end =3D min(mas_end, mt_pivots[mt]); - for (; i < piv_end; i++, j++) { - b_node->pivot[j] =3D pivots[i]; - if (unlikely(!b_node->pivot[j])) - goto complete; - - if (unlikely(mas->max =3D=3D b_node->pivot[j])) - goto complete; - } - - b_node->pivot[j] =3D mas_safe_pivot(mas, pivots, i, mt); - -complete: - b_node->b_end =3D ++j; - j -=3D mab_start; - slots =3D ma_slots(node, mt); - memcpy(b_node->slot + mab_start, slots + mas_start, sizeof(void *) * j); - if (!ma_is_leaf(mt) && mt_is_alloc(mas->tree)) { - gaps =3D ma_gaps(node, mt); - memcpy(b_node->gap + mab_start, gaps + mas_start, - sizeof(unsigned long) * j); - } -} - /* * mas_leaf_set_meta() - Set the metadata of a leaf if possible. * @node: The maple node @@ -1845,134 +1643,6 @@ static inline void mas_leaf_set_meta(struct maple_n= ode *node, ma_set_meta(node, mt, 0, end); } =20 -/* - * mab_mas_cp() - Copy data from maple_big_node to a maple encoded node. - * @b_node: the maple_big_node that has the data - * @mab_start: the start location in @b_node. - * @mab_end: The end location in @b_node (inclusively) - * @mas: The maple state with the maple encoded node. - */ -static inline void mab_mas_cp(struct maple_big_node *b_node, - unsigned char mab_start, unsigned char mab_end, - struct ma_state *mas, bool new_max) -{ - int i, j =3D 0; - enum maple_type mt =3D mte_node_type(mas->node); - struct maple_node *node =3D mte_to_node(mas->node); - void __rcu **slots =3D ma_slots(node, mt); - unsigned long *pivots =3D ma_pivots(node, mt); - unsigned long *gaps =3D NULL; - unsigned char end; - - if (mab_end - mab_start > mt_pivots[mt]) - mab_end--; - - if (!pivots[mt_pivots[mt] - 1]) - slots[mt_pivots[mt]] =3D NULL; - - i =3D mab_start; - do { - pivots[j++] =3D b_node->pivot[i++]; - } while (i <=3D mab_end && likely(b_node->pivot[i])); - - memcpy(slots, b_node->slot + mab_start, - sizeof(void *) * (i - mab_start)); - - if (new_max) - mas->max =3D b_node->pivot[i - 1]; - - end =3D j - 1; - if (likely(!ma_is_leaf(mt) && mt_is_alloc(mas->tree))) { - unsigned long max_gap =3D 0; - unsigned char offset =3D 0; - - gaps =3D ma_gaps(node, mt); - do { - gaps[--j] =3D b_node->gap[--i]; - if (gaps[j] > max_gap) { - offset =3D j; - max_gap =3D gaps[j]; - } - } while (j); - - ma_set_meta(node, mt, offset, end); - } else { - mas_leaf_set_meta(node, mt, end); - } -} - -/* - * mas_store_b_node() - Store an @entry into the b_node while also copying= the - * data from a maple encoded node. - * @wr_mas: the maple write state - * @b_node: the maple_big_node to fill with data - * @offset_end: the offset to end copying - * - * Return: The actual end of the data stored in @b_node - */ -static noinline_for_kasan void mas_store_b_node(struct ma_wr_state *wr_mas, - struct maple_big_node *b_node, unsigned char offset_end) -{ - unsigned char slot; - unsigned char b_end; - /* Possible underflow of piv will wrap back to 0 before use. */ - unsigned long piv; - struct ma_state *mas =3D wr_mas->mas; - - b_node->type =3D wr_mas->type; - b_end =3D 0; - slot =3D mas->offset; - if (slot) { - /* Copy start data up to insert. */ - mas_mab_cp(mas, 0, slot - 1, b_node, 0); - b_end =3D b_node->b_end; - piv =3D b_node->pivot[b_end - 1]; - } else - piv =3D mas->min - 1; - - if (piv + 1 < mas->index) { - /* Handle range starting after old range */ - b_node->slot[b_end] =3D wr_mas->content; - if (!wr_mas->content) - b_node->gap[b_end] =3D mas->index - 1 - piv; - b_node->pivot[b_end++] =3D mas->index - 1; - } - - /* Store the new entry. */ - mas->offset =3D b_end; - b_node->slot[b_end] =3D wr_mas->entry; - b_node->pivot[b_end] =3D mas->last; - - /* Appended. */ - if (mas->last >=3D mas->max) - goto b_end; - - /* Handle new range ending before old range ends */ - piv =3D mas_safe_pivot(mas, wr_mas->pivots, offset_end, wr_mas->type); - if (piv > mas->last) { - if (offset_end !=3D slot) - wr_mas->content =3D mas_slot_locked(mas, wr_mas->slots, - offset_end); - - b_node->slot[++b_end] =3D wr_mas->content; - if (!wr_mas->content) - b_node->gap[b_end] =3D piv - mas->last + 1; - b_node->pivot[b_end] =3D piv; - } - - slot =3D offset_end + 1; - if (slot > mas->end) - goto b_end; - - /* Copy end data to the end of the node. */ - mas_mab_cp(mas, slot, mas->end + 1, b_node, ++b_end); - b_node->b_end--; - return; - -b_end: - b_node->b_end =3D b_end; -} - /* * mas_prev_sibling() - Find the previous node with the same parent. * @mas: the maple state @@ -2017,25 +1687,6 @@ static inline bool mas_next_sibling(struct ma_state = *mas) return true; } =20 -/* - * mas_node_or_none() - Set the enode and state. - * @mas: the maple state - * @enode: The encoded maple node. - * - * Set the node to the enode and the status. - */ -static inline void mas_node_or_none(struct ma_state *mas, - struct maple_enode *enode) -{ - if (enode) { - mas->node =3D enode; - mas->status =3D ma_active; - } else { - mas->node =3D NULL; - mas->status =3D ma_none; - } -} - /* * mas_wr_node_walk() - Find the correct offset for the index in the @mas. * If @mas->index cannot be found within the containi= ng @@ -2069,242 +1720,6 @@ static inline void mas_wr_node_walk(struct ma_wr_st= ate *wr_mas) wr_mas->offset_end =3D mas->offset =3D offset; } =20 -/* - * mast_rebalance_next() - Rebalance against the next node - * @mast: The maple subtree state - */ -static inline void mast_rebalance_next(struct maple_subtree_state *mast) -{ - unsigned char b_end =3D mast->bn->b_end; - - mas_mab_cp(mast->orig_r, 0, mt_slot_count(mast->orig_r->node), - mast->bn, b_end); - mast->orig_r->last =3D mast->orig_r->max; -} - -/* - * mast_rebalance_prev() - Rebalance against the previous node - * @mast: The maple subtree state - */ -static inline void mast_rebalance_prev(struct maple_subtree_state *mast) -{ - unsigned char end =3D mas_data_end(mast->orig_l) + 1; - unsigned char b_end =3D mast->bn->b_end; - - mab_shift_right(mast->bn, end); - mas_mab_cp(mast->orig_l, 0, end - 1, mast->bn, 0); - mast->l->min =3D mast->orig_l->min; - mast->orig_l->index =3D mast->orig_l->min; - mast->bn->b_end =3D end + b_end; - mast->l->offset +=3D end; -} - -/* - * mast_spanning_rebalance() - Rebalance nodes with nearest neighbour favo= uring - * the node to the right. Checking the nodes to the right then the left a= t each - * level upwards until root is reached. - * Data is copied into the @mast->bn. - * @mast: The maple_subtree_state. - */ -static inline -bool mast_spanning_rebalance(struct maple_subtree_state *mast) -{ - struct ma_state r_tmp =3D *mast->orig_r; - struct ma_state l_tmp =3D *mast->orig_l; - unsigned char depth =3D 0; - - do { - mas_ascend(mast->orig_r); - mas_ascend(mast->orig_l); - depth++; - if (mast->orig_r->offset < mas_data_end(mast->orig_r)) { - mast->orig_r->offset++; - do { - mas_descend(mast->orig_r); - mast->orig_r->offset =3D 0; - } while (--depth); - - mast_rebalance_next(mast); - *mast->orig_l =3D l_tmp; - return true; - } else if (mast->orig_l->offset !=3D 0) { - mast->orig_l->offset--; - do { - mas_descend(mast->orig_l); - mast->orig_l->offset =3D - mas_data_end(mast->orig_l); - } while (--depth); - - mast_rebalance_prev(mast); - *mast->orig_r =3D r_tmp; - return true; - } - } while (!mte_is_root(mast->orig_r->node)); - - *mast->orig_r =3D r_tmp; - *mast->orig_l =3D l_tmp; - return false; -} - -/* - * mast_ascend() - Ascend the original left and right maple states. - * @mast: the maple subtree state. - * - * Ascend the original left and right sides. Set the offsets to point to = the - * data already in the new tree (@mast->l and @mast->r). - */ -static inline void mast_ascend(struct maple_subtree_state *mast) -{ - MA_WR_STATE(wr_mas, mast->orig_r, NULL); - mas_ascend(mast->orig_l); - mas_ascend(mast->orig_r); - - mast->orig_r->offset =3D 0; - mast->orig_r->index =3D mast->r->max; - /* last should be larger than or equal to index */ - if (mast->orig_r->last < mast->orig_r->index) - mast->orig_r->last =3D mast->orig_r->index; - - wr_mas.type =3D mte_node_type(mast->orig_r->node); - mas_wr_node_walk(&wr_mas); - /* Set up the left side of things */ - mast->orig_l->offset =3D 0; - mast->orig_l->index =3D mast->l->min; - wr_mas.mas =3D mast->orig_l; - wr_mas.type =3D mte_node_type(mast->orig_l->node); - mas_wr_node_walk(&wr_mas); - - mast->bn->type =3D wr_mas.type; -} - -/* - * mas_new_ma_node() - Create and return a new maple node. Helper functio= n. - * @mas: the maple state with the allocations. - * @b_node: the maple_big_node with the type encoding. - * - * Use the node type from the maple_big_node to allocate a new node from t= he - * ma_state. This function exists mainly for code readability. - * - * Return: A new maple encoded node - */ -static inline struct maple_enode -*mas_new_ma_node(struct ma_state *mas, struct maple_big_node *b_node) -{ - return mt_mk_node(ma_mnode_ptr(mas_pop_node(mas)), b_node->type); -} - -/* - * mas_mab_to_node() - Set up right and middle nodes - * - * @mas: the maple state that contains the allocations. - * @b_node: the node which contains the data. - * @left: The pointer which will have the left node - * @right: The pointer which may have the right node - * @middle: the pointer which may have the middle node (rare) - * @mid_split: the split location for the middle node - * - * Return: the split of left. - */ -static inline unsigned char mas_mab_to_node(struct ma_state *mas, - struct maple_big_node *b_node, struct maple_enode **left, - struct maple_enode **right, struct maple_enode **middle, - unsigned char *mid_split) -{ - unsigned char split =3D 0; - unsigned char slot_count =3D mt_slots[b_node->type]; - - *left =3D mas_new_ma_node(mas, b_node); - *right =3D NULL; - *middle =3D NULL; - *mid_split =3D 0; - - if (b_node->b_end < slot_count) { - split =3D b_node->b_end; - } else { - split =3D mab_calc_split(mas, b_node, mid_split); - *right =3D mas_new_ma_node(mas, b_node); - } - - if (*mid_split) - *middle =3D mas_new_ma_node(mas, b_node); - - return split; - -} - -/* - * mab_set_b_end() - Add entry to b_node at b_node->b_end and increment th= e end - * pointer. - * @b_node: the big node to add the entry - * @mas: the maple state to get the pivot (mas->max) - * @entry: the entry to add, if NULL nothing happens. - */ -static inline void mab_set_b_end(struct maple_big_node *b_node, - struct ma_state *mas, - void *entry) -{ - if (!entry) - return; - - b_node->slot[b_node->b_end] =3D entry; - if (mt_is_alloc(mas->tree)) - b_node->gap[b_node->b_end] =3D mas_max_gap(mas); - b_node->pivot[b_node->b_end++] =3D mas->max; -} - -/* - * mas_set_split_parent() - combine_then_separate helper function. Sets t= he parent - * of @mas->node to either @left or @right, depending on @slot and @split - * - * @mas: the maple state with the node that needs a parent - * @left: possible parent 1 - * @right: possible parent 2 - * @slot: the slot the mas->node was placed - * @split: the split location between @left and @right - */ -static inline void mas_set_split_parent(struct ma_state *mas, - struct maple_enode *left, - struct maple_enode *right, - unsigned char *slot, unsigned char split) -{ - if (mas_is_none(mas)) - return; - - if ((*slot) <=3D split) - mas_set_parent(mas, mas->node, left, *slot); - else if (right) - mas_set_parent(mas, mas->node, right, (*slot) - split - 1); - - (*slot)++; -} - -/* - * mte_mid_split_check() - Check if the next node passes the mid-split - * @l: Pointer to left encoded maple node. - * @m: Pointer to middle encoded maple node. - * @r: Pointer to right encoded maple node. - * @slot: The offset - * @split: The split location. - * @mid_split: The middle split. - */ -static inline void mte_mid_split_check(struct maple_enode **l, - struct maple_enode **r, - struct maple_enode *right, - unsigned char slot, - unsigned char *split, - unsigned char mid_split) -{ - if (*r =3D=3D right) - return; - - if (slot < mid_split) - return; - - *l =3D *r; - *r =3D right; - *split =3D mid_split; -} - static inline void rebalance_sib(struct ma_state *parent, struct ma_state = *sib) { *sib =3D *parent; @@ -2356,43 +1771,6 @@ void spanning_sib(struct ma_wr_state *l_wr_mas, WARN_ON_ONCE(1); } =20 -/* - * mast_set_split_parents() - Helper function to set three nodes parents. = Slot - * is taken from @mast->l. - * @mast: the maple subtree state - * @left: the left node - * @right: the right node - * @split: the split location. - */ -static inline void mast_set_split_parents(struct maple_subtree_state *mast, - struct maple_enode *left, - struct maple_enode *middle, - struct maple_enode *right, - unsigned char split, - unsigned char mid_split) -{ - unsigned char slot; - struct maple_enode *l =3D left; - struct maple_enode *r =3D right; - - if (mas_is_none(mast->l)) - return; - - if (middle) - r =3D middle; - - slot =3D mast->l->offset; - - mte_mid_split_check(&l, &r, right, slot, &split, mid_split); - mas_set_split_parent(mast->l, l, r, &slot, split); - - mte_mid_split_check(&l, &r, right, slot, &split, mid_split); - mas_set_split_parent(mast->m, l, r, &slot, split); - - mte_mid_split_check(&l, &r, right, slot, &split, mid_split); - mas_set_split_parent(mast->r, l, r, &slot, split); -} - /* * mas_topiary_node() - Dispose of a single node * @mas: The maple state for pushing nodes @@ -2648,103 +2026,6 @@ void node_finalise(struct maple_node *node, enum ma= ple_type mt, ma_set_meta(node, mt, gap_slot, end - 1); } =20 -/* - * mast_cp_to_nodes() - Copy data out to nodes. - * @mast: The maple subtree state - * @left: The left encoded maple node - * @middle: The middle encoded maple node - * @right: The right encoded maple node - * @split: The location to split between left and (middle ? middle : right) - * @mid_split: The location to split between middle and right. - */ -static inline void mast_cp_to_nodes(struct maple_subtree_state *mast, - struct maple_enode *left, struct maple_enode *middle, - struct maple_enode *right, unsigned char split, unsigned char mid_split) -{ - bool new_lmax =3D true; - - mas_node_or_none(mast->l, left); - mas_node_or_none(mast->m, middle); - mas_node_or_none(mast->r, right); - - mast->l->min =3D mast->orig_l->min; - if (split =3D=3D mast->bn->b_end) { - mast->l->max =3D mast->orig_r->max; - new_lmax =3D false; - } - - mab_mas_cp(mast->bn, 0, split, mast->l, new_lmax); - - if (middle) { - mab_mas_cp(mast->bn, 1 + split, mid_split, mast->m, true); - mast->m->min =3D mast->bn->pivot[split] + 1; - split =3D mid_split; - } - - mast->r->max =3D mast->orig_r->max; - if (right) { - mab_mas_cp(mast->bn, 1 + split, mast->bn->b_end, mast->r, false); - mast->r->min =3D mast->bn->pivot[split] + 1; - } -} - -/* - * mast_combine_cp_left - Copy in the original left side of the tree into = the - * combined data set in the maple subtree state big node. - * @mast: The maple subtree state - */ -static inline void mast_combine_cp_left(struct maple_subtree_state *mast) -{ - unsigned char l_slot =3D mast->orig_l->offset; - - if (!l_slot) - return; - - mas_mab_cp(mast->orig_l, 0, l_slot - 1, mast->bn, 0); -} - -/* - * mast_combine_cp_right: Copy in the original right side of the tree into= the - * combined data set in the maple subtree state big node. - * @mast: The maple subtree state - */ -static inline void mast_combine_cp_right(struct maple_subtree_state *mast) -{ - if (mast->bn->pivot[mast->bn->b_end - 1] >=3D mast->orig_r->max) - return; - - mas_mab_cp(mast->orig_r, mast->orig_r->offset + 1, - mt_slot_count(mast->orig_r->node), mast->bn, - mast->bn->b_end); - mast->orig_r->last =3D mast->orig_r->max; -} - -/* - * mast_sufficient: Check if the maple subtree state has enough data in th= e big - * node to create at least one sufficient node - * @mast: the maple subtree state - */ -static inline bool mast_sufficient(struct maple_subtree_state *mast) -{ - if (mast->bn->b_end > mt_min_slot_count(mast->orig_l->node)) - return true; - - return false; -} - -/* - * mast_overflow: Check if there is too much data in the subtree state for= a - * single node. - * @mast: The maple subtree state - */ -static inline bool mast_overflow(struct maple_subtree_state *mast) -{ - if (mast->bn->b_end > mt_slot_count(mast->orig_l->node)) - return true; - - return false; -} - static inline void *mtree_range_walk(struct ma_state *mas) { unsigned long *pivots; @@ -3304,158 +2585,6 @@ static inline void cp_dst_to_slots(struct maple_cop= y *cp, unsigned long min, cp->max =3D max; } =20 -static void mas_spanning_rebalance_loop(struct ma_state *mas, - struct maple_subtree_state *mast, unsigned char count) -{ - - unsigned char split, mid_split; - unsigned char slot =3D 0; - unsigned char new_height =3D 0; /* used if node is a new root */ - struct maple_enode *left =3D NULL, *middle =3D NULL, *right =3D NULL; - struct maple_enode *old_enode; - - /* - * Each level of the tree is examined and balanced, pushing data to the l= eft or - * right, or rebalancing against left or right nodes is employed to avoid - * rippling up the tree to limit the amount of churn. Once a new sub-sec= tion of - * the tree is created, there may be a mix of new and old nodes. The old= nodes - * will have the incorrect parent pointers and currently be in two trees:= the - * original tree and the partially new tree. To remedy the parent pointe= rs in - * the old tree, the new data is swapped into the active tree and a walk = down - * the tree is performed and the parent pointers are updated. - * See mas_topiary_replace() for more information. - */ - while (count--) { - mast->bn->b_end--; - mast->bn->type =3D mte_node_type(mast->orig_l->node); - split =3D mas_mab_to_node(mas, mast->bn, &left, &right, &middle, - &mid_split); - mast_set_split_parents(mast, left, middle, right, split, - mid_split); - mast_cp_to_nodes(mast, left, middle, right, split, mid_split); - new_height++; - - /* - * Copy data from next level in the tree to mast->bn from next - * iteration - */ - memset(mast->bn, 0, sizeof(struct maple_big_node)); - mast->bn->type =3D mte_node_type(left); - - /* Root already stored in l->node. */ - if (mas_is_root_limits(mast->l)) - goto new_root; - - mast_ascend(mast); - mast_combine_cp_left(mast); - mast->l->offset =3D mast->bn->b_end; - mab_set_b_end(mast->bn, mast->l, left); - mab_set_b_end(mast->bn, mast->m, middle); - mab_set_b_end(mast->bn, mast->r, right); - - /* Copy anything necessary out of the right node. */ - mast_combine_cp_right(mast); - mast->orig_l->last =3D mast->orig_l->max; - - if (mast_sufficient(mast)) { - if (mast_overflow(mast)) - continue; - - if (mast->orig_l->node =3D=3D mast->orig_r->node) { - /* - * The data in b_node should be stored in one - * node and in the tree - */ - slot =3D mast->l->offset; - break; - } - - continue; - } - - /* May be a new root stored in mast->bn */ - if (mas_is_root_limits(mast->orig_l)) - break; - - mast_spanning_rebalance(mast); - - /* rebalancing from other nodes may require another loop. */ - if (!count) - count++; - } - - mast->l->node =3D mt_mk_node(ma_mnode_ptr(mas_pop_node(mas)), - mte_node_type(mast->orig_l->node)); - - mab_mas_cp(mast->bn, 0, mt_slots[mast->bn->type] - 1, mast->l, true); - new_height++; - mas_set_parent(mas, left, mast->l->node, slot); - if (middle) - mas_set_parent(mas, middle, mast->l->node, ++slot); - - if (right) - mas_set_parent(mas, right, mast->l->node, ++slot); - - if (mas_is_root_limits(mast->l)) { -new_root: - mas_mn(mast->l)->parent =3D ma_parent_ptr(mas_tree_parent(mas)); - while (!mte_is_root(mast->orig_l->node)) - mast_ascend(mast); - } else { - mas_mn(mast->l)->parent =3D mas_mn(mast->orig_l)->parent; - } - - old_enode =3D mast->orig_l->node; - mas->depth =3D mast->l->depth; - mas->node =3D mast->l->node; - mas->min =3D mast->l->min; - mas->max =3D mast->l->max; - mas->offset =3D mast->l->offset; - mas_wmb_replace(mas, old_enode, new_height); - mtree_range_walk(mas); -} - -/* - * mas_spanning_rebalance() - Rebalance across two nodes which may not be = peers. - * @mas: The starting maple state - * @mast: The maple_subtree_state, keeps track of 4 maple states. - * @count: The estimated count of iterations needed. - * - * Follow the tree upwards from @l_mas and @r_mas for @count, or until the= root - * is hit. First @b_node is split into two entries which are inserted int= o the - * next iteration of the loop. @b_node is returned populated with the fin= al - * iteration. @mas is used to obtain allocations. orig_l_mas keeps track = of the - * nodes that will remain active by using orig_l_mas->index and orig_l_mas= ->last - * to account of what has been copied into the new sub-tree. The update of - * orig_l_mas->last is used in mas_consume to find the slots that will nee= d to - * be either freed or destroyed. orig_l_mas->depth keeps track of the hei= ght of - * the new sub-tree in case the sub-tree becomes the full tree. - */ -static void mas_spanning_rebalance(struct ma_state *mas, - struct maple_subtree_state *mast, unsigned char count) -{ - - MA_STATE(l_mas, mas->tree, mas->index, mas->index); - MA_STATE(r_mas, mas->tree, mas->index, mas->last); - MA_STATE(m_mas, mas->tree, mas->index, mas->index); - - /* - * The tree needs to be rebalanced and leaves need to be kept at the same= level. - * Rebalancing is done by use of the ``struct maple_topiary``. - */ - mast->l =3D &l_mas; - mast->m =3D &m_mas; - mast->r =3D &r_mas; - l_mas.status =3D r_mas.status =3D m_mas.status =3D ma_none; - - /* Check if this is not root and has sufficient data. */ - if (((mast->orig_l->min !=3D 0) || (mast->orig_r->max !=3D ULONG_MAX)) && - unlikely(mast->bn->b_end <=3D mt_min_slots[mast->bn->type])) - mast_spanning_rebalance(mast); - - mas_spanning_rebalance_loop(mas, mast, count); -} - static inline bool cp_is_new_root(struct maple_copy *cp, struct ma_state *= mas) { if (cp->min || cp->max !=3D ULONG_MAX) @@ -3594,319 +2723,6 @@ static inline bool rebalance_ascend(struct maple_co= py *cp, return true; } =20 -/* - * mas_rebalance() - Rebalance a given node. - * @mas: The maple state - * @b_node: The big maple node. - * - * Rebalance two nodes into a single node or two new nodes that are suffic= ient. - * Continue upwards until tree is sufficient. - */ -static inline void mas_rebalance(struct ma_state *mas, - struct maple_big_node *b_node) -{ - char empty_count =3D mas_mt_height(mas); - struct maple_subtree_state mast; - unsigned char shift, b_end =3D ++b_node->b_end; - - MA_STATE(l_mas, mas->tree, mas->index, mas->last); - MA_STATE(r_mas, mas->tree, mas->index, mas->last); - - trace_ma_op(TP_FCT, mas); - - /* - * Rebalancing occurs if a node is insufficient. Data is rebalanced - * against the node to the right if it exists, otherwise the node to the - * left of this node is rebalanced against this node. If rebalancing - * causes just one node to be produced instead of two, then the parent - * is also examined and rebalanced if it is insufficient. Every level - * tries to combine the data in the same way. If one node contains the - * entire range of the tree, then that node is used as a new root node. - */ - - mast.orig_l =3D &l_mas; - mast.orig_r =3D &r_mas; - mast.bn =3D b_node; - mast.bn->type =3D mte_node_type(mas->node); - - l_mas =3D r_mas =3D *mas; - - if (mas_next_sibling(&r_mas)) { - mas_mab_cp(&r_mas, 0, mt_slot_count(r_mas.node), b_node, b_end); - r_mas.last =3D r_mas.index =3D r_mas.max; - } else { - mas_prev_sibling(&l_mas); - shift =3D mas_data_end(&l_mas) + 1; - mab_shift_right(b_node, shift); - mas->offset +=3D shift; - mas_mab_cp(&l_mas, 0, shift - 1, b_node, 0); - b_node->b_end =3D shift + b_end; - l_mas.index =3D l_mas.last =3D l_mas.min; - } - - return mas_spanning_rebalance(mas, &mast, empty_count); -} - -/* - * mas_split_final_node() - Split the final node in a subtree operation. - * @mast: the maple subtree state - * @mas: The maple state - */ -static inline void mas_split_final_node(struct maple_subtree_state *mast, - struct ma_state *mas) -{ - struct maple_enode *ancestor; - - if (mte_is_root(mas->node)) { - if (mt_is_alloc(mas->tree)) - mast->bn->type =3D maple_arange_64; - else - mast->bn->type =3D maple_range_64; - } - /* - * Only a single node is used here, could be root. - * The Big_node data should just fit in a single node. - */ - ancestor =3D mas_new_ma_node(mas, mast->bn); - mas_set_parent(mas, mast->l->node, ancestor, mast->l->offset); - mas_set_parent(mas, mast->r->node, ancestor, mast->r->offset); - mte_to_node(ancestor)->parent =3D mas_mn(mas)->parent; - - mast->l->node =3D ancestor; - mab_mas_cp(mast->bn, 0, mt_slots[mast->bn->type] - 1, mast->l, true); - mas->offset =3D mast->bn->b_end - 1; -} - -/* - * mast_fill_bnode() - Copy data into the big node in the subtree state - * @mast: The maple subtree state - * @mas: the maple state - * @skip: The number of entries to skip for new nodes insertion. - */ -static inline void mast_fill_bnode(struct maple_subtree_state *mast, - struct ma_state *mas, - unsigned char skip) -{ - bool cp =3D true; - unsigned char split; - - memset(mast->bn, 0, sizeof(struct maple_big_node)); - - if (mte_is_root(mas->node)) { - cp =3D false; - } else { - mas_ascend(mas); - mas->offset =3D mte_parent_slot(mas->node); - } - - if (cp && mast->l->offset) - mas_mab_cp(mas, 0, mast->l->offset - 1, mast->bn, 0); - - split =3D mast->bn->b_end; - mab_set_b_end(mast->bn, mast->l, mast->l->node); - mast->r->offset =3D mast->bn->b_end; - mab_set_b_end(mast->bn, mast->r, mast->r->node); - if (mast->bn->pivot[mast->bn->b_end - 1] =3D=3D mas->max) - cp =3D false; - - if (cp) - mas_mab_cp(mas, split + skip, mt_slot_count(mas->node) - 1, - mast->bn, mast->bn->b_end); - - mast->bn->b_end--; - mast->bn->type =3D mte_node_type(mas->node); -} - -/* - * mast_split_data() - Split the data in the subtree state big node into r= egular - * nodes. - * @mast: The maple subtree state - * @mas: The maple state - * @split: The location to split the big node - */ -static inline void mast_split_data(struct maple_subtree_state *mast, - struct ma_state *mas, unsigned char split) -{ - unsigned char p_slot; - - mab_mas_cp(mast->bn, 0, split, mast->l, true); - mte_set_pivot(mast->r->node, 0, mast->r->max); - mab_mas_cp(mast->bn, split + 1, mast->bn->b_end, mast->r, false); - mast->l->offset =3D mte_parent_slot(mas->node); - mast->l->max =3D mast->bn->pivot[split]; - mast->r->min =3D mast->l->max + 1; - if (mte_is_leaf(mas->node)) - return; - - p_slot =3D mast->orig_l->offset; - mas_set_split_parent(mast->orig_l, mast->l->node, mast->r->node, - &p_slot, split); - mas_set_split_parent(mast->orig_r, mast->l->node, mast->r->node, - &p_slot, split); -} - -/* - * mas_push_data() - Instead of splitting a node, it is beneficial to push= the - * data to the right or left node if there is room. - * @mas: The maple state - * @mast: The maple subtree state - * @left: Push left or not. - * - * Keeping the height of the tree low means faster lookups. - * - * Return: True if pushed, false otherwise. - */ -static inline bool mas_push_data(struct ma_state *mas, - struct maple_subtree_state *mast, bool left) -{ - unsigned char slot_total =3D mast->bn->b_end; - unsigned char end, space, split; - - MA_STATE(tmp_mas, mas->tree, mas->index, mas->last); - tmp_mas =3D *mas; - tmp_mas.depth =3D mast->l->depth; - - if (left && !mas_prev_sibling(&tmp_mas)) - return false; - else if (!left && !mas_next_sibling(&tmp_mas)) - return false; - - end =3D mas_data_end(&tmp_mas); - slot_total +=3D end; - space =3D 2 * mt_slot_count(mas->node) - 2; - /* -2 instead of -1 to ensure there isn't a triple split */ - if (ma_is_leaf(mast->bn->type)) - space--; - - if (mas->max =3D=3D ULONG_MAX) - space--; - - if (slot_total >=3D space) - return false; - - /* Get the data; Fill mast->bn */ - mast->bn->b_end++; - if (left) { - mab_shift_right(mast->bn, end + 1); - mas_mab_cp(&tmp_mas, 0, end, mast->bn, 0); - mast->bn->b_end =3D slot_total + 1; - } else { - mas_mab_cp(&tmp_mas, 0, end, mast->bn, mast->bn->b_end); - } - - /* Configure mast for splitting of mast->bn */ - split =3D mt_slots[mast->bn->type] - 2; - if (left) { - /* Switch mas to prev node */ - *mas =3D tmp_mas; - /* Start using mast->l for the left side. */ - tmp_mas.node =3D mast->l->node; - *mast->l =3D tmp_mas; - } else { - tmp_mas.node =3D mast->r->node; - *mast->r =3D tmp_mas; - split =3D slot_total - split; - } - split =3D mab_no_null_split(mast->bn, split, mt_slots[mast->bn->type]); - /* Update parent slot for split calculation. */ - if (left) - mast->orig_l->offset +=3D end + 1; - - mast_split_data(mast, mas, split); - mast_fill_bnode(mast, mas, 2); - mas_split_final_node(mast, mas); - return true; -} - -/* - * mas_split() - Split data that is too big for one node into two. - * @mas: The maple state - * @b_node: The maple big node - */ -static void mas_split(struct ma_state *mas, struct maple_big_node *b_node) -{ - struct maple_subtree_state mast; - int height =3D 0; - unsigned int orig_height =3D mas_mt_height(mas); - unsigned char mid_split, split =3D 0; - struct maple_enode *old; - - /* - * Splitting is handled differently from any other B-tree; the Maple - * Tree splits upwards. Splitting up means that the split operation - * occurs when the walk of the tree hits the leaves and not on the way - * down. The reason for splitting up is that it is impossible to know - * how much space will be needed until the leaf is (or leaves are) - * reached. Since overwriting data is allowed and a range could - * overwrite more than one range or result in changing one entry into 3 - * entries, it is impossible to know if a split is required until the - * data is examined. - * - * Splitting is a balancing act between keeping allocations to a minimum - * and avoiding a 'jitter' event where a tree is expanded to make room - * for an entry followed by a contraction when the entry is removed. To - * accomplish the balance, there are empty slots remaining in both left - * and right nodes after a split. - */ - MA_STATE(l_mas, mas->tree, mas->index, mas->last); - MA_STATE(r_mas, mas->tree, mas->index, mas->last); - MA_STATE(prev_l_mas, mas->tree, mas->index, mas->last); - MA_STATE(prev_r_mas, mas->tree, mas->index, mas->last); - - trace_ma_op(TP_FCT, mas); - - mast.l =3D &l_mas; - mast.r =3D &r_mas; - mast.orig_l =3D &prev_l_mas; - mast.orig_r =3D &prev_r_mas; - mast.bn =3D b_node; - - while (height++ <=3D orig_height) { - if (mt_slots[b_node->type] > b_node->b_end) { - mas_split_final_node(&mast, mas); - break; - } - - l_mas =3D r_mas =3D *mas; - l_mas.node =3D mas_new_ma_node(mas, b_node); - r_mas.node =3D mas_new_ma_node(mas, b_node); - /* - * Another way that 'jitter' is avoided is to terminate a split up early= if the - * left or right node has space to spare. This is referred to as "pushi= ng left" - * or "pushing right" and is similar to the B* tree, except the nodes le= ft or - * right can rarely be reused due to RCU, but the ripple upwards is halt= ed which - * is a significant savings. - */ - /* Try to push left. */ - if (mas_push_data(mas, &mast, true)) { - height++; - break; - } - /* Try to push right. */ - if (mas_push_data(mas, &mast, false)) { - height++; - break; - } - - split =3D mab_calc_split(mas, b_node, &mid_split); - mast_split_data(&mast, mas, split); - /* - * Usually correct, mab_mas_cp in the above call overwrites - * r->max. - */ - mast.r->max =3D mas->max; - mast_fill_bnode(&mast, mas, 1); - prev_l_mas =3D *mast.l; - prev_r_mas =3D *mast.r; - } - - /* Set the original node as dead */ - old =3D mas->node; - mas->node =3D l_mas.node; - mas_wmb_replace(mas, old, height); - mtree_range_walk(mas); -} - /* * mas_root_expand() - Expand a root to a node * @mas: The maple state --=20 2.47.3 From nobody Sun Feb 8 02:41:41 2026 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) (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 71C5C387353 for ; Fri, 30 Jan 2026 21:01:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.177.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769806891; cv=fail; b=iVM7vM+y1Z9VKNyzsiFDx1E46Hs3znf2fOURIT4xybN3l1dDX3icy5u0rHGqv0vR8tlomUcJSe1AKKCGVblJLUb4Bat/tPmcEFZVbwfEjdIIXKST/erdDKU0kwkTffIvq09T8mE5RxtuT7WA54j/Xw+h+xZ+KJalnaHkz1o2Fx4= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769806891; c=relaxed/simple; bh=ULQOoW2WxmqGhVN2kBNGf4IqrlADP2VkunmK5z0FS40=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=SbGeCC6b++rdpgTFu03kxBnw1gIs2fsvEdkkw+tkTF6A3e7zjzV2rNIZEAxYHdlYH320ehS4Fhmu+c1VpmhSNPfCjc3rW0gTuJwnJCj/UfLKbiwMmtwYgghdEMJUXr07eZlUA/L4pLXZD0XtSlvGCLddiHd5zHNFhrjfZdUPFk0= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=E6UcUdsa; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=NxB9L+GH; arc=fail smtp.client-ip=205.220.177.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="E6UcUdsa"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="NxB9L+GH" Received: from pps.filterd (m0333520.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 60UKEXud610890; Fri, 30 Jan 2026 21:01:05 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=DmSjnSjNlvsv6bVDLcrfSIRttLW42EvL56RuUYI4N+w=; b= E6UcUdsaG9rRLJXoGt1iEEKC5n3AEDipQuNXKPgbkrJ2WoxRXKjDIM17WphvFAwt URw4aQfYhVlfHF2Y0jUfh9nrfuv5RQ6na5QID6w4eAAzt5FuiKAN1iDVleeyFVmt El5sNF1bfDtoOjZtY3F+xBQ8NHNia1Z/N09b+GB1aFOQQBarCe6j6z9MqKH8U60J MogjBtP9rP0ztz/r0I1WW7wL2CMddkeBPBcpRcLZfopUN1XOH9Mj/9Be64Wm9PO7 aWSVIepvUlg0OegOO8tB2NN/NmjICWET72VNC5P4JYJoQZsiiAJ4WWkpm9ThEP06 YKabVSu/QbKPvWTDXbFijA== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4c10d88bpj-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 30 Jan 2026 21:01:05 +0000 (GMT) Received: from pps.filterd (phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 60UKeggJ035129; Fri, 30 Jan 2026 21:01:03 GMT Received: from sa9pr02cu001.outbound.protection.outlook.com (mail-southcentralusazon11013041.outbound.protection.outlook.com [40.93.196.41]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 4bvmhe4gwr-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 30 Jan 2026 21:01:03 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=rUWGIX8C9QAsSb5GTr9GxlaP8t3Sg/dn3lvxyX48Yie/FlyEdWBMu3li9WYf+lc+uEvzNDachKaUETVi6hNklFM2PJF1nEmnjVTV/I07i2QuVN/6axuUZgo/kIJF1xhATbXZ/ypZTqLdeZKPDyz79JXiQ84LSFpeW96A1S4wE8RbTAVvtsMRwUchEq2qkswtklcyG5QXH2JTSGVuHn81BSiJHPUqW7GZgYAqFMD2fCYrmNMf4sVP62iLqMpCZmufd8mSByrKBZJ+pyIN+5tSiHllVTYSRXqRAjoZOIW1EMTxDrnXulpF1fygCImJYAFp2PFbBqV9/05M7ed98FaIxQ== 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=DmSjnSjNlvsv6bVDLcrfSIRttLW42EvL56RuUYI4N+w=; b=ucH9SNVubKy21wOP6Hd6DHj2SDQ+Ks2T+/nrN2/sgU1VlNUyjdSHlSgK6MLDMYlvk1Ur+ECTIZF0wXloHKLIQoXtTqSZyX/tyFlQhZaynJngn/+kpt/3S+sCwQFJ3jupsbtB7jtLaPRDN49MnHhXGdXuUyitNqgcRSVNjk23eEfZVvlXIOmsg7iy20kpRNtF+PHYU6n68nShP/aJu5s7v5vcB+dAEvbDI9fi4fV9avOMiM33lDjAZSf1GLvkM9D3Lw6wSRJ1lzsPNAAobnHzkz+aKkmiUmIT9Ht5+9841qO5Ms6FD4KReY4iBvcbXEogMgnp3bnqbThlOb2GPuTeaQ== 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=DmSjnSjNlvsv6bVDLcrfSIRttLW42EvL56RuUYI4N+w=; b=NxB9L+GHLYLMFUbm1G73Ggc/Kl0qFG5ujn4lUBy6UhNn7KYRbjJBshHOigRyUk5SFzOYehMik9YKNSsiN2/HMTvaZ5n7C+yvmRKUQ1jII2/6LNyI36b63UO9BcHW5EUdVKcpoicw5v56hyZ6DC1ry1NQJZPseJEsGrOv/kKZR9s= Received: from PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) by IA4PR10MB8541.namprd10.prod.outlook.com (2603:10b6:208:56b::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.12; Fri, 30 Jan 2026 21:01:00 +0000 Received: from PH0PR10MB5777.namprd10.prod.outlook.com ([fe80::4b84:e58d:c708:c8ce]) by PH0PR10MB5777.namprd10.prod.outlook.com ([fe80::4b84:e58d:c708:c8ce%4]) with mapi id 15.20.9564.007; Fri, 30 Jan 2026 21:01:00 +0000 From: "Liam R. Howlett" To: Andrew Morton Cc: maple-tree@lists.infradead.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Suren Baghdasaryan , Matthew Wilcox , Sidhartha Kumar , Vlastimil Babka , Alice Ryhl , Kuninori Morimoto , Geert Uytterhoeven , Arnd Bergmann , Christian Kujau , SeongJae Park , "Liam R. Howlett" Subject: [PATCH v3 28/30] maple_tree: Pass maple copy node to mas_wmb_replace() Date: Fri, 30 Jan 2026 15:59:33 -0500 Message-ID: <20260130205935.2559335-29-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260130205935.2559335-1-Liam.Howlett@oracle.com> References: <20260130205935.2559335-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0070.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:111::16) To PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) 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: PH0PR10MB5777:EE_|IA4PR10MB8541:EE_ X-MS-Office365-Filtering-Correlation-Id: d87799d0-963c-49de-2908-08de6042abb9 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|7416014|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?QYMHZ4G56DWHqQs7qraB1JCLyzPnJYDQJX7WpbFLCZwp5upPVAxfpG1Skigj?= =?us-ascii?Q?MmjivTfx9ODrrYn8b7oPIZFCZObc2/f4vR0apyY8j1t/ki3xzr1IK4Q4TFDJ?= =?us-ascii?Q?zPQLwAn3or1/0V9IxOPQxH5igM/YJxpFSkqNpQS0+pc3hcF+TNmhfvw4hVF4?= =?us-ascii?Q?5VN29+REHBhwQ5Clmz7OF41FwYzu6G62jxkrfPWHmAWcDXmrsbhevm5Q70Pz?= =?us-ascii?Q?jjSyegXXv7vPfWn3N/a27X0zMcp57DLRzDjXKpGZZDd8heHL0vfvOd0f5KN1?= =?us-ascii?Q?kcVHsRuh1H7R5ZuN3egvkl7ujVV/t++Z6XyFJoN1unMxq3HKMue4nnIVl9dv?= =?us-ascii?Q?xGcBTeuHMp/xbiFIEqGFo9WOC1DbTEIx19uv15Ma3k1/pYvl2GrFrEQZB6ta?= =?us-ascii?Q?Gnt9Ggdis+w0zwYeHc6eqth5EXj8DJarmMUn2UBwDxtZFF5FHgPk4AL5GdGu?= =?us-ascii?Q?om7kAtSYTRY1k8zjWEOSLI04c8YuE9zAyyD82cxaT/FFq/dk7ZVmn03tQdjv?= =?us-ascii?Q?8/JBuSGjSXyS0N3uk5rTnquRq58loUHNBzIlngVt5zMC0QSfl0X6RzCZGwxz?= =?us-ascii?Q?xFIXIouAXbyGiL6DqZn2blTU98anmjJBgKGvcbVcpKl2+EpgQzVp6m7Tq0f2?= =?us-ascii?Q?W17ebOmFRI86KmE5GMQhKgO3cQjXqXvH2JyOHysUVAUHWjuJJZV6HqhXG9xb?= =?us-ascii?Q?tuMAwvk4TiwPj3i9p5dJBRzn0OMl2wMOmo1nf8V+KNSyfNCvSyilM6dab4rd?= =?us-ascii?Q?mHz7014vIoBWj1xYk/52M6j9OQ4xaxSpm+2Ilhib6hz3+6KzKs4Xzh0kYzIW?= =?us-ascii?Q?J2tx6dhVvmOWZo9iA1nKPZ6cQQ3OhAiafqVh95EX4sjme5NnBBAqfDqvieQ2?= =?us-ascii?Q?1r9uKEUKzlsMRb6l2QQpYv26KelhArqeASOZREyz07REaPE5s7EeFRiDMbqv?= =?us-ascii?Q?EGc5qEy7P6Xu3woncfQ8NbFywVh2waCOtVciGsU+g7tNxeszyMxwvut3ZA+p?= =?us-ascii?Q?OgLNecrLa5tHE+/sNRU1giUx4Eb8/zOZUltrOHeZoSBLZPQZRt3bmNa/Ygce?= =?us-ascii?Q?yjpVRMuWWyn9cXjm+GgGxgdpIQuenlQYnK0E8pVrk3VvYWefd+f2qzcARdAj?= =?us-ascii?Q?/b6UG/6r38B7Hc5KaCxUi0Cut1aIO9qeBSvrE4+GVQKi8qznqLcayGCzR2VN?= =?us-ascii?Q?Q3YFHHsVa9mYK40RHEJe0gKEQPPZsDJ0SiknKBcO1QCbWBew8mxffzXoskyA?= =?us-ascii?Q?4reizH+b7vAjbUtqLFUkcZRX/5FkLSz54YTxXIHDyVmzjXdoPQgtM/2nKsva?= =?us-ascii?Q?yxrKPDgsCqWvd1hN9dsmV045xlHCG3ddyeA9zaFrLu6YDwPJQGzD2OSzAPJ5?= =?us-ascii?Q?z/iWLL492Dcakj0ohyxDENGw/9doZ996ChgqMPg6WWoNI5jHeH854J50v7aE?= =?us-ascii?Q?Ordp/kB7V23+G6WA4eNtVYGFqlHBfT6PcRaR8m0V6tbtBbhHX2hWUvMON+No?= =?us-ascii?Q?T1n98snf7Rd/NNhqALai7UOmEHysgzyI26bUnLTDdTZA84Y1UC8erbio4DTD?= =?us-ascii?Q?AykTTIawFQxhmJewzZ0=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH0PR10MB5777.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(7416014)(376014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?ZsM0ZKJD4QU7CdVGZf+hRRirLyjQkg3I9jKOM2TvTif+2fcqsrrj1SyKwV5R?= =?us-ascii?Q?tvy4Cal5NyD5f3OBnrzuvfOVyf+ZAVu4kjkPaVX02Yy5cyL1VIAlbLb5RnwW?= =?us-ascii?Q?pdJTqLXUi0q0zfAf/NGLSmhm7NPtzkad4ziTXYb/bgMvhfJNQ9kqJ5gdpOVH?= =?us-ascii?Q?lydNWkSJzsFfxFnEx1AafRicheixxyax07027UH2rHVIuxMhx4EHasC0hicr?= =?us-ascii?Q?lGI81D6Lj4jokdBviGcz9GiDSV2+hu8h5wgr3cPBpiam6+y3Q81Accs2wIpW?= =?us-ascii?Q?/hLv1A+Digv5if5YIUqNP5/CYGlcM2Bm608imLJJLRzf/9gNKCbT3Uf4nYFg?= =?us-ascii?Q?zfRhO2InhpW3jj1JXHmV70z5FlyEQcu2qE8Wsm311tjP3KfDX1QjW1xqWNyM?= =?us-ascii?Q?OI8DOYWxs1iAjB4PVV+xtMEQzLBhUBXD3BL6UgIJ41SW/0ElhDhzBkpTxHFc?= =?us-ascii?Q?cIklyRu5Gw8GnNWu3OBqk/AIeDGcu10Ew151mt5Gof3pc+Qc9YPuzzHI5thz?= =?us-ascii?Q?QuV2gM3sCur70ClWq6NxaFNs1TGMgbXHizEuS8e8GCHyYE8Ra9VG9vMLn8ZG?= =?us-ascii?Q?1aT7FRyZgVPyvC9e3Z/a8gzbvHRPPX5RTlwfmeWgRxZyXgpOSxuB6HsrlUgx?= =?us-ascii?Q?JsBYvvkEk+4rOnMgugNgW8lOpNL9cokdpyZbOE8KlmxRSMLpOIupwSkm/PhL?= =?us-ascii?Q?N4tPQHX5vrW9szNiIeBqThJHSs8Ced3OLOEXbWbMi6oZo9ku/AFudxWMDYlt?= =?us-ascii?Q?htJJyfu+I66BfgG318UdLA5eS4Kjp72JrT0h3LtSNbUPd1T3C5u2zHVOiyhI?= =?us-ascii?Q?VBTcWuVML6L1aZh+31FdtAx9A1IAB4P0YSzmMOGTf92aVaR4p4GewEvk5JGE?= =?us-ascii?Q?UwEuYEEGRK8byz/n3aFjrLJ2VWrl+DVTv8TfruvaQez9lH9Y97VEldPdow9w?= =?us-ascii?Q?EPiMyYDypLY6JafyE7LeCJxbUzT4LioCiWMCBoO4hUsMz912mk42ZirLtlEP?= =?us-ascii?Q?CXRcgGYHvICOB4VzWwNLmmUtRhsD4dkTrb58JEenNgF8uGe53wSwHIhgOmz9?= =?us-ascii?Q?aT/cIrCGPJVuAgjMZ+4EjPbOMD2m5QUMaWmSvrw96N+IbOFX+SUs8FIoTAIK?= =?us-ascii?Q?eC63PAp4qEcQj+06EQRDgesQFgGEhgxViJpfELdXSqF8YO4UfATGh9MjXML3?= =?us-ascii?Q?2Rf0zqivu/48dDzBcxDGimGEecNQlTYBM1xuJG8x/ystRn7B0vxQnew1ZeaB?= =?us-ascii?Q?hKcqsQj7Py21NRuEsoJJM/iNUTNpTopIRgheo5cAoXJ0HPTNZfJvS2L/og6W?= =?us-ascii?Q?sRgR5le/CFTimj9hxxypdWIxNqYiUWE4DLbBKLXvN2CNGKJClXkOLMdwDdfE?= =?us-ascii?Q?/EzYfSQjRNsH3KbLeIW5z7i6qdFh8hMSB4PWpn7oxn/TzxzqGe8LQ/44uh6h?= =?us-ascii?Q?4PZilzS8cJ+tts4pTeOaB6tMmtqn1gfLTVOlY4lC/ld4c2VuCcDwaaWuPZ/p?= =?us-ascii?Q?CifYsjFkjqhBjwgDLC8xQM+Cx3JR0JTa1+VqNSe4RXWtlYz9TSjsOruhimeA?= =?us-ascii?Q?tE3VxplJXtiCEroyTL+KxlXL1pwaBGqJvQh9UI45iyiwZz0voCVfvf4p9mHy?= =?us-ascii?Q?/uBEMFhPAYHAGiHA0/6A0ii/Pc8eh68BHu0zr2O1qqLtBWldfBJXe3IsI0Vd?= =?us-ascii?Q?wpjCxbn5/dx/xZ6OEisoWF5MXnatAdunCPvXtjohBo7IHspvMesjmMP3msfA?= =?us-ascii?Q?pksV3O7Txg=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: gn2Z5YVd/yXmmYUt2TqE4j9KeRhmKgtOjinlVtiUnQa/JVj2vo5vlgze3a17jMPE2MN8mfWo6Vz1oOtEYlC//JDzcEXMSrN0lyXEapYPD09+92b1X1a3SkT3kuoFS+E5Iwm+ca+H3KrWMnBsu8p9NZN8CzVPudOK0zmbYngbsESeu0h3dF3iYvwmp0TbA/Icb7BkpYx+LQGrAoM852cTdnWqDLYJDnh5lj9Bcg7/BT4eGLzGE8AoRTvZW2u5fKomg6bJkQWdCd2BK1lC5ELW/4gbPMvssZCcW9zLaFCvkpfP7CPkpPSioAVw0uhgis0/B/z8rVNfZFNGGQwm2veof7bVJIywMacyuXYXGZXsQCXKDvigMoPisnBGvFmtkrIOpcVynzb3X/kxJbMDLmxDLL3BZO4s7jOvwd3U4A9jEiT05nQRdIc5kc2XlxWG4hrnIq62UNZp+ZX0eEHXzIDOXVh92w5Hr8TAApTDT/Y0SbKXQ54VUdBckgboaYvjH4uEpRE66J1S7qy21+7f5xh+ycfOILhl/7U+2T2ze7RYdfH+0O0Hw8OVZb9jaumWVhC5Oiy464U8cfl6nhSE61lCqSMDQ67PDpXWX0fXuR4SXDY= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: d87799d0-963c-49de-2908-08de6042abb9 X-MS-Exchange-CrossTenant-AuthSource: PH0PR10MB5777.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Jan 2026 21:00:59.9354 (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: qDU3ZA2WCWek//4bxLdgK8klfF4AXWEXhTiiFR4Ihu6+Ym/xlvPm5RWOJ1UGvI98oQ1JfxiuGyvaiLxxqLPIPw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA4PR10MB8541 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-01-30_03,2026-01-30_04,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 bulkscore=0 mlxlogscore=999 adultscore=0 malwarescore=0 spamscore=0 phishscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2601150000 definitions=main-2601300172 X-Proofpoint-GUID: 9dk52KpPiqZhbMOuawenVRSS2d9QSRjg X-Proofpoint-ORIG-GUID: 9dk52KpPiqZhbMOuawenVRSS2d9QSRjg X-Authority-Analysis: v=2.4 cv=YuoChoYX c=1 sm=1 tr=0 ts=697d1c11 b=1 cx=c_pps a=WeWmnZmh0fydH62SvGsd2A==:117 a=WeWmnZmh0fydH62SvGsd2A==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=vUbySO9Y5rIA:10 a=GoEa3M9JfhUA:10 a=VkNPw1HP01LnGYTKEx00:22 a=yPCof4ZbAAAA:8 a=Syb4SKakgNXmRhdLsicA:9 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTMwMDE3MyBTYWx0ZWRfX3t73UImnZ9Gd WoB9QuMHKiJ0X7mGzADfroZhxfdkO9YV72+3NqaCd1vtHCkiBSOhpaNKWvzvBGEw00YfEGlB6uz hnYsfL7lyQZnzOeoybueyxtBfa6vISPINAP/dZmcnugxyXy4TSXK2caIAlfTCmJm1COp+2Vn+FG uVxIKdQecUsGGfEUWmhSxSm7FyTCuf1mjI9c/M9S5qSakS1WZ0k0eegq8CJPbTRzCA8cVOHDiM+ FF4JoY/yGZsSW1DhoZgA2lxE5FG8PC2ykXN7vkv+RDqrhmpbdYk/2RCxezU3J/eDYziv3AAY3Wd SBcxST7V0mC0LQaDLcY3ayCXB2zAbSK9FNWsV1w05ZpjOy79wywZVfEdiH907vM3lQA9qMf5As1 VH7g3yuTNCq/GCPjA4Ldxzr6YLgXz0C0Yhiyd4MBU4fOqGRgwHVy2+CemM+V2aErLpOepRieGit ElfT1DwXVE7pN//fmHw== Content-Type: text/plain; charset="utf-8" mas_wmb_replace() is called in three places with the same setup, move the setup into the function itself. The function needs to be relocated as it calls mtree_range_walk(). Signed-off-by: Liam R. Howlett --- lib/maple_tree.c | 60 ++++++++++++++++++++---------------------------- 1 file changed, 25 insertions(+), 35 deletions(-) diff --git a/lib/maple_tree.c b/lib/maple_tree.c index 1cfbed6fac9f5..064357a44906e 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -1900,26 +1900,6 @@ static inline void mas_topiary_replace(struct ma_sta= te *mas, mas_mat_destroy(mas, &subtrees); } =20 -/* - * mas_wmb_replace() - Write memory barrier and replace - * @mas: The maple state - * @old_enode: The old maple encoded node that is being replaced. - * @new_height: The new height of the tree as a result of the operation - * - * Updates gap as necessary. - */ -static inline void mas_wmb_replace(struct ma_state *mas, - struct maple_enode *old_enode, unsigned char new_height) -{ - /* Insert the new data in the tree */ - mas_topiary_replace(mas, old_enode, new_height); - - if (mte_is_leaf(mas->node)) - return; - - mas_update_gap(mas); -} - /* * node_copy() - Copy from one node to another. * @@ -2086,6 +2066,28 @@ static inline void *mtree_range_walk(struct ma_state= *mas) return NULL; } =20 +/* + * mas_wmb_replace() - Write memory barrier and replace + * @mas: The maple state + * @cp: The maple copy node + * + * Updates gap as necessary. + */ +static inline void mas_wmb_replace(struct ma_state *mas, struct maple_copy= *cp) +{ + struct maple_enode *old_enode; + + old_enode =3D mas->node; + mas->node =3D mt_slot_locked(mas->tree, cp->slot, 0); + /* Insert the new data in the tree */ + mas_topiary_replace(mas, old_enode, cp->height); + if (!mte_is_leaf(mas->node)) + mas_update_gap(mas); + + mtree_range_walk(mas); +} + + /* * cp_leaf_init() - Initialize a maple_copy node for the leaf level of a * spanning store @@ -3044,7 +3046,6 @@ static inline void mas_new_root(struct ma_state *mas,= void *entry) */ static void mas_wr_spanning_store(struct ma_wr_state *wr_mas) { - struct maple_enode *old_enode; struct maple_copy cp; struct ma_state *mas; struct ma_state sib; @@ -3112,10 +3113,7 @@ static void mas_wr_spanning_store(struct ma_wr_state= *wr_mas) cp_data_write(&cp, mas); } while (spanning_ascend(&cp, mas, wr_mas, &r_wr_mas, &sib)); =20 - old_enode =3D mas->node; - mas->node =3D mt_slot_locked(mas->tree, cp.slot, 0); - mas_wmb_replace(mas, old_enode, cp.height); - mtree_range_walk(mas); + mas_wmb_replace(mas, &cp); } =20 /* @@ -3433,7 +3431,6 @@ static inline void split_data(struct maple_copy *cp, */ static void mas_wr_split(struct ma_wr_state *wr_mas) { - struct maple_enode *old_enode; struct ma_state parent; struct ma_state *mas; struct maple_copy cp; @@ -3454,10 +3451,7 @@ static void mas_wr_split(struct ma_wr_state *wr_mas) cp_data_write(&cp, mas); } while (split_ascend(&cp, wr_mas, &sib, &parent)); =20 - old_enode =3D mas->node; - mas->node =3D mt_slot_locked(mas->tree, cp.slot, 0); - mas_wmb_replace(mas, old_enode, cp.height); - mtree_range_walk(mas); + mas_wmb_replace(mas, &cp); } =20 /* @@ -3470,7 +3464,6 @@ static void mas_wr_split(struct ma_wr_state *wr_mas) */ static void mas_wr_rebalance(struct ma_wr_state *wr_mas) { - struct maple_enode *old_enode; struct ma_state parent; struct ma_state *mas; struct maple_copy cp; @@ -3501,10 +3494,7 @@ static void mas_wr_rebalance(struct ma_wr_state *wr_= mas) cp_data_write(&cp, mas); } while (rebalance_ascend(&cp, wr_mas, &sib, &parent)); =20 - old_enode =3D mas->node; - mas->node =3D mt_slot_locked(mas->tree, cp.slot, 0); - mas_wmb_replace(mas, old_enode, cp.height); - mtree_range_walk(mas); + mas_wmb_replace(mas, &cp); } =20 /* --=20 2.47.3 From nobody Sun Feb 8 02:41:41 2026 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) (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 EE7BF389467 for ; Fri, 30 Jan 2026 21:01:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.177.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769806889; cv=fail; b=FGYJXsfBWAQ4G9Cc6/12K0wwRypi+X91Z0FirJFzBssQcxPKQT7DF00yY6yotPQov0y/fD7HAXtAzvWwbfhjsJ7FOBbatB+WwnfZBlj2OiA601Lz7LkkkZZgCHDDEenmLOp0ZpJ7ui6BH9oDRIyxIT91v4P++uEJz5YZxsorpUw= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769806889; c=relaxed/simple; bh=4n3cpBFJGGIvbJjp+kkZOGxFF7yFRUgf3pLX22uvn8o=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=qnNuoEaUpCWV784H2EG74gTRjuZRKD7Y7irV80ur+66k0s1+n/JowiXflak3xVkq82R2keKqgiCC2qvlxQJxlLMMb56nb2YzSYnn0ds1OOpMMGrNtTwbYMAjhTCJK0VXdz2hbNcHeKjJdbyD7vjBQ53p0u8qzAjKsMONcfYX1TI= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=npbiXB78; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=tyFLKRCh; arc=fail smtp.client-ip=205.220.177.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="npbiXB78"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="tyFLKRCh" Received: from pps.filterd (m0333520.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 60UKEVRx610866; Fri, 30 Jan 2026 21:01:06 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=LFinNkW3ma+yKaad7HDSLMzzitXG26pDGb58oS6SV+4=; b= npbiXB78Xq3umn4R3oEcVFmDc39P+yctLXm/VWHmLXkyrXQ7VnqmdbnNuCQ8YT/H hiDLovzs5LsrfJumjUN2npGxKQFNLfLDQB0+WbFpXBTIIrQzkUbKD3wGLbuI9mje R3ZvH6oucgUFr0nNVchVSiEOvvlA0xZbYSydKtrl5y0CXzp6BZ6YbOIuzrs79ytj +GpkkkbTRJXBd57LbGn77l2Hb7ZKHrol1BXFJZCGs6lyEyCQCMlIoCOXLBhXKoGh mQhap6TojFBV9WQYJDrMkgOG9iYnCaW3rwFyFDDKIp8zXutQ+7lSp737Zqs+A9Z5 YMgr1/g24VWvDdzX+ytrxQ== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4c10d88bpk-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 30 Jan 2026 21:01:06 +0000 (GMT) Received: from pps.filterd (phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 60UKeggL035129; Fri, 30 Jan 2026 21:01:04 GMT Received: from sa9pr02cu001.outbound.protection.outlook.com (mail-southcentralusazon11013041.outbound.protection.outlook.com [40.93.196.41]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 4bvmhe4gwr-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 30 Jan 2026 21:01:04 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=fcKPvnYXlvDQ3scvLCGUfhpMkyEZ5pu6ElVnHDfzhkLlDWxm2KJlVK65KMk7spXgSGBeEEoUbgOfg2KxlKO+2Xk6LW9X7FEa8u4ko5C0b6lG0XwFi2WbM3V7rFFwYQkjLLQjCCOck6xodq7FD5cH24UnuRES18u6hLGcBsrxS8LoMUdkuBxGdZnHxofN9yHdRY0ij2NqkewE4ntwFtRiSGpBswUkPgnKbnepr1xxDqmZhzv1g434bZlG/aFqGcyTczM7FgdfbtiJ/mywjsEHI0qC0VJQSa+KmHLuAJ1QyRTXpocdjndAdfIBKOAfkhccdwmxbnLvHTBftNrkhYE/WQ== 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=LFinNkW3ma+yKaad7HDSLMzzitXG26pDGb58oS6SV+4=; b=lajhHBhL83CEDh3aiGhkgbjIbBwyUotrmSNFV1x9d9Nxgw3kkwho7HgSeQiW8E5i7QmR3qYKjXt9FVd1nuICyZm18JsF89pb0kWJTd7UDmzUSc5W401XADLCvNW6NFP5j6Mmkx7oXUguZ1gKX0n3V9SLFOz/6w1U51sYRVcla6BQLT0xw6N8lXdSrZ4B+EOPmaEFo6Nj00EvtFZ48pY7v0ocBQmntDvuIgeZbOnD9pyoffEoaAP6CSlRLzo8nJRu2YjD7+xQKwyCNImLGashCxVK6L/D0Ojyf+z5LuvHURoOCNvJKK5OfhzWSvDTzSo6c2w9/VTupLHz2QHtRfrbPw== 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=LFinNkW3ma+yKaad7HDSLMzzitXG26pDGb58oS6SV+4=; b=tyFLKRCh+fUVM8fiJPRGbFJr43aAUtxpSCwfRed+OvdxiQrscoeiVnZM5wFlDJEnwaHKL5kxM2HFssa8qJ4Uf0twaCDICKmtY2rbezHjhZQ6e3R7wAuHxQYcQiXdRVmSlca4R5YrdG+E51C2G62oLTaokxrhrrMSWEdQ0INuH9M= Received: from PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) by IA4PR10MB8541.namprd10.prod.outlook.com (2603:10b6:208:56b::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.12; Fri, 30 Jan 2026 21:01:02 +0000 Received: from PH0PR10MB5777.namprd10.prod.outlook.com ([fe80::4b84:e58d:c708:c8ce]) by PH0PR10MB5777.namprd10.prod.outlook.com ([fe80::4b84:e58d:c708:c8ce%4]) with mapi id 15.20.9564.007; Fri, 30 Jan 2026 21:01:02 +0000 From: "Liam R. Howlett" To: Andrew Morton Cc: maple-tree@lists.infradead.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Suren Baghdasaryan , Matthew Wilcox , Sidhartha Kumar , Vlastimil Babka , Alice Ryhl , Kuninori Morimoto , Geert Uytterhoeven , Arnd Bergmann , Christian Kujau , SeongJae Park , "Liam R. Howlett" Subject: [PATCH v3 29/30] maple_tree: Don't pass end to mas_wr_append() Date: Fri, 30 Jan 2026 15:59:34 -0500 Message-ID: <20260130205935.2559335-30-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260130205935.2559335-1-Liam.Howlett@oracle.com> References: <20260130205935.2559335-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0004.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:d1::9) To PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) 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: PH0PR10MB5777:EE_|IA4PR10MB8541:EE_ X-MS-Office365-Filtering-Correlation-Id: 9ac2a96d-5f96-4dc8-f610-08de6042ad28 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|7416014|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?O+iSQyfmZOqzC1VQTxZtBTgz3jcQgHJie50Z8HOg7Sj3dBxmM1S80toNJHpl?= =?us-ascii?Q?0ev0NLqtrZk6g7utz83zmsJqiba7L2uWRWugQEGdo8OuzDqrnjWo4k5Flthc?= =?us-ascii?Q?tQHODLFLRVh7VhYh+Z5lybzwYpaSUTVjyhovvhnhieu5SJCNLRja+1zVRVVj?= =?us-ascii?Q?ZivJhnwdxcL6/Gl1nR/zHhi5+mwcvwpUpaFzdGRASY6yiiVgtfwA/STSu5Vg?= =?us-ascii?Q?k7LGlXNYe1fnKmiamsqndZX7NfzRXqDV5wd1DSE0P34RO8Sl4ogaO95EWu54?= =?us-ascii?Q?AFIHj4W5fZdphlRshfKLeoqWKyC+oaomundP9z6EOVp9CHjOqWm+MtJGbXSu?= =?us-ascii?Q?+05z3h9Yxk2xxf2QBFoKZhhsWaYSBTNBM0xa3ZO9gwuaiiPs7kP5tXDkJwGb?= =?us-ascii?Q?lqp1jnz1oXGRtrHhoGmlyLWSwIYitqWmGyhWcCi5Xz7kiS05FTQLT1DUCcE5?= =?us-ascii?Q?YkAAWCwiJ0ln4f/8InjcQ74lfTAJWG5PnXSCoR1wLENMb5Qhs3G2H1aUMY0N?= =?us-ascii?Q?1cH2BLvC7usBFNDZOsrv6JLRrJYbf1TG7l+7JTfhTBgK7LG6IlUVjlBlGLY/?= =?us-ascii?Q?hTcZQdzQJ4vIO4zvbKjMeKfQ4NJgSGj/Lg5I1nxI0U3XP/3i0Cu2pTYg020N?= =?us-ascii?Q?nhzhJNwtrKknmJylcv+38ZNXmCpcx2X+q35cc2xZgrbmCcqinyG/ZJ2HMNzE?= =?us-ascii?Q?fysR3GBRJSI3IBhITO4qIzcvmaxldFE8jApB50mVrHTlISZiNI3vAV60LMNg?= =?us-ascii?Q?xypVBISy+E6MnZy5ZlnF0lthoZXd3vFXP9E42uGKrhzPU7/vnMxCJF3pETLT?= =?us-ascii?Q?Qth1UXYFy4WXs1aPhKcloGF4i/OLBvS5UqNDBl7p6RAFimT1jAes/lMG7e7Z?= =?us-ascii?Q?g4ikeKZY0X6+ydg3IvuhflI6OpRYI064sBhPa0NM0gHsu8PdJREU0DH1JukH?= =?us-ascii?Q?TGdexpgoiVMHyU/WksDMTjNAeK97SsilOsbVwd4CgNrrFkN8UtuXOlCCzR8k?= =?us-ascii?Q?WCbEW6rQWPUfmR+zT12wt8ty7ABG9R/NYe7rxy/kqnaowNhGllhv7eUH93t3?= =?us-ascii?Q?o9dq2aSSV88HqKldKxQJcjipleYy0HVB5EbYDwEgD7T4UNRwEMkm4OyCJO9N?= =?us-ascii?Q?TeK09CvCwFa31Kq9oUE+ORgw1vcXSMmZJaAnPOtfTCNCdVjKrrmh5FOw6RPw?= =?us-ascii?Q?7DtAuqD+gcn1x2iFuSHMTaSp6zG3hnl9vu5G++1X6qU+6+qHchbIFCqTTPs5?= =?us-ascii?Q?vQp9PKWKiP109Daz+jUCzOhv0TpYfpCI5rg67gD45l7tMMJoqUDLcaLQJgvw?= =?us-ascii?Q?+2n0Sa61RepizL4dblQ9EnP9pLtHyzgaUmvHG3cCyTsxyj48sA2gWsddJ/wx?= =?us-ascii?Q?d4S1MODV+cdML+Ucx6wLTf+ir/RpkJitF6fsp+XtTN7SO/DY48frtdAKEb1d?= =?us-ascii?Q?OYiVqXplet+YlBOxM6WVoNNRV5y2vXOCoewcrfXUPNkSEaQVQECOC/cbgcyI?= =?us-ascii?Q?YCWu6ACt/4gj35GyFx/ENbjjeii02N0W55ShBjzGoxmM/HaKJcSwaDXUr5Ts?= =?us-ascii?Q?bOzrB9Pb9zR/MDT6Kg4=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH0PR10MB5777.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(7416014)(376014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?xyQDiTR6vpRNnSjRVFInFRwDm1LYtN9Gf96d94V1DV21r+Pp+6ELew26ilAU?= =?us-ascii?Q?ESk0q8WAatWG3cFbuv8qoqLa4P5allGarsVaM6z3CVTcw32DjtvggVESjtcI?= =?us-ascii?Q?DcxwKw6+I+jAcmB2s84bj8cNTWQu7JaSkZYJ5hCqpeYISN2Tb7ors8wjJmSF?= =?us-ascii?Q?JPyrXEIjJVIDoGMKbrotTZIdzHm/WdTXfFvgCeu4glLft1wRdN7NCNmrZGz1?= =?us-ascii?Q?i1KFC0hEXQ1frxPOF+FjRwse/nBikEd8ucJJe52V+a/1alFv2401EMuYteCE?= =?us-ascii?Q?9OmnWWsv/7BDi8dLE9xLaaAbD8NfTDRSWfWbYiKA6XAFVmfmnFDa9ujempif?= =?us-ascii?Q?S9mD7IprqXxCotBEcjnCvRLyA/kzXJAj2lp0MEflqWRFUOqlgUO4XYpUzCPU?= =?us-ascii?Q?zMcYJA/xOqSXRezBdlTO3ruLzaCCTYiT80Q1TB+ixanG4W4LApdzx1do5sLX?= =?us-ascii?Q?YqebuggQObCizMa/94V+8ds/2r4deBzV67CyRnhQxSLaVu69a2wPvgk41f0J?= =?us-ascii?Q?XCSxVP7jnQd20gi0hzvZ0TySt4V2gD4UyMj296osZDxi1iJW9yZabB6cNvI0?= =?us-ascii?Q?PRtOVfYE4NqM48ZzGihw7t6p6yE+39M+mdVkwqkTtzm/ppC/7PTPO25L/jdT?= =?us-ascii?Q?d8xwj8rjvuLckrQIQQbws1WzxkHlAwzCUKKrauKY60v7G+C65KZ36MamsIUF?= =?us-ascii?Q?us4jwi8AV9FI8ncXAX/kAp0RDESMyPWlkJB0G+ijYCtBDaS2s13uoCHesb1n?= =?us-ascii?Q?C3RS9vyQevMV3JpeaMWN9c2cnjqpt+6l97yfXG10SbkOckaO8xXWngb+79kw?= =?us-ascii?Q?b5ueTFWL38rFwKiyOVyQ13RpmXXMk0Qw/Rfg4RIHcSYkbKMLz3SC7FL3+BL6?= =?us-ascii?Q?Zhjt4WkHpd9i0q7b+y7p+SElnFDcxeREAymX3nKkC/SuvmhwaB4bcIB+X/A+?= =?us-ascii?Q?KSXe5JzWMGDyUdB+9AwfpKaGV/7Z6Ko2NZghabcFu0pE9jM4YwGhXZB0Bawv?= =?us-ascii?Q?m66ua80SCI+LbLTtvJKOOojbZovx5ldNpUCRmR+E9XRPyT7Fsgv0zetfgBls?= =?us-ascii?Q?9qJNMFLLEyRCNey00ptuU2oppSstJAtJI9hDiZqlPc4Q+n6GWCrHxrHxYdE7?= =?us-ascii?Q?gwiWT9RWdcJOANmgZ9zE+YDc+6p8HaHjL4uv4UXRvfCLz6WOf7p6G3zIk3eo?= =?us-ascii?Q?h86wjx7Rj/IKhsKqkoLB/g9awo0qOZG8Ab8B4srIdEE9sIWsNVtWD7vnyA/D?= =?us-ascii?Q?Oh3WD7JZxyvFDzBb6w6ZpqfhSEaWE5Aoix+k25hb3P2f01hnVfMnMQ+N6hyx?= =?us-ascii?Q?LW70p0J1W4Yyz5HhJCAgOISixiah3dOQHGCZKotIoGbXfKoWQMsSZKIarpxw?= =?us-ascii?Q?7FkrUZB+IHJbcbhTGEV9OEvSrjTMAawCgaaObjwsNLJvtvmKuM9KITU7GcXU?= =?us-ascii?Q?ikaf8MoPwXV7xGImbdPDacCzPT9roCEYiBAANV5yNrMwmitOEONINv6Xx0Ae?= =?us-ascii?Q?B1W4llNM9uVNQcdvtDzKKE/3XH/t7RWpiPE69HIRihHIzIrKw2u+rtQmNJjx?= =?us-ascii?Q?PK/QzZY44n/YTznVuG9FcroYxTOZ1zrpJF64RNW/AKmW3ZxBnC89Tx5J+Yju?= =?us-ascii?Q?DyeDVlpq4cS8clkdaGcJo9/cTCa5nHtZjXXJ69SR904BTQSzZphO544W1Au3?= =?us-ascii?Q?H3Z6HxFS2dApfR512aoHCyBOdeeOFHmUN/qzu4wZTkU7hrRcLTkqnEANXCk/?= =?us-ascii?Q?JNxs5DKjMQ=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: znTO6fKOdXznHkfoXfH4hXD+ihkQxfEqC8oRl350bu4tcaxrUG6zpXB+cVzuPpwW5xJUTRxfZeahbekZHDprzTUidHX9ahu4PdQ2eAn+MZG5hWGys02IpHk2mXuAIeWdMDnbr/VvRMe5+ymxqN5kp0JdOD4Mk6rQkJ013N/Y/Wl4JLkVZRfLkrHL6sVJP9ZZHDq5fvgym3f268fL2fo5tKx0Rfo4k0PtLzfI3DqB++XUiSUlJRo2sScdbDR+TkG8yqIbIWT6g/Of2VeYaZsp6eabS7p2stGLqM3NLSysTkyITYMiXKL3DpClCxOqMVeVqjFJbqgC5UtHRT0//LVFDJ0Md3cYaS9M4pvt9KPzYucngT98SLyM1qXCdBf5fZDHHL4nyU3BQ4j07ZQ4xNCrUVynH8wFGjy6uQdsLtuhbNZfDbZBbzVa1/gnHvEoluxxiR/W7uG32fEZRVFP0qki1ydqTIkPiga3Gt1LjhIiGKonGQbs763GCdHcZKzazG0ES4CNj8s3SQAMT5Ads7nKBLhBJqG41ZaI/cZOYiFmfFGkIdjKM7X9AdKO/QBc6l0XX6BJpCFgoM7SEmKFHiXQ/eB8pa7+l4S/R/iJZqPV7Lk= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9ac2a96d-5f96-4dc8-f610-08de6042ad28 X-MS-Exchange-CrossTenant-AuthSource: PH0PR10MB5777.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Jan 2026 21:01:02.3818 (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: Vl3rdxfaN6aYRi1OZVOyOWXEhiU2iJJkZLQTrCuQ/wg88D58cO9v+iexGjgahAy8LyMIyaArS8ElYrzpKkMH7w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA4PR10MB8541 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-01-30_03,2026-01-30_04,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 bulkscore=0 mlxlogscore=999 adultscore=0 malwarescore=0 spamscore=0 phishscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2601150000 definitions=main-2601300172 X-Proofpoint-GUID: 4e7jcucrSyfZLVZNAirdmLt2Wd7qcMeB X-Proofpoint-ORIG-GUID: 4e7jcucrSyfZLVZNAirdmLt2Wd7qcMeB X-Authority-Analysis: v=2.4 cv=YuoChoYX c=1 sm=1 tr=0 ts=697d1c12 b=1 cx=c_pps a=WeWmnZmh0fydH62SvGsd2A==:117 a=WeWmnZmh0fydH62SvGsd2A==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=vUbySO9Y5rIA:10 a=GoEa3M9JfhUA:10 a=VkNPw1HP01LnGYTKEx00:22 a=yPCof4ZbAAAA:8 a=eQoyOrWFz78r1Bu3z2gA:9 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTMwMDE3MyBTYWx0ZWRfX+q8B5/rgGWFX 2VMs1jlg4Nc3UNS1SBK6cP2giSkQqezp3Mpety+fsk7Zz/YSUlVwQ3Xt5myXhVqzrGOlZ2+yN01 DBMUld2MrJUY0aLTaieWnB2r14AgKqJIOguUL55u276vfoF206KaSmIAhGSYQJ7VCZtloG2eipm bgry9oJrrVOMLKDqBNKrtRx9SKtNeNJuKr8Lnxk26gejj5nQKYeh/CSlFA/jEdLKhOx0fshRqhO gLJPfAoIla8cekllYuBZhlBcpRY57LjTVFDg1sOZNo4FCzjbZHaCJ0dGnSRCArdJo6Y/wxyY9H0 fmwTw06f0KkD38rdzOR5TN4aZ4FjamI6xih5GiM/uKDuT+Kf8gg7hGKdZ3jGyn6HJlO+dZbHhow RQsWyPnWb3izKb49jOwn4vnSdNhVxsELWR5KXlscEg9TI34YeL/yQD+T32Mg8DpLcKNYFloX4pK 0ni5KGx7BPOr5B75a2Q== Content-Type: text/plain; charset="utf-8" Figure out the end internally. This is necessary for future cleanups. Signed-off-by: Liam R. Howlett --- lib/maple_tree.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/lib/maple_tree.c b/lib/maple_tree.c index 064357a44906e..c9c63246f721c 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -3309,18 +3309,17 @@ static inline unsigned char mas_wr_new_end(struct m= a_wr_state *wr_mas) /* * mas_wr_append: Attempt to append * @wr_mas: the maple write state - * @new_end: The end of the node after the modification * * This is currently unsafe in rcu mode since the end of the node may be c= ached * by readers while the node contents may be updated which could result in * inaccurate information. */ -static inline void mas_wr_append(struct ma_wr_state *wr_mas, - unsigned char new_end) +static inline void mas_wr_append(struct ma_wr_state *wr_mas) { struct ma_state *mas =3D wr_mas->mas; void __rcu **slots; unsigned char end =3D mas->end; + unsigned char new_end =3D mas_wr_new_end(wr_mas); =20 if (new_end < mt_pivots[wr_mas->type]) { wr_mas->pivots[new_end] =3D wr_mas->pivots[end]; @@ -3513,7 +3512,7 @@ static inline void mas_wr_store_entry(struct ma_wr_st= ate *wr_mas) mas_update_gap(mas); break; case wr_append: - mas_wr_append(wr_mas, new_end); + mas_wr_append(wr_mas); break; case wr_slot_store: mas_wr_slot_store(wr_mas); --=20 2.47.3 From nobody Sun Feb 8 02:41:41 2026 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) (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 7B89838A726 for ; Fri, 30 Jan 2026 21:01:35 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.165.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769806897; cv=fail; b=JQhUNlg868Rlei1rrlifKh+BJi9RORN8PmMRzKlpQrGMVR1sIFQGBmVLoOmmvVXy3DulZCPfpP2lU9Kb7Fnw1eC53FgC7qEdFVXBDEiKNwvEGyeHZ3CGMqYT8DyaJpVLWiW/GpBfG/nwqcEYf3RawQfwPB1n/DfWeRYvjF5wgf4= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769806897; c=relaxed/simple; bh=oZKeajYG3L/+48KqqKLR2qiz18HBgGNWEJ4wIryqVfo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=myQaMGf7LeQ3n2mDbjNKZninLuBcJz8Md67UmLQWaahHt3Xq+2Un4PPRRQPVDhliEOayUVMOk8McciEEcLyqDSYU/X0nom5MU+eRNVQvw6L/3CLMwQ+uwyhU/aRDfBEKb1Fkm3iucIGDH0cKNe9xOnTPH4VYIQYXaklTx60CtI4= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com; spf=pass smtp.mailfrom=oracle.com; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b=iUKeIqcb; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=qcMdP46y; arc=fail smtp.client-ip=205.220.165.32 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oracle.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oracle.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=oracle.com header.i=@oracle.com header.b="iUKeIqcb"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="qcMdP46y" Received: from pps.filterd (m0246629.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 60UKDIZg3732537; Fri, 30 Jan 2026 21:01:08 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=PEiJoyw3YHksM/aZTUhenuMeueyh6vvn+ya7DJviXQE=; b= iUKeIqcbyB9CXy9SvbV99NqkWucNMg/3whgERBegdGG2GZbUA0gI2+RFU1qblyll p55u9ffQDVGKmBBPsXaCRK0UpJKX09rA9avRZPMWTsK0JD1EBYyEgsWYEOHIeWle Tk6oTW/eNCsQQRhJlVKDYf9Kj4YOube+IVX75yyODNA06lVwOHpQi4uVNaCnLbVB 3HzCExjZl/CCDih6J9SPON7Po68WkYjMCs8wFd0RuMt7K4pkOASKGDdswQhttm+S Mvv0y+xp0jXQkbe8YMH5KXUk3ZWKD+8V7rM/Igh+uyMujyyMtrTF0OEzNTFbl09k Y3X5scdd8immbvFZLLg55A== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4by5t6dj7j-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 30 Jan 2026 21:01:08 +0000 (GMT) Received: from pps.filterd (phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 60UJAMUb033453; Fri, 30 Jan 2026 21:01:07 GMT Received: from dm1pr04cu001.outbound.protection.outlook.com (mail-centralusazon11010051.outbound.protection.outlook.com [52.101.61.51]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 4bvmhe4h27-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 30 Jan 2026 21:01:07 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=QpSdB6WBHqsEghW0Czefgf/mBGEZbvC35blVnvcq+fyIopXcPSfGD5pQXtTRJLEWUy1o4LD0nstEFvRfd311bPyaq2YOSV7RbJjpJdu4yWFCzzTPmnC780IvonZ/48Nme77Y6bD3KvNzuVR/gyFC1CdpWZZEc8RGIhE7jOJSO5n/FRK2/1fLTIF8+Vf/3+EzhdM1rJ8OfqjX2W7EiVgPTcYiLnZMPLDa4ddVx2oH3AsRcio7LsAcM45SFZ1w81D51xw19y7fSu5cEwFMpQd1i8qZVrCmlJxGMTvbdfPSlXOhe2PwrVR6aLjH4cBLv08asx8HJnO+G0EJE0d8/glfBA== 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=PEiJoyw3YHksM/aZTUhenuMeueyh6vvn+ya7DJviXQE=; b=OJ9skZKqu0NgY5mSsb9pWVj5eEas0TDBHPALt7i7hj2KQa97aZ/NZuYxQukt0kFAGviHPeXqOpX1DlXFrKyOY7vwfwkBB1g8L0GbKJGv+hQpQi3Ddz4GMoyaq+JeKleWhennKB+hheK/fW54XuSDUd74qX2UJctG7Q7PTajAw4qeEJdDbPIdzdGMsFdiHz+tJxm18ZKqRWez9UDdJU2HfL9KUH3SaYkoSEfPtrx3qdLJbzGMMl38dUM+XhD2gKFlcb5j8Js8n61JI9jNU62uGF4u1DoPjBxd7OidVZ817pIq8kkzvNCZuY8XBwrBfxYFyrZU7KwA97fPM5cxSXwXoQ== 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=PEiJoyw3YHksM/aZTUhenuMeueyh6vvn+ya7DJviXQE=; b=qcMdP46yX57aDxsHSjqGjmgxdyXnuYd4LB8PWJMF2i8x/frP5C7jGmxEh63ZYPlHTF+cNqo7KaMDDwRZqYoyqU/6hkY7dI/fxP7/vv2W3dil51JJtsgvGVQu4pJ8o6qRPYBrZd5U3lZVCgnkCjWn7Yii6OlhzVxP+BmYKyjrlVQ= Received: from PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) by IA4PR10MB8541.namprd10.prod.outlook.com (2603:10b6:208:56b::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9564.12; Fri, 30 Jan 2026 21:01:04 +0000 Received: from PH0PR10MB5777.namprd10.prod.outlook.com ([fe80::4b84:e58d:c708:c8ce]) by PH0PR10MB5777.namprd10.prod.outlook.com ([fe80::4b84:e58d:c708:c8ce%4]) with mapi id 15.20.9564.007; Fri, 30 Jan 2026 21:01:04 +0000 From: "Liam R. Howlett" To: Andrew Morton Cc: maple-tree@lists.infradead.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Suren Baghdasaryan , Matthew Wilcox , Sidhartha Kumar , Vlastimil Babka , Alice Ryhl , Kuninori Morimoto , Geert Uytterhoeven , Arnd Bergmann , Christian Kujau , SeongJae Park , "Liam R. Howlett" Subject: [PATCH v3 30/30] maple_tree: Clean up mas_wr_node_store() Date: Fri, 30 Jan 2026 15:59:35 -0500 Message-ID: <20260130205935.2559335-31-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260130205935.2559335-1-Liam.Howlett@oracle.com> References: <20260130205935.2559335-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0003.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:d1::7) To PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) 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: PH0PR10MB5777:EE_|IA4PR10MB8541:EE_ X-MS-Office365-Filtering-Correlation-Id: cdf50dcc-4610-4196-7013-08de6042ae9f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|7416014|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?yaLa8IrAbuXY7ArNuzy2AcDC1+9CHTouvv4BJSoX8IPd6WC2ZdnbfuwW8w0p?= =?us-ascii?Q?Z34iSS5LjO/MMNH2GQYQOOLLEr24eUrkf5qCrIouARTSLfPwMyjky0aX3qjA?= =?us-ascii?Q?PdVTlQ5H3AhvyUaSAhjMuPFbBSE70cTybUxu7QzKk3Vn+NdU3Tb8+XAMdtro?= =?us-ascii?Q?pDSQl8VbpYpOsv4Z7bGahENUN5CpXra0+lEmMF1Uip1xeOWkPAqkH2hYySbd?= =?us-ascii?Q?acYQb5xQvT68go5kbabxqpL8mWVgKMWFUtQ8EFrgpl15a3tTec3lcsQzYTPU?= =?us-ascii?Q?xNJamjRTZyTFMz9dmbSqmqfngbil3hrRKWADNfndrLwki5StlFzqOInb0KfD?= =?us-ascii?Q?nDgG24BzpuhoIFDwBQhOOA1q+3sPjFPfGgVFW54U/Nbu/q/YxjagpZiA1reT?= =?us-ascii?Q?UZPpNFybh9Uca/sVPoX1tAphC0wRkmraJaxyRCZgaCViHe2lId+yka/jsElJ?= =?us-ascii?Q?/pw4gyOAnfl8sE60K0R1PW3JlIpWZcOkPVb05g4/cuWqwl/FZmrWq6ZSnQrL?= =?us-ascii?Q?t3jrj8NcKORpJFpqqo0uKM+DT/cVsoUHoP71ZZfu+EKwTilMTNnjIm+ui8wC?= =?us-ascii?Q?Nb3+2SAQRt0Gyfnf54qhToAparcWJGizzOB/VQhGySejurgySxBsB7QZBV9D?= =?us-ascii?Q?DeiXrpz8HVCh6zFXbdGMdaoktuPJcHEpTENvYPhQrl80seD/BykKtv0gcRza?= =?us-ascii?Q?DBGzP2NUHra+TMXUbBc+pb3OzzSZokztCrUS3iX+D+c3GBUDpBIvfHU23r3n?= =?us-ascii?Q?ki/SgBXt0RTFFqzFDN09qdkyq9pHW5H7n0lQu3SQaCC89jvcozwNjxRl6Gp/?= =?us-ascii?Q?d8xCDkagDIojCWNDYRezV4jSOKFUIruzOviZP1GcS71FnKVxLM8UmLYQXwTM?= =?us-ascii?Q?cPUk9lygilodv2pTn7p+3ydbz0D167ApB2dRJKSlyUgdxz+AI02wElXlXVNp?= =?us-ascii?Q?+Y4JwknDreyAuATBksvkONlr4HuJUSR2DGTs2lRTUaIAIrmEX20ZCLqedYpZ?= =?us-ascii?Q?zCcBlTncaqANM/D05exBu9AdoIwKs9d9Z+t6f39r76wnSvU1/qlJXd+2W/wp?= =?us-ascii?Q?ChPS9AhKRBAV+NI5AWIHAm1H9cCeW+kEVWubtl4Q0XgA8uKXVbCGWh4wDIw2?= =?us-ascii?Q?PhHapdwgFdQ7KmeZ25MV4sVZCT38O/M5io3M56+6GgSNvApd7vkSEPuI09fp?= =?us-ascii?Q?/eaSqNSiJfgb7fE6SPE/xIDgwYpzF3BtHNIS1EhBWBdFhHAFV4NbaOK9IoIh?= =?us-ascii?Q?AMMXyy40xBvj9y318YARgHe7EWgtFiq+6wpAuoD6jD0/3Y4m6W03Px1wCY8M?= =?us-ascii?Q?ZqEH71S07/57p+HTnIntEm016gM+2QfMHrUSAulMT3reILwkR2KA3M5CfnfM?= =?us-ascii?Q?zM/v7CByEZul+qChKUG/e5IU1t/ixKCALJ2s/gR0ks0hnteztPrzDlC9SPhN?= =?us-ascii?Q?c9Aq+dn5RnjUl3LI8RJRTNrA7jlq2GIRKYmXHSdoREDS1LJDYn10kXq/oznd?= =?us-ascii?Q?q0jwOkK2FALhkRoqWbsT5F5sPNU5ebOgsaIjuufc2VnGnkrmbz6XFBzrgGbi?= =?us-ascii?Q?HeYr1gkxKrRCjlTVyvM=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH0PR10MB5777.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(7416014)(376014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?ZkoDY7D80vTnnnPHqsoLL0DGr0qcik2Su7Wo7DSIbDjbrpLBvD37UGGQj8FB?= =?us-ascii?Q?1WC2lCa17Le0o6wGzRQZ3fzzajk6ADupw3ARHHuMGSwHyDwNSYLsh48PKM/0?= =?us-ascii?Q?Z8qRnOqqGrab6DN1QLEH4jrWUpQYTuiG8AJ8b4vZiExABZR3Fy+w3C9qSS8v?= =?us-ascii?Q?UxZGHi8NB6uhm4lKfVBf02d1Fzg2NhWn/Q3sP0Vkn6oW3LMLYzmV/L1JUVj+?= =?us-ascii?Q?a2yPhuE86JtUEf+IccCQ8ubBi6y+D6K6hAUtm0POEz9AioqNuBfYLqQgXS9c?= =?us-ascii?Q?FloEK+JHOWHUBi+nTwC7fpVgxSy89fOgrxZHzcx6TIPxy1OOBSwWwpGppSzC?= =?us-ascii?Q?JmUdzSL3963ESTJ3cxK1/NhczaMA6CaF00znJRxDfcnC6STGbpFAmwUE9tmg?= =?us-ascii?Q?+az/td5TA0D/7KOESB1umUqsnKBV8lvZ69qCw5dbt1f6jKRtcg2GymAnz6/C?= =?us-ascii?Q?I/mErkjsX3oB9wi+rhJfTmg+o9qaL3TNyF1kXMxDCbxYeoxspZCdQ6uX22VX?= =?us-ascii?Q?dRtScTtvlESn42IqS7C6X+5KAeSwJE0dL/kEx6XSlzqgsK6kTz0vfPod/t94?= =?us-ascii?Q?jU0uUJANiApRa13/BCrs7rb1rvgmLsfBM6QGJDRusx3N8kLh9m5prtjIPQWk?= =?us-ascii?Q?A4OhK8FhJI2M4RKq5Ji2CGTf/D2rtJCLu8fClbd3ZQ0WsxH2iZ11MqElnYqk?= =?us-ascii?Q?hbDabVoHMDLroas+5wpw06m2mx3m9W6HOS7in4jawPV+UPz053rA6OqM0VsT?= =?us-ascii?Q?0R0tGfaxltJAlP1vbQmcHUI+IlKqItnPN5yWx5jmXOI9Vs4Ci8Nhijd1t0S1?= =?us-ascii?Q?V49O+8PBr/jIvjSkUGf4PryfXliIsZvNyPXmFhLOlQSUTAfbOKyqbtOQmXHi?= =?us-ascii?Q?IG8Yshx9Sz0sFxXlXP8Xbf5xRh7k3Azscy6VP1p/W31S8yxQHQrz7cLMekYo?= =?us-ascii?Q?SWiboCWYy9xPFR5psBWZfpVqdbAr5tflboeiHrTsL82SUvyKH3Bgeppt51X6?= =?us-ascii?Q?i7nCNuEzV6vR1tKP0u2NibtzD1Lb7AfLWuUEIsqjj3QEb5mXdK6grO0sYW18?= =?us-ascii?Q?H7TJsTP9kNEbDg43vP8f524/TncApwEjA+TwguHpeEneMPRhnqn+n3GJRpSo?= =?us-ascii?Q?TBdUopadKKTO4sWmoYsLg1LR/qZ9PhrATb8UxmF5WWXMaEqyg9/b1B5TCzyP?= =?us-ascii?Q?zoU9NpbYJ7/HOFl49z+CcnyylZGlKkidJMfVUayXn2nA6Cgafth1wCpV6ELI?= =?us-ascii?Q?c7G/2XnXkYMALVoq8VrFNTH0HwT2t3SSuwA4fSF4QiF47pCHeaQLiauJNobj?= =?us-ascii?Q?Xm+TD2aMQMfl/xgbj5oryN1pYpLxG+7KkIhW0GyYfwq6O4oejI7ikfO8b0fa?= =?us-ascii?Q?Vm687gtaBr8FxoZ6KfDz/0o5ODF8f+ZvunU3nQvc6HRvBDLL3/KRFjRitXuN?= =?us-ascii?Q?LxzvHiGSAO7BL+z1+juO5xQhmMfGtJveAqfQASnsgHxs5pL0RTVFVd1NhE7k?= =?us-ascii?Q?9vCReYnTbIhxaw2k8/LbMTKJ7GG5Kzz26wCI3FynPTHsgCOM/o2cPoed6+/8?= =?us-ascii?Q?2NjC/1kvHgPTXIt4fxYEf0c5SrJKPayqWuDTEBRt/KtnpIbKxPxSK4qH13wM?= =?us-ascii?Q?2enpX3kVFvutyv26WdzXU0640tE4c6zX0RDzdEDTwBJewfdKMbDUOqWucyOO?= =?us-ascii?Q?XfOm9oG5joMG8Sab1LnVwy3Vx3tAA+atwWE+VTVaWwigTLk76vflcosw5JVA?= =?us-ascii?Q?V8btsE9wcw=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 4rkG5IeTR2dSOUYlAp+lE2aUkxq+m0iyMvDnaImyC90dpbxHE+MOzyH7GR/R3kq2eK6KsKKxWUhPZs0aOTtzMCPG64rNb5ZzKnLV+ZrKzRxDX0f+tfgoJNU/an2h6QLqueOER1uvQ3hWDzzNSj6PfQfZd4Fmtpj7HQ1YuLHai/rZOuxi55PP1xltn3qUbvXi5sj3ZLgabwoQ5LhLMMUz8q+yaAvMu4bzEXpyaUYWvV9/tFmpG8SQKRMqIhiaeKUrE7bOG7xcgUa9j09GHUzpJBLeCXSZAKtq9ijkKjk+GU5+EjHQZCMheToWQtDkzq81HuB9fqiIAEULaJ25Kyq1MUinxiZYH1okTHrRZFDlC6ODUWQV3nx8+aYSf/UM2nN0lk1Ev484x3KqEbTSq+D2uNUeNuGwgjZG8v57rnNXGm7Tp0hfeT1Utlkdt5Aa7hW+qF4rFfvurkeNgMwJEdGs8fhlJa/4xoAgnNocPAjrOgA4i1WriU8WFYaU7pi09Mulog3K8pSBqiKwsW5gDg4S/uYluhbE8WrDPPW363l4D88G5SnKu+5TniEmaNfXUxf+nGjy7kPnZu1ysZVTU3RZS4feAavNQ3miYocNZKTf7N8= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: cdf50dcc-4610-4196-7013-08de6042ae9f X-MS-Exchange-CrossTenant-AuthSource: PH0PR10MB5777.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Jan 2026 21:01:04.8009 (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: i8ja3TmH2JZ1sdiOBFbOlQtVxwaQD/WFRiGFTxvfWilLJI6ktZzHg9fHfgsTk3KvdGDNDbkOhs1PCutGZQOJAg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA4PR10MB8541 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-01-30_03,2026-01-30_04,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 bulkscore=0 mlxlogscore=999 adultscore=0 malwarescore=0 spamscore=0 phishscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2601150000 definitions=main-2601300172 X-Proofpoint-ORIG-GUID: Ocl7908bam60ptZwVD5k1nm8V_PJ_EsX X-Proofpoint-GUID: Ocl7908bam60ptZwVD5k1nm8V_PJ_EsX X-Authority-Analysis: v=2.4 cv=IIcPywvG c=1 sm=1 tr=0 ts=697d1c14 b=1 cx=c_pps a=WeWmnZmh0fydH62SvGsd2A==:117 a=WeWmnZmh0fydH62SvGsd2A==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=vUbySO9Y5rIA:10 a=GoEa3M9JfhUA:10 a=VkNPw1HP01LnGYTKEx00:22 a=yPCof4ZbAAAA:8 a=I3VoEf0meaw97abzItIA:9 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTMwMDE3MyBTYWx0ZWRfXxdgoaZ4m/lvl 0X8I74ASmxRXjkGTrZkvw5Re6doKFRQPHBTAsGo2pX1Mcu8RtBBSNSOzMwd6jvNRSsxmHTn2Gyf 4HMCEy4jAYLDH5AwZwUkGRkZqm78QojRsMz/ny0tgreQmMvEY2iipn4PjCtDWsARwOUIghf2nIf 70rGI/PrLd2nHZ9Ct5Xape4YCyQo9WIt9aXB8dhXVmzHAsVuDt9vBnD8IehMIGQv50nTqoYdBxN Pz5OGcfQouCFxhCmE5DD/438YgxhQeK3py2KuobQCsBsRALcXNsQwqFkQq1HHlLbH9nxV2SyT84 /1liSBSZpQvYwgy7H/IPfiWstC+zEznvV8LtBOmD2QP5N9WJojX0fhch+Gyw5s1HaMuxYoAONuY e9/GuT6y0IjkYUf5Z8UYnZjUv6ZWDkEJStNedWv3c87GkifFDMSQo/ABLEVN5PdY17g5NecvsyA 5DZGMOxfFp/nVk9b/wg== Content-Type: text/plain; charset="utf-8" The new_end does not need to be passed in as the data is already being checked. This allows for other areas to skip getting the node new_end in the calling function. The type was incorrectly void * instead of void __rcu *, which isn't an issue but is technically incorrect. Move the variable assignment to after the declarations to clean up the initial setup. Ensure there is something to copy before calling memcpy(). Signed-off-by: Liam R. Howlett --- lib/maple_tree.c | 42 ++++++++++++++++++++++++++---------------- 1 file changed, 26 insertions(+), 16 deletions(-) diff --git a/lib/maple_tree.c b/lib/maple_tree.c index c9c63246f721c..af4554a23881d 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -3122,20 +3122,28 @@ static void mas_wr_spanning_store(struct ma_wr_stat= e *wr_mas) * * Attempts to reuse the node, but may allocate. */ -static inline void mas_wr_node_store(struct ma_wr_state *wr_mas, - unsigned char new_end) +static inline void mas_wr_node_store(struct ma_wr_state *wr_mas) { - struct ma_state *mas =3D wr_mas->mas; - void __rcu **dst_slots; - unsigned long *dst_pivots; - unsigned char dst_offset, offset_end =3D wr_mas->offset_end; + unsigned char dst_offset, offset_end; + unsigned char copy_size, node_pivots; struct maple_node reuse, *newnode; - unsigned char copy_size, node_pivots =3D mt_pivots[wr_mas->type]; - bool in_rcu =3D mt_in_rcu(mas->tree); - unsigned char height =3D mas_mt_height(mas); + unsigned long *dst_pivots; + void __rcu **dst_slots; + unsigned char new_end; + struct ma_state *mas; + bool in_rcu; =20 - if (mas->last =3D=3D wr_mas->end_piv) + mas =3D wr_mas->mas; + trace_ma_op(TP_FCT, mas); + in_rcu =3D mt_in_rcu(mas->tree); + offset_end =3D wr_mas->offset_end; + node_pivots =3D mt_pivots[wr_mas->type]; + /* Assume last adds an entry */ + new_end =3D mas->end + 1 - offset_end + mas->offset; + if (mas->last =3D=3D wr_mas->end_piv) { offset_end++; /* don't copy this offset */ + new_end--; + } =20 /* set up node. */ if (in_rcu) { @@ -3149,13 +3157,16 @@ static inline void mas_wr_node_store(struct ma_wr_s= tate *wr_mas, dst_pivots =3D ma_pivots(newnode, wr_mas->type); dst_slots =3D ma_slots(newnode, wr_mas->type); /* Copy from start to insert point */ - memcpy(dst_pivots, wr_mas->pivots, sizeof(unsigned long) * mas->offset); - memcpy(dst_slots, wr_mas->slots, sizeof(void *) * mas->offset); + if (mas->offset) { + memcpy(dst_pivots, wr_mas->pivots, sizeof(unsigned long) * mas->offset); + memcpy(dst_slots, wr_mas->slots, sizeof(void __rcu *) * mas->offset); + } =20 /* Handle insert of new range starting after old range */ if (wr_mas->r_min < mas->index) { rcu_assign_pointer(dst_slots[mas->offset], wr_mas->content); dst_pivots[mas->offset++] =3D mas->index - 1; + new_end++; } =20 /* Store the new entry and range end. */ @@ -3174,7 +3185,7 @@ static inline void mas_wr_node_store(struct ma_wr_sta= te *wr_mas, /* Copy to the end of node if necessary. */ copy_size =3D mas->end - offset_end + 1; memcpy(dst_slots + dst_offset, wr_mas->slots + offset_end, - sizeof(void *) * copy_size); + sizeof(void __rcu *) * copy_size); memcpy(dst_pivots + dst_offset, wr_mas->pivots + offset_end, sizeof(unsigned long) * (copy_size - 1)); =20 @@ -3187,7 +3198,7 @@ static inline void mas_wr_node_store(struct ma_wr_sta= te *wr_mas, struct maple_enode *old_enode =3D mas->node; =20 mas->node =3D mt_mk_node(newnode, wr_mas->type); - mas_replace_node(mas, old_enode, height); + mas_replace_node(mas, old_enode, mas_mt_height(mas)); } else { memcpy(wr_mas->node, newnode, sizeof(struct maple_node)); } @@ -3503,7 +3514,6 @@ static void mas_wr_rebalance(struct ma_wr_state *wr_m= as) static inline void mas_wr_store_entry(struct ma_wr_state *wr_mas) { struct ma_state *mas =3D wr_mas->mas; - unsigned char new_end =3D mas_wr_new_end(wr_mas); =20 switch (mas->store_type) { case wr_exact_fit: @@ -3518,7 +3528,7 @@ static inline void mas_wr_store_entry(struct ma_wr_st= ate *wr_mas) mas_wr_slot_store(wr_mas); break; case wr_node_store: - mas_wr_node_store(wr_mas, new_end); + mas_wr_node_store(wr_mas); break; case wr_spanning_store: mas_wr_spanning_store(wr_mas); --=20 2.47.3