From nobody Sun Feb 8 05:35:35 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 09C2631A7E4 for ; Thu, 15 Jan 2026 19:37:34 +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=1768505858; cv=fail; b=VGD1yd56USJyGL2ALl3dsFTQ048ymfWcvTiuajUkMClX55ngT6XCO6sOMdNftsjeaADekOCdzahsEBzbEx+7Gh/kzUvQqjNi1m8F16gvoH/dUbf5ej5geMX62/xUx/34Pzun7lcxvdy8milvi6tBxaEeHPzTqTyuhH1hDa3CRXw= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768505858; c=relaxed/simple; bh=MsWQypyPoYBGBGr85YqZ7ZychZxy3UON6VUFV5tmGm4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=DhSJlwkd0G2Xen1uK1yWhCxIOK/ImreUU+Af8Fjr4ZswwutazDPoKyJ+OW+wQbLbVl/nzdRF0s0vPVxYbAcJ3S5k0YNjb0wZAGAwpzpYqhElzEjGdd0pFtER9EoaCB0St1tGrUiBM1F/aPW2zi/NXodSXi52PpcBfXSfhOZsHRM= 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=siJEhBpW; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=dtiVbhGP; 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="siJEhBpW"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="dtiVbhGP" 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 60FHRm4C2753713; Thu, 15 Jan 2026 19:37:02 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=m/S8Z0WMtUiSILXjuzfxu0ZIKqnpBq5lOYWZuelb8wg=; b= siJEhBpWY8fJWRR7Tk3UDnIe/bmbj589FOVBrw90Bci7CxLydX03HSZGfTuP5eMy awYSpT4VtxmujnthMh/VjwjxCWMBfqXkJtKg38eNtzutQuzDya1TLcWDJBsurKCB /1pJxkARVRL6JqqgCyCU9n7BU2O5A1O6rzn2jsSvQo7d4uLpOMznsow7q++pygWd hxQgKTSZN+xJBb5yUn/SP3m7PxcexZISsT/EAFSbNgUsvBlrjTtygCOYkYeIt5vx GJCidQyAY2CXFLpYeWlg2QcQ7wXZMjaLB+szoBaud711Mm1kmfnQOl7wQ/hPwodI QjzaEMq2N9Wlz/dQ/PHf9w== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4bkpwgrgdh-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 15 Jan 2026 19:37:01 +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 60FJKQPQ004292; Thu, 15 Jan 2026 19:37:00 GMT Received: from cy7pr03cu001.outbound.protection.outlook.com (mail-westcentralusazon11010012.outbound.protection.outlook.com [40.93.198.12]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 4bkd7ngtwc-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 15 Jan 2026 19:37:00 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=FH+DJ6VNX13uAFD3WnPSyDONH5OSmwBL/PLw/SjI7asTMLN5m7QWU5i8LgpHgjWzWYsDI7eYzQOFAj4tKGOjnwjvBS1JZGEcUIwonNZe5gWccTuW3kfk660gv6O4Is2QSbqB1WcpeWg62Akr07NhbrJ/7cqJ+1TLKRmhhd6JQCS5rdp6RTx2M7mGwJ92crojr5ELBQSD6WxFOjpteasMbyxtHC8P5H7VxMTSZ3yDNLhViCu1OH/DeK4pAl04JI48Cchkr/+EELY+mTj/8j6GvObalLGvmnRPdcH/SWRcx7K+zAGjj7KV0Gjwvgxa1PkR9T+njH8+XaWL4mVOz3Lswg== 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=m/S8Z0WMtUiSILXjuzfxu0ZIKqnpBq5lOYWZuelb8wg=; b=vaswuNU97DCga6sGpIldDGDnt7U7/k4cH35/x26wzDCcCnBPsecj8c4XL1uXOQqrUVBS7Gey21PFCbesU8RJwfqsgGbsxDUBim1ggpRilgOyxbF4on2bPMjL4PpEJyufWUy/Pez+6Fsoe+qzgAh4IpY6E4dVo/ZlvJs8SXH79miNW9DB9IwC4iGV3g3MrYyfRiGmy8LxZJWF/yhkZP/grNmsO5UwzpFPK1qtuhhtfp8wLZHvx6k5c/goJD4og+EJh7/mGhxZXFwsMgfSEJl7Sss+JWjhixNu9PeHodGMd/NvD6gVl1udo1/Gi+ncDL1WViWejyGOVyyaHo235RjYpw== 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=m/S8Z0WMtUiSILXjuzfxu0ZIKqnpBq5lOYWZuelb8wg=; b=dtiVbhGPHo2vflG+/lkeHIUnutKLNDqBBqv9bLAT0RKu01enDHarvQ9p73g2Y2Tz6xM8V3D4cZd/MDGe8qTa2fBPyEeADRAcVZeOOt4s52wo3/9JJfnVaXM0mZLleCP5uV+w7bZvtFrLQGWRfV8u7jcU4+bZGgKOld+1RtbNJro= Received: from PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) by CH3PR10MB7703.namprd10.prod.outlook.com (2603:10b6:610:1a9::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9520.6; Thu, 15 Jan 2026 19:36:58 +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.9520.003; Thu, 15 Jan 2026 19:36:58 +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 , "Liam R. Howlett" Subject: [PATCH 01/28] maple_tree: Move mas_spanning_rebalance loop to function Date: Thu, 15 Jan 2026 14:36:20 -0500 Message-ID: <20260115193647.1695937-2-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260115193647.1695937-1-Liam.Howlett@oracle.com> References: <20260115193647.1695937-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT3PR01CA0074.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:84::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_|CH3PR10MB7703:EE_ X-MS-Office365-Filtering-Correlation-Id: c4ce4ed9-e321-453f-aa90-08de546d726d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|7416014|366016|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?H6VFYz2kpJoJddxl7pbqBnkQEaAyD2r+8CRiv/XVEXGDyb7mLq1pUJI4HEoR?= =?us-ascii?Q?HPui/xr7E49wcKYBFShTOG0XfmZzP6D18JtT1+n7y0K1uNxOpMSb48qX8h3D?= =?us-ascii?Q?d34LNpkIdjDudSFWV9dKBsu9znNH2EytekaUGQ6IQn9UsOo+8sOlnWZ9G3Rb?= =?us-ascii?Q?EcXwJahH6am7pqoixqE5cLrfwMBw7u+gVEG9sj//7MNVNZroPP7vgaTARdEI?= =?us-ascii?Q?GclwjJKsRPiMAjxuuxUjRpurgUlHxJwpc8WyR9Xal3pLlj2UK2G7IBs2ibV/?= =?us-ascii?Q?NSUorb4EbUzHG4u3xXGJGB2dfFgTbXeEZrEVOS+4CFK5lrV7s22vdGQZoq6C?= =?us-ascii?Q?TYNV11lfQHRgaR60IY/ip8QdNZhLqkXXW/MLwgRHP1ePclvekfKidWyD++p3?= =?us-ascii?Q?BuxbAJBwlUSzRCq4dP4bDJ2Dg5OgF+CHXVa0hdht+31AO0WQeiDRk9KJpogl?= =?us-ascii?Q?+TrpG6KXBDyiIk/EIQh6fAlngPcYjFqQF8Tjo0A2qfQAJX6rESyMwxGlMhlQ?= =?us-ascii?Q?ob6PWJ+vONiKSMWEf+by9GcKhFbBbbsg7U5bv855YCEAGIAFsWfvp8TNFSKw?= =?us-ascii?Q?smDVlwtPYjIG81mMg8wD0I3sIZYZa5rSu/2ZoC2J8VKsrlElInXhyjP4fHFI?= =?us-ascii?Q?4RcjmA+XAhhe7bj4VXPhK+ltNzZiwMSyw4Flgh2ksYOg3AkzYu0UNhBSylau?= =?us-ascii?Q?4oNbFeEbQjHRvGMiI1iSWslhbV1p+g+dPo9YRCVFYyDskYXEk5mlna9bOJx+?= =?us-ascii?Q?hWyRPXLDQU4+4LaowRE+fsj26R663tW4qEx7wG2iTKrw88J0XT4IUAbEKW/h?= =?us-ascii?Q?33WrWN11JNqi+5WB9vAW7Yc7tzjWNloP+xAbp6LJGAyPzkFFmLdDRqesyGlH?= =?us-ascii?Q?YZy4UNZ3RCOYQCqMhw7T0pMynx6aQlwpSTxOGSxXnDpo5WFZ4mRwo4mJhznK?= =?us-ascii?Q?mhd+W7VFlX+Wv2wBUsspeUc6rto5UWInxgab2aw0FZ9Jmw4Jq4c7PceAjNod?= =?us-ascii?Q?i+xKGXc1JjPrVjNEl2HO5O8HAHLcfQdmIWlEl0rd0LkIgMcay+ljtwJ7BzQB?= =?us-ascii?Q?7Lk4rq9Qtqe7cIjes/lH9+7+9Z9yIzx68SufXnRcyw5/AI136bXDy5uMjgPl?= =?us-ascii?Q?ZVKCVhxREr1SYPplFYbbsPL2c4t/tpjZKb7pCcZtXRrj2+vS9xkvSOx0Td94?= =?us-ascii?Q?hZK/ghqV13JTzMRpyFjZFLM0lB0MYZyYgnh4tBM0C2tRqRXpLw9tV55M8Ft6?= =?us-ascii?Q?crf5+hhOzJPwD/8Gv5Jeb9zQwR9CQpGYRnw8+uJRTMXfS65wBljBg+ueRH5b?= =?us-ascii?Q?NhoWLeGt9azIjVqdvlzss6rRgDfLfL9nbFuI3rGSL2R/pmph4WR3G6ZHcaaj?= =?us-ascii?Q?8SWwVB1Cn/XRQkzJ9+82GI+sqi5LcKohfXaXQoB3WlpCgfiFpKBUj1MAIFla?= =?us-ascii?Q?8luHPqkJpvhgs9jssjVZnOGPV1nZxAyFRgYwoLLCUXt+RS+YHMNeqFWPhW1U?= =?us-ascii?Q?bggj+W8SGjoNxfauiIoplEP40si2hzaCkH3wpkg6hxwHcnAGpwPAuypw/Dhj?= =?us-ascii?Q?qLJrSya1YdnjU322yl8=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)(7416014)(366016)(376014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?5aoQz/3T44iOoVNTJZMuYCI+lpT4ZlAH2KkNoyn9ZTEU0tzRO7rz+hW/S+nP?= =?us-ascii?Q?69/81+IS/4Ku3X4WGhHzn/0TFOafK+/+enp7Ym0tFPjdmMsqXiMcmOfqaVYj?= =?us-ascii?Q?7xlK8NUhm1AZMNEohYc7ugfQJrFWYwQyEloajyhKALN3HW5il+R4Zhl1Ss71?= =?us-ascii?Q?s3IvnhifdTS7UREDfREEKdo5rPbpdefGso6qMoIOArrQzfFAny1DRly/Liqn?= =?us-ascii?Q?l+WAwMK2qVmx0nu1JiHVumA3IIJTArp03asNEFCRi2K+7vsj4vZOx1iGO3jx?= =?us-ascii?Q?uc1kN9CyCcUJJyk8NJEdizvyswzFzPEM2cUAJwCGvsdIJP07PeUHruEnk4f/?= =?us-ascii?Q?K5+ppbcIqaRHwLVlz5ujG+oBPZWikiL0Nx4PuOW1bzt/qT6sis0KHsyDD1kW?= =?us-ascii?Q?FQf5r+1Q9FK3lNbw6E1p5qg30Sl1kMv/nLCdFRgmhuuLfA42C/pcAIKQAnI0?= =?us-ascii?Q?s4N3qlmLT6+aMbDF2DL4LWN+DUGdO6DMd2yXqkSf9CPqAskHXzc2l/pAWrOn?= =?us-ascii?Q?i7tZ5sbz8i+FN0//a0JcbM4dS1nZDPrmtIX8aJL7KV2LwA9dJa/JlsPEJCYl?= =?us-ascii?Q?phXvRbPNz6KB5deSdfx1xrIvrgM44BY7ThHRV0VmdbDeIg83Um2RpGTph7Oa?= =?us-ascii?Q?4vRFgWq5g/5KBwQzudSOsqYRWueQXbWJOcIHE27wEWUtJpTJ7/yurFDop+h8?= =?us-ascii?Q?Fnkc7W+5Rz0EhNa+MnMj9PgFTHCVUcW8f4FgC3OLYhi7zrLPdjzZF7fJ0aQZ?= =?us-ascii?Q?mFmnCF/Mibe/Mdg2wM67jyhTOwST1vSiV3zzi2Chezvgr808/8flSMguH7pN?= =?us-ascii?Q?4rG1rkUdak3HnCQu6UwKcWzqDAM6Dc2fZ4NfNeoOIvOK07HmGwc2hRDFFz7v?= =?us-ascii?Q?U0HXlzPd25RgcPRf3Weqt24o8t0WXkDfCUGLUZPwhu5iuTgJbSsb7aQ52N2J?= =?us-ascii?Q?0Qeh48c8yMfv4CanMjl4RcztoeHC0pvZmml/YHTJxKMndGRBdJ51cPKCIlHn?= =?us-ascii?Q?dLcUTHioUCDJ5DSUfXfRBAPK5YqwkmtgDty8zgbzyoTtek5bE9EQ2XnG/bzi?= =?us-ascii?Q?GUJGRQxNRfNmQ1v8zUZ1jYk0oUMyRKGfslBJ5wGa7+WxgHkQkJA8j+uL03wb?= =?us-ascii?Q?pHP0/8NZEvU+dRKE7J841s786Fim49gSjYzL+qSIKNprotMUfPA9u0wmXA0n?= =?us-ascii?Q?aZM4/QIUmqoJfpYhSrJp2BTEzO01Ytw5fhJfzH3bbj6NnqtQd0XlINTJ9Wt2?= =?us-ascii?Q?zrMNM6gIxegxekKgJO6cWCeeZUC7YtCw5rgZ7rIO5dR0tBHGHeyF5BAbGpTv?= =?us-ascii?Q?n5URUxh+KBJczpdPFeuTkQYeZS6A75/UOflFUcGpo4JiI4u7vV34tSZPNO4V?= =?us-ascii?Q?qioRf5r6y2LCg75cEhSiDmcqrMOAxYa9GeZAmG2lcdTrfHyS+QNygfnJJ7m9?= =?us-ascii?Q?ltwxPIu6FOqBnXwqwQxyTZEeZJm2BSZ9RGf4VWQww9EW2QWq143u4z5uiE5v?= =?us-ascii?Q?TlAwInseKVIbk+salo5sr7F8EQ4C14xG4SARWIw2pTXlhg6ytU5ymyZd26+8?= =?us-ascii?Q?STVMc1wFt9xsxrRZS/v5/E1gO18QxW57vBekh+a4XZuQd7SQQDzRYrNKl5s4?= =?us-ascii?Q?QgExaHa9esjG3mpZY8MCylRfrpB23nbWb84+8Mj4zVsEWFCyL3YzBwUvl9dU?= =?us-ascii?Q?ITzygy64NdesDUIyRO4u6Q4C5SdoeO06POxN//mfC+xk1Y4P3vdxJiyWgsHr?= =?us-ascii?Q?nJWJBa3qSA=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 7PWf8+8+4USjY0gzx0xIQdKcIkH1nO9Tq8RMydC0xsO6iH/lrp77gMXZeJy2uletiH8/4wNmkoA7qMGtOHEZAzczrFhOW8Cf9AaXy6D/BGg+HqrlsPyoLzkPcz9PMRdR/cYKPWkEDxjmTkNTmpFZLfFf220PifgYaSreuuIo77Ckr5VjiAjnIzCUAfv7/q7v+IHsFvGObJHRY6tt82RxSuey8C4nymvLu81/bDU9R4T+BMRx8yDer9jdpGb08pskDZ8LIRyNaVfOUZRYMEe3eVVxv6mTBsKCSZJvLSPC/CBmKC7F6c3hVxL0d4/YqcThxSzXd5h4hKJIeLGKGlZpw8WN91LG/cOiWwYyRAbsKGCJ3VXPbYQc/4K7n/s2WK3BBvHHCLK50vyVuaLxDs0FiRX8hJsTO1WI0tjKmA3t/McbB/N6+Dy8GCW2Kt2rGF3s17GjRE/IkJjzfcJoam8HJa62thEquXjuVO7mcsgq4weNTpTZrDO2X/1YKyv3Is/igzQ0uPnTKwYrMbc8UokHS4LdZCleGLg+isVlGj2LYsB4MBjgOVXDSynG8zrvWSnz2FeWFX5jOukc7N92Qncq7B0k8wcQTFrCp9egH0J0Rec= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: c4ce4ed9-e321-453f-aa90-08de546d726d X-MS-Exchange-CrossTenant-AuthSource: PH0PR10MB5777.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Jan 2026 19:36:58.3101 (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: z/OEjoaoc0Kj0dSQxOoR5VNhe4fZRhUrvrMOHG6PSLPxwh9Zyj/O1hhp7eoEn3x871dGbTiUvjY3X3HvXGjiJg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR10MB7703 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2026-01-15_06,2026-01-15_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 suspectscore=0 malwarescore=0 spamscore=0 adultscore=0 mlxscore=0 phishscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2512120000 definitions=main-2601150152 X-Proofpoint-GUID: KybKsexA80x4n7dZkRRRMXSVR-x3I5gb X-Proofpoint-ORIG-GUID: KybKsexA80x4n7dZkRRRMXSVR-x3I5gb X-Authority-Analysis: v=2.4 cv=ZtLg6t7G c=1 sm=1 tr=0 ts=696941dd 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=KfpCAqERy7lSuQKxsjcA:9 cc=ntf awl=host:12110 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTE1MDE1MyBTYWx0ZWRfXxPhuAJafQzr6 rm7KiW6EZnL+ExEX373diMqt6QINT5bD/yvq07xBByHTQoa7L4Rlz8SOi2QEGEAlhF9Jlcrej5Y p9+JjxmTKBF/wWq8DL5JIpowVDfEFIra8S850yj3S5Fm9/W2BXhLIiprvjit/Nb18A/I46Ay5ZE CtBsJJNWoE1HpubAWiOnxJPxovdxSnTX+TnswSfsBzGtmJXp49Lr6/+4X9NRqVUAOSydTN6nyr1 zVb5DLZ3+nbQY/kid/sGGNtCZW/YoowPioWnZFSM4eENDVhFH1M1+la2HBxtP1xt4SwkdGCjcxk xL+dx0tT5ErYljC0I2/O56LntNNfNQQh57Ul7O8OzZyH2d5I1GJKntHuqiR36yZmw9GWYJmi+0w w6rR9lGbPFhJeG1lTPUq2ndTxbsyyEmRGuLHgcGROdLhj4OYBgUxth5rKhUzHvlH2q5v3ArrV+a lszt6f76zHr2KesUHRdyJv9l4p2OrJH+POdTenOQ= 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 5aa4c95000188..5c85964b36c58 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 05:35:35 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 5CFB331A068 for ; Thu, 15 Jan 2026 19:37:34 +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=1768505858; cv=fail; b=jrgDf1jfd53dd4PsOLAX6WjOSzL2rS1k4ruCQiIXqe8msnZK8q2tvMLw62vMYGAv3Oblesfferiyz19R2RXzni1Tj7VP/eSBaz7lhn4EVlnm6T7PCh30IKInp9XljvMOtIYMPbB/ZHK8QMEclLfVuvG0x2+AxPN0LEaynv6ulWA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768505858; c=relaxed/simple; bh=th92/kP2kGFULOK6YWuBsYJIARY9My7vXXLrsH1/Zaw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=UypoAe3PcCNH+N01oeLG5D0R4yJjUcpO9THn6FijOReJCg2Y4GQHYx1AfweASCTfKmsU06W85Pa+90NtqBsO03uwMXVNZMggvFVNg08XwYx/e5VF3AyZi+B8v4IYbIXy0prCAKAaPuNZA+kY7aCWRkKGzb24e8Zd8KIKFPcity4= 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=ofbtQADi; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=CAc6tQ2v; 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="ofbtQADi"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="CAc6tQ2v" 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 60FFSXno2753320; Thu, 15 Jan 2026 19:37: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=tzXAA0MEA1ZL+mClB4otrwtRKeL8YMgDPMK6HBkA/Qg=; b= ofbtQADiKa36UGzFT77iwvb74NjAlH0xbUGq92Wz92cFBaeYbyrVChSCdVU3VRm6 uCelAgbn7j0e4Ak4A0M1bmbyGsRl64ZYtgPlcOLdFGawMjjRh/Q3jojkhOizW6d1 6yDjwuhB6KzHYlfvFtWy3GrrNQInLa8hkAKM0BYQ2KchhvCkBX13snScuBq+VNuv GKuhcWLtIneDukGP79UEY8IL6ZfSJ1DhOod/OrbfBrHSD/S6XRw2dVV0BRfNuyWO vNsvDmFUMZgqQ2e+paOwgNs+NXW7BRHpevfb+7fNVoQWWYwu2aTz3bWv5JGAnmlb Iga7AThuTMQHdXtKqWB3HA== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4bkpwgrgdn-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 15 Jan 2026 19:37:05 +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 60FJP288004237; Thu, 15 Jan 2026 19:37:04 GMT Received: from ph0pr06cu001.outbound.protection.outlook.com (mail-westus3azon11011063.outbound.protection.outlook.com [40.107.208.63]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 4bkd7ngtxu-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 15 Jan 2026 19:37:03 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Zaq6lgVHGkH+WjvUHYBaoU5eGlp61xEmiNv5GcsvP5HjxZJhOOHjmVMm6Ra6aWPG+yx9SFAzIH1PLEsLzOxmWjZ+ls4X2nzqi5+Ye26xeJs/oNAlXHOx3f713wBSyvdgTI472U7IggZmw5dR3CDy3p4wpMropn4qFhe1Ci7+PEj1MMfh5J8pzDvPvrhfn6ZB7FaCQoW4Ndq37grkHFxIgAB3GJytE0VV9Bu/xR7oTdMvCVJOrblabOoqO7443eZbgmxBj4hnZrNPd3gsAUH0G0tPUCjCT59ahkHFibdOv3kcwnYI0KaqcMHO7p7PD9xN91zgUf77+ed455uCeSiSgA== 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=tzXAA0MEA1ZL+mClB4otrwtRKeL8YMgDPMK6HBkA/Qg=; b=BgrPARq4/tHdxSNiVkOzKk1efyPjp9dSH6li1kIanrnZJIaWamPGo8N84Otkg2a7z1c3qheiADGKLYf1h0DPCptBm/Rggxnhyg66VdBO7kKvMqPKGV/ncvQZR86dVAzUIyRgqzdT3SX+MiyfesHREAZKk9aWdoYksbtsey/xo3L2K583yd61qlz4s3d42wD5KBEU9grQlE0/DOB5k69ETVNZg+wYOvo+bNbsaHDCakY35KEFim0jNRIoJiJW8ZqZmm0lQe5cmghVPrU/cRPE1cm6pINZ22E+N9iGc9qU6i6Zp8zoVa6uIIc8gNo70GXEiamCdK1aBwBfmI+aJ+3JNQ== 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=tzXAA0MEA1ZL+mClB4otrwtRKeL8YMgDPMK6HBkA/Qg=; b=CAc6tQ2vuwYjwsA0VaH4lz08szfkiF+N/WP48s7gGEu7vLBd2gld7bgOQFPy+7Yxvu4lmgbCXzEaUcOhfmwGK233ooxP5ZmPjZs2FB7tkucmiTh052foEKIOY8C2FqjhjiBJWou1HXX49DQSnfzVJYq1iUyeHlcFp71tmK995DE= Received: from PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) by CH3PR10MB7703.namprd10.prod.outlook.com (2603:10b6:610:1a9::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9520.6; Thu, 15 Jan 2026 19:37:01 +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.9520.003; Thu, 15 Jan 2026 19:37: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 , "Liam R. Howlett" Subject: [PATCH 02/28] maple_tree: Extract use of big node from mas_wr_spanning_store() Date: Thu, 15 Jan 2026 14:36:21 -0500 Message-ID: <20260115193647.1695937-3-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260115193647.1695937-1-Liam.Howlett@oracle.com> References: <20260115193647.1695937-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT3PR01CA0071.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:84::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_|CH3PR10MB7703:EE_ X-MS-Office365-Filtering-Correlation-Id: 5557d114-8bf6-4a3e-fef7-08de546d73fb X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|7416014|366016|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?R4zO+COJlwbkqQON06nahznjwwkrjgPBklA33fIn/VGemGUO2B63qJbb3Sgr?= =?us-ascii?Q?kXAeQiM3KziwOTPLo3cI7KFi1kulqAcuVgCqnDyxgoR39C3yPRV2UMBxl2Bp?= =?us-ascii?Q?ke0KA3JFYhy5MAKyn9SLBGLYtc8me+uD22kCDUnsKPxQAzsnN1wx55LDpGD4?= =?us-ascii?Q?kOoGenBvuRUJQuk7rTJVnbd5LkIkC3PPI/Spi7dUFRsjjGDDefNndeHA4llf?= =?us-ascii?Q?h5L00cNC+VWntpckohzLhQAFXtTp2l+WoQ3xgwwxodULotRyLbFkIOb4W6XJ?= =?us-ascii?Q?5d2IlQ4xjyjR+2v0Em1blC6Nwhv/apwfyOSdWn3kS0650MmXCo/2tAKboCfB?= =?us-ascii?Q?au97LL/R9G9+dv1DNWFzRRdJHcPQ7i6wSKEICpCk0zNLLyqEBzDwTRYIUAJ2?= =?us-ascii?Q?QpH8LdXItCbfFcOR0oeZ9SEAg2MQ3brIg1Ld3K7FhU0s12Jpta2+1oNOytjr?= =?us-ascii?Q?r5BQBKUkBzO71Uls7vxTarlMl4fpim6WZ34a2AvL5r43coreR9h+6DBxB6GY?= =?us-ascii?Q?20hkRXtggpIVforMeHZMI6SbeprToi8UHyNWaFIivQO3oqXAZ5GzalGOp3sM?= =?us-ascii?Q?cgZFtJFd3Z6CIlT3LezG4bCc+7nqPKpOgECQUpQsFmHi3R/8FtQTsm2qnxTp?= =?us-ascii?Q?GJ0rxxWKhjmc0AUQ3ivivea8R4dw0D1QkRm9kRNBOqI7fFpKcteppNn3YUcj?= =?us-ascii?Q?fzldM/lTYfPxPJg8DRMkbGeN2PLeXE0ogNlpeaqZcUbiZ7tnFbDLvVoN2ehi?= =?us-ascii?Q?u/d4bgi9+e8OIlfMQT+bK2I5AEbHQQBpYGDpSWUL8CVK7nV1BQthFeC2hpih?= =?us-ascii?Q?+GnfVr5pcvzNrKxB4RnKVyKCgZTkBuSixbFS25ly2DhdYe6xSJ4X0F6cA61x?= =?us-ascii?Q?oa5fWRduJNQaHJkwcJeXV4VQ+naENBWOZpdaoW6QzZOVX3VvvPaQh0Gj0szg?= =?us-ascii?Q?C73SALXtA2+VTfvb0/mifkd31EKQex7C3quSQK/9w+QewXMmpox+GhNhlFhf?= =?us-ascii?Q?zGQ3WgkQVf6cEft26eNfHgnwZYhXhi6tIQBCfvTPxiEfvlztMWEGIV7OJ6s4?= =?us-ascii?Q?TMFSv7fHvCbE82/ww2eZ6X06LVU+aBE89uOrGXCvJXACzyZyGu0l9wmp0dQf?= =?us-ascii?Q?12OwraL6NNPeIvt9efyddOL/YFsZ/OYsTEI7hP5fOe7eTghjLxjYWguczV1v?= =?us-ascii?Q?zCR0UvnhvllLLo5jTJ3Ww8zGF/8Qx8cY6SEOHsI4CJt5mxFdXKXkifcL/Ken?= =?us-ascii?Q?60/e+iBGLBEnOltxzf0KCif8b3q5H+zRnblfAM5LnK9P8JFj9wwG4NeKyL0j?= =?us-ascii?Q?zkhWnrRgQha9g8SfXC6wfYuHqS+Ap6bDUG8q4MFpX2j9jxcGo+Wvt6wAOqh2?= =?us-ascii?Q?o087CHFekW8JbIrw53yL4q7pXeawD0Xoy/6YXVOx2tJr2trYonVA905PxcTK?= =?us-ascii?Q?TjrdC1lZpFOs2dpv1a00NiPRB8kasNFeZM/gPTu9RAXhcYt5vgsdZyt0MWr9?= =?us-ascii?Q?oWcyJ3w3IwqhZXk3KhwcZxTENl4YNJ5v03gdNux6eCsL62B+4ufdvwUYiiRl?= =?us-ascii?Q?oMtT4guGYmcGchpZhTc=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)(7416014)(366016)(376014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?FXR23liav2prJKQT44FgdvW4hfl9gqjmUaT8qOPtfQ/XtRPIVO3bE+uI6QPF?= =?us-ascii?Q?DcVmu+OW58PMJGV0YlF5/3e6I0YYgMdqqiz4BAegDkcjYA3dzFE85NtevC0f?= =?us-ascii?Q?OhuqGObRrEtXyuFV2i2nty4lrDh9O3kfmXE7EwGQg+8ZxlWsTZx6bBkKZcmi?= =?us-ascii?Q?TA2bp/3yh8bGemQqSQ8T7/t734Ds+nN/q93G2H2vBqb49vxLBdhUrU4ikAGM?= =?us-ascii?Q?kDobgXCSd5PdWlZrDlediRsNWGXG/22ohJdNRJntx5FCjlM9+6IVE7ck4lSV?= =?us-ascii?Q?9su+QaKfy2AQc9TaMXnZOT7qBOVuK7E/KD4oSjhfFa9SWtg5YSfQPeM0e3SL?= =?us-ascii?Q?1pLpnByQx0aw9wtALHZp0jvd8SSIUPB2fJGeh2fYh3rNvGfzV/cG6pkEblkd?= =?us-ascii?Q?Wj+m5xspU4UCYwonyL95HfmVXaPH7gweuiRYwosa6MaZaswWl+mWuKAVo5l8?= =?us-ascii?Q?qb6b8rKV/p65DNU2xNkUKlaIXZuyLXjDyFnmHEUo7JnlEE0MqCs54XWSuNPo?= =?us-ascii?Q?2Kwi8KBgkjU6brZY5EKaGFfbiTAgHoQdOz2i/iLX3CLBIwG3fDDLxV/zYSgq?= =?us-ascii?Q?I1tFleO3jzq7MUPBnVhzWqcrb4WlaEx8WzWedsfWpzY/FMfk1a1dBa5f8uXe?= =?us-ascii?Q?zSSX9fJVC2h4wM1Cz0FP7LE8vaU9VmkTaK5AcNNRFdJBgGQrUYI34m2LqMbM?= =?us-ascii?Q?UA5u2sDuAkmNihnrixkkHg48ec9k78FuBGkGtFdSK0tmju9w1qyBNhRC994S?= =?us-ascii?Q?Vdz4plMLwPZOP9vWu9Q/NHzCLLnY77PzexiigJ1YGDeLJY0vITUD1I6dMc4w?= =?us-ascii?Q?AoG9UusYriy+iWPoWcJwI4PUnIwiaQkyZovbC6Yuq0fbOacb3Rf1M7N9Dzcn?= =?us-ascii?Q?p213v0b2nwTJ9dgcQ7AHoQJqMJgjjMAKi9xX83AsWK4dJ4V8rh7NfIrHicuu?= =?us-ascii?Q?49UK5bWVjC+kNOvfbuY5jqX/wqjzZrkJA2V/0YI8ZPd2Rd5rHov8o8LRjWk9?= =?us-ascii?Q?nt2OayolVcwdYRTd9JLKnSjfkxka81VSquztSaAYQ/o1bfp/taOALcF1F3GH?= =?us-ascii?Q?xWz9uJe4xNejd+znfzdtaB6NdYMA7OpWE8ShxvOhIasrj8W9SaBUEbQUhok1?= =?us-ascii?Q?mU7TUHyyc7+LfT8m/+MShDJYsOWwFpRi6jD7inJD8H+XfH8m+WcQCvzJS69E?= =?us-ascii?Q?t2aoBFwX5CmhjXpYm2ZCZ1Kskv7VX0I3prg/JxwrxZjN1wRyHdjeH5r/zGyI?= =?us-ascii?Q?BFX7c6jk0o0cuC/HLP83lLLuOOQSFTvGHxEUeJIPYG5U8hhhRj6mXZuiE6F8?= =?us-ascii?Q?ZOq8uyYbuxMjYtu++RWEL86kapd9mFRmBBBX+c5UQ51A7vDr1w6VR+JLxmAK?= =?us-ascii?Q?nRa9m3v2Pw64TuVdSp1zEBeZLVKaWKbBL6V0dTOYK8A5eI540Y43GjWhh6GP?= =?us-ascii?Q?pPHxqWmdJBBvqn4VKk88FwBHW4V7kmwK/tazh6Ba1VB0mB6NIfB9UQtiVDgj?= =?us-ascii?Q?j8FwtFBRoi9WOkjpOGpvxkw5vZImExeCmRIB4lyeiejgnirjui15v7frYCvN?= =?us-ascii?Q?7icPKgtFufOqEO5xYRenimCckcvEjSRCZWskw+/Z/1xLsQYOhnq7WJUhXU07?= =?us-ascii?Q?FuM1pIXk0jfv/QKoW0ZSACUzzvJ6AEJIX3/gb08qT7dY14iwt4HE4GpuFDLH?= =?us-ascii?Q?QVV7zR9Geos6zMy85zLSvDyB/xYWNJbRAjefph7ZQ7R2CD5unGZQZG1iIlJD?= =?us-ascii?Q?g7acUcNV2A=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: y6vzO2UzcufeSicTyUlm1ngmmfiKlK4Nag1ciU1OHwjddnV3Oz1nQzOnYbMD9gnNuQ/7PO5lizNsMBcgOn5kfKTC+hiWv7pKBvSvH05/S+t6rxjdSnMo0FoL+gWkyOg2vc5VLJHvO90VhvFLsgHG0354FySMbi1Yet2zaEG2e5bsVsyRMNBQysZ7PZoCU3QZQPD7mauji+cDNGRrxgPvzIZxCtlAPpoSTLJK8XpYd2CydpPgsnePmHWpr1loJg+LhTrVZD8v99yYRb++X5pbrjCl0Hh9OLbP5bM7pNHwEISpMdXsrQXHK2lsHB/SbYJWpqxlM3GvoQ9bw2RogD7acbj8qmGxCTM5CLKLEUAdUkCydPl8IrO00l7AzqgaEVpO3BB8PcEJdInyrKj+h9u8uIty+Aituzdn5G6djw4PLAfk9HeyVbtXJ64GHCjxV1o8YjdXm+AwRJT7Tr8yIxOjG26vbf1aLI1DecIaH1PmacXy6ZgWtHZjRxnjV6lMp5XaJzEBn+bAbe0EqkIdByaalQqAVEQiM3X+quyg/gJ9vBGH1nREyU6ROrVBn0MBXMcbqNRoNGbf91sYmQw9SG3DD0uSBGadhmlLuxmeQDTPrEk= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5557d114-8bf6-4a3e-fef7-08de546d73fb X-MS-Exchange-CrossTenant-AuthSource: PH0PR10MB5777.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Jan 2026 19:37:00.8418 (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: xLSLqruRehE1dvtzDfySovriOG9Awn1zOf1KvHs0Be67l+IVggJhr7U2VgMozVUFVXAxhEJ6YRs+WO4I9ae6Yg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR10MB7703 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2026-01-15_06,2026-01-15_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 suspectscore=0 malwarescore=0 spamscore=0 adultscore=0 mlxscore=0 phishscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2512120000 definitions=main-2601150152 X-Proofpoint-GUID: MopFpbHXuJ2I6yvZSVTeh2ugajCfyzXH X-Proofpoint-ORIG-GUID: MopFpbHXuJ2I6yvZSVTeh2ugajCfyzXH X-Authority-Analysis: v=2.4 cv=ZtLg6t7G c=1 sm=1 tr=0 ts=696941e1 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=_QQW3CUrkSdKJg9byCUA:9 cc=ntf awl=host:12110 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTE1MDE1MyBTYWx0ZWRfX0ZAyjW2amwuT pYQpr2UIXx/LF4TOUtn2NDNdTlyZVnymqhFeyp2PqvmZcgZvW8WV+3Z7SWfHmHN5YZMFdIBJX7m 54gvOycLMezM8DBA3kHbKX/mru7djDAaElUuvpVBSHiBdlueGRhLzVJ98u7Eswska4m8AQB2w4V sPc9WuNu7URwlwF368pJeM4Xqc8E78mS+RdZNSkPgc49WzSdRWR4g5yRUCug8PkpFPuSf0UwCul yYZ/ZXd895q+KYFHp5elV3xObWK6CtynHUEgrdNq8Yl4oSfzMxa5zYXZpfzf1khwmrSr+oh7q8Y mRTqmsqrizrncqQbJc2cSoZNQzqQHgmATY8sO+WQkUkAxlFIetyN4gLYm6zH99NCtvlX1dP2ZLn 7mSGpHFeeMskboyZSVJV6eh4lqmDIkqP1XdWmGwEX86uBUur4wj1RD42mQp0m94KsQtsA/Yg5Y3 zh1XGDqQNLY3v5Ub0Pj4qTzT9pS/JrGV+1bb+Hqk= 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 5c85964b36c58..5cefd85a04766 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 05:35:35 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 A008D31A55B for ; Thu, 15 Jan 2026 19:37: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=1768505859; cv=fail; b=Rbti2dHl9v0aI1UHzq4HXfRPV5po+Mb9M1L77x2OI1Tu/blAf8PYhcnVsGPpgfYDO0A7/H0gN6UfwpAzJ+9KQS6KaY6NduFwqXsq7/8deJH1qXq6cqVXwSmDfF6BPDyowTtmRuh+dD7IoY9NU82W6ypdVJhHe5H+Wv5KnE8rrBU= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768505859; c=relaxed/simple; bh=xqChXOT/WpFCGEh78YrhY5YRuxMKEXdoBa9K66bw//A=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=I/3sEGfVvzGhzO2BoC/VbVW5nlA/xIbebMJk8luGFaLNHbrvVgmC+cz05cb5TzQi+dHi0YPuDpSCsYh/qhnC8RLIhRkI31vDC3mBhtKtme3dcGsj38neNzlTYXkOCmS2vr3sP3oiZyfMCMd7CjYyWxioOuPXyTzTkxdOOu5pPpk= 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=K0Ctgywj; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=K+FoXUXx; 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="K0Ctgywj"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="K+FoXUXx" 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 60FF3x4V1295786; Thu, 15 Jan 2026 19:37: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=aKWESwbdGd2gU8YMlrib12CN9Xs5RivGZ4b6435VZkc=; b= K0Ctgywjkj0rLNfpVBHGVvKKPm8a8KD5tep3w/pp8vrAtbppIBsv6G3Yi0IUzoHe /Rq9LgvRqB/KqcuhD7NU8ChDxmzfhmYSpYqMxJCxdc4A18kfK5poRfB+7mIBMGBH Iy1MLyZyrN+7jNheKdytyrCtVxzvjr+JMZwNIq9ii8DygwSNSMNxXxK+/RZup1NH rw6oX0coq1dkNeQto/eKOyvb4B2GzEfmUvQV3Fck0n4Vbte5UpY/EsETNeLJAhZ/ ZlC4nKfxqZX0LV9cQla7H6eRW0jIw8aNBd7hng6t2HZxhH3DeXOH7LNa93nT+V+l TvKYibmjUlBfqdhqKRmM4w== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4bp5tc3tsw-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 15 Jan 2026 19:37:07 +0000 (GMT) Received: from pps.filterd (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 60FJWfbQ031014; Thu, 15 Jan 2026 19:37:06 GMT Received: from ph0pr06cu001.outbound.protection.outlook.com (mail-westus3azon11011037.outbound.protection.outlook.com [40.107.208.37]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 4bkd7ngahr-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 15 Jan 2026 19:37:06 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=aLAJeK/QsPCB/cEKEVUxhSrXZ3xpnUUCy2kNUA5Pgob9RooRdKI2rWGWS3AaJbm+awnsA5iicA/EZnOWSvFgAw1dn4H+Swd3MQoTgNUK7+yW06Ub9sCI7tSD7ZcLP0s2iea6cHnyFXs9CCuSE5LGS/N5LUEzvouBgh3V1TBUzSUcmdmK+hw9XEANiYuj64C1eFlX+YDFKRkCSGhxPCXbH97/IRQ2cIF2wFVG392VJzY7htwQyrkVm9d144nnKhvZe5lsGf7WQ2VF/fAM4uWMw6GRfcjW9OfVdGFnkQC3g/CNxufTaLu9VnzJFHZEVBfB6K9jAE/GMikEdW8jE8nC8A== 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=aKWESwbdGd2gU8YMlrib12CN9Xs5RivGZ4b6435VZkc=; b=tLTiuoBcymiYyNn3EZDMbrbQsHcy2lKAbY+BQk95tDXgAeBUAixm6CEpPNOnAGi6aSy9U/of6WD5gkcOvKSJTK4thGwHhlhgOZSO8PWhOE75bub1Oao0Vq0LdNHAFEcSCkAQkhdUWXZHHAUlzZy/VcIOqRwGTz1OY/zdk7ImUQibfc9eXbgQ/99HZBU0eXIEziBmdKakQg+1Y3Q/2FmKh1JsUe2WHD3159qM6Y+ne/ikU7NnofOOg3DhtBCLjfkfHOQx2K/AAM4jqEMx3YB0T/ubgpbPqm6m5zSzA+aXTRLUw/kSPmt7OqXoe1V7Sb/O/zA+I1xwviY62DdEW93Hsw== 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=aKWESwbdGd2gU8YMlrib12CN9Xs5RivGZ4b6435VZkc=; b=K+FoXUXxaTgErrcO1QQWQHS1VTpRMHOpiwjGDMiU6O6RG/WJRzqjR8ULymPZ+CiiqjepOBUNMtCBwsz/nbt3EFz/OtyE3wWWPPzwXLcMj8uhlrSEmb1TQFUUOZAZWDkH5wgHMv2fry3jAF/2tx+5zYzsKDzsHgEK8DA2HeXi/9E= Received: from PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) by CH3PR10MB7703.namprd10.prod.outlook.com (2603:10b6:610:1a9::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9520.6; Thu, 15 Jan 2026 19:37:03 +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.9520.003; Thu, 15 Jan 2026 19:37:03 +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 , "Liam R. Howlett" Subject: [PATCH 03/28] maple_tree: Remove unnecessary assignment of orig_l index Date: Thu, 15 Jan 2026 14:36:22 -0500 Message-ID: <20260115193647.1695937-4-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260115193647.1695937-1-Liam.Howlett@oracle.com> References: <20260115193647.1695937-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0497.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:10c::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_|CH3PR10MB7703:EE_ X-MS-Office365-Filtering-Correlation-Id: afd6cf99-0b17-415d-354b-08de546d7567 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|7416014|366016|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?dvISO/PnS5MC9kWbUu1ZY/5c9aLDOOVChJJa1PAa/4l5ouAV4ppLbsKUMN1O?= =?us-ascii?Q?YxS+7yor2l/krGGih/O0NO8qb1XJzPL+FPFoni6tzI78yNEJX9qTQB0haUNS?= =?us-ascii?Q?WUkzsqbp/0Htsak3dAZHAnN/doGuJjM1Y3DrRbEbGgErlYuHD3ODFsf442Cy?= =?us-ascii?Q?w0Jk+A/5lJZo2tU7QnaMLtnTq9YayKlrfCyPTSht4B8FXnmvjxy7VVJow4dy?= =?us-ascii?Q?LHUY0epokFL6zeTZkKxuYzIu3GN/zPvE7U5QvSlGfzMoag2eZlObpER4yK7W?= =?us-ascii?Q?DwKA7vIjetul2uWndEU06PnxLmGSzDclF4vP3U0yXbWimB6noQAYYsxsnibe?= =?us-ascii?Q?X1KnYy7SmizdEAtQ4pqp+saEXakdpsnvR6gNtlsgvnpo0CN72apIy4BOSYwC?= =?us-ascii?Q?lvDg2vVg5TOKrsq6cPA40ndDR0d83no58aRFyqfdU71T8JPzgOlcJZjf8tHR?= =?us-ascii?Q?wfwRT0i7xhUs6ztm/qS6f5ZsPoft8cvyA+p2838g/cMzO18eEtuvdgmcfzjR?= =?us-ascii?Q?4OyTR2H7MNlvZY/pwCSO4kwKn/6p6vAZzX3CbF4LOdvYkax7rU3glshfcxc6?= =?us-ascii?Q?ao1OtGvppKmANKWHbE3V6XYEyRX3QqX+a0X37OJTyJp90oxuEBiUWMuHRKCD?= =?us-ascii?Q?n584nnBUXLGTQith4Br6w1ASBJr/unxBAJj6P5M1MY2iiYE1nESE42raqKz8?= =?us-ascii?Q?GyPQO2pKYCZw8l6yvDz0eMg1IWzlmJLNKf4J6IvHVJtYPVLbX2vrEX48kZfl?= =?us-ascii?Q?4Q68v1wWFzO4lPb2BuH73FaYtIZs4b2TCYbkJ4EPCIAF4CFNu8vXR8e18enj?= =?us-ascii?Q?qc154qupFTySzh5u58FzR3RGIHkwFjCeMBnW/41iFihBLQug18ZMmiiTNkjv?= =?us-ascii?Q?vVZlMuV/wSqz7Bsbmsjd9UNYQY2YTAFozcIu7YYcjwFNFNiXixpeuGnFoi8a?= =?us-ascii?Q?zOTQsQPIiAsS4f8Teyn1jsa1DxuiDdul1Mcy2mKmTuswlrFE4EQthgrKE4Dq?= =?us-ascii?Q?NXcjfE+oTp9PCVfVtQ2HvKgBDh5XycCMyeUdVbHJP+QekCZSvlCsD9mHghfD?= =?us-ascii?Q?ztsx9FNX9XfnIHKqSwIQsYPrUREqeecR3lGziek5kh3r8YBcXzuQsayiYhEy?= =?us-ascii?Q?Ac2XB+z5JnxX3GQyRYLBH0AKn/VKkCrmYNCd8zBcP1L0As0LcyZvyupjFyNI?= =?us-ascii?Q?IZ/j7fwJUI5vmET7TxqG5C9a39FVdRf37dJBkhBi2bimrl022reE3sQUrczw?= =?us-ascii?Q?yai9eX0IMYZQF8hh+yQdeImwld2Qt96Ww8KjrnJi1Kuw7vtexCE2Asw3N8Hh?= =?us-ascii?Q?nVLvUtmBg7uxXGaEt9VuqPqWRS6zN+c2wGQPOkg5CoE8VI4GDK6aQ/j0Q98z?= =?us-ascii?Q?OJUDhYSlERxebSo/OcShCW15yM/byophA2wjpyWuRV0x/b41blDT+CIxWz+3?= =?us-ascii?Q?1R5KMYkb1yzgUbvdYwlJI3AQ8hzV7wJJYARnVyj/e3kWZECelmbDf1oVO8Bl?= =?us-ascii?Q?elRS0rY8Bo5Zx52TDE+cq8B4M5MGM0tLeAlrB6LeI0voUkkfdaV5G8UoGhR1?= =?us-ascii?Q?Sgcory30uKIIdDe+qOA=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)(7416014)(366016)(376014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?R0MqS9mopySRDjB2rM8aYxyVAdz/AsUulrQ9ptH+ensM3UiPVIy/Y9o+adMI?= =?us-ascii?Q?TTEDmP9crlODVQdGGpSlr01/ht5zWIsxrR7hRqYjhG63xN3xWy7t7r++HIlD?= =?us-ascii?Q?Tt44zcbqlOtwNmWspOZWXbi9RZXkA8kjdIQHxP/6rkuhxc+8NhTfWLZkpYNF?= =?us-ascii?Q?UIzJi951cmLfbsBgC8XxOUwpTTdgSk1jzoWUHs0rY2wmDcLqXF1f7VVOb8vE?= =?us-ascii?Q?XW4OZWw5axUMw65Rcl22VjuA6I/kfLq+dMCr658kk2Z2yZPEbU0O+Gaz7iiI?= =?us-ascii?Q?0kZxNDgoryEepxshxOC9psRuQmUzvCIcWeDPBQNwVdkCTZG/4WDBvlt4IGGk?= =?us-ascii?Q?aP48w0JLn/gmOExbtAqGPFJwZaMzUeUQB07DzFleQskkYg4RNhy4TWcjMb4r?= =?us-ascii?Q?LWYl0QLRSCQlsXKP7crGs/6/JhhFNZB4agZBP9BLNZIm/ozNrcLLlfavdtNn?= =?us-ascii?Q?+rJ6mlwOi7BhQGQ2TFggUWMpdKpQY9CCwAqRkEoSR+wjWwXTnf4u0P0TB7LN?= =?us-ascii?Q?ks65StMufRHJ75uDeweBzLa6+GYe8dUnsJngDUSrWeSdlM0RRZLvsRSf8d+y?= =?us-ascii?Q?nMl6zMe4evMh4vPYW3VNRozEEntrK2+QDY26fuNHP7k32GYkDp2FMCna+lOF?= =?us-ascii?Q?dIB6m+SISbMfq7nXbPE46xlP1X261KkK68EMK5BAKy16v6vtR+AP8prfVTA6?= =?us-ascii?Q?OamBSSf77Lt/rShqHUALCRnUmCQ3TQass7SqMyY+iLsMGVduGDZaUvYKV+F1?= =?us-ascii?Q?AFDrUrntgQ/JwSpFiCMocLGnDUHIY5PezV8wtTANeiuBvv6ZBia6K1gN5Fip?= =?us-ascii?Q?MZGxSfI1j78Sr6UDw+DtrFZtCEmfcO79iVc+z+I4hwLLvabeE76pg2MxcKkE?= =?us-ascii?Q?FN/OXXYT6/jsBqWSzQ9cLxFhUNqAxM40ix2zqjV9q5r+5lVaqBjcGMAqswH/?= =?us-ascii?Q?QQ2OXfmH5HLFqBYKvH+Zes17AxoI6GI5+Q2cJkPXtncdRG5ttYk2qL9xl3ja?= =?us-ascii?Q?rfOS92UrUyVGqK7NX1y3LQ1m1+BLRB/eTElYu6AQa+E4HsDnsCsLxvtTC+Ma?= =?us-ascii?Q?HFfbwIJ0lTrqpeKKkVNRKImMPdCFidWLdK5DmKCDR77QwtkQULTa2A955li9?= =?us-ascii?Q?BCSmjhafpgFABd97BMGi8CLP2GgFFFfZluNl2P7mg7sx1a7/dbTfL71ftKWs?= =?us-ascii?Q?0Y0lX1ttMSlAmonfoEXGqmAYM6IxmLtIl2aoz6dKLYpVfDLlyFTQa6TMj5EW?= =?us-ascii?Q?9ngjqf4PfisGrPrMBuTlTBgoUIwjA3nXoQ3MYcHOoE+EfQkZyK+PYelZd5kl?= =?us-ascii?Q?icneOUYKmrEohUadnwol0PIancM2olzcTn1AUlMDUbhi1JjF9RyLLXpzgSPJ?= =?us-ascii?Q?RQn8q+spPmr0Xi4IsWDRO3iH6zGmrmHc/uPj1paDmw+rrCogFeYVnKbu/RRN?= =?us-ascii?Q?GFTpnC9ItnB7XT0TnLStaz7PB9aKGK/RXst2DYwiGsE6k+9q9PPBlAVumSa+?= =?us-ascii?Q?YpfzEu/PjiHDJ6qX8GKDMkE4tc1xghseIaPGK2AvXepCfJhSIREA82/lfdwI?= =?us-ascii?Q?nW3iDScE52+LvcUcWR9ILsOoRotDZH1iJ4epW92np0fJNUmPz0lul87sYmdP?= =?us-ascii?Q?cbZQ0+4Tn6v5i6Tb8/omGktsYrgbIJfuF5py5cicki9S6fVgDyz54NRRaBAC?= =?us-ascii?Q?f4fhhRbyFmyaWppv/hv684mJFZaFfEuliMze0P1cf+RETu2tQUsK2m5yAbc2?= =?us-ascii?Q?Om0JpyTXlQ=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: +bkr0xI+pVCJ17wktsv6632+cgfZaCb0qNlLuVk6jOtKaOd/jcZOJ94hENc680+mMBx7NZHE9dZNChmGVf8A3ZIiO9waRQzQONKsQYnauwS2HtdcqK1JpbMA457HrSQYdmsgtExjvm2NG9FmR0t3qFwdiaUA01asFnZCiZVvDwbUcAsuddnFrr0pebCiV4q0uE/7b6YfvWAhKf82DCUac3FDJDEwCALV4JXoRJTel7UOiFBja/v4PVOAmx1hmYfqiN06xTMvUPVawH7kK2uYPoo5/sTwv/pcuK2mwr5rBLKXfKMTDykj5RJvWnLkmJHjT6szqh/J2veUDgWFQy4UOAN+raUgF6FSAMFU+0j5WbeybsE/IxMGOySWHsmtHl80joUdrYIdzd1f4gNrL9ocKZQbmlu6tQdog7XeKYF+CE6Z+uS33a7MKpXJXLclckkZ+cDnJ+/v3Y6dM5JUEBrAX8lA3XKNa/Q+Bc2+gAPlW8yPy4c2KMfS32uBk2QREecu7auVoWWUg/F+P7Gx4LkGiYiMcMQJ0+Mfq6baRkStoVrgMWIhHV78+kWXfh2mmff7RoaJ+joY3pkFXfQqFiqZIXUbsGpMoI9/olreGuvanHg= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: afd6cf99-0b17-415d-354b-08de546d7567 X-MS-Exchange-CrossTenant-AuthSource: PH0PR10MB5777.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Jan 2026 19:37:03.2347 (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: nWjtlufuAP0a6mvoz++yPWbArWs/1qTAvdNabroJ4IAw4BQtn3BP8Qc3RujSYLeh+0Cc/aFGkqz18yMHS/ueBQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR10MB7703 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2026-01-15_06,2026-01-15_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 malwarescore=0 mlxlogscore=999 suspectscore=0 mlxscore=0 phishscore=0 adultscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2512120000 definitions=main-2601150152 X-Authority-Analysis: v=2.4 cv=XP09iAhE c=1 sm=1 tr=0 ts=696941e3 b=1 cx=c_pps a=zPCbziy225d3KhSqZt3L1A==:117 a=zPCbziy225d3KhSqZt3L1A==: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 cc=ntf awl=host:12109 X-Proofpoint-GUID: EdH-Kw3QZNiwTUuiavqYMlXdrSOgR93b X-Proofpoint-ORIG-GUID: EdH-Kw3QZNiwTUuiavqYMlXdrSOgR93b X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTE1MDE1MyBTYWx0ZWRfXzUuLeXGU+ORz Njl5MEk63awZOvdct1eWsO9WjBdW/EZW1I6jhgZZjR8AVcagq8R6GFB0ORNBSyur4O1qvhbmZs+ 62hjrQMsFqa9UhTsciQF+QksfbMF9pS2wL8wOaahIiaSXtD/0Ym5+cWeHccTx1biiBMErRrp4+P 8jD0mir7GdoKrY3FLZyD+Xqxwgt6kXCaxgzvS3M8TMRdz6PboDqdpAfK//nxYLNulO0KrdEt/eR HXBdWlPlUzUkA1HKYZRHCJ7COUx98cE2NMCHi8FMlpMMN4zJRm6hqWU1NW0wzCnHioRZRc0Tbu9 blb0lBXU2zGONmht/P0DOxFDyM8o9SvDR4TpKo5Vf3t8k5tJYAREfOdQziqBZLU3kGgO8C08/YY koj7TQ6YfCKDepmMHhscPSyTLUrQBEx67SSbFG7Fhaif/9ZAXPT6YsonSgXFf1vDdPzFErtU8Ba v0OkLTZPnuGOxlpz83l9WB72XQwlZ9ZfArcGCZHs= 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 5cefd85a04766..5d1dacf95f718 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 05:35:35 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 CA0DC319848 for ; Thu, 15 Jan 2026 19:37:38 +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=1768505861; cv=fail; b=ksp0LFuZ8P0tAfGYdlhfDaWAE/8d5dj2Ju203MHA5tucP/zbJbnYd7hntsP114bsSE+r/WW1KOeQUy6b892lQ8MUQMpdFEzCerqu49CZjxQX0KyaYS3pk74EfcQUDcdhLC9uuBSuwGHKgahRenQgIFbob+AICE3m8kImSyQxr7I= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768505861; c=relaxed/simple; bh=0iBi0D6uAUj+dp8INiECvVleB4gHe3XfkKNxmBcy4jE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=M5WN35eJHf2ibCwfnlxW37eBbt3Ro0XSdjOpqsfuC77hh7MUIzGHnQFFatIP2oML4RUCBJb5yiY+9pt05QXkD7rJ95wr79b96o6MUE36jBitriuJYDJYNcIVqDarTdH0BpwGQFgmgnE7Bc2nF+qxdSkejaaaVT9PkDJFl3nTIpE= 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=Epaq5CKC; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=gew/OQC4; 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="Epaq5CKC"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="gew/OQC4" 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 60FE7VOH1295689; Thu, 15 Jan 2026 19:37:10 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=nHDeQa6VTyK8A0vOM9JQVLu6IdrAHZaNehx8PG6pdPY=; b= Epaq5CKC38Uq5qRDFkGH0j41d7cKAxleqzA1NCltZeK0iY/PRInnzk0IiSGp5iXm yiVNQTcdVUvTW2whZPS5qoBZqeje3aiWuQA6dzRYuR+SMvBqgKP8JWlmvn2iz7lS xuUNG3LdJmRbALv6forMg9jY2SPtVDr70u3Dt0X56ncEqPyyVgAPZfUO0RvnEnKU pZaYxxI2faWpf8kbCRUHrXtL9xm6Wvs0xHx+fiXzquPlabVLvOQOP1oOIyUcDxy8 e/B0HBZ/R+B4pKRW8DQKNfJMpBoej1ol7/O2sYPg8El0ACBPcZO4GT/qTJExRwVW /rkcaIBwzOtjcpYg23AR2g== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4bp5tc3tt0-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 15 Jan 2026 19:37:09 +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 60FJOrsr004503; Thu, 15 Jan 2026 19:37:08 GMT Received: from ph0pr06cu001.outbound.protection.outlook.com (mail-westus3azon11011008.outbound.protection.outlook.com [40.107.208.8]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 4bkd7ngu1x-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 15 Jan 2026 19:37:08 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=zS7gp9Ten5qm58F4iz2mVdzsf7oE+db2JqI92YT7s3clVqhVMrP5AtMqX5x1kI7TOSZUvK/YijFg2RQC+gLCzCDkarje3ZHZw5TuHUaRae5T7fDqrRk9JDAgAM2QhhcBEDuVQg7+MTtu6V9WJBIWGBGjPuEwqD+cIDXHeVUoiE3owfhHZumfpBKr4T6H+7fbOlznNE2qAVV1bI2tpy7EVi5CPvCdSnKxII6IuItN0B+2YcFg+rXracVOuGAZ1t9yzMFNq4N7Kizs77FZQXjAcx2poGWcq6H53hkTqG9brMzhyGT+crEwsbLOIoxTHO/hIKI9VKBv+wvBWGBUom05GQ== 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=nHDeQa6VTyK8A0vOM9JQVLu6IdrAHZaNehx8PG6pdPY=; b=mUN1xjukmd3lFg592YBH1Ng8GB2BdQP5OJ1nV+a6q1ncwL1FxKa7KtahTOnfWOKXpU5E/3ypnQkHeZ76inhwaA+pFtUbFCuNvUHni8m1jnrUKRz2olcvu5TdOjm4a8BWCoSxkAMU+50BIUxuYUg85V+/A52qEMGcBjvI1ArQcvvCFzSVHIRRYiCGWg5MS52OwGtORDoN0OLORwZajpzqEBHKLjHLXbhmpt+tWeKavtLkD2T2YUN0sK407K+SpBhPGu8IqxJENXrSJH+tUxXFpMW24aEXqg48S1psrj7Va055OO6lx4yFaKvis7wnzsl+qOUZqugIJW9mIzow+MY4OQ== 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=nHDeQa6VTyK8A0vOM9JQVLu6IdrAHZaNehx8PG6pdPY=; b=gew/OQC46V/b6rBh06c3CiXZ7l1CxvYewdoDmvHAU1N4nhvLDOvHNBWIEFkUHbrcs6k47GohgTtNUNb3W8UwZEKOrSzWuH1AiuUVjfRyaHi/0EOv3NFnJBeO4Zk3Q4d/FeBCaqfv5+3ZwXqbSXhqTpvWtgDTvFaVt6MiXDsVK5M= Received: from PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) by CH3PR10MB7703.namprd10.prod.outlook.com (2603:10b6:610:1a9::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9520.6; Thu, 15 Jan 2026 19:37:05 +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.9520.003; Thu, 15 Jan 2026 19:37:05 +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 , "Liam R. Howlett" Subject: [PATCH 04/28] maple_tree: inline mas_spanning_rebalance() into mas_wr_spanning_rebalance() Date: Thu, 15 Jan 2026 14:36:23 -0500 Message-ID: <20260115193647.1695937-5-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260115193647.1695937-1-Liam.Howlett@oracle.com> References: <20260115193647.1695937-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0180.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:110::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_|CH3PR10MB7703:EE_ X-MS-Office365-Filtering-Correlation-Id: a51455ce-a9a6-4cf0-da5d-08de546d76dd X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|7416014|366016|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?A81gtvS9dX2ZpilM78oAJPKAhB/viDHuEKe++pdjRKAfwlYBrVIgCdGcK6Pq?= =?us-ascii?Q?ZpAV5f3Nhd26GuSaKKj8E1MjKuCH+FPD4o37Q4Q5pH3NZ0X7Ag5gPcqRpXon?= =?us-ascii?Q?UPZa6k5QEO1g0vgkFA1IcD4w8jTF7ZZahw72BHtP/ivnDy7ilod1+uhZ51/G?= =?us-ascii?Q?lRS1QEgZfN3Uc5dbm6CPsm0aXhXFzxDOaRx3IJjLhGGJQRE2+nahA9GPbjj4?= =?us-ascii?Q?8c5z42JljlIJ8zU/LyQELeRtYB4GVzg/eHC6y5hnmq60Dv3eDRHZ51S2RQgV?= =?us-ascii?Q?73LkYSyrzyleIvHrDlTFIy90F4DR6XRg+UqtK31bKSlI0h8UK11thAkTVOqC?= =?us-ascii?Q?cK5Jjb6s2MWEbI4wmiixBIblwdhPyljLhN2cjiam2l3XvrskDnR4EPsHN1kb?= =?us-ascii?Q?QGHNfxutSua8Gbqg0zg53fi9cdUQR5UVifoBBTM/LfwBt+qN8xC49YyflxIe?= =?us-ascii?Q?DtE811Uvwm0JdCCHUoxTelDByk55NBdVMgAaNtFRcLnXO3wPjGhM/aQ5oWW4?= =?us-ascii?Q?riUBsH76GxgaH/5+tKZDq98peUgymySoabVdR5YATSdcVahUp011hlqjTE/f?= =?us-ascii?Q?YN5t5HCX/o7niynleAnQ7Klk9Q1khJC+mxaooHIuTStDO+0nzTw6MZKMmIQ9?= =?us-ascii?Q?Qgd1NEO7RPdZxzyvueP6x8yR2FZlCvyk4MjJp0eQ91EEc1OnT+VrWdlKmscT?= =?us-ascii?Q?PTVn/YOJZivEPdfhwrZ88Fs+MCdxKuw98NyatBHxP5Fcbnu+b8UbXoxReF3k?= =?us-ascii?Q?T3A3zHOAY+wfB4/D6oRgu8BGvghsgM7BpM0lMYIxpgBmufM9FcCGdMfM6dbx?= =?us-ascii?Q?r7aUQTDIaCBNauEyDs9G+zZ5TDbeMVSN7wx27rvISGZr3Hr+qFmxr3nnf3vN?= =?us-ascii?Q?rZjrabnMaou5fBhTtJSlKTrqWRlT9Yki5P12qmGsqrzSIghUREKboRipxbLt?= =?us-ascii?Q?VX1UjhHQo8br2+sRfztJ5wQG4C1eXrDNPO7ussa/Y/KdZQC4iGUE/TFcROFw?= =?us-ascii?Q?BQ7ipwNRKbmoyR373dhObG8tQhIo9LBTXMKDjlqCF3ymjVybrQy6RoYCuMis?= =?us-ascii?Q?3TyObsRzhzLzyZisg5KrJieg9iwcMzSgZfuWSfRY9eWqMYueBsduUo4ZllZk?= =?us-ascii?Q?d90157bGHjVG+9vQrT7oyOGee068T1wcNatJzzbfxyjqHnQc+Doy11z/wB3Y?= =?us-ascii?Q?cGXoO8N3sCuiYUtatJYgZMGaFeIQTSxQSQ5VEEyziQfa88zgmM7xSSgiTnmc?= =?us-ascii?Q?65aZUFlmAbJgJ2MguBHLUl3289wdwa9akKk3fU5M+nlrEcmFNOARySFNfn20?= =?us-ascii?Q?LbOozUbQAlIsVBISzEjkB0kgarApbQSIc/Nrku6pBl2OPXioYBOo68fx5jOb?= =?us-ascii?Q?AK4R+h6uKe0BEJ0orXZAxQ1ya51yz8YTy3UKhou18NxBG4/Tz48NOjHa25a9?= =?us-ascii?Q?87HHekw7ehP856qHLIaDGRcDz4UV6wLk2qJ+MuqyMj80f6pKBpEpKZJCHLBi?= =?us-ascii?Q?dC7Qy5hLpNNPjPOyC3lHA9BtdPsTtzsZyQ+ttvtuRNub84z2XPqMxfy4D6NQ?= =?us-ascii?Q?wN74sa0bh1sYrDrDcfo=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)(7416014)(366016)(376014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?F5W4cpjYQNpL7dIcUzWp+A3/6BNPd3mOdkFUB8WEoEzILIaFg7ds/xf//j/E?= =?us-ascii?Q?L78O57yzEz9Zl7VekeEWiD1EB+SaAlq+gPHeN5at0HBFYRhPgpHQlfBm51nL?= =?us-ascii?Q?H+WokgUmCx0nsQedfFiWRSJOrROkOpdYqTK2XzBl7B84Y3ybWqMNHB8AzaTP?= =?us-ascii?Q?9zhJeCSQMYH4LEU02SultRTitld+Y2ZfLbbl09S2yVx2Ccf5NAtouJxV/MG6?= =?us-ascii?Q?SD+yADjUKEUz0HmP2aWD2CW/40DqXTjWU1xAK7qgYoA4jhYhHfOc1aXLRC+f?= =?us-ascii?Q?QWpD5Uxqq3nFZ+p6csNVxfSfyx1RrQPOs85gQ6+s3r4qw1jq2pncN2nTwSu0?= =?us-ascii?Q?nMK3XRe3hUm1MyBmV3c5B78U4Jp7ww9VH9vPWMitf8JBj05+egATtdnjWjCm?= =?us-ascii?Q?oqqWGtPJLcW18zJg5XKjoFSPKQMMVmCloLxs0H4D2Bg3I+NTc9GcYiq4oiQr?= =?us-ascii?Q?3DWHfZZtlx+DVm383zRGtbhWx3H9A47CaV62FSy5hyZ2iljt7JxoCRzKOsVb?= =?us-ascii?Q?CE2L7CuiByvih8dgPcDX3s2M1eB2WbaByBZjYZd0eCkPgeQ7R3pXM7SIVzkY?= =?us-ascii?Q?PdM1MCqwTnsMm0NZGG5ts7Si4hmmM90YiQ704vN4LYoqFV7XZLp5in1ZUBVd?= =?us-ascii?Q?FIPiJKZDg6fwY+MIR85kPILMMYEfk8tJoNpcbgrbjEBuufYuFhySGzs6fd84?= =?us-ascii?Q?4YwRyeDcFWih/ClDaKEL6Co0UInqz+Fe6k6hMUtEx8oAO+xibMZbXVA12S/1?= =?us-ascii?Q?bPm4szQIxV+4sKbGKCwGo4nE7+oT6y6o0Sn6JL+UGhnuxeJp2+47/nF3NqMo?= =?us-ascii?Q?jDzNc3on2JrifIFbcoUhZmiYx/EaQ9gxdymJihKQ8UJazPJrjVBcaBvZSWO7?= =?us-ascii?Q?VIAP0SUVIdtpOlaweHPZkaXDe+gMFg4W0AMGmZB2KxGpX72jfevs2kcAsZM3?= =?us-ascii?Q?KpBxRvYYyELfDM2p8lRZ5ToGEy0Xxnzuq9HI1uNTjiVNVIfEFxDaVpdSXEkN?= =?us-ascii?Q?DXqKGAWJzLouztSqoe2pgXO8tCgpvioMT4FHnnPGDrKLsEmcg5Vv8zTwET0F?= =?us-ascii?Q?ItHZKnUhQdr4RpivhWlYkpslXJFi3rGf0yJw/KuE6fTBkPSDMB+Ha3Dkl6Vh?= =?us-ascii?Q?i/aowU/4/nnqmwZMf4W2MT1r29FW9/XRuWtSlTzvLeLh6H+JdWxNcdZWD+my?= =?us-ascii?Q?83HLLU1EPwKKygHia28G5Mgv2uMnPWnMRUOTKnIBb6p3Flsy4WD0SLiCCc2N?= =?us-ascii?Q?Wohh1Op97vqHWNkZG6B4/s+cqLrpJTGPN/9RS12vUIlF79cB6jnfTektpfru?= =?us-ascii?Q?NG2klu+sAAcr57A0VuHCO78zP6cFWyDby6YyAyVof9QuqB+70phSgoOGtH2x?= =?us-ascii?Q?j0VIfQQ04vFWCWtcxnsEAnQW7xnVjOeq/BCIj8uquZv7OyTI2vo0ilUXwbgp?= =?us-ascii?Q?qvqVG8sDZ2rh+udn4+r1CM6CZS/zBt/CeA0dkw72xDooG9PzM0VIHK8n7jz2?= =?us-ascii?Q?N/qqrSO7pf6mrOx32pSrxWg8jodMeACwa8ea8KUxUHYR3x1RuBoh0iP9+QSu?= =?us-ascii?Q?ixa6B1lHTyEYlNPv8w4Bdkk9DUlEmhcKDr2jYN7wQdeDFWE4zEf6dr3p5T3U?= =?us-ascii?Q?Dxr2hDk6F53M0WJuz758NRL4BW50wYofbBXu0zMxFOa2HjjWGK+VcKIfURq4?= =?us-ascii?Q?FuyUb0LPkL3hqPXEdvlrkkq0E98C7gEl6gLIHTq1Z1FUhHW8Z+eiuEzlhRjA?= =?us-ascii?Q?49sC2NHGFQ=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: YdZGLI+zv1uVsVCrHusM5WWcVeuXfZyZKQ9KVVjAndxfBZ6r7/2rJThaFslVRgoOVdX0KjeWN0h1WjwESGQkU8UbfkpuATzy6bMtKgmF+4CItPG9M27xqQ/6uwEQtqyD/9BFTJO6PP8esJsQRAOM1HLOBSMPGHNLrTjLJMsPff3VleLAelRM3/bdkvcGo85x/s8ksGb7WuC8ANW9BQunGKHvjV79lEnmPW/qN1Q/rcfUesQl9h8iSzTFbiTzyIW+0fh2bYJlof/g8ttBVSXtT2huM7lzVusQCFCVrpLrIp1GYsVi0GZMaBZorpOxTfgo+RqTQHYXA1BmGvo7DiE6eeCRL9MCK8aDV9A0RUQP/dnQUvWhwUl5DXJMGNtll3hb+rnqm6iwldR1d7FPSCmg6dgkKgIZBByuIzhMWa3oEZzI1BJThaP9Evs8Wodo6qx7huAYqBth++hOVPFTCW7XL5WWgUDE2Hw/pDd4mqLGBrUfuejQ11Xz/7/s5Ks95DJrt12IiXcNoN1FaEmugl6lzJ6jwyKqG5S/D4qGo0H+73X38lP/tOAqqkKFTtDHEO8Rgha3gSXSAKAU7tzUWfnSCdVuPx62Jh6teT8v/eD2/+I= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: a51455ce-a9a6-4cf0-da5d-08de546d76dd X-MS-Exchange-CrossTenant-AuthSource: PH0PR10MB5777.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Jan 2026 19:37:05.7746 (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: CZNRXanFH70Vi0n//rCZgowojtHaZiUEc8O3l4Bx7gbpdkCZscUFtUfk5MweGmg5lk7ILmRTe7xxl+QodkamKQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR10MB7703 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2026-01-15_06,2026-01-15_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 suspectscore=0 malwarescore=0 spamscore=0 adultscore=0 mlxscore=0 phishscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2512120000 definitions=main-2601150152 X-Authority-Analysis: v=2.4 cv=XP09iAhE c=1 sm=1 tr=0 ts=696941e6 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=Ens7JwPV80q2LG9ndpkA:9 cc=ntf awl=host:12110 X-Proofpoint-GUID: yWMctJXELyhOE84zMHhH9oT2Y1FS84cS X-Proofpoint-ORIG-GUID: yWMctJXELyhOE84zMHhH9oT2Y1FS84cS X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTE1MDE1MyBTYWx0ZWRfX/hV0pP9MD2wm ECzHevxnUkSwgE8RaYNij7LTp4MdrB7A2FnAXvarx5P4csf7eDK8rtk4y2XwQlsXTRGgWZcNGPa Draf9iBazHREEmK9qJz5RNVupE5wF4ki61slajGOJdzdDid44Zijbcw2EcHYH5BmuOI2hTt4ixl aYo1J2+T/CSLkHOYKNKVxkrRLFL0ITZ2dxj9JZ+1i1B6SdAZD3G7ECA5vMUHX+/mkKUBTfvv80J 065KV8KANkTgCBxMxd7tQ1qmAXgG0mbp8tudnl0s7h5zAAhBsA43ZFtkzpqRsn8TG97nvFE8RYH pr2hvCiWHH06PL0a7sVRqmSXVubWdyNO7KfA8dVLq05QxO5LoUSYmTvKjnUkmYK2nkc/bW6d3QX 344cSZUWD36OwvrnoT80tmy1wOKhBVBJ2xRTqlA2Xu3GZ3ASg2EgmpxLsUM1tuN3YbgS9V8P6d2 53gBVye6EV4fLotCi4/Zy+RAUo0uwEZqBSKQWdxY= 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 5d1dacf95f718..67158eafc1d2b 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 05:35:35 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 A0DB031A551 for ; Thu, 15 Jan 2026 19:37:41 +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=1768505866; cv=fail; b=oXMam7GxRrX0r4lpO5+6yRPQYX0fAs0074Y6DkSbcCux/zpD3civ6z464WjsmgwpFOn+rIAIK1crMhXwV6xxqzy02g07t47KaPk9OfTFOalJeuvY0IShKj8LJ2Snw7YpqJmxZXinf/wvxSf6O9q94cYE42wGqf6OxK0J7XHNHCY= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768505866; c=relaxed/simple; bh=C6pNGROjnXxNikwgKL/ou+CwiG/WJmI5nbRvIegDMtw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=t9qVcUNfXEt17GXAQDPWhBEboSxHv/eTiKwjqnNKNQW378V23iLMBlh0VGlOLq8Z2Bss2SWVPLL87X+ZJLeYPLutnxPIS5d3/HweQPibvQD1m9RSlQedJpjxeW3XXor0MKdEENKdvB497KnIlDcOtoY7C3tzno9DhM7g957O+M0= 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=K06UXwlq; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=HjrO3iVL; 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="K06UXwlq"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="HjrO3iVL" 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 60FF3x4W1295786; Thu, 15 Jan 2026 19:37:11 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=/DEb46ZIpW2DIec3nbexXwZYtuMKJJ7ps0/jHhnMY30=; b= K06UXwlqxSrOVOERE+uBf5jCrnM43A4dWoCJ1iQi/c3jy7SgDVHcBYPkdE44qtPo XlfpPJ2nPQiO/m7YDVKSg3ss4HMSkr1/P41rC8yMFk8eUQUT/QQz5TkIVTyyX9hq 99OqELl8urC8ODCFlrmHaCe+vCuAXvprB7dFN+jY6GM6w4oZC5uoMtcQ2/KZNfFB 6dbNvfGCMQ6QSW0smxMnopdsRftUA/Pk+JfhsQ8DXWPuOz3sreBVM/51Fmp07oOI jwTEWjZXjGNO92o1C9CNquI+GsKQScTptIVrf2lBA2aImwilhvZho8hAViv1gHX3 cF4amVLoHZbJTBLYiVnsig== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4bp5tc3tt1-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 15 Jan 2026 19:37: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 60FI1wMj001833; Thu, 15 Jan 2026 19:37:10 GMT Received: from dm1pr04cu001.outbound.protection.outlook.com (mail-centralusazon11010028.outbound.protection.outlook.com [52.101.61.28]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 4bkd7bpuaa-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 15 Jan 2026 19:37:10 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=TQRoHV8Pf/NL2UxtIBP/W1sJXcRwuF5O62hdhYIAzMkvd84gTvXGPoZ9Hgwq+AT1QF8RyclO0sB/hfueKfuvT40I+vD2hOTuvT9PZw6LP5Dq4rzX3rZy26d0RMtwLvx2a0EKjzq6X7cnifGalv3jRXscjRJBBWfwl37w3la++gAoVYpY8H8eT5ZgQUv8xyXxxWF+2ZiIbQkgRQFSUrd0c9XigT0FjRR+AMJ27mHkSMZs4/pVKqa6k/VYZeSsdy4+MooSv4q0AZ9+eddT/XvlStFGbp588DtDgpHPPEDUWJYj8BxFC6hCOPAlEvxGu/hVzOTRoEtlskEUkcbtBJ13ow== 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=/DEb46ZIpW2DIec3nbexXwZYtuMKJJ7ps0/jHhnMY30=; b=b2UeX3nUQystSDdoNUZcT8aHqv6BhiG1klXeIMbCQCL8M2ruDlEzRxvT/NmN3DVqeNf0jYja8DTD0uVBJA8Ck9M1Cw/CIemHZtBVgCIyPLSXw2d+qZVHzzdIzomhT+yYxx5WAWGhwEKOEeks7o+HqP7aCBFBbbFwhfMaGjFaahO4HEvaNVlt4/u3RpHJhryQPfVQV4FzY0xz3bPLSxLXJH7EUaLW03nDUMifr0kHdX0GDiFzQG/NiP8AcNmVWXppjtNGfjUiRLu144xq2Gi2zIYJB+0pWUIdqqA/VJqp56dtOrMLITydDoS7EDeFK84PzD0wlM2VHx3IkkuD54+woQ== 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=/DEb46ZIpW2DIec3nbexXwZYtuMKJJ7ps0/jHhnMY30=; b=HjrO3iVLdL4mN2HzOAQ8ejQ6PeCuTdhH/qfv1PGptaTpCFolHOFIVBH2XPVG0c8AojqsX3s5tRJGX9vwB0290EYnaq61ekQWkoS80a4rDxP9TfZuLtxBN4mDo2/Q8jxtkwWmWj+jJOMP7HNtm3rWB6WOaPPQVg1wAQ/H29qAX3w= Received: from PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) by CH3PR10MB7703.namprd10.prod.outlook.com (2603:10b6:610:1a9::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9520.6; Thu, 15 Jan 2026 19:37: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.9520.003; Thu, 15 Jan 2026 19:37: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 , "Liam R. Howlett" Subject: [PATCH 05/28] maple_tree: Make ma_wr_states reliable for reuse in spanning store Date: Thu, 15 Jan 2026 14:36:24 -0500 Message-ID: <20260115193647.1695937-6-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260115193647.1695937-1-Liam.Howlett@oracle.com> References: <20260115193647.1695937-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0181.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:110::8) 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_|CH3PR10MB7703:EE_ X-MS-Office365-Filtering-Correlation-Id: 1b4902c5-373a-4160-7ed3-08de546d7851 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|7416014|366016|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?oEgnT9KRN3g+dF9wmCTg1FGYvg7LwZHx5ybJe1983yrj27WGs8m0sd4EYYqJ?= =?us-ascii?Q?+umG9IeWGjSUmP/69o0LrJJc0iVmUF3wdv3bPvVFIfPZ0rV+NVgoD1ma4MDn?= =?us-ascii?Q?2fwmLqUqr8A/xWtAfPFlzt7HMQXEH5jmW7AcXAr/kvIle20dyFgjZC8lgp7r?= =?us-ascii?Q?rp3EnnkH/PQAF1MZqgU/zsPqWwpfP6zZ3qzsWOUTKFnbeYK8nsa5ED2ebAo5?= =?us-ascii?Q?FnCXNTylfWLK/WlOMMy2B8KxxnSMObx9nFIzTZJ7ZB6iqKzfqBL3/su6kD5P?= =?us-ascii?Q?XIUeAhK36P2Jd3ahSytp541AmEfQ4lAhChF34LexNRm8rQwIRaDBDWkQQb+U?= =?us-ascii?Q?ZU4Eli/FwNPaZWVo1sHfFhSDuDBaRC6bKl2GfRz4e7f5WxPrSAGsYwqiwRFU?= =?us-ascii?Q?jNk/Bcu8DhwE+LQCpKgyK5HmNMJoRosVoF9KiqDaJfhBg3d/sRxHUHEtMj6l?= =?us-ascii?Q?MSLP9vwPiSLEEuXKPrII1I8KfwENlS445vO22/p00Ug66oxgAVCFHjgEOZn1?= =?us-ascii?Q?nZ4gDig3t/WwzjhTGdIvMrzf87r1+oj1ieZFEe/XExss4TuQ7x/ygXHLg+m9?= =?us-ascii?Q?mDdJ260tYuayrmcwYbud/fadokTpxuXHTFMFNlnrvytQIeJMOtCi5sOXToPc?= =?us-ascii?Q?sakyy+iopEm8jtrERyYNY+L6uGILBz2xUDVY+zJOyiclCBsBvQtej28w9O9m?= =?us-ascii?Q?DgHItI+s9hQFiXPENQzvYIcH0L8Pf1P87DzweaJ3iOvUBQ1xOinXFjeQARBz?= =?us-ascii?Q?nFM/BAtUf0W/kjo3MKDKcxKBLK3hsQe7/OhDj+7hJkGIg6bRevvR6ZAZ4yrT?= =?us-ascii?Q?5W65mrmW6gLtgvw+dU0NAk8fXfAGTXuxKUaH5xZ/Kd3wmxh2gC+Pc0nTCuY1?= =?us-ascii?Q?Cx/XdvYiCaW8Xs0SrwdDcqBtp2bWS/D5JS8drCGeQZeMuxaDv15iRsf2k9TI?= =?us-ascii?Q?YMM4hD5Tmoibbp+IuQ4rn5J8dXKt/dRSB5UP58O0iTdLe7WUhHCWpEjnVu60?= =?us-ascii?Q?94Hos0j8DabnBR0J3yjEydIDHwhOx5DDhEstsHvosZfrTXXxEH/mot5eNrGG?= =?us-ascii?Q?GFAnhPlvp/8eMkcV1+0GlYhVu8oCnccowmDLs+oExwwnzFkOMS2qntHbGuoV?= =?us-ascii?Q?XXTtBbaut4Cr1qxx2ahyq57P1aEfJv5XdpxwAOGjguHq4amYjJWXbt5H+xOw?= =?us-ascii?Q?FISzsG8jEUK6JzX/8qIf1QyQbshi1DH+0uDMYz50NBio1303sy2yRmevnPu9?= =?us-ascii?Q?hlgfVTq0YdAYIkF4gX2DRMrfq2X+UtbSxeWYn7dYYl8dTcFGCOa0LW1nLvoY?= =?us-ascii?Q?ZoIMDaYctUFvN0Ttk7gmy+7wiLsPrQqb+/BKojyrBuZUJx6cLi9lv/lWdU18?= =?us-ascii?Q?OZZnBx9SzfHaGeFYqplrZ/q5XX84ya2lMWHAYfH1mFvjH0CHZdTzzfhBLfMm?= =?us-ascii?Q?meP4wIs6EYOTRN/CWzD2F89TrfPHqqVVBl45qvYd13kleQcp5jP0gu7B0dhP?= =?us-ascii?Q?yJrzGMbNsiOQv4o9Rqu0gQMTzoLup6t2/K14cUTSjc3oWvBhXqB43zs3N4LB?= =?us-ascii?Q?EEt3jSuUs4ob8UK0fZA=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)(7416014)(366016)(376014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?ykeyZbbe5RdE1do0i2h0xVYzkCp3c0b7AKH1Upex3q2CBBbUMrLvvtkOzHXN?= =?us-ascii?Q?uFEXou7kNel/x97nn1TounwN0ns/4GVO7AACyI2lL03JdPq5cqDfcc0v+EuM?= =?us-ascii?Q?/Qo8MWHG6rCsgnZs5kBgcYWcEaOxwIBxHXqDB8VH95QmYTMt73qFS6LHhOYW?= =?us-ascii?Q?9UrYYUljjRG5qBsPaONmG6Z08iRu+RWhEmB/NVdxQjoiNbb9h4pCsVBlhj1c?= =?us-ascii?Q?y+NtdzA8HKp7eCzs+2X5l8RT5SH/uOsHMhdbTYXGxQqsXl91cKe/n9G5WG7I?= =?us-ascii?Q?PmuKvg+VUfxI3xhX156X7gEieyA34+QKYQPvuN6x6uTijcWxAMx3u52K/13v?= =?us-ascii?Q?Y/rO+T+u94LEERbWdnCpVWRRtYmKwohnB0ZVx/0HGfHJMSa4lCc+Ur9UqvGQ?= =?us-ascii?Q?+sFPcgQeRij10QVwWZ97Sm/BVislSEivq1JUfN7FTEkNOvDIQaCsa0/CIYR5?= =?us-ascii?Q?wn74rhNkF/EGElka50b7h68y/goXHSe8tMNcmMF8JL5w5wM8Ea15EIgHgkZ+?= =?us-ascii?Q?GtR3Bgaud3Dixr28nn61rYd/MPLKXJgHaEpaR3BqPn2ne40kL7LG4zuL3W3L?= =?us-ascii?Q?1JRZMunq0sriyvAFHj10ing8kmIwg7No16t0ArpL1dt/+lzYE5OmJ/1QqZZn?= =?us-ascii?Q?CArBbGnbSo/PZfWOsksKIEiVrA1Ml8ywpTp3wy6chgD2ztz0t/501LakSniW?= =?us-ascii?Q?jmObuq2WBaIIpRxn4uEj6QxUQ+lwBnXxYg+rKlauRc47cIsSKBHXuVR5YORf?= =?us-ascii?Q?wiQli+n+iRWmaDv9W6aQ8UGQy1VmyTCqnKFWsR2W1A0QPXKyaL748EFutgVw?= =?us-ascii?Q?kMWC/vHJytzkb9JnBar89i0Mv5h7/G3ArIJJSS+7leL3Vo9qAdqbyIU/RPC0?= =?us-ascii?Q?k7D0ebXe7x73+AJRihrsCEPf8P6eNqrr2XHIF+vgacm+Yu3oWwVVfZgm5/zR?= =?us-ascii?Q?39zS38JE+EINCHdCB0LcIGFKgFyeqyw3wVBtgPnDfq96Hvir/uRK+LErqUga?= =?us-ascii?Q?QFGx8xkZGpaTRo0DD+uHtZaTpkJu5LZ4YzlQYLQI+xk1CTQseyg8wp7UZHsS?= =?us-ascii?Q?Q3vK1aJFC34PkK/bl67xTGKh+4bV5MYuiEVcxL1DgcmyV8FSS7zfeJYrR1hX?= =?us-ascii?Q?meFtNbtKgTAjiDcg/MwLF52iXDa/FHAWaxDBejVYXLKJWfaBZougaQpl8uly?= =?us-ascii?Q?Q72sXeHPR9apK+m4lBUA2ScA+EyX9zHZ21xY0OulAL/M+DBcjsU8eoKCThnR?= =?us-ascii?Q?TWbolqpYVvqDbGeguDGvexDN4XRf+Di7g1j9zjUD2eTipiUUQFT1tjmAOGOy?= =?us-ascii?Q?9gyOcHKISPo/t/Z4yGm4KXUQ1sXqpLizd8XNqAPgZVZh1ALiqrSOYjUeF1VA?= =?us-ascii?Q?LeVOIj7tUQoIIZTNMb2BeyKIN1XkMnhr/ZCa5Khu08nPw6Iah0N5jZu6kJRj?= =?us-ascii?Q?6YOI+CSPyoQeZSylrvPHhWto6FbjTr9jxnSBrPfYT6787wH6ISFJcgsPO+Rd?= =?us-ascii?Q?WxyWCW/RfUB22LtFPr5O5m1Hk9d3J21uxlfAYQqLPZFd5ngPaBL4cqorcBH+?= =?us-ascii?Q?ZFFjAIpI/eaNDKe6Bz7b61hJUgdHO9S+68IKVLI3SeZ5ouL95D5em86KgrE4?= =?us-ascii?Q?Ewcm1r3EQZxr8LDkbXNTqqN6fKsjHBEJc5zvj3O440fJSQlcBOWI8zsIe8kQ?= =?us-ascii?Q?D2zrR7czfQLs1OC8T+SvBQH88FqVBaAEsQ3XsfSx+voyyAWhpgIfoqyFrDfv?= =?us-ascii?Q?LaTGyvZlog=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 6sTGWgLQ+N09fLV2IuFn4Gya/ay7YdroTU/zxwAo8eGEe0c4TVdMGf/KeXYn0EMIIFmWD4+NYLZXQG4YhBx5u4kaDTP811dll81yemehQPP90HrWvobYRfWtnXNELDpkPeym7JQL7LOC47guhuli2YOFUk/Jgfx8vnyonHi5Tw484+xQuSXDEk3j4VldbSSVy8YbR7y/Sg2wm9l811VmN+mqbTfRIfJoBStZhyosM1UgWBBDdgZiJ0FueV+zpLcooXdUcJueoc2T4BMZFTf0Ll79RL5avzWhxdsjhVUFr70jt9ianzRyZ2mcto/HRu3uRVCBDmFKA4AiUk/e4CS9y/TaFqR9jddX3z3dGDMcvu6CMOXY4ktKf39JI7xflMb2kczpFXCg8QO2nvftZX+rRJB5PwSG4Kv3HRBx7bwVHCkjBIcJ83Tszo0GeLJvY5OFaEjrOjuDvACXADZVTpieVzMa/NvxGrBp8Fqh6AqtcpjO1zWWWKEPhqExrzUxqfiWArhS8hO2fhPM65E3VAY5X05iDAGzmppyBPedNmccSO6m0xUPVGzaj0iYueRJj5XPFrdisD4aPnal9BfsbhbHEawEgNFqNSfdb7kCeT4WCMc= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1b4902c5-373a-4160-7ed3-08de546d7851 X-MS-Exchange-CrossTenant-AuthSource: PH0PR10MB5777.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Jan 2026 19:37:08.1408 (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: x4U2aD1iFLc0zZ5DfvgTYOfx77JP2bH8x1H+iamDl9xnarBAXPvZ5IMo0r0k6jX72VNydTFcggbzmvL9XLiOLA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR10MB7703 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2026-01-15_06,2026-01-15_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 malwarescore=0 phishscore=0 mlxlogscore=999 adultscore=0 suspectscore=0 spamscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2512120000 definitions=main-2601150152 X-Authority-Analysis: v=2.4 cv=XP09iAhE c=1 sm=1 tr=0 ts=696941e7 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=gTX0PQgR-87UWUccDAQA:9 X-Proofpoint-GUID: aVSJvAaGzjQ-AuqNCoqNexPdi6vYjFBx X-Proofpoint-ORIG-GUID: aVSJvAaGzjQ-AuqNCoqNexPdi6vYjFBx X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTE1MDE1MyBTYWx0ZWRfX6gSfhjZsG60Q x7oOkmbPzlIPypHmyuA/CLwiR1+qULrSQee9gPwyqigIs/qdFxKWoAqApby/NN9gt5lQql2eJps p00SRzet2kBCJGH1CUV5/mtzziWePfdkBhcz/zUCICvuR8QjmQ/zyGeIcyku9XSjBSxQlHpk9PQ hCQmMMJsFAI7TdSFenLM2+srSBh5P242COv77cXGLbm7yl+DJCp0k5ZdPpjaqWDgiwbP/mHO1mp EJbLzI2gyrGTozJ/NO8o7fNJTkVHMDtnXm0LM0DAh08C9tGylp7s1IowO8pets824+WCapxl++N O5MmdKZOGfqNHMQje7GkAuSkx7tQ89jCe52HAb/OpCdSu99c+aq3Nh5Qb5/61OQD0TeLoCDfFf1 uuqEdD8Ro/1lUW6iuAv5QIfZ3p7WqjfB4BMnDUJFBl3kK15MiUadei/KBKRhQpvedQAYPZOMjmj T3JJdBBolBg7Aqxiw3g== 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 67158eafc1d2b..be855f204bcf7 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 05:35:35 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 04B6B31D759 for ; Thu, 15 Jan 2026 19:37:49 +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=1768505873; cv=fail; b=bAINNkdPepdy9E+QIZElwfck5aeNhqeftdL+sSdxWfPXH7ZkJCVJ4hhti4wKUs41vJiZn0AzU+3M4UbQJU24E4R5e+Xdhx7rOYwB8v1Jgdvn5VcuImQLJpx38oI0ViL+oBURS0WJPaGLrsXg+PMc+TligTyLnNKHRZbnzIWBIH8= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768505873; c=relaxed/simple; bh=mdfoOnCvXNX3mUiKgr+JUHmJ8+T/y/lQX9exDnjx/bg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=XDq3401mo2qUZxPtOXOuGqR5BL2WOVsbWsFFn/gkQd7MBbRsPh7qlPuvkBeFLgCcBhJtbB1VyDvtzTxv+d2UYEt0bufccfSvdowhK6K8WC+uNPK+EzyHiGr1Y43LOXa+AsRiYrg5wECapHoRoBBPfG0ObNfzvD16OMDqAnth2vs= 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=G3a0X4/3; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=qy2iGWjH; 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="G3a0X4/3"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="qy2iGWjH" 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 60FE7VOI1295689; Thu, 15 Jan 2026 19:37:15 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=nbyHDDbB3ULX2A7iTXjZIe1zkOroVOrpUZzmi13DPio=; b= G3a0X4/39soOWX58kFeOt1pVfr70pq7u3cTtiYcJ1rEdLLbJlK9PU3Y6uNrh6gyX UrAacZ1W7UTWZRYjjNND5i/HUzZSVInC4PbQTwjYd59ZPI65NsiFa+yqVrpeJ6Sg l+dBimrgZ11B+NKjhOGQxfgKr7nk8bk/7GYfdgAJBVmrng7BQ7roG/GuufaofOzh Ufr8fdc27NSf+mJSbzG6ki82SpY6MvUMuKBm3UMxvULMftuLEXmwyEE9Hj8J7JBA 0P6hgPlI2PB2YCzl+/I+vPhdnRmrFWVGfd6qHdUnuBwmTEtg19Ug1F/nYkSztahL Fbki+gA5439Rc00/KcnG5g== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4bp5tc3tt3-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 15 Jan 2026 19:37:14 +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 60FJP3hn001847; Thu, 15 Jan 2026 19:37:14 GMT Received: from ph0pr06cu001.outbound.protection.outlook.com (mail-westus3azon11011046.outbound.protection.outlook.com [40.107.208.46]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 4bkd7bpuc9-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 15 Jan 2026 19:37:14 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=u2rAq/cK+EQP5Iqh/BsIZ5fOg2nmBP6sgxMhlvzpLB/c0d7PLKBBHMMESUs4HC4xMSe6TtNcFiRluQW2Zu3NWjaKtas3HVnh3xaGXckdl/Ryok2AlnX6Hwx12dBXw1/TDzCjZ5E90FnYFHSqD1SSoMdKumH6TIYASXfzBaQmNiYh/1xdo2oyQoRJmLxfmRndYuEC6yvUjAQEWYnWu+8a+mrVrN1NTdYt4ZpUq2z5z/IzIMPdCgtVFGlRkMDSYitFLYwt8PDoMsDvs0UgORdqd3mBp+I+yadcyOi4FI0g8LBa+eBphAaQHOCiG51lXEaysw9Uuqu602y4ogW3FCZajA== 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=nbyHDDbB3ULX2A7iTXjZIe1zkOroVOrpUZzmi13DPio=; b=LdYWhJqOG/Cl69VeAoOBKcIV8q74TO2I2G6kq7uWo4t3CvhVMrw/n+4Htb32lurFd/5VDcpdoHLm+59MBRWmmkDcx6+64S/b7pb5mb6ulKD61gKzOoQB6wVA+7mQWPXxCelJ/kKzp6Iq4JANEE0JSsMxm4Z7yUtsK85IkuL1drT9saYYh/S6E4L7w+WVF122kyO64mbH7lUoMr7Dfp5YkDGjFlh6za9lnIYpqHLDXcEhh6qSQuYSV7kCF/PzHvMFzMjZyV5ex6No0PbLXMhbzpZmIRZj2l7aQnKUTMAxnEqbQZN9mrIIvSg3l6CECFkc4I5ZMJC5W2diaNFhwFOgww== 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=nbyHDDbB3ULX2A7iTXjZIe1zkOroVOrpUZzmi13DPio=; b=qy2iGWjHpGTJBYQPHGvWyzR/CIZk7+AmNA1MsP3+3YCZ1FJ1AEtZXM3E2XJuedJR/yuZ9iOrivXRC6kxuIfmkeB5BVdPqpfbZzRP6O0Vqnu1wDJtlz0xEO+fbMMgB2xlQCWCOYAzyP5Wuoawjl7W6+h1fq6KlxqzEG6LxSscYbw= Received: from PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) by CH3PR10MB7703.namprd10.prod.outlook.com (2603:10b6:610:1a9::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9520.6; Thu, 15 Jan 2026 19:37: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.9520.003; Thu, 15 Jan 2026 19:37: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 , "Liam R. Howlett" Subject: [PATCH 06/28] maple_tree: Remove l_wr_mas from mas_wr_spanning_rebalance Date: Thu, 15 Jan 2026 14:36:25 -0500 Message-ID: <20260115193647.1695937-7-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260115193647.1695937-1-Liam.Howlett@oracle.com> References: <20260115193647.1695937-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT1PR01CA0064.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:2e::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_|CH3PR10MB7703:EE_ X-MS-Office365-Filtering-Correlation-Id: c7720962-5786-48ae-6d47-08de546d79bf X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|7416014|366016|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?E2ZydJ15wodrA5Ldst6c61WyImj7BdBQPeC5TlTcMbjizS1ACooH3iv1h+rF?= =?us-ascii?Q?Mh3ebFZHwhIjYKCJdTbrLYpA6PoqSBc+/sHmQLWDZCVxoZ3cFKshzGcutfrL?= =?us-ascii?Q?KwBRgslfg6sbeiKnpl6lZqfEAtuna7dRg1OS5OhNEPKYvIdAvVKd/tMKrwAt?= =?us-ascii?Q?SZoBMIPzsvCqu6ndov+vQgUFI610IkfZz1Roh+rHe/5FySsJTMJLsfCZltL0?= =?us-ascii?Q?+tUL+7IYQEwZJvb/0aHg2XYT5j62an2tESGarid5QBfOyvJIVAEa/Qpu7Wz2?= =?us-ascii?Q?nR8GpPPLJlbjQ+SVneVEYuoixjctzdTCwzgz+avM68q7BNNn9Qsj5rMoPDJw?= =?us-ascii?Q?piPlLSl3uMtSV+Jt/TWcKQH93y+JyP4wk48BKt4MqE/YIYRVtXjYHeXKzi3F?= =?us-ascii?Q?bSxec5WoNUKtKYUh5Gs+Ued2JMrQoJlgNT3p1BzpjqXN2zzbUD/34bOoGYaM?= =?us-ascii?Q?26d9whIe4+piuvUYnEolDD0omU3K8Q7+I/bhEXGNJhLNRcjt+i4I3U7pJ9p5?= =?us-ascii?Q?URWYTuffWVFAJ97yt+LkD0LhUcbkp+yOwc8RRqAX98u6gcfRM22HcePgldBy?= =?us-ascii?Q?V0wxIorc6oAmUUwAzvhI6G6r+7UdSnykXoULlX111+Kd2xQm8g7nfY+SH/Uh?= =?us-ascii?Q?kvsIFgBxRFlNZFrLai2QSt6iqnv3MjErOwsD6e4W3R6OkZSDoopQQ1hvyIaE?= =?us-ascii?Q?hBsVNCLpIeTdlssny+Y4aZLqGAh+qCtlWM3yh0806ICyMlIZUB0WueK+NPVb?= =?us-ascii?Q?gjgCoI6WohOZY4v5B3XaHDSNAlQE1vo0E+2/9bO2RFojZ7frh+xI2zlK3Rqt?= =?us-ascii?Q?FqJCMg/j7NbtBYTuB/10I5yoye9Y5OEjqfW9ImBfmVL8bYPkU4Ogp2/FyoN3?= =?us-ascii?Q?MbNB6Zufdh5Fv0j4CBWjTPllvKbknukMzFaP1Vp4ISBMn7gj7gUxto+PCxJg?= =?us-ascii?Q?dI4h9rECKlWkAs7VnuGCt43JcJPMCjerr3BP3k9ax4HyRvt31aboek//xew7?= =?us-ascii?Q?CNwGvgrayWYB3pfCmNM7TfZxO69WJrUMEsgi8SP0q4m7h99zFMNFz/6vv0nr?= =?us-ascii?Q?U+57JeJiU1JNxrXiKH3yLFYHuk+8eSkBt6t6cw71eJV3BJhqUMMvRuFOZOl2?= =?us-ascii?Q?KXckHxvB4gJYM85FicaEUI8s1OWdDH4Hd28i5Hnt1gU5UdUHTgCf+q9R60fF?= =?us-ascii?Q?zPzMPqwad7/gHV2cSNp/CZy72yOoQf0vhG1ftNxpyBaru9bbKIbgMQMj3ewt?= =?us-ascii?Q?G/9UunduKcAKmOuZdnUw/6fKu20EPm8i4FRS3NjSKlewdMDgf2B9VwLeWxDs?= =?us-ascii?Q?nX3bId8ymmfcLd9+nZj50qHBcHjDh9hEYSfcwhODiKID997IWqsIc32x1kQm?= =?us-ascii?Q?lnToM6KWmhpazlvH/n1P4ZMsTovbHg8zw5HDW36nuZiEYTzwGBoENmIYUAFp?= =?us-ascii?Q?xzdvjyxgJWMSYXbE+JiMWtZIHS4l5J0h1isXLTLt1ObJo6bQmFI3ZgQfoQmH?= =?us-ascii?Q?prpBNMNbnBjZhvAnEte+YbJnjMADpRU24kg3SbNvGcWk6xUydgSvg1KAeELL?= =?us-ascii?Q?wCjGKXfgvvgOxGbXV3Q=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)(7416014)(366016)(376014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?Ia16MaMoeLXmBxpEL+NaPj4qYauC/oD5V0oVIrsq4rvgcMxr+ONiUpJqRz/3?= =?us-ascii?Q?hwxkR+kQMg1wSbh8le378fAL6R4Yu4itV6viijE83xMslMJ7F47dJaDV2oJl?= =?us-ascii?Q?Y+nCHIo7ifnQ5jbvwQpuL/CvWTr7M0Fht/mncOmHgpgrOivtEUxxL350ceaw?= =?us-ascii?Q?XMSBJgSp3lDEZmfqBh1SogAsgb97q0ZZ0ylVLbA8J/OJ2PH6YtphEcTlm2yk?= =?us-ascii?Q?cHHerCj9p8K9+4N0XOxxgrJQbRtKsgBmvOiJiZcDQOc3vsAPlRFjcA0Z1cUu?= =?us-ascii?Q?q5eE1viTch/KIlyFDv0UcFKkRdLD10UqrpKSPUzqqtdL409xO6gjweNohvoE?= =?us-ascii?Q?vmnxfrMISvEY5qQ5WfrIBdZuteu9qlFknPc5ZYIQw/FC9kSHP1NcFRbBr7dR?= =?us-ascii?Q?x7d3YFzvrCWZKXWT2kkP+4GIty3McJxjY0oBPMJAraLv8nhprdZVIL9ILbZG?= =?us-ascii?Q?VlkOwj+izQfO0y84c7DUXyGdk1A3Oa3uYmFbvkhr0xcAe//nnGHMRbnGma1f?= =?us-ascii?Q?cB2EndgLNKXpKLXJ8necXBQ6ZOWTkYDzsXzWrwcKvyVCsY1gj1VKOPaNDEH1?= =?us-ascii?Q?OP1q1RsN5Pnar/Hn7v2pOs1nEpXLwrfqr1gZ1CIHpO5iwIlZLpYmu+fvA4Pi?= =?us-ascii?Q?7p1hsMGFzXzpXpzkH4KmjI5faWfQlwjKFWDi4uLWmM4uqW9uiabycFJ8Tn0t?= =?us-ascii?Q?qsMOjEMK/EplLEHoLACY2aeNRTOusDdjxVLD1jnlFW9GPXxuCFzd5CnV6WYA?= =?us-ascii?Q?GBu2RZ0SOgQ43j1XH6O4Fp/Mm6quBIgvg+4cGbnKumcwQhL2hfS9tJpdYoUl?= =?us-ascii?Q?LBsRNPU6dR+s+8n0zqXywcoocUN4eI83P/CmtMrfgaFvmUMI6i839JFNQRxM?= =?us-ascii?Q?2afanc6jk7t5cyK1i/fxnjCU/Azy/rCkvmK2V3Up8GbH8CIe4pX63jHrxM2v?= =?us-ascii?Q?BKHVk1za6KBYJskZGBTX+gtiA0BufdbHIBQSbEh9iMjquTTTFSfjdhjrAQQN?= =?us-ascii?Q?U+pGv+f9zgPY6wcK5wb43BlRnNRq3C5j81eh7/ZzWmGjW895zMM6rpjpnVMi?= =?us-ascii?Q?Fximkno8PTy9x7RDwzkkdGPmXSrQhooa4nlpxXfoPUvLENGpIALcV3zBRAoL?= =?us-ascii?Q?YP/0TgJIYEt2z666YmBYUTbJL4RIDbOHSWwvRJkTQ+MQIOXpa1xUrre/AUnn?= =?us-ascii?Q?KeiatRhXyx+n8XbFIiUSr3VoY39DD0Jg64vyO82uO9jgbHV1xDRifU1a8OxX?= =?us-ascii?Q?7mftoy3bAj8JTkm3E9YEJTtZkD4GWeURz4JMtnZFIGQztln9UGDCgM5S+Tv3?= =?us-ascii?Q?dJYvw+BWAz5uHECNohxkJnjJgEUIH+ZSL96yPsII9ljtSI4eiyjLgWGVWbKb?= =?us-ascii?Q?osPV0UoPlI++/FvJt6XOrvvf/+HtGw9SC9/P2EFO2/Bwlg9oW6u14pp0fV9J?= =?us-ascii?Q?OfEYns6rTP2AkvBXiPvHCc8Bn9BTLYGEM2flEC3UGiy2GLL9L9ErEqVJHxKw?= =?us-ascii?Q?jwOcnFUDqoP72uPRYm/DZxGEf+U7zQ2TZrXMKz3B05vq90JSshjaRGfjCuq4?= =?us-ascii?Q?WpHPogUipyRbgUHYwarfjDJLziQAJhBwGgkvx+dXhvMTquR/+BqTauooiXiK?= =?us-ascii?Q?dJGrqAloEUofu5TY3S5HB9+r57ZSX4qOymDj9+HQfh+GIhbBx2W4doC56PIm?= =?us-ascii?Q?3MN16lpGJlV0x53jni8fc4MhgUiiXMMa1N+fXT6BoYVxohg0bfdU6/gBdRvT?= =?us-ascii?Q?z6PJyGl5mQ=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: nbixrUm5gjYYp2YSEF7LfuYMUrLj2SUQSpehMKSvlvzhz4ZShu/ro/qPy43FTJuAgIaiCjYu2+GQ0+NGIpbcja2L8PtxAC8ll0rQaa46C/2H70164sgEUvmGNofWTUrlFGRkU3V5zndwxg6D6+7NMkMVPysLSbB/+cFOwS9hYRqLsO2mRUXOZk02fGVWy9N851ok63WsfXCCiqmEBGOJxwhseCuXYQbzD9c2UphH3GEyPprRK3JdcYM5AlWNjVFjRJIdjIdEryR2qxSFsW/x2W4tfWUHQGbpGzAKQaw8xEjQNQA1/dJty+RmSNRbh66gyUQUOdcVm3dpE5R1axfApGa5xj2FLs9Na4kKSMWBIhpwAwLil6yZLcJbcp2+WXSxFRcI23DPBsGFGdV8FF5tL7SCP0yKadS9RAsNxxP8ahGJksO3tfgAVc/hMi5UtjU7ivlOwvtbZWgkPt/RG+WGwJpzsZzOnctef2QN3IVJAjs8rL3jFtD3/oKh14Kv5xfJnGFJqm13bzdl4qnZUbYvMBEmhcfkZNvRyVKVW2XF6NY81nhFCQCiqC4bjxjq3W01YpYTHxcbt6xSMTk9KvSCTVZmtK94jkXAe+fR32TxLSQ= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: c7720962-5786-48ae-6d47-08de546d79bf X-MS-Exchange-CrossTenant-AuthSource: PH0PR10MB5777.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Jan 2026 19:37:10.5338 (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: lpvUEtXpkHPukpVLW37NvWKpV01lEvHH106dJN75Lo8ocmwFddteidRcFcCk90GoKoWtz1HbBtdLKsgzYIsbng== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR10MB7703 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2026-01-15_06,2026-01-15_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 malwarescore=0 phishscore=0 mlxlogscore=999 adultscore=0 suspectscore=0 spamscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2512120000 definitions=main-2601150152 X-Authority-Analysis: v=2.4 cv=XP09iAhE c=1 sm=1 tr=0 ts=696941eb 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-GUID: s2oF8_NWYQJcyykYZ6WguruXDlZwSMhA X-Proofpoint-ORIG-GUID: s2oF8_NWYQJcyykYZ6WguruXDlZwSMhA X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTE1MDE1MyBTYWx0ZWRfX3ZhxwTlM0kfo 1F48neZcZn+pXmM4I4O2CQmP5SBJ+NEib/weBwPwmaoD4C49jfm/z+LUU6OpyVJcpWkN9Ss9uKI BCMAjGnizmvryfvACwOCs3vyoyX8xwF4zuEywBqEYBN7NZujFQKYF71GzvZfnliIY97AtQi5nX+ eNNUiShgDbDYe8Lpxk0VWEKuNaMflUGhkJ9/OkTN3GH8SMItTRL0zzRVyJgxQufhD2mTV6YOPbd LHrWYaWnTw/OvLdDsNpNjrjkrI5uKz4haxEokNq0CjhhgqoE1kMVNllLtXmrhpbyclw84Q1LRsB kssudXn4k8NUFv5UzOy322J4cP87XX23/z90PAWhr9k5padq/be0k1nIAFGhiRH4c+bX8QjavcX qTeuB/O2kLmIyxMF7wd2VPshqbMobmJRFNy6GCiYQx7Xqc+i1I4Mq8VskFw8d1o+bth2ts6Hr3z 8BmaEmORGHKkmzyAZEg== 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 be855f204bcf7..e17f0b6723a85 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 05:35:35 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 0C23830C618 for ; Thu, 15 Jan 2026 19:37:42 +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=1768505865; cv=fail; b=QctmCE7hlSZjy+yNY8cJ0M61mtkl+kXlj4C6Mh3qxxk4CoXYuxjHqqzY4S4Nh33gX1u0dU4olbx0gAViS/IAjx2voWMp9lmRdqfoDOTJnQBlEKqJWgrwijCM9b1/X+cMdI+TzFkLs718bCpT+alhRbX/iiCHORlfbIT3bVizLa8= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768505865; c=relaxed/simple; bh=0MYaogIahfNWcNiZmNEachyt2Eptz4Ijw2dV+h8+lNQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=N9zOSchSwl7xC/vcTGvZt9o9ZQjJyh4/J5GaG4BMr2T1Da2xUj/ZL/7q4+F4xR8jHGGwX1Od437k4WRNDVxFHhcXjNUqNDq/WJ798jJFDkw+HDg33LcCXsXaFmpan4cDfRD15IOkbtGHUSmITq/e6+tmfP5f0IyKOZw4U+WJnkk= 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=dwqgJUw+; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=nTIeMBFl; 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="dwqgJUw+"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="nTIeMBFl" 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 60FH0kDt1360897; Thu, 15 Jan 2026 19:37:16 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=WlZKMYbqz9xaYpfii3dvINKHuYkWyJzgEo6SHOCVqX4=; b= dwqgJUw+HVZyzWVlkjqtXKSK7QbnA9AIvAK8Ivv6EBEXGAwz0NqJIT8kYVbgGxx0 J3NBz0BpdUot+jdwKiN1Z7Vi5itfWVemVV1RseUY8NGu3lPVAm1sX0GMhR1XFhMj IcQi876qIxWDsL6QptjWkU6vUbHWf44jklhHkPOoHKVj/BGrDlSzPI4bvooA9+wI P96/HX2wiU7l9WOpbd25b8QQlU1REhL00K6S9UUsxChSvkgMgkwKC4eGrq2IXNrb eCOFAt7OxzTPjmBeYk7FhYz3AKJ/fR2mjb4GGHVnr0Ezh7ZACcclfjfyx5BNQ+vu G7E8gY7GHWTA/iEo0JHAKQ== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4bp5vp3s4p-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 15 Jan 2026 19:37:16 +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 60FJZwWF000404; Thu, 15 Jan 2026 19:37:16 GMT Received: from ph7pr06cu001.outbound.protection.outlook.com (mail-westus3azon11010028.outbound.protection.outlook.com [52.101.201.28]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 4bkd7fgkds-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 15 Jan 2026 19:37:15 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=HvMHYGyZ+xXvn2IlxQzSonABuyKI9FWk4racw5Yc7jssz+NqCRFSNSMrLxkyJRNVDRHsqdKfyzpiDQyHjVwSXPBera4VgmBLlrJUrBaZ2fYhAOKvILBsU1Uavi+VYrzvrY1auNofrIO18M8DKNS9jIsDkYoM00GRAYlC1cZPhcal/7/ovr/JU2O1IvR50ZIlMXG4wZgz1aDIDPJpGT+TMndPWAy56MitMXpdW3ePrA/THmUaAElW2q09oA55qYFGiswdpxacNh/vIop/wchj+hhPYlVnzsdUHsgn5NZmtJp3bs7Vr5U38VUDmZGys3JLGC3Z451Iwh/z/VIyW3rfAw== 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=WlZKMYbqz9xaYpfii3dvINKHuYkWyJzgEo6SHOCVqX4=; b=dzM4ob6bUmh+/KlxrDf1kVGumhZFf3Esm73NIKZAeJjC90gI67rwWaQTtSp5YX3H1/tQUSVkg3e1edUuYLOKEjquqLxxHgSOEb8nNwX2z7B/qPLACdKf4OqzIs76as2Pyvgic+WO8l8P1STGbCRMPRNQQQC4Ko8wFYLltU8lwpoFUvGIA4TBMFnIZRzRjHNm+n5EfXGpLvnH1RTywEanZ9gia/45oVl/TzPkL7/YSOsBey/u92ckwe8GC3olGy3TSW9fHP0MTKQkzromPR4slZ2rlZ/aLNJQsqF0G/GV9lO+3iwKFe4linpGLFXTp2Vdl490/UKCmqZwrHnyGzzv9Q== 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=WlZKMYbqz9xaYpfii3dvINKHuYkWyJzgEo6SHOCVqX4=; b=nTIeMBFlQeCzKReE4j769CxmzizXI7v5H9HOc4rKHlc/ld2zpILdU/UOO3+55OjAybiaHzX3cFUxf5UIFDSbzUPN8K7TjhPucYAWQWDx1prLr+uau8ztDIvSkfnlGbwcuiyr++RAmhzEddr/MouI5m1kyHJjT+qHznM+wGrlOj0= Received: from PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) by SA2PR10MB4507.namprd10.prod.outlook.com (2603:10b6:806:119::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9520.5; Thu, 15 Jan 2026 19:37: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.9520.003; Thu, 15 Jan 2026 19:37: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 , "Liam R. Howlett" Subject: [PATCH 07/28] maple_tree: Don't pass through height in mas_wr_spanning_store Date: Thu, 15 Jan 2026 14:36:26 -0500 Message-ID: <20260115193647.1695937-8-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260115193647.1695937-1-Liam.Howlett@oracle.com> References: <20260115193647.1695937-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0143.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:d5::18) 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_|SA2PR10MB4507:EE_ X-MS-Office365-Filtering-Correlation-Id: f2d79b5a-5302-4c5a-1170-08de546d7b1d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014|7416014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?xKP/a/EqTfrdLewtT9+mChMJCuuLLpK6nDQ9NeqJ7GmGejxMgTIPu6BOKUUk?= =?us-ascii?Q?PiRsjwXPlOiWx07tpgjl9cmsHalv8IqupioHfP2NYhpr6xN0vchcN3jNAeXn?= =?us-ascii?Q?sGOhzqU++Qvr0Pd5cah5Jqdvt3M4PPGcyMvQKhrMb+CfYM5x1OkSklKk/Xd+?= =?us-ascii?Q?V4ENqA80qWKbqkf999tm8yoxlMR2pJfYk30DK0hF14tb1mRAtmUwtKorUZVu?= =?us-ascii?Q?7OVklqisgHX+RdHCmEXH37qjGsHKYLCuz4c3ku/DglDDkkrEeCI6IrGyGrBI?= =?us-ascii?Q?g7nIDwq8bwc1GE9GL4LG3m9vBSIK6b9RiWSSsBsk2e6iTnoj8yKVa0ZeW+Oy?= =?us-ascii?Q?jcQjk7I48uCdDGYaE3MLFoZFw3kukTrbW4+Q7EWE1hFE9WyCv4QbK1Hlzf+x?= =?us-ascii?Q?Jx4w2W61eU4JIW6JIqgbXog8CJb2uUYuPOp+jemdaAu4VYZxAzmqc8Hu/z7b?= =?us-ascii?Q?xaL1l4BLfo+TDocBqajsukPhPPPw1lBTp1fzZxzJwiCOVnoOx3mzuzgmdNo/?= =?us-ascii?Q?htDMaIqY6wjQ665cI+hJa9HWyD+hUSWly2lajtUy26BRXsjrmI0DvIDBlYMc?= =?us-ascii?Q?lvux6SHQopGZbh3nJWRLM7o89XlD+TMwiAUfRFssc3lf2SQzGbZA9ijBsORQ?= =?us-ascii?Q?oe0+YZEWbvVjSdLm7c9GOdmxjd1X9WhEs7DjnNyF7PE6fkmaq4qBOUdhmH7W?= =?us-ascii?Q?nVh4rprZKEcgiPJ4hu54zjt09u1js73PcIlQF2Q+7ndCM32mKJ/nQTUWCkor?= =?us-ascii?Q?5SENbGxsJfy6sVWYXs6DAJJ5qzbrgnP2ircarSMK1rNl4vbaYoamPML8UUw8?= =?us-ascii?Q?cvRG8jUwgtheC4Cbmt2tq/hrTM9XAK/LLvtQOfwdSxgdoXe3p+X5xUHTdZsS?= =?us-ascii?Q?3e1NdXrYMm+sCKX8L5Ur6DHhn2YQcPWcHFhH9HjQUga1Qdx/T+0VCqmo1XpA?= =?us-ascii?Q?mX9cwxHUjw7eaF/6xDlVPGnt4EAOiDUfRhXZKfYHrFx1Xo1mQwguSmuR/fCB?= =?us-ascii?Q?EhMya6CsoH0fLCA/wIhACOzsM74cJmt6LaeSkXwfA6sRjUBXe2TcPzC38sP+?= =?us-ascii?Q?e7394Oxg2/xvjrCLWcF66migcKbBbWUuh2/HBVHodaczuC8Mr7WKeLCjwEsW?= =?us-ascii?Q?s2iTocGsv0TXLOOCkf/YohAdhJkHg1RZOP06RTTsOd5bWTMC3UT55aNiakoE?= =?us-ascii?Q?PpSok3PdHfCYmgdxrNuFWyJTZX2NSpK36h7nbaoE1AOTp/gRKRkfYXkpPSko?= =?us-ascii?Q?LP12k6IkUxD8S+s/TSZNBR+DxT8zVZrb0xOPo1/6IkR6ZjUrxni3kXgXKCNW?= =?us-ascii?Q?9RGF+mYrgUbkorAR/EbZRM1v4BnZcAIoQ8DQoc1dBK3yxQBpKh/r2BhUZSJD?= =?us-ascii?Q?M8BuLECgxOCD4uGeEuXu5gciE2lmeXMLl+GphPtfaR2+JaATrIJJg9fPyoju?= =?us-ascii?Q?vH0kiUCaJ2m/LbLwpVzk/VsOPeR8LMUI8QRUF46tVcDVAOxE6OYDsx1OhIa7?= =?us-ascii?Q?7T2caXDqJt8rpTIRPqqUo3OSe7tWk8XW43kw4kRawpXXbmqVb+meLn1QsZJX?= =?us-ascii?Q?BRHMtH+gGR9uItZOV8s=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)(376014)(7416014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?wLmnozlHR08djkGo5b03rPeD5yGvSh5CuhiV9xBbl8GTnEqdKaIFvdU/OwCY?= =?us-ascii?Q?m24wxt09wKyolXx8lFjweFKDUJSUvUbdKOxadp9an9XrjKm+Lj4xYyt9prk1?= =?us-ascii?Q?Ur9UvLkpneR0nW0cN0oTTxV/cTEXYm51cHky+4NWPw62RmgzlMq0u6nNMPcy?= =?us-ascii?Q?+Xpa2UiXGz4Dk3c/IHeAogN2UR6CgO4b2F+47ILUqc+KWcECS59gtdntAZRW?= =?us-ascii?Q?0mVHOIEdt4DzzI7HR15OmjGyxj87cqL5CJ0UvMqP9FxGyV3V62gHEvpMisyl?= =?us-ascii?Q?Lb6pOexyFnjC37xo34vuuY9ZJcOV/c+wnwUwik3sY6HrunBCy3Y7TJdCnQ62?= =?us-ascii?Q?6BYw2Jt4mbGQVc/elQdqpAEoFpEAU780qkh+ZF98LhO1oW4hspNOl4zGYKc2?= =?us-ascii?Q?YOTvZRt2NFbZv5gxi6LG+GzVPXT02ijE6lGi2pDnHKiwrSryNRMVozMvR2ym?= =?us-ascii?Q?VhsWm8X/sBjCB7f6k8D1N1oE8KSdnQoDN/nSs2+Or9v1j0lha2HFex47KqKq?= =?us-ascii?Q?lfmI8kWta/oCnROiLH0qoJAgq7JgW8makH3Vu80GdSKVZ0iw05fCX62xvSAb?= =?us-ascii?Q?yDa8u7OFrBVhuJcDwa2vIbxnSbW+FKMhDLSESUIKBuaCNVFQvmCinbWnGSyP?= =?us-ascii?Q?/54zQZ3+56gaicHQ+EbESjXswrBM5SWmCn3FiWz/0JCfCmzRtNkjWM4Rz6Oe?= =?us-ascii?Q?oE3fJO0gY7mUI9ySBtV5n0f6mFykx8JdtOcmUNVlNcg0E2p/YOCq1djtLFsv?= =?us-ascii?Q?xNhPqtxmippytEB+mX1FK74oN+/9GTqphI9q5maQDuFUz2bQWwrJB7w440a3?= =?us-ascii?Q?MoB8S9HeD4yMMzxa6t00ebZUxUfOhFF9GUkLVPudTRRN5JIWx19DnQR7S07z?= =?us-ascii?Q?+FVneVVYCTziiHXHbYJ4MiVisnHzIZrl59ksTz/GA0QoeUO+rGW5PBbZisFn?= =?us-ascii?Q?88233bg1RPfpikkVDY4L+cpefwtl3jh+F5+knLFjWvtZe5PuX1//295YNyK6?= =?us-ascii?Q?TCjOyIQnWo4lNODR4soMIApYIjLKoxHS8hqmxfOBu6UqccydFULXGfYRMqrh?= =?us-ascii?Q?wvEtb99xhI4IO8TywkOzcHSn8jG9ajCvjQi+m6dmQcTNgP+LhHSQIXk0c9YM?= =?us-ascii?Q?wVE3LhbSpZdu6u4b/+5Jg05G/Li6o1j76cM5N+/you1VbFxO7ZnW039Lgpkh?= =?us-ascii?Q?pAug56dtDxPmgsGxEf+wgsbbyaHMJbmSAj3ONrc2rv+kekC5oSOkeTFuoJD7?= =?us-ascii?Q?uxA+ZUEU4fj3ntlAKw1iiEepkduqqchZwwXtRM37MwA7dIbPd9RgQ78zcOAk?= =?us-ascii?Q?jlPRrwr+oWRgCTBLY/vsVtu8XClurXolPVPMBm7AilQtup340Htfx+NZDPzw?= =?us-ascii?Q?SZW1f7W8USlPjlpBrIFmztMZHcTjQGukDiC6onSZ9S+xdqMlnFqVL1V7xrN0?= =?us-ascii?Q?2sJNmB16lJfhfjqvDWnLaTfA7sIuEj1UWXT9MOClkt5anWbFBeRrRhwP466d?= =?us-ascii?Q?vAIgqu74MJKGU7/KpgUUzJhJ1eIL+U5tlJJyQy4d0VzU8UwyqZK7yUzXkWAi?= =?us-ascii?Q?K/BF5V+4P7AHire1KakLEmwIA4m1ZnpzeGDODKdcm9H0OBB6iwUxWIn52BU8?= =?us-ascii?Q?2TDuwMJNDmTrgaScysO0buddZfYJVCjkp8An+6B1oZr9gNgzP6J8oe/EvcgB?= =?us-ascii?Q?61+gR+VcKZmK3xCyk/67bTqfxYZh7N7ziaXWZs8WO5mWevTJ/8bqjKT9djHm?= =?us-ascii?Q?1bHpyrDY8Q=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: grwpMVkZg6DQmfYPu59v6TlNYAqChcUW2sMoLnQzd4aeuJ28pVkCVJ9I+wp8f+MLExrp/bzkQJUl8rnbO8YVmmxZ7cS+ksz0drFKqSekZqMJE/i2VrjlBa/g5Lo2SFQExKriV8qtNhuio3i0n6vCoPia0UWcaA0Ne4jz77oiLaeLEVpJ368AQBGWSlK5kf5BPFJx/MnFEXxDwSkSZI7JOIvjJXFMBEdkr003X46VMAlQL4pRZksKMeu49zzLn0X8l2nGVCll73IIhElKwTZoPQ5ma/si7YxAePDsNZUmhJosLeW7wz4hk1/Dw+B3wZdS9PeItnjZVgG95Lip22qXdZJqo5/u+52DxiXF5iF4lUPpGCOlNF2TW3435l3pfUHKCjFugJwmUcW0vrHBaeBe4PBHjxXvrgrnIzGoTqIJpskwf2X7PnT98BIWqQFvoUaTGE1IfrptTrALWXGPdwU65wJNRBounq6RZGQ/VZr04E36G6VN6UbIbkZAVL3H5Eq9E0lN9yj6QF8RH+hTGX2nl856K/tVdOniCrH5Eep/yVpylgO8Noxu0vSjXySGBB20ON4JNLbswk3fY9rWkv5li4g7yWFQ2Pjy+nVKQ9UzVdo= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: f2d79b5a-5302-4c5a-1170-08de546d7b1d X-MS-Exchange-CrossTenant-AuthSource: PH0PR10MB5777.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Jan 2026 19:37:12.7971 (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: JVTbXlgt75mU8heis8V4cme/lsvHDA/2YwvE6AxU+lAxacXShL66IrmDYVJauM6knxxe/bmElWL1f98+MEiYDg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA2PR10MB4507 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2026-01-15_06,2026-01-15_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 phishscore=0 bulkscore=0 suspectscore=0 spamscore=0 mlxlogscore=999 adultscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2512120000 definitions=main-2601150152 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTE1MDE1MyBTYWx0ZWRfXyNtKqjPoMxfX tBL6Hij7Mqsz8H/0Q5kmpkztJ9CZpgQNuXgzZH2x9V2HAtVZUsPVFmowKhS3oPUlcfl7LfjAE4g iVjCWAwvlbLGoAmRvfMx84CVXd0Yi8lQUpT4Nzp+tsDMBbB8kdCulqVYGhE5eBOA8U8DNpBOgTa 3bUX0h437H8QEIsRGTklUZSkmp9XrhyOWRfSJ9OCLgxa3U79jZX6Nf+B2zabqs7anBfZOjNZ6Ee ZbOU+nCz7Uxd5mIFUzQitlE73I5OzAzswkcPhwCjgD+5q+mSI0w0nDchm4bxHi4zgyx3WBajfhZ syWfl8hGX7numlNkRuCdBEQvuK95xSxKj93I8jo9CSRMS4pBiDTmIwYG15zrjxAxXtC6Gagu0u8 njKLbXs1+57HBjv6+V8m7K7ogjrZqRRDwm3s/hcCmEO/kqBDm64zDVEzaoyq4ux6rrir8Ylttkg tOChvrR6hobcIuqoNEqzeLnjDteHKvpNb6K/sQcI= X-Proofpoint-GUID: qY6ZhOLfShcYroPirInmZd9IhOf_WSet X-Authority-Analysis: v=2.4 cv=aZtsXBot c=1 sm=1 tr=0 ts=696941ec 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=OdRVoOdji5KT7ucrDR4A:9 cc=ntf awl=host:13654 X-Proofpoint-ORIG-GUID: qY6ZhOLfShcYroPirInmZd9IhOf_WSet 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 e17f0b6723a85..bdcfcdd18dd65 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 05:35:35 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 C246431A558 for ; Thu, 15 Jan 2026 19:37:45 +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=1768505868; cv=fail; b=ZkqmVcT70i7aQxFimu/wmYZC88nOJzLo0xv0HnCaYVVPop0kbcZs4wlrzvdmmsAD6D4Nu+kbG4J2aOuq2wHGIDojZD9/I9wizOxARCWyI3fan53DRoysrK58LqMy/k51F3SCEeCOwscMsK4MPnRUGPPEdUoJOxZiWbBRwxSZzes= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768505868; c=relaxed/simple; bh=5LkT9iPls8xI6zWfAJvROIlD9aadaRlXA67tcBfz9hg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=GcGEQz0JvxR0SbANNWGRbDT/SCh3C46N7HDT0UHqgMVjB+ctk2QuNGFlpGnmmYgEgYtzLLYlu0koUycV5FMb4X5/pGEF3f5SLuaqHy5nXec6cf3FgpObH1MVhAG9wCPOQoYfxp12AbVkPeDic7NyYacX/I98HYe5T46i4XxYja0= 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=q6c1jw2v; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=Hs8kvfUe; 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="q6c1jw2v"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="Hs8kvfUe" 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 60FHQv0b2419474; Thu, 15 Jan 2026 19:37:19 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=3IYw0gmxm31WKmcuelyp8IPfHpeekA9MBbyeUza2MSs=; b= q6c1jw2vd8fU6aSM01+V/ag69atL+T1QOFguWRnjsj2D9kHdM2a7Cyhjb3Q6zgos m3cU/upCeSEqz6RmX5Ls7DroyWT4nsr1CqzvUdt+ELwKjtn+5hs8Eq3jbk99e1/R XiwBPhh+NWWa3W2G2T6E8UQNtobq9DK2b68JckrvF6NZ3rTHYs3uAZxNauo9zUMs EVrZMj99N5ed0enaoovWfudL498BEiUGlMtVEPe2vw9R6/9i9PhA9pngxi9ZLjwz RlzmZHeBvmqUowSelumhV6ult+ftLzL64YPaAc2qeLfLjfYJIqlSXkKys201tw22 OYNyTwjincZcGYP+FIVlTQ== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4bkre40j13-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 15 Jan 2026 19:37:18 +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 60FISGK8035318; Thu, 15 Jan 2026 19:37:18 GMT Received: from co1pr03cu002.outbound.protection.outlook.com (mail-westus2azon11010006.outbound.protection.outlook.com [52.101.46.6]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 4bkd7bqn54-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 15 Jan 2026 19:37:18 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Oy/0gUtZEvpdRb71BF6kPs/C92XthlR+ySUX7pEPZlt6wVRdcRVcMeWGRr2sxIcojDLXLqFBJvy1jzqUOd51lSq8/YfoHSqKteCaxarOzZxoAd9aocrM+2qLVhZXV9b3IwclOLnWhorK+MWRhaL8jJUaPRyCBhYP5FpCDXy7ynCBKpXiUFYHDBz+q7/ngADV+iRqiZ7FxcC7KBQIvw2fxhagTBGmAlADhvrfCptgnt7FzQOU6PoFeAfmrwfFaqbsjNCEi0EiztGl4i0hYoLCE1OsHi2itLdpDPXvldlds0gtockGnT9L2Yn8/F8+BJ1WPcm3hOYbpJa6FFItce2uEA== 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=3IYw0gmxm31WKmcuelyp8IPfHpeekA9MBbyeUza2MSs=; b=V1FG5zzXlEnYeor/bmksEIeJaFE4LQnOHbAyB0t9iYqqMuQv/RVId/jkYkWr5UPYa4xcu1qrDBb0gvr23e4k2tHIgIBd9VuEIq5go0we+CGcY6YuAtwEeO1GL1o13s4bISZPaPzZywsGC7Rb42VCFrl+1VVXN3hSpN8VCYSkuukW5i0h4OibZa5teXYIvoEX59h28Kf0ffRXY6EerkoLWwLKcUKMqcveBIBvSy9BoB690fj7+ZJIx20WSVikLvaFfQTGieUraDo8soF/hXIbY+9YRKXchgauaNg3g4XeWBet6blAG0V980FqvLLkpoOu/hycpelRGvl8wALjcPwiQw== 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=3IYw0gmxm31WKmcuelyp8IPfHpeekA9MBbyeUza2MSs=; b=Hs8kvfUe3dmG1aB3/L2ly3XrRo6zJwCSZLgQGXRRbsCYXmaZHYyx0fcbXsMSU59BMEXCCjVb1HLuKreSAvEOaDIhOzleiML2JD5zRQpJHFjHzXbn+CKj1gu9Hft8UTZMZc/uEPFQPChFuSdbRSqQYqWtUpY5VOk8hR6jO6zvEto= Received: from PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) by SA2PR10MB4507.namprd10.prod.outlook.com (2603:10b6:806:119::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9520.5; Thu, 15 Jan 2026 19:37: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.9520.003; Thu, 15 Jan 2026 19:37: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 , "Liam R. Howlett" Subject: [PATCH 08/28] maple_tree: Move maple_subtree_state from mas_wr_spanning_store to mas_wr_spanning_rebalance Date: Thu, 15 Jan 2026 14:36:27 -0500 Message-ID: <20260115193647.1695937-9-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260115193647.1695937-1-Liam.Howlett@oracle.com> References: <20260115193647.1695937-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0140.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:d5::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_|SA2PR10MB4507:EE_ X-MS-Office365-Filtering-Correlation-Id: e2e069a6-ef9a-4559-d972-08de546d7c8b X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014|7416014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?A+CD+523fdJ2wJh8oZzaa8Z/uPCJHau4VmblI8SwKgVnuMKE4jHZwnb83gHP?= =?us-ascii?Q?DJh1cdmNyxwR8wZtwmJjtIgkphsRC2eNZKCeSCvPSqirfEqWzXAQRhc2gS/W?= =?us-ascii?Q?NB2jS2PSCUcVufBPz0tS9pr4Iolfcz1oI58zo47Okr1/+My38U6FlITkVw2m?= =?us-ascii?Q?sVG6Agg4gte0DDb0I0d309grvDOft0UIx3OkXij/Fiytth9FTO76FRgmvAW5?= =?us-ascii?Q?LVb5Nxsl4W47TVyPBYq9lUQ33f+53uHkuF0gCnasDUvCsWbOIJWdCMFYO6IS?= =?us-ascii?Q?OQPmjzHqHm5VFux5aNNi0jXAW+FclgTbpUEufLt3yWPKXBMkUhZ6AYNs9Lli?= =?us-ascii?Q?MboWv33EEZ16D2t62xFPoUSRZn7yHMnHX66efJ1mzmiFSq8SiE66iOtijZkF?= =?us-ascii?Q?EiCmFPKS76wv28erhWkfu1q3HN9kw0JsPY4EHLKif572y43gIVW8+PxP0A2s?= =?us-ascii?Q?UVuVnSuBYK42twT7lD7rioDu9zLJ7d4HS2r+KxpMvHmXaKMah3cfCGGkk317?= =?us-ascii?Q?rupDbb8XeNckD0DE+pvEUWe8Rpt+klBrwfEJjG103G6WxGn58zIsIOjEfH0V?= =?us-ascii?Q?SjnsJLpaWwP0a45GmoF1HLwUJA6JW2OyH+uA80TDV5fGlxEiwqsPqum4LmQz?= =?us-ascii?Q?eKPuA1YAwPiRT/czrx3UDdD+jkgRPEVmUR3SRGX++tcyPP4pybvslbZXd6nP?= =?us-ascii?Q?q6ddK6eRx/gTCy/LvypCIpM6DLP9dp97+lu/tOvsYT1JKDpmtBGnFrPSXn1V?= =?us-ascii?Q?mzJa3Lt7Qm4ABRCPrMCVS4occ73qv/Fqfbrfe2VBGXXY/WDdCVdNMnh9AKMM?= =?us-ascii?Q?Zm/YwXQNJ0f10TUBBunSv787l7zDAKcYSdGt7y2PVEpudB/9LN1ezofNm8H6?= =?us-ascii?Q?xbfAoa56cQLhzAljMDiWy/3L4fDYSEI+Y0RaJ3cr0Lj3Srl4ddsWYigeOszN?= =?us-ascii?Q?J6UEakiYHO4MPu1AKxJp+georKu4nVo8IPXTst6VpB3mL4bauOyGKOgWm0EA?= =?us-ascii?Q?8FDmpc886LkEFr55uX2xc8gSh5k8sJyDNdl2BFOkzhwCmRTWC3Sgx0QL25Ns?= =?us-ascii?Q?X9BHOUrJIofcdGpW230mTG76Pi3DOGCGAYYUvbnH5hCbMXrdYb+wE+JNUJs8?= =?us-ascii?Q?I1GOQQV2x8PMOeSs98xFaCQmVn7G9m/iofhqi9Iin+2EHA2PYj6HZ3EhPsu0?= =?us-ascii?Q?f7d/8AGvp/C0lej0Dt5dB4FUIUoTcNCErpKN5WGevPIavwu0PpQOJjJRLi/9?= =?us-ascii?Q?KtCtQfezQDokjbQKoRS9fF+INTVcmrNNNjqRkNJrGieQNkBc+gT+XnkjJ5wu?= =?us-ascii?Q?dPqFQTqa5JO8yV+fkkfs2OSLFFAJ4COY6Pf3cyEi4X9L0ve3Ky6p1sWRaLKb?= =?us-ascii?Q?9PEdRQbhKQiURH1gBolBklMjcG3e5OzDrIAGyGRWSsw4rUdTdwGumXlOUCl6?= =?us-ascii?Q?4ahpuBjPCRF388qYzEc9zRj0Fihz4aZtS4xPDJCS7tZYsXT4C5B1mWAwMogh?= =?us-ascii?Q?+99MCd8HG6eF84Pm/E4JCOFujy6/sZixV5byAQJr5sO1gNpnxuv/25nEhh8P?= =?us-ascii?Q?2bCFaSFp7pF9ve2oDio=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)(376014)(7416014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?5IXQJhIo8EnPR/iHwN+mjr8WGRe/1OuMdZpu8rR6V4Q3UMZ1+5wKpTvxgZ4a?= =?us-ascii?Q?rQOvEbd0EIWLFpG9kUwZLdqG54VxlODx/9PPFa06Hc9WMRFHOkbQdfJG/lLX?= =?us-ascii?Q?+KaRTWks8VBg63qeQuC1Vw5WsbAssY6gI6rF1uBgDWH3NEiV7KSsyafws6sz?= =?us-ascii?Q?OqAYpot5R8G5dXgxwrKCxVJg7gWfUfU9xXdoqUvIX5s5+q6HWTfdPKy7X9zt?= =?us-ascii?Q?vm5pzbnk+USJYAAFZUvr16mlZDpPELfj2LR/E8SqjG251kDc2UZ9kT/WooYX?= =?us-ascii?Q?kF8W9728JGxF4Kmx/5cdu5kRZsrRO9RJ5Dgc2jgGOlVn0/8MjUhymCDkJW0j?= =?us-ascii?Q?qeHZF5d/Wr6oifyu5q/09XwLgJTDNiwnox0egj7lAoELNIMvjduXHTpWTz9e?= =?us-ascii?Q?73fxqQzFlFMDqAs5wYl16/lnt0+3kaj3N97yd9e2397g7DjZn/wPXyIRr6ED?= =?us-ascii?Q?NU5bROlG/t19DnO9i8a7v10gcN5AxSUvjnJ5/i0W5fm/ZbE2WzT/lnApzYIk?= =?us-ascii?Q?aEh6++0ZA747MwdamutL4tWK1XUJki63i8yhxBZjfJqsbbNPRTiXxKFiElAU?= =?us-ascii?Q?Rp1DuujFPkcS1v5rBVmEA//eV7MY+frGPdpme2dfK5IZblF7zW5vb/kW+qs5?= =?us-ascii?Q?cJvc46IA5snr4Ih16euVzbaf1qXdkhOLa2/km1Ry5PhIp+maIBupLj5NhynR?= =?us-ascii?Q?Xwoaae83YYMmmDmNjozexEpJza7yhJq8T9Eqhja7mtiuwooi4pf77U2odr0J?= =?us-ascii?Q?xaTPtfQlpVy/sgvvF8ISIkn5Q5lunK/TT2eYYHTuSt9sRFXHwR5voxz12Gp6?= =?us-ascii?Q?71Zi6aeHRS9zDsj8QZimNVDwLww6BK8KG9R0xeZk73APkUQ9TMYhAG3zomcB?= =?us-ascii?Q?BXAmyV3oOyK7+1uCKGrz7SvSjUm0CZssi1uB+JHQ8FYPCZH6gU6HujABN61Q?= =?us-ascii?Q?oQ4kiSgXyiH8n0TIIR6Wf2qasmOmzM8CGwxyJt9eMU5c3r62Lptn50aofx6U?= =?us-ascii?Q?eXkgt3QdMRij3N3Fa1oDlFZE2DULhbLCajxkgO1B9pbXgJe+FBxDO/sTqjVI?= =?us-ascii?Q?Ro5QNWQjuTRrUAmLxk7blP3m8svr5ci8fj6JgkaEBce0s63QX9jacUw5YplZ?= =?us-ascii?Q?n6OrhzLY5W7xC5KAVcgAp68PfJ7kPlxoErCmbqI+CWh9x8ll/Zq7hUoC+POM?= =?us-ascii?Q?aeklSuyRED5OoT2FK3dTa6mZ9I47b6bDki7d/R7WbcbgGWOhteuzI3Zae01h?= =?us-ascii?Q?Gnbh91upE8gVHwQOZLPjFRb4aDSClA0V9vENRgy0oJ7nMjnmJUzuCjd+j49t?= =?us-ascii?Q?cIG9UzVX68IT1iFwBvioXMJZOf3R/AvLxjMZPwYK/+JMIXADdIBUENefqnVP?= =?us-ascii?Q?mEQLs4Pk/kzFox0YynMhq7fWFJ2jQSEcWkvW1PVuA+gwrbT5IMjOFi0rzZfz?= =?us-ascii?Q?e4PXLVaiunUmoT6L9BZJjqYvN8cQxSP4fVCj60SgqI4Rrtm4REf3YqrSh/3e?= =?us-ascii?Q?v9rIESMOObwsxfnf+PBJdJ4GhKyBly79j368zsyu/9YicVuWXfac5A5h8WK+?= =?us-ascii?Q?Cb/iDQGpg+OSLvOTRiA6icdfyPNF8QuP1OgqWfZX5zKWTYPUpo1PR+se5SLp?= =?us-ascii?Q?fq+4pjri5A/8p6R4CK5CS5y1MNeZ2MFcaSkiIPm8gsGZSD1WPHhB5WK5P7Dd?= =?us-ascii?Q?9KNQY93fBxEilNUiwpZw/ft7KKgp8LIKXMSvnQp2YSKmlG0gIZq+6pUzPQMo?= =?us-ascii?Q?Uju99bPehw=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: eKz9oH07Rnj1Yv8CLHUGkdWXkg7XOK8nTh6R/PVNT8G4ar/7kpqzN0j/VsQE7cqSqJLf1ffEEUVV5OXGlwAjBOROdDQc6FjCN1Wh1MrrzhJcGUvLPmJFXwJugKlIvme6saWE0dkBTaA8X3JYBTHpErwpCNE1RtytIj+000VXPITr8hI7tTDq49LWQvRCEBHngr8gR53/r/FWUQxT6/4C+8BeoP7tCnN9Z4j1j4vlWqhvuuabc6zM5ptuNRpRd4yBjjqTg5d5s01qD8kjdDa48DG/GV4CbYHQBpqxzCU1p7Cm6sKmxUstOx+BCSqowvDrE61eg2SJ2Js5k4mDNIjUYTDnCLutdhSnf1rgXLjhnaTJMiAOO0BOWV9Gb0/zIvebxm3i4ZKFJTtkOiGcrrGIwD4IkHOxySQRKyUg1xWYd/RA+zQzmTdUQzKy/ganRJsqzj7tSZd9MVhfn6XIvZ32r+X0x2yzPootTZirjjAlx9y4qoASdbIvuu3D3zDXXp7LTxccthXb2gxkaTK+uR4EeCCeVXuKdXCDqI/7gCndB/8TZB8kKijDTWLMTEzPxT2sVwzs0/sGPU+NBP5oEce4OMGL8X9ruQsrBiIR0OyvGyI= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: e2e069a6-ef9a-4559-d972-08de546d7c8b X-MS-Exchange-CrossTenant-AuthSource: PH0PR10MB5777.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Jan 2026 19:37:15.1809 (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: 4P5GXY+91pg2PvIa+C9Abx6XNdXF4dHE8ZU3xsdh6B+dTUZf+cPLt7homaCZmmB8zWIpREk+NuRAHklion5ncw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA2PR10MB4507 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2026-01-15_06,2026-01-15_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 mlxscore=0 suspectscore=0 mlxlogscore=999 bulkscore=0 malwarescore=0 phishscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2512120000 definitions=main-2601150152 X-Proofpoint-ORIG-GUID: m4pfhJCt13zCM1xIfEknYO0cMUpBdrqM X-Authority-Analysis: v=2.4 cv=YKOSCBGx c=1 sm=1 tr=0 ts=696941ef 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=CYoulDwovmb3McnCtv4A:9 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTE1MDE1MyBTYWx0ZWRfXwOKQIPF8DhTZ y6HHnZPNcfNEDGfIxCFkCcwvbiccAXHEm6E32mBZTf6hXCBHofYfeSxfuDn9TUjLw4/kpfVpeJc WB0Y7ldXK3d6264lSrSlcyyEWW/lHBFmMhaENdro0afnqL02XOs6AxJftapy97ow4CLHW5euTdq IeQXjN2ZRvtUrcOtB0w/2RHeaJ9aX+H7AJi7i/z0Z4jqIcXd+KWhRVrVMIH/voTN4v7VhXKOVl9 WPlBFYkR3+ajR636fEVl46qf3u2gVCVheu7XHgL6Gaz9a/n2gxO5b9OYyGU9l8Tg5bey37q7vWv xVurJ0zfBtkTJsOyJhzhqaHMt7jv25BqV+0BIUNXXAzsy06/Jj2oKFZgV3TyrRwMpaZIq2gTQEr ADnbvsCYTDjIgEbA+IoIDUUS7cpcTJgnPpSxDZuAdt4Y3rpP9iQPqBh/fjMJ+4JR4U8LvT3wQH/ EcTFXK0O2smPfAZ7sUw== X-Proofpoint-GUID: m4pfhJCt13zCM1xIfEknYO0cMUpBdrqM 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 bdcfcdd18dd65..e3b9d6687e6d7 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 05:35:35 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 C823331A053 for ; Thu, 15 Jan 2026 19:37:42 +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=1768505866; cv=fail; b=YiDLuEdq/fAbOZoxEpTI8COd87h5DDHyNreoUCOxWj928BOOExBDw3sjDanA4hcSyMXR3qth9S+5adpcAx3xJJ4WuISTxYAJ+Dzg/K0slf5xnO36lJmjHLw7jsVpe1L5jFE1Fq867H34mhzeaytwmwiwIhOAcEvMnDfZzkULDhA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768505866; c=relaxed/simple; bh=18E3aIcOs2x0jEc/TGip1r98AqlrGCajt2hfvZGJjPk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=dbiDQVg1dpEjICdEZshormabBxWBscjSYIB/c9ze2gWk3hlqCI33ERO2vaQgyLNTjU67aqXIsx1AzzOFFfQB3KBBlLYEQ2l0TdS52ZK79uAin9M3OiH04X70jbEtd5RGn9zsr1D67a8+kvFWh/ApZOJmdZsZyhqJAVFuok9/m3o= 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=nZRwm0xF; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=sX5MPXtz; 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="nZRwm0xF"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="sX5MPXtz" 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 60FEoA1T1362590; Thu, 15 Jan 2026 19:37: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=rFj5CmPxuVL2J24845mlzZ3jgvVx4r7jprQdYuEyCXc=; b= nZRwm0xF3pFaNX8iKnzlWc7a1n5g4i1odbbOI+w//uhhK2ONHV8oQSHffAbwImp/ zwtFryEza0Y3ZaZb+g+35yLf1Gq5i2Bj71al+9XfjEDoACEdf4KFX98eTGIkCW5f SuSwRfoqE+1xn6UIU/CBqzg5SqJjdu0sE5Jyt/OEQGmwMG8xb8Z/83aGU7hPCjTE BKybbcL3Zr6IT8ZBwgvdgiUbxlaOLJlJrPhiPMobg8IbhOusWmCQf9qgt3mu15f0 T5+IRCiTLZiIPK4BS8phtCqRi9DKatiGCIPOyD/eYWltrFiz9BJCHFLnRIb7bG02 DI6r4hqOM5Ku8+V3tpsTCA== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4bp5vp3s4t-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 15 Jan 2026 19:37:21 +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 60FJOrsw004503; Thu, 15 Jan 2026 19:37:20 GMT Received: from co1pr03cu002.outbound.protection.outlook.com (mail-westus2azon11010029.outbound.protection.outlook.com [52.101.46.29]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 4bkd7ngu7w-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 15 Jan 2026 19:37:20 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=nETVIAYwEUPWVXQnVXxQ+EIsJ/+bjHFcKmLAfy+Z2noQtKrhK5kHDDE2AMmnwm6TT0J4/X1Ofv+/kDJHwyOe1EZTucKzzqWWtjlrsiG560LTm1YfU66vzpDfDrrkFhJSsKUK9kpAFzTjCae2CEHfb5+sgBIXyzbtHOO75DMUEPVN+phHmA4fi6Ksb4/NLY/1vUzT98KOeFPPxLmg4iz4NUbNPE8KxT1r2MSLODwMT+ybzsrbXyj+UEaywlPvLD88XHkoAenSGuTw2w/XZ+RI+M2fG1k76RWQz4Nkxfc0oNdTSzqW2EXosauFPBUw1Y/PCq0OlUHHdtS4MZrQTSXERQ== 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=rFj5CmPxuVL2J24845mlzZ3jgvVx4r7jprQdYuEyCXc=; b=Ul6Ba/X0LS3q/yFywZMpBWoASkYvmgTTbANA2R3BIhktIl9G1bUchsKEuwaRLlS6S3sjC9bjdoafsNHYq0+jFfavAI1DPyrIupGqdnNfCxHcOV2IDTTklK5zo8ymCEHOdZKwh/HNrfqXycKtMdSC96NWdxZpANVM6Au1tEneX/HPxji0ZYX2US1Byx+LhT2RVsd8t30bRVZct7De49Wou4GgQYalEgSWRjJn6x81Md7axTYlCONnZfi8Gj4Iqgbfsy9RsnSAeaynubJ1thbYM/rm2bHbKR/xi1BlSq2aSm36V/GjFqoChDEsvDjTKOTekq7qhIkZ7p+PEru9WZdZtg== 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=rFj5CmPxuVL2J24845mlzZ3jgvVx4r7jprQdYuEyCXc=; b=sX5MPXtzHohviLp4V9zXA8PgFUA9ureh9qByTryYl8l8/ixDKlmchYVB9bovUFFhxbIRsnO5UKJEdKUkbtgVsbF4+ngngjHOFIGKrO/cmNu3/WzqJ5ZKxqY8v/sLho++UzX+IxRnIH1xIIndbNlryBk7wwuodmmH3DHicS/Rk2g= Received: from PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) by SA2PR10MB4507.namprd10.prod.outlook.com (2603:10b6:806:119::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9520.5; Thu, 15 Jan 2026 19:37: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.9520.003; Thu, 15 Jan 2026 19:37: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 , "Liam R. Howlett" Subject: [PATCH 09/28] maple_tree: Correct right ma_wr_state end pivot in mas_wr_spanning_store() Date: Thu, 15 Jan 2026 14:36:28 -0500 Message-ID: <20260115193647.1695937-10-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260115193647.1695937-1-Liam.Howlett@oracle.com> References: <20260115193647.1695937-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0227.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:eb::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_|SA2PR10MB4507:EE_ X-MS-Office365-Filtering-Correlation-Id: 7679352a-d1f5-4a39-81c0-08de546d7de9 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014|7416014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?r5QvV4Z1Rncq7T0a+IfPo9uBqxq/PpbYWRpRSQRVxLCuxLnLiisvSwz0tSJJ?= =?us-ascii?Q?vIWd7ID2uVMgiK2BJTjKfKTmmgpOO5XXENhBbekVleLfePdVt1uwH2x12YW3?= =?us-ascii?Q?h4Or8TqSnpmelj6Hsypqmb/GIr+1mZCbNUeu0+qHcb6w/MlXn2kYI7RgOrRy?= =?us-ascii?Q?TIwQYlcwWoweDNvsouuJ9aRjDCk375GyzJ0+Z4ag1kDMDFoBhaLmOrbb4Jz6?= =?us-ascii?Q?FaNnkEulgAZ69Z11BqrbHFh2+YeplP4tJ0bINPq/G4kXVlyjTIwtXbyYfQwd?= =?us-ascii?Q?e2GbsPwApraWLddAMAEk/4k7gPtACI/GukR/zuy80yVfzrCZrfCH2m5NzZaG?= =?us-ascii?Q?Fi4DJXUvieDARtKTG5DgaFaKQasyaCoqLIFi5jA8xeDqKgoOl9tLjQ52B0HV?= =?us-ascii?Q?H30OQMj/vH+RDH3h4qUKz3fjhMKlA7Dauo2zToGC7H/t+7uEFi0UKqovTvM1?= =?us-ascii?Q?W49wa1Sft0bFTHCWBGYyiWuAA+OiiVE1N54KKRXCD1brcHFaNhcOuw9vAOUg?= =?us-ascii?Q?mmBQcdBcjXOmSBlh+eKfuZYNPjhimjFUV78H8C5U9N96dIOWCJY6LoiObMxB?= =?us-ascii?Q?PCBbMX3Ytw2xjoOqhu0K4PNFL/IS5s62uxAxRt/ywUeqnuDdJr6YVS63HRut?= =?us-ascii?Q?/HM9PkbpJzFk3hozpxRn17+KmuYbTXx7pV5FZQOwNHdcwv2Or7Pkw5aVvNzA?= =?us-ascii?Q?9UPYm2EpSF2to3fX0IXCcAxbxArnEFll1VuX8c3PC+nxhn9ISwQ6gznrjXMD?= =?us-ascii?Q?CJc6pfHt8d3KWUqG3FYGH9nUKQKbJ4/mGeZZhJrM+xS6MVySem/GVFuK3ZvG?= =?us-ascii?Q?JjVA2Lycz3A8xaTHgrVmOAAY4eL24VNhDjEbuRT4hsX4FAP/+r00Ji4QY5O8?= =?us-ascii?Q?9lYeJqVKWQZhmryRuLiPmCledkJOeTAwBFfW5V7oFL5SXtheZP8tymwyvnME?= =?us-ascii?Q?D/4enqhlOy0apHoHecGtlZp/gH1ZO3GFzM1YLh6rN85+GgdobcCeflhgbb/x?= =?us-ascii?Q?iyRZOsNX0VNGGZ313W48quMQpYVW2GjOOTq3Gx0hpn/WJQfCUuf3ZF0bu990?= =?us-ascii?Q?yxPYSCWzIXnjiYlcL6P+VS8CQNxaCfuBzdZKt9ggc3l6EPDIL019O5q1QFex?= =?us-ascii?Q?iLBGX7PvmoLVHQxng15JhHiRPP4UwdJEN0e0vFS/5COfbTBAVzY3YVwUo9i0?= =?us-ascii?Q?ILnRqW4lykdw7HDYCEKyjat1zWpl7Ds1IqhTrtNnoHd02eQFNBbauSGh4NPZ?= =?us-ascii?Q?OvATKPBz4gEArEAwCaOQQmJhWKkYv+bSof2QPR2XtS8a5asrtbCjYR2Xg1sg?= =?us-ascii?Q?iVP9dqI9pYtb1SnhXE5cC8cmNX2fDPx2t9y3kP6gwFiZkW7J4qN8VMAGgJiL?= =?us-ascii?Q?oZBYWGRnGUk1G+ZYE9VDMASg3OW2KETFK2hpupmidg7ASY4m+WAx14HyNgE6?= =?us-ascii?Q?ycaIwjUyJOL1Ec0wsUxm7A/OnzndEpOZ4pJ4VKmWehg5mAmVQPF1XCPNcBMQ?= =?us-ascii?Q?pONsvpgstfL73J9auRk/np+2XBijPrYy8585tqtpGcs2qOmSAh7TYfXaQm/C?= =?us-ascii?Q?ItKFzmDPyOT0lxFLYj8=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)(376014)(7416014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?smAJBIqXY36wk7mxvZdXukSRsg2C6CiWDTpEkQYu1DYdzvowBpzMqOFatJVW?= =?us-ascii?Q?qrsC4QbnSURIux3IKhy53/LcpBmJ+JfNwHhk513ZCFZSplosj7iHOKXsNXra?= =?us-ascii?Q?9Az/93+qudtlS263myJhNkwYE58Z4hthxREtfH+qf/PRvfcF/fbPtS1K/5c4?= =?us-ascii?Q?4JV4lO34Et1roRdq2wohRwqCoKPBXZoDXPW3WmEizPGrk8Wzinij/Q+Lw6dv?= =?us-ascii?Q?3Zua7ATkFaC+1baeJtBdJutNtJboBe0T4cjLJcQ5sErzSUBXE6e3ATsN6GHB?= =?us-ascii?Q?AuH+0cEsVqGGCBpz2M2FKkDwNpNezpySrkOfS1rfmjt9B1meREEsvVaexJ0n?= =?us-ascii?Q?7cY/0CSXGyRTLwEZS4LYskzAld8VCbzCGwRNiZnUfLbKnnXfYOPjC8dcWDj2?= =?us-ascii?Q?rTFUSTOWSp5C8uNgKQokWrqV4BA36j2DC5EAx3vqt4jFybJcg+kJziHSPVYl?= =?us-ascii?Q?xmYgHUEmVRXc+KK8M+HMDI0G6fI66Lhu4zFePfiecyRWjc9FIuVgmFCCS/yw?= =?us-ascii?Q?zpGZDlJpQbst1GQApz+8aK8FOH1m/xOXF68FkfOtOiIVgm6clSFK5DjNYQHf?= =?us-ascii?Q?s/zcvbAkKeJWeRZn7BsoZ5HILq3PTJuJ7056ZS0DzoPTnc7Lf8Spud0cOB9M?= =?us-ascii?Q?HaTJX3SJw73e1CgzJ+xkM4ix7CwKz+YgQJmvucIDSEyrGHOMVxks4bRK+p0d?= =?us-ascii?Q?+x1qFjIhR6XQIzhlytIz3EEVFMPkoOTKPQXBFLU6NxllK/9PDleXuQQn/8Ag?= =?us-ascii?Q?cL8icvrzMmcblifKeAGWpnaa8+nkwoCfs8GaazZ1/0vwlLeHUG7oxGPJlase?= =?us-ascii?Q?xaSafe6cwIKrr+jJ8zSwPCAgIdMPOzj6auNXdZeA9YcSitQHx6y5l+iNlx3e?= =?us-ascii?Q?rFSlTxBZUbbc6mi2/gTWTV/URX9fThHB9Mgb9l10ComZuYyqzMlkDxV9CRwq?= =?us-ascii?Q?hGBPC5SwWxq9VpC9kGQwSHud04fHxqHHoa2dXMV3y9p3NbIvi9ZBpkAgbpdM?= =?us-ascii?Q?Du8fU7+5nxMqrV9Vm5M97BfZfU5ewN4yaezCwKmIUfbDzyXzOWPvOYSSlD12?= =?us-ascii?Q?WWhlPTfRfi0PLOJdYg6x69RSwCqsSyWdNKrCbgJXcdvqf1VSmv17qxDKpkf+?= =?us-ascii?Q?gEmCuU2ZNIjzPES1X17MtjWSIcs3ejXgG4RdljMEQW9E3qprI9LPa6WTTgFq?= =?us-ascii?Q?mXAV6eMbqUEJDExA9ckh83C6Z28BYF+n8w+BTJ46wTNCB3R22GYkOEYNF35n?= =?us-ascii?Q?hjtuP0jmjUQVaF09NCaOY1toQrgsRoA94B6g+VwBU3KTau1NW41pr8PbqziM?= =?us-ascii?Q?thkfKB4mEYEHJxk6CP/pv9yerQUj7OCDyu5Cda1VXgxTAQrQiV3KaruxDQYL?= =?us-ascii?Q?ALQPICUgstLmWRDSASxede8gDGXO64mQKTAPrhN7T2tndyGeG7LX1rbXZMPs?= =?us-ascii?Q?2+m7B3CUAMtbuqbSoo/URlCyqLyRJcd7ppju+TSAn/iSn5Hdx9akqXf/0Fu8?= =?us-ascii?Q?eP6wUWL2OaGiyJKYV4n+Zu9uo/QLtDoCyWx3ChkVMjbnZKA1NICD6H8A6gcU?= =?us-ascii?Q?D+tnrAkT5cNO8YFZhOJs+lGlRPUVujwYlGF3VrsWo5H5qIu0YnZBO0dSR+Dz?= =?us-ascii?Q?mlKHUlkY2cqtlf9H9pQM7t3jzBhr9ib5ak4PhEloSzh1lVkKhnzEoorYk1Ip?= =?us-ascii?Q?5BvhHi8IXvkL2aMmFuQbdiyo1BXpxJpJfDmejtXjEKbWLFh1pEmXkOVInYkb?= =?us-ascii?Q?veYreUp2sQ=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: /29RLRrSkVgIHejmBXaIyKvME+KE4u6NejkreYBmfpZJP5saICVsh3n+roeHL96d9/kcYznwDDywsdIDXggbIUNQmtjAktcLcA1B1HNAcAr07dSdUo5fug0WheC19zaKX7AdL4NTcGuHrYrKAaUYvbGI77Uh2iRw7dcJBXgVc8qV+Fp/VRssQ41K/8fq8ivpJOBNkuJuhK/k/ekx6hi/gTl1Qg/OBWRrIZxkElTEBace0t5pwhhudopObERiw0wzQ3p0Im8zT3kpsSdALS3r5KtcIbYw9wwyy04KxhRdokzSNtGiSmcu4Y78zova4zH7h4cdSC0DMo1XQiTiF1P/gbLmSkXYTUzWVGQnJSYN/CSiwJnpiTEU9NILT5KpIVUOwE6tvVADrsVAvfPIwHn+ChXS7HLrpfK3l+4JSwvqM4rtH8zniwurtgMKWP8nFsJt/Mi08IJXj0PaYfgCZQ4MzNQJNK4Sp8oe627sn7MrUKETVXLC6G+W68bdOgusc2IosJ70qnQBsL1k9PRcJl4rtjyKRIssawhftR3l83J29eoFAeoZtKPxwRDzZCcnnak9Zf8JLvg7aWEJsLCrR0/75CFFwUeQaYQ2XqAGB2ZEUzY= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7679352a-d1f5-4a39-81c0-08de546d7de9 X-MS-Exchange-CrossTenant-AuthSource: PH0PR10MB5777.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Jan 2026 19:37:17.4695 (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: 4NTGr6jfD/CpNIfyiHOggveX4vyUM/DgHbgUgBBZX1BGvg0xDxZISHoi2HS5L+P7qLfcM9hwcqlOGFjt5V85xw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA2PR10MB4507 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2026-01-15_06,2026-01-15_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 suspectscore=0 malwarescore=0 spamscore=0 adultscore=0 mlxscore=0 phishscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2512120000 definitions=main-2601150152 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTE1MDE1MyBTYWx0ZWRfX5IBBIYJlnu74 mlIIg3ym/Wkkb5o7XTFgCBU8r0UnJVvUaNGv8DMMNSqJyQhr/ZzsYqY5ykg7BXIQa8x1QlztGCX r+bQ8vEZRs3ua87b2gA5hVQKWC74FAH3UH/VSPVqt2HK26cibDFlVtG70+MrruH/tZcN9tDEhrR V/yOWLShSmADAzoeJ4yJA0RPWiG/eYvHq2iQDo0CMeQUw+/2QHine0JZoFoVAlXVoKZmeTFUBAp aApg0Y03W42kt+V/Wxrg7psQ0uYHnoGa2kJHfUadKpVXNEpQ+bGbaBJyEZtP8VxuOpItzl0TIq6 JTlmyPtM7DvpeEIb3ec/hZu7ERIKt75PPYyvA04j+FC90QtDjvmQt4J30wS2M59cdmNk2GHG44K JfMad9049+ILbTHoP/arf+eP63wfj8d6tXG4dLj1tcBNrGSabxFvLnzcm6MD2Ufh9uSbUc4mNwm RI0YcNK4qA/ezuvpxrQ6erMo6IBeeuWm0F15ivOo= X-Proofpoint-GUID: jCv7Wpm77thIZIjAiTZG2uN1LBBvdiWS X-Authority-Analysis: v=2.4 cv=aZtsXBot c=1 sm=1 tr=0 ts=696941f1 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:12110 X-Proofpoint-ORIG-GUID: jCv7Wpm77thIZIjAiTZG2uN1LBBvdiWS 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 e3b9d6687e6d7..8cefaebf414d3 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 05:35:35 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 17D2A31BC8D for ; Thu, 15 Jan 2026 19:37:46 +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=1768505871; cv=fail; b=MxyBrKV2RpNOhvVNqZEstM2FA2qXVl/9Sn70GYKOMAxNgzSZX3+fVFgMu0kCih7R66/i//V9dyKW7EzCZ5pLyPa7ECsJhv0De299BTrgIwQIynFeiqJUmA8Cxq9VVNoxcJnsQ6OaKeWcEtVo0qEfnsIx5DtHMuuwb9PH0POoFhc= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768505871; c=relaxed/simple; bh=RbNCN4uuU7rgjsrfAYVapKqtBBiAJkEAv4du0L/Y6h4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=YKIX/rRY7eAZ5QUWgeyoiusSZ4WnbCRh8rS2vEPFIraUJgENWGFh85PZJDDvBdCg2qxzbUAr/kDBUn6ER/c4raNV+D0MfxsiCQudSENrk/Ca7XhbNzGvEk0ZZWmy2QH0x2G4HtHIkFRPHK5B8mai98ZU2B8GOTK7fCe1oY+OM2s= 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=LtXLaHGf; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=uHeWMfYV; 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="LtXLaHGf"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="uHeWMfYV" 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 60FDqZao2812228; Thu, 15 Jan 2026 19:37:24 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=3ahrIF3iuRxe15ApaD/d06uzPS/De8CuIODyoNbl9QY=; b= LtXLaHGfJ3E2lMMZEcmeCPCjaEKui1Us9xtK31t3GCb95h2+PO1VaNPl29EeUtUy fniYgSotVu0bI35vFI95ZF9qeue0l2rwQGmV6xJ4s9sbJUwcrDgCr/7aK6xQZG/7 umGiPG2lHdeU/IJD/T6kvaMJf5t/4BmQfSv0lkPbgC7GxEEZS8H5F5DX7uttHgXQ 0+g+Ei9na4rSGvoylta2FpS+Emf6VNjopL0S+sShkOKbhcWAFM+bKXZBiamDF10B gpugRatZdB0TSF2tmg6sxNqZdtqE50JoSuVdT9F6/ff5uFgv4BmZK2/zo3y9YaH5 b6m1h3nJ55vgTDKymQTe0w== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4bkh7nrnqx-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 15 Jan 2026 19:37:23 +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 60FHx4Pc004278; Thu, 15 Jan 2026 19:37:23 GMT Received: from co1pr03cu002.outbound.protection.outlook.com (mail-westus2azon11010023.outbound.protection.outlook.com [52.101.46.23]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 4bkd7ngu9n-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 15 Jan 2026 19:37:23 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=rJV8H3iJwH4mC+M8FukjiriRoUIIL3R6tTf9jfIjTl9bWtoccxSJ1Kb/c5uHomi2660+GAqAFH9CD7yN60JppuP0WDKeyfcBRZrqwdou9NVQqsj5HYOM1+6Yjdv3zq7Lx90f8zbWoI23WcjRfcL7xLRQbACn25QJ9L3jMSkjR4xRK7CPTjx7pBOB/NwlpO65gqjedi6pVj6OYzO9xBsY5XojGYggk/o+Dx+xUZu7eZHBvSab8/mYfAFJ4zv4uaVx3H7V+RiazYt++X3GGmE5e86Gqv4iJqdHdAawyL0D5rGQ5h4jBMBvuazaD5trBP50PC4Eo1AH2BQ8JPTqVMYXBQ== 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=3ahrIF3iuRxe15ApaD/d06uzPS/De8CuIODyoNbl9QY=; b=c15fKFFMtg+k601M8WFDwE76feVnSvF8/KapcsKmy9h7nuBcNMeS3YesgigfehZu4Ty9Sdjhv3Jfl5WGzMgScorXPEoK/nqAJyUhFsLza5u1DZBAlDKFzDDXKlD0zEUwo+Z3W9H6NRnvu2ZpNWXvNvumcm9sByiulVp85WYC35SeBRd21wNOniqbZTDFy1ZYmKLa4ohkIb+NyRqBpchXmtZlNS7FypVly/npecb1oyZrXOvhWPaNnQm9pTg6TeyIHVFKM1vZ7dE44uyRuPytt9b+7jZnM/NATdM5eEgk8epN+3mgCg3QUrJJT6CPEm+VOgz0sxIohnHF1pveSmFyDg== 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=3ahrIF3iuRxe15ApaD/d06uzPS/De8CuIODyoNbl9QY=; b=uHeWMfYV4lDwD4X686amnwb8Aklzh3YFcOJEyI7K0OeRq7s19W4dDjUv4w7pzNFn+DSe5pGQx1hyDq3juuZNHbx4lYu7+dBf2XBwegKH9y/T/hX3fe2C3qsS54/3bXRMMfg1QMDWPoWk3onBEkEgk4ruLj4v9guRffAu244BEGo= Received: from PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) by SA2PR10MB4507.namprd10.prod.outlook.com (2603:10b6:806:119::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9520.5; Thu, 15 Jan 2026 19:37:20 +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.9520.003; Thu, 15 Jan 2026 19:37:20 +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 , "Liam R. Howlett" Subject: [PATCH 10/28] maple_tree: Introduce maple_copy node and use it in mas_spanning_rebalance() Date: Thu, 15 Jan 2026 14:36:29 -0500 Message-ID: <20260115193647.1695937-11-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260115193647.1695937-1-Liam.Howlett@oracle.com> References: <20260115193647.1695937-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0231.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:eb::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_|SA2PR10MB4507:EE_ X-MS-Office365-Filtering-Correlation-Id: 0c0403eb-a1ce-4bce-ff51-08de546d7f55 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014|7416014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?QRtFfgTvuoSOS2CXiMA9vPwIDFLbLzlG7N7MlGykxarndWZuTxjajOwPRGZl?= =?us-ascii?Q?sOHQvXqKGahbUDjSpJdJNxSVqAzUYR3u5JtaK4l/80t+xlfjI6he0XDoB0VV?= =?us-ascii?Q?ezBdWouEj53RCeFUxoXab1Q7j/R5QZBB+nJjjWXc5FYpuMhE+V00xJV+Wm32?= =?us-ascii?Q?XTWFvCJT+UQLVKT1EmFRLVZUTdoCMagkkiXtNy+KvMVB5NHrHsdZ+GH5/9/j?= =?us-ascii?Q?+zJu8Ff3rARfZsOJWWdmQO64rhZUFPuwMbkG3ENU26zGKaUcxhr2+2waZuTT?= =?us-ascii?Q?yKV2Y6uwfEILMvyHJNU7BvHuQ1xhzQ5NtQMjyrZoHP9R0ePl94jpnS6ZkIqr?= =?us-ascii?Q?jkPqqIaIaqfzZqnox9Kqkcf6xayLn/Me3Da8yeF9IFsDV7pUUQ6hAHuyaeLO?= =?us-ascii?Q?qoA2PGNO6PBnfTf2ouhYpKXUZ8bp28FIY4vH9t+y0n3H8tyrPW05u7Eciag9?= =?us-ascii?Q?1/9Fzugw23IbM13d8T1Qb7xTmt5UZtdc1pg5nYF6ZurpulyJ8W/98CvTKAZ+?= =?us-ascii?Q?JDupe7vPj8Ybxjqx4FJ8Z9WBHBwE9S338LK0AhHF2AAdH3GZ1jilUXPKawiW?= =?us-ascii?Q?sCk+sWYCMkB+isz3szpmrGfKiuBy3xbItParry6jyfkWHSZ49gbudodFB8p7?= =?us-ascii?Q?sYaRRwvBmkuZ7vgeS/i1FCi+udu2xNg5KIm/uKpZ8MzwDXjb4zCrauBdL/zf?= =?us-ascii?Q?Z3bpZ9XszFFToVBDLkiU1O2CfN8hdGJucp5wbBSVzqs5Vqk9s2mdmFC0WgXR?= =?us-ascii?Q?6LlIK3aVTVbbPJUnMVPLImlwanBLTHs71pnFrUxSnH2/NTjU7B7CyGHhLOE0?= =?us-ascii?Q?WCy8N+HLHHDPhJMAv6CoByBRdDJ6YPtnl0vbaYuDSLqyCzC8zNR1s+wKS3Fi?= =?us-ascii?Q?NYo6fzB1U4UM7j0wP4jQYVLnxyqLRJiOsOQT11lsUNEfg6ObW5XmDIxG+Iuq?= =?us-ascii?Q?sNPHSm5cYchPQN37jiK81mfdcT+6h7oEAvArAPtYYAmQ3fKye+NJtgRTuTzd?= =?us-ascii?Q?QGzRBZF0TgMwCFMhjAagMo/D1wZjFhMOkxU5c9do3pqlBFKR/lPaKxBRLxJA?= =?us-ascii?Q?WMwExSG4Vei0xvdwQn1PPCXriGoEY73aZrXHOiTonSCwpF8uxBoD90xhpY6+?= =?us-ascii?Q?l/J3LgErBEVJcf0bnbvJ84uaVXzR05uEpR2JBis67ddgntdBtDmAAupXsgt9?= =?us-ascii?Q?JV/toWAn1CKrL+MwrY2v5omeZQVpFOGj3991lCXIjZ0+GE9BaN1waYubhg+a?= =?us-ascii?Q?/5LUIhv9h99jFEnYwlux50ak35x2u+VbRJK5KgWbpWDUD87nyNRC40NkYsS5?= =?us-ascii?Q?TUkmYT7EWF/utnrjEk49r6NrQiMShmDFv6HtJbw3V2jqeQKQVpFFX4XqR+CP?= =?us-ascii?Q?a+fWI9ct6Sc4APx+6sGogYUsL329ZWzCV2+tZ7C/HMc7RZMiL1gLdd+c44l+?= =?us-ascii?Q?g7Ri+WImD7sGAKVex5VBhk1ziRBNXW4j7mPaIFGG+UIEAQDUswY5iH0mjx7T?= =?us-ascii?Q?j7BLN8HtAaywbhGAuWQpHbcv0F5rzWIOHKIwE0G/QqpkGHwVltb79t5BK23m?= =?us-ascii?Q?aWreSLdIr1HMxtSxnos=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)(376014)(7416014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?ws9FnejlvJIA5JbkNT73KuTD4Y8NWloDXx3Qid7TFgai1EppMi89z1HX4Cty?= =?us-ascii?Q?qOvdFIkXDY+NOAmiYJN1NYSECtqmkhQW/DyDT3L4lkSNmksteOxL4tvZ5yQd?= =?us-ascii?Q?btpY0YOUF0Uk0iODqXMSv223UalgDCYBIbNXVLBEgiMsGigN2jEH/lQg//pn?= =?us-ascii?Q?4p95u5nWh9qglwUlnYIjwWvt4cQo6hq3VPNB8yky78rrf6sYPo9l0v7LDqjr?= =?us-ascii?Q?qwBaysO1nZiq1fze5U35qM++4y8HBuyM61Rv/0AJFq00KO8P1K8i/X45Zpst?= =?us-ascii?Q?qDnoCOPj3EFS7rzTVDDiqnsiCZu9/ct1Hxi0SbQITDHXLAVGynwoSepknLGf?= =?us-ascii?Q?peSefRFLbbOTw+k/EnOvaQZGpXyn+6zqVRVV6wuOx01pxdKibcQ9Hdqq6QMG?= =?us-ascii?Q?SoSCEo6uZuQxnZjGubGowmrGIyjs6iQd5g2XCDEgFWjWjCwFexi1uuN6zqCj?= =?us-ascii?Q?rW/3cgt+zRZvoJs1g0BGCVLopMNHPw5LNNtgy8VResFsQKvwogV6XZ52oZ3W?= =?us-ascii?Q?brGIwLWZUrhGaKSJjEaVjhVanrQx+fm10xiSBJFmCjtAHM9xVi3vY0+7Fgws?= =?us-ascii?Q?4Q8EV1Zjdgw1m/C/zNBphn0eeZTQU1g22NoncR1TaqndA0rw6QxU++qE8BFS?= =?us-ascii?Q?y7jD4wVFtY0uKGtG3ISEJXUDmEYZy2ciZmb9BPa06B75XcTAtqIOImUTVdLW?= =?us-ascii?Q?kTCJtmymVJ50eEuUI/ywhJfci+QPPwzVCZxVKQewibxayB1qqsmaNNAbMXhA?= =?us-ascii?Q?N5l2Xdo7+mwYY2k+12bnkB54okLX5d4L1Rb1EdMMsFLACRLqgO2qffZtzTjT?= =?us-ascii?Q?ccMPytQThgU2lGhDNNW9kuPw/+fIs8Cxp0ZTLaLJJXpQ13Ja3TjvpxnY4p0H?= =?us-ascii?Q?lpbx50rHRU1rPFKj7VflVbBDwUP1P7/Hq+Fl5uERdNmvjRhkNOpOzaOAxuMi?= =?us-ascii?Q?xw8XSFstoForzApxPZKY986h8lc6iF20x2quPbOMw1MMzjv5aHZTtzvaRq7D?= =?us-ascii?Q?LGipWjy8XI98b9qeWkgkV9DJ8DGJmY8LswCpSyzc5JJNP0r2WUjULMToVfga?= =?us-ascii?Q?zLknVzyw92lhn2ZJscsOQ2bmn/pVRxOPCig2EFuZ6Je8JQz7J8JR+N4tNclh?= =?us-ascii?Q?jlfBIKlSMMTVUZ7SKiNwNfml7hv5KqRa4ajAAflzMMwf5MNVqUv199Dh13i2?= =?us-ascii?Q?rZQjKo1XkuVm8EMrZiubtLarhsYG9ZpagQPpdEPZ6ysBh8P3Fha5T0bKuBMF?= =?us-ascii?Q?IICZG2qvPthy5wVdTMzhu8LxilO9faGO8VO8qHTZJuGwCAojC/HbiY8XVYdQ?= =?us-ascii?Q?o5SnHXEm6BNPLdOHXo9vApJXFygivo/7Gd3SkoMjYclnHgB4m2nmzaOJnxAe?= =?us-ascii?Q?KiO8+0qhr9ZCYiZCjX2FjX4F6nbuiDL064q0f5R2WYf/IwEuRZbjHDy2tHsh?= =?us-ascii?Q?7gskFGtE2uPQlM+fKmXivKR5uqyl4SL9B667o2vWqeabOlBePJIOC7kXhj9w?= =?us-ascii?Q?aaStaFvMF4aHWade1W7outwHrPovQwZSgC92uxqJCWOdljOC19TMeYHFUMyw?= =?us-ascii?Q?uMtoMZhfhd6zBbFSWpQOhFl7/ASkGXS7nVGVih/XES5vK3MvvRydur5AZub9?= =?us-ascii?Q?ecXoxicbH5tVN9vTWSO7oB2QlFmP9j1aE6g6prIZU/GIqDJwb91mDH+dyXQ5?= =?us-ascii?Q?OXeyP0HBxEQ4MyS4IoPHeeytbk80u9mSPjc2cZMr74W6WXo700OigRDh9aVR?= =?us-ascii?Q?el4NGO7Jpw=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: buGoWBzl7u0N4TL6vKdFiBOOdiiUYlsAfJrokLSjecybKMtz/Kb+vrbbYNQ9bYGVnqcnhtxhWRuuRarttJYtwUHivVzoG1Av+wmWcYQ30ltyDEdg4Vaye5O6euVN7lsB4SAorqmCk7AFbE1WwjeF4gej/g2rG6gXgcZaCUjA3emB1S/KdMV1tjDOCfOJ+4E0hLnQmQJmB+zpXQa3jEHeGUE3tsJh14JBHcQsmW/a/DlTsQugHoDl7jSn9e5VyqonLxjOJNlaV9UI3xz90NsaYkbZLA52ywdOwuwvqZVMguIKc4UkADbxAv+p123JNdgq6VHHp3k5Er1IwPUNJPX+CjKmfB5jUm6aqvMvAnBhN/Pu/d6oqn1RbpmTkwa5nwigcnRiRX4hVpyZBm5Y5igj9hSuUUafeUEHEYpzoCdmuNs524GjLU+EBaswdQ1VTBrsq2jHAilTaC5upa3B9EsyYfSDMLBdMqviHw8nTuBRr4wpUTHIgtF4DpKwbdzQuDAtBlkWmOZgMWbwvw3+BlDeEFY8HMrdd+ARiN6gE8OQgt/HwxEMpd1nlcntZm1kZDbb21LYKt4CtOpXc79+6220v/IxB1eXCVC/p8NfSKX/SLM= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0c0403eb-a1ce-4bce-ff51-08de546d7f55 X-MS-Exchange-CrossTenant-AuthSource: PH0PR10MB5777.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Jan 2026 19:37:20.0269 (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: K+VX9pJNfciwK4HCuDEzFzPCDgSczEJ8OMzsOgqIViTy3veTclcyXMUKuNRHxyAg1fCzNWxxHyxVaj9n4Pzw4g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA2PR10MB4507 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2026-01-15_06,2026-01-15_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 suspectscore=0 malwarescore=0 spamscore=0 adultscore=0 mlxscore=0 phishscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2512120000 definitions=main-2601150152 X-Proofpoint-GUID: XSbBkUdelEHEZC7g5mk0RH8qcjwOqIdx X-Authority-Analysis: v=2.4 cv=X7Bf6WTe c=1 sm=1 tr=0 ts=696941f4 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=Fk0WoDt32--Uo3WLaF4A:9 cc=ntf awl=host:12110 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTE1MDE1MyBTYWx0ZWRfXzEBAEoNyUCe9 sI/DMUIoD9JacryndCfLyLoXhO5E8UoCNUP1pLVE7w3YpIrEpKP7QwBJtCWUiFQLC3LLzqoLk6o dcyes/7yfZRLfE9Wj17NLk4wJs5RqnqkxVJ5xgLp3axxgHv/rfIH4ai0GadUSFJcCpaNV3sdS2Y eea46KXmX5RU+cakt9Y+5n16LNhEBBR2NFeNyIIqbFiGz9gbcnvqzRlh1sdw7LkMe+VG+E2B/Rn NLmt8QT24zCSMmmUSaEWULhBCAxV+RO7pKXO6VOu1t95Tt9yR1IogD2MNt6zo+Hg5iV5MjNNfH7 N2jSoTKoLPFg9V3fB/FHesV6QwpLAmz61VfMya5co35BSmTG0Sfun8jSZ2rQ2d+jPvi7WoR1RrR DYjjZJgVPOxhO95xiax0N5O2s4awBpS7Li5Ocxxr69lulSyiCIaQLQq8VU9tNhQ3+brupI3GOxH oxnune/fTns835KtJNxab/Si8mXdXMkeMnRjRQ0I= X-Proofpoint-ORIG-GUID: XSbBkUdelEHEZC7g5mk0RH8qcjwOqIdx 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 | 133 ++++++++++++++++++++++++++++++++++--- 2 files changed, 150 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 8cefaebf414d3..8927e8e1b8012 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,103 @@ 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; + + /* Create entries to insert including split entries to left and right */ + if (l_wr_mas->r_min < mas->index) { + end++; + cp->slot[0] =3D l_wr_mas->content; + cp->pivot[0] =3D mas->index - 1; + } + cp->slot[end] =3D l_wr_mas->entry; + cp->pivot[end] =3D mas->last; + + if (r_wr_mas->end_piv > mas->last) { + end++; + cp->slot[end] =3D 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 +2853,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 +2869,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 05:35:35 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 DC1C131DD90 for ; Thu, 15 Jan 2026 19:37:50 +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=1768505874; cv=fail; b=u5Em1HDvx724Q+ZR94/pvyot7Aem+v6rayXLZcqx2xrhDDZlMqsJhIGzsjf6dopN4e6cOi2PX9qPRaQiqRGP8pMRmJXpYEkUhIJa1Ik7WxAORR5R04VEyfW5vTdQykK1ANIf4GAZpgXJ4FqtEctXP9kVMaVXcKNf4YDiwN0dHFM= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768505874; c=relaxed/simple; bh=A0h5uvUCLd/O5vrbkFTjFTKGEfy1eM7yBw0ZYG/rws8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=U5GP3JLPNdRiFsb//jAiCavn5Nur2Vw69pBPE3UmyL1CdTh7RshqSq5XoHlWVNHM0EqxpuCALf4LSICi5a7axO1wtBDhRgO2B3HQAamHUINczQzyMrJmdBq9l1+oxrnlz6qT+MY6yjSfZSNm735wqtRrjss73QMoEP+WAJAsVTw= 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=ZxGKU6Go; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=NJCiEA98; 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="ZxGKU6Go"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="NJCiEA98" 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 60FFQL5F2812196; Thu, 15 Jan 2026 19:37:26 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= ZxGKU6Gow0PaZtYDpuT1vyIqEfdsmzqjnT+3QUXZw3GpbyxjnW0GaDy0aeGmVv95 kMmzzLc48f3HHhd65JYIj9GvTtCkw8jpB3/B1vChdL2nR2MvczfYBvnrh/A05q3+ zp9HwmRvgfu2F6antcQ7CXENFt254XU70msbh8hBAcw8UDi6UX0RS8kAMJl6PhuP 47gvPQqpaNT/TUSU/WCoeO5yHps3vy1yUNgu3L71g8BahVH6Sf09PTqjTiDbAdqf kEhNDGEdlis3ZHM2Fctr8WUX2uEw5G3DZiFamsjv3Jnk9rkCJzKiDpDQPuiIX2rJ mHeejF2m3R4rk2Qhayz/Gg== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4bkh7nrnqy-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 15 Jan 2026 19:37:26 +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 60FJXTmV040477; Thu, 15 Jan 2026 19:37:25 GMT Received: from co1pr03cu002.outbound.protection.outlook.com (mail-westus2azon11010035.outbound.protection.outlook.com [52.101.46.35]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 4bkd7fgkkv-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 15 Jan 2026 19:37:25 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=atCjz+1r2a5H8/ZY9Eb1uolVOGAjnUOYvoqxUnQzxfht/MLD6q5ASavLZhtO0h7VtE0X+MU35nyYcYNbcNwxDBQVKDUOE2RW6AExrKtb8pQUU0X+fIveVKYPdwTVj8nHutSajah+0nLKjGXr2acGBtK5RYhGCE0WLhkNdA6xogED2G6Nt8NHFPEqd0W8adJCxLK5iLGJKkmF9M6blKI1/6E/3O5xGvEPFp8ywAmOX0vwWbVZgXHrNQNu2UJq5dDaQOaN5RcYVhqIPOOkMqZSO1lmePHBHduymDMX9mPnWwFTv+Z8mvy2k6T8p5NQTkBKDDEf35ze/Lm/RY1ScU4fqA== 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=NMiLpP9Na7lxVsjI56xLlsphOUjS/bn0MnmvHADfSCxBv0OQmN1kD8/7mKXL4I7XAazAjYdGQKBBI+oRHeN9LmsGjgG8fwAfDvE2q+JvOGBy7RBIgR8UqWbsVEk5nV9aX9M9s+45mpxlk0+99Zmzy2MOMMUVmjE1U3bYsjRNrKwfT0wzROAuHT98m5M0i7jxIHr4JMpyJinnGpZWRGM+j44vBuBhcfs9k7wgeOs7RsMiNOrhfxv0EHjbSOkhxr+F88SrEiLIP5QaRnbLncghE5yj/PtGIS3Hqpxsz/x2MMOHUnfhyrkI4LvJ2Tx+y0LS3em2XbMx7JN77Z63MkVNQw== 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=NJCiEA98fc5gnKS8vTHyrVK1DUZDiK9T18+heCQMshWD7jjZdfwhokfrckRjDHwsNRu75UFpzO7Q++LWVnMOn6A0jVWUz3iDGfzgYtinpvW+f5BIDRosbuLY/r7wA+JXIMjVgnUNumiDGLc5QGlWxDmLYfaO0Y61Wv+bGChWCAE= Received: from PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) by SA2PR10MB4507.namprd10.prod.outlook.com (2603:10b6:806:119::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9520.5; Thu, 15 Jan 2026 19:37:22 +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.9520.003; Thu, 15 Jan 2026 19:37:22 +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 , "Liam R. Howlett" Subject: [PATCH 11/28] maple_tree: Testing update for spanning store Date: Thu, 15 Jan 2026 14:36:30 -0500 Message-ID: <20260115193647.1695937-12-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260115193647.1695937-1-Liam.Howlett@oracle.com> References: <20260115193647.1695937-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0398.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:108::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_|SA2PR10MB4507:EE_ X-MS-Office365-Filtering-Correlation-Id: b7f7f509-fd04-44bf-bf69-08de546d80c3 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014|7416014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?E/AEMfefTvrsoFmN6BCP47gQEBjuSZDsXjN1QUFasHXUP45wYPpGBjEWzBHg?= =?us-ascii?Q?im912jPmS1Pmw8ZuSJ2Q2Rum22WIdFYf4ItluQDX4SFaGf33o+GhNL+s9pu/?= =?us-ascii?Q?KFWwIzMEj4qB9XpMe9UXJqLuT4pVySQfj0nJuEruIHfdqQ9yB31VasQJS/zq?= =?us-ascii?Q?a8IP3pzV1iXIW5I2sbESaq2JJj0XtpRXExp4VEC4O1YidvxoiEe/IZS2F4+7?= =?us-ascii?Q?L1LMn+HUf41edMUZF9pKz+mKswio7gvd9JHLPSIJSO0cwBey2bQXAw0avCrr?= =?us-ascii?Q?lvMFNAdnlBbzmY8/CdVFQFQMrj6RRoY09s8chVXr5FyIjteufSB03HUjfOfs?= =?us-ascii?Q?2eTD9nfMl6shj7MTPtvjmZKctXq26s1eCMGkhYUzy9mKIvLGBtidAcwKQRnh?= =?us-ascii?Q?9C6LIClAJo8/mSTKIIojaIqvKZ7z1Y7YlvO3JzQccX8ay42dQMzA4tdzMjmA?= =?us-ascii?Q?oxq1PoXNaVJrOCwPlmxe0faRK58VIYBzrSqunqPHGZ3kj5UjOWjONCVqApbv?= =?us-ascii?Q?sqFaCWmrlCowKivUF1XDdrhJGIoFgKRWJyUsyJ76eZr5rwoXeXrcUAQsFs+U?= =?us-ascii?Q?61KNNOxUbQVQVVJJ7mpdDsrIR/bQ1TfbZXLnmUMf0nK1cFT53Sjr7wWvqmSE?= =?us-ascii?Q?Txtgdhgkxkt17p7NJVQXUswk2rU85QD74TpdZmkd3H06NpTMWfRMjeWz0BST?= =?us-ascii?Q?LBhEomCba6aPYRIc0iDYcv+1xj72E0XIiKQKkOrnWCdgL6c8qejhdzmdF9qz?= =?us-ascii?Q?Mm89lVZ7CmYfNJq3FRVNa5FXfObJCPDExdS6rSGMHJQcF87zU9l4VjVjHF3Q?= =?us-ascii?Q?QMbV7+OuzZ1x5+Nl22rRrK0Jmq4+vclyjRXsAM+DCJQHglESde4ao05FVgHy?= =?us-ascii?Q?Ypb8vtp5yHTpAElKJPlwSqN2KzKlV0o+aHturZU0139NI2HpGiMd6eIgdRe9?= =?us-ascii?Q?Aqyd210oYoIFYPnmVycg3n83xLFm8ICS1+auJszNuAGYPXNIyXr5LZHuZFYq?= =?us-ascii?Q?DM6gHNRZEybppzhu9zfQKe9CJdIXTZcZOOAM7D56L3rPndfyQ8s9dOR08uQa?= =?us-ascii?Q?xVCQIZEfM19MC1+RVS/+5ZpmjbEHz/MlIEsGY04+lqT/HdfWcuOj3o1biBYY?= =?us-ascii?Q?OAePbh78M/zdJ7MQH70mVlTEngAu83r/MMhUQ01kHhdcuYjBdb0JwWxE8t7b?= =?us-ascii?Q?owBJanZOh2dlTx+8KiN4nqYtZ1evFn1Qqr2lGgCDGSWrUhtM3eFq4Qzz61g5?= =?us-ascii?Q?H2Xv2kkL1xsfYFnbIlz3LLSX3y4QRPvQkOitkK7uHVAcMYn07Hx7Q71ekBm8?= =?us-ascii?Q?BuidCZtzP3sdlpSdkmH3888VXrkaLWCq4lGW9BNvClq7dbrf0lWflPgIoPIr?= =?us-ascii?Q?DUfypeOwSO412sKovI0YMW1J/eodgMR7T7DShpa1lY4FrZlXVfJfl4l6KJFx?= =?us-ascii?Q?GhH1hlYySnwyxuF6RnG3RQik4KnGJXX/PT7P8iLJ9pN+i13ckX0+4P8VHcDz?= =?us-ascii?Q?2jYv1KT0JopX/lfbfEuTU3Ejgm+FfoDGBoUPKUn6g0LgRChJ1dOEiVfYez77?= =?us-ascii?Q?l8hc3XrHhXFXWHf/Dz0=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)(376014)(7416014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?fw7wCyRnHUvC9Hms+WXObwCjYPLOpdvz0QNFG8PFYsWmieMboE4TZm6f8zmL?= =?us-ascii?Q?sGRem26fDVeZvU2nZ34eVtvz8Y9UMM37dOwfugWjWt8Fte/A0vDphz/BoxkD?= =?us-ascii?Q?KDe8x1J1yMXrlPO3p8EqsJ+zqhRVi9gRCitVgotcO6PxVDwaDFG+VyXEFD+K?= =?us-ascii?Q?Acqsb2L6c2ETVH9/CFm0cT/04HuoRTtg5kuuF/iqQ03L6xJFdLjeNoPKAdwt?= =?us-ascii?Q?DfXfnxnZAFWK7U5Fe9SxVOADw93A4XFe1Gi2QhMX/qS5WAeSqMgjyC5+FB95?= =?us-ascii?Q?6bk1tXMuuU/n8TWZuxdmKNHbH0gzsAW7nUOPYSrIyLDPPr+kXoqIEeMBeC9j?= =?us-ascii?Q?+rw7Q5kME7u1FMK2LNrgJf93PhaPy1z/XP92tQMbTI2dZt4JHA/6gLerDzku?= =?us-ascii?Q?j1227X2b6T2DM3fR1A0/8ZRzQ8T/M/inG9H5BToeeRVOpogjyPivsskaDs1S?= =?us-ascii?Q?Zqat+YGUHvBrMhYgKLG4u8CvQu09mg+hvb021mjAsbmcXY0219sDzMZqKFs3?= =?us-ascii?Q?D3yeICk4qF4GnuvjrdzfpI+x9uA6UdGrEIzK8oH4KTDw3cg7tQqxdRat7Fzq?= =?us-ascii?Q?aPlgMPGkDOI1sWIrARkYe9OzY1WSQkSd8IQ/Un89e/PvIKr3DRXO0X3FRlPg?= =?us-ascii?Q?yk/L7kL9hhNP4v55qOdhtRulMby3XawTLcTdnxIterCtguP+05HhJeSiI2T5?= =?us-ascii?Q?e7YSAX/z8QfGAeGczAYRHPGDXohL6OhcK6Zmuif6JAU6dXvK6FSqAzdOMZBs?= =?us-ascii?Q?yLmDFsioMhh6+tgD8nhmQxEcZ7tTMxf0SGN0MklS0qhXH39Tgq3ki4mNOj8b?= =?us-ascii?Q?oU1oK0S9saweG0DkcVcn64qDnxiyb7ysW4U+AZJKWkHl2L0XdI0sIa07h+0T?= =?us-ascii?Q?SUIdA48WhNHCfFG1+qgA/Bn8GM+qWbxjzR8CpDKfRuru99Ho8hLaMNZY0rLQ?= =?us-ascii?Q?MHB9baMJO2vzQ1/M0WtMLrgvyUjeBdjI9sCTnf8SMIR75p3bzapng8dgZ605?= =?us-ascii?Q?qmslxYlNKfo9KB5EcSC9sNbEyTJKjRL2sKFBeOfaKCuy4Lx0SHaW6sCKz8zD?= =?us-ascii?Q?+o08LakTchYwOkdZHJbatXbaOS54opbDkiAazFqBe0H1ZK5NxpSRvjBDFVUS?= =?us-ascii?Q?DeryOT2kWaH8h6+DGlg/8y9Wn9iE0aiwZ9S+Ikp0LS5TZ+pxWe1rresuvbmb?= =?us-ascii?Q?IY0zJgihzI3zGxT/6izAskDM9IF+4TsZanb3HiAnaszhxAMS8ye9M9kzjCl1?= =?us-ascii?Q?MViDND4Jwesp7x68ABt8k5c4UJOLIoOSIDThfKhnfazsFhL9OAAlMZ3SAGcr?= =?us-ascii?Q?6d57nWxaxYcGuG5FLXnn/QeSpMnVYVMWgBf/uKJ2aIvrhDdojSAvrkRkRzgN?= =?us-ascii?Q?bUsZgxrJiNibRoqmm6oP40jNOBZta6RYy2OqbvSoXVWBKKaQ/y2NTPKUQmkW?= =?us-ascii?Q?O5bu28Jzt54Ai5vAKBQ1AFkgpwJCA6mOoA7UTZNhTl2jm4tL/cQpTc3sOiZ4?= =?us-ascii?Q?Zz4zVYkq7mjKvM7iqqf8tAdn16SNYWFuSXbDjpAZf9MEFSxc8TJoWl6n6QLG?= =?us-ascii?Q?6c593dy9pxgdT0bpALUP2RbIA1Hkl7h2LnHZWl7OrB2L8CFzKUmujfxenM4K?= =?us-ascii?Q?/yoqc2GeTsJxp9wxZ3A3uGd4LxiSIW1ftfkYQyYP52+FAGbeYVGFqWM7we7n?= =?us-ascii?Q?A9pvRaEORgQosrjxD0cxDl8tdj4mbVrO1WJefqEYLmjMm8xcsCnjWb7AJTqt?= =?us-ascii?Q?6O49TuG7nQ=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: Tl7lku5ODWjjvBnzR6Sz5yIw2uET2atlphEd1Lmg6M5o7ki+zw26K7rqGgL8BU9iyYTKFGUFXAFSIQjNo8RSfXoGDOzpEC/xadXFGstv4WHfAh9a4WD45xhjbonSWJKn0wGRThd3+Tmy+77MMhcvm3qlaMWA5Sdgb4Qu+1YRPLToA0dHxKPnJgIC9rDbFZCHrEbfxQm5K64hMF93ZpRuFpQyq35iZPBp9lrm2BUgt7xjsz8ag/mhDuwMS7UMuA3qvgNrEPryS9A1puvPgOlKPzdUNMv0smiYIF6FU5R/H6x6rmj7gIeu4SNaca1qo1BtHpIO2pkzJUHjB3D7WE6EN0yXzzGhADuxNgyf519x2HaN04yXgYdRytVEqxfbvc3alXxCspR2UV5BC1Hg7TGuKRVQU3dTV32FH5mpy+mI8BPTQSLGHyyOkCRUOF0dLhaYeeEPCNXnMR7tYjeYr6oXH30YIGfp9AlGFoUU1HRS1hL0JHQA1oKR8PD2TbNPyXeJcXUC+O9KwF+/FKmCnyRO/Zy5BDxEsUbMCV5ICsyHx++3rzojKmmdVDqKkbFTxzOlLbhXUklaimg7UsNbk10zEsPgZFi82InJlQkq73WWuqM= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: b7f7f509-fd04-44bf-bf69-08de546d80c3 X-MS-Exchange-CrossTenant-AuthSource: PH0PR10MB5777.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Jan 2026 19:37:22.3206 (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: madpjPVwSQKuSYktRDp290Y3D0zCsFHd4SD/23uqSIbfn94XqXRlcvbwxdBtG4A8xiaJJvz05lizELKtInioXw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA2PR10MB4507 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2026-01-15_06,2026-01-15_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 phishscore=0 bulkscore=0 suspectscore=0 spamscore=0 mlxlogscore=999 adultscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2512120000 definitions=main-2601150152 X-Proofpoint-GUID: 0UthtBlRU-WflBg5xU8qKa-6woHHJX0E X-Authority-Analysis: v=2.4 cv=X7Bf6WTe c=1 sm=1 tr=0 ts=696941f6 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=t0zg3OoRVwqkdlAMXQQA:9 cc=ntf awl=host:13654 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTE1MDE1MyBTYWx0ZWRfX1cX4koBgm4/P Q/tlBk815/5GjknB0eB1yW6tQWKevb9xVwSfGMb3BcioK7BTlNLk/Il1sv47T6pcBXMF+ut9aqB vHqFo9nY8p1LCuU6TGgaISvp2QGlo/kjRtQK+d/+jfK2SoEhuAqiReYMYne3KECLcJeeJwTPCPc 5t1DgbHsjlhZtbtsF42IRRHwNLNjI73mvUg1su+BC2L+bEC/hCuJkj5YKpoSgZ/d4HiKjEFiL1l ayxtsNZsWfu4YWgMBhssYcGwAZuDzhH7QoFnDbVBDk/rh65Hf2VtrZo1l1nyA5z06AxsYBZc5lT MplBkKPwbgWn0cD0HMNhrHt/Ddh7UqmB/2hNcyaA6Ol1DalDVra4op0JApXL/q9tZrLQcvXCaxU ENcjWxHn8iCWIdCaR3bXtDWfKUgyHl3LxHIerflGpc32Ug1Hc6PlkRmrDkL3KbDMRfAeo72r2y8 uyZLF6h87iBqHzbBcGrUonyxWQaGZe7MfdbNa0Xk= X-Proofpoint-ORIG-GUID: 0UthtBlRU-WflBg5xU8qKa-6woHHJX0E 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 05:35:35 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 A10513203AF for ; Thu, 15 Jan 2026 19:37:52 +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=1768505877; cv=fail; b=CDocTLg6EjdDscJW7Sj2MhCfsm8wBduxgta2ZFp09McUapfUkjYOFqsv0ADmFcQYZko7zPBe2Peqi+lfaX4jCTi/AyIqQhTlYtWuFV1nmPjxW7Jw9mzu9ayLBMFc5N7f8ubhnRcmzIl71+eRDHfSShyvOIdB1CQMrzc7Oatp2aM= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768505877; c=relaxed/simple; bh=xmG5kGRSy9llFQZVuzuYTybcXhdTSQE499Ysy87jse0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=fEKXOZFMdFTEnwOzRu3viv3eKHLuY/Jvw4Mirp9m7GBEiJpzc063J4jGetYJXMbfnsvf5VvP3P4C5dOZg2++hosZnGlItbj1bWmTKPsIRiP/laZMse85PPCnn5CstPGu/0MOo1s5RmgmEyzRhHkRTyWbkG19niCGHoqjdSFpdYQ= 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=n4ezxbX5; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=hdZyXPiG; 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="n4ezxbX5"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="hdZyXPiG" 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 60FGC4J91360856; Thu, 15 Jan 2026 19:37:30 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=WhJXAfeIUDKUJRyV6rbMzeOsQaHKiwPaFULjDCQZPPs=; b= n4ezxbX56vLxuzCGvbXmG3t4uf1k5bO3DdAs+cAjv0W8fBdhsp+wtGdbv9pGVBC1 xPRVw2BangrQFgvgY14El7RKiHfGlOyIyk6PaRCYCfJUE12D2afcbSPOICg3FQlR 5CTtQAOwLSESMjm2+CUh5sx4cKbi9q/tLlTvQ+x4IiNO0EDdmhucMUJJqntfMrds 2SKWvrbk07EnGKiUmiRbvq3GhqzrpQu8qiq48sBlxfYzM2436LU9+2OTOcOloukw FCSf/0t0kda3FwDYgRB6XZGnzBmoioEA+0oyQEok6SZW1yqpivuAYLiHkN8oVYEb k9GSjj72ro0Si4pOmdKxTw== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4bp5vp3s4x-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 15 Jan 2026 19:37:30 +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 60FJP28M004237; Thu, 15 Jan 2026 19:37:29 GMT Received: from co1pr03cu002.outbound.protection.outlook.com (mail-westus2azon11010005.outbound.protection.outlook.com [52.101.46.5]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 4bkd7ngucs-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 15 Jan 2026 19:37:29 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=s/vcm3rxg9smcW/QmAELpmGrXHi2ekq1MiOU3jvfqck2WVi64l2txvGGlUjCvayHP4u9wFVZWuw06/lCdFnymnk1dSZRISqav3GRSBzjKuZ2cdHY1WR36s9npfJwieEI76o44yurWc7S0qXYRfoVAR5mON4CKtgeZ61YdLzpmc0WoKneJxBpruVo2NsYmUvoneYYjAksXykKbL1c3YkkPEIAU4JXweRjAAwAuc2D87n4DDts8/R5LmfSEFEoaK9bggf/tZzFKYEOeudCzwM7ZgKNLqVIn2ul2XphAmscw6V6xUf4BqBTfI5xvjmEZWnJkMR3I8nZbsGzGGXOi3Jg5g== 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=WhJXAfeIUDKUJRyV6rbMzeOsQaHKiwPaFULjDCQZPPs=; b=uOlABJsDIB3iesdWAXwf16mzOgAeuDwT12A7kqvPznTnvPXFz3HM0WZhl2LtvmpHoIFIXbUioIylzpCeI3t2Wqmz5y83WupDobeBFV+EOoOUDYaLqFb9QLldGwndykTgxrphBqPSGNw9/Box7wFND6DiWM3MI0aqKN8lXDuPZIENqA7XCKJAHUZoylo6sQIVlK+Q0kVys1TtM23lrOW0hIs3p3wyHysuJ7iByiraZF3R9lqgAeHgwSJffopZv9q8Cmo71lV8fIaI+SHmoN5pS10MGjwJ5yMffZoSaoahTVTzYkcpSljuh5MsLc+Z+UYH8FZG1eFuAt6NyRzGjzq7dw== 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=WhJXAfeIUDKUJRyV6rbMzeOsQaHKiwPaFULjDCQZPPs=; b=hdZyXPiGZuD5mTRiHu7sZTbe3e7ANIr412DHW3OBqBQxPBoJod/YrUXDQnoV5307rSO4Ccr7OwS+53KaT4sAthEjee8bMO1E0bHnLoDwFTXRR8w0hS4l+PlUDLHW6HTZG+p0ApYEB+PVebFIg9/bcusPXb8jTdv51pAkkV7Kxic= Received: from PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) by SA2PR10MB4507.namprd10.prod.outlook.com (2603:10b6:806:119::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9520.5; Thu, 15 Jan 2026 19:37:24 +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.9520.003; Thu, 15 Jan 2026 19:37:24 +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 , "Liam R. Howlett" Subject: [PATCH 12/28] maple_tree: Inline mas_spanning_rebalance_loop() into mas_wr_spanning_rebalance() Date: Thu, 15 Jan 2026 14:36:31 -0500 Message-ID: <20260115193647.1695937-13-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260115193647.1695937-1-Liam.Howlett@oracle.com> References: <20260115193647.1695937-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT2PR01CA0001.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:38::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_|SA2PR10MB4507:EE_ X-MS-Office365-Filtering-Correlation-Id: d5c4d51c-9e62-4bd5-694d-08de546d821e X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014|7416014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?RoI/FHMN7+y2KTUl0PZy4mIW8WU9Y9KtlMzK09cIQVRZ7TsHF3WDqiavptKq?= =?us-ascii?Q?2O+GXlX/mxww+7MvW7HAQAsxa2dkaHlH+wkyQBGKu4tfG0aG5VnM2HraoR9E?= =?us-ascii?Q?cLGYGVKoRS9mE8DOZ3UZlZzHoF0/M3GC0vIeFjc9I6CAWh5GMjfkkVB+CMjH?= =?us-ascii?Q?xAzBT++4GmNgJdVrK+JTm18dIWqmtmiGvIjcr0pYEEonYjDsyw1Ud7upb11y?= =?us-ascii?Q?inJU3fGH8SGtc/RZB8Wu+4Dn27KUlJMZQyHrY0rISfVBIzJbqv2SGGLxCX1g?= =?us-ascii?Q?c6SIpPTmIJvzGe8EbLCl05HrJ2LoVbBxhunXvNh2rjSBQe3C1/sTUauTbSqg?= =?us-ascii?Q?btEaHKHWZ+6EybybPkA5NmQ5y72yyxc7R04vW+wH8FmF6emvkzMoey43pZ/s?= =?us-ascii?Q?XmgqcOr+W2J3rqErTCGRnJrRjj5PaTLft/SfDQNYFN3KMSpA/Spsv2sczRXP?= =?us-ascii?Q?ZJFMbRAGrBi2SSx/DqaueTAxnLqtq/Rx76Ua4gADLRuHZ7QbgEzy1hP/WMo2?= =?us-ascii?Q?z/kHJTEIDK5UmIrpvb46Kxh5tUD/k66yMysnKHl8KLpP6ao/1HSa8/pODLN2?= =?us-ascii?Q?x52ETltcUcLwiWqZAy6TgwkMzS2raCKdjQ82GWU0e0hRmY2y00JbKWhVDsia?= =?us-ascii?Q?zsd5QBozkukxIoeXhTQX0/VG014jNyQwLjPfePgc/nURMa4WtTHy6eO61wf2?= =?us-ascii?Q?DGKsxjkeWGP0dobeIPupgm8/A5xXU1W0qtawZlkB7OS45YlKimqks4Jp871M?= =?us-ascii?Q?V8XxWxHQWvckhm3zETHf194IGny9D0gq169hOhxGWOUMMyHLMkJGvWepFkNZ?= =?us-ascii?Q?zDGU+22AmYUGoWGW5d5/loHu++R2KaiE+2OKu6p3YX4pH4A2c4agAGusVEmJ?= =?us-ascii?Q?b7BGMaYVqwXU/++4isEuA6vvwtBnMiQzW3rAsURUGkORm+dO6fxSc7LDhWSw?= =?us-ascii?Q?woAHKjDNGKg7PDs19KGwUC5TupHUJgV7UDtoReKX5s0TkGrHHcwvBmhHtlMt?= =?us-ascii?Q?jn944OxIV/dxPdHdHbuxhGB1pDV5m7oU0wdNJ00cR/3+Msj1v6nFom5cm7nN?= =?us-ascii?Q?Mt7vnLWH76pb/1b8M01hiA5uecKFiFcoEZMDGnnaHL56M3QYEj5+gi068YDf?= =?us-ascii?Q?yHE7jCsm4XtYMhgw7I1PpZnlGZwSVYKbbed+6JqeV83/KraUBfQyyvVVict9?= =?us-ascii?Q?u23eUCMB8drBS12BYwr3JZEndriGdCgUPB5WViHYN1va68yk1W44Rm4erZxt?= =?us-ascii?Q?EGJkFr8g4bePhTfudJC6ADa4xLHfTdQE+/cXdo2n4QStvzY8sR+sSnkgSFKx?= =?us-ascii?Q?eZa2qvV0w18DNKE5w+DQDs68nj1RlOb6x8R8dr04Y60ne6FM96stnTr7JFVl?= =?us-ascii?Q?u/Fd9iw/pFIa0HBdKZXgtOIHG3XuaRyPQ7xSzpU2wGMROiWA4WYyWN+A0yad?= =?us-ascii?Q?NKcgYMIzb+6frekNCHhB8sJWl3Ozn8V4m+NgHYw7DQ+U921YAjnU+WRsWsbX?= =?us-ascii?Q?VgFNegA5LxVbIlQz8c4/hYJZuQQxxSDwu/zAQr4iPZzxxOOaUAkHyKgX64f8?= =?us-ascii?Q?Ptvi1C8j2G6dYQzPF4c=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)(376014)(7416014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?RUtTUYxVQhWjyqbaRbUbcm3XDTgTQB4waToF6og/55SuSPGtAHzOlRHNbC0E?= =?us-ascii?Q?0LqMwAh98Ikmai4+t0HGGOAgHeYVBep5CaOqYDy9U7T7J3RTU30bi0CoBRrJ?= =?us-ascii?Q?ZPBjhzasOfVVskXWH46lrvujgp/MXjXDgAcEcsBP7ZafqEc9DmKhiqd9+7Rp?= =?us-ascii?Q?nl/ewxCU8+HlGPMkcLhtbpqgzGOhzwEqNb++9AMIm2C1xPkx+/x/7UrqvmhO?= =?us-ascii?Q?aBvGy01sItZ7R9esodX3Mp2IStWPK9dIQDXbjbgnxMYrdpr7hgNLP/cYY4N3?= =?us-ascii?Q?6YSNPHytTg8Cb5+5gIdirnaepfBEGYEeyLmAhCQsCVbXvnDkV+EbJLvEndTj?= =?us-ascii?Q?GmKyLsen+0VBF0XVyvAPU952nO2D25fOjKslxFXYwwdwsAz1GSFeO/NFkEAn?= =?us-ascii?Q?+n3sODG5ZJQaMsF5zmM078RM3Ktl8yWsQkmhQnREVwLv5pQpDvgCIhUpQWW9?= =?us-ascii?Q?wJMuatPiAZnRzfCJq2HU8rSDIhksi5xM5M1JnyjCYGgO0wOHMiwOxbpOukvE?= =?us-ascii?Q?JcZVy6TAJhIcU5GIovxWeAYZ2Nl6e8oBknqhhI+wpH1jcVel5GmrFYrvxZdb?= =?us-ascii?Q?Xw3ZTPrZl01V07S+LgT9Vzl/fjrvMNe/ossgyUFZEwOg8acSnXKelFVNkVaU?= =?us-ascii?Q?mNryq6/MHIgo8Kn0XaPyrq9uK1DNqmGAadSLO2+096jSSouGczarLtoGJXVo?= =?us-ascii?Q?Ym7M2E/VwkRZ7Wceff2QzkXbSIAgihbjGwvLEe6M4CrngZAAVpTwxs1kAjbm?= =?us-ascii?Q?iNsgN3FlVSdDsNz7AlTuxlmr3ml9Fe6vpzQjYzKUTVIbyaZK0KE7oToTxjiG?= =?us-ascii?Q?HtOYe4QAVBiQwCtwUuXbPsBE6O+RC+Qo1puRwucAI8YApSmZQ/nVKyiy2jTS?= =?us-ascii?Q?IcgPFIRrngCIp+Wrrki3ndbGdwBpL6tGLosTp1+wk7ciUgNJpAtVPRO3ffL7?= =?us-ascii?Q?2WMbe1Gl/Pd/RJilzTayLISEZf6BJh4TkgaZ1UMj7uusq4TwL2mxbP4iaiv0?= =?us-ascii?Q?zASLRBkQ/M+QfAq0A63jcYRNAbjz0PB5/BUb/a3nq9KyqIxDMZ1WldtLheHf?= =?us-ascii?Q?C6ZeTAD2+PLp3vb9rnWWKbRADzIdgaOVRKydzuyiFN/MznZLM0bgnTzxd4lM?= =?us-ascii?Q?O/mk7E/iYg6+d7OXrm/4ao/U7YSPmGE7cQtQUCLrtl3FBEK3SYB/Uvp+kR4+?= =?us-ascii?Q?m7MKq2hAXOXxal5Xp6kJmwpjkyPUj+UTEvSLTODUzVj1IA4ceuOI4RYv+9Zb?= =?us-ascii?Q?4kArfz2vUHrobbcpIux2jM2wTrdRzf1B34TjNFdQ7wgbuQF/3HTO50ebcUfr?= =?us-ascii?Q?Hxf7Y+Go5VNqtOpQf6T79Krm3c4QwFO80+jKjGtYa/TjBj8r9Y0p9gro+4uw?= =?us-ascii?Q?Yy67pVR7Hpu+MESAqtHVoJPK7ryD0FHpURNN1NMnZOFFXDLpVIooJ302jt40?= =?us-ascii?Q?35ifu/F+sKu3WsNAZTRfIjDMFt4xm9FbHsA5yj8eOhY5+NXK15LgNLgX78Ex?= =?us-ascii?Q?6H7NqT9GuQXjRKza7K8Un8/jE/1ucrv4TKFG0JY7Ov2Uj4OzUIp8ZFfy4YfX?= =?us-ascii?Q?V3cfYtM/jiAnhe+6eZHDd4/plA08DjKFZ9z/Tqik9bcUBQ5d53HxlaVHhRLf?= =?us-ascii?Q?HLOce4yJHPjf3XHvsPLa529YxQsgHTpqlPDBprJosAwjqAQqcMsPwc7HTsPw?= =?us-ascii?Q?uTlHF32o3z7ZvrNk/v3yJi1O5lM4FvYcxIOGoe8qTr9u64xMhWYIbG39xZkn?= =?us-ascii?Q?H8MgBFJIWw=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: TVNS5nO8R/lSuYMXtdarw7D6LUfFCkIhfE0FP8XbZOLfRW7Wi/9RyUV5Db0uJ0lYfxcLZEp02RigXcHV8cS3jZzyIg5XfRjHtGMATPVmCLFcax/2rDIHEMRrLQWW2qfV45xNxIixEygGcIuyAvZkcjjB2s9MpQ/HIqV+8nQ2H6SErNXUeSdSbQJjqR9vk6sxFkqjSnvw5NTcAuRd5qlL8lPhMcDkWdzIZm75rd8D9pJcYwq1iR1oPGl6DMnZ1bUzwW8qKtu/AdZWVLHYLcQdr8ZhbBdp8VwavOWbjj/6/s+6062MMjnKVdC9smiK4OLs9kry6+BjXla/loE/R/wcpsz6F9k9tkMR666ZYV3kYehMugrYGxePWeNbNsztuA03iQEci/isWDHfiy5YLfR0gEZoiqDKAaJVk1X39RpXlfimWjILfR3Mipd1wsIEqWroTQMA0Lpcqg1g1f73VPNPFyHuMdIi1ejRLOT2H4BV/73MfQtxb4jlGUPubgZ9uSMncgCEgh2u7h+CjAsZ9sGlbOsz2m5GVANy01Pd/WXdT1fXLUkEX8VcotjXR1+I0zJ5kli1KQsZJ14f/YAIdfh6QhW0ZN6h5IAqp9MGMMGw8I0= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: d5c4d51c-9e62-4bd5-694d-08de546d821e X-MS-Exchange-CrossTenant-AuthSource: PH0PR10MB5777.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Jan 2026 19:37:24.5616 (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: RKmavrldJIfdz4QRT2I1WgHC/2Or/zxpfAVJ8BHDSsJlbLFGLKbbAZ5+ZVcOl57gqENvF2X/HV/XNtAcAsE+qw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA2PR10MB4507 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2026-01-15_06,2026-01-15_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 suspectscore=0 malwarescore=0 spamscore=0 adultscore=0 mlxscore=0 phishscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2512120000 definitions=main-2601150152 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTE1MDE1MyBTYWx0ZWRfX1eBdfEiTU3BG BHiUKHd4+fC6dLFtxhSNQMyB9y7ciaU+9DFl0tVW9W8GpI5glesE3CzrCpGLTmiHjhBiAIdTVg1 hWcIYxDSKyO3kZb2lEMCe8T+Stu7mFHlma+itIJ0RvJmCI31iW+0oDJhbU0lnC0h7xv+z4BuiXx wCFfSiMHIQ/Osa5ElrWwEL2hbdfPO6bwIpc33y1AZYKNPXF2vp0LdQ2rEGBrJcpGqJozte7M9zv VL6coO+Aiqo8vbObmOg9EDAGDwpTvMtAOS7DROf9xwIGxc6uLDVGnD8tT3O+xF8bAZOtP0pXZxg LqJ5hhFHh/qV2c5DLuc3AsDCQ7VxmAIfmpqO/qNFzLD5o700yoyA6ZvLtC9x11JJMuLvSVogsty lcScsY0i013ArAOKIMbAuPf39PA/tY8uqwpXe1CFUAwz89IGQr6v+mJ/4PwPq7kDUeHMKctpZ80 VAAlxY9267fK5TQgJY2qMc1GzVtLTiOr92+1SFAk= X-Proofpoint-GUID: hH9PhNNwwa8WS5sY40Ohws_7uXE9mcPb X-Authority-Analysis: v=2.4 cv=aZtsXBot c=1 sm=1 tr=0 ts=696941fa 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=SVrgk92_VGy3w6ovwu8A:9 cc=ntf awl=host:12110 X-Proofpoint-ORIG-GUID: hH9PhNNwwa8WS5sY40Ohws_7uXE9mcPb 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 8927e8e1b8012..969be457f6df8 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -2855,6 +2855,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; @@ -2910,7 +2917,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 05:35:35 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 25424312807 for ; Thu, 15 Jan 2026 19:37:58 +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=1768505882; cv=fail; b=n/OWKWTtquqtdgClhQndUXXe0SIBtQxStJjzULKgfQH6WnG8iRwQr+jvsZe3byIKY3rb5WgurfSuJrfKrtikzROzxqXQBRxwRQ1/gXs00Ig75IJ2uYTMk2/GYKeiy942zi+EMfdp0AAndAxVAcE8Olv3W7CbVDzftXWOaOaSGRQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768505882; c=relaxed/simple; bh=OyhmhyyalnS6UXilAa7UcfqYfk7CCTCnR3DXEauY0wU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=OC9V7bnboV2iP+5WIICTcTRvVdwcweFSVa0revDEg7EGa8XcV2pjb88x3eTnrvyob4CYN2yFal0wPFb80sjtiRcJcY6QeHI6wSRE0/DcsVmBb4kxM1mhzM338Cia8QmBXxUSQ43tqAy2DUn4CFg1w5Eqe2tFOAoKAK6ny++fCQ4= 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=mnACjkhG; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=RL7PhsFx; 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="mnACjkhG"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="RL7PhsFx" 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 60FEoA1V1362590; Thu, 15 Jan 2026 19:37: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=x4IbyE7V4TEdEvFh1/CuA1p3x8WcJN2dNnXD3Bfijhk=; b= mnACjkhGvoejXrYgFm+BHvFT3oR8RZupKiRiDAx3sGvR/2QDEJhAE3yFTj26RzRm KzVGFXuOfKLJ40KJ/CBRzmk3/BvXxfULtpphjAJdYW3NDeLddWMZUX5bg7h9tTvc s3sZ+3FwyVnOUoC9rkfyDs2HP06FymKjYGhJ6sjuu7tgqjBKzRox9qC1wBaXnOQU FFoe0hXlEswUAl8tQdbbczib0+kSaoT9FRFUENDIw+7ReDW0NYq1TKCLOvI6TRIZ C4e6ZGkljI8nrd25dXVhGC9TF57GCLFY9dwvwo3sJ4wiX9tbmQ54DWEz7YG2LVpV 16Th3jGNlRiWekYQnLC6WA== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4bp5vp3s50-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 15 Jan 2026 19:37:33 +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 60FIbfU7000463; Thu, 15 Jan 2026 19:37:33 GMT Received: from co1pr03cu002.outbound.protection.outlook.com (mail-westus2azon11010056.outbound.protection.outlook.com [52.101.46.56]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 4bkd7fgkrh-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 15 Jan 2026 19:37:33 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=WqEvceu67V9iTESms/uYowijfBSxmYsHJn8FRzEveGX5UoVoLSOkShQfefZpt5NuDCwBIXRMchK93f/I5JPkOdpIbIE5Gf8y/I2NhZo3fB8tdXlSi3Wkj44pmlB59OtbpaVyp5jn9ai4JGzTheUYkegZW8XQ4P2p+UpwiViFsnKW8PVVbaYf+0aaPY8E2WuPuuC8571dtLTzOGeyI2zc38Xf+vAfttGqlOPVZvQt5AM8pnHiLtkm50Z6rVFF143ChIawqCzTcZ7UNyhV+6sW6tq3Uv8lZfiEryY4vb79nI0mpmgWJf0lU3xbH5aDYsw+T+y8w8yYxY+oGwoeK2zzwA== 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=x4IbyE7V4TEdEvFh1/CuA1p3x8WcJN2dNnXD3Bfijhk=; b=IMtqJpPtuFMl3mDb/TZm6h8N5V/9SF72PAN+D1Vx+/Tg5mdDxUmBqq7jmRpHgBES5u0NbjJbd9ZHS43MOGf05fYfV6dYApvBqKaw9LCT0sN1jhkEMHA3rTzBrxqn2vANnnDE5cxn6lhfNfVdRS2IOWw25TuE8abidHpXwv5BT3yfZTnT+J8cjuQqvOwhXjK1KU0wCCCIbSnWIVTgSKj39HsB0wd4ZBoynun6SE7GAlYzCztJDL1/2u1tXt8u3yCSu2lkNLQqICihMWDTdpVOvY+uNPFffFd0DA/O6K2LOLcKDmfsahfmvVw7+1w0QPJTHJW5oMwZSxllz9C9y/Iung== 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=x4IbyE7V4TEdEvFh1/CuA1p3x8WcJN2dNnXD3Bfijhk=; b=RL7PhsFxstsMXe5wtx3coPDlkJqDKLPkcgc/3470799dYHYFR1u+ipIBh5zHV/NVWbV71RSYMksC4VViu7gDGmfoUQl8tHb8c4zFD6bKNwkzMzW5d0HSvyC84pe6RLGor8sG3LRiY4P6mY6jHIkOPScaKwQjc30Fzl4KjXnmhu8= Received: from PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) by SA2PR10MB4507.namprd10.prod.outlook.com (2603:10b6:806:119::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9520.5; Thu, 15 Jan 2026 19:37:26 +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.9520.003; Thu, 15 Jan 2026 19:37:26 +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 , "Liam R. Howlett" Subject: [PATCH 13/28] maple_tree: Change initial big node setup in mas_wr_spanning_rebalance() Date: Thu, 15 Jan 2026 14:36:32 -0500 Message-ID: <20260115193647.1695937-14-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260115193647.1695937-1-Liam.Howlett@oracle.com> References: <20260115193647.1695937-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_|SA2PR10MB4507:EE_ X-MS-Office365-Filtering-Correlation-Id: 8605e0e2-ed10-4e32-d694-08de546d836c X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014|7416014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?0sJmFmVgpbfUOMNmQpwrHrFKwfdFT6oloLJIiItgrJvGJdtpFWsxHzhRxzx/?= =?us-ascii?Q?zhuiDAme2qCQAu4y5swIn1Gff2BhoO54pfwECVaeKOCSJD6a/w5oJ3jvmFck?= =?us-ascii?Q?O9x2VPTgtY8cCWLfIXD8F9ApRV24EQFKCYuKWqN8Innxc7c9erSCJCoZG/MU?= =?us-ascii?Q?wbX2cCh+i+AtviWEJnEUkXf0hEGApy70GfLter0wI3+VE3tXPXJHRsU8db4C?= =?us-ascii?Q?cuLF08ANCM2h0oWxxoknFXCDmal+KG2n+Hcj0DOhImXYBXjDL/zNDm2YgKYq?= =?us-ascii?Q?sFT8UBi5TQLVtripUO7ldjhiRpRXHAkDRWExNbHHJodzAjymkTWj4Zx+lBtj?= =?us-ascii?Q?HuQSt1lkvINTzV39/hmnHWKEDxSUrXfhXyTrVRSDnETgvXB4N1FjBPIt6rBe?= =?us-ascii?Q?CEQak/9ptSaKfG0wjSpLHds5tr/HlrQhY/oSbsGPpJgP/uBHncan5Y7V8RNV?= =?us-ascii?Q?wi3I7DHgHdwVXpEL1Gbw147w/2ffOqEfwwqhZcq39+AuGdzQsvZeWRdSz5R5?= =?us-ascii?Q?SM7UvfizeabS+FMDIQKggU3agFtFxyqEgKVIJ/LOIVVv6D9Dy6P1777vQRaP?= =?us-ascii?Q?Y+mn6BKRHbYPqvl1Kw0JGhR/vqd2Ab3wmo3mMIcBdmlEKE4TOd6DA1R8zeHZ?= =?us-ascii?Q?5CvNmPvaQNZQiJNDjVw+Ttc8VZHzI17lqp2hDpz4dgkVwH0SafCzurRLtlh5?= =?us-ascii?Q?O8SktsQiqzj/WrgSXs5kcYlXPXnYoA4KScgvYueMmFE8SK2Ah09VvI/3dY09?= =?us-ascii?Q?I06ZVoRG2/7BcNOO8gzj2d3wZWTtKam6W2BER8NEYYNdm1JD9uEYS3eJVBMP?= =?us-ascii?Q?g15T0m4PECLHwIGLWdj34ZTJch98k2L34aMUoGh8ryuffKdKV/0uCYu1ZKD1?= =?us-ascii?Q?ruXvsnaaj4+r2zWc9FSRIVe9Lo5yCc2WZtNMJpfkULntEDGEfi77N8lvQeyJ?= =?us-ascii?Q?3xKqXcwG6SmtO7D3HYmi3QnWtvMy8PzCiMagjwsZsC791V2bIh1qHzSsJSKH?= =?us-ascii?Q?GNn+P5jy6TbaK1wM+Wa92KDsDENpFXq0o0fdEJHHJqqrTsQdXfKfn5OVIN0z?= =?us-ascii?Q?a3WZRERV9vJZXjUfWjPTSgSIIp1GGsUmYmhRSMhqiwzCoRtFm7ERedB74+gG?= =?us-ascii?Q?aixS2ztAqGbt2qUjWr3OR2024HojR8IJXKFJH3ga7eusKiEXMxnuUybWCMz7?= =?us-ascii?Q?/l9gdrSPd9KcLUcd/hC5BSC93gFFS2qLG6S9sMAa3qTs2yi1ZkuAUtU7CTyf?= =?us-ascii?Q?d5cuiJZmex1mUpgTNKFOOfs5WJlktJuAZOcV8zXLUDt56AJVtjvyLD5j4Lur?= =?us-ascii?Q?iM64dhKRKoglRWomQEmuwezH6Hbk4fhejfsdNL9MQNbSTn44qYdBRSPbFENH?= =?us-ascii?Q?k0Lgafgztzcs+uWuJea4YPA1YMpW3iQnD7u2E0hzJkC3q97fp5hm0sUwG17a?= =?us-ascii?Q?XaGxiwbyiV8gBKwVkwHt8f5en7DekmUgL+g+tUKqJnNi4OnfK8Wv9rYulXRj?= =?us-ascii?Q?OCJh8twwEGZ80iB7jqSBioxPBREamUrupfPRH6XWxmJHKHeauEIvlsm2IKiY?= =?us-ascii?Q?pew+AKiy71JiZg9t9Lw=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)(376014)(7416014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?ZiKGP4H1dlYfCTDImWeahJXuaNUE4rvMhI7mq5cT1Ie9ikNJ+v4Kjd9/qzNJ?= =?us-ascii?Q?cRZc8vZmBMwiiMZF7hoHoo5HCW8hNJrQ1f1FOXmahT4+ts4xzVbb/TBs7ST7?= =?us-ascii?Q?RqJYrqUVsokI+dOzizpK2+ibysp3D51ifW9pV6EE5BoOn8UGKgPfd8QvtQm5?= =?us-ascii?Q?3cSxSqcU9F3JBJgiZuOvLs1L8lRWFI0RVsaYEZRJh1ovJfPhVxxuvDHIQzrv?= =?us-ascii?Q?r36KkhWnFcZDixe9hYIDCvKkHNVoTMpwqOc+B2WoxfnoSYSKyXGmnLmMv31D?= =?us-ascii?Q?DeRauq5nARXZ4x2GK9mi79p+I4v+/RZQepTRo3FKtTIa32FSeIP2GfNGZ0vt?= =?us-ascii?Q?ZeR2FHSZAR//dpzEerIWIbbh/IhTCHAcsP+BvHrWWEvXECIaoJqQDFgvL6Bi?= =?us-ascii?Q?qCk5HifpF2Bqbf3efWhOovmvjwQIroJZ4UOM7Jn78qNDnAt2B0LE8SPmMdyT?= =?us-ascii?Q?pCt36Vbe8EH/JgvNndZXNO3p/4p/KK9h4aVWEj7LAF7CRIRbfVeflnwCRBLm?= =?us-ascii?Q?UEYGJFHGZGhoyUvlLQsfYuMmEdzkvnke9AqFFQHOB4+s+1iqH9SrcY6182C8?= =?us-ascii?Q?8I1sxDFDihuFs0JSj1a2aSvzu25lKIdsv3rFlHSzUliU0x3KINzF4MvuAvMz?= =?us-ascii?Q?k1fmwLkE71pfThUTVu7f1/14DcpsSYXHAqgdxRgRmS3F2SLYo0X34PcmWTve?= =?us-ascii?Q?gDEAqxUhH4naVj3OG54Ly6hJXKT5TkZdhCUJ094TfEjNwOSPHiqswmks/DzX?= =?us-ascii?Q?g8r9mCZOCVV9pSKwbeVMnsvXTvjnwbjkc1oi9tm51Nezyc4+8CpTW3t5m/0z?= =?us-ascii?Q?ppOWnpxrPc4ucO0m2s5ze57dfyf6urO34ydoDbyRQZDAZ5c8n9KavoCcqWAU?= =?us-ascii?Q?ZWAEzqDmppFXJ/Mhp8ujDQFzP/NUVdv5EL/aKUDsWj37p0btHb0uUEGKqLzZ?= =?us-ascii?Q?gw/qyu5K0f7X74iJmhjyGsq4BiLYsQ6p+g6xY9B87dEIeNfFRZdUoYQzycsG?= =?us-ascii?Q?GnENQ5CqVyHMV2SUVIGmcs+MrFhWKLGMsnktZLmu4ps2q+M2D/ca0a007h4a?= =?us-ascii?Q?Ss/OZ0j4Bk1mbPlTS/KXQOye73KYlMiWiQLvCVeIZ4du1w06dbdqPtnEC+dd?= =?us-ascii?Q?02DBLXKf3zcJl/1sHAF0ynyT5VBJuFJ4VJg1huTgnzSW6+BMYc+gsYCvXEAQ?= =?us-ascii?Q?2ALdm8HBnc2RB4f0xCIvWvDsXBVgbeXVLzhkfCAAMzKG+RBBJ6JH4wkNRE7g?= =?us-ascii?Q?sfeFOTDcCT1cyMMPn03K4agPjQOixRW/ZkpFnp1aTh/j7zLCo4hEMS6CWmTG?= =?us-ascii?Q?ZQ9bYjGZzGkc3iQBpsLFi7W9BoMRARl/ncznS8jD9WLN6qsIUfUTK0Jr6f3j?= =?us-ascii?Q?jc2vIvWS11/L5Ourw5ixlGh5GzxhH9zOfzdny601aKQkwf0ZxSe4xzjDBC3E?= =?us-ascii?Q?LyODTAJ2zq07NMO+4wmG3rZzKxfqqD9AWKVSj6od9hcJbdmmdvbcGILo+MBU?= =?us-ascii?Q?ZHkI+MXtO1UyywXUUIYx5eUTlyUzzUnI85utEt47y7QL2EIz2g1rLMuJ7e+C?= =?us-ascii?Q?frgkLPp7iSHSVOsLTKX6b7+GIw8+LyTbTIRpqVnRxF64KDKEhR29u5xnHyof?= =?us-ascii?Q?EGXnmWBwquTqSDiwXMio7F6jZZrZfLc474cTbYDf+gyomxqee/JV6i1z8Opv?= =?us-ascii?Q?fEYLE/yTfgcWB31uVlks0sK7QERNvrECguGnbZNIKiH+bj62Byq+o5+Un+Is?= =?us-ascii?Q?cDAvteJKHA=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: y4bbk8euoITQw2iuDBA84Wt0udIHpw+Rl2mWh7jw5dpk7cA1Ht0P7gcWMQhRQbaM01Fpv+a3UL4MqoJGa3ayGvbMuvX5WcCsfuchw68eCDUf7PQsMuM2gg+k+jog/JBVXmclj5iHnpEstsQ+5BWg4mw5zKwwz5H58+yo7TJHeSbLqeGZFyLaOpOBnpX77aqBnZ8ShdrnRUD8ohYmHj5a8Sy5+eo87X1SJ88Iwxl5X0Tn0yJxZpbdHN1ZA8nGXJSczNGdhlc9RS5jAq5TGPJTwVbChVeYRv+FBNR/Yzt4SIbnN2Ae6X6M7YqlhWWkUUjvZBYpu8Zg+N1aWTBr/19BMTPEkBgUTD+AWv0T+5ZTQ6wnsQNIZ8kieNhqFYCPLlQShugq//XuwxtuxZXP2sgzG2lP2aum1OCHp2n7eG1PF+UVOSwirUvDSXHgMr34EaUzJnkl0iLl/ObocuPKrzBtsdb7W9heyv+jDv7AYV2OYn+kHv0rF+msP2Bvjo2PM4jwW70wflpPxUa8nHJ3ZZJU13GR7dAkAqn039rxJjTZG9FsYAc9gAL4dCBCFVSK4ujJ1itNMMz34t678UDBwwp0nuZtHz5TXSbHJ7H09v4LV+E= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8605e0e2-ed10-4e32-d694-08de546d836c X-MS-Exchange-CrossTenant-AuthSource: PH0PR10MB5777.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Jan 2026 19:37:26.7320 (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: JX1pJnU9EeKoXU99fTqrZXubv2IntHT62GemiJIB5UbYms3/alfxoOyhJep6wZAuLDCpe7ZHQnwLrJr+4oO/kQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA2PR10MB4507 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2026-01-15_06,2026-01-15_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 phishscore=0 bulkscore=0 suspectscore=0 spamscore=0 mlxlogscore=999 adultscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2512120000 definitions=main-2601150152 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTE1MDE1MyBTYWx0ZWRfX4qkEII7X9gCc 5HEGWZDkXNMS4gqtEy4tFAzNtsEr8qK3Y2Ywq4NT6Jxypes08Xr6Ytha1LDo7+A8txKbqXg9EL7 TmNm/AY4WVBfJ6cC2n89x5uUEoghynMaOqfwSJ1IKV3herktSP97gE8op3vGhUSzzQGswGseJWr 9nI3ti10B2p0CGzfs3JGHKf9LToiLm/ihJe0W9GPs6VOPLldLfmqjTdscqkTV2GdfIJA5i9POtZ xAxw7ctMt2Kws3d4PE/L1NfXSek3eN4rSU5afw6omaMWvdBXzHRVCR5FtUy2gHg173Q+23ToL0J BO9xYlvXeA2M8UPZOClcW0xe4kRkUj2hXlYehwYOmUosfGxvf8j1hoDGqPG0wbyPtB8n20TJCiG LBPTjKPT7dOhPe8ApxUgxfLNj4gePnVMGng0x4e8ygoYOUTHHnx6QqUoFSp/+lZSGCnRlOAOjku IN+DJFDV16b0XNha8cq510n9EOFaMPrIZkQBHtiU= X-Proofpoint-GUID: XinTYSmA9k62zgaAwGWtUoqpt5_VR0B3 X-Authority-Analysis: v=2.4 cv=aZtsXBot c=1 sm=1 tr=0 ts=696941fd 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=Dk5oX4W92Jz44JyhfwQA:9 cc=ntf awl=host:13654 X-Proofpoint-ORIG-GUID: XinTYSmA9k62zgaAwGWtUoqpt5_VR0B3 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 969be457f6df8..4dd1cc73cd27c 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. @@ -2635,6 +2685,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) { @@ -2663,6 +2756,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) { @@ -2866,36 +2995,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 @@ -2910,12 +3045,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 05:35:35 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 A7DD6320CAD for ; Thu, 15 Jan 2026 19:38:02 +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=1768505885; cv=fail; b=Y2CgVbv0ijn9WsvN1N8kSUdy1/UzSG8oEXtFq/oSSOQCzCL+szIOqMnI74bEvUO+aenbdl3F0014u4lTyGsVBKYieGvOJskuK00utFjvev3jyqnyH/nkRUDn1/rG1YH8NiDi7iRMI/HdCkZU+vPjZMFsKBS1QLO2iPcLU5bwvvo= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768505885; c=relaxed/simple; bh=IylYrEX11vq4GvyNbL5g7FP1t8pQz98yzMGAy5dLxro=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=iYDpxQ1h56GCuduHuJjL6zQlFdqZKxZ+Al9wH8J1Xu4jSUKnDWCLc2yCkxI73HfT5mgS287VbLXlYsKAIwxqMwhRqOOqbxIx4j91sXtMMkUFadTe5Fd0L8v+vjDYFIPt4wcaV3oVFS7ZVzj76pSikJl3XFmcBqb+hL+M9Y2JPIc= 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=K/UDY1S+; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=U/Ogvh31; 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="K/UDY1S+"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="U/Ogvh31" 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 60FFgMeB2419471; Thu, 15 Jan 2026 19:37: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=NqrzJO1V8LqFDJIP6UrYCZfgqmwYLROgIq4mr6GOn7k=; b= K/UDY1S+BzrkmUy4krlQovk68CB0qqDaD7Lr05xFj/me0MntOFaC59ZEvTRS7TM5 Tr5CvtFGebd2Jq0CTUKO/SIPjW78yaOL1YapwS2lIsKPvFZSWmo4RmQ+Egke2c22 VOcYwvIwC59tKGCN1KhsK3IDmjLNlnbTVXQoq5OXDunZATzA9438o6pHlDwyB0Ea +v45OdyEFhrztkV8xnTdulIk9RnE7bKmYxLYhRTLa1XdUrf2ImxDeIH0jhhxDcr5 XZFtSGAl53mzC6UEgzrRr1CIp8xgVh49K1XGGF7gfDz8AepFTupy9ACn8cj7bxgp 2aeNrX0MycwtIv0V9ux5Ug== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4bkre40j1d-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 15 Jan 2026 19:37:33 +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 60FIbfU6000463; Thu, 15 Jan 2026 19:37:32 GMT Received: from co1pr03cu002.outbound.protection.outlook.com (mail-westus2azon11010056.outbound.protection.outlook.com [52.101.46.56]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 4bkd7fgkrh-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 15 Jan 2026 19:37:32 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=XHd75wh66IImYEdY7PSFEcczf10jOa8OqcwNswFys4bhzIt0gDeD06QNEnI6fzIldSX+aSApFJUz0+n5TSaf2QLi7crlukDsJ+0lbF79PtCQ+iLrkAkXbRBycxA2Plsyh5cR7zlwEm7rgzux3rjbJtU5JsMBKn1aa2CYi1+9WtIO+dlT9VeoeZek9zlF+pW4qb/PmU36LDYr606wANHMY/PAZBWehXEjU8339yMLuodAI2YkVqvTOu1TbTEzkzsaC9q+v7w7d7Gr7LgBFrn5TiE5fpO6GCHbt6VIkcc8CJSOQToK2/FTtNrd0f4nfjGepFgcT4JN69GMLz634Y9/Xg== 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=NqrzJO1V8LqFDJIP6UrYCZfgqmwYLROgIq4mr6GOn7k=; b=aE1h73HCq8MkKe5GBHPyWhmzp9Cdt+e/sh4fsHwZjxZj+Ccx88+bw74cr7T23foFwZ1+W5g4stUvh+4ZMJJY/TjWPrbOw1M/ikWXP713FDSflj+p1nZaI6BGiU28U0FjdSkwI1itW0dillJG/kD6LSvc5eDn+yqAui18udQbsMruNGHHS7Mj88IWWqPkIJrKqsG1agMN6vxJasq9rh87l5NJBY+36WrpJoCsCdgADUpzDAaNB1MOJiK7nZHrDGOeT7fTqhWHCzfOeZd5anw68gRtPUeygzqYvq9MOXBHCOO13iKQD5C6bQKwIOFyk1CRHYpufq/+TcRsgyy5Fl/arQ== 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=NqrzJO1V8LqFDJIP6UrYCZfgqmwYLROgIq4mr6GOn7k=; b=U/Ogvh31Ah+TTBGj+BCtMjfOUiQcu6E25JFQoRHt2LIEiDzNvuLTcUwit694Ma9F4gEIPCcDWmAwBFLb4cNkvmXuCY8oVsPnkh3YS0uV7AaWOmRNMSwE79OiyQiRicfb2TfzzBLEHV/jheFhV/8scRblmjDvp1x70Tk5mRPnKHg= Received: from PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) by SA2PR10MB4507.namprd10.prod.outlook.com (2603:10b6:806:119::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9520.5; Thu, 15 Jan 2026 19:37: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.9520.003; Thu, 15 Jan 2026 19:37: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 , "Liam R. Howlett" Subject: [PATCH 14/28] maple_tree: Introduce ma_leaf_max_gap() Date: Thu, 15 Jan 2026 14:36:33 -0500 Message-ID: <20260115193647.1695937-15-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260115193647.1695937-1-Liam.Howlett@oracle.com> References: <20260115193647.1695937-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0347.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:fc::18) 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_|SA2PR10MB4507:EE_ X-MS-Office365-Filtering-Correlation-Id: 2b3d62b9-f7dc-49d7-fc20-08de546d84bc X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014|7416014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?FS+CQOAKe7USjb4aVnJunYyd8YjNLQq691AsrucEUakI4aFDenb2OWi51lrg?= =?us-ascii?Q?en2iQiKjx2wPwyE3fhlOsosYcdvRoDphncKQNDUBLNO177/AMxhCvozxC5h8?= =?us-ascii?Q?WlPFzr0lrpXcJdyHtdszKCWAmfGab94zpQ09DqIEEAq4X3i/DQYfjkLY/YkZ?= =?us-ascii?Q?oiF89Kqu8WQy6p/2GRgF8FXeM/iBAvWzTPj8ohp3bklFYm1YY82Uo828+M4h?= =?us-ascii?Q?OqM1alBmbpszgqRQPcaPIpq6RUIVV4F7Sl3/PEYzcRerz/B1Zo4FgYhOt3Z1?= =?us-ascii?Q?NKzr0aigAPa4Wfw6zEgt7LTfPKrTmCloo+p1oCIdFsja3HwVclNWomPBsFjr?= =?us-ascii?Q?t1eT1whtCcxRqvIkZc7ATosnDK0ooXWHQ+hCxhdxFzbNeYNpl0em1dAy30n2?= =?us-ascii?Q?zJj7bhwimiDbfRDqzQBUb0nY/q/SKwJzZg8sV4G0lS/3GUafhl0TAkotiLiU?= =?us-ascii?Q?GCtjEnO02RGE5ECQul3CUiShWL0lv3HkWcj6qcRtjsMMFxVUhNmxVE7VxvPs?= =?us-ascii?Q?0Y6XjSPV69UXU3mn5t5SRo2W8H6obbfCt+RWnembhvr2hTPYSzR2W9H75ONL?= =?us-ascii?Q?CX7ByBZYWNXrTvMLr4msJyUUAkMMemFyNdt63kEcn9LRPt8wrSlQpjM95jxt?= =?us-ascii?Q?D7jwbmVywNr7ZS4rIrHDLz3jtDtswKdHa5FeAVcoA4NPB/MHQ7Nd6cIGNAW8?= =?us-ascii?Q?cby6DBWiCC4L+3SbrdKxnFf9C5yh4LJTE4XC7AgtXJzMTKgJ/azOGmOWm94c?= =?us-ascii?Q?N6Sf19TjGWSu8RKOTFyUO0hztLfYLfihUfQX0xKNUtu8ceXrdY/5SCs15GSw?= =?us-ascii?Q?JLRnuCC5i/Y84nNMdbQcoBQHbalnB4a9nXphbiK9LxhK61JKfdpqrxvmAUOg?= =?us-ascii?Q?zlMdyKOB3R/O4/vZa11mak3aLg9sZEkyyB2zTSTsrjNFO9kUYe3AgG1PG1//?= =?us-ascii?Q?0T3XbTdSTJN18hzogu94jo435t0O7JDkEb7nByQ8rNipHKgn3g5nmrwTlgu6?= =?us-ascii?Q?S5IPpXtHUR1MNIhQqigOaRHbzPNX4tj3nN9VdLUM+tWMG72Dij6xD90MVUQb?= =?us-ascii?Q?j0r8O+JCgoiXZbauGn1Yj1CxLjvDKN/jMq+JObFqDlA1exAXIHdiHUgy2PaX?= =?us-ascii?Q?U8GdQvBMupCIW4Ab3LhWQ03iC6OKFH6Tlq03OCkBwujXTPeEQR6DwgrIUP9T?= =?us-ascii?Q?4R+s3XBJ9/JNbEQ+gJqVcjQL8KPbCci+sF4TNbhdAAhNzx12N6j+jj3Va0+9?= =?us-ascii?Q?UtPF99x03MbFSTQ4QNGt6XnLjzFhLTTrKmRvyyWbrN11wlo7Kkqprk94vbA6?= =?us-ascii?Q?JIQBUEXujFb7TAj3GLRwbzhB33pRgFcYekKDfLdJr84aLTCcC1A8oFdIVEyU?= =?us-ascii?Q?IcgZA8s1P5cBTfp6/Rh5wwYOsF6MZcK8iTsRxq/o17YaC3oBpVCWmqAUDh/4?= =?us-ascii?Q?/QvlIPBJ8Ej4/2x9h5i9dwJD+rROkMKhkPVDEyGcZecRKxQO+HFZM7ikvnJb?= =?us-ascii?Q?9a77lhSZ6ssGPauQxexnvG1c+ReCfet/uqZWscq02VSVMrjbx2Y/w/lRWngO?= =?us-ascii?Q?lJdFFyZiqoCezS0BYg4=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)(376014)(7416014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?z1MSv8Ze4WL1tTfJv5kVssXaRr3wu+ToSfn62qLQLgSKMql8JODlWSOa3Ssq?= =?us-ascii?Q?L71UYYioWPQ4/EhooG9eJ4n0IIZiCbWRo8eJd3WY/zRSgC4C3YjbQlzjS2Y/?= =?us-ascii?Q?KpFuBdqOoFZanbITaPVXi4MHeoNG13O/UJ1oJ1h/TNhDwkUENx0EokJbCV88?= =?us-ascii?Q?umUTfnW8YItj9Jgs/TopA26fU32XK4DDZY6w+0rsUJt3odqS3lfiwYEIcNIj?= =?us-ascii?Q?wnQFMdGxP8PGfPugZQmDaaNmAASY9DkPKFDYuqlJMXgGSBv0SZxiRUe3s5MB?= =?us-ascii?Q?ulNZs27XSD6YdR3pm6EXXqs22dcp5+Tx3IDgB4xkLeZb9GYOO2Yr/iBdnLOX?= =?us-ascii?Q?JpW5+q7KtmagXYgBVTKheUMSBPAZqkpaMsQnRh9T8H4AWC0RUtJ6VRUmKn31?= =?us-ascii?Q?3XYHFmmVTyFefdzqM4gcLPPGlFa+6XUiequDCdemLtwD/CZngtoArZM9Rw3v?= =?us-ascii?Q?zJUYL5C6A8pSsvgkEmyBEQzXhov5RY2YePAHUZ2+MggBzLc30S3tZZZgWObZ?= =?us-ascii?Q?ZlMQ770WPh7NtPL1E3I06aSLKYOOYjhHTxV+jhmym7UOKp3O//PQWmDIGM/l?= =?us-ascii?Q?okfAd5i/nGQfDTE1PnV3O5TdC3NhVzebMn4CQnWfwjcePBHC97+KA/+duCyQ?= =?us-ascii?Q?oKQeyINgQJxqHED0jkgdxyVeUr1Y/fGlGwc7rrswu8dkEEL0lQ6Ge/q4Hplt?= =?us-ascii?Q?sDMFeXS/aNZBS33lXHn3Ufo+3FL03Bxn/jmuIErHAdB/mqvq9UXRbnJbq8jL?= =?us-ascii?Q?LLhpYCMG+h5Xd9Dne1Y7iKkxFaP+uNDqc9zDWzZ81zHCCJymYwpG4s/fO/x0?= =?us-ascii?Q?FM11DZiUVHuFbnyQWqesxhI5JkD+BNOL54Y2U8zQ5xbza4PO3IBksKUzO74p?= =?us-ascii?Q?n28pGWjYS21GgjtyxbSFfEQUg6O7yWav+bztXASm3blIuN66X2tTcl0XaLtN?= =?us-ascii?Q?ulzogWftWBBypGv5bbiyESMOHi7wATuGoDRMLG9hdiqfeNu/mjYyW7eUylhm?= =?us-ascii?Q?ZO2g4KzAi2WRZBtBMQFRECeI4vwH7wsqWjHUaQ1VABHs86NzMteO4UaB5xRB?= =?us-ascii?Q?EodapRLRKq9Cf1CRNHPftIoopAhHqwarXKp2pUR3ukNjaajmUs/kRu6CG1fl?= =?us-ascii?Q?Pv4/AyICpCliXd7RNVRE4vguqtjMYZOFJKWlKdPxhox0HMmz1RVdIJaZ1Iyx?= =?us-ascii?Q?FamKKr2zEtdwcaXyFgwuetkflgQnIFtZW2wM7f7fQJGObpRywt5RofpiqKM6?= =?us-ascii?Q?HaGj/19kE8K2iAk8OdH6wVCigVIdRqCbZ/plU5in3E8bMXxElBuMRO0vEEJI?= =?us-ascii?Q?Hv90WSLGvy9uepLzooMkw6kUtQrAvhllGD7shjH2aRLutWME4D67CKeti8BP?= =?us-ascii?Q?2KKWcGdTE47dHH8PHXWT8VQneogf6NHn+SyI7VajU8NtyzD/SIcLSHYcqKXN?= =?us-ascii?Q?CK3nGO/4VPPhCaPfXnT2Sbaed7/oCIYCH4cMnjWOrGsHcLM5CPGCHcdoAXex?= =?us-ascii?Q?gGUUPhddZvkrA7wrNFq7qPnsXyrvH3ghnNbHm511E4jcXUabmzcsKNGNj9iz?= =?us-ascii?Q?Gar2oNSN9tDnpYq9BU+NALaxrzAWF8xnTs4qi3uMym/rwydqphHiDDZOhTPM?= =?us-ascii?Q?mp1kCZNQJb3ZusWJ933I/wqOPD0ScRQt0HEt3gJt+vYmTsG1A1Bp5J7QC7NQ?= =?us-ascii?Q?/olpTXslPKY5lf1Wcs42yccGOy659ff9eo0JVCUmrGze1bXBa///ZxxdLHpa?= =?us-ascii?Q?uSK54H2qSg=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 3WiGOkCUv3TK1ANgRTsEUN5hUuGxy2hYyPEVq51BjDsBX4a1kGt8wVks3ttcqjsxs4xOi9aIHuvsn6IIdHs+lVVAE2DNcPwg1N7R21c5KF9iXLc/E+xrfy6z4FA8tMXO5AeGi+Jwc5hSEhrIaRpVCGwpUT6CsH7zjNFZORWlcC5I1ZR5W79qUu1QhmeMpvK9KmaF6mm4+i3wz0Z3FapD2ytFEqjqeqP55Yj3nYk5HMkdwtON+obs/6bHw5LXozak9GJXP9h1suq+RyjvOT8FEFds9OCA1Rl6ZJSIKLrOMf1xaV7TYlLZL5qMWmp4GaGY/ohGAwJRgtRtmq9pDV2CXB4wxTzil6zWQ/Yh7neZT3nehDRzMJLkqABkdWid7uUAM7l9VxpaK6YFDuURX69znDEDRomrmzKez0IvdsxZZFa1j1hGszkZPkLekzBwZs+tuPXu9C84Tf1rG62joPorci/zecz4m9NLAe46s9sWAV9RT/VDSZybhsYgahfHzeU03c71QA9FmB5wUboKQDiXDXTGCxVT20YITFuqCl9BjWsvL5xElk077SGKFEiFBWnaezNiGfCNt+LGum3uVVP2Q4YuMeRc9t755e+qJoD5hSE= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2b3d62b9-f7dc-49d7-fc20-08de546d84bc X-MS-Exchange-CrossTenant-AuthSource: PH0PR10MB5777.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Jan 2026 19:37:28.9217 (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: +ItZbDxtQm9EOCsefKBMEef6enO/ZfACc54WR06ruX3UnU5tzd6jafgBmqRxWzjEyuKldHxCMlRj8DUHZhCarQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA2PR10MB4507 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2026-01-15_06,2026-01-15_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 phishscore=0 bulkscore=0 suspectscore=0 spamscore=0 mlxlogscore=999 adultscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2512120000 definitions=main-2601150152 X-Proofpoint-ORIG-GUID: Hn3L7TFFDqBgyXU635Q92PAwfbyQ9rMI X-Authority-Analysis: v=2.4 cv=YKOSCBGx c=1 sm=1 tr=0 ts=696941fd 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=-3J-9aNdBi9tGdEVLXQA:9 cc=ntf awl=host:13654 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTE1MDE1MyBTYWx0ZWRfX4XFHH3JVYY5n 2zxowJoBkWQg1GKuBdAXUqCpgkbVvdrZdVYVlrcP5uQvYwMMeS1Zt2xkyOROI/dzM+6mLa90WHh tvEMzjJ7O7lORSaKbIm+nL3kCayW7ruvkhdmUxUZ538C/Gzg9e6kkNna0Wg8RKT1v7Bq3NFy4ml 9+ksEfzAswmOouAFockwivpSpS9IBswet9eHGb/SoW1LpSnnWoP3lOGXQnscqbfL/RV9tpenBnq 9EBQt82OVn1S+4nSg2NaQBSiPh7fLjsZSh4zL0eyMrhKrfhgp9n8632LcpTyb0lzNvB7aUvQ5uC frG20BB07OJ24Jucy7s/kPrqdApAVFFSqid0ZuqmPV5ZFDboMfaGSJrxMBC/Jv0/6jSFpSLjfwy LjCmclxGJeXwD5fCAsYOF10LvYpjonAmF5slBtCDAKZpCpZCHzh2aeW14zk77V78ISYLfPSj3pz iomJP63aS0PIiCiz7/ZX/7ZptVlNdrJ/QsHG2xsw= X-Proofpoint-GUID: Hn3L7TFFDqBgyXU635Q92PAwfbyQ9rMI 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 4dd1cc73cd27c..366202dc22343 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 05:35:35 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 EBF12324719 for ; Thu, 15 Jan 2026 19:38:04 +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=1768505887; cv=fail; b=H7Rndbip9zuDCzmWWBoN1JLeoRU+qLbChRTYPJxLWVxhEy9MrGkNi7SjbtVB7nIuGmIut0WmO8AnC8DY+gDmu4aBWBGNEBahgxR3fmS4fPYYr9Ne/kT8InOCIOXvy+pP34eLMOsIzoqwzUQl8aCrWRj9wLxIMLKDF2GbAURUc7M= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768505887; c=relaxed/simple; bh=6Mj8IF9cAIVUCh0Ypgq3CFBppkDIUzridJFU3bX/Z6M=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=uv9+QNxlPuX2s1wwjRmAlk7+r0v2VgfMYCbVUsyTYsk2qnZ43MWSHe3AuNomHVFkrmEf6fnu8BMhnPe5OxJyD9Cp58O2zG7s7W1Q+jfOZl0njdw3T3GRzPo/gqOGUhmIQMMQuencb1fxXxf2iJmwNk0a8Bcg+NNNID01X5SutuI= 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=fEApKMW7; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=MCFoT7RH; 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="fEApKMW7"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="MCFoT7RH" 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 60FDjvLC2418953; Thu, 15 Jan 2026 19:37:36 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=49KlqTIjKW7nYrCJ/gvPetkdwhTp+AINiY1XW6mSQWw=; b= fEApKMW7bhviwqrV5Mc9v560u7E53HgRwK62dv6kmOQ4PgCyMPUPOHNubZ4TbnX8 qzH+IHUAkyg89liBfrJY+4hMji7YzMrCvGbH0UKuGxt6S/vWemtj0h0aqDxC1heZ KnISYLhwKPljqoNw4Kpn5Jegf54doy1yYzR1940N1seX7pJZKG+eobttkphbjIx3 jqAzmiDxQ5MfwbQW8OcAYu7Ur78eeTwiNvbpb3yfKSXG8fiCD7PB3UerPciELvBn WU67ZjWeYjLmZ07BEoS5R0hpymfvQNVz1ZUFuvj6C+yZRt6Q/BnasZROcWq5xJOE 6kSj/I7Qsh/pvNuaZJOcOQ== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4bkre40j1f-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 15 Jan 2026 19:37:36 +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 60FI54uw000547; Thu, 15 Jan 2026 19:37:35 GMT Received: from cy3pr05cu001.outbound.protection.outlook.com (mail-westcentralusazon11013068.outbound.protection.outlook.com [40.93.201.68]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 4bkd7bpurp-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 15 Jan 2026 19:37:35 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=bJcPswGkV0FzEMb83DmK4zvrb7CvkTwavC3Tcg+a7UsOM4hlWanMIG5TKW7aX9f18EntnX85GI7U1HU9C62Kk+PqHt2jbx0ZT+ra5ONqbz6Xr0gqbdMQ2AsCgr/sC3RxgxCbi+gFZWYFyyV/0N1YIUoJUp23L8dBOiTk6PE+uZ2eTY8EuyJOtJ+y5vL3xSOox0iB6Ccqetdurhjk2Tus40Jg9K5vtNG1+fuldIK7pqLVDm05ALl7IIgbMaf/wPusALmpoW6HgsNxQRO3XrJeCRQ+k6MHVO11XmQVEz6OD3DG3d3H1r4ZfC/G5l0jwIM2HNBejC/5b/u3Bamf/+kW9w== 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=49KlqTIjKW7nYrCJ/gvPetkdwhTp+AINiY1XW6mSQWw=; b=cAYNOGS7Jqgbpw9d+nvs7p1ogMBSlFp37J8+bTBjLcx+/ogLw1PTPLgE++3nwW6Cij5D7/3mhUYKyGpyXm36vQF3t2Zk4+v3XvCT/hlKiE555OJ/k0abAOIwDKPSdsSjw5LN8wpMHsS9NAN9XDO70qrefJVIcTQ2oxivrN3XuSylyHAH9VJfwf72yItq06JWvyhTw/hWt9dma0KZUF9bRDqULbp+YxrLGNqN3CJYNva0WJ3Q+ioHW6MrTmXEPsIT2R73UtUHQZc3BSFWgBlkhb813qEHx33s7zJqUv0oMm2qeP8fHPr/uKBaBv+B8BLEklKPg1JjaV/+G4xXTgdyGA== 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=49KlqTIjKW7nYrCJ/gvPetkdwhTp+AINiY1XW6mSQWw=; b=MCFoT7RHGmm1XvVw6bw9uRRVmrxkfyPLYHGxphDtuuDUfNUM+ha89sAg/DWM6+wG+JBT9s+yBSQUHA+h65Chv8mhecWAJg1EH+t2ag8wBiPamBMR/Z/tgBuTsNaAWSLWxqgdxhtifVvNTI3Qko7RKCxvd78T32w6Vtjhzf+10mA= Received: from PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) by SA2PR10MB4507.namprd10.prod.outlook.com (2603:10b6:806:119::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9520.5; Thu, 15 Jan 2026 19:37:31 +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.9520.003; Thu, 15 Jan 2026 19:37: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 , "Liam R. Howlett" Subject: [PATCH 15/28] maple_tree: Add gap support, slot and pivot sizes for maple copy Date: Thu, 15 Jan 2026 14:36:34 -0500 Message-ID: <20260115193647.1695937-16-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260115193647.1695937-1-Liam.Howlett@oracle.com> References: <20260115193647.1695937-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0322.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:10a::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_|SA2PR10MB4507:EE_ X-MS-Office365-Filtering-Correlation-Id: 5cccbff3-9242-4554-8542-08de546d865f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014|7416014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?la+5BeyYC0VBnh3VWFZvc5TtQPzAjs3kYEulzDXm4LGt5xPWJSokdskdr8aP?= =?us-ascii?Q?VwE5CJnsTs024z/AqeP4Dp5utYZo0E4fTbsLM2vnC37KE1S4wXFzLvhXw25q?= =?us-ascii?Q?t9CKG1tutkvdGuCZDkLU79IOaTASOlI8Aq1u9Eu2x/aADTAQrrUrNqLnChJs?= =?us-ascii?Q?Arys498o3GJDoQ6a7wy07sled4p4m+BtH0DbK2m1NKbmlVVJH3hKbtbIa0SE?= =?us-ascii?Q?Z4k/rUGoa48YKoJu27E/bqg9emlp5vIzcTRpu9OGCt/pMSOcr8GumD1gYdwN?= =?us-ascii?Q?CIigOX5M060T1zvFX/4nXHvNurVrXXQUcZ181RMckgiSPJlgYvH/JPlaw3b6?= =?us-ascii?Q?kpYTpF2nA/rd3X+nsE391IRU+EFJERssHm1JooCVK+RIrNVWPlopHov6/eIe?= =?us-ascii?Q?hiN9EQT+T9qJCFAixreHhKZ/vkIvNuKZRKntcIs59W8vc7/EW1HwzaFA7xQ+?= =?us-ascii?Q?HRAPcQdJJIxVCljjDH6clNqqGLt1l1pKNqbn0mVxFmiWRmvBWOJQMiENUGCS?= =?us-ascii?Q?owt8qr5e2FkYo3OZiTm+ZYtRFGCLbQ33jevuFWxKVO/wpaefABbOBDsPXC3r?= =?us-ascii?Q?U1TKACGpIwo+8Kp5QMzum6BkzaMO0mP7ibfKqteNOHTL2FzTxShOjeuD7E/D?= =?us-ascii?Q?1PoUuSta8kKFvCjokjdrDMymOG+yypGU19gW8CPyciz00YLCOmEozcvOHM1H?= =?us-ascii?Q?3ljqWyWoKiMwy3ZvlO152z8kCiur9bh2L4mpiCEd3I6lmt++vhrddtg2REoY?= =?us-ascii?Q?/lyIxuVejWZXnXKAwWgrxiDF3CJ/+gc77ZW3wL1zYrPvhRGQsgykLYGCXaho?= =?us-ascii?Q?vzNgzGbRqCx7mXHqVPmjJN+F86KVrbwN5RtHj6fmwZh+m5ioomlETqwP287A?= =?us-ascii?Q?kz6fgpVRMU5yx77eB2rOPt2pr/KzDEx4LxhvJ3ndCO66qzqXZ/ATK6avC+Mo?= =?us-ascii?Q?vkEvgGqCoi4NLLke1cujiv3n360203aZKedwQxodDrtGq8hbhqHCU/fUC7zU?= =?us-ascii?Q?gOehUtKiY81ylJljMLi1H5flfD8UozC5ln0LFIsljTIH/F7yo2E70ZfZjtw9?= =?us-ascii?Q?gMVzuGUCMAeSlNTGZqS8zu2kCXprEomSOkl2dNDs4G08c6fXX16aUmDZ/S2C?= =?us-ascii?Q?wb2zCDwZKlwhHc7pFlGq9WKNBBTk1FvqBt1vC9EPy5LcPVDQFf9RCs44yBo5?= =?us-ascii?Q?q4EqCZwN8CycpK+++krHU76lKw0Sf+/YvV4J2dWZ13nb3eLGgR9TE2Gpo16B?= =?us-ascii?Q?DeaqFdC6ObckasB0zywA5+gNUiF++HYmFxfNDAtKm4/5euulByPDGmJPckLt?= =?us-ascii?Q?Yxwc2AVvsAZ3BHgIn1+5bA2RBTeOpuMVs8+mh6HGqhIlklJVgO+qGv0hgjhZ?= =?us-ascii?Q?UkJzQ9pzk4CSkldxg+B4CISne4iSsMZ1IgKTvaAvnAW2qlSTlwkjS1GptAOh?= =?us-ascii?Q?FltgJc30lXLMAaTJOk1KGKItrWorVX7/TTfGx5s6uxPDLuxhcvVYbfRVRjyC?= =?us-ascii?Q?5TEpGQcUcwJ64Q7YTAW020RItO9wdMPYTDVliX5RJLHyMn8coTLNZ0wqhEEm?= =?us-ascii?Q?Y3lTeG9PDmHJ52yW6Hw=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)(376014)(7416014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?3lkQJex7wc680ekXCbmeBELP+dqsuKJ4RzBsMWCfeV3Xam5EaN5cy3iyJTt+?= =?us-ascii?Q?3Us4ah4Af8JN24f4w/8ftPmkbwpPidp55AZC9h7xt0IxTiWbnUPSOYgaVloP?= =?us-ascii?Q?jDbybYysAP4mhtzQmJCDJqgMOUYJCOKRZfNHsQR+tkvbNFz/Qp+TBH0+d6OM?= =?us-ascii?Q?BVMrKuaEcqKhNnQble5TH0+J01BMYnboGU0piufeN1a8veya7wIZ3hvu2Vvu?= =?us-ascii?Q?MiLUg+hfZlcHTVNH+KI2I1BacRDdE9UEvzJsnHm6vXvQEMzEPX1TLAxCq1nK?= =?us-ascii?Q?xgoYbJTs5et7ShDu0BZ9d3yqkoGXpeC0t+kFWBGtBH0XZG3tou9QFcX+sG96?= =?us-ascii?Q?KX2ahSgePOLpvY6pK0yupcFEKNfJy8K/jsrpKaVprFvGtTdWJuxD0lLBmm/V?= =?us-ascii?Q?UlsKSKsaBygouH0kxYT2cY+lbcjmo5iCdr43KR5N5AntF9h7AAiMtcCEzy1B?= =?us-ascii?Q?TV7pkVTHYGdSsEseEDQz+pv9+5KyyJ+WnlHQDKSDZupD4gk3CeCiEBXEhR+W?= =?us-ascii?Q?uB/2pYU37wl8txH2qIlVhrYSVO/843KinHJam6RVV0vJeIu2hPfRw9m0MXSJ?= =?us-ascii?Q?E3PzklVNNR1bXyKoPnlymDOnbkqt0CDKkrJnsU0P0VbUY045SZrl8Dii+O9p?= =?us-ascii?Q?OH72Q+H93in3jnrj3FjTVoPbNrod6eHT1Cr4A4W3RBPxjyOs0BzeSkQ3L+Ht?= =?us-ascii?Q?sy7JwPpakVOW1GYj6/KtQtF8iJ1rbRzpAoTT8Ur/74y+9d7bd3dS3KXRgCo+?= =?us-ascii?Q?TqQEXZNenUwPqTvNzdjoq6cZpVSEJUoeoTUllPiiOSQa9efrasvcu+60Gj7q?= =?us-ascii?Q?T0s7GsC0YbkI4+PPPCPIfGCEjzFlIGwVGuPFf7jeHRk1G+tsHqxLyc3R2fim?= =?us-ascii?Q?FOqzmuHdZ2BgCvrLXWI7lDsv1LteVBSigpxn5H7ce7yLQz65MJzrLKDujL0K?= =?us-ascii?Q?jRpKln56s8+caxU3vqvkOM4qvP9MOIpfGff5+6vSDv5QQKRcDpJwrwxRFWxb?= =?us-ascii?Q?bwpSso0rsbtJl7FSFHXO9vn9qW1Xe1yJvhHKbTOVPWt8AYlUrZMDNh0Z6w0B?= =?us-ascii?Q?m0U83i53bUVPyXA5zq6ZgDiFz1o+TnvDCLX0Pnc+Gbl+zNVt0/KZinDvKg/E?= =?us-ascii?Q?DMur8mJas5MYAc2aKtwKYCOgPzfIsGl+6MWPQLEFP+ngubW1n16eNaI1+gL5?= =?us-ascii?Q?uJ5B8XG2Yr+aSAKUNBOq/6iYtoWSNe+9JZj1fUAZrS+CqJlDJKaueKhMICpY?= =?us-ascii?Q?Up48dt/lq2xTUOI5gQPyqp1IPL9v0oJV60QbhWJ4BiDorxhFyQQMTU71UJvN?= =?us-ascii?Q?jEuU7zxr9WU3Xsbe0A0Ii/MsCfFzhXIUIDl0Wp5E5XZQAWtj6FOhLXWqkRff?= =?us-ascii?Q?voFuI53EKmhIIzK0lA4wzOuQcFYMEuewta68SeO4iOCxe4IgNhh3r6Qv+AP4?= =?us-ascii?Q?hVUmsnjMGanYAvKLC3VI6Bi951gupi+KgtV6ei6fMyGzUrDnpj8hLrPROFyD?= =?us-ascii?Q?9YQVy/fxNcmWb55ZAyWTkYmfhcHf/KtzyZrrd8rbUIluf2A/V4zK0KsoeWxF?= =?us-ascii?Q?eW1QgUUNpcpqBxy+D6HDn42HCz4MYwxzkH3KgTvplDbIykkwNqLpEsJoFMkD?= =?us-ascii?Q?D8LB+GEiYSUvBHRWhvXT7QnItezXiTDOCT6/ZZnV7p/wGmcPV35ieP7oS73F?= =?us-ascii?Q?Y8qL2j+ewJlWG4rJZgQAQn+ZMz3btCDh6QWyzeQM3uPQs4GPMvmdnJU9MFrl?= =?us-ascii?Q?XDlR3nYtmQ=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: HkMwJOtcJJb5vYgfr9eWACQmovnBVS9O8TaNGhDtKQde9WTxPWxWqAHq0LGt2IMCJ7gDjdmSsx3z3XhqBS4dHWazRDy9AmDKBh53oBRHmKrBWlpSbcfbN2Mf8H/DqoSYIOqs+aUTAgPJHEgSk+cr8SGXqT1TddrUjR1xqMmobJOIp55jKsna1cs+8/Lj23nd9OvxxztNu+ZnVLptlSZX2YMeSyC84aidZcwEM+pOzJN7RnC25J9OSXWujEXl7gZnK99w5isznxDsVFpxh/XLAz+hMKY5QsUv0a5KuAxtfxUttAY7HMfY8rh7gZDLjNJCmBatm2Q1RpeUGND9oWToXgwu0S1FuYjkiDiBgoEQkRb4tFgSlGHmzhPWXIyzs2XzlfQt9jtYHmCpHfda7A9PcZoak2q2/1d979TZ/obQCfhwb6RAWI5OFllN0DuPPB4HLpaWvdPy3+G1E9eU9fDCs5F/61CY19fjWhVfz2SGcCuF5bDxH5XmsjO9B5fOlRIaP2eMD7Vzb5D+nerOJRoAN666vu6WKr/PVZsUliqTZPE7Ey4umrL4y90m7aksof4fO6uVopts/deuVcaCjqaYvTtUDtpWMB5CxU6FTS/hXJ4= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5cccbff3-9242-4554-8542-08de546d865f X-MS-Exchange-CrossTenant-AuthSource: PH0PR10MB5777.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Jan 2026 19:37:31.7055 (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: ZTXUeiPKAiMx3Vt4QlywdOSjWgl4CUkIuBvsuwRwqascYsQfNr4nzwHkmuo6t1C1WkWWBsSSvvr05ExF6SZQRw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA2PR10MB4507 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2026-01-15_06,2026-01-15_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 malwarescore=0 phishscore=0 mlxlogscore=999 adultscore=0 suspectscore=0 spamscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2512120000 definitions=main-2601150152 X-Proofpoint-ORIG-GUID: pJ7BpyjtFJoDMKr07dMSwf8jVDW8XRJ5 X-Authority-Analysis: v=2.4 cv=YKOSCBGx c=1 sm=1 tr=0 ts=69694200 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=WDoy55lLVV0zyn05J78A:9 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTE1MDE1MyBTYWx0ZWRfX05gUemIe+32D OAZRJ8/0ZHtaKZzgLaHfmD0Mo6ldFFL4BsNSBQmJOFG6k89mkvZ/3J0bfsaHsTyFMxtU4fQmMjD uVjn7VHX1klZVLbh9Fhlq06/O0kT4CC5ntjVBt74C8kRkXoTXjidLLgYT4x//XUWWIu5anlI5Dt hIe2Emdk40JIzjbzW1h1eBUnEUwbEUDCz44Beh9/4Vhs4llwvn8xwr8d5WRHw8+uMHccyFsLPER CJHqFlIdNQ/hSn///fS6Q3gbJ4+8qFGmWuf7FUBPg8Cvj3kyY0y6ZmjcWr+99q9yi5xZeLq5q69 sPkvc7HoISPV5snPM1Ney+cxw/6s6RWGejRKZY2dw299eqLQOC1Ye8znCcjW++0ohNh/veNeeET OpOe2omo8TGYGPOyj3p3piT0NF9bAJDYldX5Ck/1Ty2kHZgyIAAH1gY3XZENEAzmE0zCb6hTclJ 1LaxG50vI8rY/3nleFg== X-Proofpoint-GUID: pJ7BpyjtFJoDMKr07dMSwf8jVDW8XRJ5 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 366202dc22343..a9d4f3ef8e888 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 05:35:35 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 E3A29320CCB for ; Thu, 15 Jan 2026 19:38:02 +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=1768505888; cv=fail; b=HI7BuAzpBAgVUAPdLsWkCcWesA6POCIVTQh77ac401zZHv7TIkf5jp1573yX0MB+4RdselUR0gOfSa865aJAdJKL9pSvEHk1+iRsrpyB2G+tr8q5lE7JZ6XBtrFfT4QSc+aIqH5gt3WD93rQ4HmfVwfsrfqL/21zFf2XRosjFO4= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768505888; c=relaxed/simple; bh=Hzra4YB2S7SR12+e0RlTP2vPUdrDBfMIghuZfVJmZqI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=L0/KEDMFHc/Tb8Mq4X6EUj/UHT0yVzM8h3M4gB9SmSzWCXNfmf3iYN+FjXJi2MUaJ5mWE0UFXDefqHLvoRyz/vKFq0FISoODSXah8rNMbcJs1ToVh2woaJ632RLMNRCrhFKDFXk1pYfzHuKbWQWXNRwzL3khda0B2NukGlHV0B4= 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=e9MAEl8r; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=ELmAWkfp; 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="e9MAEl8r"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="ELmAWkfp" 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 60FEfZUN1940184; Thu, 15 Jan 2026 19:37: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=qhDT7zbM6+62WVcy6p56gogns5KVjtkPQW/fp3AFqoM=; b= e9MAEl8rmWzEyPyCvVr2anzsCdkqrFhFVN9nsoMa5gFnKA6iwPcEHElhUxcqpf1D nDFe0lu4wnzmXhfpR7ETxWDhtnljVb4BWwsAJc+hNkTOcU/K7XGOfEfoSi5mZfuy DNkg0uJlYR6XLsqA0t/J8iYFB985FMa8M5s8SnQWPsyJ0yhjgg/DfjCG3CxtiZgk 0ldOsecdUBLWxXEQmYS5RVSwV4eqDQaD/b/2m+f7a6NHKtEj55ckwTOAKwDobSC8 bcLCrlROY/+cErucTOiYYYG83i+XQ72E5FSfhafVD3eJrV/0Qn80v80q9F5QGRr9 ixfM/57Nw4kAUCM0nyBkHg== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4bp5p3bwcg-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 15 Jan 2026 19:37:38 +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 60FI1DXU004234; Thu, 15 Jan 2026 19:37:37 GMT Received: from cy3pr05cu001.outbound.protection.outlook.com (mail-westcentralusazon11013057.outbound.protection.outlook.com [40.93.201.57]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 4bkd7nguhf-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 15 Jan 2026 19:37:37 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=a5bZ5Mpx6PSsVfUHU9KbNJoBVrl6EsDGISGf2Z0KbM2XVeF438WIug3DpzeToagHvTHQnQPit1zMBle+jyowkQcPmnDIrFlc84yerf5ht/SJXWz63mx9DzfCyxrvsvVYv1KkqCkNwUI+g1zqstfuANhxNiPVIAPCcuhF50yXfhdbnf9RCArQk/EkLu6m6U1/M7C4qovb/ROwlPzlhFriu3AnBfFBCW/2QwmsD7gPIoEWE7i04WQmjckVZP0Qhybox0JU9z703QNCsd0VymLGdPcxNa95MK74Tox3XVrVeld5L7E6MpARsbDXmv0fC5Ep1JjzrNPkfVxVnmrTEKSf5A== 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=qhDT7zbM6+62WVcy6p56gogns5KVjtkPQW/fp3AFqoM=; b=YXm/HkTOCoYNL3zaa8pkOsTzRuxVyuKjY1iQm4ZzHzm1PiMdgWAUBIY47ZZBDKU3oR6KZkIdaC7nQEXnZ+GuCe4TRVBchs+LpYKXn1Ljk4WWDrjpQLm4cChi0qv1HSqH39mMUprqMJkExC6e34efQzytYgjVR4+7nLwWJkQYo+tiWnBj1KO3AZDZSfVtxYEl3b3Tcajr8Ek4PQpCY5ptVBxgB8KTwjSXtBWlhChSgW6iH26TkloOs9gAI2b9tkD81Q4YCNSZKNGZ4BsRKC8ABdWR8maWMeL73E9oyFHXGHCiwbkkvaylk79l9sjjvlEzfVnQYpGzWHxylKYj5CgWxA== 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=qhDT7zbM6+62WVcy6p56gogns5KVjtkPQW/fp3AFqoM=; b=ELmAWkfp4rHgMFKs7pKl8QaPsmvIKYKTNlcsGbYC+ci5GT+dLPDFpIBac2mO8Ko9JuUYYQy7WEpU3VJvHbcoUwyf3bTdTeJpTJwUNY8Jay4FzyWLRr/86L0VcXNqW8rIoSVDi8g8168LXffNtHOA1zqYj5aKFJVcz7n7URZsoM8= Received: from PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) by SA2PR10MB4507.namprd10.prod.outlook.com (2603:10b6:806:119::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9520.5; Thu, 15 Jan 2026 19:37: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.9520.003; Thu, 15 Jan 2026 19:37:33 +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 , "Liam R. Howlett" Subject: [PATCH 16/28] maple_tree: Start using maple copy node for destination Date: Thu, 15 Jan 2026 14:36:35 -0500 Message-ID: <20260115193647.1695937-17-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260115193647.1695937-1-Liam.Howlett@oracle.com> References: <20260115193647.1695937-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0057.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:111::13) 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_|SA2PR10MB4507:EE_ X-MS-Office365-Filtering-Correlation-Id: 632ce57e-b6aa-40c4-2d3c-08de546d8797 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014|7416014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?uPEROP21X93PkBvsnUXzmqFfZ+FlSQ93uYiAPP+72ZdMAkEXWWkYGs7Z8gvH?= =?us-ascii?Q?x2hpyhYO2OfnFA1C5sheOOR18T+ZyE8VUyMAwW9lk9XLtc6DeDli792hCz5h?= =?us-ascii?Q?hCKLebG+oUVTH0blTJWVom0qLlhju2Bsd2vL7ctZV1jxxdajvVSuF4QwZWui?= =?us-ascii?Q?ShYvZpiPCr4zu6DdyldHHavetbEyE6U3iyt4QzHEwmbEyqeGbR+BdFaQqnS2?= =?us-ascii?Q?Nr0xdkV3h3JVzjUiN6eT1OUOvTwH6MiYEhWFPZpQNVJyzC7LS5zjbeqvf4/7?= =?us-ascii?Q?Ma2X2hziPfQ4ymyfQe0EG5+7UjUkl8Y0o6/AIXcyhu8nWt6Z6PDE7hX1b5Jm?= =?us-ascii?Q?namplajOM3LIrNmhW5SnVT0XRmlRqQ9aUIE0biNU9Fc1JwEVWV2Hgcp2kG26?= =?us-ascii?Q?B6Brl6WidY4DcFXQXcvu099GVBeechNYLLc/RT+jWXWUL7zbRhUH1ch0LYn2?= =?us-ascii?Q?WeX/4pmJ9iYvt2ri0a9+twWHkPx8e5wnchFAGuCxeRCGpY3KrwhkZ04tIjRG?= =?us-ascii?Q?XC4y2KeEiHKZSg7yLCDbzjX91t3Mf2dfx/1sh/gNz3P87aiFJttbc7/p9Fez?= =?us-ascii?Q?bzv335dnbxkG482xQczI18a7N0afvFPHxX4k1SfzfNxuyCfyIs5Q2nwV3Hjp?= =?us-ascii?Q?67dR26gPYqJvdW4BhMJOProSZPTX0Nk0ROmtsUfGnvny/PNPXGI1hWeRDIP4?= =?us-ascii?Q?cjWvX8ME3tg8c8YLx63qHt1b1ATgL88LzTLFEwUNBhhGxc8Tkn2uvBiOc/F8?= =?us-ascii?Q?ODzLEDP8dUkn1cJsVmnLv88YiOB5Aw8/c7JDGKapbcxuPhcpSP9eJFq/YKY2?= =?us-ascii?Q?LqUpGDLZUW3nRYOye3Ymg6iEL9sAnqA/tnX0+9xSz3IZCvXkmPIwHo0XZJQW?= =?us-ascii?Q?knEu92OxNjNwL4/AsuLfZGMt3Top61IFT8hRomd7Qs28jGERUWr6gVYZAQI6?= =?us-ascii?Q?3IyeXu46c5vUYfBzVgG4ZTMh195wAQpfNF3qV/Li525uNlTcFhJJpvEWBX1+?= =?us-ascii?Q?b1V74k9HUCi6+fK83v6MLkEw3W+e3EkPqzHHKuBsjqsqNHohnKboGwnczMp9?= =?us-ascii?Q?OPCInT+k0PT92/g3enplRMBJZXpSLxIZN2r+GM3Q6zg0zxFeKUosO5DDEMdY?= =?us-ascii?Q?Nt2x302DJXbdymUN9fuveBVLpv1/I3XofWUP+m7FlqQZdFc1S0iNWaHM4ByW?= =?us-ascii?Q?CBB5brBULgr5mevN3F/0WSgPxRcjGT7VY4Q6MbZ0vtAMHC6v/SygJe2+F0fE?= =?us-ascii?Q?mew8Vv7WgwHZoDudsNc7iMAQyyKMw2niIVbQhCAdLYzPjTUqIzOFh2M5/E4Z?= =?us-ascii?Q?m8aT8kctgDmaz9h4ph8KZS6rMtkTqsNGRuXh9aUJkQTjbclcX6sEweoeQ6qP?= =?us-ascii?Q?8+QCfqqwnTzFsyI3XUyadQiWjpYEc3dkO2m/0R9QsM22RsuxquWzR5FJ/Z8M?= =?us-ascii?Q?rT9C4dL0GqLScQaNkH5Mn/5ji1hVkP8Axmd6kojXooRF5F8XiAqUUWX4vj91?= =?us-ascii?Q?asdezpBqqKP37fFSldUZ29PWFjissAJ2+5BvX5t3nvI/Amy2KbG7Pz4Ht/Z+?= =?us-ascii?Q?LyAhfZ4924doGOW+APs=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)(376014)(7416014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?ypuqCV0fEk+oFLvpupVvkkKrvYULLzm+ulTe/t/uMcrM7BqubwdhsskS9nOm?= =?us-ascii?Q?SwmO9zb0e4OWgrLzfWSBwrk7sEaoOIKEzj2ifW3js27tvn8YDmmaVB4ckVqq?= =?us-ascii?Q?QwryFj9O6wcCMX7+yNewSCNxM8J07DQTaGBNI+wRNKthkyQmccjxQVanIMlh?= =?us-ascii?Q?V44rPcxie7TVeMwqeW2Vn39+wss6HMSRsyxD1bAmaR6lQbs7QiRnShNUSFiF?= =?us-ascii?Q?Nceu9VR/axAlzJgVVoxfUyIfgjZGFFfFXqUsPc4FaV8vDSXC5SQTAqRkKlaf?= =?us-ascii?Q?BkL5a7FpQAPQpNlwuolE5qo/jnFJAUyol55dy6TnM+GH5NfSnT7UKz1YCE9S?= =?us-ascii?Q?/zxh19IaPSFh0t7nKhZxhYOcnmKSBol31CspO78koBJsZb2ZhEe5BC81sp3K?= =?us-ascii?Q?L8qu5hzbe8lKOqWWNOgik/9laSe9NQry5KfK/n3T+CgFithQdZzfTGJ2Hjol?= =?us-ascii?Q?Mqr+BrXNVUHhpggNrkq1csQue8RGYmMQzDjaPfcz9LpxDVlXEt95w0saZW+k?= =?us-ascii?Q?LL6ZLEzhLqOfdq0FTeNFY80fjGDqg1MHgYxMVGJKTXSGGdEJJWABuzIWTHG7?= =?us-ascii?Q?VgJslsyCgNd0Ghxdpc1fFYiByKLpt1jUtvqKX9Xd2iViywu9iBjycXdWMzcM?= =?us-ascii?Q?E/Jt1PKZ1RDk+gJAKo4tojD68/RS17UeUtxHBevH+1u7je4Mlc3wv5F+5T7A?= =?us-ascii?Q?VVOZzE2nChLOAH3cb1j+5DakVuqy2txw1Y30BeILTGvg26Y+ESSKqCvxSBUC?= =?us-ascii?Q?Z0ilpqrekLz99ubxaJseyOL70LLlpoNa5qLBSpMdqXvEPGQF8fwRLdULrH3e?= =?us-ascii?Q?DbFQi2RP58bpb68GCwOzwZbLhqMGFoF1/9/OdYxznvmkMtw+CZF+nN048BEO?= =?us-ascii?Q?wmCpTTh38Hlc5r6+kBlz18oQzbbKaW8fMMTTZWkSRhhoDWtEaWe/MNcdg59Y?= =?us-ascii?Q?u3AemhnGso3yu5pwTJfKbLv36sz7XocwVaXoAIAWfAt9xuy2XRrlweNPRLBV?= =?us-ascii?Q?+qiMT5mKSuDCJ/jfkE6ffBIb2zckVDDMNYQOXh1zGHucVgadUuLBW9Igkr9Q?= =?us-ascii?Q?PCLuiYnrpCNocTnkbPL8fDXtPJMXRDDjM7h/7bBejjUlsp090P2NG8XnUcDW?= =?us-ascii?Q?QOLHDq2So/3efLwmNu3W5NMwxg+CTWRRht7VOtChK8feb64tfcPYdbLfIETh?= =?us-ascii?Q?hns/0TDUEG+iRvUbLemnw+7kvALC8HKzm+xgV7K9XHIrrlej5rLF3be3URqv?= =?us-ascii?Q?WW8G8qXuIRaGdKzGQJpVaAiqqEp0nHYxy1S3ZQb3o/wppUf/jT1f40nZo/tk?= =?us-ascii?Q?olzXw0s4DjhDCcmduVDWhPmQV7qcbT5W/XbjVMaej2niTOMb7apyTnGAFL6/?= =?us-ascii?Q?WfeQ8zxd+glpLfOB8mpb7trJ6REDn3Aew8XxtVJFrIJPUPAg95qsaf6OibdK?= =?us-ascii?Q?1uB5VXff3Ee6/ZMpWOKvJkeU4UEuHTIe00y09jcD473ippMUXcs8J2UNbkOa?= =?us-ascii?Q?YoYsjCcX6xYfBAWGUZTcfNGdPnIf0CWrGUKMyglOAM/Lpda+tacO/pzjzUsV?= =?us-ascii?Q?E/levlfPP4pQG+TCeO+hcEOh/aL+p5GJXA5xpWlrq9r6dDNlDau3IzmT3XK8?= =?us-ascii?Q?O0M2fNLTXdFCFSOch+Pcri/BFQDT+0zo6Cfs1GEZmkGzv+VVN7dC93aX8kw9?= =?us-ascii?Q?meMEP1Po0qtP7L03PtZ4oMBOwF1BNGLuwSF54PeN5drEAwvnytP6pN4VadBG?= =?us-ascii?Q?wsAXNECRQw=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: t3d16y+D5swk0RgYD9zdwQnNaLPflg6Q/tG/3fOiHvIrY9SN1yv/nG3TX+SjcW5pqUEgJ+aDk9fcImJAEMuxn1K8nYKK1I0wULZtYeW46VON3UQdrhht+k2P5zed8JzM5y6yyhLo4ZxqFd9uGDBA+MQAyTPpILQ+BjSxJaUzvC0VyPdeu6EJRLaL0hrX78Wezzy2Z1QBipEic8amtr0vsKeXUy7sgnsjwIpkEwPVYNx0pNxPDmFT3vR5mKnmYmxozIJyqa51iZc4ycISiEhBr7NU35mTnWzCTuGs2rfa8SkgOKacuzwiQcpuvlstxqEQwdRngzwQy1qWFfGss/GDjHtrZ+iFWpMuguBcfkcx0X1wrGO01KqyD8JS9AFoAhJRKc+JdCk6nXfBiFXeDV01sDT3RD1I7AaO5lj2iYB+p/kammy7JgZdzezP4XlqslG3gMlKVOGgCk/J94GPkQJHx6+xqn12G5r+IrYJAPnqNiIcnAK6I9n+pZuY9+k358SrVnEzAhxz6kxK6e351SCXRpjMtUoAygohIziXKeOHcMJ9f3+8iFHdK5Gd6TYhF1HzwsZ9sp9AnMPc849fiaO/kMVPX7rmnLM6u0a3g8uHcG8= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 632ce57e-b6aa-40c4-2d3c-08de546d8797 X-MS-Exchange-CrossTenant-AuthSource: PH0PR10MB5777.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Jan 2026 19:37:33.8341 (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: iORHa+44OfTmEjHfyY7GATT6FNzEhjrml/fN2sHAc+FXWFOPz8wWcpUWFn+ROYSa8qWJmR+4HuTz45d16zV35A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA2PR10MB4507 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2026-01-15_06,2026-01-15_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 suspectscore=0 malwarescore=0 spamscore=0 adultscore=0 mlxscore=0 phishscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2512120000 definitions=main-2601150152 X-Authority-Analysis: v=2.4 cv=OJUqHCaB c=1 sm=1 tr=0 ts=69694202 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=87tggohZ5hOGCbKafh0A:9 cc=ntf awl=host:12110 X-Proofpoint-ORIG-GUID: TDKuDqOrSvaKLyl1OONEqmYwORMbtJpP X-Proofpoint-GUID: TDKuDqOrSvaKLyl1OONEqmYwORMbtJpP X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTE1MDE1MyBTYWx0ZWRfX2JyiynTqEpae UxA6SwtkMzx9budn1yRDLfsGYJQ2vVoNGucWa+uqFcTXwIzdQlzCXUlWwJsahCDxmAhO6F2/m68 KiwA3ASDaTUF7zDaIZp/iinCXZKVuSNGfeqmmw9ZdCnHVxbFHf51z8efoAyQQN6y31i18d7hQ8i +DZo3uZhlbu7ROHSQ0YvOF6YUlDXtm9VsUV+i+Hyv7qgZ3tunAUlOwi0tIPgWdbq4vVm2iNQ4SP rUfqGKIIC8uAMNpyTWFD+K6jHf63BUls7/5oQ3CG0ah40jL70cp7jHh2oJmdyziYpgulQhBUa2Y JJTUSbVmxLptLMD1yEp5sx0kYz+fCzHAts7/OqmwZnRYfgpCTNXbXQTXZf2F0drJkElScuJUyZ9 iO4K0cthpsIBzZ49Yob6jOF7vaVfH6L2ZzoRltVmg6XWgZlnVV5RZRZcCYT804UR3D7V0j6cGKZ OTFaNxG92TzziH7WStvDTjSHWJosGtnZKbA4LqFc= 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 | 605 +++++++++++++++++++++---------- tools/testing/radix-tree/maple.c | 2 +- 3 files changed, 437 insertions(+), 184 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 a9d4f3ef8e888..9bc921d99340a 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -1320,6 +1320,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 +2522,109 @@ 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, 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 @@ -2678,6 +2796,7 @@ static inline void cp_leaf_init(struct maple_copy *cp, { unsigned char end =3D 0; =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++; @@ -2719,6 +2838,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) { @@ -2806,38 +3019,147 @@ 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; + + cp->slot[d] =3D mt_mk_node(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, @@ -2993,173 +3315,90 @@ static void mas_spanning_rebalance(struct ma_state= *mas, mas_spanning_rebalance_loop(mas, mast, count); } =20 +/* + * 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) +{ + if (sib->end) { + if (sib->max < l_wr_mas->mas->min) + *l_wr_mas->mas =3D *sib; + else + *r_wr_mas->mas =3D *sib; + } + + 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); + cp->slot[0] =3D mt_mk_node(cp->dst[0].node, mt); + cp->height++; + } + WARN_ON_ONCE(cp->dst[0].node !=3D mte_to_node(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; + } + + /* 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; + } + + cp->height++; + wr_mas_ascend(l_wr_mas); + wr_mas_ascend(r_wr_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) { =20 - 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); =20 - - 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); - } - } - - 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; - - mast.bn =3D &b_node; - /* Combine l_mas and r_mas and split them up evenly again. */ - - /* - * 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; - } - - /* 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); + 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 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 05:35:35 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 E3B003218D8 for ; Thu, 15 Jan 2026 19:38:02 +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=1768505885; cv=fail; b=PAQOxmZ72F40W7v2GkZ7bkHV8vgfpFmvK2gBdOw7h6i47a8dPJ/PcDs/L/wX5LwFget/2oi0dsl6lJHLJPibD2V0u/er6jcBgNf2lT9LPFtIzFk7eHoweVBXXZlyYr9u/iLHx90NR4w6qmHsUtzaKwLqxy5Sfksx99XMNdt+9dg= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768505885; c=relaxed/simple; bh=XaMl57S44Xi9YgOMAXDtYQe+eEOFTCOezQOYWHLCPRI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=eWErMFazS65102ohvTnYvuySzVpOvNDRZqTdZ/bHgLikOYqiHuqCbeD5tAHOdOpxlwyDrY+R42UaHLaV0u6/3STcw3EEs6pYswtdoCfzzn98tQtZaeCX09FIiFDz5yPgKVL9dSRFP6sextZdZYKHg4DHptkW9VMicU3NyUjcl7w= 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=nPDbe1FO; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=ACqGB14B; 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="nPDbe1FO"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="ACqGB14B" 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 60FHKid12811661; Thu, 15 Jan 2026 19:37:39 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=4m4O1qll0dL5RC1W7Wv9TsiogoBB/C/DMxH/wX4Cd4I=; b= nPDbe1FOn8ZqFC7/wWH+dhRFUF/oR/dLLNUFxhKFvCLKVUnt5oSN9XsE59TRaO5l QWkDgHT+WDmoGYNIO68AWdkz83+Kk+/doUaCbk+sltzu1sStdnGehpUG4Cd+O2mW pY8tjiATqQMBdWwBmFk//KTKSVi/mhYR6gDZID0olCCl6WJ0Ni3kq2UcbLTSgnR7 SmnkGlx8o+W4tGpBj5VSj/SX/nDJe+FndRGY3XmTfLLFsmQfXTkVTmwLZttlDChS ++WFoYgALa5J09B5nnYxLUbtrlzQCCE8LhB3cdlqcTZz2LTvFmcDffjpRSbVDHf3 0Crg1UpPFaGEym/mO9HJlg== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4bkh7nrnr8-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 15 Jan 2026 19:37:39 +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 60FI1DXX004234; Thu, 15 Jan 2026 19:37:38 GMT Received: from cy3pr05cu001.outbound.protection.outlook.com (mail-westcentralusazon11013057.outbound.protection.outlook.com [40.93.201.57]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 4bkd7nguhf-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 15 Jan 2026 19:37:38 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=nIW/s+WtxVTfFUW5Q2oeJeVDbt1nfwQBEIkqLvKJ9UTtH3OHC7WfR6I1A2/CQYDnPvNZLVGQcw7mUuQdr91czNh6ayI2pGSfZLFVX5xppBOLxFDCnkhRZqq373pQcqhFxmwTWkb7lPNuBc7jWefLPD1lH+nEDR6ZgDe1Q2shiw0f95V2xwEpiqlVu6ApqqV5+OUQPY/9qB+jxDruT4Auc1eBY7q9DNeowlfEsAs1QU6neTEE4HejJ8ZDF2EjSWyXZPT6B+Zm4qxi9nIfdjI2ZkvnAlePdeSqQIJGvija1PlR7hL6e5fUcy1vb3P6DjvNoWa5evEpsBcGj5USPEN77Q== 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=4m4O1qll0dL5RC1W7Wv9TsiogoBB/C/DMxH/wX4Cd4I=; b=ADD1lB+qxPb05L0Al1r/h4IsavTFyvF2yhD4QjnRonaALAIX8Ys/IXQthWaXJfQOHqraWht6EA9rDSmXrieTh1F3sPEKkLiuTa3E/XnLq+yri91dDslcT7A0AG0Dvb13Bwl0gu9lXcgj/amGZ6R3ZrcRNSnAYC3HiywAUH7f0f0pFC9Ma61W9Kl88nTS8unigi+oMO+ejx95rGGSbH5uyEB67rISmriD5YjohBtCaptq2W7CitCnMiGdaLGrCgJowfvVdR3oOSzTqgmnppAaeyo970XbPhZeb2duLWyg3iaLdV7VIWk+n0jYXTNKb9WdPn3RdYwD+onzUfkYDsOGaw== 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=4m4O1qll0dL5RC1W7Wv9TsiogoBB/C/DMxH/wX4Cd4I=; b=ACqGB14B5nhvH9/3DWeY53X3QH6sEpqzAke7/hk4jT3xVMXtbIee7k5zoB3Zv+z0hV5hqVP0BueZY87Hzb0+p73hoJamsGddB4ENfzGygYunMW12iRl4zzqVOHXKX2Te2ve3o4IkahV1z1O7J7T+sDRrScQRAd0OT267a0D0nbs= Received: from PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) by SA2PR10MB4507.namprd10.prod.outlook.com (2603:10b6:806:119::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9520.5; Thu, 15 Jan 2026 19:37:36 +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.9520.003; Thu, 15 Jan 2026 19:37: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 , "Liam R. Howlett" Subject: [PATCH 17/28] maple_tree: inline mas_wr_spanning_rebalance() Date: Thu, 15 Jan 2026 14:36:36 -0500 Message-ID: <20260115193647.1695937-18-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260115193647.1695937-1-Liam.Howlett@oracle.com> References: <20260115193647.1695937-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0341.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:fc::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_|SA2PR10MB4507:EE_ X-MS-Office365-Filtering-Correlation-Id: b058ace9-0638-4695-9412-08de546d8912 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014|7416014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?pjPIrWAR8GBrUXCTDrLvHEk7tGsHgUX0auIaUnOzk0B/at/Ln4JVIG4Pt9Kw?= =?us-ascii?Q?2RKHzT5z6CKzzK/5stIln6uA/Brx/OsOUB9gIl5TyK4HleGqW9+Iyov5njo9?= =?us-ascii?Q?ofVBYHFMhcWgG+6moykzIdgyr1ze2e8H8Y+fgMo4WJOdsUCAcCQAlD727t1D?= =?us-ascii?Q?MxWWLe8iJV+oXGExtB7ttMViBa6/qFCyBM2y3QEiNima48x57DTxWdzzZp7j?= =?us-ascii?Q?KWInlDaqzPhUd1L86Fi3OYGOcmafSDlQGw368eczfzwVtERUtPJLImJpPNrI?= =?us-ascii?Q?uIqoEhVCBTa6Bkv3EduNboPuTXGAEI3aiMZBPUZ0ZTpmCQBEQ1gI7hvXs31i?= =?us-ascii?Q?IRnKWg9ui2y8wQ5SD/v02berUluVLoBfTJHsRjCXF3nXvjb25F1WGMWeUQG4?= =?us-ascii?Q?bekMQkOwXQgCZPoNeiQRc/x+CFwnOEMImlI5yVQTfvQXOx3/7864vnC7Rd/N?= =?us-ascii?Q?dIAtZ1j610kFIH9FWpvjxru0lGUrBwDdX548ToLJ1oN0MokWZWOB4FTn4CV+?= =?us-ascii?Q?lea33a6k3mAJdPmy7jFIYcAL4UVpbkJ8y5djWmo/xkV7skwe4fswPvi5+TtI?= =?us-ascii?Q?XIyvkXQ8LD37sAgMFIkHsYs24PLIwgwdzY/w56rFtNivRW60fq6Ff8CIs7d4?= =?us-ascii?Q?EMUx+R8hguiruwLDxIMkx8zMdUp6DXcVRD0pedU/0BWBcaYRZYIaNer8e/o2?= =?us-ascii?Q?cWk/mO4bh7VDuwbeIq0wc6uNUe7j8762lWgEoRLLZRltoYpzyFoSfSTvY0R1?= =?us-ascii?Q?8SMqZkRQq/2U5URRY9gGPm3jbD4alPjb+wy3xbbrL0HrrxhJefgTerJZ9vWn?= =?us-ascii?Q?fcNIdR00V2261pF0U60lTbQ+gXFFskZxjOWt5Cr3xI8szsWLZywgnIkRnWCu?= =?us-ascii?Q?lVTucowXruoarfChHYx90J0ETnIc5t9stuXCwhpfApHCdCu64T4tGTYwVox2?= =?us-ascii?Q?4RTzOReA0L4Q5Z45UZR6PoAkvyVPwYAMeUh0BbUgXRgJ5C5IIugKVV6cFzlN?= =?us-ascii?Q?y6w1Oe6AtMM+MH+bwK4Wi+4dUQLk9C7JioIGallC0XZ1pcNDYf6TFEVbNcsO?= =?us-ascii?Q?S4yOpCrX2+obwO7YD2VFUtaGIsgyB7aTGtYPHtj+0vS30Do8j8O5cM/aLaPN?= =?us-ascii?Q?rzhu45zN6t0ADkhVFUU3rbb5z9h++ZOFG5OGB+4Y+Cf1I/6DV8V7BnkiHjwx?= =?us-ascii?Q?unnMeqlS9IZbCop7t1z2Y77J3lDqvUkBmkyoUQxNio79ivEsoO7ZpdwicCGy?= =?us-ascii?Q?EEdSR5soztGuv6VpT37znq/sCYWiPAW5CLTpFqYW3CVaK85Tq2KYixPvJkId?= =?us-ascii?Q?wMc5e1cBWDag7xgdEEZIrg1Xn5jtzBXi9xBjepB4TZr81Vege7OxAhQ2QI4B?= =?us-ascii?Q?zBR438b/PnZd1S+snttViCLnTt4/pM6/VFVqM1aqKExYKMcnsqSZTSWRJuHF?= =?us-ascii?Q?cpYjmWw8T2d5FeOF9MOiRwMQJB03POwiXA7/m32QJmB36EbB6lA04RuXLX1/?= =?us-ascii?Q?pTV7a7wfDjrR4LtudClCUFVLNW4bctT/aWg35xtwc9WAPWK1xrQcc6kbYFGD?= =?us-ascii?Q?Q3jewJQu5F8GjSQUbCg=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)(376014)(7416014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?EzX4LB3F9K8sAQHv6QPXt07TzeIz/BKBBBsBJwGnmT3s+XBPJtpCQIQ4YCAh?= =?us-ascii?Q?T8LCczWr0djd4UlvO1PhQ9vakNP2snw/3fMYoHZ/XY4qGC6y4mqTuiyAFf72?= =?us-ascii?Q?saW+azCvDvhLgrVb/6SEe6aqqJeORTeaMi1IsyWpQhk2FBZxVPrxXRayY1JB?= =?us-ascii?Q?Q5SFA5Y3aJl68coZwcwcSy5yakHovIq4dhL2XWIZvr8oL2/T6w8WmTMHq1l0?= =?us-ascii?Q?3B8jIUks3RMwhrbYXRA5FQjbHwx9TvCYr2P9uJooCrYAAbcaY//8/QsWW76U?= =?us-ascii?Q?uelrQIRGLSXZocLYIyIgavEFiDY+R04Wq/5Eh1r1V3svx7F9H9dHZ3bWcIVJ?= =?us-ascii?Q?gqNXePu1/SRIMKlgKS6SsoMLiMSDi9UoO+O5JYf2HDVr7PMcNRBhf0Y28pW3?= =?us-ascii?Q?GBzNs0Sl9no+i+AVYdWyRaPf0UXwSIdhvJVrMrMp72oy40GLmpqogX6qIwF4?= =?us-ascii?Q?IaAicQ5fRUYoSEeO6sZg6gWGNU0Be6aQRnJkCxW1EmJWkRGgU6c0H5PUYGzs?= =?us-ascii?Q?K3Fo76dce3klvdtCuZDUv46NP7bMIxsuN+Okq19Znv/Mp4ABjQ9s6KFW1CJX?= =?us-ascii?Q?WOMumXy++35wZwUROct9OiygvJWgteRlCdLNdpDqVK3z8l1CbHna1n/+/qQp?= =?us-ascii?Q?lp7qPi/q8cCWP+nTxl0pCuofcM18B9S2FfoVqLg7FyCk+Vj89be1lPn2iyvU?= =?us-ascii?Q?CL3ZzcU843B6nOdIe6AXxIT3mhz2F8ih+A9EBOIQqUxTLVfJs2P4tMs10UMD?= =?us-ascii?Q?YmSbSEQAen0lLevA8cLFkMXvVrZFrIVbeeIAViEWWuaqKqXfnBP+ZnZ0WZw2?= =?us-ascii?Q?cBF7rb90+aUH+4KlPcicuj9okwQr6Ovjo6diAiPLmnLHUfMMhRnq7V60F07H?= =?us-ascii?Q?CSrwNR9Qd1Q8Epp+0aEDUj6oZnrU91bCexXWRkUwnhfNGSB5pnQO5xT/D3Km?= =?us-ascii?Q?HtEjuFQscI2MdH7ffkULWwyIojDfNcVhy1C/RvsIInF+MebjrwPJojlp8wzP?= =?us-ascii?Q?HjBOcaymE5vb6Aq5kwDd1suYBtqcWo/2rgQ/X2L9z2uyP85PHkr9+6pC5YMf?= =?us-ascii?Q?lop2PRkGbzOZ+C/+Zrgc/fIXgkGa+5eoj38DOnSwbAICUIXXm7CyFERsEOlR?= =?us-ascii?Q?G34MJ/jRGpJaenn7ojHuMToFghNXyZ7i1jw9qiUWaLtoxUBzP4ZvF81OBPDn?= =?us-ascii?Q?uTRuhCQsSDp7xST30NQZ8XuornhS958Ljazev21Eh8185GX23YneD7Bo9/jx?= =?us-ascii?Q?U2MYZBSvpmxc9v9dtZzE9LoOuqygGhE92bysh1dudxzztU6jd2g7paYQwMRP?= =?us-ascii?Q?5WRiVXmHNyWtaPTP8osS6vv+6VHPZkOqmauq9Z3Q0tWNtc2u+U58jxx37k7b?= =?us-ascii?Q?Th3mLcFBzzCzF4rcj4pNrDfzsg+rRF38D8/Capkg1D29oyR7rkfQKgDq2Iaf?= =?us-ascii?Q?Kr1edCZuLicN6ZA7Krq7KoGUZNG3ZMtDYUj5UCG5ZIFZZiWhuaj6adHjW0ge?= =?us-ascii?Q?gTwAMHpxHvmJR1CyvTfH4vleptoLK89VvxZgF9Wzs3/OkcEtvLr70LleBChO?= =?us-ascii?Q?dgePgF037GGRtVAMzuniXzp21w2tp8D/Xs7xpEgh8OGxRDbF+ocuxdMNCp8E?= =?us-ascii?Q?zH+BP5lMfBqoFrBOGJOiw89s5ddBzaBH5xQCZCbtua8lh3BrTCsLn3H/qo5p?= =?us-ascii?Q?T8QFMNTTbhpNPHQG+kdX9e0gArL8JOLSmwuhd7d92yQvB8iyMuZ5vOtPmctb?= =?us-ascii?Q?LppwxsiQQw=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: wladQ1RMre8gWCgy/Fgw+XiXMiivR8PNfrbxZToWjGVBtCp0p9Pz4reqogg5jV8+BI5aqPWD/Wif5mwZcGNRJ+FCULJh4zFtrymcHmoktkAgRXf+HQ6YQj6GQfJimgp28BaQS3M8ZYzMYkJY0gZWdVrEkPoTtI88bGlCgM+zxFhDNEJr/F60WatszLnWA8jL+gAjkswzRef4PfRNYFaoM3o49myoCJPsrMPls+xbepRertRnH8x8B051SWS4GIhX6r9WRxLWUIqzn8OJWvaP8wTTsCSVuysd2+LXNbp3B3Dz32aB932oRo+Nx5mGi1DRBUbiFdRl86H7QYrnwXKTZJdmijwhpIYRjFN8+I7EdY3tXE6f40qA03uNfT2rJtRWWCm49mQ2l3JNFcH9z43pFKM7U49/DFsfHSy3nsakrq4ri44jt4MjQKWB4JSq51Q4sL4JGnhIlVyB2LG2fegq8DOnNLcQNZA42p9R+8QxA9DcIq8O3vw//lj46S2PeVL/roRiRlPMflLCTntA5IgQ8eiWqbxYGd0B4Xu3933mH9XR1dxmwqfQfmgDPEQQNvuwk0VFk6NuhCYL3DbB0G9/pAkgoONFbhgJdesjrB86oDY= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: b058ace9-0638-4695-9412-08de546d8912 X-MS-Exchange-CrossTenant-AuthSource: PH0PR10MB5777.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Jan 2026 19:37:36.2404 (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: PAVCKQhb2xCywOo5oj8Uy8C5XvdKDbP3ZBOKbfjSwlR6F/ECU6I9LmCsY/dLpjXO6PTxUYjwMTn4uPgF0/nQwA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA2PR10MB4507 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2026-01-15_06,2026-01-15_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 suspectscore=0 malwarescore=0 spamscore=0 adultscore=0 mlxscore=0 phishscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2512120000 definitions=main-2601150152 X-Proofpoint-GUID: _fZE_fcS48SN8vZvkEOLYWi-gJU_hu8W X-Authority-Analysis: v=2.4 cv=X7Bf6WTe c=1 sm=1 tr=0 ts=69694203 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=rS4Dkz7vSkpNL7l-vQcA:9 cc=ntf awl=host:12110 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTE1MDE1MyBTYWx0ZWRfX2dF55y6nN9jC MX3ast1q3gMwL/Q3ZouF4gK5mUBifCC7l3xkQZNNfbF912rRje3asbSLWWTcrYnSGLBgpiXEyt3 QCA0WYe0WySWKiCFDb7OtEsTBs7wmN156myP576lILeDgMlID9TVGkjGC7Yh16qdrHAKtfcb0Yx 1B6qDQDivXh73DK2gi2LI2ClKs72RAsPRnU6LtDgnJ/36c7jSZ3JOB+6c9nfgRhBW3fD8zdpdHc +aWeYdCne+CFZ8mcyjIJmFddMEOJtRGJZM6pkbbtvzMprlge4w3YXAjPuBnvJ92FZYrUnylhZ0b g3F0YQl0BUNkXVz8O5krEb6RC40gLTWY2GmCCRfxflIux7g0BsXmeSR2/Mezf01fxvC/h1mIICL nuzo4yMq+OA8VgXBM5eURJJTjbnx/1FdvZA03XLw7j2k68I/XGtS4H5PrpckhRrIxN6cnTyGmkj yXBgTyL4xbyp6iiLl6R3JuljvI8F6ICqjC+eWlBg= X-Proofpoint-ORIG-GUID: _fZE_fcS48SN8vZvkEOLYWi-gJU_hu8W 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 9bc921d99340a..18d1312523896 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -3377,28 +3377,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 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 @@ -4055,7 +4033,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); @@ -4112,7 +4093,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 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 05:35:35 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 D957031DDBF for ; Thu, 15 Jan 2026 19:38:11 +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=1768505894; cv=fail; b=ZCEN7GJ2iak7vwzTD+kja6WN7dYABeGpFSVgVH42inXwRFPjpJnGmZok41UKusU3i0VMtmJOltdSWoKYcDWnNSfAg1yQ7fpRdD/LPm2fFIolBF3ddojuCleCdsPAJ9dj56ncc817Kn1xzFUtY1evvoAq4+J24+XIrv5SXkomsH8= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768505894; c=relaxed/simple; bh=D6WCpTQgwiIwRI5Z6VboRnzpcqaDjXL6Z+HWPFm5obQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=uKkJ5hWsQlUj9XvnKBn7r+PRE27C18JI+Rimxr7XyXebToJbsWw/76qWQUD9pEJfzKe0S3paTSBA6NrKUnBsrplqOjXxbRHcb+lFCprVxcD1lf1C1zoqHGVRdaOfMg+aq/dLVlkJxjS6xc2JAuDsQ99QS5/+2O6lkSTSXoPE0i8= 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=Sx8HV+dv; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=F8VosyOI; 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="Sx8HV+dv"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="F8VosyOI" 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 60FEM3AS1296007; Thu, 15 Jan 2026 19:37:43 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=T7NbiVhXh0UkCgaaBGPyiUDV0ynoQF280FNk1MHGjOY=; b= Sx8HV+dvGejkFLldle+YwoAMT3zCr4+mmQv9MWIWAjqlB2+C9CDT79MPA2iIlDqE xm4H93WiQgPPDrr4u/cxrUXjsSo73gyWTUwnBwdAcwWm6C3EgO1A2pKmsIELmvYR aXkAKpVy2C1BXCcsvDixaMQF859JmynHJIcRufCTwd29Eci/vrisSIgSIOcyptYQ +lBLELkuL8R0xuKjA63rt4v5gmucBq57jzNpzbVK24Sktj1cRoisgXWlxSehuKDy 2hhhA1Bje2P3jWVbmbiQm6+Ww3w6MXK80oh3DL4oGz4ImsttK5RcwFhuy6RGzq9u gjSO2IbAkP6uQvrGqPCHeg== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4bp5tc3tts-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 15 Jan 2026 19:37: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 60FHv3P1008289; Thu, 15 Jan 2026 19:37:42 GMT Received: from co1pr03cu002.outbound.protection.outlook.com (mail-westus2azon11010068.outbound.protection.outlook.com [52.101.46.68]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 4bkd7bffdj-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 15 Jan 2026 19:37:41 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=lCesAHyptW65Ufnqyrci8KtrTVOMPpkgFFuSvpTbnYsV+vnYtjs44ntYtVcGy4GgRNdMROCrJWgkrM19tVmw3WisuSoy67vHhbkS6zzLqsu8pq0wWz3YXMCyRgCri86Sm1pSWdNuj70zJfV/JpYIoMn0Ev2+kdjYyg/JWSa815Jb6IfuFekS7EiDnv/j2fMzHtV4SLSfZn1d+sX5T2MWTU9vunu/oGvSE55tdrDGu3MuvEwArKgeJv5tmX9LE9/uIQGE2PpBgCXlrPxC+cMn6sc6Lax12L8imbV6RQ36+lgfwKliRSU+YWXF0QCCvcNuBSEnVKWCvXCdaKeURJTX5w== 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=T7NbiVhXh0UkCgaaBGPyiUDV0ynoQF280FNk1MHGjOY=; b=YAr6St9xK8lisw3+7xolmCqTl+bk6reTwanJ2THYr5J9rBB/jgPXe/6qNy8yC46cj+XoPeBGnXaaUFxZ6N2JTI2VkPO4ce1NxxWKADkxCc5QUGIAyZganvJwrDQPBdP9Phf5eiVuaMnVTURte7t+xG5jXqzldsRf2UDeNDGxF74j52V/cZn3KT8kTJSYruQ7OvLHnRq805o3Atc1jCQ6LRkxDUTrYBZoyrwFr5PBU57vjpTpTwqSViRKifnwlI1NUT9hWkVE7MzqDjnsecFrTkbyFJO2wMq7qBvPsUi9q9r5Uv4QKlYgWfZmT4XqXPv7ZvVBlhw8AnJ0btB+R1XTUg== 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=T7NbiVhXh0UkCgaaBGPyiUDV0ynoQF280FNk1MHGjOY=; b=F8VosyOI76XvkU/v9/7iqMQmp/64YuVreCVmOZHZe6124TUW9T7OZc2I6vxUzFIAuv9Kzkoeu/dFIDWm3fIvFD8c78TeI6tuimFyrfvX4uJF1yIRdgh1ubbHd/d+XOQGqrVy6buOq76vM9cyHn4AWTa8nJ/L95Ao4PtM9m+qzbM= Received: from PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) by SA2PR10MB4507.namprd10.prod.outlook.com (2603:10b6:806:119::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9520.5; Thu, 15 Jan 2026 19:37:38 +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.9520.003; Thu, 15 Jan 2026 19:37:38 +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 , "Liam R. Howlett" Subject: [PATCH 18/28] maple_tree: Remove unnecessary return statements Date: Thu, 15 Jan 2026 14:36:37 -0500 Message-ID: <20260115193647.1695937-19-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260115193647.1695937-1-Liam.Howlett@oracle.com> References: <20260115193647.1695937-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT3PR01CA0014.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:86::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_|SA2PR10MB4507:EE_ X-MS-Office365-Filtering-Correlation-Id: 870340c2-4f3e-4007-90e5-08de546d8a81 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014|7416014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?g03iyupJ0z1t6Oek3KqxC8cuENHEvtW1EDzpcp7QsuFWyffrCrsKDyi5F1ON?= =?us-ascii?Q?s3FqdOgAMFroo09YBjG4eQq5w0K5zeQ/10QQND3+kFSZZ2UWX5K6BwBgxWUH?= =?us-ascii?Q?GURGgkl0fGUF+tAc9yX8L6rGoAEwLahLFqZHus9P9TrJm6bYapNCHuhFFWe+?= =?us-ascii?Q?GrOpy6sORLc3rI4BGJurbOqfjxjVUXjZQHp77fl3iROa35NuorO1AFQBO1+E?= =?us-ascii?Q?u9a24LWVJ3z4Fkc9vcMQjDtexcszhuYegj++oSqvrd1Wb5bK5MMQs+y6o2zQ?= =?us-ascii?Q?6FuikiBW8mwr8asRwO9nB1lCj41DGfrBwZ5XtjUMLXb4AApp9tSFcPhsoHek?= =?us-ascii?Q?NoUl4kVvfsuAp6WRzok8sichmzyuhGAorp6F37tgM4M6lH911I4gvYNWmTGi?= =?us-ascii?Q?8V0Mu7G3gNuRaCn4zGgxLotwT1IH/yE4UIEIYlAyVX4eR+d6v5HuXnlcJl7r?= =?us-ascii?Q?WePqG5krv1zSeALtVTbb9y8ux1swquvTa80Cz8Xk9veEh3oEtmu/LxaLSpsx?= =?us-ascii?Q?knnvzL+npUkmZ8l8X+Hy0JP65SIvKwiWBnPCy6MGXC1c7obrO6zYypCv6LKp?= =?us-ascii?Q?7px/mUSmyOnhPBoHU0tu1OmatuwVSzEOBXYHFuTBlhGG9/J1sKW2YItpgsH8?= =?us-ascii?Q?CdLHHESkN4TSY7kPm9IWxI4btgrOvs0oBvUXZY+gr0V5gdOFInqHaB9AgJaX?= =?us-ascii?Q?q3qoZQMQD1DDdc1F6yDPTjJ6+nn9nG4FHjSSjiE5sS+tdVkvrnn349BLPA2W?= =?us-ascii?Q?NjiwTdEAyKBAVboLv+PKAbDrqxmZCPrWegW+MNnHzFByCEfKPlijwhd5SuAf?= =?us-ascii?Q?XGgaAVHieFUDTQoGxczQclctL5Gw12zTJU/jh5DhAxsPoa8kiHFq1dgEPe02?= =?us-ascii?Q?x/KcJcH5x1kwURNGArXNZIfmJm+5cJRFR0UvDueDyGfchfdasmT5gz7Y6D64?= =?us-ascii?Q?JxIG+IdqAx7mDRD24dU1u/iC2b19Eeg+G7mUAFDob0yrMX+05enxOEGKLEuz?= =?us-ascii?Q?bn16jqWGiewaA5Ucqo850t+OGsd47U1+wBYhwWCHIcu9cAEsgxXUrcJKCats?= =?us-ascii?Q?polClS4TPMX14glhVn+uFx2EhcF6DekKwWuw+fKsUUCTDa4RqOxQZE5fsF42?= =?us-ascii?Q?A8nSTZOleaLcXq70iAQntPEqqrR+nChRXnyqxjtCv0i6wUhUApl8Zb1DmwT3?= =?us-ascii?Q?3wXpmi6BBE2q7WZ9QVVoMnODkd8NbDwn4TcAfDLkhOIGg8ElJ2TB5nCN0r/v?= =?us-ascii?Q?W72j0ISzoX6RwKxOZrIzEwbX5/NMVS89ONLSLJS0Hvbi96J5QJVhbF3uE8rf?= =?us-ascii?Q?24/sRbe6vNe9uBM6dRz1MMut4cg/ljVHw1M+CrHpJBS5Bkyv5fc9myyNqoCZ?= =?us-ascii?Q?tT1MdIpfxuqe9Hm2FA4oPpJu1TjwV9Xq73Klkak1gk+wefd0oqOXSmeeKBQY?= =?us-ascii?Q?YL67Zbk84zdO1oEV0mmdSwYub5UTiv8Fzy3PrsY+COQpD0krY+/CP1RzxAeS?= =?us-ascii?Q?IM4Blmi/1GA5hr3X8OhE+3eCH3qlRPtxa1XYwO0JcyB8vNHTdAEIrL9ID494?= =?us-ascii?Q?GXv6d8ovixa8bm5Z3Ck=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)(376014)(7416014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?Y5S4RKeuXo6f+NHn6lAE50msIb/SrKj6zBBKIrjMGj80E6VaZk06a4gop9bl?= =?us-ascii?Q?LAI7FsFUeG0R+mmw7heilEyWBY10B0x7R/l7EAA0bP3EjpkD/BIAYlPGf51g?= =?us-ascii?Q?dlq9WuJVmQgq2jGo5kBbJJlePimDh6KIDYjNaPwBPpIzXU4MeUgY2NYdWGiu?= =?us-ascii?Q?+AF4pHKtpzn2bxdtKehpTAQkKvA5a6+WpSx7b2846ex59CWPof6SkHxMQiEm?= =?us-ascii?Q?punhExOQdzS1kqYfbgbgMcX4nwG1mpRUZ1kfDzyPU6enLlUw1M/PJWHt6h7r?= =?us-ascii?Q?v3CPXlj3vf2lrWDGr0SWx2cJGM2qAjDkZoeS+FH3gqpo+A8gxNqm3N5mf/YQ?= =?us-ascii?Q?kAiIyuuDCwnKgH+EqE+BAqrwYus614FHndvEKMAXSsjNe+SjZXp5l+dAQ+w/?= =?us-ascii?Q?YFj2CZpry4CKyp3fcWHl090QQ9tNQpSLWpKwosYBV62d7Yr5EJOXoE6X2KMo?= =?us-ascii?Q?WnIgnZogZEIYKp4rYFD1dHwaKbbV66Pj0R8TU9Rj+89bIyIdWQJ2sIhs+qb1?= =?us-ascii?Q?r0N6pn2vBQHdK5tINUriVUSH8wtT6w189Rp84LV6NnaCzt1LCYWJGw+LkETj?= =?us-ascii?Q?rHTduQaMWSK3SSj0ZV2y2ZBQhPM7CDohrcTG33ifIE0RPNg0RZaRYLga/bgH?= =?us-ascii?Q?ADyij3FWqYPN5/TUovKGqyij3rjgSphkX8qqLU1l+1duX1SEBcrnDlAbr/Dj?= =?us-ascii?Q?d5O18CZmCHfOjdq8wYikRU/bjyokRbOWkZ26BQXMPLFVn7EsbAq12OWSRfKa?= =?us-ascii?Q?KjZ9iT80u4pXuCrckdvyrU1pVy7ZkfjkHGZDCT6mk7YXKNYJlkqO2Ynf6laJ?= =?us-ascii?Q?8SP6ZSktehoaRqZ2KQrmP2o5d38zS3+bGVRnZ+O7neU/akOzmCrA/lYbJwfG?= =?us-ascii?Q?VDObZXrgut5DrvT6Laf7BW4QiQYEdMA5BZGX/Mlo7pfR/e3waOrdR9AtQ6Qp?= =?us-ascii?Q?cI37kX2I2I6NyOTg75zp8Z80qIIhT64K2gnbfnTN+9pxUfIUYrt+9zcBvY2c?= =?us-ascii?Q?FrUfkp6SPrYTBBqsYKqwfREMR/PYnJEbwBobagmF9UDAYzD/h3pAvE8eLdX4?= =?us-ascii?Q?2Zt5IkieuZApd8ow7qs/sfSZ4tRlOEvWQT0zly8Os6guKmyaL2PLL9oEmPSb?= =?us-ascii?Q?eWwEtOu231Dhz8paVDWSDUJj8DXi/82223mtJkh2JrYzUHcfhH9QdUyLtv6N?= =?us-ascii?Q?v7gPhIPK2V/5i3Ofqk5Xnk5ubSGGVm5yoCZO2joX/Z1/NuFWmVYAFi3jMkrH?= =?us-ascii?Q?+bmZgepeq97Bd3iMd26lGMUNz1wYxOaF17Zq82+Xs4p2iWyKc1hqkQpBCMn/?= =?us-ascii?Q?qXoaX0amjB2Ls3fxiK0pThYzHwl/o/NIPU5E4lv6JmgJvHkqCA23GK0aWwC4?= =?us-ascii?Q?el9yci0iSgpipDlHeyLsi4qURoJFm7Vu+HM5dNuN2F/fWljAo55NtUiyLWx8?= =?us-ascii?Q?Q/rroOtJ+BIsy1ABGRwb/5f3zns/pzxOuRIsBsBWtO1UW++1e9OG5gcr7Kd8?= =?us-ascii?Q?5S177rkzsNqrsfYyyIGxBkNiTQpba18YCd9+nMssZYzhhmS0+cJ/vz5MPpfw?= =?us-ascii?Q?ta2UsKAX9FlSeLMwcVrlzgmxNgpyDrLRQ/NAoF4lI3ZeZGmkl89PGC/xiQtC?= =?us-ascii?Q?nhOH+8kQIk2r+J6UnwVdRbAtjSnOmgVl70BuD5sSSu987BZ3oqZ7P5BiggN1?= =?us-ascii?Q?lOkBVprMgswaZaVVoldv8ExkgZbcMZsmjF8RXBQWj0KL7JwgJPuhVSD1V9wp?= =?us-ascii?Q?Ot/JNU0S7w=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 8yBKx6Qd3BGowwAxolTiViz6Wvlrynpn7hVEkzOb54PkaEzR149uVYtrwqStyzaCIzA3XWtpuR0Q/vOoDa0L26bjj2oGn0FygipujBagmbxbdwVa2t/DmQ4U9/xcCwzqgofWiWren/UyR/l4GO3pRbIFpt2qE6KVFs+xOcIdlV2mi6k7cG0rRxw93/UMRswC/eVKS2pV84AKYMSOZQyD10/gUf7YMSXPT3FTFkx5d49o4xa8OqJanl6NDwFL+hdA44O3KnSmdB7MA5O0JH+NyYIYsMN943axX9T42IVHJxrFh5VjEG91fhAunykdnGPU8HVHbXJY/SorCUYORt6ZqE7GbxjNczA9t9/M+JnShPluZp7Ksoqy7Jqk7BliBJxdaJKDsbFsbOakCgOrxiDDiLK06Tcx/KcAcLBWhAD6GJBk3magZ1DTIAKlFjcDyEnSCmd4ZmPOq6DhkYgM1js+D7TJ6MncSmb56AzV3XZ04mAIbiqNfReLvMycWwU7TgF8Hc2IhuMrLsdEhtrz54AkZheUElzObl4A5fMYcHmis0RRDArb41S7TPhpKRgFGjPX3e0Fie/3dXphKqI3ic3CzwNweyxB6DExyA9czW4SNy8= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 870340c2-4f3e-4007-90e5-08de546d8a81 X-MS-Exchange-CrossTenant-AuthSource: PH0PR10MB5777.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Jan 2026 19:37:38.6281 (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: kr5r6pwNzYHDb3mp4MWHlPwL/0QFpWODheXYZ39rQ66hy2gppClEFJifluBgflZ2LmMa4xOJEK21XYDm2qKRgA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA2PR10MB4507 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2026-01-15_06,2026-01-15_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 suspectscore=0 mlxscore=0 adultscore=0 phishscore=0 malwarescore=0 bulkscore=0 spamscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2512120000 definitions=main-2601150152 X-Authority-Analysis: v=2.4 cv=XP09iAhE c=1 sm=1 tr=0 ts=69694206 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=k0M0yfqvNG3lIp37doYA:9 X-Proofpoint-GUID: NkmxLmj6HdHU4AmNOmXCQJTqmmmcyqxK X-Proofpoint-ORIG-GUID: NkmxLmj6HdHU4AmNOmXCQJTqmmmcyqxK X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTE1MDE1MyBTYWx0ZWRfX4M58+8v798ug Bjc8iDiasaZIH+uWfR78Xna1GB2rHX/cqvlta4bHaKEtYJCX6RGio+m1A70FGfQe35hRmg++G2P Tyy4rxb3k42OUStUmrSytNEQq/A2YINMEgZgYhaML+vBFZbfWdlarR1FgeLlBfJ8PJyGacvpvYm jDCftlGC004eyXzMrTwiTUA0qLblmjzNLyx8V+EjlR5sl5dxtIm2TCp1nAnH+RiA9AJGqjBJCfT qEN2DRAX7+Ruqr8DNmpRRoF9Ooz0QOPWny9Nk2hE+W8OAGr6QxS58AIp9uiMYnnRT3mEPSsD0mX 3FloOJvbgfpADvg7yyF9UK5mQ8ai4DTBElWrluhbLL8KSAXl/JulnH0ctIYyoPppJ/QsHdkGOjk 4IHBaiOdZpM+wOX1NSVESWsPGuu9QFCmqXfO9lgRZjqAPrJy6Gcie/s2XH8AjPp47hUJ/4CkGvB 5x5TT4h9B5El26UbbUg== 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 18d1312523896..70225f7856258 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -3271,7 +3271,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 /* @@ -3688,7 +3687,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 /* @@ -3749,7 +3747,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 /* @@ -4021,8 +4018,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 @@ -4185,7 +4180,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 /* @@ -4233,8 +4227,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) @@ -4348,7 +4340,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 /* @@ -4407,8 +4398,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 05:35:35 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 55BBB326935 for ; Thu, 15 Jan 2026 19:38:07 +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=1768505890; cv=fail; b=iuB2be+H5XxoebSnIV4JfaAnpWZI+/4VTAau4ny5m/oX2CzSoP8RH0TXXnl1QPr9t4NJd7YmlKRAjjmmeJan2vx3eh/2DK9FLz7CkmFrrCHEVzVsSTjZCx4ovW7Fp+Vm6M0ojJg2hCVeXiW+CXu7iYbOKyva5GeikMugV9xlptE= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768505890; c=relaxed/simple; bh=j4y1eQLl/Vr3Jf7wTlddGmUXUOQd5DStO0j/EU457lw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=kUQI2YSQSiRAJ0bQYzEw2pifgIcyxYHTPIK5jX+7njVhNB8mreDj3vJx1DWoJQZHSRY6loOb3j1dqxzTaQv05x0Pzs/qKx9KumOj9PfAnnwgSXrdKOFhiHTGuzeyYeWINsBK5or4FKeucHfthNSt8W7jDI3DMVcLJc/47J6piT0= 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=BaYAPUbw; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=jv+eNhrX; 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="BaYAPUbw"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="jv+eNhrX" 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 60FFSXns2753320; Thu, 15 Jan 2026 19:37: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=ZhQ9Ct52F9pSbUXPfem0XOlenkE/PAU+PEkIeRE93Uo=; b= BaYAPUbw/MXPll8V463pqxl8UmIwkc6ASc3PsxWKQGMQ36qSbkA0m+nmcXXHEHU4 WUtrt7wNUJJFYR4/LdEEvF3yZTxd0mYFsEaMtUFCN4SmkCkMZeRQ1h3M4MYBfnzJ 2yzYbDrTJQjAsIDPR4nhPWBy6hRRW7hL/tw1BGlzuP/AZ31bjMRR6Q9NVBMcKldj 5A9Rg6ogWPeicCLS6MLWzWQ37dMA2yVoCmPfFItOjra1gsDlQYuqvWFmGC9KdMPg PP0EmFzIYnwEQpFU5dqLhosnHpJTPayt1RmahCJR/qDDxmLp5b2t/uXOJJ2SJVLX M+r+KorXi/fQka05JsYXGw== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4bkpwgrgem-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 15 Jan 2026 19:37:45 +0000 (GMT) Received: from pps.filterd (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 60FI5mwe029103; Thu, 15 Jan 2026 19:37:44 GMT Received: from co1pr03cu002.outbound.protection.outlook.com (mail-westus2azon11010068.outbound.protection.outlook.com [52.101.46.68]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 4bkd7ngb91-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 15 Jan 2026 19:37:44 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=wObR0Q7lMc7KP7VlocEY3yzucl3slF+3IAkoj4QhhjiWYi5euHz843hi0oTjMpNzbX4EL6DH0o3Ml0l4L30VEZJVgGQVVtOhdPv4IYmptN2md86NWyU1WHV25BzfeJg4VE7myyAMkKLltv4i4A+MJDWn/2rRWhE5JQ9luYhSxD4vdqIkhwaG6xSUQ1i7RN9UJ61B83qOBlEiH0TFzWqzLAimOPreAnT/P1MsJlGcBmD3gP/iyY8hLXTjPnu28UjRauHpBIlN1vnlXw1MCJDU3jrUj0rm9VQYa9fwc71TxrQUyx3EcG/79Ugz7NjTYH5bYWwwY26WKdtd+3FYFvVdJA== 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=ZhQ9Ct52F9pSbUXPfem0XOlenkE/PAU+PEkIeRE93Uo=; b=JwU76RdySSzmw7vo1Zaj7Gg51O/uvLKDZ+v3LaImDYgccMyIfCPlO6SGEJfIzcDrRPgq4hAS3wLL6ZDpGbhx/5M31LVHdyAqO1RcK0S057naIc8+B+iYdeHScfMEApmMZA2A8jwBnF5iS1xetUOCYbLkXCVYs9MncehCt0AqltE8KC8BHS/t60mvAxz7VDLp81q9Wzr9k8o+hjf1Khvpjq6qt/aY1Cb0izh0HlgMvVgauWmEytgRMzNgHqfod3iU8WWmiGSMn+zX/J4GFdY/4RtN5bg9AGsDoUwOXGfyVjOxMny0r8gs8la94n2lKplvb1X4GAfWwc0s6hWINb2dzg== 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=ZhQ9Ct52F9pSbUXPfem0XOlenkE/PAU+PEkIeRE93Uo=; b=jv+eNhrXFr3doPceko/9Z/QuzFhWn0qw8T07xdy2Nbh9P1mC2S05pdaE2udlZDiree8pDknzYqXnUIw8L3/TB3jOFxGaBUCF55wltaevECG6TTPKoWGGWPabbeOuG/EeL8bo5TuIgpJckl5LrDaurlsasB2XBVkqFhX1AqfHmw0= Received: from PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) by SA2PR10MB4507.namprd10.prod.outlook.com (2603:10b6:806:119::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9520.5; Thu, 15 Jan 2026 19:37:40 +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.9520.003; Thu, 15 Jan 2026 19:37:40 +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 , "Liam R. Howlett" Subject: [PATCH 19/28] maple_tree: Separate wr_split_store and wr_rebalance store type code path Date: Thu, 15 Jan 2026 14:36:38 -0500 Message-ID: <20260115193647.1695937-20-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260115193647.1695937-1-Liam.Howlett@oracle.com> References: <20260115193647.1695937-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT3PR01CA0147.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:83::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_|SA2PR10MB4507:EE_ X-MS-Office365-Filtering-Correlation-Id: 94880794-19a4-4f16-c8e8-08de546d8bd7 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014|7416014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?xeYp+LWvG1OQWBH/GHiNZWnT4ziYMd+ijc0Txcq0WDqUAoUOwKumsf3zJSuq?= =?us-ascii?Q?s8WVBnewhlLtcSqL8IDktDS/rdmErHfyPQqY/6Nj9kUz3Aakz+rqbYGmxInd?= =?us-ascii?Q?1lmxjxmgy/4n7PC2zTyKjka6g5p9RnM5ZIx3XlbSukckjAWmHU5sF1UQbzoV?= =?us-ascii?Q?xWdjMWTss/3rxMKGoM3yzB2dHBFu3bayUhuKayG9qwESGwIN5SCFdCoxEB/L?= =?us-ascii?Q?wMGzdYB9qJAPL32/dNDFmSyAUEkR273Br1pxKAB3fBUlkoN2GY7aGsmggEXn?= =?us-ascii?Q?UVBNpGXjjNhOtMFTQV0WqmT79N2d1JeHybjjvNs7kt6L3Bu+Vl+2ykuI3Aby?= =?us-ascii?Q?57AHu95I9RWJz7PTnBGDTuCkwyElwUoZQG6zrd7HgkOmDbx5WtTtQNNNvpQC?= =?us-ascii?Q?Mhn89yZNmeO6MA2HgYqesDY4KmobOOSu5QFbgr0Js5eb8JFyIbAImnoE6mOx?= =?us-ascii?Q?bFD/0VPF2jzFQ0h+QK5vH4vhZ13u1BTaXS7DNn19Fz4OtWu7nTqCXEJQ3gPp?= =?us-ascii?Q?Ia2KRXsxspsi/5/tTDfa689Zq2MyvPe6slwYnwBQFNPP2Bud8trUKPsX48Hp?= =?us-ascii?Q?hTT8IF/s5dm594iwes8tMNtlPQxV7zgjpljyXoBE2JXRe3O5bh7PIMpKzh7X?= =?us-ascii?Q?1f68t781NLWtZhR/tFPkXyz+rl5iEI6lWRuQD8E7KXIp9r1IZCwn2MXj4xgr?= =?us-ascii?Q?hlKPR1sYF+J3JDcJ+kGUoIWMCEExYVTS2x8O/SYQFsurgGUPA2VGast4LfW9?= =?us-ascii?Q?tQiPoErJJrTgODyNf/aCtWIr0H17I2QkaBicE8ao7fdXhmlqBolgHFEulzC9?= =?us-ascii?Q?11veS840W7xJ2IPOF98685Luh0xsdeQC6JCeEOqyAo5S5bLLhY/b6Q7TZ2hW?= =?us-ascii?Q?vH2ICzPEuXY0IkPd5J0V2EW9nhhdUBjm9MLtv6mUDJN+/AwtwyogC1+PI0WZ?= =?us-ascii?Q?OHSjPfaSwoxCER56XteRKvFML6nwwxUv4YtuGvMyOycoGXw4juVN8Wwt3w1k?= =?us-ascii?Q?ixWRRCb7pTMadUOZ69yH8uOT5Oh5Tqph5JFcjDqx83U32KBgwQHFf1tFEqEg?= =?us-ascii?Q?EJf/Irsh6l8SZkJeSiJO/eHrhmclx0fy6+o3N3qraJKE9/qvmBHVapHbZI34?= =?us-ascii?Q?ja7/0VVTHGUjtzQSo4WuLjGHJLPfEfBmd7i9+BIw1haTPabqEucCvgiN8LO2?= =?us-ascii?Q?PEDyqGHfM0M4F6hOfAG6IFQkcW2tWuNnHuhUxokQZWKu2/tejGngnyeQ0YxX?= =?us-ascii?Q?fZU7rPVUQSbuhf8LyMmYzhFZWVxU+sp7g0hVsLY2z5wiKz5Cd6VxwmHSUWkD?= =?us-ascii?Q?bxQ11lyvKfewTnCUQ/Q0ivMaKxWHjpBXib5qydTwbodNQOJDTujVXVGZnekU?= =?us-ascii?Q?JfYrgUqJ8ggRgoeyCOpSgwND6pglkjmc0roPcQVKWlguVKBX3ILgf6lp1Mej?= =?us-ascii?Q?o3AJ7B689XpfdxvWIos5Bm0dJTfPjRYYpNZqoN66wrVre00jxwhMC3CLHHnz?= =?us-ascii?Q?lhD+sYLdZfehko0A3qCvQPec1NTiRN/5LZRS/9m6J8t0hUrQbA01OM8fZ6CS?= =?us-ascii?Q?8Lzi7QFKbgfTAZBSHaQ=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)(376014)(7416014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?MuXnPB4fKo1NmlbcquYQ/L5ykk9hdTci8iA9VsT0ie2PugAedF8a79mgXhOT?= =?us-ascii?Q?1sNnK7w6Pz0WnNrXRBcGBPuT6PPgNTNvrOr0Cv7QRiVKFpFfpxtO9R6TZXMd?= =?us-ascii?Q?oWnpfCKxlZMlEFFOAOW6oO/aVJkPCPTRIIJyQU9ySP9RYoCrID3vUwwMo7r9?= =?us-ascii?Q?5Ec06qgcvQ6cLMDq9y3qMDGNkeLmg+uYUA77r1M1K+xEp7dfv5wXzZ4VinJ2?= =?us-ascii?Q?BTL2/J8zk70P/BpXwSm62f+TFK2POvfqJSc+3QzOffxxYMLKsejjjFW2/vwx?= =?us-ascii?Q?YRDAcuGJ5k3Hh8wyCe7oNV134c+YuXmIb5JEJ/Akv8UfLCV/hE1axUSJ4x56?= =?us-ascii?Q?KQOcUVf8xB6be8dYxnd9O2TuFBQr8Tsc0fl1vOGS1I67nzTrsb5jPyzoiyO7?= =?us-ascii?Q?oft69qvLEF97g+1DitHLR/hlUkWwpMG2JeimdNMsT+B8vyvXMoREncnhzeMS?= =?us-ascii?Q?1HwrgmmTeG3xMXVeuWm6iXB5fac2G/S3GQQDQET8eHaVyonzLIMUyk/8eQXa?= =?us-ascii?Q?JIKN4tvccXNHIg1wSkBlJFhQ5g0Y9zkcEDv+hs/N9C7JgWDOl+U8bfS7GwoY?= =?us-ascii?Q?bWEvTEVZhS6kDE9v8mHjm7Ts9L7HzHYzxlsiwwwlLhsFqJqUH8ZjWHBzsnS6?= =?us-ascii?Q?L8joWkI6ZZKPwQzQyziMbDRWaDetlgEYO4V61bd22l93i/62yZrIDO/aCdyd?= =?us-ascii?Q?4F/NrmBmTsQZjzsglac1doPoNJKEfvKMNAMUdIsTEFu5nBSmqfP8DDvaihi4?= =?us-ascii?Q?Eyg0hYNaeZekEX5hMqYLidTWkVdJ8Z3QVXIxrat7Cq56PriIPCoDMuZnxOo2?= =?us-ascii?Q?4nYGrYeBB7fujvqVcwaOTbPvUT7+nuwQh/ToiRJkrErvQ7Gpsu9n0uHpjpz4?= =?us-ascii?Q?o7jItpqrkEHIfWPPb/hfZ2NSzbppMhH1ck58hbh1UK1KwM5k0MIs20vbhU61?= =?us-ascii?Q?/oSLfp14rZaHKifaBgJgOQ1gP/TBCiIEl/deuuE7RVpzFMpP8v1Gd46T4KP2?= =?us-ascii?Q?sc3E59/ZT/fV9Gg9aY1+u0MdAkPI66Xf/HM+F9ZpAcZK/oiYdkLr22UQ/x8r?= =?us-ascii?Q?ws2Cny2Qa8fu1IClQtfSJ10IeErWy2mvGpHpcOAsBvUqY0O0ZQulE2FuIsyC?= =?us-ascii?Q?PwLAbfYxQGZcpE/ILVgkcXJfijv3nlGsW5dYQlJSC2nrh3zC6jkCkfz+CTIi?= =?us-ascii?Q?ONfFcWtLbDUx/kQjNLoVsYbkg2/NJpm+DtxJrKZ39aZEOK26uJIdLZHXeHJi?= =?us-ascii?Q?AlRzANjZrMk6Mq9TtWm2/E0hke91G47Cj3+t05KVZ2D+pLRRSVHZdIdQeai8?= =?us-ascii?Q?FHRGtTiumD7/HwvgjwA4LIVrf/kmlbkuv1nTomp+cCm+M7b9s6lydiRSdPq6?= =?us-ascii?Q?+PwwDbFrCB62f7wzpmnJwkow3GmKqDfkRyW061vc9xn9KjU9+ON/g2vgO4X1?= =?us-ascii?Q?q5U1sANzXiYHbgD+UzldUl4tg9KYZ65RYOBvQaDBzMPXkzDITILz4hBZud16?= =?us-ascii?Q?gsxx2D9T2wSNXaP2YvpciyILywSdvzVYvAhcbYFQNca9H/5u/io+SipEoPUV?= =?us-ascii?Q?AhH0crtOA5uh3d5AUC73gHOU7MyQp72mGyiq7QBmH4pq1r2tR22T8AKy1R0A?= =?us-ascii?Q?ljdbrwNq39Tdkp10/4uiY6O33Fi0NCSDryy3ndGG+1oZMXqT9I0lE04i4XeW?= =?us-ascii?Q?n+iF6y/Pt3zSifx0/FFkVnePoQkKZvGiyiyphbGRlabfUVv3HLI2cnDKn0ZY?= =?us-ascii?Q?zEHGPuYAfQ=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 1JMYBPOkJt6eLvWUBej1WHlG/76DafTnWN6P3qqBsYqas1bGuHvnr+Z0fFe9512ipNzBlmtlOjm5oQnYkHsUD9/c0f0aldRBFE40dXit4ECTv443vly//LAWHZIvzxklN12oG4nBLnuiKjabKY4HiYvzWoAzqgO4xuLoOqbWKj4MNDboFfk5Se816cUvs//+L7Te7RA6eOzDzIYhlLw0vGmxY4q/ZIH+rPNLL/ZZ5TSZtw6psmpKkz7DEbP7kKpnJiVv0KNa8iSjZ/0muXwWFoS6DldhNsaBHWQZyhC9fyOtehyLsZJdU00ArkdOaM4BxB471aXgkAKQpkPi58qsc5owPNpqo+yeGY4pFqHpA/p0n6igRgc9DpqlWxBF5r26jcjOVBTHPI7MW2d78eVV7pj5955HF32iy8ThEoCx62aqEhGSVpltLs39Sc/fSDKHG1sIsQmU022z+kMsoq8sgwwu2z88hhfpw76POOIuqLc9AYrWc4FxGjo2reeViqKHzu7HCw/1zlnIApF/wrYHELtRVUYOAIOUA+oB3ov3E6+1EFEyroAKqu9T0ZxgEAh+gpu7Db74QZDd1lD3dV4q0vWRJs+HpMYeCD5yjbdw7U4= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 94880794-19a4-4f16-c8e8-08de546d8bd7 X-MS-Exchange-CrossTenant-AuthSource: PH0PR10MB5777.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Jan 2026 19:37:40.8687 (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: EpSwgyjnjDgY8mf39BvfoWbcZX3O89DZsUuSMmaKU76F33lXKDo2ZEGPSPlJaSE+cyiaExz1kfGrVmxgYvsYuw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA2PR10MB4507 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2026-01-15_06,2026-01-15_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 malwarescore=0 mlxlogscore=999 suspectscore=0 mlxscore=0 phishscore=0 adultscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2512120000 definitions=main-2601150152 X-Proofpoint-GUID: IUJNkpGZftv3NwfCOeI-m-5RurbQMbRh X-Proofpoint-ORIG-GUID: IUJNkpGZftv3NwfCOeI-m-5RurbQMbRh X-Authority-Analysis: v=2.4 cv=ZtLg6t7G c=1 sm=1 tr=0 ts=69694209 b=1 cx=c_pps a=zPCbziy225d3KhSqZt3L1A==:117 a=zPCbziy225d3KhSqZt3L1A==: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:12109 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTE1MDE1MyBTYWx0ZWRfX/lV+5zQvSCxH m5Y5hw+2Au/LUYEuOQgbjCXyZSm2R5pKyKOumIrXSPqGvIfz0lVRTc/nB4109vRQcBpXBl+Tnlz MSVPUaxxWblCyfqoysLv4UYndoseg45tvRDhgmLNyWMOJAPtzBkv0V7m3jRnSN6PKL0SFZl2WlX dyFxxO13WdNf60ES6MVRcIord+Y6v2bNEa80wAT/u63eMISd9If5O04udXCOXVrxp7s4gYxka0o hSQm/6GiDi6t1RpPjlRsXc4nnk2jmoJqFtiVPSnHv8lxZJGV4+dlo3WE5Eb9QXHZcI/rW6Qnpis 4ya/nYbKpIX8HQIHrNXnszw7JkYeX3MPav0j9XGz0NsLwKwo2PtDY0Muwevvzfdhi8Nk32R5XM3 0zV3XfUxne1GyidVPiisWIQ2rfHjGL1g7kdytH9TKeYbUUIqxuytSeQMli4TBR6vFGw/2xCzzjN 6wHVksmi4Uv8cTWDVKuek8OUMDCTWqmwHUdfsJuU= 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 70225f7856258..5d871d91ca49b 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -3689,24 +3689,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 @@ -4343,19 +4325,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 /* @@ -4386,8 +4383,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 05:35:35 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 3EF6B3803D6 for ; Thu, 15 Jan 2026 19:38:13 +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=1768505902; cv=fail; b=cvanYNGk2WHrNaXHz98EQItBJpIAuZclWaImW2v06W6PQqMX/Sw9A7m2DwWuZLxPP9rOeFdHXG8bMKIJZHpfLXx6j6rIfIb73uIoITYjk+y5igCMDJybkob+54QDPGjR6Wfa9iBSgJjVcgJ/tEeNM0ABxIUB8fFk6tnlsL6vs6o= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768505902; c=relaxed/simple; bh=2sGlsVy21hTouZa0BBWpRBjJOSQxbNB56H2EW4PLxz4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=BPsseWfQXiySWMIjr/QAn7we6E/sxrL6JFrDEO6HjI9rWtQPEPZ6sC3+9JyPk1hZMqrbdup0E5fTzkUvgETi15Fd7NnFtRMPwcwxzPNF7bDNgZZb3TM2z3JUlCScRFGBgjp5uapYyxIjqQJq45kDciyKMO1Hoi9EnLzhvXO+gZE= 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=YiuOypUl; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=gcCNigVd; 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="YiuOypUl"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="gcCNigVd" 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 60FFlQ1f2811528; Thu, 15 Jan 2026 19:37:52 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=j6LVtlBaoIPDMMFIKc3RvjVqxlytWTaBi1Y0k9XZQcM=; b= YiuOypUlseKL1dca9t6g+RLbEzpE9BAGIwdylUcAFPaudjk4YAeZmV/AnKi79CKl Pb3GVJpvJgm7RC3LpuGz5roV5LwELFf1Upv3PUi3ohB5OQNC9v6EfoZbm/2O++Lu X+7zELTVArPaLH1S8ASRqfi476nEn8GvheSQQzeZz00yHkGxJOMyKY7DxB7bB7Ze ZZubucyehjtOkoxyCv2gRsDnvrNICUHnM4smkPw5JQSgxxWihMhRb9M69wLswkJI jHUcU8qIkFppbEVSCZU5S+8A9MObwGmjyldoUqhEjVZ+cx/p/WdeRAI5ADLu+Sq+ RxhHQNMzb/h+FNOlIWJ9kA== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4bkh7nrnrf-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 15 Jan 2026 19:37:51 +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 60FJ0Z8l008270; Thu, 15 Jan 2026 19:37:50 GMT Received: from sn4pr2101cu001.outbound.protection.outlook.com (mail-southcentralusazon11012031.outbound.protection.outlook.com [40.93.195.31]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 4bkd7bffgc-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 15 Jan 2026 19:37:50 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=p1hI1+8PuxKR2tiQ07MphKIacYtBTS72iXy6rrSP6yN2UhQYK0TfgVQ4+5SV30zvamKXdsi4WdDtHLa9t1ryZQ4sR2glLzJSTZnFZEKV3RnUWoS83od8/TqVUtfWyjPF1wPvHTOk/Q2+3l17heMpYNZweleoYoj06BVChrDLXxQXzd0gy4/ZrEgZ1ZA+RYqqBebbOQg1m6DuAaMl7kEncVthyE98OL8NP9KXcfZLF7WE6ZzAEPB8DRQIXIr5igVr2FFkzR0C8P4xBM4FuKzQK9M8YgCv/MscQBQWwD+YPZq3vqgSIJ+OuwlsSmzSi4pfSn99+vFyRBsFQs+JySDI2A== 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=j6LVtlBaoIPDMMFIKc3RvjVqxlytWTaBi1Y0k9XZQcM=; b=RuCuKm+hL9nc7HEhbIZDp+cD/iuVTU7uyFO9YBnCxbH31eOZ/8BzCwAdoYAUy07/q8zguhH+r4/Ktuf8ZXtwBdv89TazH7BpHf7G77qN1Z/Qf4ACVXDJj8FeGRx47Nyov1it2axecUXWJSZjo6dngK5PZZGvwcvRUaTRBzTcgaJw0QNNimASha0gzd79KoecMe796eR3gyC0h6zq5wMMRCz1oaMOVF3iXkW0Q8Go2JAeJKIbKYk+V7FgrHrOoCkKZ95TALxbZD/a7GS+wsd/WVUuyiWxNZDV8k+FtahvDcWQvRpdQn33SjByp5vmFaCGD3NENQviRO3ghbMoYQSBhw== 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=j6LVtlBaoIPDMMFIKc3RvjVqxlytWTaBi1Y0k9XZQcM=; b=gcCNigVdkrgGVfFoZjv6zBPhzaH9e5gz0clmS6XozXirHhLWww8+FkEHAiADVcY3Tz1KPaLzcKgkJzQHEyyKLNBSLJ86N9OZQCNU4Hndp1WQJzG0VuWfCaWTS9shR8JHbXhWKC5QLQ2HM1EYLr5xr7jZPgo35A8sPXPmiqpZZhU= Received: from PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) by SA2PR10MB4507.namprd10.prod.outlook.com (2603:10b6:806:119::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9520.5; Thu, 15 Jan 2026 19:37: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.9520.003; Thu, 15 Jan 2026 19:37: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 , "Liam R. Howlett" Subject: [PATCH 20/28] maple_tree: Add cp_is_new_root() helper Date: Thu, 15 Jan 2026 14:36:39 -0500 Message-ID: <20260115193647.1695937-21-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260115193647.1695937-1-Liam.Howlett@oracle.com> References: <20260115193647.1695937-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT3PR01CA0131.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:83::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_|SA2PR10MB4507:EE_ X-MS-Office365-Filtering-Correlation-Id: d86ac304-7341-4245-080a-08de546d8d4a X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014|7416014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?sg29pRtR48NgfmvW7/9OaaAIHAvpue3zlZEUpNzGbV9xvHthva/PGXd3JvUq?= =?us-ascii?Q?gfuL25zYPyO0tv7p8aTwetDzO5SI46YMqyMbv/G/JqVOXSU3OQUhpYi9KjbM?= =?us-ascii?Q?gDo1uREiBGZdezx2+PNXfRh0Y/sT7jRfvo2bKIQa+3UphEG/NCIVMW6HNphV?= =?us-ascii?Q?nolmwBCnGLYjecrHTzHPKYnDl+pNPDlFdhJZzVGaO9MyV/IHt0LXFTxk5fpS?= =?us-ascii?Q?IUb9wztHqciUTL/RZkouELD/0IpTx45029o5Ne9WgK7KHEq5HYgMqQxl94qs?= =?us-ascii?Q?IVFsr4PZMIuwoKJI5rWkMy7/xcPateIopZSs0EIyVt/9jkanGSyNT6Y2ds2k?= =?us-ascii?Q?7GY8GZjm9eg0FSiwPUv4JhVuABt/bozcY4aDuc76AgXs/nMrvtubgDrIfPhS?= =?us-ascii?Q?TmW0/+rEwo58WwV1DwJXyH2/uxdWKPSmlBOUCYzJ6htMEl6Up7LJ/tzcdDGI?= =?us-ascii?Q?Q0lNaqwe6ZLPRQQ9dOTluHCOOZtqdyhOrZmfkmQL2tendaZ456anAK8QhSlX?= =?us-ascii?Q?VCc1l5GnPatoUFFC7eglhi95TiUrkZ96inkxWENt6KKjIyD4ibvnvnFlGA+I?= =?us-ascii?Q?+XyNycal0B4dJHSUaKJW9DWa3TOwhS36fu5IPIL8NmQOLyhzEnJVl/MnbEZx?= =?us-ascii?Q?evpfWnaUxWt8GZVYhMxvNnkE38dkZSXXq9UQVLvYTkPBQyFMUI7ntL1Supck?= =?us-ascii?Q?m/T2GLoFpG5jva1tCejSkHHpWsB/bZwJKSXy94ITn2jFbXWFGRzXaceKiIkO?= =?us-ascii?Q?ci43nVpJBiDNpNXaTIU73Nf6lXQl5rniQBW/XrpmfZEdMDCzdV4nxYADvFdw?= =?us-ascii?Q?ozroE0juHnMVZhbnPdQYNquc5cW/EbTwjg4t5YEnpeXMP5DlXuOoirCG5Dzz?= =?us-ascii?Q?Im0GP5qjPjRpqbPltXOa+j7J/Ue1uq4dtAPkWnuWIcmOQ2EYtpAXXjP33E63?= =?us-ascii?Q?tUWLg3ZtW7FRs0GnrzvWcbN+D0uRo5Zfg3olJhYDnXTraNUsbxEailD1ymhP?= =?us-ascii?Q?G8BRYIGNnNnrguZ5Rt1TcdYtfhzy8+JeW4UOky6mgN6MQQeLfomjRzUAKxNB?= =?us-ascii?Q?p864da4f55bhe0vN1BAsGs9tkagXy244TGAE7z821qGqVvFbFPi8wurp3jjh?= =?us-ascii?Q?xOsa9YOdfGx+pbibndrRz76lam8lcjLUk8AB0PAGQHJKk81lmD31KY9zVl6x?= =?us-ascii?Q?Hae0fTc7HOoUECreM2XQmoatFD74nIePNT34T0aU29s5xBfv3r/FkpYIdXt0?= =?us-ascii?Q?Q8SVOv8tgF0JtpjWhuseoAI6glSUxaT+toxzPCoiRrpKZ/y20Qtr1TJLb+WA?= =?us-ascii?Q?wLmlQ2gKqPP70Ks4Iv5pkbsMqUF/+c0RCAqeh+N1dSnaii8sAxWqRRg7+rbK?= =?us-ascii?Q?+31U2Mg8/R38StpQeKeOBbaXEfbKpDF21RiLBlfUJqMvV5gmziUgvTF2Ae3Q?= =?us-ascii?Q?jiTuSQR/IiDXZFcPA2WXqSo4wg+LS96TUwWnS1JfmMmGAkZNA2TEwl5eltq9?= =?us-ascii?Q?u9HjoxRGrAgY9RyepOH+BhAHaXa6trdkfSmBfzp11jGtH7N6A72uPwgZKFkI?= =?us-ascii?Q?6BzhGlOyugHkoGcNf+c=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)(376014)(7416014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?KTJ1cq5qKf+FYKfgsgTBUKaTduh9oR1RFqnBUzT6KoXUqSyleu+adVN2Y+2f?= =?us-ascii?Q?CHoKwBhTw2N6b/qiY8tfsTKVn9imA3EC5GqJ69xHGQ+wIJdheIUfvmjWNiIb?= =?us-ascii?Q?0tmaFYXpL/gVTJB6WOEQvBEvkWq0LD1MB4TdtWfMlWJhU2o6rK1N9a8c7oo5?= =?us-ascii?Q?rNGK1SuikVin5uqeW+O9vdx0SxcYjGkqxjaLTBaDHgU9b8dKJxRIyovNw6qL?= =?us-ascii?Q?OUorT2sXE+ZgP7HH+vcv48+enpoTeMpTZ9zaRG4/IkAZ6F/qTz+H0S4ibeSd?= =?us-ascii?Q?Fi3npVTxOnEPHm85tSJVhoOUkCz+ZBJZSHlZKDc7/CcmGcurS0ZCXvZYDx/M?= =?us-ascii?Q?xZpuK5FMm5w/4T0QaTkgPLAUlvueYter6pTCGglbwVU+2p7etFnFp9LZXnkH?= =?us-ascii?Q?7Gw++hH8viKI9EVr8Xdmqr+g2q7UYnEzCatfcKnAJwGDr9TLLY0r9vtSH9TY?= =?us-ascii?Q?j8gbPYs2Sz2wvWP2Y5hvnnkKGCiUw7JXENSoIBFgEGzas6bQohu/mSodLE6z?= =?us-ascii?Q?vDUuEJCPtljid0MfAxrZxgXo11DI+y4ztTIwa6NS/HKzUIAvidc+Kdq2KpOz?= =?us-ascii?Q?ows12pWwSgP5BV6celbbBfey/p0h+U01StciEbPq5STN79wWPSfupH9WGugG?= =?us-ascii?Q?khRGbCl4QD1UAKNE9BeQ9gIdE6L/1GHgLs7x8Zq+w9UdFrPDJChAqBn37Sj6?= =?us-ascii?Q?Mn8XMik076Clih97SGN6TmXVXutEWTvmNs2wyOuBD8sxoYBZa6ihn08nCC1z?= =?us-ascii?Q?ybuYkPdv8y9RC+67IzhkcluJKvieMzwmLIJYFMupnYq+2v19phTdrulyuDCr?= =?us-ascii?Q?RhJp0E6u2Ej2g3BIErqfWRwIDA/FjdP1H5XCsW7yruHhaduWl2o5JpJyaD3M?= =?us-ascii?Q?E4q7lkYXjJX2qDNHsLk4L/RIMUmtrIhI0W93re/epyI1Ldpuowwn9RkqbG9q?= =?us-ascii?Q?PWu25EMABV6FTMKV0E+0AwHKl9CIPiK71v6V3YApRAIZ/rdgkpIr6fhy5Icg?= =?us-ascii?Q?ZVv781UY2BYmnX062Zf08wbs91yMGSjzGObZpcTLth34Clh4rEUGiJ6uyvAK?= =?us-ascii?Q?QFj2kndzYXu7quUdhQ2xpvhmyi9YZcGHd6173ftnHYqh+csOYa2Q3D34Lch9?= =?us-ascii?Q?C6S1lN9kwnI0avctsZxiil+KhoSDOUCs4RmkRpwaV/EDoS+VdH/Agx86jKSV?= =?us-ascii?Q?HceYLcZEcL9HnmybypgFN3yMB5ZCmhm94XAbAqtQUU7jk/VOUKOKfc6wTDu6?= =?us-ascii?Q?zwzpjGuFY3FcodHfO8ITb9l9vhc56I791Djtu8s9k+YKCa4b1GCzlxyqjeO6?= =?us-ascii?Q?rugc1UM6QePpaBSvqlpfVBmqTCihybYiqrmJj0pXI2rB9kxYPdfjM3QYVpqC?= =?us-ascii?Q?LU1/IxyJ82K5vs/zrQCBaarCK8GBWRIonZ6p7tHMcOiYDmoHglXGIyegjrq9?= =?us-ascii?Q?Orq9imr6lS7ip9BO85CNiiJPm5DIIt7x6NIWF7UNizBGFO94PPyAWwDbqEo1?= =?us-ascii?Q?kA8JvLu3SSghSIN+ycdWS8WG1Cuon9KrYdmZ02CV7SG5vcbsS4q/JtIEolom?= =?us-ascii?Q?iDjYwsd9itpoc6f2QIfmP0hNYcbRejIQSiDbsNPQopkscaMbMfkca0be+nrc?= =?us-ascii?Q?hwaDuqBIJmmffp8pNyz8Bfou+vo5Gb50ivEVUzNh5W66b8Z0Mmz/wMllCiMs?= =?us-ascii?Q?3u9r6eUu2KEGmz9XXrWn8qulB2d27KWtIh/ms0Tr7vlK1BxozLmpYcicDINx?= =?us-ascii?Q?kO58pG/MFA=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 5NDw9b2gtzvbGRGb3Khwb7PpsAdg704iWymfu/njAkrk/POLEVmDeYGcUwiMresJwijKYSP8SHcn9EN3hnDLCK0Bf8fA02wxexW865TryIzz+jbuFFNFSFsCQdXdPPwcM9n/Twi7WPu+y+tnx2kFJd2FSEVoc72VHJ+dRfG+mwwWNHh0fEeOjVhgPzsuld9MPIae7kLja2WYL95HwfNuuuq8KgG/2oCUj//lSxaQV4/CoHjpVb6jdxZnPb0P7sD7A85MEuY7i48H/Fhr1VsOwZtUGSYiJmmdg4gWtHCnylxrVenZ/2BJ1SZIXGopkiAdxnT5oUepRX8L68x9tg34pxxIIPdLEy8OEVb8i9P7Ts8gJEaEWcZtPMyGr+dnqefD6eAnZJ1l3ornW70x8zExtP/Typ3tCJt92s78RAws/uSr/qWZqmAU2P93+JKGQledhxnV3AYrb9qRs7RKVuD6eslQ6qvsDr30qyXm34RE1byUptwY/FOm77Fi0LGdtH0EOsxbemhD2NA2tvzlkSCS673AXnv1IW5Bc+M3fVMoEYvjhtTjaRGGbAsl+o8vIgPas3P2BnYxOCPFIv+jHAWp2DfcPe56UKS33i9IcnkJ8+g= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: d86ac304-7341-4245-080a-08de546d8d4a X-MS-Exchange-CrossTenant-AuthSource: PH0PR10MB5777.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Jan 2026 19:37:43.3119 (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: HTg7l50QK+aL+xqlLDIMCIl83UWC0xPOlu3h+01mWvkxabOQmqSdkGTdZhWPT7vBlkSiXGOkPRPwgAk6NQMQsA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA2PR10MB4507 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2026-01-15_06,2026-01-15_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 suspectscore=0 mlxscore=0 adultscore=0 phishscore=0 malwarescore=0 bulkscore=0 spamscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2512120000 definitions=main-2601150152 X-Proofpoint-GUID: ckCd-s8DNuoAA3vfYiNX1_Rf7Md8rZ-4 X-Authority-Analysis: v=2.4 cv=X7Bf6WTe c=1 sm=1 tr=0 ts=6969420f 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=-GcjlaOfWHWovNXw6HoA:9 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTE1MDE1MyBTYWx0ZWRfX7vI6uR/Tc1C4 HlesWOE/gV1cRC5szcj7XmfHvSABOALTdd4iPg2xTh2u2iG+h0Hnf+QG6CtnJ3n5iSjOUCm2uqE UtZo6yIhou3b4x0g9yvaYTo80plABgQUKkLAd3kvU1/QcvAVIH8X3UDWN3eUfkuX9BJAIKQUhfL aJyV4Zbm+ScpefBLfZhFTnckWCNU0gstGXffg3Q9Hx5IVu+rCzlwfOJo6a05bbjUraYSxMyMDkt ElwV48o7R2/32Zs9fZPKZz/7ZPH6ViOhO/glulxcIUdZfeAUep9w8euDkt58UAweuh5twHXH2nd g4aQdacmV5NY+rzpdJw7n3fEj4iCOjOEXxQwNhpkQY8aIToUrex9kfLxGlKEl9dYHwIMFGmMa9e ge98g24hqIypQMY2j7RLzxmQ7sCghCA5d4a3EgeS8T8j0i7r250ble7CzbHphUvDKUeTr6ExUFL hD7G5MtYq+BfK4mkQjA== X-Proofpoint-ORIG-GUID: ckCd-s8DNuoAA3vfYiNX1_Rf7Md8rZ-4 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 | 56 +++++++++++++++++++++++++++--------------------- 1 file changed, 31 insertions(+), 25 deletions(-) diff --git a/lib/maple_tree.c b/lib/maple_tree.c index 5d871d91ca49b..d9313e63096e3 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -3314,6 +3314,36 @@ 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); + cp->slot[0] =3D mt_mk_node(cp->dst[0].node, mt); + cp->height++; + } + WARN_ON_ONCE(cp->dst[0].node !=3D mte_to_node(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 @@ -3336,32 +3366,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); - cp->slot[0] =3D mt_mk_node(cp->dst[0].node, mt); - cp->height++; - } - WARN_ON_ONCE(cp->dst[0].node !=3D mte_to_node(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 05:35:35 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 3F2453A0B16 for ; Thu, 15 Jan 2026 19:38:21 +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=1768505925; cv=fail; b=gISVd/YFPqrZa5yJUwIHDUYMMrER4GzkPdedfS/SvN87/qSZBvr4/ToDsXeMUmuj2y0cljVl9mioY1GsENC3FpHwbSTvdQTcaKHu2sv7d1fn4v0zgPqAXb+0yzuFEGHfY7PSUJZ3G+3HaBvkblqDbmPW04WbWf+9vBz021Pu6OI= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768505925; c=relaxed/simple; bh=iRaJV4NUyp4+XN/CatrJp1kf/nmId3kZgdKezMb+BNE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=JtoZOaL/Ix9MuILRnjhqfoftEwql+6KzYr9c6pMNDJmgck0HpvBTbCInrcQllhHB7oaCBkNwbQZtdQqvRsT4TzzK3sEh/8ucfGFpIUF62pZBnigWDvcK8Nr/FIKiej+vcow+S3UrBwGJ4YTLC+oaXc6106qV1vvdjB8si/3gtfI= 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=W0lgU5PW; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=MxB6qJWo; 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="W0lgU5PW"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="MxB6qJWo" 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 60FEAZUO1940271; Thu, 15 Jan 2026 19:37: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=hiF9eyHRWvy/ekopLFtqKBjLBToP81Yxs2891Lz/u/I=; b= W0lgU5PWAG94oFzm8ZoQbV2arajkaliJcLULmtu35RCULGUTbyZ7WuKcw4cmUMI5 mr4GbQELxRUfpYlzqNqQVcAz4evWz8B1/hm06gIJLTDmWPWv71jlevyOM+JPMYgb p1fOH4M2e4Vfj9thY1/dW9wwyBJ2Oz3UQn2JojAAraJwK+U6VENweVzJCNdJOaBN 9hW+UQ7lZzR5qSnonjiNd+LqXZPTZsxWPtQt4hGy8/KPFs3S+9AMkAxuzWzZD/lc bWC7ngnXflW2WWYjQPMkuC8UU/RT9gTPhQH/CQ2Fk9YYhJwlEJKaELEDDgr4CRos WULLGrqb+oytYWm3bUQGxQ== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4bp5p3bwct-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 15 Jan 2026 19:37:56 +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 60FHh9SF005654; Thu, 15 Jan 2026 19:37:55 GMT Received: from ch5pr02cu005.outbound.protection.outlook.com (mail-northcentralusazon11012018.outbound.protection.outlook.com [40.107.200.18]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 4bkd7bffnr-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 15 Jan 2026 19:37:55 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=UrQS1Ek3gHmOZ2tXCcSXQxmp2kOu+hAOAv9jZgSHnHS8HC7fL6edBma3zf+hlphrVuCxIgMuvzSAC2TTrWQWnUyMCqdlikFJ7yeyu/pn3UjapO1yHKF5ypeVuSDnzJ0ZBGU5N0p7cSof08mnkZhMnGSQFfY5DTmUigb1kzciuvURAqxNetpUfsqTDkgPmF07QVJGJk24FqqmH7lwhnE9GHtaVvbNwpElWmGP9CUxOcYcKo2AkagXBwuJ1+y+7cK90Q0G2EZJgSVsz/sTRgfOeu/x5qetxxj9EEyTqppV5O93rjxe9NidWTkRgfS+XdFBEXO22Nmjs0AEGLYZpNNxfA== 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=hiF9eyHRWvy/ekopLFtqKBjLBToP81Yxs2891Lz/u/I=; b=J9TlbBXUagfB3bq/B2eKUSbzWceeuO4XGtSuC5yRln+wqCPFqZH8rzZS965aT+MM+eTiisgENbAD8ue0OxI90h2/5+knVnLGyZSOhGoU11aLIkYgF/6GxRGVspIWpfahLQ1rHvZGC04uTNUScRaz6h4A+A/a4tdosX9HgSodNJqyiEvbrLobD7eblghH5Cqm4mcq2MNsoXWW+xAUUukU6IcyoV19WCjPLFW95iWZTIobghJi+/VF7l93S76+beJ4Zt28hDWtqYBzs6P563zXMCKKm2jOtHe0xWzERTjQRuDvpavDnxw7yvCkOW9tYhp9D2CCsrOEgQ2K1CwCpJ0e9w== 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=hiF9eyHRWvy/ekopLFtqKBjLBToP81Yxs2891Lz/u/I=; b=MxB6qJWoCDKZwJmaMRMDzjlC1pSDfbPaTt/OwpFj1xF5RVTzc9MHqmnIuWQtaBRzqU+Rc9Pw22yxX4/fnwZsNO3Pu0rJhJivDPVtYziq+4SIMDJ3ghqbYjJurernsNAofKU8jFB6QkC+kYKehA+yb0uYyG62QlE6PX1nLuNeDMw= Received: from PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) by MW4PR10MB5774.namprd10.prod.outlook.com (2603:10b6:303:18e::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9520.4; Thu, 15 Jan 2026 19:37: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.9520.003; Thu, 15 Jan 2026 19:37:45 +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 , "Liam R. Howlett" Subject: [PATCH 21/28] maple_tree: Use maple copy node for mas_wr_rebalance() operation Date: Thu, 15 Jan 2026 14:36:40 -0500 Message-ID: <20260115193647.1695937-22-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260115193647.1695937-1-Liam.Howlett@oracle.com> References: <20260115193647.1695937-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT3PR01CA0134.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:83::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_|MW4PR10MB5774:EE_ X-MS-Office365-Filtering-Correlation-Id: 688865f3-57d2-40e6-3317-08de546d8ea4 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|7416014|366016|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?IYNJRxKAV9+fIR2MemiqqzBco1bDdwmaZpPmx1surI02yOY3BAjLVGRqR3f7?= =?us-ascii?Q?i625Jcz5IYXv6S3T2DLSSCSYiFIWfbs5dha2FJx+ghH/DQt4aq240dxEDDhr?= =?us-ascii?Q?9mVfiFrgIhBc2P6mfhq9gnXAUxo9X5VbUTmlUEcIHyGGVHupQbiVAxbZEY93?= =?us-ascii?Q?GKPDpIkMdJ8eh/GyvL8ymk+fwni+vcXMM+CFCWuJytWARYyWI5NL/H7muIX3?= =?us-ascii?Q?Y6COlrDtkyzF72+bD1QN45doHmMowJxBKyMWBjdrktRD3wuRDVh81GOSqjeM?= =?us-ascii?Q?yKGJgtxK02wYJe/+3Gw97H6J7dmHt0hyjuOH6KbD/wvMTF9Sw/M1nKFK7ZHV?= =?us-ascii?Q?JXvkb5MxBHjd9GINnqzTJGQxL+WqO5STzCZD3qqhBkBtSlOHnCb9rNbGgLFO?= =?us-ascii?Q?rTKXuh0pL4T5vpmMHt/L8mvNJ6b7H6Ru7mbFL0cNcPsvZ8fv0A/mWveIbCt9?= =?us-ascii?Q?jk8maSXTzTMzUc10tR0OFsq+VCZ+uXjbdata4x7t23D5mqOXA6M8MJ8Z6sWF?= =?us-ascii?Q?vD3nKrQ0IIvsIXwQGWYq59J+54Y/KuYr1fd2bUPHANeFZtU5n6MtnHOrA+kM?= =?us-ascii?Q?K6rNkpTg6lS8qs4cQM8mUnkSs7GEqwlsNBs8q+oXomf3BsjS8O5rgBEEsxxQ?= =?us-ascii?Q?+oF6gK4CKtWxZMqyyNWSeOr6qA04cvGAs4gdPvSlTaztZcQ0I2Tq3DazPYAU?= =?us-ascii?Q?pshPb0KkpbdH/ayFxM/UA61+zasNUeSdRWz7f6h+9iL4Q0J+Hee3kMTuwKzb?= =?us-ascii?Q?dt8iCs4sORt50KiPz4NXGlwVZDbU1t4E8GwgqPurKy7V+kTpd2ULpzt3cOf6?= =?us-ascii?Q?M48kGcWim7pfotvtKAdlxL5OVwmTzVW71YOXzSb+hWznr88n9zKwKfngvi1e?= =?us-ascii?Q?2oZSxJFfNYl4CMGT5S9WPIV8uJFufglcRcPJkAtWUSfJMlvBuF1zX0Rum0mg?= =?us-ascii?Q?XSeJzm5ENmUfDoePbe0DIyhXdHGNu7T7kgNC8tYvHS/LBS11jKpTPJCSvH08?= =?us-ascii?Q?9ZHeKmRegAwAKochtqi/dBiFkL/aAQfoVWK2IQfj1sk4VKYGUddjFXNEi/eO?= =?us-ascii?Q?wjCPgZBPVEAraRgDE4UaPslQyZJfbKrHuCGbTUwBU/pl8daLeHW2vZmdVj7C?= =?us-ascii?Q?P+5P+eB7t3NUpmfu1z6zVlzizzpHcnFf9ld3Q2KTYqk8krTf0Y6PDkcOV13y?= =?us-ascii?Q?yxXF6lcKxStbRmn8hSMEbvKDUlmV9xRe2TcNwqqIltcX/A3jbjncFcANhG9B?= =?us-ascii?Q?F2263jDer1VLJjDFawyzigIYzW/8esAbr5l91Ki9aBnp/EHhWQVSsrMjnGVM?= =?us-ascii?Q?pj9xCtGkyHe6Wdb/Ib2OM7CxQ57dHLTD0feRycxFrjdYU9xMZR31JvPXrJUI?= =?us-ascii?Q?46i8r1nCWmVodmKoBxG4HJ//A0I4R2zB4ob+wLbmUBlltw2+oYcZnqEiduxL?= =?us-ascii?Q?Xr6D1lzObvSw8e17jolnuejE33jPsi3hn3bgNTxI+HyyDAPTQwz52YEbSDRN?= =?us-ascii?Q?DtU8WsDs0pkTB+ZP0CAnRq5h1UqNQiIZ7+HVffF3GDmvlfzJJoFeXxst0zXE?= =?us-ascii?Q?3MNK9o7XV65DcN7IOwI=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)(7416014)(366016)(376014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?T37dMcfVWeIhMd203QQw/rgsnb1ZrHy/jlVSdnyPfBNLLdmrAY8pl6rcU4PX?= =?us-ascii?Q?2ezclOxVvDAwr1YR/9k4jaQ6g7CI0J2/XnFJTdE2HOkyom992lJgMtZLspV9?= =?us-ascii?Q?1LbjeXvwtHFsRPAuZrxjywX9qojJ79xyOB9BWv3keDzQfvgDr1G3nEOvrOgR?= =?us-ascii?Q?lzIn3Mh7bwWj8NPbCqlpeJ1DCghVoNTnPM32eKNtToCnUlZJrb8TY+o/leZB?= =?us-ascii?Q?TRtRpSlJeSIoZaUPlVeFipSQ6lo2IghK2yy6RKJyMeCpQEoQxISCtPH65cKt?= =?us-ascii?Q?JKQdAGGpcaWo2i5cCC0ulbIvZJkzmQZHDDHArFsWTsIoEfmUYUfOY4ImbEXJ?= =?us-ascii?Q?qVc4lkReXsl25ocffaUZUymo9vKEBY8fVoRbIuMAMpd0vTC4LuMjJ4QkT+mo?= =?us-ascii?Q?fOCczaLUrRVE3wBK9buRijNNm5A/HufEto3AuwNjKWLoyCCHjNCgIpFloYyK?= =?us-ascii?Q?TuMiwWeAf9+6TopfPs0vEvuL5wotTtDRRNAWbyEYc57KIdl5i0ua3AT89Ikn?= =?us-ascii?Q?gXcuzAm31TcNli+/eoufIpjr4VEaeopp6jQhz5be+YTTntVNZ+Dx8EQ8LY7C?= =?us-ascii?Q?LOtnblWwx/0wOCX+ar1KD7xvu1bTqMP52cXYZkX6RVfeOT+xa+MN5KajnaAT?= =?us-ascii?Q?/9rje6jJS15mgWuBTBUZaaH3IGM8gxZ2IUkIYK9rlIyjo3XKrj7ECo95RqJM?= =?us-ascii?Q?4hTW1UAAtQn6loMTu55TKcddg4tKicrPoBBUmUOUzsQHHZ64sEv+O/Sfy2e3?= =?us-ascii?Q?QMrwuhuzk3ySkD85Nw0HQjThk7AT5jGIbTW3atxQE+rE2jlhp59Ardxn+8WK?= =?us-ascii?Q?fFvy2mfCd9mdTb9dBzOOROgYYLDO2mV8p7xso3MMOS4NBpR4mp5UKd18OLjV?= =?us-ascii?Q?Y74lZPS5QknTPrx3Xqw+tID7NBlUGQ6xGjEqSIVUSRJHMvKF1UBjFTj5lBPP?= =?us-ascii?Q?ODWADqhjFaE8Gohl/Z66Xb8f/x7IiDQx1bh8b01+8Abum4qXq2Dd17HKrFkj?= =?us-ascii?Q?YXXuE2uN1tMn0fn5W0eCCt3oqkF7rAQdKBba+/eeUFknZ8jhRCHOHYIKv5Fa?= =?us-ascii?Q?8H+5E5+5PbgrJqDMUG8S0W++1Fc3DMB1Iv+oKW4FjqQzmUkmvda7sNenO8d0?= =?us-ascii?Q?+2ar+g2+LBrAn2PKRz4TX19RMJoYGGHBEV83/jtrqgwoyRp41awJ9RaNKRS1?= =?us-ascii?Q?8sF16oklkA01TnYLvIKC2i14+r96jmADSzyCCgN6PjiBxlx1WPK9jmrtyga6?= =?us-ascii?Q?sWhlePM6vy+kG3tosFMm1kLDKu9O2qKEsoYFc0Gb1B+iV0bkVV560mqQZiSZ?= =?us-ascii?Q?w7rQ0pjsMBreC+h+dOeQ4mY1PBXTxzuu+YSFjj4n3gB1kRHAh+q5usDCiPs5?= =?us-ascii?Q?NyvYOmdpM7SRVEjd8QVmGCQsf/3d/AB+M0oKMcHuerO3v5kO5RoR62DmYZzH?= =?us-ascii?Q?16PWeUNanTdSvOTL8tP47Od+r8JPaukDYDUgEwLf/WdVEXcVWECOe+AoKXjr?= =?us-ascii?Q?pp7pXOdCFJyarok4Q9JV2uTLdm8bQ4QFwROi6Wm+34hVIFBbi4Ogla+ioIkE?= =?us-ascii?Q?EYnj8sxlEHmWeHGg2ZibQmnUqf9ckSX17hlkXpYIAs4wLzuTY/iZNLsSiHqb?= =?us-ascii?Q?RdGFMbYzljwUZhVOmyBvpXJyvM91RUNyuwAgnwIuMDTRJHu2FLvXy5jCRuH6?= =?us-ascii?Q?9/w8DLtc3Qsjk/ebNvB4bX8tDCncBgCOG5/Da4+rzHvFh7yuIes9KuwNyjbH?= =?us-ascii?Q?tvBIUFTAMg=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: KJmQq84O8BccDZ8BNNU0AbchJCRfusW0DifUDf8yF4WSlfPbM0aB+DLEMejW1r8J62UW+Q4yrZxOj6BDNIU4wZNAYmpxbslE3s/Z6d3EtFLxTtBzDdov1IYcadr1FCg6gFXjcz/01eohhS3BE49rhp/RDagDpgS8bxsYsbGIVmDNVDxDY9cnYG+tO6Ht96tNzLyTTWACqOFuLzS6Mpj+pW9zDKrLDKcZfNpmhOu8U3EIkMTBaTgBheQN2gJ/GeugEUmMfxqouqIlRju2W5lwQN8sdW/m46xNoKWwsJUijstlc57zAAGWn7qTDGmLkzARmFjKN/LnGOwjg6cyHgbunz9j66Chvl3JfY4/rcPWd1rP61wo7LAnwnWezTBVb4FzH5DPt9pEmrQPijtbxjJiniYNoGP18KoiIxBy+/9AFxR5lPOY6VgVijVwHgn/FXjmn4w+HQkFuktVbJWXlouAlJbMqZxO84SvSnHDHGstjzk94y8jaa4rtzEVaeNamRyjUkXDUtXTNUL5C0LhWpVARg+fYGGGJlXDvXqWaoYibjGUbZ0f6UeqWTez2lFbNBp36UypXst47SpTQeaKg84phc4fG6fJdIGMX5KooNO73Ss= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 688865f3-57d2-40e6-3317-08de546d8ea4 X-MS-Exchange-CrossTenant-AuthSource: PH0PR10MB5777.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Jan 2026 19:37:45.6073 (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: D3Tj/43yD8RltWsgCpsTa1sgZ2RkkucD2ALx82LCFMeLgmUeimjRGPzhaCA9GpVAZEfsNkk8h1+wB1euswCQ0w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR10MB5774 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2026-01-15_06,2026-01-15_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 suspectscore=0 mlxscore=0 adultscore=0 phishscore=0 malwarescore=0 bulkscore=0 spamscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2512120000 definitions=main-2601150152 X-Authority-Analysis: v=2.4 cv=OJUqHCaB c=1 sm=1 tr=0 ts=69694214 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=NMtRElkMPdqfRlTI_JQA:9 X-Proofpoint-ORIG-GUID: IzrBbx_I8lWDW2yKnSagwZ72RwR2MBqP X-Proofpoint-GUID: IzrBbx_I8lWDW2yKnSagwZ72RwR2MBqP X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTE1MDE1MyBTYWx0ZWRfXy7FoDWWVoqUV 2edKM89HgVw8EGMZIzotobnammeyVJMwwifTgcMp3CGySQilrIBDTZK9DYK3JPCbjlqTBdewkzc R2nO672h1dzpQNox44Pr21G076kwcLnry4dXDy3R4xsciTcN/3LbibHi774PMoePlpsvXQi1m3S p8wTQPhgF0nXfkiCZkdmSAN33Cz/eOfEwL22JOBUn093WSJ/5V3FwTplKHlTJuDmER9rTq4XSFx m6P/QWmNBt0SlKImSyCEPXhWuoAS9MecYzOR+H0W58S+LeiIjgSgn+1aMt3e7ge4+y0MP0Rhcoc Epq/LCaPkw19+f0IpVKeBdYfpwjmNfQGFqJUY1iPuDycQ/LcFeuOGy2XXEiZyZTDY+bai0QPWiu LD2USq4ZePobKqp6k1pYSSavrhIHdE33DYHpkfYHdeEl0RefAfeoTAGN86LwjdTZIemBNw1o1mk TugLaXfI0DMIC1t12lQ== 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 | 212 +++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 205 insertions(+), 7 deletions(-) diff --git a/lib/maple_tree.c b/lib/maple_tree.c index d9313e63096e3..50e1d9f585502 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -2298,6 +2298,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) @@ -2838,6 +2851,111 @@ 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 >=3D 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 @@ -3382,6 +3500,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 @@ -4349,16 +4516,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 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 05:35:35 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 8278831D36B for ; Thu, 15 Jan 2026 19:38:14 +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=1768505898; cv=fail; b=haqjzegZqe/8oRnq5+QxMspJUWPiHdz4SfxvFeveIEIc7OJ8WZEkMNgfLcETy/ZNfUs+lXXDbdQr+zOVYBZPrdzsZ9O/Yymw/9h5qyBgccIWP2/mpR+65whEZQ7rLMj2rJJWUtIUtUpCC6SE8GWnkgAl4YjOr6jE02rnB8qoiCA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768505898; c=relaxed/simple; bh=3bJ0lfN+cbm4w3vtspKS/fRlY30fychjHTkpql2fDb0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=a5MqtDj8n14ErBZgWSo+oLwdxk7QEL16owk7Fag9yiK8V+XTuSHeVkriDe816cem3dbYHTKJUDN1gvtGewf7+yh/Bc28wleAN84Vq/CtDEs8EHa0ASvuNWL1Y/41LnWaQKxtdi+4vKLF3vZhJafKZ7eXAdEZ8tvk0vMY4DP7M7E= 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=JHgXQD13; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=y1WecIKr; 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="JHgXQD13"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="y1WecIKr" 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 60FEfZUP1940184; Thu, 15 Jan 2026 19:37:52 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=IilarVVpauxeno8EofxbrkiLGp+BwROD3y8GtUgzkrE=; b= JHgXQD13aXBTKL+dBHLbmG7D3/yfQ/qE86qQsPt4YcCIXtb1fbNc98Ple+ztRXIE bnzeiegOoG5zDRHKo7XrK203QGj9YUUp8EqUVCF0vMRVBSvOxzAVbgMlLs7K81wm Y58wBYbYoEhm2k4xHaPnLer5ycz+hLSf+YmtWrvxShRJrDLV1mklV6K1HSpJsapt xeJCSsNUzXesSb99ea7EKXDwXppXUASS/hOVkHydoelkAEC0tm1ZctirVH9WoPL0 XNlkPMh7JVLbYI0+ggxMQbiENmPZWlmjTfWhlkTY7P9ipb+S15fSV9CA7W8mwbpR VdBpIrrp0vhqN7Ic3ELKsA== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4bp5p3bwcs-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 15 Jan 2026 19:37:52 +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 60FHp2Jn033952; Thu, 15 Jan 2026 19:37:51 GMT Received: from co1pr03cu002.outbound.protection.outlook.com (mail-westus2azon11010042.outbound.protection.outlook.com [52.101.46.42]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 4bkd7bqnsx-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 15 Jan 2026 19:37:51 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=N26wCmNkwD7QVlT5sthZtka5KU4S/8T6AhECcEzbs2T2ayWjjiSRE6N9SUCneYJCNLK/UIlx97SfmOsMN4nC/YTS0Sev0l4cTSLJiRy9qdM1vS45UVAgkSQ9mriPh8KSoGo4rNt1ipVQlLdbc1w+Pgya5uFhD4x2OUXB/22O1IDn46snNUSgCQLbhb3b9PPg8rqUvj6QdDbUWdeUU37OEOA6Jf0B3cxXpPduX8P6diuZeJ6uYczg+QgDN4P72fNE7DzT2THkO1fpbyOyfmTwELYULPGjOwL2U+vX60kXYdz2+G5e2CX9lT1BLX/CMDAPkv6Ay68orIyXwbuFk7vroA== 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=IilarVVpauxeno8EofxbrkiLGp+BwROD3y8GtUgzkrE=; b=uu2VThrLDm1M+Q7ENr6TNijCxHUeahWvw6LbQYOAt13C5t8E9mzMBgTttLZ4HN+1mqX6VUAQJ/FHHjAINs0SMx0WEfl/WNS2W74NXhqQd4k2XINOkHI4OmkZpN8LDAHIz2DQ/AGoNdSPIdpWnF4F6Zuo5vmP+D+TIechOQaXqVl+iqajnBKNio7SIofxBEILEShbX3IflTVilzk96M4uxUaZ/oXY+LHmM3c3Hc1pZvNGU9jGDAhiuRgPuuYPki9YMWOcTOfb4q8Hl6UyVXhZWVk3MtXl61AU9xhOrxStJ55syh/oHlpfrF0c/Ptz4SQYmzY4WEIc2sdxYQboAiZueg== 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=IilarVVpauxeno8EofxbrkiLGp+BwROD3y8GtUgzkrE=; b=y1WecIKrlM0sleo+1Hjgr6i++vxGR2L+MOBYPPpJXCw6qSDbWhoznBgYgY8TUYNcGVKWDN1FVvqqQpITQxNRUWdGG5H1vm+f1MUaPN0/E9sIvTa2+QVXIViDRsLSJM1ipWUHMFL+mZ5Lts+WJfv8DMDCuSDesczqMmJeyS+IMdo= Received: from PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) by LV8PR10MB7869.namprd10.prod.outlook.com (2603:10b6:408:1e6::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9520.4; Thu, 15 Jan 2026 19:37: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.9520.003; Thu, 15 Jan 2026 19:37: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 , "Liam R. Howlett" Subject: [PATCH 22/28] maple_tree: Add copy_tree_location() helper Date: Thu, 15 Jan 2026 14:36:41 -0500 Message-ID: <20260115193647.1695937-23-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260115193647.1695937-1-Liam.Howlett@oracle.com> References: <20260115193647.1695937-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0111.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:d7::18) 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_|LV8PR10MB7869:EE_ X-MS-Office365-Filtering-Correlation-Id: 9cd2fe3c-6d81-4c86-94a4-08de546d901b 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?eEWkUq9hvrfasKlfeq2dK3+NM2Qlb/151MpyocFUO50YN6mNEtcVGXfYpIiz?= =?us-ascii?Q?SJAsMD5nV7j48eMGaMFKlEs/A55BENkEu4jSw2nWRLgEsOXjTrXlSfW02CE8?= =?us-ascii?Q?MONiH+F6+EayGOuv1L6OKp3gXKSlGzjoIxDfxs6q+vg2glKZwayKWwM+IEo5?= =?us-ascii?Q?u0Gm7KpnoMiKSNNchxIg1Ju9zZdHJEieIInEJWBzpPb09KUfk/MNjOZNKgvE?= =?us-ascii?Q?4tBF9y3y5eAZ+YYuHhmZ6Kuzjrc/vCXzQMMApncShpXbmiBIGslNQ6JAmRgJ?= =?us-ascii?Q?FusoWZ8RlRjZ2y2BPzXmQshsQ6nn5xcl+l3yINO2hzHloJfAyRnjZysPZgAS?= =?us-ascii?Q?o/onK5CK/LM9D4qcfP+UB2vwYiurZF4LFpQF75MrSbXlhmIbRAHT+ubctUn/?= =?us-ascii?Q?k6nsaKSNtnhw7oGyFzSf1gsakxYPY8k+mGtDvyHHarcJBivaPhrMxX9ESDIv?= =?us-ascii?Q?OMr06oD4fa9Gyyph9fdpZzDfY/WOcC2X9cAUnhKVoob6HWX2CAy8zzt/ukq/?= =?us-ascii?Q?bu7qNesTKVhw8Xxi/lkKlduNW6lk5lM8xNkUs5MDT5boQMJmgRtZw8TEbaYs?= =?us-ascii?Q?AikcMxHk2UOepC6rDRvN8RRq5A4A663iR1O6LsuH98yoUr0p2KUNa4k89Nl6?= =?us-ascii?Q?AVSzIY43DiCE0nH9IoMjSXfhsoK5Z4cZ1K/6Niiq+fvWnnGascOnrjD7Iso9?= =?us-ascii?Q?n5uY3tSrtcItd3vU/tKF76VX5U8ebhhlyVv2gUxdR07DfgU2z3htp4V0d5XI?= =?us-ascii?Q?ztWNBDsMq8AsEspgAfp+ZDm58xcYu/l75277qHQ272QYAffgEdOHdL+wLKa4?= =?us-ascii?Q?hFEYnxpr8IroZ58zRKLoCT9TcS49ZrMkJrj6Ks1tGlHeG2Oc1MMd3aH4wtQ7?= =?us-ascii?Q?bb3Zf5CBHrpaPOkJigQst6rPD1el7EQMJcy5HS/4t2+7+0u5if2VxKHt2XXg?= =?us-ascii?Q?Eio386J7p0lknlk0ookW7d2sj9V+UVkJ/GXCc1D1r9jIUIcTPzcqLn64ptst?= =?us-ascii?Q?Mx2l2Z9QLnkcEH0HFmbQsX2kfBHsWoNWKAfsQmxscFQcWWgnFBBSICsNCRyQ?= =?us-ascii?Q?jl/CKk6GRyanuiQyZot3PNAzqazHR4US2Vdmjb+y5/WYYF1LChuUovwGr5oD?= =?us-ascii?Q?o1goh+7EkKvvXMoDxTtxu/BpvrJFxaC4WDqXx/tlKUAiVzOuNptnahllvSOK?= =?us-ascii?Q?BTbFCOt7sn6wU/IPa7tm/EhQAgaKmwfYFDTdb8rM5ZaHoKM9ScVdUYZPvUz9?= =?us-ascii?Q?LCOpsWmHrSreygvy7/khCRkcS5FTCIsc/liHcACG+OuUNWAu7mEINa88ff6k?= =?us-ascii?Q?Vqe/rM+NpDLXu9A0Wfsmckz30/T5z/eAufWDYWQWduK++OOXJhXCklxKdTFb?= =?us-ascii?Q?S7GRpES9gOhG3U4h+0pThWPtpb8IanreQWGbko2oGOET0GozkEVPWP/bWG3l?= =?us-ascii?Q?tVVOjYvrsuJfJ2wi3JXiq9CYrfiov6ue6CHoEMc/NqzYaEUjzJM7pey1d9bs?= =?us-ascii?Q?wSThUb8XDL/9gWHB1PfnL7OoShxjzSopUATMsFlC2SELSo/i6qDJmY5qCJ6l?= =?us-ascii?Q?sEHFykmRobja/GIkovQ=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?DWx+dmjCAFjZpZxgO6hF0L1Q+5rNskuFnlIK3J6mAm1L0gAxlJvg1sZO55vv?= =?us-ascii?Q?G8CoKY4V/uktu1NUTOpFPbgk7qcH4ijzoXmiWM/KDVquvzZtdoTuiO2VOYdP?= =?us-ascii?Q?+lWyXDfrvDt+ukG+4pPolXDfUfGm7T+zqq+T4j68owy7VZlZvsBq0nFLTZCQ?= =?us-ascii?Q?zzGTcugE1rYACzQirYf1AkD9Y7l6ICusSFqpkOp4D/pJjGj+GuiUt4rmvmzo?= =?us-ascii?Q?T2C5Dm3IFIMPxur9r6edY3FHog03XNIyt72L7hXbzyOA4nNoaFg6nI5zK0SI?= =?us-ascii?Q?2dflbzJAlLO0J4pwFCR3xTN9e/hON3pFWZAxd1nUObcbcGNi5d1pRm9YKacU?= =?us-ascii?Q?1WY+95GiETnSgb3LrzfhmibmL7zhwlLGb2NKPfM3LtUVV/njABjWaAj2kDmK?= =?us-ascii?Q?rkc3aDGwRh3EP8s5Pet1NocE/+BTsQ+z13VBz5zJZJKvXupEUHitYk13Xjpv?= =?us-ascii?Q?3zeARPZ+X+wRSxP1DXqLwy88HyqhFWh0MYDiIHhSbhTLnXvOr54ATmAeviIn?= =?us-ascii?Q?uXhkh8nXdogvrRNuATdt1UQAl7IEZC2B2sKlZ0hWI+Eh2YmA8ffScaCzdzdZ?= =?us-ascii?Q?AEXO4HoDcgL377FZPkA8cao3t7QlBqIQpzmFxr8vgnlLHbekX8CZwU2jWlUj?= =?us-ascii?Q?rJm4u1Y2MEKE7QIamcyR/E3HSf+Pw3wLg2zq4ru02oeIeBGljssZvsWTlytC?= =?us-ascii?Q?c8e3cWmEHkzMkjK81CAJspP0t6FQVdMR/XospGc07UfAb2OMsc7WXPHRhZGh?= =?us-ascii?Q?Wd2vXlqstb+j+XZwsDsaCtINFce5p/+VRs9MuT7x9/PAyRLH9GGxp9eiFcZV?= =?us-ascii?Q?7uR3tRbO5C56w0IvwjLbcrGimtZjKK6NjbSE5nP2subqiB4nTXlZhp87Yc3t?= =?us-ascii?Q?Kr2UOf2C+CyJm8Uir3+wvyrrluCyLramOPAqv9l8rmWpTO0ha8U7h8mmdTWc?= =?us-ascii?Q?KjBBGAVD4VVJepnSrYGXwydmfZtMkPQGWJiYuHQSjobtUsCnZUTpaepwThKJ?= =?us-ascii?Q?nweoyxYJpCXlcODhMv5bXFDR+x+Dc2YQM/eHQqXFBA5OJ3oTGJVHQqjm3F4k?= =?us-ascii?Q?osGHqJr4Upexw+TMA9PdSkWOhmi0e7yWWcDa5kRANSNK3Z/yZo4Fdi8zPfLm?= =?us-ascii?Q?fDyvYwbxwvylzrupTipP86AfKPYgEqv3uGk0nVYL3eawHFgrPvY20d08Yr4k?= =?us-ascii?Q?VBuHrw2tEe8Bv3LNjshWv1d/g/sk9U7tLjjKNfczeNYBxlkGME6RIsu4RVyE?= =?us-ascii?Q?btZX+NzEDIH+lXOaMcrPBVlRg4whMnFz/D2f91u/oWA8pLSL3jpPJHQm5e0V?= =?us-ascii?Q?PGPrtATK1J6FXIr0MA1EyybRsgVMA/NcWrV2+ZAaOIT2Vrkya8NPZJHzGeno?= =?us-ascii?Q?u1O3eZOnKjUnJBh0R8XbNOLpdK5U6fg3OkpPFvYs6aDMS4jsKZhxJAPlu6QG?= =?us-ascii?Q?vngtbK9VV5J6NsQQdMaBvyZszehuyfZd51Kovu6vJSiTWZ35HI+jDQp2BCy6?= =?us-ascii?Q?r561fMJKvBPYSoj5Y7tH3fP8DZpTSsFSIpOiGu+KWpr6OvmCBq0GRrhAtMGe?= =?us-ascii?Q?Q3HXGTo6an3Dv4scf5j5cQoLh7RJtF9pggfX1EnrKjovXZnYmAVTEe31HREL?= =?us-ascii?Q?bw2BVfOJEI7O6vHtlBnb9iIphJZXklKtEBZvUesYCmtQa7mlf+JbybTtDkHe?= =?us-ascii?Q?c/3RQ4Qdn4d3xMgKNqaeIjm4qg8cmK5yJQ2LFgMF4PmQuqTsOMfOVbF8Lu8f?= =?us-ascii?Q?pmpC8rzOaQ=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: llmA0TOHPwNKg+F/2fglZqzaj0lUWtTAYG32J7fIy6HOhMJEQz4uN/llzc3sXgkaZbBOOYZiCTD3HdTiRtW3b+a2EnpWWt9P+abVclXLFaUnwBPcSSsEmBx6Jm8PvoLEJavwQ1GUAksRuB2IVSFPhqhu2L0hET6hJBw0DZ5llUPHg/Z6O9LHGXkc8mBseNKnMzIkMooZQvqj3K0PBTG7AVamFO0a6qLlskU1UCf/ZFYno/oPekoHKSx4sWbqAiWs0UUtXBJYmP8EISmKTB/FAFfKnJ34YCUQRjSl4ddvhPimAcY4gGOThSl1C6/3E0rcserWd5Zli3/TvzLom7CZIaqzwXFMcfA4MT/RHDUeoNAfwZfvsAj/c7C7AjMfTIWqRTdJZjx8WCyRKTClKBJNr9WJHLoPfDRq/Cp5iRwdOUyQyRqdLIsak8AH9ptsFTTCrlA9oPH6d74pTE4HjLv9O8J+Wag10dC8/GIZ8JgfXnG8wGJWks5MskVlvejaibFJAr1It34BVjWyAWg8fI6jisq88rJNeOsKSGdGkOupnq0Aw5Xz/0oIFfnBTVYQ8qySQSRCMF9ludzo+J/WsCQlT2xDWLLtUEGn8XoFTOwVWK0= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9cd2fe3c-6d81-4c86-94a4-08de546d901b X-MS-Exchange-CrossTenant-AuthSource: PH0PR10MB5777.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Jan 2026 19:37:48.0172 (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: me2AZ4bJ5jWtFFwh4WaIOx9FJjlbCNp3fVNbpLpZUZgv1Aq8pbVUY7sGFGSbXlXiRpBtz17pW5kXouz5DJSJbw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV8PR10MB7869 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2026-01-15_06,2026-01-15_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 mlxscore=0 suspectscore=0 mlxlogscore=999 bulkscore=0 malwarescore=0 phishscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2512120000 definitions=main-2601150152 X-Authority-Analysis: v=2.4 cv=OJUqHCaB c=1 sm=1 tr=0 ts=69694210 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=_w8VSrfIF1JFY7EYZQwA:9 X-Proofpoint-ORIG-GUID: XBxGufsKiOHt12OHh59a82DMj7-Pr0lQ X-Proofpoint-GUID: XBxGufsKiOHt12OHh59a82DMj7-Pr0lQ X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTE1MDE1MyBTYWx0ZWRfX54ZJdW5RKQNT vKjXRtB5LDYZ1C1RImJmjHNrReM3qsQnVgd7IwNnh2SZn2UDDKIA3VV3D2mrh7SoJ2Nml68cv0z l/zVAF1F6S6UXGsidmJziDiK4L0+Y3W1c1ShsxSDyTzNeq/oGTTmBp/wF7J3r4y8VZ+KQ0VNOq/ q6JraIOMSdvdEYnYDgXivsmqi9EMSwFuFgUtigqsaZSWesPZhjJ+mm28fTTRsMTjSAzPDkwPAgY Om1YWFgGL5andO0ysOczxOw8YNMyKw36adDmQK+jxTWMzrUvW7Xx1c9v6Ifb0E5BSwbUGA/zvBz T5OaexkuPE7VV/Lo9ReG/0xb4YFSAn+qNmmvSGiao3zeCCge44rFDJtidTGLz5LGVeCiFcTPjlA dw/gu6VWx2vdNgoFg4TpMJv0DxDV/AcvGV+C7eX15ev/j5uwUwGSX+HeXCNvPevC4G9N/fEgRLl RI9o4xXXJF6c4Lo7iZg== 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 50e1d9f585502..a6f4a1c8549b5 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -3500,6 +3500,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 @@ -3539,12 +3550,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 05:35:35 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 A002D31B82A for ; Thu, 15 Jan 2026 19:38:49 +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=1768505934; cv=fail; b=EUnzBdiLCqh2jhmjNvQ3EzqCdK+pSzXCwpfir9sFSv6biT+u+Nfd5P4UfL1MwXNhWBGA2GQM3FYZVd4r01kGj1vulboLWHCXHFWN2j9K8D8ZkFKdiWQr4UOXHl/g7SKk9UMWqA49nK1oK87SNX7072r0mD/GcyvUa8iEis2sv4Y= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768505934; c=relaxed/simple; bh=0MzYu0bI4TdT061t8JgkLKvTvD+JY51adtPNpJ4Cc30=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=TQ/U+Jhep9M47d5dUFa4mQmN0ZrBg3DPhCIMqPs6CalyM4QvbRMpRaG3tf0D2WNdyZQcPF7FrgYr88KVBlgY/2/E/i1fg9/mCIF5THflPXbVgh9j2rND18npj184GiGQG1XksIXKOfMY4Kg41kvmqYXJ3T0mNyGLS1XAQcgacJA= 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=p2JLYXLM; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=GhXWzxmS; 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="p2JLYXLM"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="GhXWzxmS" 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 60FEAZUP1940271; Thu, 15 Jan 2026 19:38:27 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=4BmmjrDOeW3p9F4604H3TcadU9lU9gGW3+zPDqsZOM8=; b= p2JLYXLMSLwHggZJ3s8BP7c3m+56RbujuDkt/RldB0jRl6RS8pN2t7b4Ah3xq5QU JUzqfbNovMduBYlQyTO2Ml4d+01jCyaCvTsWTpgtdIpw3UscgGYl6ZV3ffkfldnv xCnuxhSwITElxOE6AoV37ZzuDFxOFB3QI5n0pTvlHiVYtUj+wTZSJmvcKct96yE6 TH5dV8k9u9v26yQmkoqYCtVil9SrytQ6k/uCRo3sJXXYiLM734hrBz1vV6kFaiVh o/uEK1r3r25SPaft8+9U097JsQJP4t4EMEawVYVzqYFCJSeaKwMfiemHwP7Fj5R8 E0Jn9klUFQaaC1boet8yoA== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4bp5p3bwd8-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 15 Jan 2026 19:38:27 +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 60FIIIvR034710; Thu, 15 Jan 2026 19:38:26 GMT Received: from co1pr03cu002.outbound.protection.outlook.com (mail-westus2azon11010055.outbound.protection.outlook.com [52.101.46.55]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 4bkd7bqnv0-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 15 Jan 2026 19:38:26 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=k9h8nJ7sx/X/FK/jnLeFY3jbwlLKCt/sIsJQ4LJaYBeq/Bx7llrkB1eofd84kQbqspNAdbBZndSF1XvEyQZ0CuKGKp87va/rXnMowI9wfIUstTtjZv/6jxtx9DeufYNaem/2za4bOwvUSNNEiJar90tL4+NOiq1xF8b9vAnftCvxX8jlU0CwiIvGcmP//kbH+LysUl3m0/vF5uSDoqOHp/v77QIs0NPL/lpjSTYy1iYwq1zKbE/6KXOH1s1/AtDfzHMSEcKs3ShtZHFqUfzsAV4cCwQRZOnduclqxGAHo5IzFv050L7nwnWS3h0FdTCIxl9njo1R0uye7a7zM9d80Q== 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=4BmmjrDOeW3p9F4604H3TcadU9lU9gGW3+zPDqsZOM8=; b=uA2F94rxuVFIFQgfkx6ln68iqW2ZlDIjXMIskiNP9R9QZoUWuIz/RaA/Ecdj5vt9f0mUMx/y543r29ZWM3UJbU5zzfhVq6nyRIWgRC/XgEgwQe/HU0RM2owj4VT/IGgjhpROC5wR536X+xxy+OPWCvLdesc+0Wli0Iew9X71r3UtjfBaPHLL1AwkZFUZsbDEZjmTmSVuKrhWgvVGoDcvC3J2tk9TOmXK44PFlL77u4o05/+QnyarW+tTUEIMj1zZnVKMFYawUl0Vmp6DbBB5DdmidUml1GOCw0Q+m6DtofAfWwATca1MTF4Gw7BtLeaz9Sc0m74a5nNQ9dj26CJkEQ== 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=4BmmjrDOeW3p9F4604H3TcadU9lU9gGW3+zPDqsZOM8=; b=GhXWzxmSjOkKMpe/d+B5hk1zlSLGTZ6DIE2CUE47IR3pZ0jFJUpopGRwSYoasHLCyyLye0KrcDkVQ6S7rDQZy36nxpBaCBqz76Q1TDg+GmynzdDayl4waM8dT4jRKE0gm7fGL3EGNh6n1ZsGt+fdgdjwy1zriV+PIBsmrfPRQpI= Received: from PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) by LV8PR10MB7869.namprd10.prod.outlook.com (2603:10b6:408:1e6::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9520.4; Thu, 15 Jan 2026 19:37: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.9520.003; Thu, 15 Jan 2026 19:37: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 , "Liam R. Howlett" Subject: [PATCH 23/28] maple_tree: Add cp_converged() helper Date: Thu, 15 Jan 2026 14:36:42 -0500 Message-ID: <20260115193647.1695937-24-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260115193647.1695937-1-Liam.Howlett@oracle.com> References: <20260115193647.1695937-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT3PR01CA0036.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:82::35) 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_|LV8PR10MB7869:EE_ X-MS-Office365-Filtering-Correlation-Id: 475b3606-5ac8-489b-0a48-08de546d916d 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?YtK5F6XuvQfYIaYh8n8dc73xqKn2jMg7BtWfTuzzWw326VmRYkClNc7p8FJk?= =?us-ascii?Q?R2+E5TK5SZKElGClg1Pt9Y5F0mMb8dT8dKo+2IP2NWrD+pqUTjYY2U35OFuE?= =?us-ascii?Q?CLZJX/boj2L1wkd/C3GyvEQMyXytjCRswwDS49nWW2qLt210n2sIWCiIiLMo?= =?us-ascii?Q?XuJX/m87D1Pk8NxypfnZ9yPXo61QbUcE0Jln0zsqv8Zo6UZOxPtUcK8jHfre?= =?us-ascii?Q?94BV27ImjfvxA38zEDly8PCuIfypub5ETzJ9vL+WrWPDyosNxcrpPSV+fxlA?= =?us-ascii?Q?4xzlLlxIMdk54alyJC22q+S1YiaIS5qdOcs+8uhOT/TLDX8B+xuS2lFndUUI?= =?us-ascii?Q?e8AJ+NwOFxEGKQ1X8N5CqFCPAq/WaWv8Au55pkhXS1/uAGHNwasSlqk3k7I6?= =?us-ascii?Q?eWw1yb1ZMlkj+/2f4VTcyqzZtEAPHyFclAqt6iKoMmtVIA8kDV/kUJM9EwFJ?= =?us-ascii?Q?dPeDBtaYDyuYgkLcHbVv35OG3npY74Ghz/8eLlrI9u6XSD8ownBeAecFgP0u?= =?us-ascii?Q?wvtbVFC8p9BQJyJbKxGdJmXTdA8mYQFV8uU9eDDZXmGnjL146wwyjbKhSrTo?= =?us-ascii?Q?d7pp2NK4OwlKiIl9xtSh6YsGhOeZv3vlIJ0nZvPljrtWrbDB/xWIcUokofRU?= =?us-ascii?Q?N+1je/k98u452w3ag3a+hKb+eAyRty3FOCwZDw2Bkr6E0dlx6w+d6zL5ir5t?= =?us-ascii?Q?RN466DHqf8tI3K9jy+IqutnTpICBrqm64fQhgCAWF9lvtpwTroPKP69ZkpUL?= =?us-ascii?Q?KB/OTVE8RU+M/QM21CW6D05SKi9MLFHh3+pWMIkKEIk5WbzKWcUHLyvZKywN?= =?us-ascii?Q?9MF3FOuB4yXtsyo3BQe7nqWxQDDCoNcsvD6+pOi72zUBBGkCDo4p8Fg3isUH?= =?us-ascii?Q?rpxJOHX3FsLy+ymz1aDRCPq/Iw5xknxGRDXZTxGSrFFEWC/S5j20IGCCLFqT?= =?us-ascii?Q?A9OHm5KPyfEy//6JflQiM/2k4ciXuhMbrhs7Yh+gHSblP7nn2HWQEBK4tNBM?= =?us-ascii?Q?T87Hwdlk/YCNKjQT6pYyKVmAvAwn2/B0dCu9nNu8JU9TxAoMgnUpKaWJEoyb?= =?us-ascii?Q?dnBj8LoDVh4/wf1awIBgshT1oCM+cZJQMQkY0BSdlUyFhCDP2KeqfTSIjs5o?= =?us-ascii?Q?NnVnsPFVREs2apYjgenOsgypZJTxbvKkgWac7eSZjOdegVtMSgNFQmA7obWq?= =?us-ascii?Q?kxKW+zxwFvTbhN1Oz5djTxp4CnpX234rkLWrnawajcsFIKu6C+W1aIwvdlTu?= =?us-ascii?Q?gp4cN323xmtAWAxksWqgQUbaO9m1H1BQrgGTbNBPANDibXiIIPaG3LrYQ5uf?= =?us-ascii?Q?qbZzKcK8rMNRMt5sdBu3k7oXC+CUfiZT1t8WHDg/WsN8fr4RMjNYOp3gNqAI?= =?us-ascii?Q?+8noWHYfpFXs0CR8JVnPjhIn/VJZEa8K1lAEe/PDhrMGQj00w8mn3Rcq0S1D?= =?us-ascii?Q?5y0mVjjk5jqQ5ugAYFQoQ/YAAr8xxwfq8P0Ifqsokmu7+qMrjC7j3LnBky+A?= =?us-ascii?Q?2R5/lGvgnR7yQ4HXoBCU/kMyr9Ntnv6IF/3ge0lIjv5X/0VgkQQhbT9ZAu8g?= =?us-ascii?Q?LuheP+bUglAYC9HKm48=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?GekoEjh2bFlj4yZywIbjHxylWcNWdsWMHYbj+qEj5GxYSwsltxcV3X+MUdrq?= =?us-ascii?Q?9aS6zDPOR21Os/kyFbjgNrVgsRhJlvfu+PY0a3kFkcq+gxeXZxm+bBqCqvA/?= =?us-ascii?Q?3j4odbfTIdWJNaRtZCgpOS9PVdOOirMv+0c8eDbXIO9kKFtUcgNqPtY/8gSO?= =?us-ascii?Q?U1Ibtm1Rov9jByHls0bGut88UVGqyc3+JNk0M2YxUoQAF3p624xuY58kt8bR?= =?us-ascii?Q?PweFROhXwqwNuSG5gvWVVEKZpAkgMXFkkH+iYsKDv4KMhK2ygsF+2sDoUUgp?= =?us-ascii?Q?phczj0uXzyLulGSmxghGvP/ClUL3Nfs1hWGD4SLk5fC6y180swDXbJ6yGLRI?= =?us-ascii?Q?W1p0b1l6wMHplVmReOcTEAJTXK5861tAA7BNpqULCZ6I0HQUVwKUh89LVKbG?= =?us-ascii?Q?ttaNesxqtF1YJeCTXePxnNWug+TTSWmUDOB/WTMhfvfmyGeNuQ5mYRIvuaHg?= =?us-ascii?Q?4Nj2zOIbbdEz9D5Uy9fYYTNZ855xLLlFiJEtO7J1f+O1f3LM2lHMlj4N2fjz?= =?us-ascii?Q?cemnQgZKz9iECF8kv7rGp6chibB5+K0/rKQXt2iI3517cR3E2wXj4+TA3H+g?= =?us-ascii?Q?+QnBQhscY5V7dfAsqCMdTFjU6xKxPFV8UaNSwstnhF7r2ij90a0PPpMhbG/n?= =?us-ascii?Q?7pEqJX/OGuTM82FeYEZJ1JEQJ2O1TcqbiyW8BjJuNYlnbdZaVgNZlIHubBZe?= =?us-ascii?Q?mJvw9l+IiP11p0sVCd6Ehr1Ft+8g0JKOtQVjV3cVNyJag+NtRaLKywFirIXr?= =?us-ascii?Q?mj8pKvi6AxSR4yBQKR78FLM9jmFc1WVIWn7M03YkWd6ASxP1sdCAqr71bajg?= =?us-ascii?Q?0LHOL4JpN/P+yq1rcJrlfjBXI2iI2sxOL3iJjn/aKE6rrziZv8x/Jt8hGZgI?= =?us-ascii?Q?ToP5BukNiUGTDi8sDZpo1EMCk8AE5in4bR3nKtc8UTN9KdvS3m/+qHCdFdNg?= =?us-ascii?Q?13Xbqk/aqjmq6MESETR9jR/SaMzuM8VqYrseyxAKskqfPTpupU79zS8SegER?= =?us-ascii?Q?X1utYSNNKhX2tzxspqG+QQvAY4H1fSKAMqNyN2Xhk5rkmkS41WMHxmMvgAu5?= =?us-ascii?Q?aPWqsBp8GT3qx1nze86R+hdhZOOJAmpirxG2+rdNhPbKyOQXXvVji3MMKXJ+?= =?us-ascii?Q?cDqsIW6EV9JhcqHdcG3ULeBVXlWnCAS+w3mwHcMi98B1zNJZ3sCeTEwHrFmI?= =?us-ascii?Q?ZZC41fX1ksUz7Un77v+nnDVaerkLJWz5jAJLaCzaX+rYFEwaeWDFJtz57rUr?= =?us-ascii?Q?sXVxLJjs6SP9trZpeftXsLMh0U5sUkjECaq3C8pCChecjSd5JGbMcWRuC8vJ?= =?us-ascii?Q?g62wNatjWQJLg1O01LgooF2/zp1dnEzRqnI0Rcg9Ap17wo1hjGCqNfkeAENo?= =?us-ascii?Q?AcV3zQi7dEJaujPHxCmN+0xHREEHeNW25lM/E5hAcZAcIodlle60RCHt45eU?= =?us-ascii?Q?1VCU1JGXXn9Kaw/2jkyIYpxYkS3Rcinm9o7JQggKWcjD7KmBKo4BRQ9kbTXR?= =?us-ascii?Q?buqFLht3kYKWCHLepD9P7AdNDbsmcPzlJQRaH3Fk7R8mnlixf/pum/qD/ukb?= =?us-ascii?Q?kW9bZqraa3dNI0Q158XDV4eal2Kkc2WYoXpIAFAOkZtK/CpYKOg8mtVK3eDC?= =?us-ascii?Q?/LWKzl8Zz6cFWCVgF2eVrBTEJcUcpUp7JvM3pgyluRPpFTh5X24GoSMTrBhg?= =?us-ascii?Q?MxFvtIzyN0qVL01L33TcMf0dutaLYPOwK4Fk6mhDapP1Np6XZ6wMLAJ06ca7?= =?us-ascii?Q?272chUxM7w=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: WWF+WA+XdJQxj+4baxmV6FSwLCJi+MFpxgCuA1aPHBsYkfQ5mId3TbnMHfkHTijIMIVObDMPkFbY07eYi9sC/qDe7dbcfxodkNd93dkaF9m4jWz7RSEOtp8XYCuEg7rbBEdz8r8V4kY9kkr7stdyJSJa6P4u/nRwLzYFIHP4qhkD+xEznf8/fuM1PNRMSFUIP8gRSbxn4XI1I0paNLs3MnU+prRxxra2BIdDj7TNHWSsaKX33n7ENyC0wm9zPysGiFLska5KnSatott22nv4B8PwuBJNAn+A42WBRdniNNbP0gffNs3JaBcYBp57eKNR4DtgOfSNDfr/Oh5osoY419dH4G4jd49jEFmmqViS6Vq7Nr7VB5TkEs/oO7wwHlNYTgnj4sV+26b9VOuV7Y4PxOr5V8jMtPb84RgPHCc93axHgO42JDMp36Ql54W7javdMKzwoH9/88V+9eOYbfPZLUjov3h6oOa2b6McZGryVYhXqB/MCGHvzqp/vXZRN5gK/T7U2yRRJblzxJPI5uxzKACmoVH48HnD1vnltks32HJoyEHSW+hSfzAC7LsJNpR8cX9AQqFhUlLE6Ho/4TO7YSdxtmLLL0NEsv9hmKUnwgg= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 475b3606-5ac8-489b-0a48-08de546d916d X-MS-Exchange-CrossTenant-AuthSource: PH0PR10MB5777.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Jan 2026 19:37:50.2128 (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: CAmWs0bDqhVDk+oDb8Xs72wZf5HjN/NNYV74iC0mdIR2ClVrTuGvdhBOY1H6yzoBRQkUtaJW72sqkZzShQWH3Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV8PR10MB7869 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2026-01-15_06,2026-01-15_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 mlxscore=0 suspectscore=0 mlxlogscore=999 bulkscore=0 malwarescore=0 phishscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2512120000 definitions=main-2601150153 X-Authority-Analysis: v=2.4 cv=OJUqHCaB c=1 sm=1 tr=0 ts=69694233 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=MoTMpwtd16bSVnSR3GwA:9 X-Proofpoint-ORIG-GUID: r97qGuFoyKDNQRQ54vEBgoIaz4QJEU3p X-Proofpoint-GUID: r97qGuFoyKDNQRQ54vEBgoIaz4QJEU3p X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTE1MDE1MyBTYWx0ZWRfXxX06mpMo/wGZ dSzvpfR3C7VKknZmX6Ax3QiSIhSlrc4KHDWWF1yxtZ106gP5HGo5o8tW7Vgze7cu2HBRmFPxEoE 6Oqi95lID6Kk36uB+XYmrF2aowGOs0noBKMQ3sFiIbOi78luQKxn2e1QefxSp307TL6HqJHNKrY RWvj3GUd8eX/LxVjnBXbXYa/re9khgE6as7yw098wSlPRXEuYRATn8ZZ79AjWTME28z6tC8F556 l9kV9x10Xn27Kn8puNrhLLaPvVvFLc6c7Tz/J5TY88T/2gUDVXQRgmk4eKR1CwgvEjjwSuM79s1 yx86bPD1dmc6nFxmsJHs8chpiOjoyfZ4bzEbr6EuQ7o+Okfza8A1k46CZMf8PoBuyyHd3ZACIpR obVL8WNz3YUIpIKV/TcyuuwCoyIpbrYLX/k2wKe4DTkyAH77XnARWpHAgjbtiW8hcvHX6y7+alw KeAz6V7txtDlRN9C9ew== 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 a6f4a1c8549b5..46daa1ef32084 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -3462,6 +3462,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 @@ -3544,10 +3554,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 05:35:35 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 E766131A7E1 for ; Thu, 15 Jan 2026 19:38:56 +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=1768505938; cv=fail; b=XEFAO8c1sUF9Ov2ThGFqSVgqzDUIJaGCzH/VIVc7X6gKa/htz7QYtxFr7xehB1AMy/2eIoldYeKNr1MJ4yGPSHgnbnmJBDNzia1MGlW4uI2SJerU2MsO51DaBOQGI/gdi3hV3o+wUYJh5Dq3wszTviUQt99K6WG97XqgxUXT8j4= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768505938; c=relaxed/simple; bh=GvA57Of8uix0fcmT46zSzqg/6F3MXNTS7Mgv3JrrLHY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=IRuOJVmlg0hcCAuLR4MNd4yC0rAdxOvUaH0aEdciv1G0aNQd+I6lXV4TpHVsr6Pq81MCmoLVl7GIjrfCyXR7Od3YBkpZfOcnKsz/L5bZmh5AsY0X0KOw0mP9bEjcdYc21qZvDNxKQ9+BVd+/iG2rwtG4bwLyAUQbL3qYoFd+sUw= 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=St/c/IHw; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=IRz8JLP1; 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="St/c/IHw"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="IRz8JLP1" 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 60FE350j2753710; Thu, 15 Jan 2026 19:38:28 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=7Zdsmbt1gZXW7BPihaPP/9BjJd+S+LJ5uM30ogdiMPY=; b= St/c/IHw5+EcakTVN2BKZsOgORfV9NvDJUWGVMKYvemdLgRJyWuLT8agNPTSmEdN D2b5lY30picJfmFBZ55GSdVnQRmr9J7srfadxMmW1u52qqV7sqh22633/oJoZHQz O5SCxD5ZfFMMgr5bWPY60F3QseroRtuJlQWgfUvamgk887zaaqoF5XIEajgen850 Hp1F6WjRJaUwDdJlmqgtXnTsmRrICvpfkL0ZBQGiTFX48kAaWkCvTGKdmrUd6anm ySSnk7byswYFu+3kn1Qz+qViUb3H+kA14zM4JHy5AsZ8nUp3z1qIzh1235Vq49ks UKH7T/fPNGy6b4GEwzR+rQ== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4bkpwgrgfd-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 15 Jan 2026 19:38:28 +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 60FJbCBP040448; Thu, 15 Jan 2026 19:38:27 GMT Received: from ph0pr06cu001.outbound.protection.outlook.com (mail-westus3azon11011033.outbound.protection.outlook.com [40.107.208.33]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 4bkd7fgmdy-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 15 Jan 2026 19:38:27 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=e+svUJeDUSRCH3cNthEvk4uoKRxY/Dk2GFnxUR6VxJ6JoIUrg+EFiPzZKJ/bS56c7CmKwrEtdbkCR3tufMz2hVLADJ8ymfR07qC3SBWh9Gucp8yV1OYef6zaBRfk99V+GWXD3UAuIzTtcO5Pq2gdZWfcCGg3+UHC5XbmscM35BcDEX1oIZ9AifKt/QwPrj6LNViY/i/T8iEJfIba6g/xrPeRz3yOJfHnu7cjrRQ1iEkKktRqdsHhYBnyax6Iep8XfQUmWtONuCESnlc57locrYNxJPOo91xe4sZyOXLiOT2kiDnrAmGV1NRMIsY03V3VytIkEvK/Qp0ROOfD9b364Q== 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=7Zdsmbt1gZXW7BPihaPP/9BjJd+S+LJ5uM30ogdiMPY=; b=yAZWJvSOdSbv+xYOZi/Mrv20EESVHZWpyY241nEOI+SBF8AAaN2ZV7BYns6XH3v1lg5ZlPJ8SSnv9UFvS7mSMqw+mPCGct6L9xauMb6YHLZoSfug8oIoGY8yTh0GRTruFAqG3BVCZTBI9kfNN7eYsFzX7WZxoTV1JIQTfIN7vgIN0GRjBLepVvAcY/HV8C8ENMraykTyJxP4GxQ4Db7bX3UzFF8AiRTZvRzb3e6IPCmtsFI9y/P+c4jW4K63/Z9maA7wWkF2Sm+RDwxTyL6f3iV+zucDbC4Qp4Hbr8qNLN5MfqyOcsyE/mr0tbQjlRh5erF9Jxf55+SwWzDZhCMHzA== 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=7Zdsmbt1gZXW7BPihaPP/9BjJd+S+LJ5uM30ogdiMPY=; b=IRz8JLP1teM0J+NH9LJ7l6K9AKCqFsW5nh/cv9Mwqu4e0DhY3LSM8HKS2XA3Du5PSyWgWHGIiE0loFCRJ1ruossT2jMCdVHADbX4QaFEhN7M5Q8i1P4CPbUSpLWyKXyw0s166nWZyAf0eYaeuPIYJpVKUmaFvI1o+vsguRODiZ0= Received: from PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) by LV8PR10MB7869.namprd10.prod.outlook.com (2603:10b6:408:1e6::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9520.4; Thu, 15 Jan 2026 19:37:53 +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.9520.003; Thu, 15 Jan 2026 19:37: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 , "Liam R. Howlett" Subject: [PATCH 24/28] maple_tree: Use maple copy node for mas_wr_split() Date: Thu, 15 Jan 2026 14:36:43 -0500 Message-ID: <20260115193647.1695937-25-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260115193647.1695937-1-Liam.Howlett@oracle.com> References: <20260115193647.1695937-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT3PR01CA0123.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:83::23) 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_|LV8PR10MB7869:EE_ X-MS-Office365-Filtering-Correlation-Id: f34b719d-2b64-4f14-b7b4-08de546d92b6 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?4leWszX/QU95Ttr3x9/K6iyW9Ky4KXACTEYQ1WmnEb2E+H4kouyYjzYeJBR2?= =?us-ascii?Q?Uq+yQRsbbRWOztnOnabiegQrLSJ7EUMZJPHGZNltf62ngxt7Wkqh5OmBt135?= =?us-ascii?Q?TEXtTtbhmn7Nupo/S7XkF84VW/yzSGbbJHlFladrmSGk9fDOXD2f5pEo3MVJ?= =?us-ascii?Q?2hBXds65W6LmKapd1DfWTWvHwE/8N9UQ093F5mMortP7ELPc2HAmwbOnc82A?= =?us-ascii?Q?AYNg3b/98JNGVIFLpUrWkv9nh4JMLuVjlRd/ymWj2lZ+ydlyQnHL5Lui3SQi?= =?us-ascii?Q?kw0SAAl5kerxhY8s42Y3yDcGSQTPW4VTUaWAeMxuP8+cCOEwY0rWH567Jr/b?= =?us-ascii?Q?Pc2Ta3LA9RYXWE+t7Bgmovgp8c4oeDTNTEYg4IOIDRVBxpnrGVPtyW9Df093?= =?us-ascii?Q?esndbOhIY9x4pqQY8z9rgKDhwrwHXXabxbQj6aju/+CLlpyu3IuCpQ0b9bzW?= =?us-ascii?Q?vZRNh6pSKxD+K51ibnukjbe52lrJbay2pkG/XeXk5BygG836tRt2wJtIx1il?= =?us-ascii?Q?Xklk/GXHxdNJ7yYrSxqm9SWMcg+QTu/47zzuTuUczFVcFjIcs1a+c7jEUS0K?= =?us-ascii?Q?KWQ/6m+9ywrKDmDhwi42Zhc68CXQ1/a49FKf+HfaleWemK0GNlye5zzf0rCH?= =?us-ascii?Q?t16oc6Or6fv5x6xEbDR5RVF32UM4UcS8A2gIpmNZAg5aB7747+RGjw54sg91?= =?us-ascii?Q?0xszjY9SsNYKxVTK5EsYm3edbKHQj9RGmDlkE8azfRslxVOlUFCio31UaDId?= =?us-ascii?Q?mn0WrTVFoxtL6oja4n6hnRm1oMAVx1AbWLCjh5AYwUsoZXTU9K1aJF6LBTwV?= =?us-ascii?Q?8EQm12YhuDOcl5g1Drx/b3XJXhkiPN1p9TAJGJyAEGDFb598iFKx+Y6SNsb5?= =?us-ascii?Q?115HG/OhFUKyXaSX40TJISCebMfOPSy7QSaRsMv6/99eHpapCg9l7NxRNSrZ?= =?us-ascii?Q?nH89sUt+cflcT9EPwOQ/UUvocUdzOFr6wBF/U7m5cpXLQMzfoWmJ/gb+aR0j?= =?us-ascii?Q?t1tztFPx/CNjQPzqHfH1mf/lKjwCTZ0o+tXruqfivKGVSJ12LT/bC45uSNDu?= =?us-ascii?Q?YujqZvyqYsNp5yStgVuYycmKU4WL8Arb7RTK0VnCIjTi0B2XA3RWtSsSB3VR?= =?us-ascii?Q?hosszYyLg8zxA06sqrhM8raFGTEQtGHNxsojA+1us4xZKMGjcqx4hUn/1D5D?= =?us-ascii?Q?FdTIuHz4sJS3Y55eLrYgdJtElfCOlaYElg5/airJxtkJjMNw1NYTNFfWmVce?= =?us-ascii?Q?QXcruGKw/6fX+lypQ9JkRAeTJI2Vxj8SjYdr0lWfddkDlpyWmSaOpeISfeip?= =?us-ascii?Q?ih7+R9t/cfu3Rr+X7/NZQpoEAXmHfcmPgDltzm3iF/SLorsowiSGgdFFSlsz?= =?us-ascii?Q?VoZYxjRTwWxXHBe+snm6KZWM4uYLu3XK12mcKfyUtqtx/cAKIJuPlHshooxR?= =?us-ascii?Q?Jdm0eEuMV9ikZH03o2Iv88iNKkkfM7puur7dnAT5amXj/69DSTta2n0bj0f9?= =?us-ascii?Q?kSr0A5EcH2Xe7+ha7E37p3gIAxCPHapnIaI9SD+bF5p47N1/oW6J/oVP7Nwl?= =?us-ascii?Q?5NEIQTvWPyRLaPi7ai8=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?x0OFd92P6uNdyGefLoyUIA9CPvn7sR54bOb++MK2sHa4LOZ5EHmVKkmiC906?= =?us-ascii?Q?zEr5hqB3LWA35OQdBR4So2kH9d6lNgtryUDQfDpsmv6rEWWPQMQqjuhoQuid?= =?us-ascii?Q?LZ2AaNmifKKxOgrGaALNxYL+UMrm6i8rdLTkw0UGB/20dPeJK3XeHTac5Vb0?= =?us-ascii?Q?A2uy6baqwUXEROj9iy8iM811krYuJ5kelQpaQaz5kO3iYa5dA57sWpkEKHWI?= =?us-ascii?Q?tiEiAsasVQklgRN4h6OrrlEgY6JRD+BGpQ1MreF3B9TNEL9/Y+mOSSfBduan?= =?us-ascii?Q?F5BrBjQmGgW81cxbjrk2cLjWJRjhrZR1csYDt4Kl+6LuMcP0m2WtNRziYk+O?= =?us-ascii?Q?XrCWqZwpjEsLBHGYWjsiTINk2GK8kO4cCeATc3pOjfFSkSgwvub0f5LIkROO?= =?us-ascii?Q?7pPVzVnjhanAtRy1gYE4ZC/P9UUOcDE5d5XKmZYqyR1qO/r/j7mm/JTmxpM6?= =?us-ascii?Q?3jwDzQdvapG0YWvQT2rwJMCHqi7VnTLPrIJotU0Gl8+4bSVQuQZIYREpAH49?= =?us-ascii?Q?biqcFeaNk36lIq9aJ48q3eB1YX8p/1bbWwkVdZOmpMm19x84ttWomPWqvtL6?= =?us-ascii?Q?eUfgIyQ5KrDbIoNJ/Dd1IjBX1O37I1caJ1lco/aKt8FqKXAgA3QqhgT5C9ad?= =?us-ascii?Q?EV1mfBU9YWRg6y/soPuyfEERUyt3uIQJ8yt4ZTmeMv70HasbUP5o1GMq+uUo?= =?us-ascii?Q?zqJs+PAU9r+Wwp9qd0vRfrRXvFYbmr1D1NPyC+K9BcjGJj+WhfFEVtOlHSqS?= =?us-ascii?Q?eI/AJQYIOfOOLzm2vkHg7r392uln4KDQLndEtCCVp820KIcxcDBWtWm7QjwX?= =?us-ascii?Q?1fqYRGNSnot2LBVbg9NpjY3aQUThK/htlM6ccXWuivpU6dwBYQlDkpbwD0/2?= =?us-ascii?Q?al+i8LrMgmxXDHK0RuBAzhEFY/7wL6bX5NuQV6EL+o56df0t9EbmGCOn6VOa?= =?us-ascii?Q?ZLrdMYLwyC9egxTk+4n3c7+sLGPBDTuxdGXILpcQLJ97/XQD8N7hh4jjIwyf?= =?us-ascii?Q?yWJmR8NNCK04Hg2MkCKJkyoebqpu0r/Cwr/iQpogTdpQuiVCEuOazJjRZ0OH?= =?us-ascii?Q?BhjhbbQ8BX18wXjAq5XJqoqkx3/v0dDD2kUtRN+ywjYwJrS/R6SAMWQ+/16k?= =?us-ascii?Q?iET+Lxq/4iCx1EXDbZhssvf9lRvmCOfvnX1qM1E0fmhxhNpXBrq2+j5fApm8?= =?us-ascii?Q?BtMoaN02Htm1CNlGU2y2G5Z5qE/mfdQcv2H60/rAGCBVzf4hsAhl799DskQq?= =?us-ascii?Q?sXS+r+HVW3CJ1M4069FK21gBEPIHQZnybd+OqpuUF1fMSAmGBlleOCJU8QLR?= =?us-ascii?Q?OiMs/SE8r8426TEIlZ9yCfxd7Yr7qMou0I5d2+WMRsF0rx2ZGtHPAxbGbZOh?= =?us-ascii?Q?WT9XU6OD7RaaFP0R1Z7fmE0HmBsrVlqrxp6+QSwY2kWe5gfN4+9emeP4z/gr?= =?us-ascii?Q?AHhpDgdNs0hUFyjAPe/ZcOGkVyCUvR3gogR3G4q14je3Jn8LschU4lB47Pn6?= =?us-ascii?Q?/FQAnrHoVoDAu09DCYFnZ0zuvscDkDMfqqxqTWVRa9LJKtaOxDAWYCx7RQn+?= =?us-ascii?Q?4aMsxcQPmtJYZJB7BiX35ug3hIvzabjvQjOS7/MnqpNWlXH+hMGS71hWiCFL?= =?us-ascii?Q?AfFbczOHBcjiuK+S+oOj0zOt7+P2j17BoGyzq70zcWzwIWJDqcekPTWr4DHB?= =?us-ascii?Q?E9wph2i+adkQVkc9YL1iIRSyYc8VwbIqSYJtCtbPampsImKO0VK7TZmUaEoa?= =?us-ascii?Q?nh7kZfXLbQ=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: RXcJX2cWx8AjBGMzivxEDQtk+TsgWc8YJl258I6RFTEOKyRC6QBAeGEWZTvs5ylVWenmXulyu02r7CNNP9ifu1LszF9ZAjk0MNug8aKdSy8DgUA2qNadNE/nt7U6alWfIqB0yDbFNQFJX6ma67lOPeEwzlSwWG6KRNT5I5iEaL8OGFXRgG//BBg0Rkbw7hIu38LHVJeyL2rqSohWa6fubBoglDNbE9jpxGj7PlE9xFS9oNGRvpNtPrbwKmK0KtBDReDQpqneFN4ssPkDQ1e+T7hYwwCesH4gir5fQ8xum+PpkcOyNbJ17ehW1jw/NnZHqoPNgGD+yyuDoh/FoZoyuF8+fy6Tl3ISV2ARKhNGChw9lxw9NOwCPn/hJ7ug5BNKiJIEtHbthGTDE/rMKQyPYr7JYuMdOyzdWUs7lM5tUnx2ArRTGsHLwhk9XHtLp48FAd3duq4J0LpaFfFkTQ4bjKBHPr5yUlGOJUMFsYUDzMn+T6ITxu+SCIscBRVtMnyzsuvjEVQKJRIcOA7XQlk2LdLxLdsKmB2jQwJHTdnPpsWMSRh93qvfUX/LNxmpkJphtqP2d/Xu7CvamYZByCMr8XeF4gmdk4vMZzXCJVAZ37o= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: f34b719d-2b64-4f14-b7b4-08de546d92b6 X-MS-Exchange-CrossTenant-AuthSource: PH0PR10MB5777.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Jan 2026 19:37:52.3908 (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: jZsq6Cw59Z6X1v/iY12Gozx5X8gb18Bbp4B817s1Fgb8aY8jdGApNM9sk5CPdXxlvZdZbTgU/6zaL6w99LJlDw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV8PR10MB7869 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2026-01-15_06,2026-01-15_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 phishscore=0 bulkscore=0 suspectscore=0 spamscore=0 mlxlogscore=999 adultscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2512120000 definitions=main-2601150153 X-Proofpoint-GUID: DPmJ-f9FCumMkzePQScSQjinRht70-Gk X-Proofpoint-ORIG-GUID: DPmJ-f9FCumMkzePQScSQjinRht70-Gk X-Authority-Analysis: v=2.4 cv=ZtLg6t7G c=1 sm=1 tr=0 ts=69694234 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=tVZdP6cYBDUjvyGzC5MA:9 cc=ntf awl=host:13654 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTE1MDE1MyBTYWx0ZWRfXzHX6AAJMMqdX rlKyM1X0p8CGgaIX02btCVrxpRAVhDqiASpjiBnBlDnXCdahRHUywLW5chCnWiF8kSLn10WD/1Q Mn/sBUevmCujlVZHW4p7aZXftFKY4wrYq+eib/TyLsPmEYBsVWJ6oWpvEzrjLIhBn6xop+ty9xZ ETmy4IftJwn9qClkDnLNWW8m0wh0ZW9Wcyz/lOROFHVQOvxfs/G+DMKMv7169moxU9o2AThM1tp bVozT4YsWIFp+ow6aRrZdc/p66E51ATe22lOTHjXIF6Vm7MStgBcvyq1Q9f8OgD3XAT5i43Mbu5 pz39VJwiWmXZc6gq2gbxPrXYyd4cfMVpAO7pUsaXPZ61EP0M2361FJV/NvympaCRD32e5VOa8lY lfm+4FSe6yXyyV63YsqNUrlkpHB2PgOrOdnIURJwmAjBaocu21Xe8HY5GzAbf3ywRHMr9gprYgO ox0RnHYkeWt8nNlP1S2H4RTe5olDhVI2wocJx2S8= 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 46daa1ef32084..722868812a738 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -4511,19 +4511,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 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 dfd7099f0d8ef..d1c3b8fd83405 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 05:35:35 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 82D6F31AA91 for ; Thu, 15 Jan 2026 19:38:52 +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=1768505939; cv=fail; b=MMkBifjfRbE5jI2tbTWITSbfdAFl/4vQWOjTpFFQj/Hyxwc0hcRr7L2eUwrUTHrNtSTy59NtLsJ3Edz+YJauCRmpRWfDGZ0B5CAYYoMq2LRrDkRGWGtE6meCqZcu4YqxlehfYOI0zFEb0eAAL79PgQsLk22ZxB4KQvOMNXtJJ8I= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768505939; c=relaxed/simple; bh=I2WDkdq9NQJcuZICX8e6HDzwKoC93XnuFWlibt+hQx8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=sj/NeF0HlQKaC1LgOMrKoDxndoaiP7XHigPkzb8gy/xlLdLo+L4YzurTt8ZbeQMFW9kgUHgzTRFwztIHYsPPPzgo+ghjqG/jR09BDgw80jEsYiI3EQFIspG8Hlw2X69oKocsEUGcNFYBwVdxla+6kBiHUgWw4Z4+AXPRIv29vRI= 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=ixnHA8YO; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=Oba7DROj; 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="ixnHA8YO"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="Oba7DROj" 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 60FDjtMZ2863589; Thu, 15 Jan 2026 19:38:31 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=zXYUE6LfVDFqYZigthINU9Ci1hZbisiJsdNMcwYbXK4=; b= ixnHA8YOFCRVmG/92oKVqT2HHmtb8f6Rp6G4F0L0OGyBR1zc5Nhaax76pOE9eIkK WKK5jBkZLvfJbNMrg7iaXFG4PdQS0Ht94rm2AbyCW+x+WSC3RI3wPY7nkd0Ueyn+ Ap5fnXLmubVXXoj7eXjgTIpnyh/K+ZTX8aL6izgjmJz4FhcyM1/8BxbaxbeDQUNL k8W3yGM/Wtv78mIJ39mvuP764qY6n+70zOM1QxvgzysCh797G9Elgt6qmX8DYO9i +h1QtZ7yfgxgUr6z+UhfEIiYSPWbCA07yprVeInz8D/dsluqaGXsss8We8e9rF+8 XHE7KFosinm28lEqnDi3sQ== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4bkh7nrns5-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 15 Jan 2026 19:38:30 +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 60FJbCBT040448; Thu, 15 Jan 2026 19:38:30 GMT Received: from ph0pr06cu001.outbound.protection.outlook.com (mail-westus3azon11011033.outbound.protection.outlook.com [40.107.208.33]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 4bkd7fgmdy-5 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 15 Jan 2026 19:38:29 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=FtnlMeSpDyfsEeOPbgaKbMpcqr/8Oh2sjSSk6x+KYoOuEMreVPelfsgUC7pTD9pUm3bmBt4njHOQKR059BdbE2dxzLpUg93R4CnGi6WqQb6vgubKh/NnvnVJsaO0aNCXr836xws73838CxMqO/zwK2wl0wVN5WcpltUarYdqpGioXFXhJwpeUpKuljay6BaMrKIO7t4JIQLZeyx0S1udK9MzF4PyqzEErD6alu7ix90J/6YQdaYvhZrHhL/L/yB1C63216lZGfSEfztWvCClrIEQG/Phw4J1oyDgLFwSK9tUvGi1G3C5r4KPjVkV1A9N6duEcgmNocAJAtyUcBfhGQ== 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=zXYUE6LfVDFqYZigthINU9Ci1hZbisiJsdNMcwYbXK4=; b=HbMIV61349+ZUKeHH2qEw9gmXwQGjAOnwhEyJzJf0nDwOr0J9bKjFKURrqO+Ia2wW9jl4B12Q6JoiKtszRqK22Am2wJEfxz7kuBh/raoc6ncbKQdWb6acKtTRYEnZ4P1TPmEs7PVsVMDk2Y5a5pv0W2554md4ikfpRFJz+NH8Si0gv70ajSbgdFfU+C1KlDsR8NTQO1QSPJZZBmTIArJpvHq4zNZXoH8pOLTAtli2k3ZPfLYifDH3FqyhNZqolv7GjzgRHvlI/hO/QOQmqez4jLcVlsVvA+++JoZegxlOJGYtkmciEocn2Xkp+zdm3IQtZMMw7hyhVEfyVUV6y7o9A== 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=zXYUE6LfVDFqYZigthINU9Ci1hZbisiJsdNMcwYbXK4=; b=Oba7DROjbp70dJ3SZRrDFx3jyOuRzU83lTxn17tQB4mXqttAOwD4hBvKeqHGgm8ffI8sMNUipSAA7TYFCsDp1Mr4Lh1APlcHixwVNrZx2CP8mJlgufpg00bO0x84R7Kp+J4VubK7LGCG9UW2BaFyP67AL78K3XpCATSfyhD+XIY= Received: from PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) by LV8PR10MB7869.namprd10.prod.outlook.com (2603:10b6:408:1e6::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9520.4; Thu, 15 Jan 2026 19:37:54 +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.9520.003; Thu, 15 Jan 2026 19:37:54 +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 , "Liam R. Howlett" Subject: [PATCH 25/28] maple_tree: Remove maple big node and subtree structs Date: Thu, 15 Jan 2026 14:36:44 -0500 Message-ID: <20260115193647.1695937-26-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260115193647.1695937-1-Liam.Howlett@oracle.com> References: <20260115193647.1695937-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT3PR01CA0135.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:83::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_|LV8PR10MB7869:EE_ X-MS-Office365-Filtering-Correlation-Id: 67a06a35-7e3e-4580-bd43-08de546d940c 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?OY1Z9COb8KCkCivPbXrh1WQA3qSG/OzNOBsYusvcDQOROxAMuMM6S24GQlVf?= =?us-ascii?Q?QZ31wcptj7DWze5XRzI89S659weIuQDKmnpfjHfj2oQNcRwqaAxOx8lOmpMe?= =?us-ascii?Q?gmeFftNAn8j9xsIXux3uLUtN9yftQb26Fwx5qdXoM9veVAYUvaPOT9GBIwCe?= =?us-ascii?Q?N3wIS3wsf2+lI1xKEpLm10BLXR7dk53K5o3BqUAd9Rra+wDM1z0UKfFDjvIQ?= =?us-ascii?Q?gU3by+poX/deIWYHbIAN4vU8eT5lb/9sxQoCQuGjnTX5QdX+aRb9HSkpxlKA?= =?us-ascii?Q?KhCd4JBvp3yZBumzN16c4GI8gckL1uzdbg/PL4hKjcGu/wGA7DahGeJXxRcv?= =?us-ascii?Q?LPtw1NZXSOjY0olJxPBx10zY+oWzKiPraWFwQuLs5jQk/Pr0nVTkN7jbPpmW?= =?us-ascii?Q?wLE2QlSwmZVvd4+oW+Qd8n1Otbg/KVLQm9wv6WnrjZ91q9HU0egCSPP41DKL?= =?us-ascii?Q?7JgMgw369QIJXmFQZjxrHT1zYAy+36WYU3E+6jYoH5bom3jCVckiof+JJwR3?= =?us-ascii?Q?H0ztHwzCNpepkzomJAfLT8Y+vvPIYtNdcQpopPB7wU/9rtVajFjVhtIsmZyk?= =?us-ascii?Q?YamUf5eXsG9uLKLgLBYKPfWMxrxnFNgfQR52jeKb95DEzzHfR1O61HxmV0jm?= =?us-ascii?Q?iPKzd45Ft0It7ruiEMcnEESQSFP9M0nCb0djQV6bK7xYcNjHM/E+0AacvygP?= =?us-ascii?Q?OOiGlZr+X+dEEb/i2udUDHlaFzCDOQNmC2C/qapkm7T3z1S1avg+2aUtvxAz?= =?us-ascii?Q?ArsJJggS33TPx/tFGplI78Whuh8V2YzQ7A4p7d6ldd2glBVI88wQDOUFI/pE?= =?us-ascii?Q?+hllSaN7+LqRewY/duXjjq9+742wV3GRoSGZfsC7rs0NAPMS6Ls46XKQeDGS?= =?us-ascii?Q?JVakI/AWV4cXyHlp3/QqokK3PsjzWBuB8I29oTuBm0NBoUsr36oCaa8Qrlrv?= =?us-ascii?Q?xSpG9PdVyM7wKLjK3qUS4I8JNUNBj1rbfvLSnxwkXkm20PgBXRQh+f71DhOj?= =?us-ascii?Q?OZBN397XGRRV8wwYVNCzwlZdAOsr5SRZzeNzgWPGngm4YHOjO4XbES4y1btj?= =?us-ascii?Q?qrLjep+Czxfg9aETDrI1Li/MFez1eDzqelRMfQ54/O+rALzFylAA745Okyj+?= =?us-ascii?Q?h+yPEHVF0AAm7SnChVjtxr+xmpjVnDOe8W/rLmvsUjC43ADa5mcDaUfRlFgX?= =?us-ascii?Q?19ZlahCCSksUwD1NR4u76PQKNojq8LIm1c7Oa069agU2nA3PUkY4bx/3dpVj?= =?us-ascii?Q?k29V+y46JNuP8AsIEVomqIXndYRI68qdskoIqiYuO0EHnLy2UxDT5dPNyQux?= =?us-ascii?Q?ShlXfwZ+s3An4VogRqjB5UlWMry9jp33KKOqIvXvV0ODdL48lxAzx/wXN6zQ?= =?us-ascii?Q?XUYbGUaH+yNmoFsbeFN//NVtzqf0RfWtxFYEi5d9wkAQjMTKpSgHuE3JrD1A?= =?us-ascii?Q?7xZpARULZ1WtUKVcrHbyQ64EE9hyNJAW2oH9PsiootbQ+ANb6RcgcHXLnm5g?= =?us-ascii?Q?8R/m4f5Tsd1U32Ull2uugocv4tQJKF/fcg2EZASpqXdF65UFM+jMTr0s80My?= =?us-ascii?Q?iA/TrdR7kJdnFuaQM/Y=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?09mMIT9wbK5hbkwTy2Wz5Le9MBS4gmPr1kMDMwG5MU0g5+WXCDz9Kd+lhfYV?= =?us-ascii?Q?HGYDWCJkS/HvDZgPtPtpCntnRWPYpOFNvTmjsGoE4nHdMK/liUW+4o1YzJMd?= =?us-ascii?Q?rCkTPGz7C0VofTiU6eb7EIHSbJ+sv3u0im10FTREKW5Tp4xA9HOUPfZgBtVu?= =?us-ascii?Q?otjT1f+nEOC5Lu+MCLNYv4IficXpgCus0fIu0+VGGK2h4ng1NzMV1FbybTDQ?= =?us-ascii?Q?V/J4umFSssOSWrP/SeiJGJDbvkFMm/rUpL9AYRfDFyrkUINWhPFCF4zEHFYG?= =?us-ascii?Q?R53hsa51u/uaqz5Ljag/sPFy0+VcYsEnw1kzcAnppZZAQiw2hALX0lJ+mJzN?= =?us-ascii?Q?ilBWUeQW4ezKnQ1P6z5J7G54tvTDo/vtSRhuT2GudHLDnIu2O7EAs+j3AEwn?= =?us-ascii?Q?/M2bE8JMhfecnpyzy0jUn9G3sD+0GqIZra+QVuRgNr74+bFzDUjVkNjScPB3?= =?us-ascii?Q?JdB0jEwYqO+gwCPiPPq7Bgi88KSnbGBGyvtrVk3IyAjkjyIZj+UCQgdOvDc8?= =?us-ascii?Q?LvAbwu+yMjnQ9uBRjKkv5haEynKpUHfLEbgtWC2cYnM6LnPMZpTgrGxjzpw5?= =?us-ascii?Q?uMozFtXF1vhHppAl56n9kAGL2gFI25o12kXLn3P4BdqD/7Hkm+4uPtZfG8JW?= =?us-ascii?Q?yJqmx6gwqqAm1IGx7jKzpWxoA/Xs2I+xM6QykRuC7ogS20p2QWjV+U5atMBL?= =?us-ascii?Q?cZ21DDX3yNeTQ2cINIPhTYUOMSzOj/fYc59Pgvk+QXt7oPTIBJSWmVOvudfT?= =?us-ascii?Q?iWyp74naftEF34JjJVLgcMpGZE1J1oFCwQ9PvsVhWagCiW9N6jsHMHVBn+Ea?= =?us-ascii?Q?I52AdJN54A0tErMnhV1vBtS6qKZJHS7qHM8a8veDD37nmfxc4ufpkTyXv8ys?= =?us-ascii?Q?eQQqH8PcDQ/FAflWnbpmc2Ek+JSuzJrXWFIlhvIxtCRn+qB/9RJ3vKO84aJa?= =?us-ascii?Q?9z3v4fpbWxYbIDsxIL5hwciR625Gc4Gw9B5S+wqC+781J4HBJfxYHXnQmvNb?= =?us-ascii?Q?1cDHOpTLSSphBdInucpYfLsEtjOOo6Yhct93FD4tFI04r8hJA5MvUGcXAQk6?= =?us-ascii?Q?/d+v7rlQBoQa7DJcTd+zci/qJ8HVlNLEHLGjVuJEwNhXHpsdkPcTvh2PUrGa?= =?us-ascii?Q?Qhlrgv7vJ/QNK/t2GvxaiTwS+DsafxboqQAnDFNBplceZxZqNkfH+kb68WL4?= =?us-ascii?Q?9UUY+CmOpt7fdzApSPlfdaOqCCvw0QPYNdT8GaGjw2337QfjmpckEAN6gcBs?= =?us-ascii?Q?Srfhq58Bem7f7YOzAusfS6pfRfpV4to6si5bDCEBCOXCYpKqSjltm0zkeQjH?= =?us-ascii?Q?5bL9KbBx5KwVvTvvdqbwsvUF3sj/0UI5kU/yEt0gStJfPAlOqpu9qf7TM+b2?= =?us-ascii?Q?yXUGGSDvsK6sibb6EvUzdZ76TVSUE5r4Zp/s+sRj/o4seuZyk9jqs52dAZjD?= =?us-ascii?Q?vmBJvJGzh0G2W1gAzZy1S+nCIvIj8b+r4shOhUWtz/437oAPFHizRrvpFyYc?= =?us-ascii?Q?0YXyk2FO+iPZM1ePK8vuD4L3sn9wxkunRyJ0Ml4t8MDFe64Ct6LKGt2Umot3?= =?us-ascii?Q?jXU0VS1gpKYTguyMYZx6weIm1+dqMwEph64aM54SvHH7GF10KYn/LxYP99Hu?= =?us-ascii?Q?qxle1IPQjpbiHokmBo1/8vRBdEyylf5FBsls/AZ4FLvqu+cd2GCVIMXqnFcf?= =?us-ascii?Q?D2BKeMXwKXoAzj7dvZKS9i39pSqTjA/cvDtXieKe5V8ZIDngcGKY9Bcv3R8G?= =?us-ascii?Q?PX/BNY86xQ=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: eK6yxrihZFESgC82SH7Ad15lUFq5qI+0jA2e/WKAqpF3N1jYe4nXLLZpSrTIuKY06fzcd8A6til0pE7K6DJThtcwxv8Wrl4UtQbLYY75Xurpq2jJP5rWwAO2LqfreSB2AzOoBqvhV/6fCAUx57Oj3cXc2zsPiXSngI/6owsRgMPfG/Lyv0cu67xODD+5Vf1kcwEk7NqBnoUd+f9yn/Bh84ZKvQrqq2PnPd1sN/GmTGmlw41z/9Rihhd5ZSLTMGcxBFUl0kMLD0rJCnzGbFoY02SdXnqwW8fs9WtEelkAFV3UwmXK57d9JrqbL/wnKBl6mgIOYzeHJQVPd/3KbvtbiruMW0IAgBz/QjYmOHVys6yTY7Tj1I/OF8ksRgZxSm1dI7+h+CS4Gwdol8brsiiXkNpReLrnEgPJ/lpOBOGON0iW6VTSRValDYRRvX1B9ZE9Ka7xDpQzALJp8EjvjHvIGuUc+dp6dSFEY+trCR+Ub3jG4GaWQDDHkzuwZZaikxOCb1SQV1vZNRFkGsjj7snQw/FpNZnK4UqOL2w6vBvXBALy5bQNtThIKhnmqbhk+wvQKYs2cOEQ7hIouoND6V1pTWoaxVPNuoklbLMkgy4n8K0= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 67a06a35-7e3e-4580-bd43-08de546d940c X-MS-Exchange-CrossTenant-AuthSource: PH0PR10MB5777.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Jan 2026 19:37:54.7560 (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: 8OlQpIfnTPUllG5keKuVi/agoVZKrclasetIdOPAUktlCZi7E2dtWKh9zJtAOCd/kbg/Gk2hoJ+7xewJFodZgA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV8PR10MB7869 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2026-01-15_06,2026-01-15_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 phishscore=0 bulkscore=0 suspectscore=0 spamscore=0 mlxlogscore=999 adultscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2512120000 definitions=main-2601150153 X-Proofpoint-GUID: 596-BwJUdsHgq3g7QLtVLm2pKFQmo93S X-Authority-Analysis: v=2.4 cv=X7Bf6WTe c=1 sm=1 tr=0 ts=69694236 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=AJrCfj9k8GgL1_glB6IA:9 cc=ntf awl=host:13654 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTE1MDE1MyBTYWx0ZWRfX0dqXpH95UIoU P7ifyOn7I6OSV2gJOBD7FH+nEWMgkTgpO9thtiMkaXRXjpZlnzKm7j6otk6lH2LK/OCiXj+mepo BEU4XJ+cCcmxWwuibRblN+DWL7aqNKD8vilWDsNngpnHioy73ON7D1yRatKHKwrXkozvx+TcbwL VJfEyz3rcRiy4fHNYUn9m7xLU0s2UY0mgymuSDtPGHpWhj3QMMvnbLzvTvpSNvONnWqzBXIEhFR zt//8ghNOycWDGuODa5EY64uHb0Otxon3NOCDtxhirYqYpj3FoEFhM1vk1aP9ZGOStDzRHwV998 36C8aHZSWdgTgCMPZJs4gaH9PSBENu7+lRx8MouLNCogkCBZHKZOMe/FZE11DP4YlfH7zDQJsI+ c7a0H27b2DH+7AqQbO0df5zVbrfAfcuNzaOnV2kuBUAggOtyNgXSZRUMyvAxvhmJRSSxoomA9tV qpFNEHBAAXFUEVhaFA76J/C9csWU1oVMn8RIY2E8= X-Proofpoint-ORIG-GUID: 596-BwJUdsHgq3g7QLtVLm2pKFQmo93S 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 722868812a738..0748eb093c697 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) { @@ -1662,169 +1623,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 @@ -1838,134 +1636,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 @@ -2010,25 +1680,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 @@ -2062,242 +1713,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; @@ -2349,43 +1764,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 @@ -2638,103 +2016,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; @@ -3280,158 +2561,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) @@ -3563,319 +2692,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 05:35:35 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 97F66320385 for ; Thu, 15 Jan 2026 19:38:56 +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=1768505940; cv=fail; b=elTymESTXYqsosfsjfn31O7axX15TH9ilwIcOWBIikwjdwCQaJuq/j3kdUBOUBjORkJ1nY6L+6+CAzqc4QL+eFnQZDMRanFaIkFa3IFlAO6oWvhNfixV9o/dIpj9BsjWv+49TjEOZuls5YG97p25ug5Oh3+0VvVRZKIh1Rr5DcA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768505940; c=relaxed/simple; bh=Hc+j/o1VoH807IgLiGI3YnJGQTHDRxiqQonWe06VT88=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=C6Q36Vak3RARav6u7eZjdLlLwPu7wNE24qe5a3FeiJKT3f/uRafrSUVnusHs8UO9q+qDL1zMgyodgaZp+DhuEyciX0U43ofUguPCnnGYyaam4eXDPoUAMxk7glTm8GnwyCPlqgT/fdd3B3EBxXT18UsaqJtFOgWkcjkJxGujg9o= 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=GErnUgK8; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=zjID561W; 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="GErnUgK8"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="zjID561W" 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 60FFq84X2395990; Thu, 15 Jan 2026 19:38:29 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=kG4vGuoibJIhN5XooJz4sDqOH1eo86hcPaYxfA7b/y4=; b= GErnUgK8k5/yvA2ZydKL64FKGpMeOrFdv4HR5LOl8ksu9KLFeGRj1XlRGQu3H0Hd lKA/ZtBqYYF4MAE2uFqqszda4dOoOaqEmhu4yiacWyD9qNMa9JTkopusY/2kSlcx qtTmtSCS9S4agCkjesD9/nzqgwVI0v+0PerXuKOQi4kIVU7wNTMYB8HE3X9QIZQQ 1mYp2TCd9rMbHiYw7qYdS56ZYDA6eQRwQklX1iWMf4OZfp+K00yFDtw4QuT5k7xp Tz2os7bDegC+F43zHEfdjzBLdnJdncMw5lG4Y4P4HhmUbaN3/S85fTTTLgYkoFVd cv5Vav3SIkd0oqEGM5lXiw== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4bkqq58h4h-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 15 Jan 2026 19:38:29 +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 60FJbCBQ040448; Thu, 15 Jan 2026 19:38:28 GMT Received: from ph0pr06cu001.outbound.protection.outlook.com (mail-westus3azon11011033.outbound.protection.outlook.com [40.107.208.33]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 4bkd7fgmdy-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 15 Jan 2026 19:38:27 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=jMV952Dqn88EkWfA6tdHMoOkCKxjDfZxdpsX49x0E6CEX4P9X6NbiOl607NtazTU7OzVXDo97F02yvJKdPLotUTd8cjhVpNMu1X2ItjI7gt3cB82LrpVj1WEtWCr5hhcq5g12SLW5NcWXM+8B4gJRxdgoCzJr0WHHMVzYRrq1I8TrmgLrTCS0y39J3WApRpRQLMXGmH7v2qFeoMi7Ow+4Pmsb14VnVxZnFWRaLTLKU4IHPET9NzeRY11UjgGcPtRDP3fOcjyonTTgUrL1J4sn4n92nk4SbtWfHGvZLTj84oCxvBnflHhOJfnW4bkQ2hL/gV9hPLVfek0O65YBPztUw== 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=kG4vGuoibJIhN5XooJz4sDqOH1eo86hcPaYxfA7b/y4=; b=jhr3246LHkEYJAnZB2IpSMuXdGWrUDSejMfR4Z6V0sn+iqvZbh63q7vsBfF8gfSgNF606E3IemQtWhNVQ8P4/eb/f6Rs4syB/Tua28ibRGbmBmZBwNhwJd1sfFBNZsw9gOgDm5umjrOk5czAU6J3D+HD0of9zhS4tawfw1/a9Sq2aCFJV4wqTz9Ph8tc/03lZlJhDklzJT7tu+H3iUYSoZI/JYKgixIVQqvz/9AKSP7BAOCTrY5UkVND/8YNtxAcTT5jjV/KIsydW4h3J+36rFf6HqSKr7hGEnKZTU4O8/rIVKXa0/+wMAvlou9Fobpl5bPxCWqfto/hqOkMX/Gf+A== 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=kG4vGuoibJIhN5XooJz4sDqOH1eo86hcPaYxfA7b/y4=; b=zjID561WcqcjSC+OXUuKDFB7R2Rzy0Jin/eYxn5KATwLcc3pX7eg0t4MB0mdeallOkmE5DOzsNWZmXrPX1qaL2JGQv4jRx8CTrt4vSmILiT91B0DxxSEOtsgl2p5pejecmch2r18Y0rpi+fdcBzbwM5pn8JbCxtNsbIvTdMrxPA= Received: from PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) by LV8PR10MB7869.namprd10.prod.outlook.com (2603:10b6:408:1e6::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9520.4; Thu, 15 Jan 2026 19:37: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.9520.003; Thu, 15 Jan 2026 19:37: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 , "Liam R. Howlett" Subject: [PATCH 26/28] maple_tree: Pass maple copy node to mas_wmb_replace() Date: Thu, 15 Jan 2026 14:36:45 -0500 Message-ID: <20260115193647.1695937-27-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260115193647.1695937-1-Liam.Howlett@oracle.com> References: <20260115193647.1695937-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0115.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:d7::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_|LV8PR10MB7869:EE_ X-MS-Office365-Filtering-Correlation-Id: 1065f2f5-e60c-4c46-d8a0-08de546d9584 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?uMCY3cPvO2FZ4qyqS84kPyBsK1UcvtUrIqhyeULiE/JM7AfbuuBSorAHwzzH?= =?us-ascii?Q?/X++ANrLnVGc+Zb8FAe/ctKUJ3phDVHapwwD85ylA2yNcScOxBdfhlP7q7aG?= =?us-ascii?Q?XQrR29rskFqaPe9ACUlqbTZd6X+1AOzn5d+stFAqwCCTDzoENUHH8KLwSaVD?= =?us-ascii?Q?SmF+m1MZyrXmL1qjZT2S3ZIGF8nrMpQrcsjuaS/BfousX2JGau0iH65azjGU?= =?us-ascii?Q?ttYilFN6zEzjmCrKPIIgfVaodi63ztOFrccG1+Ik/a2M8fsCENOedvRfUDKZ?= =?us-ascii?Q?FMtUTf/i3WNkwI82EtI59KEBDma20kE8gfLnIQRFQ5+bjEIdPJIZmb9ev2pF?= =?us-ascii?Q?IiJmZylnoGNIz/c83BGtsvm9HOuPi9byQif/9cXq39JbYpGlTlI6n2ZFrNG9?= =?us-ascii?Q?u27oRJemHxc6dIq68jVRsXdtaVC64YO3+GGWsQ4r7QEkW+8vfDw/nEtT5qil?= =?us-ascii?Q?YLvibsXCjcK/AahAbnDCO93H+WdtIGIo3ug7vvjDAUTg9pD0xSBDRBoo7gDX?= =?us-ascii?Q?vQe7g14tWQf0q/4+icqNlQu+ixgHdPlirbKdgIjwK6sDblsIrBaq68Mh+OJE?= =?us-ascii?Q?sWkW1N+clExtwBkIx3fnztMqfYNHQVpBzt7L7xx4NsTPDANaQSX4lN35735R?= =?us-ascii?Q?o5EdjFgJfkxbxWgI9932nzkxkmq3vDQy1EpqX3AXDp22mHU3dGerGOukeUch?= =?us-ascii?Q?DZfQDTjd4Dv9Bpk6JQxrE519tdhy+sgGYUAy+ZEClBAMuiHM/MzvvTG5P17v?= =?us-ascii?Q?ogvd1EWQ/qZzAt9hpmNhC48xNogXr9dJy2Lzhurbqlcz0NuS5tnQoMk7lmj/?= =?us-ascii?Q?DwGVn1KJtgr//O86eE9r+cDXk3aZx/Utg85cFdkXLAxOJtWLaiFlCNAu3UHb?= =?us-ascii?Q?oJ8ixaLhjJhV+3IBYJ0RDVua7ENQsG8lGCU7ACSFTnMaBrSsCt0VaABmm7FB?= =?us-ascii?Q?5AOGqs/c2fUL1CGtQ6wx1QcBoBl5EXsc5iVJ4DB9I1ZifJ9LAIKrPTP1rzM3?= =?us-ascii?Q?bl3g874B9U16cJ5hNho/ih3VKHLU6CzSDJAhr/bko+iWq8vK9iCuYuoF88qP?= =?us-ascii?Q?rZkC5TsSlrw947uHtBfUJK+pNHgscHHpCmJGZ+blVBmvxOMRe/CX4U/sgWIY?= =?us-ascii?Q?oTcyJx0YvL+IKJZGAyU9OaHa6NmiI5cOMvMDOcV2N1BHjGPLEz35BU2wI0G3?= =?us-ascii?Q?O3W7iIcDzCqt+6/q2sDy1q9rNrBgMrOdkgv7cqMOGGMLmVPWrBmjKewprYWi?= =?us-ascii?Q?EdkuZPWsMFP9PEwDnUXxKU6tXVte+16tBgnaNUVaQfg+tTKlMA8P84Pf20h4?= =?us-ascii?Q?IoeCO5XB+U6prL6l0nvw7bUjOkMf6ZchPAacudvOlXCRpiQ0LgI1YAGNLwdt?= =?us-ascii?Q?aSLcvg8z5MzOXeot8Q4oADghbLSh0XQODeqGVXNO85MQkSX0KhFTq6j759qb?= =?us-ascii?Q?Ts5pUKe+Gs25enVv3OF1Czqt9zzXbEmN1cd2pLYuFfS7UomKNZk7jEVUpEes?= =?us-ascii?Q?3TNZ1dcuRn8EZLPCyEIeMEQJmPhvsxO0kr3T5/cRdj/EHPL13f2C/Mty9Nyo?= =?us-ascii?Q?vuO7Mjg3esbrtqc+eew=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?JIDE9ezMjjHtIn3uC4GXqVZUuTrAyRAZe0rych9eywXPY8rYWij0zKLbt6JR?= =?us-ascii?Q?VESI4D1KcBT47PXHtjpyW4tjJtf98qVj1O36zaQP/67Aevw6xVGaZaSTZMMO?= =?us-ascii?Q?wVbKy37vBSBHoGh8RcVo6uXaP4DuUpraP2mC08JNb1qjjg+LoE55dPdm7lwT?= =?us-ascii?Q?q5L56dZnHwQDLzdrgYfhlYaHHQUDsKYN1MuG647aX/Dt8y1ntAUZoxjyBgAC?= =?us-ascii?Q?QwGopxphfJVn0NonWwUwtbI5IKTAsqJAqteeYQ32wLex6hgBCHKNj8dbR0zZ?= =?us-ascii?Q?7a9USyxzSQHJUbj9c2lRkLRshD1GpTFPCv9ug2KxWgd/KQzVabNFNUk1/PlB?= =?us-ascii?Q?HHGgk1s+6PiFx2rcjiIIkVGoFG3xiOh+S8TL+PI6n2g9b6oodo9Z/HkMUOtT?= =?us-ascii?Q?MwQYNy5YSMk7AVL3PiPLDRO5tDmZOoXdR8xoySi9w8X6wflvVvFLREUuSrnS?= =?us-ascii?Q?/12OU9Z2YIjuDgAtCXFlEXT+pL3sF899wpOTHpsai3uSDMmnaNrzgqqyofq2?= =?us-ascii?Q?Qz1Hh2vP3kP075NCDrEDH7cJ0bSi9HQiHiwde2gjtY0stjdhvPyJV0XMvRwo?= =?us-ascii?Q?0fAf2D6fKeM4/w7DHHh4XlN7R0vM5kNyhF2pJCxtyuwOshAN7MPGwhbyGFIc?= =?us-ascii?Q?C1/mYd+JBDGFGNEzcgSXJPK2jhJxhl1frPHROndDMro96jAlcUiDv92G3Mt0?= =?us-ascii?Q?jb0H+LtQC/LCD2zhvpgHkDaSCN22X6WGsKrGWSanodJZLQTSOrypj3OjBzIN?= =?us-ascii?Q?siFgab8BV1waRyVkD94+LJEH1eytpsT7QOiqkDBG06ozhJW44XClvDCkAil5?= =?us-ascii?Q?YaF84xePRXH6r6zBAUCLaamQDY8q1cmN1VAt4xMjon4FbIRLwhcUwun4FwNP?= =?us-ascii?Q?PZKsnz4+qKJD2qM8AVPmzxOYcYkiHS/PSTPOrNbIZeHHrV+9tY3B+WKOIO/Y?= =?us-ascii?Q?NBPPx9kisovcIf27a1evpKbx4FfDsCat0bfRa3wWCMdxB4FnGZg0BgSW/diH?= =?us-ascii?Q?5ckTQhntOiA4U+iODHuXDsgThK84YSDOza+lNbQneDFC/MF1UVQ1mUcrcWa9?= =?us-ascii?Q?X1gzDNgCef0foymbsOs/d9FNNsn+Kr7la4vHODvt7gMgUyvlyOB6E37D4tEx?= =?us-ascii?Q?qPsd2Fa2doeclz1m09jVpW2TS/dmzseX3AAWi9c9mJ+JXV9f3PSZKmOUwB9n?= =?us-ascii?Q?YZ/QNbjqI4rBBAo754Cv0WIhfcal2M5PK3aQZKdhNprN/pkx7jHcmAF8y6sn?= =?us-ascii?Q?ti4h/wDF6Tof45JjZD+tPT4XreFMSMhd+dEE5kDJ7kLXjuc8CVpBnySoq86f?= =?us-ascii?Q?aj4Y+GCpuyYDVcnabTC5+5t3ShizoOA2RzyuJPc1fe4SeEzUB7LrzxsjdGTv?= =?us-ascii?Q?o5NY2MGYaw5XlZPor0fyE+b9szCJV/gCkQsSbyTN7cDgDF8nwRRtMBEK0QaC?= =?us-ascii?Q?zH10P+LwjaL7lqvxrPV0lfw1t1ShSYz9ayndPvOW8T1FcNRTIQYRbFnzPKEu?= =?us-ascii?Q?YUvszf3zUL4e6iyZiEKumFkNISqzxy9ucRPd/z1w17FJDVFIRwbXjynvduT9?= =?us-ascii?Q?9mv8UCkxkJx2EV/e78N7iSiShKfo9bSr3dnk8pDf73dSYmdcYyWlh//AV65C?= =?us-ascii?Q?j4qfBdmpHHZEF3SIBR+Kui//7imutPGk11fQP23jWYByUnueUKB5ZJTaGuKU?= =?us-ascii?Q?dPMZEHsqYWHUTldKwDi/KYZDF7XVZBznYWKedmkiMwiDASrOlr4g7TuSLFuP?= =?us-ascii?Q?KPsUY4rgHw=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: NYBUs607vLGyJmPqWrH7miGwnlarflb+Cf++EvbRxRXiZuwUHZpE157R2tHf+D9ANHXlEN1k0EyoSoQuvdCxG8HwwgcucNHQ0Rxhr9nLvejQ1LF7qpuFxkJs6OOLFnLO87cHPjxPI0R/taGd8QyvI3fUTxt4NGnZU9PWFNGhJsU1HJQQPIOnpZC49t548uoS6Z6/pEaogrfG4AFks2pHf45wexlTREE0ZqaFRKPMhDnV5dEDWR3eBbPN0zZf6JE0AYxUz1DTTdIGkpKnSjsP/9NT3ojh8LHwQua2WMcRAsqkGdti/2G6QVmBF68By5kwaZuyKioHMMTU30bKwtdk1IQvETNuK1YKh5Qql0Gd79/x892NYo0Uwxcwn1RtselLMagbOzmQs5B0LXuAKHeRAbvnnJd7vZqhhT8iXlOIT2kW45mA7v+6j8EesUuqrO/ett/SXUQOma+ZQlinkYXzPCPmaBh9sw/hx2bBcqK9tGEp7j122C7yDsfc6RoP9MqF+FBrwrN2Q/iS6DNQt/rQeOExXr9B8sZzB82MA0GacJjLu+iS5Sx4BObJruf/jtQdR4WCVk3jGGGb9R4txPX73rkmV2WkChmDsPSA/bYFxjE= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1065f2f5-e60c-4c46-d8a0-08de546d9584 X-MS-Exchange-CrossTenant-AuthSource: PH0PR10MB5777.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Jan 2026 19:37:57.0950 (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: GZO1OfD26HvHELlqV94OhNJOU6dKdMGXh+6oTMbfdsdjUfDVCS0qZLy13DmaGX6YblXIiR28zqmfmbgngocMKw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV8PR10MB7869 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2026-01-15_06,2026-01-15_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 phishscore=0 bulkscore=0 suspectscore=0 spamscore=0 mlxlogscore=999 adultscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2512120000 definitions=main-2601150153 X-Proofpoint-ORIG-GUID: ZT7MtsTp_x5ZeE_2nZOfYVMnDMI3Q_Kn X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTE1MDE1MyBTYWx0ZWRfX7glfnVNnkfxC kbUrefOjTJyUo0PBRbHbnXIs1fOab/UxC5c44aTjoh+CdiZ0044niwdAFNukEDxJJy1w4SrZcy8 5h1tv9UEd9FZxY4fhA8zuPq6Ac9XHMGQWyzEDh7DKMqs6DlNiCpiQdDdpW0K4QWi0fpYnY0Bk9U r1Kkxu3f8QGj579q+3ayAF1tdDgrL4nxyMqyXSjTGlmHY45yDaWJoaqqQ50bUbnPVbAsX+/t7f8 sJsk/qgDGSiWNcYzCniK1/q3QYEKqBzqZIuqs4qJ6sdQNCGTxc55JV+q/qHdfITspGI9Pi7qg+c 0JH9dDauhM9iAPzFgntxjuXgS8RrKouA9mpE70zgzOcx1U+QvW/pOPHDq9nAPNWUH9vQpL7Zhw+ 6eWip9I6jFUJlC5MmDqkV4HUaiphif0JlG9iode+wb/fvqrn2GPaTD55/ncIAOtVIN8xZEIN3eY gTSlL/toZZZeXjYD8TdXD8Nh2i6z+RQK0GRdegzk= X-Authority-Analysis: v=2.4 cv=J9KnLQnS c=1 sm=1 tr=0 ts=69694235 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=BeRG0LNnq5H4T7Nsn9oA:9 cc=ntf awl=host:13654 X-Proofpoint-GUID: ZT7MtsTp_x5ZeE_2nZOfYVMnDMI3Q_Kn 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 0748eb093c697..a66889658fdd4 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -1893,26 +1893,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. * @@ -2076,6 +2056,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 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 @@ -3013,7 +3015,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; @@ -3081,10 +3082,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 cp.slot[0]; - mas_wmb_replace(mas, old_enode, cp.height); - mtree_range_walk(mas); + mas_wmb_replace(mas, &cp); } =20 /* @@ -3402,7 +3400,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; @@ -3423,10 +3420,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 cp.slot[0]; - mas_wmb_replace(mas, old_enode, cp.height); - mtree_range_walk(mas); + mas_wmb_replace(mas, &cp); } =20 /* @@ -3439,7 +3433,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; @@ -3470,10 +3463,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 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 05:35:35 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 60252312807 for ; Thu, 15 Jan 2026 19:38:56 +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=1768505938; cv=fail; b=UPiWm4OAbZvo9+D6dU3wBQ14NFx9D0L4cpKOKzk5sc6BX7zI6/5Oe6+ad9/AMeO1ywZMnan9oH+QS8I9waEd4DbpsSSZYUkj84490wdJjywutfPPDLH3DaG3pBvQwnVU4FTlgNPY5FBT4OAUlI6hbD+973p/+akpDsCT1oLTgbQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768505938; c=relaxed/simple; bh=yCk6bl6zCcs5wsJKRu29A+fBRc12L+fRxLa4S/NBnNc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=rm/gOG7oMyqg3TJ33wTVhKYDROQHkFPahE8pSEB3aqxCq6jwt2f5BQlI5aSXBm8jwDUrrrxuxc+SVuyckyb7owX48L+YHQTUctdq5jMXwR6czoW19j7pVlPkUAl0QI//HCmW2FZOA2EpstgkbUlkfbqvwHfg8NU/L6fyd+/D358= 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=FKISqN4l; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=eVRsglHt; 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="FKISqN4l"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="eVRsglHt" 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 60FFSXnx2753320; Thu, 15 Jan 2026 19:38:30 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=Yq+AFfx7DBNF3MyPuJbZmB/jDLJOmgdLrx5jnbBO/Go=; b= FKISqN4lAAbXnvGuwFx/qjKm0SHlqh+SaQlWlF+lpIOZOuRJ+lZVCvFvlYc0S1vt 6PsvhoCkDHuuaTggksxqNGu4uj/o+FpbhIYRnegaAFqlqu0TKsyQRv9xn8r5d+nz ehgAYQW2md4qyScFj0NqVMqdXY16cuqNWW1pm0W7Jf0mhBAazagq9HS54JfxxcZA XkgeZpU/o0zVHgARYO6pINGFFRE3zYeQ5DXOqJhZVe4bMujbyh4Q7qUiDusXAgrF mwhNxAGIhGingJL+Gp0gvunOJ6W+HiVsSe9wanhCvaAr3cx62USRTchyoeLyIz/R 7rMVe0CT1KH7MzZsEMYzrA== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4bkpwgrgfe-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 15 Jan 2026 19:38:29 +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 60FJbCBR040448; Thu, 15 Jan 2026 19:38:28 GMT Received: from ph0pr06cu001.outbound.protection.outlook.com (mail-westus3azon11011033.outbound.protection.outlook.com [40.107.208.33]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 4bkd7fgmdy-3 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 15 Jan 2026 19:38:28 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=qrLzipRhYxb2XKg61Qgg5YtYd26TVGmRTPO87XMaEr+Dpi2lyKsi5D2kaPeCvPF0Ku/VU0U8Ysrdnf0gEYoHMzzrkAi4FZnPKZ6zC41KmJ7fpwR2DPVjHk8Ih5PNrUlssaQvqEFW6mI6gQDI9ep/w6MvzrCypxDEFYx0nnMchWRUStGUovLc2RFr9POFe/m9cVlti01B2+pN3OX0wvd9LKLkMEsfn6dPnj6NRAh+gdw4lnLFrejGI643GaXdSz6ZllmCPS3OSSXSzJUHj00Xc1bfzrlwwyvOrNr/wKLc6xPGVmFGaIR94ducr/SuVU//6Dy+3hC6dxnd9Oo1c1azWA== 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=Yq+AFfx7DBNF3MyPuJbZmB/jDLJOmgdLrx5jnbBO/Go=; b=PRnpJ9Q8xfUr+pf+co99VMqm9oGdT/kUcR9PL63+JIknZopVlI3il3KDMIuC7mnSlES+ypvjcVHXS/gtK2iOi4QtdVEGWQ8IRkG5R5lK15+d9OJVvXKlk/cGpnXLD1smFhfrVQX6hg6kmxL54DznZlhaABzKOA4g7LeXQS1/OuorK6FpDfyxi1/tGPqHCLNp9Te7bWyYcD7gcTBlQrWqPsPcw3/u2pu7r2i56ScZ2RQpxUFvyek/miskFtrxVc1qRM3SXhCqwG1fY7Ly9TaCgflUufaIbC8ahqMvaEObaaXxpy94nUdDOq/5wKt9VHtGZO891j0J3TFy85xiPHoqVA== 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=Yq+AFfx7DBNF3MyPuJbZmB/jDLJOmgdLrx5jnbBO/Go=; b=eVRsglHtYZOlX50H/LLRNaRY26LHecVYYK21GX5os36uWV3oj/YT6I5gyvopO8k7tL4mJLyrpCFP84MlPr8rGYGC8PyiAt5nq9tQGU4aitT3/x3zQKChEMr9jjuJh9rNrnEfu/XMN2yN7Ufyv8LaN1UIfvNDgtFWTlTyAf9BnwY= Received: from PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) by LV8PR10MB7869.namprd10.prod.outlook.com (2603:10b6:408:1e6::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9520.4; Thu, 15 Jan 2026 19:37: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.9520.003; Thu, 15 Jan 2026 19:37: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 , "Liam R. Howlett" Subject: [PATCH 27/28] maple_tree: Don't pass end to mas_wr_append() Date: Thu, 15 Jan 2026 14:36:46 -0500 Message-ID: <20260115193647.1695937-28-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260115193647.1695937-1-Liam.Howlett@oracle.com> References: <20260115193647.1695937-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0188.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:110::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_|LV8PR10MB7869:EE_ X-MS-Office365-Filtering-Correlation-Id: a539cd4f-01d2-4842-2a2f-08de546d96e1 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?rYL1Z5XFHmsc2BpO4ADz9a2+V54+r4CCRAc4+yuDVS9cG6dCBDoJzQ6zS5WJ?= =?us-ascii?Q?lYAN2lVlZUzxMV0elIqAazUcTsvmx1jcE3TLNkt1kI0ZRzf0D38J+7oOMbbz?= =?us-ascii?Q?5F0cM74ytox0UNnP3YX7EfK6FKIhELCfwiEe3dLFnajfj6FxpLArI27Zjf3q?= =?us-ascii?Q?clXY4on19Z+rXbzOzua0ifC/6JuLmyNRwh78iOqBQGFgEi+UWrps/MDYT9jK?= =?us-ascii?Q?ObIYtaZfxa0UKglpnPgPZ6wXIX8sXLjOZwS2s3T+VDN5ES2d7dW9mNYbIMTF?= =?us-ascii?Q?98BVYYlLEitgT6h0DhSgcQK5IOWcQURWiUDD6p0vkp6dZycGO3mLiIeF6sC3?= =?us-ascii?Q?/itxAvC1LxdAGvYlge9jk7z+iyOEtk0FEYqJAE5IfwHG601QCtOOKo10fgb/?= =?us-ascii?Q?eVz3mSr0MqLHRLV8HV9AEA6W+m4qSuuaRnq9XXStu7AD9Q1I05x/YcSWHLh9?= =?us-ascii?Q?Vv32qmgUW8xh0tbz2OO3eygvGsKNjikI0iZygOmiwBc512YVVSQhTAuKzPnQ?= =?us-ascii?Q?WrufYYSTsdZ56R5NUQkAqjg90stNb9k1Ad5hdKB3bRtTfJdZtCTbzzM/SfHr?= =?us-ascii?Q?/RsKQIwC7KJ4KBMGE1BPV5ZWnPbOmcoY01aekuEzbTgkyD85kIQtu1WQitgN?= =?us-ascii?Q?SCIn7U5QJ5kRMV3BydwCARTiqowRk792KYJ4dmhuEMAWJOJwyw1n/HP2nEWS?= =?us-ascii?Q?apAWKR0A1zkipoqBjwohmEfoeuRueGu56axc5cwGArQHnpEX5iaJxaAcqL5p?= =?us-ascii?Q?E10VoUJScpDS1HVIwo0hzVi878xQLHTpfIs7SIqFMZBnhvriaqZKf5FQQu0+?= =?us-ascii?Q?/osZqpPEHUb1eZ7d56UEsy4mtQxaG1Tkj+qy1R7Fs+E3usjNgS6vdaj00O+6?= =?us-ascii?Q?75fektQoUj0OySBBjN4QhU2SwCa912Vei1nXq3yKa0V4ix3BveiZMa0YbfPH?= =?us-ascii?Q?pCxAom0xeUidDWAAVO3CQduALFkE6WwG8iHobHXltv+X/5GLPEQGW2FVMx5T?= =?us-ascii?Q?cAgzxut/g0JQs/+xrr5SbMCqwfzFUsQkPLZHpeUegSkKatczcZ7I2AYx/jEh?= =?us-ascii?Q?45IT4zLoqmEJKNXM4bNpZYgIYQ9tduGeBSmF3OqHdCfOE+/Hzv4dG3nsm3WF?= =?us-ascii?Q?HFZnzfqyie/bmwozHfS+2Ihsq+xtqp0S8zP8XddbjhwmsOtX0nlBte2c+fqO?= =?us-ascii?Q?MMzRT+hVnbXHiA1TbFWtan/xHFnX9PD0Sw8jAylQniNc9YR1gJGtXeChpTxQ?= =?us-ascii?Q?R/gS7CG3r47reNQB46LSXdT7VfdtG7J83uPzTWZdwXxLFwF7TquLZdNIbYnZ?= =?us-ascii?Q?B+gAKUFlN1H0bFJjInx41s557sT+dICgGFLVnEH+2sB8BnNu+CZ/f3S4TiLi?= =?us-ascii?Q?mFFEiDOT46h0DX3/T7z/fy8oBgWkMV8EZdvThPpSrOp8Lf5KNsh+ozB8GNYE?= =?us-ascii?Q?x7UwUsW+a21us4UV/i8X/VqR2gsvJU1WXcZTKGtPg9HgTLfHudIfCMc6whSn?= =?us-ascii?Q?2CTwpH0mzvSTPNhw/DidHHXA4Fc0KVJBAUEmZvQE3MjRLTo/M/QDgighSSRP?= =?us-ascii?Q?g9sj3wdBnnBucKJBTz0=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?4WvDQs4WLjEE2jsVnXtEbcW0T2H0lasNkSdT2O7s5t9Z8ob0cdtd8agVMQ8I?= =?us-ascii?Q?m/7htXh93hNneavsJLFlqR+Zm6hz/d2mQZbJDfPhH3a5T7lKcpPF+Saz7JzF?= =?us-ascii?Q?xYE5j9hlKGzlVrSZh5GFQdcymTuBfFcpoXlS6P5YH/WW8AaRRvUoJnXRvozi?= =?us-ascii?Q?CV38XxXh6uyPs6LVljG3ZeAKi5rL8jMvIHiAynp15NL16Eccu0pkkUEQIqqr?= =?us-ascii?Q?g8jQJ4CC2pgpViATJFdvqPpv/mfZ+oBe7FLBI8typ1LxDvq3v7b7CxMD7JWa?= =?us-ascii?Q?xXoO2SptGS0HsBkXttOu5X/2BdbK+4MJPWIA/oz5X3vQMYWbGH0/4KgO8UVn?= =?us-ascii?Q?4avt4GW6Ac7u70CgySgeIlvDwY1eF87x0RV/HAO6RA86eN5mnLEV3XUycSId?= =?us-ascii?Q?25KqNEaqttQZiO1RBidQ+ITw9FrVSR/RIx6tMgHSxoHnxEzjkOPXcPBy/r1g?= =?us-ascii?Q?iFSy+oIVtIxZmJ7NnpmhZg95W5l+3mihlFGSvA8z1fI+gnbEbkDEhW0MX/y7?= =?us-ascii?Q?ec0cucxfQ4NgTbEDU25TWT5KAKXWi4dN9AenuPk0lJBZiUg0v9y4S03SVzOp?= =?us-ascii?Q?VcGeNo1XCp6Nk4CltXODCMqgmlRws9uWRceNY42AQvB54qvZGkVbm/kF95dr?= =?us-ascii?Q?VQ8agK3Zl99K7zqzE86ofxo7JZimhE3bl5bPPRkPpfKgaVl8rIkfSBgCga9L?= =?us-ascii?Q?7n9dsvYAUNZzXTWAqFzxAgEpI8Hlv3OVL09SFGZrP3raTw6HFbL6mVtrL9u0?= =?us-ascii?Q?NqGxrQPFkHtP7HItl7CZXV+x0QN98gK/Lkck6KKktMGA9ra5ZdmTJI4JK49H?= =?us-ascii?Q?Q2nBhoHR5HTUN2ktRmZ2VRD8TZafSTl+qLvJd6rqzwP/LrlWvwDj6hBHr43B?= =?us-ascii?Q?TmuH0FGT9LuzHXxvdFHKwrkSXRMa0ffbZxQ3OtMufg1KTSWLEvalYTn9nDoz?= =?us-ascii?Q?4mMda3Y6RRNgWSnF+epu+YwD3YHHM/7e+gy1GHzMAQjS/dPz4vyLsmzlfnsx?= =?us-ascii?Q?pBmprayrOL/3CIte4NZDYGwNhQ29NzM7maMSWnVdCARuSiuhvrk/gRMypHei?= =?us-ascii?Q?cCHpU1/gW8+bNaQU/7U0DhH2NfUdM98P00Hjixk8XpQgev2lIeCepgepBJra?= =?us-ascii?Q?YwLw9/c2T4NVTeKfcnvlr3QDnwYAXu4qa+pxDyJD0rrVVUHNqmbc+QaK4nOy?= =?us-ascii?Q?GkcezqxmwvhF9DlNgtesc0cFYRMJMz8YPle7BOwKRJv+oYPuohkGW6Bx0pTG?= =?us-ascii?Q?1UBhqWIY3GbHwS3Vs5ZkBwvBcoVQNDKgRH1zzu+x2vlemzFUOO7SW0QpFNOA?= =?us-ascii?Q?AO/r4EC8/xRjGKyKGoJzMeTiW+PfmEF96y5CHc/HWjpaaDDj+huiVcQGAt9z?= =?us-ascii?Q?hchBueLvfvYK17M7hSwBac0MeUiRkLZqimTgy1eqaybnXDO4AAvc27Xnbtlg?= =?us-ascii?Q?YI8/REi/vweVEEhFHtd9hcN2IbRw/mddIke08PZU5sVeKA6YEGbntKXCh1bD?= =?us-ascii?Q?6F6d0iPM6laoZAl6g7jXvZbyOItv9+iJtsYBIfJu57WGkQ8WBAxgXZyn4xtF?= =?us-ascii?Q?0Ni5iZNl/mKke3yNFiHUV5gx6NM3BDqME9NA7MvJX0nD/MCq9QzUt3qSgTn9?= =?us-ascii?Q?uUfkzmQfLTH7LeT8Pfh967cJ9k57ao6NIZtcQgb+AQYerqpnZaWinDdbfF8v?= =?us-ascii?Q?VqGHlkHx0yLstQVxrIAhBOeJCOa6daEgUjmLnR8+XkQf3hkA9kb+S7+6qyOz?= =?us-ascii?Q?2j8sDrW08w=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: tsPOslrkUN6i6PgUBFx1bNn3isswd5sPQo1InIQE1A37fPpj3sv1dO1nL12rPG4Okiqq5Gi2GEVnlz1sTDZZ8FCa5QmlP3MA6aOGMXTktFeI53TQpkoKDq1KY3yUn9hOxezdew9ipyE80bSY5WykV2QkQiGGXSQzQjzCcieH1p+6mgQZouO9w3fpIQssfZ+5+s9TaofJqyfxGKkEri3Cse8IUU/VSWP6i55f0N7r3yBRhAtVhM5ylcykS0PSp/Cx5fz0WBNIKeBDCoZnoKnWig4t1Y4Ud2xmJB0BGISTit0qdbk5HRUE0GxBqXzo3KziK//17Gqs3goENt74VDdSzy+Jv3mgTDqzqkZs98tJDS4EtZvEaTpWd86hcWTZShiNc/tCqR+4KpkaIOjEtL3mBOeQfHpTaUX7v0tTzEPclIX1CbOPj5yszx1yOxGWt7VptKObfYJ7slOpNKRusDPJNLQFrNHf5BY/FZzlniPbP/yuNhJfHK495/r9shoLJFGTQ3q9/DUFawyLV6EvbZNhbEyVGO0FM4NsFLj3tnyfddUGD9qNP1FKC1oYVUi1iaEAVllgxHQIp5bIy1vE9KwhvN2HjPWnIcn82LwXX1R8X3o= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: a539cd4f-01d2-4842-2a2f-08de546d96e1 X-MS-Exchange-CrossTenant-AuthSource: PH0PR10MB5777.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Jan 2026 19:37:59.4218 (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: nf8x4Q3gbKKkJjIs9NEYoznSHAI2K+8q0c9ENn6/IbMzBsQygCrUicgabc4WEt63W9ZoM5sxKQtG/dL8YuTyjA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV8PR10MB7869 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2026-01-15_06,2026-01-15_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 phishscore=0 bulkscore=0 suspectscore=0 spamscore=0 mlxlogscore=999 adultscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2512120000 definitions=main-2601150153 X-Proofpoint-GUID: VV3bA8skipKAI2O72jgJ3sxsxDn20inP X-Proofpoint-ORIG-GUID: VV3bA8skipKAI2O72jgJ3sxsxDn20inP X-Authority-Analysis: v=2.4 cv=ZtLg6t7G c=1 sm=1 tr=0 ts=69694236 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=eQoyOrWFz78r1Bu3z2gA:9 cc=ntf awl=host:13654 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTE1MDE1MyBTYWx0ZWRfX5bMZnPd+9OGy 0rqJN4Zp/rvIitajBBFKzVdg3XDFn98PNl+ZUjBOgTQw0+3kGHXFqoC2uqmUgihjeggVpsBM3z+ 0Kf6fQRX/Uwvv0XQlNMXS3YvSgA8VYWgunSkiMEZVJxgx9Ye3ZTjd46iIMyGPBLO7JmL+0KoOfs p0Zdtkx1y8h+udOmLOVfUPBwFeUC3Edmawx28lPPhD+D0syO2vwn7ek2bFqf8OLvxsYvrqrzGzc QnI1MtFqaeuX4V2xPGZPK85Lt6UKLNLDF8KZk1d48MoLUduZnE0oI/PefcXEOuixmG18jjWC9k7 NDStUEegbQrrHdowJjkkrnN6Ff2J25iPVIHmD/ZKxrhrOQySNf2iHzgbn5mvwSd0Zb5btW+iPf1 F4znDREygRlrDVtxXYg38ERa9Gxqy5ULa4pEJ4qta3V8yDswPRam2+cksemPeYhdKfE34PCUB47 H1Xt15zIwj7STX+mcwtCqmeLE5TvEIzJEnQVV+bs= 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 a66889658fdd4..4e6ddcdf9bc62 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -3278,18 +3278,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]; @@ -3482,7 +3481,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 05:35:35 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 97EA031ED9F for ; Thu, 15 Jan 2026 19:38:58 +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=1768505941; cv=fail; b=WXv2Pob68mf6vQm6cBZOBsFG3em651dj8QzJ/FaVDUOiJhu9qrGE16Z2dhU/ohBUeJzvwHlrkX2PTC0GCS1WZWga6+S0egSo2LokN7wi6Ni5f8a/OHM9HKwsuqwVJKBGpA9dh+M9jIvrpCf18oHgN4QHUeqWH3q681f+XyGnyyo= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1768505941; c=relaxed/simple; bh=8Xsmn0eB+/1HPOxMrFlPu9HwnOujPfCieNIWQ9Oot9k=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=Koh+R0xaByVGfJYZRU9uM/vqK/YyxZen4j782RHvg4vt8DAW/3OHTbxDNfyobvzwlCPiM0ZUiEjnF8ijkUlAz4ei9drPrnyPQ77vNBNhlhdroBY5Tv0nnEtLxMIlwgpzJe3t68Qs75V03bplgRwyJqomxiZt5hMPvZlm45A9Y5I= 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=BJ5dqktu; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=BQ9Cjahg; 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="BJ5dqktu"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="BQ9Cjahg" 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 60FEM3AV1296007; Thu, 15 Jan 2026 19:38:31 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=Sx5VkaNpAExqgEkw5piLMn+7NTyL75IXIw2yxItIHAk=; b= BJ5dqktuRQ9tFvJwzi1Q81QlBtQpjh9SMprOsgeO2yOgyEgpeZ6CBitkluAflHIc QEjIf/l9jsFK2h/jvv0MY/C8NqHFBBkUngrbJDQ9qrcBD1VsY4uI+sUP6BVs2Ydo 3/O3bxMU3MEM02U7W59Cr/YMo1IDrkxqSzXSnYVCqWGNOhCOwO+cg+f1iCtAv2A5 gPb+IJ0Xe813/nc6WMr42c6XahV5/Pylavj21ZA387/GaQtRWEBYUNOdU3vTlfCe psvYC5Ag+6cJe7uS/IlGpdSgycXTLsMKhOGkE4+q2FDr8KCEe/QtrnAuhLOuzqzx /VHHaT96vUq5e7LxD/S7Cw== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4bp5tc3tun-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 15 Jan 2026 19:38:30 +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 60FJbCBS040448; Thu, 15 Jan 2026 19:38:29 GMT Received: from ph0pr06cu001.outbound.protection.outlook.com (mail-westus3azon11011033.outbound.protection.outlook.com [40.107.208.33]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 4bkd7fgmdy-4 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 15 Jan 2026 19:38:29 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Bm4TX5oFILxxtBHlzThL1a+tgY2ObZ+s35i1/8aR69KrdzbvHX8YzF4gyJWGLw0lxU85fuqZbvTU0JpuF18/NE4b+oqQMfq0xLy7sGZSooGb8TS/WR8qNPdDTZhaAw7NkZ8i4euaOkWAIibwF75oS8Vc2wuTOM2P5DyhnurX6bEyKGCbAcTups/YVFix0uGl7cqOerK7T3SSIKZjGdh7xkLiGF3TblWe8KlL2u8bouAcF+q+o6GtTib6a+eMrLohJxEFYxHDPqpN1m+TeiP0KwgZsFDGHqJuknv3LUgm2OXi+NQCH61RtueKlDMEAMidF6WIjLgzDfdF8ZjTRKrvfQ== 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=Sx5VkaNpAExqgEkw5piLMn+7NTyL75IXIw2yxItIHAk=; b=N8pGqLg/j/Upw5GI9OwwlR6/68nT17DeMOYnYwh6+Bxe081DYxvjZf792ITErXEN+OTNrcw90WHynI6fNOTXRSSrY6Lfegv0EBfzQreHAWOZ40bPx0ecBpT1AtPrKd60wz7bradfmVSxkAvoKTkWk0w7USkKeTOnzJDu1GPs9o7jbI8FdWxleOwjVAccA7DsbMBavtkRk60X6xxbEQwRWWnIlC8fbQIp9+wlpLSf8jlTJcbaB7Kc8sb14X8JvAxS8UVJxjgh6fZ3fp2n+bvqigQubnOGZlLutjXc3ALVIicIFakP1DirlnJ25q2cVsxQjFIqm9hM0CJ07HfHHJRegw== 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=Sx5VkaNpAExqgEkw5piLMn+7NTyL75IXIw2yxItIHAk=; b=BQ9CjahgHuZgVqQKWBzrVvCmOkAWBalGT4XkU6H5il0U3eu3uZ7a/lysrxeLlYr+gH1XTSQRgS7baxSG5TS0Pp9AhB+zmmYxORZAnD5BB5pQYgB14d0y2soSWQo4qXPEJ8VQU7V/kiZ2SiJ/CcI7eV6qqvrQSfF/BYR5WmS/mSU= Received: from PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) by LV8PR10MB7869.namprd10.prod.outlook.com (2603:10b6:408:1e6::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9520.4; Thu, 15 Jan 2026 19:38: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.9520.003; Thu, 15 Jan 2026 19:38: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 , "Liam R. Howlett" Subject: [PATCH 28/28] maple_tree: Clean up mas_wr_node_store() Date: Thu, 15 Jan 2026 14:36:47 -0500 Message-ID: <20260115193647.1695937-29-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260115193647.1695937-1-Liam.Howlett@oracle.com> References: <20260115193647.1695937-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0372.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:fd::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_|LV8PR10MB7869:EE_ X-MS-Office365-Filtering-Correlation-Id: 0db8c693-3277-4c29-2de4-08de546d985b 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?kp2usJWcgm+hKM3IKpSUnWhxy02vXSazgyxD5lQjFQWenj7RN0ilUq9uf47Z?= =?us-ascii?Q?3/CYI3Lcgri7EPrzis0RZHLLIfTuzR9WqR/6goMp5TVBDalh8/GG9jtAN88o?= =?us-ascii?Q?wwmFc2bZu2CI3igUzQ3zg2KKwlayikHIY3KiCyVHuJC9RXLNEslpZQF4xaOP?= =?us-ascii?Q?j7jS6dnXAtnakCTbNO50Ei1R/uxrxHF4ciJ9BWjwLRSeOcj+W+/2hvJ1mHnz?= =?us-ascii?Q?bWlwYqCZUj1ZCv5J0Klp/Ernf7oL/ttOvrCi0YugrqFdKd8V6OF5UUJN5+RI?= =?us-ascii?Q?2iZzixwcmqyZ+kP8p9N8PYYmc/8Jwmv8D11j7SIhYOonlLisC7mCIiP393eG?= =?us-ascii?Q?rP/wZXBstm4lG8xht1gRxN4ASeICPpyDUDk4xg1tYrWBFm2znLLQIxM8PyRX?= =?us-ascii?Q?mnQ42XJhQf5n3mejewsvtBCsC7RNV+chQG/d6xfdb04VeC8Ydr6ekAnlYqlE?= =?us-ascii?Q?Q/gpP9SdUsFqZgZpP9WW4O+KG1fqtQlcRT0Jbw4wC9hfzClWlTXEA7NHgFoe?= =?us-ascii?Q?lFG5ozuY68kMywP3WuysOqBF1TLBJC4KTsMNRQP0MaFYoj/nSDPnPFpgmbmH?= =?us-ascii?Q?uTnr/a5m0/aqEDZMNBkzQidZ4I4Y7usVRp7XzTu3m5a0m3HJXXY8w4+9PeJn?= =?us-ascii?Q?Tu9zODABP/lzV4V1QZGt9WAbpiXcbu1c0x+SguNH8JpJmrErFocbhvJjZ2dI?= =?us-ascii?Q?QKwarZbhx1vVvTWFKZ/N9AhmUz+49an8+3yN4Enbj3Rv7gwXPjzwPxK5Ypib?= =?us-ascii?Q?1v7kYf560FZ/lkshxadpPmWsKUv2c/5PnIeJYhxEgVyHMaDs5OCaxHXf3Zvl?= =?us-ascii?Q?t6VdhCJzuQcgys4LEgrQCoqkqVGm5wVfGOucuy8WclviHWJsIDD3g1WrizMP?= =?us-ascii?Q?9WTSPuvWE24tmhNy7La3xJ1ifVdP2wdB+JJ55YDGDl+tjp8DqdHu3LeKqZen?= =?us-ascii?Q?lXFFhBBM/BGZsUYOgvRMKTtr7zk5rW2v4G/29LTnub2sMq0UeMsnsw27179k?= =?us-ascii?Q?0FV+0xLcSNoaFp0C65YNYlg7TQ2h12nAcz7Lhmf5lyCA5zCoXdiqy+0IceiE?= =?us-ascii?Q?lRGIp15rJJkK9+IIuiq7jfnvrcKfvRFLLDpX5hfr3YjjDkwzWuVcuy6GIZ6u?= =?us-ascii?Q?Ll0qNq8ExZ2A16I5diQnIbMDuSxHj1off0BI/MYmVAGe/QIhQYLZqoFJi3jo?= =?us-ascii?Q?cFETXKbKta3K0Byj+YmKc+eHZpoRK7TO1BLqcSNmak/WzZz1i+l0jKB2Dm2u?= =?us-ascii?Q?eYgH2OG1rH3aFk3zn9oFYeYF64rysdUkQeeAo3qmKn0ND0bEtBIcZHeZ00Tg?= =?us-ascii?Q?pUoGX7wT3ecsCURAfK/IVGrjG7AJnZtargkrLn3YXNzwB1leZv4k9IZBBKQq?= =?us-ascii?Q?3VM8DIdYTZ+iCKh1dTbgqYNvZYca5yMvqsskCwKDSF+QRuUu4UtyThvPBo/A?= =?us-ascii?Q?t+0cY0Ioomw/RHXVqaOpBKfNHgzn9rKv8JFT/vfXcusQdZKehWfXm+zhSYcP?= =?us-ascii?Q?WR0296922bIljbniU3a96w5ozBWNDmekPsfQ42+JjRWyRY7m0Ih43n0hT4fp?= =?us-ascii?Q?hC2tg7R/Viq0psmpyGA=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?Yr192cqOoe1VCzv8fP22ELtSXSbq69Ni2uGyaYSNhqWw+y7dDhxxRlGczhCd?= =?us-ascii?Q?bDv6e/gSMPlZHa+Tro82StmwXWkVJRN5dSOe4xBRcZQdGVL5YVsyghp4bJS8?= =?us-ascii?Q?2STWBIgsmKi+AzK/YScWKKIjuHYOmhaaP/X4oGT21NGyTV+LU2DosHVJQkpc?= =?us-ascii?Q?zhevS+nJKM4VAmuhdV/PEAbxDup5k4kUKuI3/0t7ks0t0UCYxa3Ve8Xd71r4?= =?us-ascii?Q?OH56L32itmpJiA48aTPE6DrDLa+W5gZduT3kuaU6BW/4Sbnu2f723YDfQ8Fy?= =?us-ascii?Q?P8ybUPnuAfueHmomqdcv+MQ1tNyottPFFtWIIhwEXkmgdeQUNP+z6hCxPwax?= =?us-ascii?Q?ijiwRfhjhw3CQT8jhpFddUzbv8W7ldXJUd+1BgX73WJD42eMQ8hu+VnxptAx?= =?us-ascii?Q?wfD7lz3jFtlWfdWc1GvP5P07rvmF+pMAw9oju52Qx5YDbTrXhPBA3GFqe0ek?= =?us-ascii?Q?HHjEAk/M2NpPVbOhL4UGtUkBwmVeNUY/j2xXZJfyTDo/ooqd1fCSrgOnokg2?= =?us-ascii?Q?PtJifSWMnzuyx/s6CIwZaaibgcpJdn28DRC2zAXb0pnBVTyCGkM52OfXmTfr?= =?us-ascii?Q?DmWaxD2JegS6dPSKGA2KClLDJ0EGzxhhSXu6E+q8Fe0fxpAP/R29NjwfoUBG?= =?us-ascii?Q?rvNZmf6M98MFfuZfLFm5BtruEyf6YmO7QhVrJHtM/U3dZdBGG3dDgd/gcx+D?= =?us-ascii?Q?7XHL4+4kmD1lsfR1+H4T4MPG8iLvLvjXTwYwDmqVFfh4As9fOnrJJK4n7N5w?= =?us-ascii?Q?SORsbOsxjUcg0u/w2SINDD6nD4hKKRMUt/rsTEEPmUSJYny6Qr9O1hhL7xU/?= =?us-ascii?Q?fMoig3X3G8tRYL+yIw2nTcxPmGZdYHGW89czRljkKs3Om02+1+f4kNW8LZkf?= =?us-ascii?Q?iMcFMhTg/AsLs/5OiwAy6EmfVYBz3E1HjcZuMiZhALsgWNtjSY4ZIe9KKbe4?= =?us-ascii?Q?vBxAYic66fn2QYkEBv934t66POuU24HRZxDOqffo9/G9jWBR36zTYbrfBMHN?= =?us-ascii?Q?AQ72FsZkCxBWcG+zN+dQqLewkl/LECad8mJa24e59nPmh5dTNPkJRdsKM5tG?= =?us-ascii?Q?7oo/kt5ezXEssuig4ne87EKkQYF865B1cOIkgsoghuJrF3yNY61BcLIhipqK?= =?us-ascii?Q?mYbiP49dYjcC8APb85dCvS5UYllHaL4gXZxuglXL1b2Kl2isfHZK5ZJoV+Uo?= =?us-ascii?Q?1W6gbMxWohlOLSM59I8g4SPpw3H4+0JXsfbuhntLBNFyZH9+zALwllOzsCHc?= =?us-ascii?Q?BQN1wns26hRXnY82YvXUvNs6EegG/WM6m1BnxPKIJuaomjdPDINUIkGKG/Cs?= =?us-ascii?Q?qVP8bg5JAkMRdaBTS6PmQOtcTQvj0KExA8yMIEYnfJfwUO9KY1PbTYZ3dJmB?= =?us-ascii?Q?AofyIp2nu6GsU00Cdb0Td8huRso0GXSjcnVJXk7a40LG49ahMSovHaFh3nRa?= =?us-ascii?Q?X3Huhi2vBwa4khJFkK7TqSNU2GlyeeVheoH/FGc1BF+/E1y8bemeMz/V0hVG?= =?us-ascii?Q?ur2Jo92SyEAY7q9jPw1hlJ9/bVMgHwrIF7bobZyH6WBFIq477Rfh+kAbwco4?= =?us-ascii?Q?V7HnIXltWgRX/ka+lLE+odYk9TmIjgv2n6sEsxzDDGltPDflIc04wERXoHRO?= =?us-ascii?Q?oLtxCyML3PaW6Z4hRs8SWI1xjESqscQb3w4FChm1zST2uhjmug3SaSmo9/Eb?= =?us-ascii?Q?nUqJt6hBWmXUAYaVq3OeAlWz5HZmhJhcRU88VgtrELnFgS5viUsPLdMBd95M?= =?us-ascii?Q?vFt3oW7r2w=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: e0sKwr+3jmj+++T4oziZ2OZuDC3tmlmO8hwOjIEXhT0VToo39AAWrxYmLZe9cRKhxpBNABPUwEPSX+5CstzleOvJxneoRfzu4fIdKaYFgv86rtKA3Mxil9BGdZwSdtu6AGUs/BCbBgw6mPXG4Thn2v9axQp1GH0wzDTkFPRBWxGI5p9xvcNpNarzONsEcqlFPF5TF1+sbfKs/Enbh3kyeZT1c5yw2sdZboi86aF1uPJYsu1kcBwLkYd26GeidR6BFPgFH1eMRytSShNw1XhNVCMeolPpy/udTdc4tiZDF3CFyv6ztlwQypXw4aw53rvj+/FAOWm0iudcGwhJI5o9IMH3C6a8HnWdDWp4REw8EYCx26KUPk9CKNH/ELftKQdRkk39HIjeHPU6WYWgANjSIFhES/NaZFaNcy43cBH8p5lhQGFxzKY2QWSO8ke4bPB4bvimx+phwf6Mb9g+8C0Fu3iKs0vWpd/7xzNCwA/Ko4GSkaua2khNIhgUA7/iGdfrnw+3t7Qu3mrY2EgBB8aE3e9pXWBQy5JvMpr10kALMiOlOjXUBTocgUYjK/Lu1N/X9uKlWUBk9fp5JVTzbNj/5V7LvqX6rdt4p+2vwAxCGEg= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0db8c693-3277-4c29-2de4-08de546d985b X-MS-Exchange-CrossTenant-AuthSource: PH0PR10MB5777.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Jan 2026 19:38:01.8636 (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: bpv/77BaPgdG6z7MeoLUxFWYETG4LOzOklhFbceoGfB4e0A4g8/DXdlgvd0BLs0rMYl5+U5RpZCChlkn4e5IHQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV8PR10MB7869 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2026-01-15_06,2026-01-15_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 phishscore=0 bulkscore=0 suspectscore=0 spamscore=0 mlxlogscore=999 adultscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2512120000 definitions=main-2601150153 X-Authority-Analysis: v=2.4 cv=XP09iAhE c=1 sm=1 tr=0 ts=69694236 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=I3VoEf0meaw97abzItIA:9 cc=ntf awl=host:13654 X-Proofpoint-GUID: tbQSHNVNTAfPheVR7yDGosGIKVHWvFzo X-Proofpoint-ORIG-GUID: tbQSHNVNTAfPheVR7yDGosGIKVHWvFzo X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTE1MDE1MyBTYWx0ZWRfX7beFC9WUWdJr WNu3wNln9fl0951fLVc02nf/RVJcx3wXZ1FFOKo9mhCncP1ybazqv1XP1dCBgP6SzhukjfSksh8 VWVqL+saFZTddrZQF0qGgKVLmR49r/EEtrnIvEg9UtaMkGZzLA9z9Lf1SiZwP5hU5hkZjjRfrku lloXNG49QMG21YD7CQzOqwqvgB8gMZAL3M31NVU/mwl8vv/po9fAV9gnPNm3IWFClgpO4KAssNX 9cXKsuZOBm1EjBRiHK+VRrBbeqGpuTzzvBQmRr04g3EKgRwMjwNwINrdeFl3tGSShBDI4lA4C07 g+zuw03oln3FsfLr/ZGU00t19xzz07uaVzy3ekbQBdD7xzWk2gatGX9nWMlGs6gG028QDiilhDf yWqDpB1vTqyBUERns+ZpXCHy6OfZgSBCoH8ZCfGvfSLJR0wISOiptobqN/mp6WVDiaNzLwpQios hp4vD7mLSDZiEs8tXpxQK5+Bz2WnJVC7LW/7C2ek= 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 4e6ddcdf9bc62..c6890512e1a22 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -3091,20 +3091,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) { @@ -3118,13 +3126,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. */ @@ -3143,7 +3154,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 @@ -3156,7 +3167,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)); } @@ -3472,7 +3483,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: @@ -3487,7 +3497,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