From nobody Sun Feb 8 07:08:28 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 1B01F356A23 for ; Wed, 21 Jan 2026 16:57:16 +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=1769014638; cv=fail; b=FUVAt+lUuuBoqvsZUIClFQY+mb5uAQr5NLsZyblKSOH85m4lUnFBgN6z85cj3QCNS8vfLIasbwFZTOyhE2TIDQaDmuJoMvP0lck+5LD0c9OOAHhq9RXnL4gVC3kjmJ/RBjLS9D5LMVezfJz8wWbIR8hm/Xd+R7S/shTQ8jyju7U= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769014638; c=relaxed/simple; bh=TWKW3hgjo33tDEizdPHScmEarVaNUQwpMO8wkyTg8IY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=K+MA8C1p6oznrRFs90N9B8uQR7FR/s+1M10yWxjzXmOPFN7b5EEDHyDCGL3EGWQahumszHLfzUAt495nAgD8yxGnyHAQrtPKzCrXjGGepfWsfwwFHElRkEiTPK1nFySW8vArN4Qo2acmlu1w0ODkvKRkY00X8Jy0IcZLZtTiw1k= 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=kDeXKUN6; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=GKKS2R+q; 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="kDeXKUN6"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="GKKS2R+q" 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 60LCBH6e3418516; Wed, 21 Jan 2026 16:56:53 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=5+paSCMylJ4zGtmQlkiq9rkiWuy2a+5XA3oGRYJ+hhY=; b= kDeXKUN6hceH6gs/zsP7RJKKsaiCD/fNTobBMz9j4YSs9fUBYFk2X7gkRPLcsM9G iUqwGwbVUHNGw5nHBKbes61JBAecQ0/S5kGgrEcEurQewNIxh+C4RdAMGKLhpC4F iiedh2GTdQ1vXIiICRnrRcTuZ7HWJ++I+d5FD8CwWeedlR5+hBALopSsYQ4FYrBh uk4ZMTF03NZk1V3z6b8vc3x6THkceRk04u9gyl22xW2IZ/pe6rFR9VpPShcvGlpr qYcvRWKbUZP3MeEMw2SWIkueh8AyJ/SxOpCg8m/3S9GMTJTKfk7eGujN5coLrjD7 ou1qZT0h7mh3p0Zs+oXtvQ== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4br0u9pe69-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 21 Jan 2026 16:56:53 +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 60LGKKs7008437; Wed, 21 Jan 2026 16:56:52 GMT Received: from bn1pr04cu002.outbound.protection.outlook.com (mail-eastus2azon11010004.outbound.protection.outlook.com [52.101.56.4]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 4br0vbhsfr-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 21 Jan 2026 16:56:52 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Ye3tlgPT+AjadjaZNGqhi7JKuqw4/RSjbq+It1k+OsQmi9owsZ/xKp7H2RAESV1Wy52bRL2AKTizo3BrfR8fS25YWyyNFAwOdluQvAkLkeuObDe5lv2OJmcXXpsk7fDwjJU8wUT5vZLBODrFmaf9grQ618nxR67/75SEY5RTWZ6Wp0p+o2V1B0A1Gw/KZc+Z20C/1gM6Sjde2FPKpL7xNTqvAPAJoQ8xK8s7YHydzLWbBRcDAhtOv6Zp05FgE5VCwBUz/Sgr8drTwlIFVbrMGLXJwWa6JRY9Tu//4GfA7tUQjnl2esP8Cgd9qc5ONYV5InsvxG1gfxUlp5Z/aRNfaQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=5+paSCMylJ4zGtmQlkiq9rkiWuy2a+5XA3oGRYJ+hhY=; b=dUeMgoz1USPo6ncRMzuwhcQzHx7nSGdy3Y+c2VzO+WVWRDAPgC5o4KvXMVEctS7/a3cnqePsXDlxvbLWC/o3q3TeiTjyZZ1ImDs6eVI+jFvItXpfUNgeQaL2+95XtOuW72b14NRrzmkAu32cYWasC0MDh1odGV6LxCZvZTfx3t1utueJF2z8eMwhaIjUlVWG6w2MK1t7qAWvCQlx+vgQoveZRbrC8lDQb663mT0ZzEnmYbZHA6C10ejQUlZk+zv/8wfLi3ckL30tmx7XsxAxIMGge23kulbvSgETWGnHm0YaVseo5EumNhiEEXJiEOU1nBYwGjj+QxzmFHRWdFG8xg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=5+paSCMylJ4zGtmQlkiq9rkiWuy2a+5XA3oGRYJ+hhY=; b=GKKS2R+q+nJSLN3pG/xoB0x52lG4GmKaLneHquFNz61EEvVk/US5lvoNBJblm+cv7QR2d7pgiZOKChrxO1zClhsI4MhBL8el9HvR8+0BUJcAFfMw75bzH0yCib3+gLeCRaQoCEuz9ec8r3fkqCZfBKar6LRWTXbUFMnZJOY0XOk= Received: from PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) by SA1PR10MB7712.namprd10.prod.outlook.com (2603:10b6:806:3a3::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9542.9; Wed, 21 Jan 2026 16:56:44 +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.9542.008; Wed, 21 Jan 2026 16:56:44 +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 v2 01/29] maple_tree: Fix mas_dup_alloc() sparse warning Date: Wed, 21 Jan 2026 11:44:58 -0500 Message-ID: <20260121164526.2093265-2-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260121164526.2093265-1-Liam.Howlett@oracle.com> References: <20260121164526.2093265-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0278.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:109::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_|SA1PR10MB7712:EE_ X-MS-Office365-Filtering-Correlation-Id: cf796e96-1b90-4e5d-8c6c-08de590e0e76 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|1800799024|366016; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?lvCvQhevJ672Cwb/k9EamN/9jIaJCXardjnPfKw2nY7i1Nl3GgrtAQxexm3+?= =?us-ascii?Q?I7xwhGmFI/zMZmqCNHGyqfrd5armY/VyuvIiXeyDbzaOyV86+tGZ619r1vlg?= =?us-ascii?Q?YewxX1fOmc1lhu81fGDTumoxe1aLvo34xdNZY7g+z4dHKwPfqd2K8tOoIXnD?= =?us-ascii?Q?WDuBc6OYeTeUi7cZJVvnPOrON0AREU3oD80wdGCslRODouaWKhkUDYunrqcI?= =?us-ascii?Q?IA8zJeYWSqODKzVuug+lnGWUoaXC0AQQcyPY3kB5KQlYCnmOt56QRp6cLtL/?= =?us-ascii?Q?FFFyLW+2DcJXjlX0vfbIlj1wceJFDLT5NT43eAA4t3S6WAezlJxoLy+NY3EV?= =?us-ascii?Q?Vs1185kCFgkvzpt34PP8BHSFfYYCMLqSMfvTOdw2BTv2TOyQsTlN2wfK3Ph/?= =?us-ascii?Q?wkHOvvqXtVATfdkdhZGCel0pJNyqNM+wWLcpGIu8EAWqw29uhPtdpHGZKIbk?= =?us-ascii?Q?PsPI2pAlt1dJcxKD9i/fCObAEljCysFKPsRWos2nywhxV2mpeBWTsib3EAo/?= =?us-ascii?Q?fGkmebRIhidOGdzkLdPNdJdzGeRcgSXXSftevcqHQ/gOiN9RMuqoAMNY8IHY?= =?us-ascii?Q?rXaxOeipBkAavb79M9mVyCceobmKVYHjlBrUs743N0n96uEJrBRxFIfQuFJa?= =?us-ascii?Q?Imbg5UcWbGMI0iuAXGKh4y9XQQHemA0488ORVmsC1TO3P0zBprbxUL9RppXi?= =?us-ascii?Q?1h+b8KaiOIPzEk5xATLViL6sD01JIzCSKQvidgvat+NlO4aH0yJUorfwLMlD?= =?us-ascii?Q?A7sElRBmpZaawFT+8Dej4UyZIPo6XXrO8p52AYSW5frfv7d0soXAzYqYatdt?= =?us-ascii?Q?wtd+4bYU/2KTL+DIPYugFW4PCqZub07rtdH26FEF60q2PrICF9YK1jEgzFkB?= =?us-ascii?Q?6SoCzO0Ob97BhmiXFPMR7OVjkEChUTOSxIobC0kjT4gtc/9bEDKMd6YZP/Zd?= =?us-ascii?Q?qI0lXxMIIoE/VwSGU/maAqC5Onb5aeciBrJO8+0l0IyJQ3xAICbzHZOP+Utt?= =?us-ascii?Q?Wi8aPK1plXrB954zPWmJz0K/VG8eqjvoPigyUp3fgNw99pl4fAmHwEy2UxgJ?= =?us-ascii?Q?IExP1wMnTqNylwOR18cYdwXf3Cl9TLo6AsmYmOK+nBXcVP98HGQvT0n1vfo+?= =?us-ascii?Q?G7F9ufzg/5TDyvM6Bual8LnlFc7Nu7jDtf1zFUdWrDudSrze1Y6SglBgelFq?= =?us-ascii?Q?l3oVpAZwTfgk+tME5k2+90ui8gTA/xgCUJiKZSzCNNbfu8o04A58vwOsKdUN?= =?us-ascii?Q?xcPMs7x+k2A60lw5LY1t6T4yEI6znu38G542hhmkAn/s+CCTGUtg+u5irkId?= =?us-ascii?Q?1KnkDD+pHdJc1EqbpWmMC9aeoooLu3+JqEylcdpZl38iQ2xPpOvj3r/z1OoC?= =?us-ascii?Q?Rm4HMx+ypvxUynsaR1P5xusZMFiibINgXQM398B1LeNBF73JwvUhel0rCAPH?= =?us-ascii?Q?v1qUW+h1KW2Icn6AwEVq20kzDr56cRW2ciiG1AfFp0sLiroziKX0bNKsC25g?= =?us-ascii?Q?5pDt3YEpoLxpOmcxpyiPHkU3EEnAZOP3iyh6L9D5qBwNDKkOmLuBBQRER/NY?= =?us-ascii?Q?RQrVXpwUc/m7i0ypYoI=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)(7416014)(376014)(1800799024)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?bEdOh7oG8vLuOqIUvhWNxsrZdKz3+cyb2qQpsJ2F1vUqiKh0UgzC3WOkFKGu?= =?us-ascii?Q?QpLDloM0hQuRacczdlBowzenIJErMele4d5nAfo8bx6rq9GZK+dRF3z4rN6g?= =?us-ascii?Q?nYA//S/4YKNObYhIEVfbqo4MdWivG8x7K9SnodY6X9DX9Cff05SjciTrNlww?= =?us-ascii?Q?SWNndpbwP2fKjMB7tcB5uP4CddSEPHfrlQdJanG89waHrkz5Ze6GPV6jJBIo?= =?us-ascii?Q?8qVT6yQwK6kbpihVdrdE11qfK/ilnGHzHF7jmJ9f5mzcGNlrFdYMwgJr9LpT?= =?us-ascii?Q?x5SYovqLqSy+0hX+1YZGYBgr7Tk5uStH6WjRo2GIk4wV89sy5e4z1c1yp+9S?= =?us-ascii?Q?j6/05S3VUtOw3nOLC7iceuqs6SefMLWmREUVlwKLuA6a+zSsLJyAaeoAYeFc?= =?us-ascii?Q?X+QNuZbvyRhYEKv5L/nWhKfkKXLU59OfVXJy3naeAQBlBy3P1H8DkH0sPcFZ?= =?us-ascii?Q?GpaeuCHPQpvmLnniQQMv7kxZ7LaZ0xd1wmVKN4dRH0xnVbBf0MBFrnOMG+K5?= =?us-ascii?Q?mcPKbNEC+L4NDPIQsgaX6pFF1++9TUmBFAm3YwkPHo3GkYgv9EozTJUIVgAE?= =?us-ascii?Q?Kgcqx+Opo3YhRdHFP5eaT42LNoBewHdxRC3ipOTpVArrh5Fbcf0lxR2IjbYh?= =?us-ascii?Q?mAYrhT1rXlqnLscDx83SFhr93aju7xzDCgQvWrlcz4WUET1QSsNxDcK4bGrF?= =?us-ascii?Q?0l5F6D00dCbJt24FckfgnpDwuwWpkFP4PmPOQ4hWZpB/RmHTj6AfklkjgF/9?= =?us-ascii?Q?jLqVYov5QGFr13UFIdb/V+bJy7r0mjkzLItlJwVE8AX1bgUjzlTMu5R7qQDI?= =?us-ascii?Q?a4P/qOuQFW6JIJFvUuAfI/wHcMRpgWJg78oRgzIfGFjx82Zva/tfNOIeXt8q?= =?us-ascii?Q?S2u4Da/1McyOTZotHNJQl8T3Pgy6Mb3ZfzxMn07B2FCZqfvJlC0QaxlEC5xD?= =?us-ascii?Q?qEYZLKljogpnOXvc3IYN0vvrBzNf57qInq62K0EHLtlxdUY4w8NII9tYN9iO?= =?us-ascii?Q?bd+yJ5oq2qEfxo90QhyEB5/igu2bmsi/0A4pMKhAESS//YHGPg5LKZF4isCj?= =?us-ascii?Q?UulNInPyF0E66ZbpjR6G+y/8rVQM7zc6Co1hf4LOikdp7XvHqWw/KqtRojSx?= =?us-ascii?Q?0b5qDPJ1jo+O7+CiaPEifiEphVANIfGsjO4OmXmNJ+sfCD5IYD2r9AIm/zU0?= =?us-ascii?Q?0yOCb4wH7TySBT47WmK/fLbB7QG01RclEZYKxVvxT8EXM9hFxkxUvJTqxuQ7?= =?us-ascii?Q?8KrTRyJ5dxZWi1PAn7CrpetkJZTm88zaAQoPy0i78WIYjWGZ4j5+zkY525ly?= =?us-ascii?Q?c/CSBmohHv8UDnazRJog6m0lTVAp3v4TmK0/+dhurMWbWsolcgFUt0ZpliYP?= =?us-ascii?Q?8gOqSrKd/fexz+e1CLSwUr/m2wfigZ4V+hpvQS4Kn9fNdmB+FiarluCd7t+P?= =?us-ascii?Q?82PvrX8jT3DktZXMmV4tA7x3DeKm9ClI2F3ZhKDVpK/ph53XRJQvrTwqJaXd?= =?us-ascii?Q?v1RVpGcEIZr4ftpWVSUIbRnS9kdetXnsnZu9qJ4Y0MtcVUm3eVUaBLFmlPoB?= =?us-ascii?Q?s4eZN2mjFBFdRK6EPSsqPoWwRyKdXQh9S8b0fTQZ3iJo2Esg8Spguit4ZkJK?= =?us-ascii?Q?x0h7CIgB1kOXNTeMFiPN6XZQ2YcVZWo1xa7d/3DHCS0NrK/QxwDxOKv1xdmd?= =?us-ascii?Q?Pjg9kccdLtgABpEIeJMnnMibp7uHOifQGwVXNtFOhLC3JQC3oSQEBsDDpyrS?= =?us-ascii?Q?8DZZLogI9w=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: HOtRbPxtWZ00DPJh1mhQDzn5Xj1kATMQ6p0omkCrDpbF+FA/hLqMRIRXR5OHkWgHWujOE3WFHdf9bmhYFMuQj85cpfud0gLcl8ptaYroCpRKlZmhyALbg6wF0yV4r3ZTH1BRTMGXDBiNQntUiDBrs/movdtEytAXBphZRtlMhnYINwVIJAy0ksnx9WEJFdBISfpF+tXUuNu7x7vXw7b6pQxKf9B78XJj/OjZEeOqB+v96ygnpjQpOiFBjg3JjcOeI0sAEMHYYNB2qvjDnlsHerB6FKXZmcwF9/R4SZZSfkIkVTND6zep40xpqptxlOSBOETpJxm7caSKPkoM/BNSJneY/Wa7IRbjC2xnrCZO0WfusJA1ZbNX2xHGGs1lhZAsnbnX9VsDarumZcFfthmPrFiC7Rv3Vp/wSF6ea+1yqEjlwyF2Deflb9H2AWBJe2y9FHS4dsKr+CGFoK2j1XP//Kjg1QxOQEZzDO8gUthxIKyOlzDoYZ3xzvfjCJcIECOLWktNiKh2FgeKc7KdC2i+yQksy3scuUir5kfM0zOXE1nH+vUa3A+/4wEzm5+31RI4ky89yFaTWTaMqRbDUTnws0b3FdubHQHjTb3lRLD9LSA= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: cf796e96-1b90-4e5d-8c6c-08de590e0e76 X-MS-Exchange-CrossTenant-AuthSource: PH0PR10MB5777.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Jan 2026 16:56:44.1219 (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: Xy4LyXcmW3GI8RTlPstI4ESeWWOSszKBskPiyKfBpXhB5YeWBByNcil8wMFSltO2RVpwWKFKFrp410/ctyW9zw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR10MB7712 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.20,FMLib:17.12.100.49 definitions=2026-01-21_02,2026-01-20_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 mlxscore=0 spamscore=0 malwarescore=0 bulkscore=0 adultscore=0 phishscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2601150000 definitions=main-2601210142 X-Authority-Analysis: v=2.4 cv=OJUqHCaB c=1 sm=1 tr=0 ts=69710555 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=Y5ejhBfbtcslctzzM8EA:9 X-Proofpoint-GUID: upndLhvKX8yGBas1sQWfJEn8xcsE6lym X-Proofpoint-ORIG-GUID: upndLhvKX8yGBas1sQWfJEn8xcsE6lym X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTIxMDE0MyBTYWx0ZWRfXxLcYVx+zEoWs Yh1ONNGEGqLizKBwdb8P5/Ynp7VI5qwbhMB6wkLN0WyCId7qPWpnCy57YbkKiJAWJgOe/acVPYc SriD7W3tPVyYKYRxHq6fn4uj5+4BiqoWXsS7ABXfn9+IBPD+u+iVzCwy3dc2hTilcb5kFUWcHu3 WzfChUi4N7qb+esvg6MHcGqxUectCEUuyxss3g/Ddtbk98hJZst1KpEKB6NWv6dDxdJuce04gaM qSEKZllljpvjh8JbCGyp5k2b4Ul8nu/etswSDRxIEN689E/lXbCxry55yIP8MBt64OAQrs5+V81 iZ3zXcSIkACXw1o/GJM3SFBWQcCVbg9uWoLzZ7r9zwRed7Vfz8Og441PJ1y6jsN9zOAdfW+YF1f 0FzKu4FtzqQ9Z0SXJvRQ8ubUMNDPc9NlHVapbdWC5bTIeTYxRxyDAHKb3QCrMvLbeLhoZkyfmKK X68wfXou0JIuchqU17Q== Content-Type: text/plain; charset="utf-8" Use RCU_INIT_POINTER to initialize an rcu pointer to an initial value since there are no readers within the tree being created during duplication. There is no risk of readers seeing the initialized or uninitialized value until after the synchronization call in mas_dup_buld(). Signed-off-by: Liam R. Howlett --- lib/maple_tree.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/lib/maple_tree.c b/lib/maple_tree.c index 5aa4c95000188..0e0158ee7ba55 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -6260,8 +6260,15 @@ static inline void mas_dup_alloc(struct ma_state *ma= s, struct ma_state *new_mas, for (i =3D 0; i < count; i++) { val =3D (unsigned long)mt_slot_locked(mas->tree, slots, i); val &=3D MAPLE_NODE_MASK; - new_slots[i] =3D ma_mnode_ptr((unsigned long)mas_pop_node(mas) | - val); + /* + * Warning, see rcu_assign_pointer() documentation. Since this + * is a duplication of a tree, there are no readers walking the + * tree until after the rcu_assign_pointer() call in + * mas_dup_build(). + */ + RCU_INIT_POINTER(new_slots[i], + ma_mnode_ptr((unsigned long)mas_pop_node(mas) | + val)); } } =20 --=20 2.47.3 From nobody Sun Feb 8 07:08:28 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 4F7BD3587D3 for ; Wed, 21 Jan 2026 16:57:17 +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=1769014640; cv=fail; b=X92Z8zHFO9NENXQLUQPRJOPz3vXFNhsFQjGaiuz1VLAJStWyY8Wh8xxDtEomK27D4YGeC5T3XaF55gNSLzk8fYtyBb4kyRLIzTrkKgFwM5RMIBWKPwyky+dR7kLFzjdOq7pZsU6xizZw+17yddvcDWp/rf61O27dIIggxEaORfk= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769014640; c=relaxed/simple; bh=BDrFDkBat8MATdocoahHvYfm72NFuwQ50spoKWVsobo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=Mz3wasbVKD1sCLRYbabgO8K6uslJLgCS8H4v9B9+em2SnlWOMJmxC2DwcjSeGO60rEyh5DwlL7LZGjVHTtqHJvP/l/YjW4IzOotB5eDgZcDHLjWp4xEQnp232/KdqSb12EG8lnBmZmNY9lF67/UaIg3YIX+UrpITNx2f38yElDk= 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=f/GYMYaG; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=hQRoUMzp; 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="f/GYMYaG"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="hQRoUMzp" 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 60LCiLQs3523936; Wed, 21 Jan 2026 16:56:54 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=MR7uPXwZ2+qW4GqAtFuWdYc76VZrpAB9Uw8TQSQ+BO8=; b= f/GYMYaGiho/iDqBong25LEZ8oP7WNoWX405tUwbofHxzgRHmRJ/mHXTHACPhYyW 8A+kQFChVcsvEOV0ETJ95rpmjCPx9M+66DDZ7hRqDQY0VYK5E7A/Rwtpmxn5AzZv kFA0FO7zj1UXfCQ9Grzy9V1892robdjvYIRuHTfTs1FlNf3Zw7G9ycMZlYk6ZUZj j1i0knqUYHHDSzQWAorjg4KklLd2wcTrMOPe0kM3E1PD4yPBBlWjXfVgRXgWGzrk bR4iOoIe7wtxZ4H/VvOQeezZE8yA9TOLaKxWXT1SMmyDwB/wvsSzMplRLPvvqFJP /tIIU6whR50CYnp857d4Vw== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4br21qee63-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 21 Jan 2026 16:56:54 +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 60LGKKs9008437; Wed, 21 Jan 2026 16:56:53 GMT Received: from bn1pr04cu002.outbound.protection.outlook.com (mail-eastus2azon11010004.outbound.protection.outlook.com [52.101.56.4]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 4br0vbhsfr-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 21 Jan 2026 16:56:53 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=qMVuL/JUImnxKBmNEzrxaIngopcXnDXdKyWybbED/ck3nJJnzKl86t/2XclmeqJDFUryQfGsqBVks5otY66N0fVL+ChzQiwhkAJx/bNe4cHVVkCeFQ2/XVfVKwBkKzuqy02Hw37jJ2XBIQA2+bDNtwjAsRT2u8rCy/tqkOHbFIQ0rAJ69oa5DAp8JshHWP+uesJMrHoJ5vYqe/50pAWUzm7td1bnEvzHK7Zw1XW1eystVS8DVSWog/S/5CF3Ss8q40gRaJ0EGXQKjCnWI7a111rXXVUU2L4Gh5ZojtEYd0msnpJU3keyo7AG909rNEdPTFIcjHpSHVxcwQd81sIR+Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=MR7uPXwZ2+qW4GqAtFuWdYc76VZrpAB9Uw8TQSQ+BO8=; b=MPcDvXQFz4frFm2L006U92KWKPJYysdfwVBUz3v2DIVlhXQKjH/25DCgtj+mjk5E/7GY8EhjiSBxmcxUWvuC1FAuGkSDRegAYiC6RnBfsSNW/ZAZhm9Dgd45fmoqW6TMkwOgImZ8xeyzH/9d1biEUg2N7uJ/j3ENcReDyA26Z3rLD7Q1+J9SlbFRvIY8dQsv278XIrFr9nzRtQQt6dmRDsMGTtOP4EbxMQ8tiw3aZkZd+ni8NEcotGhO24pJRTwA8WXmBb5xpWr2LZxxmOTmr+A0benbvXO3T6Gflk+i68gLEAsCjAHBiHKDPd14kKCH2m70vz3Pljpe4NuCH8pyqw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=MR7uPXwZ2+qW4GqAtFuWdYc76VZrpAB9Uw8TQSQ+BO8=; b=hQRoUMzpP9aEMws8ml3F0M/cbymoijJZRnvBem+RdCmv/QI1L5BuoBsUr69YCfV9wSlDw02KUozQyF+Rw5kUpHGdVFwBbfCwh1isyoiT0rSC9iqu/HTbySucFkbJ49m2E5+y20PwEXBZL0WmoSLZ9sIZLvomOV0t1dO6Qau24Gc= Received: from PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) by SA1PR10MB7712.namprd10.prod.outlook.com (2603:10b6:806:3a3::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9542.9; Wed, 21 Jan 2026 16:56: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.9542.008; Wed, 21 Jan 2026 16:56:46 +0000 From: "Liam R. Howlett" To: Andrew Morton Cc: maple-tree@lists.infradead.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Suren Baghdasaryan , Matthew Wilcox , Sidhartha Kumar , Vlastimil Babka , Alice Ryhl , Kuninori Morimoto , Geert Uytterhoeven , Arnd Bergmann , Christian Kujau , "Liam R. Howlett" Subject: [PATCH v2 02/29] maple_tree: Move mas_spanning_rebalance loop to function Date: Wed, 21 Jan 2026 11:44:59 -0500 Message-ID: <20260121164526.2093265-3-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260121164526.2093265-1-Liam.Howlett@oracle.com> References: <20260121164526.2093265-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0274.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:109::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_|SA1PR10MB7712:EE_ X-MS-Office365-Filtering-Correlation-Id: c07f6fc5-b4a3-425e-d0a5-08de590e0fcd X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|1800799024|366016; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?RW8TBlm2F3H+HAh4ulHDO93W3ROQiii+u4hjAOcXbi4RJdzZYXExgb6N4m6D?= =?us-ascii?Q?3T6aMR6xGSLjB0gR4VT/DnCSi4hAmk40hw5xmNR5b09ZoHroxpFG8eBNcFxK?= =?us-ascii?Q?bA11FgiQjt1R+FgmB9NpMBUU1xnw9AL2Gl+kdI6T4bxwRsYBnhOvHRcAwpxt?= =?us-ascii?Q?2G4b6VZKogROakNXgiEJ2+h04EBXzGOPfcCeNJQfXOwc5cuWf4iUqaZIV+4X?= =?us-ascii?Q?rs6p9qMQdq/If5PzK6eCu4p+sq+umVR1hEFwnPDxzC2+XuhE0mXMbSxIUdiR?= =?us-ascii?Q?NNeN9YGvKSpKxGLScbUHUCW5aXlKZtz8F0xyZLioJieIWjEcH2VDLg/3r7+3?= =?us-ascii?Q?ZdA26vaRyWOqEArapXL3pY9r7QIY7LhGWEEFTsqvMoLOnyBDPqXJh/t3Tuz4?= =?us-ascii?Q?AGbKJl7mtY7pGSgS6rM2eCdM5rbfORndgERWnRotTPOeBLAWHS33J9VpLOVc?= =?us-ascii?Q?DcX05MmXX54KLuwXuB2lp3V/MljbAUCyf3Zi+323Lpiolv/oWwqHlETp/d47?= =?us-ascii?Q?RREh8iMrLrOJ3WGWVas0IKKQb4iekW+g9zjW+UgcCQHzIdRWSrnpl8HZpa7b?= =?us-ascii?Q?5HpSZztb6QFd9oZhb6zaE5UHLF9Mn3RxJ7/X9eqomf34lV8llR6bShpkUx0N?= =?us-ascii?Q?fbBTb8226Fu3peXWL58xDtTm9klCDC52NvX+r9B8l6IL8SxW5JffRRpeXsQg?= =?us-ascii?Q?bz2WDd4Oe1C8C3m+y9yqa8JZw4hP3xhU77e240HUwYLxXK7MW1rdh6R28ZZp?= =?us-ascii?Q?mCZg/Wi5HYpGXvI3p1xlOMr/9l9xTTnDrrdS0z5ZJ7T/nT6HCgycN+4NBlyq?= =?us-ascii?Q?gSvnN1FkkYR6kDDMZuVeRMDGVW1SSWTry2uHYJDk1r/ReRRvvJbsDEij9zOI?= =?us-ascii?Q?rP27u46mJRjjFSMnSZvOLeBSj1firj3/fLSdBdky+YDCnTU6rIZHLbiNXdlb?= =?us-ascii?Q?Uo2lsBChcyrjVDYF7XFuhi7/hC+9kXwYy3/Fs7JsuD7ab5LRZ3npvgCUUxGC?= =?us-ascii?Q?+h1Qd3v1xJSoz3itYBlUApelBQ83RvRGfjnEqSTBqp+8fYBnBHUUljg17zlh?= =?us-ascii?Q?MjhyWHCna5etPSlm4Y7TR4beujkavpyobYk18fCwdlGZSni/2j+LmwvOjhnK?= =?us-ascii?Q?gxNuqvVk5Q2jwMZt96t5CsdQbM3DLjre5oYpElSGxZxqyHxCxovZPgVArqPe?= =?us-ascii?Q?AR6tb08919DpTOidtww6q6Jb0HYC4r8dbFvDUOXDrDhAe1ei0fCNEW1aNUoO?= =?us-ascii?Q?ZtkgY22kqmqaNoD6Br/DV5Ou1BGmhVScJZDYq3UH/FDgNmZuB0RwJkK30fdd?= =?us-ascii?Q?F0xEo+etYgHMb993lDeLhxB3SHhEB0ttgNzoS0XNK8Td1SGSGov37PKApKE1?= =?us-ascii?Q?rttfWxxTyLOoClLYE8/Io26CSfzkyRtW+m2BWTgNRU0TV0ccvFhGHaFi+c0m?= =?us-ascii?Q?oilZUnEaKwdFtMokTVi7PWBLf2q1wyq8usoXOQ3jkKUp/jpwvPVIh/GoXeZ+?= =?us-ascii?Q?imheDESWoMILtnsNBerju0xB1FC7zfDtI61F5a6waN4NxtoZDNQg8CHsVXVM?= =?us-ascii?Q?NAcwiyX24Ye4FkW8W/g=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)(7416014)(376014)(1800799024)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?t6nN7v6yoqzYmYFW5ZSUe/oq0Zmfr7HTRyNp16Ec5wi21sfHlgEw/4+BXWqF?= =?us-ascii?Q?o+dzthEHf9mdtyobdDVPP4/3+GSxXcH9cERUmY6gTbrB5a/hb69OcXNFDAl8?= =?us-ascii?Q?d9VDBu7nNJazq+k5raGvGsiDWPcS+6Q7SxG4PDkZY07mYOhgvItMgIXCb60s?= =?us-ascii?Q?Ea8Do1ddhDgJuhHjM6JVIxznGNNUbLvTqXwa2KXpyu8MFFqn+5pn20+2zVre?= =?us-ascii?Q?pLyhiN3aWvgjpRhuwUPu7gJCduIMPI4kH9XTkXdULu8SO1a3xsbXyIsBes/2?= =?us-ascii?Q?iAq83KVPwr8F0A/PhcW1o+rhHgCIb2bIaNdyKJu/sh49h3QNo4nBQZpsWIZ4?= =?us-ascii?Q?zyA/Hy4jW7U88uVUwZce2p94LxBmEF+YRErGLsm/N5vqYEFv0lNJxKLculon?= =?us-ascii?Q?tds548/62eVgACZCKQsKcjgwucOKYV9LN5A7AOzetgxs1gGf8MsV83dbhOy2?= =?us-ascii?Q?Os9dN+yJD1/H4qek9WSzXpL8UkgWZ9W+IwsrxcRDL8WnrJXjXKPapJNNb2qV?= =?us-ascii?Q?rgQLVWq+O2BvDaqCDmJnrfg6TMNoJ2asNeWkGRtLltdJq7GIieLnObyoY64M?= =?us-ascii?Q?KGX60kZXZg0oCH6b2q2BeMzeXHmW2EoVAZDDeaVjNW3bZcmM1xISW3HwB0rF?= =?us-ascii?Q?Jjr4dQOi7Tr5dbFLUYQb+6dsy1XwiKlo8gVXLoXC3rzyYdkh00leFDX+GD6R?= =?us-ascii?Q?NYKnMFjEoZjdajqblwboljByCMSbv3+JQEKdtBFfkgX8Koj1cyQf4RczaXwX?= =?us-ascii?Q?sVoAPPKa0qIINViGYiOY0ezBfswNES3KMaNOtj2DxAVIGlYMaj6o0gtQGY2U?= =?us-ascii?Q?Ff4kjuvixczRlVloVKjIqEKJfxny5lwBbbYHiGZ7+ujhcKL6SPzD3FqTJkob?= =?us-ascii?Q?01pIBcN3JyqmuRls7/Ql7moAPsXWLEmABXUHaW8lOmPDBI2TT94vALnhBSog?= =?us-ascii?Q?Iy7P9Sox3t+rEAUMVpkicYxVfr/C8mSF7azMn5JWyso4TVHoBoEdlRy2doMS?= =?us-ascii?Q?SkxbYEAZq9JTBgXT/xAnIT4cxMBTOG8pHPD71hpMLh0V8AsOr2uZfUdzVE/f?= =?us-ascii?Q?3HPY12IYHRAeUH72QFx0jhVCZDsUtyFz57UxmwCWd9rEZOSs7DqBgPkWbAxY?= =?us-ascii?Q?UKRX+jePsoP+YizBe94YRborGmDCOFnLYMOE688ed0kixWVslt231H3j9oxJ?= =?us-ascii?Q?JXVyyqlfbRXq6VNepgB48e65gFXoaBLHs5Pf1NXUrEKfOWC7nJ4XU27p7e6J?= =?us-ascii?Q?TSZ4wwMCLrRWv4Juyht3VI/fe1AzaNZpMnxYTxMNrxScsvT7OuxcbgVuhna2?= =?us-ascii?Q?xqUrggfqmFjn3eoxouzsJwldz2GnwyDRE0Ji7sZhGNTlPG7wptaTC4zulYcA?= =?us-ascii?Q?tBIfq/eQwyVFn5e7pqR5b6+vt6cwc6NGDImOJWDY0EiHGbH57E9YuqLNrAVX?= =?us-ascii?Q?w3yUcehV2mn/axxWjOa939LDWNZvqLUimN3hj15ycB2WJq8E2d2AE28NOP8X?= =?us-ascii?Q?E1KDlGUSmcsOmcDVw+zBPcr8EgkrxfcHfo5HXK/7jl+e2zdcwZFs03Ae7m0E?= =?us-ascii?Q?XlXDddUb4hJeKGe4maymwyJVDrag918FzzcPcw0CtQdiqIC+y2kmpkpQCMt8?= =?us-ascii?Q?VJ2f4nB4DcdU9Am+Xr+H2VKO20HI51kHiFRHYykfverx6NkK0yFguTjz20gq?= =?us-ascii?Q?ig5tfP1GN8cL7YemkSgXMienDuteTGB2GJQoYcYNIbIq/g7R+IaYBPv7ftJn?= =?us-ascii?Q?n6s0LUjX2w=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 5KID3C8Q7K/5zIAn9G6e/L1fE7h7h8pUSYTtfeb5UfpKhT5yFCewvJOlv2eH6GUgGMDjKZvSUSKJIsSX3C3Saj4lt/5Xrc+QYSHj4oxj3uvHLwWnw+Afc9U10VWzveIfHub0HegTIpJMV4PjjP9qJp4arJdPH34x0uj1s8hNbMGswSIiBC0+LGalaI16DDIB3wnOLZAX03u6wyruWFWuRQsJkNMqqwDfGbw/KidXHUOHDntHZ3oSTvMkgEksLwXlHmOC/QTZjtOf+ceVPYLbFJot1CDPgfV0r16KLuVRsW3t3bpMSekxSYysWe6lOzO3TcwD1p8Fxk+5XaxnHzbdQ/4crXtcYPdnqs7sMINZTEAFElbF72yZIVubb/VNVOH2OCQDbNX7GwQK73P3prgF5tWzGq/sraTDJ35tzogxF9F4fkhmS1TQhnMWTRjEyu5zO6904QOX+pm/V858EWMYUXonbYjvnpMf60N9JaPJbFQTlrjb5k1S/LqGIDUH/fxt1Vxk6jIo1PkpnBqukhcv9a5yphdG4sk49VFXyGXGWY4lkqh/yGsI6BzLYzdOnq9LTRnWLAXZXNJb/8WE1zrN/aCJzS0pTdwqTj33mg5gWs4= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: c07f6fc5-b4a3-425e-d0a5-08de590e0fcd X-MS-Exchange-CrossTenant-AuthSource: PH0PR10MB5777.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Jan 2026 16:56:46.3994 (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: RJ/pOYAyE+mYsYtJQw+6qPTVDb3CtBGV6Ak6/ps9gP/IZCgTJwqMcCvcVBZrQgRbfsH2T6JkKDKFPUr+Tob2Tg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR10MB7712 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.20,FMLib:17.12.100.49 definitions=2026-01-21_02,2026-01-20_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 mlxscore=0 spamscore=0 malwarescore=0 bulkscore=0 adultscore=0 phishscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2601150000 definitions=main-2601210142 X-Proofpoint-GUID: BOl6E3kzhWbjf3R9ljiIaxorA0qJQkON X-Proofpoint-ORIG-GUID: BOl6E3kzhWbjf3R9ljiIaxorA0qJQkON X-Authority-Analysis: v=2.4 cv=QdJrf8bv c=1 sm=1 tr=0 ts=69710556 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=KfpCAqERy7lSuQKxsjcA:9 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTIxMDE0MyBTYWx0ZWRfXx+wn7X+S8zuX fnve1L6F9lBqgm96QGrBYVxq/SJPiN5u+Lc3NRj90n72FTZvg6Ss55b9KbmI42o8T11pr++7q7j RWH+PzLzbS89J8guzPJtMFfY204/dRd9yfeXlFS0IHhSjztpDerPBJZnMVncjuKLnovVchUO+CN 3h6BG90eWfN/w1EUOfW9gUfm71CQG7fb1v2b1oPLJ0jz/Z5Sn/c2ngNDWAZfbLCF+1lTRTvpwu7 RFXON11cL/UBZMoV8GuhwdDZEdL6r/Qux7kj13t95EApKdlYCg62AQsmS2LUBp6wQLCXv+Z/SMa T34fGt/pt5hdQoHU552JZrSazJI63M5tp1NUHrq7L7zce76ivSvrX0GVPhti8CAXPavZojHaVKR fFEtsyByNu4jROwly1c2zCqivG/s6wK5ZWd5owGhVRRJskpKQO7rjm7tlNnz5QFI9Oo6l7S025V /K7mpoAhJpW2chQaFQg== Content-Type: text/plain; charset="utf-8" Move the loop over the tree levels to its own function. No intended functional changes. Signed-off-by: Liam R. Howlett --- lib/maple_tree.c | 108 +++++++++++++++++++++++++---------------------- 1 file changed, 58 insertions(+), 50 deletions(-) diff --git a/lib/maple_tree.c b/lib/maple_tree.c index 0e0158ee7ba55..70ad474e6ed14 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -2595,49 +2595,16 @@ static inline void *mtree_range_walk(struct ma_stat= e *mas) return NULL; } =20 -/* - * mas_spanning_rebalance() - Rebalance across two nodes which may not be = peers. - * @mas: The starting maple state - * @mast: The maple_subtree_state, keeps track of 4 maple states. - * @count: The estimated count of iterations needed. - * - * Follow the tree upwards from @l_mas and @r_mas for @count, or until the= root - * is hit. First @b_node is split into two entries which are inserted int= o the - * next iteration of the loop. @b_node is returned populated with the fin= al - * iteration. @mas is used to obtain allocations. orig_l_mas keeps track = of the - * nodes that will remain active by using orig_l_mas->index and orig_l_mas= ->last - * to account of what has been copied into the new sub-tree. The update of - * orig_l_mas->last is used in mas_consume to find the slots that will nee= d to - * be either freed or destroyed. orig_l_mas->depth keeps track of the hei= ght of - * the new sub-tree in case the sub-tree becomes the full tree. - */ -static void mas_spanning_rebalance(struct ma_state *mas, +static void mas_spanning_rebalance_loop(struct ma_state *mas, struct maple_subtree_state *mast, unsigned char count) { + unsigned char split, mid_split; unsigned char slot =3D 0; unsigned char new_height =3D 0; /* used if node is a new root */ struct maple_enode *left =3D NULL, *middle =3D NULL, *right =3D NULL; struct maple_enode *old_enode; =20 - MA_STATE(l_mas, mas->tree, mas->index, mas->index); - MA_STATE(r_mas, mas->tree, mas->index, mas->last); - MA_STATE(m_mas, mas->tree, mas->index, mas->index); - - /* - * The tree needs to be rebalanced and leaves need to be kept at the same= level. - * Rebalancing is done by use of the ``struct maple_topiary``. - */ - mast->l =3D &l_mas; - mast->m =3D &m_mas; - mast->r =3D &r_mas; - l_mas.status =3D r_mas.status =3D m_mas.status =3D ma_none; - - /* Check if this is not root and has sufficient data. */ - if (((mast->orig_l->min !=3D 0) || (mast->orig_r->max !=3D ULONG_MAX)) && - unlikely(mast->bn->b_end <=3D mt_min_slots[mast->bn->type])) - mast_spanning_rebalance(mast); - /* * Each level of the tree is examined and balanced, pushing data to the l= eft or * right, or rebalancing against left or right nodes is employed to avoid @@ -2672,10 +2639,10 @@ static void mas_spanning_rebalance(struct ma_state = *mas, =20 mast_ascend(mast); mast_combine_cp_left(mast); - l_mas.offset =3D mast->bn->b_end; - mab_set_b_end(mast->bn, &l_mas, left); - mab_set_b_end(mast->bn, &m_mas, middle); - mab_set_b_end(mast->bn, &r_mas, right); + mast->l->offset =3D mast->bn->b_end; + mab_set_b_end(mast->bn, mast->l, left); + mab_set_b_end(mast->bn, mast->m, middle); + mab_set_b_end(mast->bn, mast->r, right); =20 /* Copy anything necessary out of the right node. */ mast_combine_cp_right(mast); @@ -2708,17 +2675,17 @@ static void mas_spanning_rebalance(struct ma_state = *mas, count++; } =20 - l_mas.node =3D mt_mk_node(ma_mnode_ptr(mas_pop_node(mas)), + mast->l->node =3D mt_mk_node(ma_mnode_ptr(mas_pop_node(mas)), mte_node_type(mast->orig_l->node)); =20 - mab_mas_cp(mast->bn, 0, mt_slots[mast->bn->type] - 1, &l_mas, true); + mab_mas_cp(mast->bn, 0, mt_slots[mast->bn->type] - 1, mast->l, true); new_height++; - mas_set_parent(mas, left, l_mas.node, slot); + mas_set_parent(mas, left, mast->l->node, slot); if (middle) - mas_set_parent(mas, middle, l_mas.node, ++slot); + mas_set_parent(mas, middle, mast->l->node, ++slot); =20 if (right) - mas_set_parent(mas, right, l_mas.node, ++slot); + mas_set_parent(mas, right, mast->l->node, ++slot); =20 if (mas_is_root_limits(mast->l)) { new_root: @@ -2726,20 +2693,61 @@ static void mas_spanning_rebalance(struct ma_state = *mas, while (!mte_is_root(mast->orig_l->node)) mast_ascend(mast); } else { - mas_mn(&l_mas)->parent =3D mas_mn(mast->orig_l)->parent; + mas_mn(mast->l)->parent =3D mas_mn(mast->orig_l)->parent; } =20 old_enode =3D mast->orig_l->node; - mas->depth =3D l_mas.depth; - mas->node =3D l_mas.node; - mas->min =3D l_mas.min; - mas->max =3D l_mas.max; - mas->offset =3D l_mas.offset; + mas->depth =3D mast->l->depth; + mas->node =3D mast->l->node; + mas->min =3D mast->l->min; + mas->max =3D mast->l->max; + mas->offset =3D mast->l->offset; mas_wmb_replace(mas, old_enode, new_height); mtree_range_walk(mas); return; } =20 +/* + * mas_spanning_rebalance() - Rebalance across two nodes which may not be = peers. + * @mas: The starting maple state + * @mast: The maple_subtree_state, keeps track of 4 maple states. + * @count: The estimated count of iterations needed. + * + * Follow the tree upwards from @l_mas and @r_mas for @count, or until the= root + * is hit. First @b_node is split into two entries which are inserted int= o the + * next iteration of the loop. @b_node is returned populated with the fin= al + * iteration. @mas is used to obtain allocations. orig_l_mas keeps track = of the + * nodes that will remain active by using orig_l_mas->index and orig_l_mas= ->last + * to account of what has been copied into the new sub-tree. The update of + * orig_l_mas->last is used in mas_consume to find the slots that will nee= d to + * be either freed or destroyed. orig_l_mas->depth keeps track of the hei= ght of + * the new sub-tree in case the sub-tree becomes the full tree. + */ +static void mas_spanning_rebalance(struct ma_state *mas, + struct maple_subtree_state *mast, unsigned char count) +{ + + MA_STATE(l_mas, mas->tree, mas->index, mas->index); + MA_STATE(r_mas, mas->tree, mas->index, mas->last); + MA_STATE(m_mas, mas->tree, mas->index, mas->index); + + /* + * The tree needs to be rebalanced and leaves need to be kept at the same= level. + * Rebalancing is done by use of the ``struct maple_topiary``. + */ + mast->l =3D &l_mas; + mast->m =3D &m_mas; + mast->r =3D &r_mas; + l_mas.status =3D r_mas.status =3D m_mas.status =3D ma_none; + + /* Check if this is not root and has sufficient data. */ + if (((mast->orig_l->min !=3D 0) || (mast->orig_r->max !=3D ULONG_MAX)) && + unlikely(mast->bn->b_end <=3D mt_min_slots[mast->bn->type])) + mast_spanning_rebalance(mast); + + mas_spanning_rebalance_loop(mas, mast, count); +} + /* * mas_rebalance() - Rebalance a given node. * @mas: The maple state --=20 2.47.3 From nobody Sun Feb 8 07:08:28 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 899C7358D2C for ; Wed, 21 Jan 2026 16:57:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.177.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769014640; cv=fail; b=KB5hDjt4qKTqVx3lCg4KqdWQwTcXRkvswU6TlRpS4E9E0+T/q8PpGqF3scQqWNik9OKO+77YPbrvNMuL1jZUGJf3/nekxlcvPf0VBvWNGg6QZ58s5dgOWd2ZZPykjZOCiUFwbAsio0emlKfBkNSfNBrbLvI+425uYFCSVGd881U= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769014640; c=relaxed/simple; bh=vD18d3+5UjQSMz+nXbQTPmB5QFpPMdieIhuMbpIYmz4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=VCq8AYhQsJalKo1SsdniiZMqdVzSS7RVVaJHz5Acs0Nx/QP3UbYYdHGjNcCTu19WJakgB2/H6S7Uuu3mifvt7LVrVyltk1ZWT++GFjYhHncxo0PqwVXfykFym1iQ+XrcxdWkIe+dTUBtcF35tHPfigW1vzUlt06XBeerSWINke4= 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=foZFLDmV; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=bs308Qv8; 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="foZFLDmV"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="bs308Qv8" 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 60LEAApH3417394; Wed, 21 Jan 2026 16:56:55 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=L30JJ1psmkMPakOhtTEkNu26hTHGCmn7dafYI9225y4=; b= foZFLDmVlBAc5SxLgF8qh0q2vtobTZ79N4TqxrmRXlZoGAHNXFkrPlnHllkqKX40 vTF1PW9hnyP9BQAg7/e4hCwe0CtfNtdLXuwVLSWm4gs1edZNiOTuyV9FWz3Tb8K+ sOcXvBcqsG2ssDODnfzv4j7lxc/NpMPl/Y0kTSpTi/Jui/HVPFxSPSOiWZmLAyqD ykrmF1NXPxz9mIlO0R4rGVR8LuUF71NQfdwGwUjKIKb4a4/Q3SMj9mV18WJkG/Y8 N2QLUs9MPRlhON5OUVVfJE7Gi5CY+o6jGjDMImvkWcPzR1pfLl2be2Ieg+FT4G1L /FKoRYRYKWIZBvkk5BLvBw== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4br0u9pe6b-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 21 Jan 2026 16:56:54 +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 60LGKKsA008437; Wed, 21 Jan 2026 16:56:53 GMT Received: from bn1pr04cu002.outbound.protection.outlook.com (mail-eastus2azon11010004.outbound.protection.outlook.com [52.101.56.4]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 4br0vbhsfr-3 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 21 Jan 2026 16:56:53 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=nvjTmYsW1cvdpp3BXU+132dxEJPDeU1boB/w5zrATEo1OpvDTJXd27fDEo0UrtQyXITp8ck9zOY+PAG98AihbbN5VuNCfklUvg+V1yhv7UsUOhSQgxHMAswIXh4MncV8VQwKwZGFh5hgA+XnrnV6AKQ1M1b0GVF0CujiEbHigw2CgF1mq6+ovc/wE5GuUVuU3SSvDRCNRJfm7pybq+sTQv8857LxwJaDba95tkQuBH+w6pKbO8WgSBo5Fy/wt8bR7mTqIg6QIrLat7fH3QvND4TaGXgQ66IMb3HmS3tJ43s4kLnmq1rC4vLTWx1z//E4+roahJCyQnRNiur2CKaskQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=L30JJ1psmkMPakOhtTEkNu26hTHGCmn7dafYI9225y4=; b=sChgoauNyf9PMelxH5ZYG2bb7ijksVmeRjafFHOtCfpnPbWIwE9Ugxx3x57K0OnAMVzE3FXLJRFy+Dg8NQlvyqWjqUL33ypycDmE32KCIgeldsH+nw0eUj2cVN4ii6KeILrlbfwgLSfpuFzOgq6cUmoOFkzOt3j1dNbbXylzGvoFJYb3crk0YXSyd1px3dmPoZqJZKe2P75ods6uVWAowEvIHYHANp8tJ+IIdJl5a6hsxNjGJfU/ChiUCBfIsexAry1uAFQzZoWniDlgFhUPKMamqGAycalVRCPhKsFsiOoRPBFf0Kh7XwKP6zhNLhg7X1MG4Dl4UIUumNh+cmrU3w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=L30JJ1psmkMPakOhtTEkNu26hTHGCmn7dafYI9225y4=; b=bs308Qv8xOfXWoSLExDNRpoHNCGgg7LGg8uN+Ho/BZPEdK6J41ZZmXqCML6SxJuY8dYUdezkx3gtZLSeZFToLmErDbcv95e2sklC3w6fS+qqxjSLbEOp9XfDFenfQwp9t1JFnncO5pfJdLAduaqf5SpBAnE8nfqTsPcr0SAH/dM= Received: from PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) by SA1PR10MB7712.namprd10.prod.outlook.com (2603:10b6:806:3a3::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9542.9; Wed, 21 Jan 2026 16:56: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.9542.008; Wed, 21 Jan 2026 16:56: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 v2 03/29] maple_tree: Extract use of big node from mas_wr_spanning_store() Date: Wed, 21 Jan 2026 11:45:00 -0500 Message-ID: <20260121164526.2093265-4-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260121164526.2093265-1-Liam.Howlett@oracle.com> References: <20260121164526.2093265-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT3PR01CA0103.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:85::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_|SA1PR10MB7712:EE_ X-MS-Office365-Filtering-Correlation-Id: 713683cb-3222-4d88-794d-08de590e113d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|1800799024|366016; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?5MX39JoEJyIspDs1P7Pywjx/Mli1j+c9sm9wmmYnstrQFeFD9MjpfgGyuDAU?= =?us-ascii?Q?v3vEEFceJNb6ihNEQqCoTBUbDGC1UTxCyVkN5g2l0XHooMVeIWauzeGKtpdG?= =?us-ascii?Q?EmOpP1C7P1WTX1VNfg8NqyV6l33ToLN/3jhBa3GnnVhCzFEpgmSnrrvPVnVE?= =?us-ascii?Q?XlRjK2TJolVHprdbTP+GKuh8BP1KttJ6VfzlYJ0znQGlrG3gej276KUeG6Us?= =?us-ascii?Q?+iFXQ3NB+zV21Bk8GWIx0jNwwNKPhF59onKgypq/Ika3dme/2Xbu0lN1mcdb?= =?us-ascii?Q?H+xKUOS7htJfdSm9yzAJUKgEwY0aicP7Zb+wSl/LYtLI4Fz8O2Afb3TyeBTl?= =?us-ascii?Q?Jx7siuUZy8XdI5/q1UlakEfYxSfYfZtWSSBm3U+mwx+Fm0Avbc1l1Hwr+gqS?= =?us-ascii?Q?oMi8aRwxVV9Xz8K/f+T+RLOC/IeiPX+QTeLMW/jESMXdQlzGMdgPY1fJwC9x?= =?us-ascii?Q?xuYbrDhtWs2xBJQP6ua8efFNQTaa3iQ5vh5CloxV11pHOOUhhKymUVfgp6MY?= =?us-ascii?Q?OBRum4prB/AT5VhgdiRj2Ce5yt6V2UsNBOX6hdB4wiNHnDXMy94NySVL2Rnq?= =?us-ascii?Q?HuUJUMq61ZCuDsZAueTUwQrDzextDIK3MI+JiiOfTMB+VW4bIv2IiTPAM8nD?= =?us-ascii?Q?XfwzUbV5T95gR4ZNX7K3eEIlowRFGibWDvmiMcsd5/QyuX2RfaZYrNeFmMFs?= =?us-ascii?Q?4GGWRHJUGEyBZ1HIRLhcdsd4Nt0Gb96y9pFYVoFI/I8Pc4J+KrO86FQBASGe?= =?us-ascii?Q?DNECm4J/Sp2HF3QEujb8j8xMl2CmKdnt8Z9e4IPWsajc9OgflpHZA38LzmXk?= =?us-ascii?Q?B5rvFti8O/mDTnkI9P6CM4XydZySq8fzr46rTZa+YHauyYkm78ptF5lQUSlS?= =?us-ascii?Q?y1Z4yEKN8e25lIy7qckEvQSOk27zBTEi+asC3FTAQohoU5m3+Vs8RDHRoxZT?= =?us-ascii?Q?bYDdC7F9wP+FsdMfu4h1+dAL/x1NZHXqe7Ti34ZFt6a/7+Y3dyw9D/DViT8H?= =?us-ascii?Q?aCJUdPSLOPhzVWhA3eTpt3IazEIse5oSwF8c6czJYUl7WYuDG+bf54nRH9k/?= =?us-ascii?Q?ZomB1p2xDPTBp+5BbhG2UtMWAj7nuzbzpHIICPZ6jSY4ZzCT9I7y/fOngkIy?= =?us-ascii?Q?aSj0LL+UWA+QUW0wruy95Yz69Lh4RDOkIwO2aF2niLkVq8Kr6b8rXp5T6GXA?= =?us-ascii?Q?E3oQ/A/ugLtEhVoulsC93PqdnJHonF8wgW9Hm0JxOJkJLknmAMpIuaerunPh?= =?us-ascii?Q?hKx/dUoi9tiDx2MmNAMYGghFc1fY/pb6gl17sZdmNSSA2tTWvxsZdgIMoo8w?= =?us-ascii?Q?ZS1BbujNJBqxKXXesaNlmJeYZF65NlYe2hhvekimNmoNQpQ0mIhVEM7/AcFP?= =?us-ascii?Q?JOjiwzY0ssx3bS9kvl8d0sy3RZWjis49kgNpHLUr+ExTGUoRL+vNx/JPTA6V?= =?us-ascii?Q?+ikJnuMC5u0gbx1qlun4qwjnk788TDBrB0nisgAYdkhJ4K3AARLLUXbWuz7J?= =?us-ascii?Q?iDPNx1lu1RvGafiYYTSM5uphFHfbBFEk4qfVzuPVuDZI/1pU9V8MraEupVm+?= =?us-ascii?Q?20E0twGxsZ18EDdF2HM=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)(7416014)(376014)(1800799024)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?VL1K7Ji5M6aBg42G64KEx2g6tElqtRfObBLqo4HbN+6eDMU4lqeWB4WgKLR9?= =?us-ascii?Q?T2TX0i1L5nWgapUA+PISyjFMDZGQ9LvRWchbWaOwIou+JalCL+GmQTDTefdq?= =?us-ascii?Q?3TwOZN7xgJ9oY171fTdMUngZZFJUHQ1LlQcacnUVeWq8gs7FTLpBz+NKt+zn?= =?us-ascii?Q?p6fuXvAJrc3RSQIZkogP4qY/bW8UezI3gAuP6j0lv8uQu3taHssNBaf6ijp3?= =?us-ascii?Q?TxDNe9XJUBXwOSc079r+WoZWjcU1HwhlmF6Z0mS6ozBxjYlTDNpgpbk4vcOz?= =?us-ascii?Q?LCWL/xhRufXpn2yzXlTkGc4srPnQXn/S+WnggJ5MoiZ8wcfly5ecAIokMYD1?= =?us-ascii?Q?1U+i57Jimy09btYofgt2FJH7r2tIP/NG7QKbFio5gBem4a+LtZHOvHf99NPd?= =?us-ascii?Q?jSgWYqoZ/ISihOPwRu6K6+JL4J4Pg3WdfLmQhQRxjpLWgSUv6zdFIH/MZu+v?= =?us-ascii?Q?ZAtUWPlk4CYkodvgSAUxuPfKCpxApB22gmAYnEYd6ooR9Cl51YbIRxUt2Zm4?= =?us-ascii?Q?hVU6UcIMUkSb0+V7VyY2jg2gpIe5DuNCj1OxkOzSR4ce6/8j951thT14uhtn?= =?us-ascii?Q?S3EMZCXXyXwVz8TZFXXIcCoGrOXW+rFghCd4zerKow1eipdDYkoO8dhY60Rc?= =?us-ascii?Q?D1ZD0vn5wuiQSFt9naw3qeQN7933OFAZI9smC7liDiDwmzy4HGpuJUlHYVfV?= =?us-ascii?Q?NuvsQNOCwc9QZ381fU3LO1Ba4bTxdCCqutRDPTMal5WNkhRAep/gdcDBFKY4?= =?us-ascii?Q?+8ZEsa09zymkugj14RGDyyOVnidZf+38ZallDel8qf3w16pC4sPM+G1e6cFj?= =?us-ascii?Q?hOpqwbPVcCrpvSKjOiPfX+bYniE8EnUoX7e54Vk1eb+Bexrftr4a3KKcXULC?= =?us-ascii?Q?8K40annLSa2cF8+myEtQy0YjgC2UX1dCGMk4yWTcQ2yrSEP4kfK518PQADnz?= =?us-ascii?Q?xPBBG7m+yH1gxdQR52dkOdCSJrwimgOHbEKzBn7Fco4PupquOThB3nP4t7t2?= =?us-ascii?Q?jzyLQLDtHpjHCaUTH7HzoSC1pWN1vyTbV5k3lgld9byoaiyJ1AbYEa8roZ/W?= =?us-ascii?Q?DFKAi3WOjWjnb1ymwLHGmy+O55UwVr2u/0Tn9VRC0n8GaBb13B0T5wEVPhXf?= =?us-ascii?Q?VJlejQr9wfnuOWhNX+apsGxNDnu9LQNMDjNbTkZScHlir5G8FR/flNtMIPY9?= =?us-ascii?Q?+kehcVWcJB/B6u3LLKZZAayZXhh6f/JJP+EF/sPCi2BoJUsojybDFpQbzkzZ?= =?us-ascii?Q?+pfs8CfEN4XkdfILJCJE3SfFsrZZUuhdygm7oEsOH7lfX1hMMyB6poo9NpnW?= =?us-ascii?Q?yCRCsEFX4i20cP36fzGkQcdJe7CTuIkVbSUD2uwNPx7d+zeed6oWja8BkCVy?= =?us-ascii?Q?DCx1C7P65MVsXDS7fbmKZtvspJpWjL6Bp6iEGUY7AnyzRTRr3yScFi7apnGD?= =?us-ascii?Q?9pYHgyKTPXTwuDIDhlzH2lg368hyFjeY2RE+VyDjVrHHoHeX0vSw9bpZ0elI?= =?us-ascii?Q?WtqYvN2KLq6t20L+ypGRr6GFrpGHpUs+sJxMJprsNv0ZDTc9w2p9oj/Bc2YF?= =?us-ascii?Q?Z6ctxWEaihXhW5GTtCRO8K2OFcxy0HN5t8yJki1vAeH1GZ8TRPqPrUeQ6hiI?= =?us-ascii?Q?FgmJ4g0tv39otCS1H74NYJzVhcic20UR+922Nb+PZ7XtZY+Bx43Kc/MfYVYb?= =?us-ascii?Q?/wvj+3CnuNWGkfpMDVCw8/I9aQlkgL6XzChrqTTT1UzMURm0N5LbVSM70UyR?= =?us-ascii?Q?5qXZ/ziYqg=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: pVlA2R93NeNx3/jpfcwjetyvcLX1NpDeQGuR0rY6tUES+YaCm91UhoauHIjhQzVrk1e+tEE/2HvognRPnnu9Z7skiaYmof+tDGFflaMA90jsS7q5sLDktGFdk4VD7+RDhCTIHDlGZ+pAfWrt514YiO7grTuHZH1GZDGVAzcKzN43NIUlzSTtO7zG2pe33KB2nwOwd3ZjNOfewdof9Fqeua5kOYyeoPz1+cpJWdU9uWt4wJuRCd7ZGU+1A5gVQoXswoqB1YTYO4eLKOj/LiS/J47/FqJy7cOcuVHwUE3IajDamxHTKxkcjZhFv89cwv9K+sK53L6xYJBgpeK+NsI1DfdrPdavZKnSI+hAJzxZmrZ64Q/izWZriKWonVlLTyoD+A7bGhPX++sr297mmBDaxvqtm24PzGTwhgm+D0MVmn3ox18WStPAhWwJi2ONy9cmyXrU1S532O3JMTQCja0ZFxsO2TbijGwLtIqNisXG6Af6B6k3qIAHsnJzw1HJrBYlKlv4ldiXUhk8oc93SccyFLU8TAtdCdnyYcYyg5AxQNn3Rp/BPTs4cPNO+YkFydop4dfWh5UbqZlx/hFr5B4KGsNa91pRSnWB41NlleyhbHg= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 713683cb-3222-4d88-794d-08de590e113d X-MS-Exchange-CrossTenant-AuthSource: PH0PR10MB5777.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Jan 2026 16:56:48.8056 (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: VIXFnZeK50R2FCH48Fs3XtLZAcllnQyO7gQ8j7aZxCF7A4+vVCY/HiMFLjK1rLOomqxzEJ5NSUOUVy9tko/2Bw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR10MB7712 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.20,FMLib:17.12.100.49 definitions=2026-01-21_02,2026-01-20_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 mlxscore=0 spamscore=0 malwarescore=0 bulkscore=0 adultscore=0 phishscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2601150000 definitions=main-2601210142 X-Authority-Analysis: v=2.4 cv=OJUqHCaB c=1 sm=1 tr=0 ts=69710556 cx=c_pps a=OOZaFjgC48PWsiFpTAqLcw==:117 a=OOZaFjgC48PWsiFpTAqLcw==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=vUbySO9Y5rIA:10 a=GoEa3M9JfhUA:10 a=VkNPw1HP01LnGYTKEx00:22 a=yPCof4ZbAAAA:8 a=_QQW3CUrkSdKJg9byCUA:9 X-Proofpoint-GUID: i7MJiHoQrEl6FpyzzskqL4Wpvr_U5wsR X-Proofpoint-ORIG-GUID: i7MJiHoQrEl6FpyzzskqL4Wpvr_U5wsR X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTIxMDE0MyBTYWx0ZWRfX5Z6ksG3tDxVs ZJkD2evibEOPlVKN2rWGTsS8yUlOaLb6duwVWAfOlwwq1a1W22wm3r+Zz1VMAtGrcTD4BUwy+A7 qyiPHcCw1Vz1OhUqCckWpUGf41bZil1roOrTWvotJO3v96uH5DccN2+v64h5IU/Jd5xa07p/AM1 j2cxedmv1zX2iQSLsv0nGFq/3gu6dMfkB1fFVOJDhMsQ92Uv+kUAgEk/3VULKtYlbfsi0QlgJEV LUgbW/tmnP5t+2SdVMme+6zs4+6N5b9Pl0RmHRZhASPd6YIC9ahRaWpUOW78hR8V40/Goq7XFrH 0g3B4o/RWpbn6EHKBzjGbdyyfsDmp33WN+Kn6yyNwSb5BAkLR58E66nRoV0rs6ot5eTHQzh0GC2 RZ2fTh96+IV0nBAA/lFbq4bVN2166HjNQ/WS4qp7FAHMkw6KRZdCA0EuVO3LE3Ap8AaDlyJTYt3 zsqRBAbVpPkrghbXeqg== Content-Type: text/plain; charset="utf-8" Isolate big node to use in its own function. No functional changes intended. Signed-off-by: Liam R. Howlett --- lib/maple_tree.c | 44 ++++++++++++++++++++++++++------------------ 1 file changed, 26 insertions(+), 18 deletions(-) diff --git a/lib/maple_tree.c b/lib/maple_tree.c index 70ad474e6ed14..9ab42821ee2dc 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -2748,6 +2748,30 @@ static void mas_spanning_rebalance(struct ma_state *= mas, mas_spanning_rebalance_loop(mas, mast, count); } =20 + +static noinline void mas_wr_spanning_rebalance(struct ma_state *mas, + struct maple_subtree_state *mast, unsigned char height, + struct ma_wr_state *l_wr_mas) +{ + struct maple_big_node b_node; + + memset(&b_node, 0, sizeof(struct maple_big_node)); + /* Copy l_mas and store the value in b_node. */ + mas_store_b_node(l_wr_mas, &b_node, mast->orig_l->end); + /* Copy r_mas into b_node if there is anything to copy. */ + if (mast->orig_r->max > mast->orig_r->last) + mas_mab_cp(mast->orig_r, mast->orig_r->offset, + mast->orig_r->end, &b_node, b_node.b_end + 1); + else + b_node.b_end++; + + /* Stop spanning searches by searching for just index. */ + mast->orig_l->index =3D mast->orig_l->last =3D mas->index; + + mast->bn =3D &b_node; + /* Combine l_mas and r_mas and split them up evenly again. */ + return mas_spanning_rebalance(mas, mast, height); +} /* * mas_rebalance() - Rebalance a given node. * @mas: The maple state @@ -3400,10 +3424,9 @@ static inline void mas_new_root(struct ma_state *mas= , void *entry) * span. * @wr_mas: The maple write state */ -static noinline void mas_wr_spanning_store(struct ma_wr_state *wr_mas) +static void mas_wr_spanning_store(struct ma_wr_state *wr_mas) { struct maple_subtree_state mast; - struct maple_big_node b_node; struct ma_state *mas; unsigned char height; =20 @@ -3467,24 +3490,9 @@ static noinline void mas_wr_spanning_store(struct ma= _wr_state *wr_mas) return mas_new_root(mas, wr_mas->entry); } =20 - memset(&b_node, 0, sizeof(struct maple_big_node)); - /* Copy l_mas and store the value in b_node. */ - mas_store_b_node(&l_wr_mas, &b_node, l_mas.end); - /* Copy r_mas into b_node if there is anything to copy. */ - if (r_mas.max > r_mas.last) - mas_mab_cp(&r_mas, r_mas.offset, r_mas.end, - &b_node, b_node.b_end + 1); - else - b_node.b_end++; - - /* Stop spanning searches by searching for just index. */ - l_mas.index =3D l_mas.last =3D mas->index; - - mast.bn =3D &b_node; mast.orig_l =3D &l_mas; mast.orig_r =3D &r_mas; - /* Combine l_mas and r_mas and split them up evenly again. */ - return mas_spanning_rebalance(mas, &mast, height + 1); + mas_wr_spanning_rebalance(mas, &mast, height + 1, &l_wr_mas); } =20 /* --=20 2.47.3 From nobody Sun Feb 8 07:08:28 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 8993F358D13 for ; Wed, 21 Jan 2026 16:57:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=205.220.177.32 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769014640; cv=fail; b=e9/qDJSIVCaDTaUkYRbGmDbLGMV6f0bIiKkmJEy7ruaOycsY8tKkDMvRtccydfmvQrGCA7/AzZfdgwN0VQsZL1i55z/8jl6rMM57jishEOI/67HoAbc69PndXx++tIgOtjhjbOTuVR8M7GRWDC8HwwkpjVJmbEtFy3pgRqckGn8= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769014640; c=relaxed/simple; bh=YPqdiaY9P3ZCoSDJd+4ZZoAEfYauIJFoLWcPnlHCQNs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=L0vHEf09nb1F8DTGp9abz/F+ahzlSOv+EuUhxzFd0TwrihJyL1Mv3kBkK9s8VCPmpQM3GSXE3m3wTng8VrpMLNVgUJDmHMDlylutJ4XerKzNTP6hBeE9xb8YLkAuSQRKQJPnEW2mv48YaUnKDyhY9JBj6nEhsTGYCpKx98XHUDc= 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=LYIAIU7z; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=Ae8ha/ri; 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="LYIAIU7z"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="Ae8ha/ri" Received: from pps.filterd (m0246631.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 60LEcw5I3867763; Wed, 21 Jan 2026 16:56:55 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=UBVpczB/At/Hp0AJLlZrh/IdMx/NryCDZYyORdy8gXY=; b= LYIAIU7z6LZxxfJ9MHSWRDSPEakps0sE81y5x2Vw5HmJzSiyJDzO92xnN+WeIdFP uuff8j76qmeHJB3KI602BKQd5ElFoZyVDgPVaGehjHXyyEybe5NseOqJTOJZDWqD R6juittWdqYStwqyReuyGGkumon9usVw3McaGSz8gEMLM2rdUG4oitNtjrGCqViC a5XAHA7nwccK1savWW13Yz2sdbVltJrlFX6K8s9ZfDCgvxt/45ps1XqNUII/IVGu REEGrob0fkQ2SS8uZ2rq/DS+D+DsshZwwv+sPcsrQRJlst8uTLXvUThaWPU6v22K c/DgE5mJvWi8+puANLz+5g== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4btagd2sna-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 21 Jan 2026 16:56:55 +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 60LGKKsB008437; Wed, 21 Jan 2026 16:56:54 GMT Received: from bn1pr04cu002.outbound.protection.outlook.com (mail-eastus2azon11010004.outbound.protection.outlook.com [52.101.56.4]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 4br0vbhsfr-4 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 21 Jan 2026 16:56:54 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=D9wpfNKSOwVJOEyVGZ3OBYyCv8WCVOB8xpEI293KYOLaEzXcBQzKPOEWhEyAD1xoPoLF6/jactcHe7iSIfN+7Y/Z8u9tBsR++InLdV/5PzX+Yi/E7lwlhGyENojWruzEOLci/SO0L8tXH3IaMXOhvCQrjJjxvSapj6y6FDQ2x2Cu+yH1JhoHvT40YFY3IWhsgRn/HcEUJu2XirzqyrQz5mxjGmawafPAigNGeBDdL7QEli/cnep7HjdAlHzaRVoXkg2ox6T2NBCMU4fwRz/OLLJcN30NSmV6msV8VdCYWW78shvpRnVi2r6FzhLchVjT0aUL2Q63udFcqgob0XhhBQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=UBVpczB/At/Hp0AJLlZrh/IdMx/NryCDZYyORdy8gXY=; b=YFabJIGXC7ZUIArAq2Rfcqw6vhh+7cQ8D7orJT4uVGhCle2SKr8UKGdyujgHyXKbOW+SYrfkJHIW/4vhAPx6ouERXf0rXOJeJHM9jWatjU2GTojx5ShBQHczrcrBSeK5WMkUABCd78iS1s8znXllqMkRVlacDsVHkMkys/0isf+CvpA1IWiSjsCU/Vd51c/QgWUDYKSZBIkcRVgEEPYmAmk+FrxnfB7UsSRrmtSeifecqEklXOdg64PKcYd2moB/e033ILvRih34dCUfCrfOVwg+Ncys+DYm2rvhhlGRneZTv/0Wy9SOC6IbthzAaQ71OVyqUi34l1pkATWI3RD0tw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=UBVpczB/At/Hp0AJLlZrh/IdMx/NryCDZYyORdy8gXY=; b=Ae8ha/rioMuLifwAx6tOKr88rMfbVj2vk4V3hKoxhByff1xkjseBkQuzSKacxIyjY1kfVAs6/Nx3LrC3sFthyi8FCOujdMNw0dSpkRul+yS8m4FC7/fTmQNYSKTy6hJRmdeRWQz8/o3TWH9tANirPgsIshPji8K05JHJRPFFxUU= Received: from PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) by SA1PR10MB7712.namprd10.prod.outlook.com (2603:10b6:806:3a3::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9542.9; Wed, 21 Jan 2026 16:56: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.9542.008; Wed, 21 Jan 2026 16:56: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 v2 04/29] maple_tree: Remove unnecessary assignment of orig_l index Date: Wed, 21 Jan 2026 11:45:01 -0500 Message-ID: <20260121164526.2093265-5-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260121164526.2093265-1-Liam.Howlett@oracle.com> References: <20260121164526.2093265-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0051.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:111::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_|SA1PR10MB7712:EE_ X-MS-Office365-Filtering-Correlation-Id: 7b6b928f-d431-42f9-6740-08de590e127f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|1800799024|366016; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?r2rQx6CNlb9IohUnXjDr80iMri8ItsjQ0WcCSEjSr2wEMGTQW3YXUDhPqLh/?= =?us-ascii?Q?+5MIBdcr48KDxjsbbezV25ZvPizBtI8qXzuE1D6KNiAiN1KKUL7/Tzx4/3wS?= =?us-ascii?Q?KGs+HA5fAQL+2Eu3DwrfbrPXaIVlTJ+c+jG3rtf8nVv25mC/KM+zgPHzdy4G?= =?us-ascii?Q?2xiRRMl9GBud6PNEluhv5F80Oba+/QS/4WoZhRMSRAywbceQe1mUDmJCMeEp?= =?us-ascii?Q?nu5AhHsYph35ISud7V15/+DRK+Qu6FQGfAoRFmKWe5fzaVP6mpFN98oap5Wq?= =?us-ascii?Q?XrvsQTUbEhNvIBYWfiR/ye2C9CmwW/vUeuO/qVCby1lYg4WGBAonz4jisGjo?= =?us-ascii?Q?jJcrBBz8J8lQZ6cNdpRRE6Icu636KjmWauWDo05a8+ZFr/4jZb2NqF/KL9JD?= =?us-ascii?Q?UT2EcLhp85Ni6Nl10OQlNxTVq82zBSdCB0B64sZhr4enRs7v/CPNg+4A3hup?= =?us-ascii?Q?s2ZVbikt4Ddv/ynZPZv19++F7bsbi1kB2Wg9ss8MQk6kN1KU9U7LrdSrEAyy?= =?us-ascii?Q?+ykZ8DjHrPAksvM7C1au3EwTYahugAJn19SXDhJngRQWT2PCX7u+uuPEAslA?= =?us-ascii?Q?fEcYjoifTCO+VPFdcSvWraOTtRDp2WMTujWZus0P/Jqw33P9tmFEyc+DzEVT?= =?us-ascii?Q?hUwQULzDVN35Ox44LcFpHn9LkdEmxBLuOTX9ICFHMPmgu9kYGDiLWH5fHB6h?= =?us-ascii?Q?ap39puyZnRIr1d5ojchlPfmSN31z+1Qpe+3G6fh4Pp/bfn7RKZeUHZc0eBUJ?= =?us-ascii?Q?qhS5PW1EkKJJMaA35pQXhzaoUwAkt3W04slbAFIoGEIkec0/gIRGfSTWJ6hd?= =?us-ascii?Q?hXrxKRUBNlA6U6Ij/PM+Hqd2ArJcFXfkZTCN2/mW7vdX12a0+q341LY57h2c?= =?us-ascii?Q?dhHxIS+h9NC1NZu9ZYO3Kd++kTczE0LtpXBLFf6W5zzNIvLrUaFH4D4YbOrv?= =?us-ascii?Q?RRiNIQgZJYBshi82UqszTQP1r7K8z2Ubb1V/MqcAwrRI3tPwbLFXQQdhDO9B?= =?us-ascii?Q?vfyNxAi8bSQptj5Q+C+CGCkg+IRBHDiVfwOJCqWG2aoVuLQKAfJz6/yK8qtb?= =?us-ascii?Q?6QQdoV9JfOXJMjBUWVhd5o5NyNT0k+v85fWBFPVNIpuoI0leEXTjIUPWTPKE?= =?us-ascii?Q?6Fjya0tZ5/GOpkIilSyzuT1zam4gL7VAqEswNF6SJD2M4amf15rDXKhN4tcp?= =?us-ascii?Q?9TkN1eyZQLOCwZtGCn+ZZ+TJblfxEwvuD6yDd54a3+psVW91UzHfpOnyTnYg?= =?us-ascii?Q?VXy0JjcAnysm7Lw+Jte2DEr2i4ysa9wTMCNFiSkEu4oFD7Fxf0Gy4khrov7R?= =?us-ascii?Q?R1y/LndG4xOHkew3tBsxUtn7E3utpIgd9mglBIspbgIPG4TTmFkHWnVEMGlF?= =?us-ascii?Q?icHsaErNmaP6eTnLvl85+oJG6sGkZ4YAg1kUabYkwJTq3+hhw1ZHm5yJsAzc?= =?us-ascii?Q?sd3hlyUWLMOy0UHs/PuonPxRP0Rmy97qm+lNfWBkoRVk6/nfbTRE/tLdcTXn?= =?us-ascii?Q?0kUeo757jdFdQ8fkGekn/0P4FEXQIEOaFsucfAZJFCQ6UIS+8yb/p8lNvCRJ?= =?us-ascii?Q?4TFV130qYhB5NjD+X0s=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)(7416014)(376014)(1800799024)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?hC5/6jmFLmmHtYTvZ+nXLSDD38VR0wK3+4YnaE0XU2EKqp6IxDX9xXXOWK1A?= =?us-ascii?Q?+cVGto2DnyADTE/zCnetrJa/jOgkLlxCMzc3jb8B34GcUn/lJ7s0CSDDI/8C?= =?us-ascii?Q?vuJlCNV3bIpSvqUkhxKBeRM8qh8nkjbOesuQUvIzA+fODS+zFhTRhRdoa5Qp?= =?us-ascii?Q?agpLKoduxLgB5E1g85bQvZJNYwOuXh6BqAEgURc22si87DP1ozky6NbgdHT7?= =?us-ascii?Q?SkbM841nA4U/aGgNTXAlBNg2SqO76N3nOzU9F7PxjViujiEmbrYvda9h90h5?= =?us-ascii?Q?9u469AiRPqpDt0YccP3HebCkhDZvAk2hEuMnuCOM3d2iLGV6vdP+PartPNNJ?= =?us-ascii?Q?oe+uMn3G1Rs17QZV/MqAKs9PzLhz6J46zF+ByLnaiW7s/KQBQ1ghdb2x36fX?= =?us-ascii?Q?SIH+YS2MirrkGqST3VIQVRJdmnk/mInoYTc8RDesb1XUZBguwPBp0DYiW/N8?= =?us-ascii?Q?wK4JymcdYlHrSNRkl6DYl4mmTtXamsWygJPDMHhtnImMn3ruUOVQ+XCh1wly?= =?us-ascii?Q?98Y4clwbebSBJGOUb4JbkduHXVg/7OZosJfuh7U0XttC0OufkYDie/bosz5p?= =?us-ascii?Q?sWhxtMiHO5YRm61EvvdWJyiXOJNyCdX/pqU4x6k8MsMalEo8/uQ1r70y0YG6?= =?us-ascii?Q?wmTMMJhFrtNM6fyXr8RgVck/HxgOAUUJ5maA5KAeGFC2RPx1pMUeslgssA8W?= =?us-ascii?Q?HSR5bztyFQA3G6IRDf+DfwjtnZFo491tQerPaso5NaoASAWZYC1WVvw5Al6M?= =?us-ascii?Q?Ws7Yl8NvqmqqBjmCN+qBjrAczurSoXH+R2uJ15+e8xuvW5yJhhAf5KG8fpBk?= =?us-ascii?Q?tVLWvbQudoqsgCIua0JXqasfqdR66hAP8BKP0zgHCY6g6smGb936O/4DtQEh?= =?us-ascii?Q?BCyW5FX1eQT7BK5zkU4CNEzgpoYy0EevIVz2jDROOS7rKu0bWoUATZLHDo+N?= =?us-ascii?Q?og7VIOcFEKznf40YWp+sfPT6ERdJx6rvavS7qdONQzyMT+bFkGKSzhu1t5nz?= =?us-ascii?Q?RKrdQauNTD6Sk0BTW2f305t9SdWuXcIVTmRI/TBxEIcEV5XUnwKujwGAtMGM?= =?us-ascii?Q?sne/HTuaTaQ1NCKgMoXPmbTxULXs4ljxjWtlP3y/+OOeKCpFZSjrPbYO5Hgx?= =?us-ascii?Q?X9Mefdl9eEx/suDnVEf3m8zHS1+kJmoYOeATUN/YtFWtwkLwbA8O5Bbto5w+?= =?us-ascii?Q?QYax4x23Wy9H5EIcagahCn3M5NJPMTcbdqnWnoilv5aF6AQIlT0ff6MNa2HW?= =?us-ascii?Q?HI4MtUW6lHs/vcUJ60f33dTggNJV4SBR6r4G1PE2XYHH7I4Wj+VCn4Q4seQk?= =?us-ascii?Q?d7s4qWV8CAOVu0GKY04lub0TE0rQ1fj71wxjmrFpeqn8ViNnLcblC6Tn7kW+?= =?us-ascii?Q?iKFKW36y417fFXwn6KbR8gKTsB5oCLMWssgQNsW5Lmvl9dabE4boWkHfjq72?= =?us-ascii?Q?QTXJ/yJAbeC44RQ3inxsO1JHhTSlKNgwuRJSGf1UfEihAR6YiaICrYG9xXS0?= =?us-ascii?Q?+J8VRYTRMMTGbRWoHI2yIGwwGfcrT4URLWEnSUCJ2cVyVcCHOWPEwOMoRqLt?= =?us-ascii?Q?4C6EXHwTwqWD1LMcUiW0YhVR7eo5FIXxnTIDtvFw0cV9rT77dixebaVBvvMk?= =?us-ascii?Q?C+Vp3pntU/DMudGVV47Iu7eDe8HEv5hxSJzRejlKkl2cV9wYgYzb3EoKS/Kt?= =?us-ascii?Q?pH5iAvYHMgyU/F7OZGJoMM2oZDy3ClCH6JDyB9dAMdh0CA13XwXmekgOvxMW?= =?us-ascii?Q?d32a1vuaUw=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: Ngg/cUg9uCXeKF4iVhLGZ+JTkFbHe438CrQd6ksWkur2G6gAjZ5n4qNLV8mqLqP4M3GEE5iaIf1mWGH6/aRFs4zQvrm7NOB6xtinUajvU7ApaaRrheqQxEKXIfhqJG72WJCeEb+gOnfoBWkuFZvvZzjXPpTemwELk5aMQU6rTv7OTEmHaOJ9+iPhccTcQ2IlHJSAXSeiRjZQild3pO5C2bo5TWShes1bGKftstQDGxOajuuKyRFjLlHtd4Veh23FoC7Q1t95Tl/ETsvYPfMdyJwcRNElcAAmSSVDRpunzH84PFaDCRKeedPeP+hjhD/iWLuPHFzWRvFvYpa2C5eekwome0UilywxZeYLQdYmSpltE4ubwgrJaHXy8U16yZbHsKRQ2QGuU8GvqtPnapvqQbQwV9QrGq+uoHEScpPStFxW0cZ1Sgi3nSBNkJbqhOi/KSCs+MHKhErbk0+bck5ff6eckugVVmZKnqsPSQ7+3TvSKdKwjaqt07ZG5Jr2j7bd4VRMw+Yw1QZK7qDZcuZ/ZN5EjCgMpwI8nyz63wcv8NSXIz38iz0eZ7PEWxMrXtPB1+DJaGwmKVNsGd7isSKohM/ySAkA1OXnBope0zVf9Ls= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7b6b928f-d431-42f9-6740-08de590e127f X-MS-Exchange-CrossTenant-AuthSource: PH0PR10MB5777.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Jan 2026 16:56:50.8930 (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: Z8gBg7HRFQQt4WWDoFdmxSZ4Iv/bwl2YBWVpzgrKn9QbR0/Rc0L3hxdzfbj4WdfkOERCZa3GaJzX9NwkI0iDdw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR10MB7712 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.20,FMLib:17.12.100.49 definitions=2026-01-21_02,2026-01-20_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 mlxscore=0 spamscore=0 malwarescore=0 bulkscore=0 adultscore=0 phishscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2601150000 definitions=main-2601210142 X-Authority-Analysis: v=2.4 cv=PqqergM3 c=1 sm=1 tr=0 ts=69710557 cx=c_pps a=OOZaFjgC48PWsiFpTAqLcw==:117 a=OOZaFjgC48PWsiFpTAqLcw==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=vUbySO9Y5rIA:10 a=GoEa3M9JfhUA:10 a=VkNPw1HP01LnGYTKEx00:22 a=yPCof4ZbAAAA:8 a=sHg5AOaFVM-jeF-jK6AA:9 X-Proofpoint-ORIG-GUID: gZIlT4_QzFUAt9f_xJvfcGmrIAaXRozc X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTIxMDE0MyBTYWx0ZWRfXz/Su6cB8SmQ3 4mtAZ1QNGLfTpE/9Uz2t0mG1z0NzI94jTVQiBxISMLsISkt/PTwAUHS68d17lgZILI8nQcP7nsu 3tWqO90UDbPiBKN6d38manbHCy2xxxrrAxbr0spL2RsHfrOLMYepNsAm3TO+TISCJm6a6OTY/T8 04PecWiY9bgwWZqFOMS83ieHX+MjAxVpI6KzgmcRtCj3j1OTNoN9Etva4fjQUqJ3d0BhCKlA0Yu LJQHI0uoJBPeKfgu2r3hxVnWP1JcM8UXFYC8Y2Y/ef7qrrq3avVES5XECi5UkWUTSboQAl8neju 45pOZ98Ig4dNGnMwx3cEpqFKUaLuZIBIjly6Hu1j+q766dERlMRR+kxMU1hpmoMEDoxUmzoTBnn ITCQX/ulMd8tEdIHoACYGPgYhu0MJ3+u1DVpSrDme2ONvl4drfIr0Ogf0rkfpzIRyOwGIMfzCRW hwOhC9TyNMToPcmtVWA== X-Proofpoint-GUID: gZIlT4_QzFUAt9f_xJvfcGmrIAaXRozc Content-Type: text/plain; charset="utf-8" The index value is already a copy of the maple state so there is no need to set it again. Signed-off-by: Liam R. Howlett --- lib/maple_tree.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/maple_tree.c b/lib/maple_tree.c index 9ab42821ee2dc..1e780427c04a0 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -2766,7 +2766,7 @@ static noinline void mas_wr_spanning_rebalance(struct= ma_state *mas, b_node.b_end++; =20 /* Stop spanning searches by searching for just index. */ - mast->orig_l->index =3D mast->orig_l->last =3D mas->index; + mast->orig_l->last =3D mas->index; =20 mast->bn =3D &b_node; /* Combine l_mas and r_mas and split them up evenly again. */ --=20 2.47.3 From nobody Sun Feb 8 07:08:28 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 6FCF435FF7A for ; Wed, 21 Jan 2026 16:57:19 +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=1769014641; cv=fail; b=rzSC5ooFyCuBHd5Kc/br8xwn2kgEOC2X8KBP2sM0apeDJ93Rr96D8kZERWc0gNfluDA6NxB5UvT4zhOFerA1f18WnZbruGTTlndHqIB5dkAv78v/t1T0NBt1uHInzwg8dG1zFOnqitoM6Y6BarBTvxiJlnrRhenXm/p404Es5QQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769014641; c=relaxed/simple; bh=sS+4OcOQeJ+Hd1kPwbdr3HZzP3+Au23J1b7Y21w80eM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=r4pJFgnkrTpSZID/gkZIRrDiUL9NRok5L03fjeiMWZyklu0Nh1BX1lKQnmv2Ovod88PrhZ9JXQonCAlZ0Ou7JlQJtlWB/8/i1DdlSXiyc8+XRNH1wpmUDGiPsaS5oRJ4kF7fSWZ3hkx+SqyBVNsBUS6W9D36iWn/n4JT2LpdJjA= 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=sah4o5PQ; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=ROuPScr8; 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="sah4o5PQ"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="ROuPScr8" 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 60LAOBhc3420379; Wed, 21 Jan 2026 16:56:58 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=PAodV3H4Y2rNiIqjcqcBpwQAAZmeSG2ZSvqdZ0H+vd8=; b= sah4o5PQ0XeWeUy839psPeZ4n3bPYvn1Z4dIiwYPJ/VVCUNgOmxh8xmIW8DxQVi7 BlEt9s8TU3U24aX26aM5td/KySXfJF+xfVqPXHJs5CTovT3BrZoa27eC9wEYrm8p qxUa/RtO96SkQh4rBFML0iBJN/ZEBW3whL6kZSAm0LklKCSko6gioNI0hhizxnv2 QvIywdeT1xP+ipv5sxBoFdoz8Omgub5zqYMwOib2ujQVDqVtGP4W26vD2Y+ABzXm c/zlj5G4+pmpMTpPJKbiT7V7wO6Eq1huLKfGLBX4lnjM+pAgjI2uYXKwHJ+gsWUr nvvrnkeFoYd/uKXfj5bOoA== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4br0u9pe6n-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 21 Jan 2026 16:56:57 +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 60LFn7Do022480; Wed, 21 Jan 2026 16:56:57 GMT Received: from ph8pr06cu001.outbound.protection.outlook.com (mail-westus3azon11012058.outbound.protection.outlook.com [40.107.209.58]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 4br0vf9yx7-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 21 Jan 2026 16:56:57 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=dA4FnI63EcZfyroTwaEAQ+h+OlO+6VruiSo0Fx4K9A890oC6K7J5gfEw+eCeJGxr/jeTDhISSp6wcNFS/ePtDyTivJE6aV/HcI++kaFoFyd6Vh8QcQJKuEPrXVyPQ9ZSCQK9CwSyM6FO3yDc8cXI26YSKH8V4CdDlAIY+nHT3AY8TBhh2AGFo6PR+ZeF/D3uK8HOsgBqdph2jdUhnBC4Q0M5DvVIXy4yP9WSfy6oHUXdHalgTtvxzoVqXdcvKbE39F7r9CAtNTrVY+tbN5UVAK8C9DXi2bCa6WeVVlEEkxW2orkU+Epoofbgu2yBWx8hEPj3Ha2ZxQUPqtoHzs6wrQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=PAodV3H4Y2rNiIqjcqcBpwQAAZmeSG2ZSvqdZ0H+vd8=; b=Dqclj+JaIJ3fA/w/QdZAQDh3/9yH4hFXpYbzcwcuNKfaoActFxpWnNb85gisGyF81nKTLEad02JabGgBZe4nmsNVii2/F2uMdjbQjIflBOiEreii9CogunGDGblaMfsgFpMb4l9FG/QLlVVigeOF6nDJBaJWxzjEOda8WQ5y4YKmBlNJQzQAZerp7kE/6HpjMMTQlqUY1kv6iuKJSfM40HCq4yEbiKVKjJufC1+tcQ1tulLbVHLYWir2lIFjLbm8QBLbaLZVTPfKXupMnYdqCWHtEAGQqVphgdQcinf0Z9ksDz9uPi9+s8HDUqYHz5ltvS29icwQgKphZczuWtDeXQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=PAodV3H4Y2rNiIqjcqcBpwQAAZmeSG2ZSvqdZ0H+vd8=; b=ROuPScr8I5q61Tgdyah1tPU0ASzLQYKqOMVi/idQIAGn3pUmefi5g1+KldcfUcllK+zrVzdT2MUdK2RrS0o3tTo7KTnB33GNOhXr4CAkM9/Yd40t5OmZLSmkREaZroRgQ3VzRzuN5bjyFk6pXMTZ4w6BMFN5jSduh86Lf/L92O8= Received: from PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) by SA1PR10MB7712.namprd10.prod.outlook.com (2603:10b6:806:3a3::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9542.9; Wed, 21 Jan 2026 16:56: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.9542.008; Wed, 21 Jan 2026 16:56:53 +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 v2 05/29] maple_tree: inline mas_spanning_rebalance() into mas_wr_spanning_rebalance() Date: Wed, 21 Jan 2026 11:45:02 -0500 Message-ID: <20260121164526.2093265-6-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260121164526.2093265-1-Liam.Howlett@oracle.com> References: <20260121164526.2093265-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT3PR01CA0112.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:85::30) 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_|SA1PR10MB7712:EE_ X-MS-Office365-Filtering-Correlation-Id: 5ba09e53-3fce-4796-1136-08de590e13e8 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|1800799024|366016; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?d8hZy4whZOPsdyg7RLln5Dp0rp1QIDfF2vORZ4/sI5YwyoKQYNqzFfyVhAF/?= =?us-ascii?Q?P2mXiUNGpL4TSI8XTv/PYZ1VlRbhqYswGD1AT7rbPxfllZMkQoJHBy3RZPxL?= =?us-ascii?Q?R58+3H97wQ+/iPCT9sXvJsIhcp98Hwrdj+RR6yG0qtPAy9GVPKxeZPzJ7jLq?= =?us-ascii?Q?cXK1l3bxvxeUk++H4kZrz6R48+t8aJZlKPtCuc7OmYfgSMWMN51igY2wWprZ?= =?us-ascii?Q?PjfKvPB36t7VbTvlBDnBKccWPGRH9zynJCb77bbodkjco8wTOmor3u1X24U6?= =?us-ascii?Q?+mBdTt5wjfdd+B1eRQfy5f0NqGHl/4rB1Sicj1Lv/fu8rllxNCmmKpu3wN6w?= =?us-ascii?Q?RR+1LSV8g9AK0QBX8rABMo3hLZFlk2SGWMI5/JbubByEBHtldH3F5iqg2lpk?= =?us-ascii?Q?0RBPqnpfWCjtn5pDp2xXmSF7IFe2Q747j8caF9BbffyoZ0C0bvEtrkLrIqUb?= =?us-ascii?Q?TGivhTwgfo1DymQ2tdS2ziK5KvbUhL/tvzPXyQ1+AQYHvTDCpSmx4a6YN4nr?= =?us-ascii?Q?86wqfPL78C5qjPCTK4f+Qg/hqsHbLviSeA0wAHDdpdmm3foBi/1QfURtBzTg?= =?us-ascii?Q?kyF+uQ3pfGaPAgvyl1kVfvpz8lCap8ePgBuD4PMZfiFfIDofoQvvQLCFpd6c?= =?us-ascii?Q?ZzTnwza5BdkUWNbjBH7is8a5G+KcXeRJpZ6bjZ1vB1dMf5/nskpmVvXF3hyj?= =?us-ascii?Q?7TbDMsNNjmE/67NUoF+7V4dYanp/ESjdTmDGAD+qFKfDucKDBsnjVElJm09V?= =?us-ascii?Q?/dzemLQY41s5jQaV0i/7rPszCHnjr9AA3NX59dwc5ndB9bXV3OBe+vkYOftS?= =?us-ascii?Q?KnsxBwW5gLc68JKlFW9tJ9JxrV31uqgPzkodpqS+aeQOC0laeTIL4ft6jfWQ?= =?us-ascii?Q?qreqBpVl+9iuiLL+gQduBqRcpWlYxpuqysp9TGgE9rEOcvhvNlXwi3nu33e4?= =?us-ascii?Q?euZ1SCuLQI0u6u0Svkm6pv6E6hiEBMTAvFh6Uq9wnpq+cskL63m7iBCqInck?= =?us-ascii?Q?yARz9esvBGCY4l4OqEk5EdtwXP26xi27kHFzH3b50G1+aidmuu0+XgKuFYUb?= =?us-ascii?Q?M3HqZadKtryoB1wANakhWXiP9b6x0d9sdp7WRjExhZb1oZT7GLsWWYo3iQ15?= =?us-ascii?Q?iud7etJFMZwIlb3L1JXilxvK/7yzCqkUrvGNtOXWye6yeEpAFhUec7Po19Dc?= =?us-ascii?Q?hCKhU3RWJs2msvFbhznwsjm0fYrJ95E5CxzQKmrtMJwfoiuHBzzKFSfplyrx?= =?us-ascii?Q?5oqOb6/+iuAgkKF7wdF6FtF83LaCsPEMgrCRKDtvNotrJSpxtwR11OFbMaIT?= =?us-ascii?Q?up5mmgMKx4nR6SWmxvDlTu9PBwtNLlss66av9S2nPFnMChu6OO52vVWdfaJw?= =?us-ascii?Q?xyhcMeprk4nu3c0ox7Tp1SmDC2JfTZIelhv+YuiMCEQfAGu/MAT6fzVg9xRz?= =?us-ascii?Q?EvO+MgrSc3Gy4Wj7jBObC9GU83SMz5rSIPmcb4jmlZ44afFmp7Buf1PCGHIJ?= =?us-ascii?Q?CXqTDr4sd0LxAcrg9f44r5yaCIp53hwPv4ugYa4tIbmUBC1sr8Hh4hU9HrlL?= =?us-ascii?Q?fQhvow/MnLDSzTs+MOc=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)(7416014)(376014)(1800799024)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?rte5d30V3tRdRQngxiTnhS7LilhyyxemtBTwk4zfm1WcuZDkTiQsa7c8b1bl?= =?us-ascii?Q?wd39okJVmVR6HJXfPw/uqKPmKxOhS9HeFRMnv4L0Pb+LCaysqZfkzYrlsfSR?= =?us-ascii?Q?ng0lIkXVHeaRcStT0EYxBvPdtuafTmJDP7Csl57NiVOV8fLryE4an03vOyr9?= =?us-ascii?Q?60gXr3JJLAn7LfdXEB2mZtp18S/Y6MYNZ4g/QXkNYxIgo84HMouh0URIZ92x?= =?us-ascii?Q?mDlomJHjjmyfsyJMgmn0MFONcqXl7l9iEAncEecjx17Ro27dlFig9an3SVTt?= =?us-ascii?Q?eRtg9kpeuccKxYR4KSC8mRHi1/ivkbIyuL1U8vK+zpsCPoDlSdUHAeY60Lkx?= =?us-ascii?Q?6X0MCbAhVpuTyX8GZK55wTTff5Jwy93YyHfp/oXfgPpr+ALwNJnxT5qgprlg?= =?us-ascii?Q?yklrs0AtJAHjfmu7Hh5Tzfqcpz0klXUNagGp1TFZxt5aEpllJ8SdK50TtmQM?= =?us-ascii?Q?AaLiFc1XpBXoeLkb+eNq0ebjosOkfEmDjJ4BTrHlPSFSzZ78a2em+2ANwHa1?= =?us-ascii?Q?UOC9ZRsMufSiAuh4sbXlGFxvWjGeIXOJK1glEC4Bp6DzB8E6h4JzTGTkA4kp?= =?us-ascii?Q?z4tkcRJkTAhnCClBll7mErmtHD9iMEj3aGGuRqXOjTXWMJXXyITrK4thxBNK?= =?us-ascii?Q?IYfuzBSV0uXVSN/8wnuhQmWLbrZBSk7EPrg2xUmtYBc/0YFuECBT2IUxcNfv?= =?us-ascii?Q?4dOIHpvQ18QH2HiX803gcezED2FXddw6PCMK5VKH7m5l3yu1mwHwg7PeKqSI?= =?us-ascii?Q?6jbOE4AhcBTTCuXy4q7SkGV/PmQUPume4cPrpPZ2Uy5qF5/Hht0kWutq4A9m?= =?us-ascii?Q?BmMKSOtpC/+XotClJYkNxkA7otaMwRuCaO+/cYv+3cKwZ5qmBSCdhmAAVgaq?= =?us-ascii?Q?UQPAsdB23duTL/bGl629ckOfOaaph1ELcFIYzHGh+mZxEwVEisClOGSWBMWV?= =?us-ascii?Q?+JuWoTfLs6IKHDpIaLkKGtIdojflOzeQJB+pyw8Wzfd/UFkckmAciGswwEh+?= =?us-ascii?Q?nDtFc275ovp0fWvYBe45TQkVccBxfhwk7qBP50r/YBng2vpt1aJUrULH6l5m?= =?us-ascii?Q?zqQYWIV1mNF04843yBB+wR2MBcceo7riAfQu06DWPN6WV4+xeTTnaCRkGYms?= =?us-ascii?Q?lqOAZ8XsWLojlBpi5OkEnyCgW9JTh38L6WIPHoqnLyguGp/5K8EkZo2u4uwA?= =?us-ascii?Q?n+L75KzUMn4t62q0soRKKaDWtTB/4FbKeSDLUgxKXlo54dkxUnCQ2Xgj1WRf?= =?us-ascii?Q?6m1xLyvUCELMeuPsYXazx/SMdIxxY/7w/ZilDEV8xGIZ4MI5NqDEdTw8jkik?= =?us-ascii?Q?Dv21X0TjgeCUVXxyCHdi+PbAT8FDOWNmpIutTGD4+tAV/sovciGvIez8QLN8?= =?us-ascii?Q?6jocKYHmv6FSK2GipqXrzGr4/iYcIyRollTdtwmnaWfSORB7vfeiG9BTk09o?= =?us-ascii?Q?N5gMg1SG55lWz77ncMin4Yy5Kn2+2j8moDH+8lEIXIIGvvyOgXl/grUA4iVC?= =?us-ascii?Q?ymlzqptUECa74Kyh0t8Vb7/x00Ta5ZX4PjNifP9ht3HEPkm0KC1AWK76eiV4?= =?us-ascii?Q?fIqsVDfxi1niXLZyUVockfnjPgOdBL+wOpIUWlGOQRSA30beKsveioE6bR2S?= =?us-ascii?Q?UaovKALtX5HhNax3RDTcP40557+YdiYUle8wLhw1BgJCZQgw0/gNOw4VALzm?= =?us-ascii?Q?52OARq273ee07UMEW1zmAuzr+d+WhCC7s6qja7K+TQvmQtm9DqJF84IjkUUG?= =?us-ascii?Q?CvJKH68hDQ=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 11Szc4/WW1c62OfcHjh1ceNSiybMaIgjPMDfVnlmMDRUbMSW+fq3SoNEO4laukH3c6mV1gmkfEygUaARwqWuT8EwC+MaaArYfr1t80ftL4vwol9q/HM83xh8eUMmruayAG+2hCaV2KXRPwMSef5wpgKGGlE3IqxwpWSj6NHa5aduT+5iVQAa19qT3l59BfPhm7usDMi9NidYvxjiFmBlHVB13eenwMArYYcPNF3UfrI6v9TO91hL9BDGtNe3RoebD+KWkXYxNKN6OpwaP+NtpNl+OyeMLnVFutHwV7HcfQdP8tjIFjseJjFltpTVbAtbctF7Oa3/xAyEv43BO9SpWC6c4GqJ2T0Ze13mZV3VUlgQHQRXeVjtpNAdWW8E4BLi1jH2uRQadbwTMuy/+LPbfhwQeez5sKQpm+4TZFn1njSMt2Gsi8WGdBKmaa+yQZaOUPIPuZvivuiJSRtvgLtpN8QK/CW2yPU1FV2ZF6+MwS/bTCswuGmWSRxspXddLd/apr8fjutGVrFart65wrncGGHjOE/INr6mBGl8Zx8pG/u8VL6bQgxBQllpJEGauIMEY/WGGIRu34wOjngcTF7aokmHMtKIDP2kbEmbjSi6O+k= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5ba09e53-3fce-4796-1136-08de590e13e8 X-MS-Exchange-CrossTenant-AuthSource: PH0PR10MB5777.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Jan 2026 16:56:53.2476 (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: d0B+YoDMvV4hFnjtPPPA1hPJQoqxu3JAe5h6gZeBc24lQ62fRRm8IRPOzQV+hAlKOpKu0RDOqA7Bq1BV6r15dA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR10MB7712 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.20,FMLib:17.12.100.49 definitions=2026-01-21_02,2026-01-20_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 adultscore=0 bulkscore=0 phishscore=0 mlxlogscore=999 mlxscore=0 malwarescore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2601150000 definitions=main-2601210142 X-Authority-Analysis: v=2.4 cv=OJUqHCaB c=1 sm=1 tr=0 ts=6971055a 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=M57lEg7Pwa7NdtlU3hgA:9 cc=ntf awl=host:12103 X-Proofpoint-GUID: bPTBXJLmfYxqZoOEtVKIlI18Tg-tVlD2 X-Proofpoint-ORIG-GUID: bPTBXJLmfYxqZoOEtVKIlI18Tg-tVlD2 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTIxMDE0MyBTYWx0ZWRfXxtsy/mfkslI+ IUbMKhCSmE5sIQtcDjSY40tOw5oYcw5AEnA91D3giVyKs5N+rym1LyREFujogNl4uXDxZifHoIf QCbdIINIZ90eiSHqTCUg1TzIrdHSw7v4tVPf9yvv2vQyrz5dZZr/Huku3l6QYKIJeOdRRbx/D0W a7ZgQGRG7L45bvdFCWWxUS7wiwgv1Qll8ccvTIoic2ntKMASvdrgihUktKQoFFzE4QfPZSlW2cC EEZR7UqoqTgb23lDgG4UOXl2NrL80FuKQ2SqJ3CK2xmILUV5K2NqO5eRjbb7Gb5aez83MdVhjpB 0PMvhblpb81UX7IIqX1uEkZsk6gYZzQ+tARGZx9aWpTYOJeiyI9vNHYAspUKzgfCZaUWs5i/lWc P+wwBTDTV8GuZV8K80J+4S9+XLTVzuJI7nOkL1l9dZOLXC+lcTHru8qgxG/cYGBmgfStfmX7Qtr QJIK6bm9xjys3zSywWWNzYHQO78Jw16wsM89OXC0= Content-Type: text/plain; charset="utf-8" Copy the contents of mas_spanning_rebalance() into mas_wr_spanning_rebalance(), in preparation of removing initial big node use. No functional changes intended. Signed-off-by: Liam R. Howlett --- lib/maple_tree.c | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/lib/maple_tree.c b/lib/maple_tree.c index 1e780427c04a0..fb14ce4a49c3c 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -2754,6 +2754,9 @@ static noinline void mas_wr_spanning_rebalance(struct= ma_state *mas, struct ma_wr_state *l_wr_mas) { struct maple_big_node b_node; + MA_STATE(l_mas, mas->tree, mas->index, mas->index); + MA_STATE(r_mas, mas->tree, mas->index, mas->last); + MA_STATE(m_mas, mas->tree, mas->index, mas->index); =20 memset(&b_node, 0, sizeof(struct maple_big_node)); /* Copy l_mas and store the value in b_node. */ @@ -2770,7 +2773,22 @@ static noinline void mas_wr_spanning_rebalance(struc= t ma_state *mas, =20 mast->bn =3D &b_node; /* Combine l_mas and r_mas and split them up evenly again. */ - return mas_spanning_rebalance(mas, mast, height); + + /* + * The tree needs to be rebalanced and leaves need to be kept at the same= level. + * Rebalancing is done by use of the ``struct maple_topiary``. + */ + mast->l =3D &l_mas; + mast->m =3D &m_mas; + mast->r =3D &r_mas; + l_mas.status =3D r_mas.status =3D m_mas.status =3D ma_none; + + /* Check if this is not root and has sufficient data. */ + if (((mast->orig_l->min !=3D 0) || (mast->orig_r->max !=3D ULONG_MAX)) && + unlikely(mast->bn->b_end <=3D mt_min_slots[mast->bn->type])) + mast_spanning_rebalance(mast); + + mas_spanning_rebalance_loop(mas, mast, height); } /* * mas_rebalance() - Rebalance a given node. --=20 2.47.3 From nobody Sun Feb 8 07:08:28 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 A3E97328635 for ; Wed, 21 Jan 2026 16:57:23 +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=1769014646; cv=fail; b=n1onq6K9ZWtHIr7pve26PRsJ71lEAKcJZsmeGKORs49xwc8H/5hF5fOepqOKPbfTMZ8VNGKfUeRFs+jZPnHMgOo4nkzQ6xFJrJ165KkbD68MolBjhykmi55zaXvw3/yy+nH5kdPME7d23SR/MefaZ4A8FSr1js8x53sX5JnvEGY= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769014646; c=relaxed/simple; bh=fnsHgr2uhrrjhQb+lNL7GCYQd53pCBFksnYVFgxG2yE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=kWKgpp+AE7G0vAHTSn5s1tRXl/nP/haW+pZnkJrXkCqytI3OtwSnZddBTmXDsVEqDF5V/6pW6B4Iws6m+AZJHAqXwcdLSZGELpK9y/NSLGNvt+YiNlC8q+3xlho824qxxO1qbFaTEIeXNT1iv7r/t7R+PesSi+XRY9xrPbsx15w= 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=sCaTEmlY; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=iJnR2Xhg; 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="sCaTEmlY"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="iJnR2Xhg" 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 60LE6JZM3418790; Wed, 21 Jan 2026 16:57:01 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=m31wVm3xrbms261iI6YNla3eOFHUlW1kVlFsSJ3MWFs=; b= sCaTEmlYlDwUpOPtCV8spKgQ4GIG2//XNy2xFDCDtaYiGdb9mx1Yly77D8wUEMXY yBakl9bj0tBul8rZnrjzb1Jv5J8wGoFAq6v8tss6+coH2TgoBG5ko4SUDTCiOzi0 vtmNINdJsVjblA5EeglCXM85kP8Lv9ehzy4BNg1+ccKsl6dZt7y8PGKb+6sPOejo n1TtYEScXgUsExCNY0mWQ0ijiau51E344jmP6Fy22GZsCBZZ3KEn/Ji+/JXNvaj7 GzlBfF3LzXpLphsUau/19daweCJPIPPe6yHwZ84egeMDIPwn7UOF/6utrIj4Gwwi L1ZqUT/BZovrkpJFMxaMaA== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4br0u9pe6s-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 21 Jan 2026 16:57:01 +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 60LGSYS8018292; Wed, 21 Jan 2026 16:57:00 GMT Received: from dm5pr21cu001.outbound.protection.outlook.com (mail-centralusazon11011028.outbound.protection.outlook.com [52.101.62.28]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 4br0vbhgmp-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 21 Jan 2026 16:57:00 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=mtGIAizqq0j9q6yHWWWncXHJkcvi6T03oYxdCTvVvkbAsThTxkWybXWiPJoZP26J5G5gWDQV7HjMlMDH56kiQY3W9n9RJSebjf5kgl5xDkhcpTZ9KuCWgbTILL+xzoat6F9XZO1rF4Y7/1kcqNDyoVfiz7AKQjzX3kPc/gtGKJa3cwUcyfMAwcWm56f3Krq/O4byvGWayXqZWc376qRK3NbCCEuJalA5U4pDlBsrXZ4jwr9wAC4ZOcHUcpa2O+9Ht/iXsynTnwSXhbMkRZftwl3biYl3UennQ/W1dp0WyKNdRnn47GjPqS1+/+5WjEcaPY6NNKUaq1VvLEO0cEbHWA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=m31wVm3xrbms261iI6YNla3eOFHUlW1kVlFsSJ3MWFs=; b=bnor+quQ0O1APOXWykTS4Wt2q+DwMdNo5pfoiJBH1ZLeLp2xdN+xXqz1f6cKyo0ZTgHsdc1KxswZMTBrOKdhxL+6/1ZfTAS8oYkyauRNSkI6324vCk2143fYsz3ReHqQVkPl+wfvapQ4/0hnf/H9NMSQ46v1NP7PgQpIWZHJbAPdD2HEgA0VF5wLz2Y6iAGf9/PowHRjMrX1oVmWhsjrLgIisP9PBbUOiOXk8vCc8SZPe4ol8TPCoA2E0aLX5KRISU6F83xst4YAhxzmbRB053NWVy7LP+OmjoLfWyfXqy06c9P3o+SSPmQws2HGsUtcck2FHhVg7//XUub4UY/eNg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=m31wVm3xrbms261iI6YNla3eOFHUlW1kVlFsSJ3MWFs=; b=iJnR2Xhg4H6GSO+G8NQ/wyR2Rk/tsSL0U6ACAQqH9FhHPXbbTJd/L/pI1/O048E0qqxGBT9XWzEfR2+v7VsGIF9XL4z2sp+16vzD3lW/VyMQQH6KszlJLr8fj2s6jcgfEwVoKbAKvcSjHerWLNyZds9I5cImnn6MXtIRC2sFTDc= Received: from PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) by SA1PR10MB7712.namprd10.prod.outlook.com (2603:10b6:806:3a3::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9542.9; Wed, 21 Jan 2026 16:56:55 +0000 Received: from PH0PR10MB5777.namprd10.prod.outlook.com ([fe80::4b84:e58d:c708:c8ce]) by PH0PR10MB5777.namprd10.prod.outlook.com ([fe80::4b84:e58d:c708:c8ce%4]) with mapi id 15.20.9542.008; Wed, 21 Jan 2026 16:56:55 +0000 From: "Liam R. Howlett" To: Andrew Morton Cc: maple-tree@lists.infradead.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Suren Baghdasaryan , Matthew Wilcox , Sidhartha Kumar , Vlastimil Babka , Alice Ryhl , Kuninori Morimoto , Geert Uytterhoeven , Arnd Bergmann , Christian Kujau , "Liam R. Howlett" Subject: [PATCH v2 06/29] maple_tree: Make ma_wr_states reliable for reuse in spanning store Date: Wed, 21 Jan 2026 11:45:03 -0500 Message-ID: <20260121164526.2093265-7-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260121164526.2093265-1-Liam.Howlett@oracle.com> References: <20260121164526.2093265-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0351.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:fc::28) 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_|SA1PR10MB7712:EE_ X-MS-Office365-Filtering-Correlation-Id: 79fc62e9-126e-4802-61d4-08de590e152c X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|1800799024|366016; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?p+wfIkiYaw7rsFcb1cOfAH/cbVMVkevsMRbd5uZ8XRwQFNJmXwlZCxRtQop+?= =?us-ascii?Q?CVXw9b5zd1Xr20ObBZ8E92rYniKSjdXcYbH3TY2x0aCKDvCVsrwWqtulJKUL?= =?us-ascii?Q?fdxCjJakEPpkgGzlMG1Wui8Oo6iDeHBHZ7eUaX9llHITs/Zl8vIoUZdQ3xuz?= =?us-ascii?Q?xbR5ox3QT3yLiGRCbJHRlmy7g1KzFNR9SID6RCYHphl44DoHFguLQiO2bl2L?= =?us-ascii?Q?WF6uA8fW70O1wozfVewnLDBQXu64VZVDqB7NYkFXwHVF57ZEYjr6IIcVbaIc?= =?us-ascii?Q?ShEGNov1LhcW+lVliP8L2NZO8JmL3zGpef0gj4zymZoQu7YSBPA5G7FXiS7p?= =?us-ascii?Q?ndXdJF/8fDnxX9KToN/APWipcLbKrl8xrnq20oCN1p0kRvqbAHFel14rLCfi?= =?us-ascii?Q?5R+8kf5F5sMG3IUyINZASWtX7lWvs9eJIPPlLNcR6JSQVdTsRHgDVOfgz3Ne?= =?us-ascii?Q?z9yxHfyxFg0M8xhMDUk1ErbIE0TossWQ1ZgZDz2FVvKp/pBF417ujXqcDZX7?= =?us-ascii?Q?JOQQmINNePVLUD4gx8Qr9znp7nQdpnVTfLmA4L3EbPjmOCQFAo+MstvI98rx?= =?us-ascii?Q?+U5PahWDbvlGSggOx71iHhhHi3lJlBVBJT1FG7Hfegd/hclkGYTrzYhCkwVt?= =?us-ascii?Q?9oUaAZuX0EHLZOrMGra4TgGfs3XKj3hp/2lubhQcDCD7k0aOqd+gd4uw9pal?= =?us-ascii?Q?apldl4gIWKTuFj0PlZhhVxQhGcrdp/dP1w3Az8QVqaDlLz7+rClZXY2nHkpL?= =?us-ascii?Q?XoAKJZ3Arx5lptcqSQ+LSJ/uao5gKhQsJQFIJM+VEV4VvoVK+SAA0/88xMk+?= =?us-ascii?Q?GNJiVkcFdKhYrrwbeeIbm/6JXkSSPmr+vwzQHNwv+TfR1zzIeni6f8qT/x3W?= =?us-ascii?Q?zd+0hF2q1AjbQx+nSvLalkvpfciL6B/LatMMwpabnrTU5hfSE3joa2gJPYaX?= =?us-ascii?Q?BqMFfgLP1iBHCqw6s+7jQfuAJELoSuCV7ZgPbS2l4dLFcwmjf7NH8bqt435I?= =?us-ascii?Q?WaUrpWAJUcCC55fHGPtt4TsPrGuehJrtrSDceo+fsdsJWpZczKNuMs+LfDdD?= =?us-ascii?Q?Dz+cu76o7f1hTCcl4YY02Z1SfF/V5HWP4hrai161iXxB8KPWEd+5cOXmgBVj?= =?us-ascii?Q?/1FsfzXK5cgnzeSQMr+1dPN+0qNW5U3AmgRpWVDtg4Ke+u9cYS7MlbnGvhCw?= =?us-ascii?Q?M1MyXv8JJ6mO1SRElhoZIldHPGA4bCNHqqgCX7tEUNiLmv75u3Zfzy4PIsjr?= =?us-ascii?Q?h2+HiyLW8Utf2bCkE3f+GNdONHt/F13vJcaqwfAFRajnd8JT4fxjaPpPH8m6?= =?us-ascii?Q?0VpjKdZ3KTsqj4Ykz3LlhisOEkkRCbVXwyxzLsQgPKj1Fzp8NpacOj7sM5BE?= =?us-ascii?Q?zGKzU3NJpLKCEwjHRtWXY3d4Xsswcd0AdpIhztko+a4VqZD1rBSCks93LNFo?= =?us-ascii?Q?w9zW8GWSAOPvlhLFAeHWV+Kg2nBdWgcseUx93eJTAYsx0tnAgRSE4YBhwF5X?= =?us-ascii?Q?JqqiPc8Q++4+DAnVJSC9+OfiqoEtJhhe/h5+DacoJVYiShZULK7I7j9zZY9P?= =?us-ascii?Q?lfP2zvFYORrrqV6BnBc=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)(7416014)(376014)(1800799024)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?lmrlGLuhF+XZ+wWa4Mrvz6lOG7Ga+6tNqbPP1VPlQG4vI/64TnDhySf3CHcG?= =?us-ascii?Q?zwmaYHO1/g7RykfR37ghEnVXEogkwRkEYsOQLroB8M/YHRJTlwYHP8dkC0vd?= =?us-ascii?Q?QrjPjsFh3B9Ct+SOPJN82GoMLmjQRi4zkMg5EZ3b7PN+rN1UD5tdT0HXWsrY?= =?us-ascii?Q?y/XNmDWMf+HeWVAZsbIdY8gkKKPTEcTPb1LpwMPzGTSd/REjZJu/6GVHkGFL?= =?us-ascii?Q?mimky6eRWwsUiT+HKMfqWHAxb+05X58qiWrStpNqDbzAFTSI4/nS3UFjEITo?= =?us-ascii?Q?r8cchBiYG2ekrYU1ug76m7bjlYwdyDGMEjnHzlKBBXqZaw9x8KRECnhs8Ocw?= =?us-ascii?Q?ApNWQqpfhkxlumX2ftaWkyr301t8Ea32rTzHn+ZXN7zBS6OaFNTpfXwyUkpQ?= =?us-ascii?Q?1iVvmx+CGAxaCJsNndS0fsiAW7C6Tm6W06RoBtzdBuj2FO7O+n+0SaY+JNpx?= =?us-ascii?Q?HF4Q9hOBVYImHflzhAm2lhjxVj5LZ5We7pVwsKO+j7pxljoqCeZWKTD7h5bU?= =?us-ascii?Q?vOWdbccvD3MEvn3Lpix/09l2kIEoaWqvZO7C2caf79SizcC4wQrel7xQ388A?= =?us-ascii?Q?hvbqpEbixQpRGKBLjQ5L02SPliO+OE+oSx1Ylb8iBEHC9DPe7vMxIlbmwlkF?= =?us-ascii?Q?1ych/POAp0X3AkXBVZyVLFdnOYlTgVu13to7jJsF71dl1ELIYijX87QQuH6N?= =?us-ascii?Q?7mKKChR9BB7sraQ4D79mjA3v53C/pej4xPJRaFp/1ZABu+L0HU6iB7hLjgJ2?= =?us-ascii?Q?sM863kzrJfDWpGKB8v9J/7EOihK5d8SgfBa9tD3QhA2RmgnaBJWNkQroymbr?= =?us-ascii?Q?C6YlDLvf/rcM4CB5zuzAUB3aQ7S//kjpTdRfUu8M/sd9w8Tc2nB1144ofMqQ?= =?us-ascii?Q?aCZyI1AsZCZJq7KSVmPIbkVICt/Fk8HyIun39muPwgkbLolIZFV30Kj9VFCC?= =?us-ascii?Q?DEyi0O0EtwTtBToFyFZsMqfBTo+s2UUjAwbu33l2OCkfde+qMnZ+LLdu0P+S?= =?us-ascii?Q?VcIhT1gyl22PnfBSNz9wvoL8jQBWJwpNnHLcpGW+lgRktUvKUpMDQNAQm+ws?= =?us-ascii?Q?c69STVxnn6uiZ1Z1TeTFSc/Aqbfr6WWR0KNOYQXrGlAitjSKHF1loe9/GkOs?= =?us-ascii?Q?qjNq9mKcioSkeDHpCaxJC3H2fH/z9OkVHIsQxwomw/1ETMWQx0LQIea1To2t?= =?us-ascii?Q?OZfK3LvmJravyhWCVyLmX0c4mEZaINLF8n9tuaHVGT5/3JhpjwX1YZUeqFQr?= =?us-ascii?Q?7msAvV1wWEGTnqfGyrrtdI7iotg18hlsKH5oyqbvnTsNHoYKeSKVnQTo8tpN?= =?us-ascii?Q?5JcZJ1dUMvYHVugR/1WY59ka5OdbgGZyQj3yuGrNB9ATMVv+n3SD7SnDvfC5?= =?us-ascii?Q?v9PFlQxx84+bLrVzPfbcEZJJjBJXyY67EkOWS29XrdmjGLj+gYyj7xb8JuI9?= =?us-ascii?Q?+iu8stw85gdOAzAlqNSnfq0cTKrw6ZYNQQ3p5iRVvCnBvjlfYvnqAXJVtJDy?= =?us-ascii?Q?XvyRKwZwZxjG6EyqPL6WbmuuNbpyTC10fLhvoHyj+cxdqXnbVmeKDFdx9SGt?= =?us-ascii?Q?F6k5PO6NZG/sboMLtdlqjm8BJSuEf/Lo3frWVMUUuJGBYvId/dWAjBsrQfZT?= =?us-ascii?Q?e9+cTcEbiinjVZv00HzfcB7cm7DcrQmGvE8jkGFro+gMNepUYZBshGpfoPHm?= =?us-ascii?Q?Gwl/LV1mOAFXwE/DEJrCuUjr9qePUcAxE6CTTj9N6rndQ0v85JJ8fouMi1bl?= =?us-ascii?Q?c9xvDDjiXw=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: hXt7mEV3GEknhRLf4tztwVfD/mp/i4Albx0ynD55rX2DIWYW09wSn7X/Ctum2Mtp96rd/MXggU7ANkU5J8pExWy+GQDjAlB0WFn6Ks9ZZqdUw4M4qzqE6DlhotTlxif8rnyg5tZe7JJ8/KK/0LiKGVVnOU4+o2zeaelzWNxzMkby3mPU6po0Fhin5WtYocOBO5CTtjJ0hXVW2/lzfN1RAUogToK/YDR69VSiBm7N4MNAR1pk7XiV1gz0ocefnNS+XStCcqWBG7B3+HdrlLW1HzrxohyDcyJ/kfe8SCuQkT89aMrNrTmlBTh6iBweDMf8ZLherv26sfNUPtexCGWW+FHcP5XZfpeM6Q8winkFka0TIJkt1wZdB6lKpO0PpsHPWNgWHD+9PD6CIXEWVW1jiHvMgqZNNHja+7v6cjpRxhzGTd6iE2pA/nhMmnAE0ImOULXpJ5qWUHbeNpLbZ9eCvcCfRFcNuA6VRPo6meRuRsZYyZF2PIsTAZQ5bDpoh4NwxkiUldvQzcvF6PqlEXENAkZOkGJY21kIndzclWYgnylhpq6u0NWWC1HkJ2TadrjEiCqGkVtYfu2o3vfXnCDvRB9fRCiqeI1gCn/aMSGX940= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 79fc62e9-126e-4802-61d4-08de590e152c X-MS-Exchange-CrossTenant-AuthSource: PH0PR10MB5777.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Jan 2026 16:56:55.3658 (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: ow+v1RhPZYkBZdLOhKN+NN27b8IgPdRaAbKZ+HLErg2vsVfvZHnljf1OFglLyL3KmJ6bNP6wxGGpSYTTfhVP5g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR10MB7712 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.20,FMLib:17.12.100.49 definitions=2026-01-21_02,2026-01-20_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 mlxscore=0 adultscore=0 phishscore=0 suspectscore=0 spamscore=0 mlxlogscore=999 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2601150000 definitions=main-2601210142 X-Authority-Analysis: v=2.4 cv=OJUqHCaB c=1 sm=1 tr=0 ts=6971055d 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=gTX0PQgR-87UWUccDAQA:9 X-Proofpoint-GUID: EeeuNoGdNr77tKLZm0B-u8cTXq796_a3 X-Proofpoint-ORIG-GUID: EeeuNoGdNr77tKLZm0B-u8cTXq796_a3 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTIxMDE0MyBTYWx0ZWRfX2CE5WNxRWdi4 HceZOUaFLlyHimrma54BJHkVBMbxKgvOSUWkqBOGWYwJXo3e6KomZtU9KEFHvLtJxBUa0GkdYq9 jTCXjdBrI+oRzSVV0Gvi5X57Hbopv8LL9y28rWKPsMKIL3ANgAsnpZAsSfzcGxO0UC6qdUNpgO6 TfLf9x0orNA5sAofWcQp814JiZkyANiVf6/cvgj7Mv4fwKuu2a4ioF2A+goSLz05vML5Gnc8QZl ggHqbSzNIA5YaM24nqhuRMjqllw/1pVlQ3vTxOm6bZP3bLNU4OSCQbLeB+cFLckGxuQRA/cGcxK MxqcadgGca72I0xT405s5EbPVr20tZ2CQSUg4pxAIEwVQEYC7AvlWNOcYonoipsd2wG15CZ2pKJ oFzdnlb6XBus7+K2t/hb2r1lm1QXsoCLGd4elvuTf9xGrjE9dZJxbFShZ47JjzBtaD5ly4M1YHK J/bK5S49krk7wixhrXA== Content-Type: text/plain; charset="utf-8" mas_extend_spanning_null() was not modifying the range min and range max of the resulting store operation. The result was that the maple write state no longer matched what the write was doing. This was not an issue as the values were previously not used, but to make the ma_wr_state usable in future changes, the range min/max stored in the ma_wr_state for left and right need to be consistent with the operation. Signed-off-by: Liam R. Howlett --- lib/maple_tree.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/maple_tree.c b/lib/maple_tree.c index fb14ce4a49c3c..ab14876bebf7c 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -3319,6 +3319,7 @@ static inline void mas_extend_spanning_null(struct ma= _wr_state *l_wr_mas, l_mas->index =3D l_mas->min; =20 l_mas->offset =3D l_slot - 1; + l_wr_mas->r_min =3D l_mas->index; } =20 if (!r_wr_mas->content) { @@ -3331,6 +3332,7 @@ static inline void mas_extend_spanning_null(struct ma= _wr_state *l_wr_mas, r_mas->last =3D mas_safe_pivot(r_mas, r_wr_mas->pivots, r_wr_mas->type, r_mas->offset + 1); r_mas->offset++; + r_wr_mas->r_max =3D r_mas->last; } } =20 --=20 2.47.3 From nobody Sun Feb 8 07:08:28 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 32B4C4A5B19 for ; Wed, 21 Jan 2026 16:57:36 +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=1769014659; cv=fail; b=KTbOGHxM3D8AYibdA1BH9fohY2hrDArsfToVDCcQmb4vJCt0XJBPsLr5jYYhRq1FmLz3fV2qVzmkLjwe3aXkIAwoVbgKlyDaJSsF6kG6qn11Mc8pt3mHmNKF4TW+SSD6t1b8gs+20t3GDNHZr1CvHVPqMqR85b6ul3R3XJbP2t8= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769014659; c=relaxed/simple; bh=/7uG81EztmqO/9Izgbm7hoyskeeXdFiOG3hxKGl6uZg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=WDlLzT5uanGVt9XTEXGBHvQHy1nIu9A7enXNe94mrz5f1ITEUwUMoiehXhg6vTyZt2meq6KrDYm+VF7cc6qPM0HIBycQncik8ndGjk1MRSiZnDHEqhtrsOCXEym6ynW/vcEjFjgo9O7CwvmpTfeK12jVeTOwb+Rkbpc8Yt4vrIk= 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=R6/7daGk; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=Mu9bUC1G; 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="R6/7daGk"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="Mu9bUC1G" 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 60LFSt3g3430913; Wed, 21 Jan 2026 16:57:06 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=n8vg59wYyGp9OYEKC17r9gTc+r9ahrfGb7yHqJ+IgVs=; b= R6/7daGkBcmSTALki3x9ciKCR/tf+7dwfVu9N8AZ8vAogNUx6Id+LLdZeZm6pEOl E3i5JYxbO7+HRqWgLoY1SDmnU5MWe691/gUeGc0kNI3uqVj4dC3K8akB5K9M9IfC 8O2Yvj5BYftmXMtAWWrcRFt9Z7MfmEyBhxpPztT9SbQaQH2Ys8dF/2Vh7b9UE98M q4gAkcqGTqBT0h65/ZjGSw73Ww4mcHc+JjSnCNJnJTwSPwrUYeAH2sO2/bO9ghlx sGDne5owOXtYT967pZM7unyq7XAaX4OHIGPnTd9bH90GjgEGeZTGZBINmD5yusWd miy7x+xzThmuJidHDzJ2YQ== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4br2a5p60h-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 21 Jan 2026 16:57:06 +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 60LFW2Rq032121; Wed, 21 Jan 2026 16:57:05 GMT Received: from dm5pr21cu001.outbound.protection.outlook.com (mail-centralusazon11011021.outbound.protection.outlook.com [52.101.62.21]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 4br0vfamcs-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 21 Jan 2026 16:57:05 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Z4QKmhxclWEuQieU7Ht0exDMScaTFSN+UxykMeS7z5y+zOduaOJb1uJlDNa5GQsqUKs0pJsYnpqkmeU4RkrLoBTeJfR6uARyKSTMZd0eFRKeZuPEbFgWq8aWyTVbm0O2lv2rPNRPUD/kF0b5TTT/2f8IivfMVamEMmz6cJpK1SJ+5r+l4xpl9HBNFdyGHIZTgNiStFoQb7cV9fwEOXoj4h0c2NpccGFf9SlRKOJjFQ/U/zu1p6dZu0e4NWk7Gh9c/7eJeyZqXFFM4EZ/VX9x955M6PwQNK4ViRzu2db53otYC9Lc/i1UAbHyerJe83yBgZTePFEC3WGwKUtPystZIQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=n8vg59wYyGp9OYEKC17r9gTc+r9ahrfGb7yHqJ+IgVs=; b=ZuyyTjo23Gjab13Js0SYTOSiQrbfN9F3940qghKc6WVdR4yJDBs2/jxy9bEHeNhACgnFNxVRUXO5HA2XjeNhdu+dZQl4bh1IkqnU8pxdzKH3xtmhfp5gYtyhsUcAIsOI6Jz8x23BC/1iEi8Z20eczmDARP9wnt7qLQmiSU2GdWAbigS2AeKu9JdADVnampFqxIuylDSR6ypaRJ/eR5BNkcqwJp/w1VjBHUbscSY+A0yyWXy4Biw3Y3bgani8faFeOJtoLjtsnXrcbGHIAvtQ18TSqdL5qmdhKdmd8XeyCOISWEefU5N9PfamPjqzwzWr/2LDZttz+YuJI9h/gThETg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=n8vg59wYyGp9OYEKC17r9gTc+r9ahrfGb7yHqJ+IgVs=; b=Mu9bUC1GpB3NVg3lmyO5+FQ2e/vz86wNxnqIHlPkl+FzVbztkHhCGthqK8TqUQlN9eMaYq/BYFZrZyrxVFk3Ac9Q4KZkD5+jeZ2CXd/Pwuw29BYks0AW9hm62LatMoWKHc9O4MRBpmc44/DuPFggQ8rnM8grXzHcZHJ4MHgySKE= Received: from PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) by SA1PR10MB7712.namprd10.prod.outlook.com (2603:10b6:806:3a3::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9542.9; Wed, 21 Jan 2026 16:56: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.9542.008; Wed, 21 Jan 2026 16:56: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 v2 07/29] maple_tree: Remove l_wr_mas from mas_wr_spanning_rebalance Date: Wed, 21 Jan 2026 11:45:04 -0500 Message-ID: <20260121164526.2093265-8-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260121164526.2093265-1-Liam.Howlett@oracle.com> References: <20260121164526.2093265-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4P288CA0024.CANP288.PROD.OUTLOOK.COM (2603:10b6:b01:d4::25) 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_|SA1PR10MB7712:EE_ X-MS-Office365-Filtering-Correlation-Id: df3634bc-d64a-46ca-a0a0-08de590e166d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|1800799024|366016; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?kWarI3E8ZHLghd9HeiZsfdNQ62s8Papl+CwdgmNyD6pEBxh0bGqIJTRJHQ6x?= =?us-ascii?Q?wNWWh+a+n59JrGHt7MWlck+ejIIRs3+SRIBo+VU48VBLUXJ0XFoY9cqSJx6c?= =?us-ascii?Q?bUzxk4pucr1psAAXPy8k6saww3XCY7HI6Q8u0vY+zRgogaO2Rfi+aiqhBMRo?= =?us-ascii?Q?EGHF5f3PsCVTVSbJVnSGrJe5U6Vyr7dAB9EJaw/np0G0h/5xJDGTtFTtVKwK?= =?us-ascii?Q?3dsXqV5HwEKqRY+/2y6PyC0dmwIJwsMc6rXhg8iYsGxO9fuehq9Pa+BIZ9Fx?= =?us-ascii?Q?v7S6AoPqWC8fhQYpidG1r90H9BP7lWT1D61VqK84G3zTzNfjYQKL5j//itSr?= =?us-ascii?Q?DeA1A5+Zw9CxhPyHaX1W7A0Cv31KTf1ZGgvB64pW2wIyMCneIoKNL3OiyiJ/?= =?us-ascii?Q?l6N8UzBS9xIDtjrvYjezxk2q2VQyUH7uiX7rOpDfrwI2BcjjWstvkYo3nbmz?= =?us-ascii?Q?IepfONsjjoyH+2rL3A+MDx5lFt1v5ccvhH210xZ7rEQfha/vMBrJ+dwv6Vqg?= =?us-ascii?Q?eps5RYkPE6MD9717aXg4weqqkk5H75NaCW3XPFShp6eAlyLtoxSsCBSHWW0H?= =?us-ascii?Q?uA8btn0N4fD8MClMd7/bIV2QxSz465fuyA6qTwaJF/+J5la/QlgMBb7idH5q?= =?us-ascii?Q?pY9mP+OmVR6QOFWZ8fTtPbohZslzSe0E0tjYcQY3EhJn0OWjW5n/9EXLrpBY?= =?us-ascii?Q?eA5TI7QMrlJe4p0FMFmvAGqZRSzGRpaCOo8bt+PgElHixpIzz29F258W/7Hp?= =?us-ascii?Q?5TiaomE61TFVVylWskSICkTQa5KPlnrGEp2jMdN0o0v7DQ4W+jjWJ0K4h7UL?= =?us-ascii?Q?MGUsXK+3xM0pLR1aP7ojsErF5ouJIu9kn4zlizidOc/nrPcG98FAPg/TMqMM?= =?us-ascii?Q?mGhC8Jfn+fkoB+FDivV26X4u8p+qRkUSlVnchwvAnrUpaVH6Xn0nHEnc/aED?= =?us-ascii?Q?R+YozYFXLTcg9ZZWr4JHGYW8wFy/hReGb8lhWfEKWn2pFRZOoIuyrM3iaFWo?= =?us-ascii?Q?vm0igG87utgpXrDfrrgAUPaQwD3X0GwuC+QQLpV2W24rieGo9IQNyKvyf6aN?= =?us-ascii?Q?FwmFMV+BMu/A+w/SFin/8GYAIguCm1DX0gTjAEK5QugtuUhiNhUrQPr/lvMY?= =?us-ascii?Q?3bEk3KwVRxGzVU6stbW5/wpqrWm74DMe9gYaJBsvLUX5HWIF3ckXEeM9clwd?= =?us-ascii?Q?PDMXEsdaRUzCWOfy+leq9923drHJK+Cutvy7O+s3N9vGv17Pns2V8efJHbLO?= =?us-ascii?Q?jIRjjZ5iuZQGKg7cFvpUbOghqccujNpoYyGT2mogIxXzjF93mUXP/ZBVlwXO?= =?us-ascii?Q?28ZIIxsSYvzNfVRX7R8NSg4nXL7tUoRJLJqcfbhhVjGIjpprB/srkSsfOlCQ?= =?us-ascii?Q?WL71L2sR0+uk6rRE4iQsnH7LXfZaUHA+mK4y++NfIUNrLCV6VyG0Yqcxoxau?= =?us-ascii?Q?4ayMjTVNOucbGWI/ZXC1sTL0ykynYcCrhtDOaGcOtA00/EWlRLRMbTGNnC4I?= =?us-ascii?Q?tz43VOTItEo8hgEwKLR4Xq3J1IvpVcIujAa+1+aMTwQR8XPHIhvdZKCmJavN?= =?us-ascii?Q?dKLh4BVzvxmMGvqJSRw=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)(7416014)(376014)(1800799024)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?xbw0M1OidUSe1bMCwaMjPr39VwP4nGxwCovMZ1eT5AvuzGQ/uYOUd2vC6dM7?= =?us-ascii?Q?eVnrxxu2Oc3oD1KyvsWMBdRpASjYSxl4tKjTTL5rU99nB5ZWCJuvn0SEiS4O?= =?us-ascii?Q?dKUQCPvbpruneNrs39mHi4xe2B5X1fVKPyyUq+Gh7l1qVQOzH3Wqb9Paga+a?= =?us-ascii?Q?NClqY4beZBpFzs/iI8Q5CGrc3IU1EPM22r8SB3WxQ2HFNtxCZ/Dhlp7/Xsga?= =?us-ascii?Q?PrH2N1uwDAunSayKQtB89C0qwdBAk9gXiorepTcX14nlXAyu7guS2bi7oGk6?= =?us-ascii?Q?lUMwrPNgwhLcXxacumwH6yljpnK+NjSvW3dM0xTv4SFMCmViHlz6gkPtfwOM?= =?us-ascii?Q?KwkCylmAnJM0o71+ezDGgVInKdT7Uulc7w+M1sMS4wpF+/Nf/fDXHHvLGAMP?= =?us-ascii?Q?y3ZkJi3wPr2C+lB57+NeH7HGwEuN8H1cg5n4e6fVsziuqS0HTEbhvK1/3dwV?= =?us-ascii?Q?cpqAGr80OpDOsA3RWS66ZUDT+ZoUJOrX2X27ROXFSr9vUZnRxM+TWz5iNGlG?= =?us-ascii?Q?vUOtWHqStGq6yWSukaRevLn38GmcZXGM36Ew3CgopGMscyKIofEcdYHQdVk+?= =?us-ascii?Q?JO8LuervSqaoGOZoENv0yLfI2i+ZhuZVN9XPzcfQAiupFqHB3spbj1ytjd8S?= =?us-ascii?Q?zr2xsyyHu6azaaGWAbx+tj0sL6ptJZxhWtNTGy3dC1r1oUOZFw3EVGbb08or?= =?us-ascii?Q?MTvRzZToXwfZBCJ9ojVYsjDs+LpnGWCuYrOyr8mwOuYtwQK275mVt96e7X/k?= =?us-ascii?Q?PD6+6h2RnCRp1+ax/ChB2Ld/TRgVhhdik4x/3twHn85+/uTsWfdZpykTycaQ?= =?us-ascii?Q?8lcbX0Sw9cTC4sRi/LeeXdtQ+6eyKTctHtcKC72BHLAi/qlXBhsuC+mXkta1?= =?us-ascii?Q?GoR8kkZ7ZB4TgY4moD9PkLtDBarCg974KfhsSwx6Eexzakr08y+hauQoili7?= =?us-ascii?Q?9FFJofGZUCzUFhwQNW8MW3pg056q6dQWen+Y90XwJmTj5ancmU0I5AqAIu2D?= =?us-ascii?Q?kRK3bx5wTC4ghV6tQ4Qhno5Sc/+gVB8KFD+oN5zXc4rFWIE/Voe9U2esPanw?= =?us-ascii?Q?FQPYP/id8R5wq1zUSo3iePwkwkyTP5Dy1Wn7/pZL6/wC4nxVv/nIOvaCOwUj?= =?us-ascii?Q?nruFF3GKhvHtbdvtVbMqZBYDtlRE7VwV8vM8f1MlPbGdPwELwPHs6x+2/66q?= =?us-ascii?Q?gZzcrijFB8mDwjG8pbkMENzFhBfpeUXVSejzdteaXGLhA0bS4/ekCsOxF9J9?= =?us-ascii?Q?86HLB8aF7SfadTIIcRioO1EyjzRDV0K0yJuXEjdQbLGRqBFRmyeOErsJDy31?= =?us-ascii?Q?GY3Ig8y0IuMd+pFmuapjixMqfzWPY2TMkGz9VxmOhkHixjsXtQ3PiVMj3/of?= =?us-ascii?Q?ARl0l4Wq6sGTN761AJpbvgjrdjoABIkHsOYaIm7EQ2NUf3b0mDrmpwApMX9J?= =?us-ascii?Q?vx7/cf4ZBkx5eFR9yhozBN1z/6QDiF7SHQT/kawkRtooFf9dtZPmCBIbdPAs?= =?us-ascii?Q?EGEacnxv/dgFN+j0w6N7TyQTMlYPIENJMugPHw6p2Km0Xgv8F+KSMmZTAfVt?= =?us-ascii?Q?84Qkkaxnb2e8nogGGgeuuwC61c8todeKxmKX2G3ck71HdIJjwmXUXvsnOSwv?= =?us-ascii?Q?zoPkASAHDxGvJ/hEDpxdyshFOAmXkbnNOJKOXLtdSYEZF8WTfCgfkIxrPA7d?= =?us-ascii?Q?CSsTQGisyH327uhJtqDsQtkxQzCJqAyJ8Xi4Nxx5AzwH9GhQ5wbESTCvTXTT?= =?us-ascii?Q?p6wkNKdtVA=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: YiPicmQFt4g69vm+a/al3tXCNl/j1M6eSCBfp/Xcmkn4Obb3DIq33UVoaXttFRkc4Hq5QTytvOJMbcirjzM5F8y36mIe7LNx/wiQibYW1rUzG8lU8ycMfixbUQhEh48nbb3EEOsgUYjgcjr1ym6hsrGVhNjVhqZmnz6s0mCrjw4Q3QWmEuw1vPhdFTH5ZnmLMfmkJuvvYK/rM1j5OATtHoBMLa2mcB05nFJWn2HYotm5YUn1xdqnRVp6CRnNCZVBvLAATTs8tb3OL9HfO74pjpkRdd4jtmJQlTrVv1+8y1q1d3/2ASZn+1UT8z/Ab5oIO1KG27k1joHW3txmIl9JV6a0ISLgeR+K2ADUgXFi41vFRxfoENjDeL1Hn0eNPBZH9/qg51kBoepcJPnh0iku40BTu7lI9RN2bh+wQheXfTxSdPnM1YKiGUkzkjlVbOD8nZFFsn7RxfTECaIiiUdqz0rWUR1bPWUeuWfMhYvjCltEXOn2emdS5kXW9wDxsWmXAx1uOfkGCN/7XdZi6R+WvVi9Bz8tJzVtz/GqVH/dNxyYBST4V6apMz3PU2ebsZXOrIJftL16Ug0vZsj3cw2cfeBfD3YtCGAFkw+eSXjaQMc= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: df3634bc-d64a-46ca-a0a0-08de590e166d X-MS-Exchange-CrossTenant-AuthSource: PH0PR10MB5777.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Jan 2026 16:56:57.4688 (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: jHtskPzYPippHVV2j4UvwQIXy/0n6fnCROR+7DXTlkAvqV43DPjkZeu5G9DxFDVzSbk/J/Q6yiKKQyfoUlFfdg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR10MB7712 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.20,FMLib:17.12.100.49 definitions=2026-01-21_02,2026-01-20_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 bulkscore=0 adultscore=0 spamscore=0 phishscore=0 mlxscore=0 mlxlogscore=999 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2601150000 definitions=main-2601210142 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTIxMDE0MyBTYWx0ZWRfX9rNHiJGAlG6i uFKgidZsHeWZsgbEac2zYc/8osD/M9M/tr7X6Me8NQO3+sVTdChpTbDhhB1CnQ9bzF9Hmm6p57e tcxTK+Q4F45e8EszrlcxghXVyeqPpde3Xue/YsEF3HCBQvANATx0/F/70HCJBDePN15/T+AY3DZ EO8L5B6+PGlgSM7WiwIXvVaM8mtjp6S65kZjxLOSNBTUeUcPLrcNp+BvB5AfMQdXyBje8lUKppn UwR5cF4y+4bdxKzpukiaNolkRhkPXfI+uagNXSSLBW9QLPldTKj5Gi7V2yyx7lFfvH6BXBJFv/j 5tvYtVLnp3gaAhPBzqPSgFVqNc5MZVlPwwgwWjzpHtq7MMuGrGgqr8JSg/jtg4PJhvBK2rov+tZ n0TxXLLk24zKS5ZN2XKgWmYMrhAJR3zun0qVZRoL62AASZ2F0UPcYDCbkmiGzeiRmWFJUhdVZHi 8rEmAouMn+OkTcVYuP7Q6yFg6wTydK27byEK9gbA= X-Proofpoint-GUID: 6KneKyfjjow2CUj7LSBSJmK3LR1_Rr2f X-Authority-Analysis: v=2.4 cv=XK49iAhE c=1 sm=1 tr=0 ts=69710562 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=3hMZsP_xGy9I1FFZ5EkA:9 cc=ntf awl=host:13644 X-Proofpoint-ORIG-GUID: 6KneKyfjjow2CUj7LSBSJmK3LR1_Rr2f Content-Type: text/plain; charset="utf-8" Use the wr_mas instead of creating another variable on the stack. Take the opportunity to remove l_mas from being used anywhere but in the maple_subtree_state. Signed-off-by: Liam R. Howlett --- lib/maple_tree.c | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/lib/maple_tree.c b/lib/maple_tree.c index ab14876bebf7c..afa39bbd687c0 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -2751,7 +2751,7 @@ static void mas_spanning_rebalance(struct ma_state *m= as, =20 static noinline void mas_wr_spanning_rebalance(struct ma_state *mas, struct maple_subtree_state *mast, unsigned char height, - struct ma_wr_state *l_wr_mas) + struct ma_wr_state *wr_mas) { struct maple_big_node b_node; MA_STATE(l_mas, mas->tree, mas->index, mas->index); @@ -2760,7 +2760,7 @@ static noinline void mas_wr_spanning_rebalance(struct= ma_state *mas, =20 memset(&b_node, 0, sizeof(struct maple_big_node)); /* Copy l_mas and store the value in b_node. */ - mas_store_b_node(l_wr_mas, &b_node, mast->orig_l->end); + mas_store_b_node(wr_mas, &b_node, mast->orig_l->end); /* Copy r_mas into b_node if there is anything to copy. */ if (mast->orig_r->max > mast->orig_r->last) mas_mab_cp(mast->orig_r, mast->orig_r->offset, @@ -3454,7 +3454,6 @@ static void mas_wr_spanning_store(struct ma_wr_state = *wr_mas) MA_STATE(l_mas, NULL, 0, 0); MA_STATE(r_mas, NULL, 0, 0); MA_WR_STATE(r_wr_mas, &r_mas, wr_mas->entry); - MA_WR_STATE(l_wr_mas, &l_mas, wr_mas->entry); =20 /* * A store operation that spans multiple nodes is called a spanning @@ -3494,25 +3493,23 @@ static void mas_wr_spanning_store(struct ma_wr_stat= e *wr_mas) r_mas.last =3D r_mas.index =3D mas->last; =20 /* Set up left side. */ - l_mas =3D *mas; - mas_wr_walk_index(&l_wr_mas); + mas_wr_walk_index(wr_mas); =20 if (!wr_mas->entry) { - mas_extend_spanning_null(&l_wr_mas, &r_wr_mas); - mas->offset =3D l_mas.offset; - mas->index =3D l_mas.index; - mas->last =3D l_mas.last =3D r_mas.last; + mas_extend_spanning_null(wr_mas, &r_wr_mas); + mas->last =3D r_mas.last; } =20 /* expanding NULLs may make this cover the entire range */ - if (!l_mas.index && r_mas.last =3D=3D ULONG_MAX) { + if (!mas->index && r_mas.last =3D=3D ULONG_MAX) { mas_set_range(mas, 0, ULONG_MAX); return mas_new_root(mas, wr_mas->entry); } =20 + l_mas =3D *mas; mast.orig_l =3D &l_mas; mast.orig_r =3D &r_mas; - mas_wr_spanning_rebalance(mas, &mast, height + 1, &l_wr_mas); + mas_wr_spanning_rebalance(mas, &mast, height + 1, wr_mas); } =20 /* --=20 2.47.3 From nobody Sun Feb 8 07:08:28 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 32C344A5B1A for ; Wed, 21 Jan 2026 16:57:36 +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=1769014659; cv=fail; b=KoR3S1IMcj39uscSOoXy6sefFUrWyh6GMlM27Kcup4/tHSbi44IBCaUXWvgX8PDZhLNOaCeEc1DXPbvb+T0VMGzzGBO4ASmmXN9K4Uet/tyO+y/wS4IULfRWzxEHGeehy2Fuv5ezZaRUCthgMYVgGe4qeWV5PA7YbW+AoWNuabU= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769014659; c=relaxed/simple; bh=NTEG/GfRQsrSkdc6o1hX+glLBIKl8cZ7vQh84iN3qbE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=q4pyGAzlmQa1uycY4F58J27qzDl4bSNIUclgpS0k4PXy/gdwdgroCSBkambk4iD3MeqV/Uv4DKLIM57Eqsd+EEwjkzzF3vuFSZvRXcMJ18+kvzy4oLcvjYeBIrrgbsQFiMWor/EICc9uBXHq87nWPpSqwQqZ007ebc+F2G5ZanU= 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=QejbUO3C; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=bHhgXR0F; 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="QejbUO3C"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="bHhgXR0F" 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 60LAk5ZB3418986; Wed, 21 Jan 2026 16:57:12 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=ft62lqWNUCLCETJbkBSmh0V88SUea+5+KSo70XSkRwg=; b= QejbUO3CrdROwIWcjF6apl2KnwVc8LXnnGxF3EAt1oOgkbKnBypPg16ztuNLxqpU pahKeKBWvgKZzPQ/MN6Y4eUsEi+AmH6R8zXbcMjX5Fg6qwKC+CUsG7ai0pk9C5Xv uDJf3fDMo69TR/DN+h+2TTnLSS3oacDRR2sMveSsh0x8TXi5bV+1ngeiEx7KmWNR 1LtMu6SOFWcVcrqqz4Q2dBKD/dfN9zT5C4OSCbfVA3PrmPgvEWDGLX+uhY9lJVnO mmJbdgfDkpVXaM627hLq5HnL9H7zp/hfUQzRJFYfRihg72Adi4OtuFE38DcIkqFx aotiQxCpuztpdT21QbDTHg== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4br0u9pe7c-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 21 Jan 2026 16:57:11 +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 60LFkkhm032159; Wed, 21 Jan 2026 16:57:11 GMT Received: from bl2pr02cu003.outbound.protection.outlook.com (mail-eastusazon11011043.outbound.protection.outlook.com [52.101.52.43]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 4br0vfammt-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 21 Jan 2026 16:57:11 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=MLAjRNnI9WL1eSFGOnUpZWm3i7MU5Oy8uEyoIXuc8HNJcHzPZSTQwp6NWa/k9klJQNARWx6r8sjvcQroTQtCbBv0A73AGmF+NcAfJd7SsKMRCzFveVJneFusmkliViana12UthPVJFe5X4AJ+HK36s1a9CJT4t/bh8tsBuJxk5pFkEWSLygBu3RGFU0lDWCHWPoh4V0cBiVGWCsNU+APUXnVK+BPdZ4rL91IjzQzqpw5VM7KeqYqvXSpjL1UG7NiuCp5HMyZR3ffeRYhb79/TiCeN2nwvwmgDvvOjYHfj7UqawPBCa8pVIbZL0vkpJEl49VMUS8cTCxAorNfIVAPhQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=ft62lqWNUCLCETJbkBSmh0V88SUea+5+KSo70XSkRwg=; b=HUPo7mF153NT94TM2y6ylnHQLQUeYo1OynrK4ZyOvMXGF6VC/JPofbkr94U6p/8Gho7RlSzk9rkNjXk4KQYnhQCDP+B/4LPrtzr65ItzT0TUjO9r+zua4jj+fkQm9njkbYwIqNU/MbiC997x+PE8O2faRYGPBKdeOf9LRciwv4H1zjJvE9bwWrylz6Eg5lF+2nlaDKzFA1E+AIUmg0+oHrBUDkEvE/dy5Efwc75xLnHvA/z/BLE4UWtZh6u1wQD300H7p1Z9g3iH4ZghzzTy+bNm2nAtG6/5e4LzvjW6RoWAU9KNWGWl00YZrT/EoloeazIwsjooJsKyBTUt9QnsIw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ft62lqWNUCLCETJbkBSmh0V88SUea+5+KSo70XSkRwg=; b=bHhgXR0FM7Z2YXRvh+ACS9iCJQKZ+8XfbBAPctmems3tLSVKzBh9yWJzAOvDr3okPL5ubFQmn0mmYjG+pO+T+x0BYqmyZqUdaDWjlwgBhb/EFAaBTq7jDVeRSIRJFfRxSHa/VA3O58bNeJJvPliAg/Jyg6p9A8pkYywMMkRgalQ= Received: from PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) by SA1PR10MB7712.namprd10.prod.outlook.com (2603:10b6:806:3a3::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9542.9; Wed, 21 Jan 2026 16:56: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.9542.008; Wed, 21 Jan 2026 16:56: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 v2 08/29] maple_tree: Don't pass through height in mas_wr_spanning_store Date: Wed, 21 Jan 2026 11:45:05 -0500 Message-ID: <20260121164526.2093265-9-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260121164526.2093265-1-Liam.Howlett@oracle.com> References: <20260121164526.2093265-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0075.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:ff::17) To PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PH0PR10MB5777:EE_|SA1PR10MB7712:EE_ X-MS-Office365-Filtering-Correlation-Id: da4c73dd-3bdb-4591-2c0e-08de590e17ce X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|1800799024|366016; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?sEqMAXxn4MECHrJJ1v1bWjNAKtqqn9aBNZXlNdgkCbLghCr/sy8YVchmfemB?= =?us-ascii?Q?oGTZG/irU9EFWPM/XOgcN4mK32o1E42AYwErha72cBj7GdTtnD6Ku9DXeao0?= =?us-ascii?Q?aI9cM+SoaIEZn9Q6QydcskcE34xgXppaGf9/uz13pbDelnc7uck0yJ9Az/tF?= =?us-ascii?Q?KdtDIQfySLcq+SAn40+vynIoNZegwl92u6rzUzNtuAJmmZXDutzzK42uXIOv?= =?us-ascii?Q?uyCXpTGIsPgJFn0nL/jvGi7379gOPnCk80ifyINiBxSuAFOz4fRqo+GL6qQg?= =?us-ascii?Q?n0ZZt1YWMNI/EEgFk2hrueLwNCKD0Z4Ved6OeqAANQbmlCP3zRVY1rYnGjYz?= =?us-ascii?Q?V5k9Gx0cWeoiHDr2xPEyPIrlKmth3OEV1ddwl5HYR2Ufmme7jNHwWHxLYusO?= =?us-ascii?Q?6wlh0HaBXjI0HzE9hyjuAnjcRzaQV42fzgJIFl5QPADT3kT/enJCZSVlycGL?= =?us-ascii?Q?n0V5k2SDwD4ojwlwnF5gZDw/L27HroU8PjY/MP/G6YXI2U2P98wteeP3P13I?= =?us-ascii?Q?4HqPmMGCgt/ZM9cSifFUj8lBVrg1l4iBIz2OUgMx6y+AM8IkjgWWa/eqUybT?= =?us-ascii?Q?2eV2NC/dbrDj5/gbfOpIOSrIc8l12Ff3VDvsuxEUHVNcviLmbsd/eO9QEvtB?= =?us-ascii?Q?IR8ytZrl229H0Gw9zRXBLPS1PNaJALObnLtkkRGc9VXT/TempcTqNbImuIct?= =?us-ascii?Q?cX33gnYlJIb36oPnkKeCmdXYyF1mQyNdx8bj9RkXIHRi/E962BS7W/nNfWo3?= =?us-ascii?Q?O04uBjbMlzP/uU4PTGzoG3ALb0PzQiMiGB/GsURLuRoucNItLx3tIjHm/8cb?= =?us-ascii?Q?MSddftpQGjMPkkCS1sXU5y77+EvcfNGAU741KB5ieWLmdVTG+XuiwSktim09?= =?us-ascii?Q?3XgAZNXmUlHVkwKVz055cRYwxcmQIgEigk+P2urdz1SdeEaO2Iz78/Mn/U4j?= =?us-ascii?Q?LOX3waeL4uknO0L3H8cVu+vv1dGIdcfvqGRVjDkcDrJ7xaE25ROo29/HxRKs?= =?us-ascii?Q?0td5U/DML/GPecPQbcoG3jyVnbrTlQHQ/2HztOgtV4/GfBeqwBOwnksM3odl?= =?us-ascii?Q?ZkMoKyOohVtBFkIoIu2+LIlFlJj08i308uDyvDbtP2/FeaMvkscxi05jVRvZ?= =?us-ascii?Q?C6HW0cDfzxRjpbgp6hTChkOEkp6a7JVMq73PJIz30Ak4lpIfx73hQbNcuK0e?= =?us-ascii?Q?kZng4OzmwJkjKOfD+OuTfSGoQqP3rZ6IlgsbyFy54dOFtiwM2y51QPoXUJO6?= =?us-ascii?Q?Ebov/Am292cp9htr7sgh3pTQM2vAGMR2giGjiDXwD8DgEZV4P+RbB8jUg9d0?= =?us-ascii?Q?RH2JrwuAPUsYUplCNeMRFQdPYelENxN6MMfEpKUrpN6bvl5Fu1dRD9fCjpIO?= =?us-ascii?Q?gekajF5tqsuVgNNG8G9zt6+drvbTxUYYjCp0nZFIMQINjTzyh8AdxKjUzDv1?= =?us-ascii?Q?yZVx43dRTobrD1rEP5abnEcJciBK9t+ydvHaLMo9/q+C5xoDrGgyBV1AD70M?= =?us-ascii?Q?GID9YiK7ISGZA/y/0TXdKC62lbkEVgEpjjpAzrQy9tMvcHI16oXUcrwd6WQf?= =?us-ascii?Q?itKNzEgHmKA4DETxeww=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)(7416014)(376014)(1800799024)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?cWvy2K+66ncj1/7bK1DRLoLjJQuKDyxeYCm2HM8uY8rIhYFcd42/SeCTcSn8?= =?us-ascii?Q?BF0RHCxpyI6gcRsjEnN1Z0aE+bTXldWTfFggQ16Hy93IIpMOunAflkpXR/HQ?= =?us-ascii?Q?xvOdLsYyZMGYgKqVcEimyowKLaEQQrD/4f4gAibbKwFiPssQ283P/T6Ev9cy?= =?us-ascii?Q?q1Gs/nhEBLB1u24kaaInwY31wJwDlSBQjAsIH0bVfT5THrkAfk53nvGDkFGe?= =?us-ascii?Q?p++sWStG8Ec7C6AAndyCK5ahmB+4/2D98NweKpOgLAb5YFvL9AgeV2QIBj9m?= =?us-ascii?Q?wm6IezSTtFVI52DDtZUNcJ2IOIOftKAyKwzWVpml8RfIjy/0tZQpKUpaG/sq?= =?us-ascii?Q?ScNdKjmT/A1R986k4AWMMtrPVcflS1JEjiJf8K4XT2NeC7qnKGTBvVAWKL2V?= =?us-ascii?Q?kndKONUICTG3zmhi4n5O8hJbU1K/cznFL6KDoj/ZoqMljVLllWb8giKs5PQI?= =?us-ascii?Q?7spFqang0IUFBreduYfm/tg5pfOkijrZWz335M+rzqYPM30lVF3GLmMPnT/v?= =?us-ascii?Q?FTMGIajODRaCOAM2m4+vvKsoD3s6qXX+vsg1b0IMWjlQZMpG8GM47bjm21Iq?= =?us-ascii?Q?STYPhdc+ydq207QDPhookBoMZphGeSBIr43idsOfrtHfc6GkjQu08FTCsvyR?= =?us-ascii?Q?FfQccoPVYeScXYlYl2dgC/dIrXslgBMzjdKJEG3HjDqA9EWcxhRJ2F1epfad?= =?us-ascii?Q?QMAwbRXuIolzUQSHQLZiX9P0G6d0urnUwCWU2rXc1P7JZHyXk0Ny0cPnzRQZ?= =?us-ascii?Q?LCgIP77+j69XKt+Pq7hcUM8ZCoo9IMkaqk8igBY1wwq4HiKnXZ8k8h1JsvDB?= =?us-ascii?Q?4yEmCXHrjoO6A29/Z6ViF0J4HrPU9qy8FFDLjaSJm3Rr2NtHUq8K77JHxnTD?= =?us-ascii?Q?rWzk5qDRb5xVwqI75bLLKWjDgxZoM0YWm1lwwnhVXJVcDV8OOD5Okad0qrdy?= =?us-ascii?Q?2iA9aOttQT1rYog9Q0Z0eEo+cM85b+2NO46a3dmcSm1z9rALO9hYK5MhvUEx?= =?us-ascii?Q?PZTt9otvgFT1t3XaTWtLgPcbVHr2awvrFy+omKq8iUyC4bmzwUjziztA+5DS?= =?us-ascii?Q?k21RAzWBCQNzq7JmP72KHc+Ax389GMmnOxLR5aPkUlqs2FDDSZhdCN+yyPDp?= =?us-ascii?Q?oR2mzf1Ec+ANbXmMyxWjM+fqVuTTWYizHhvnpc9D731Uwir/FqUnZX3EiaDu?= =?us-ascii?Q?dJNfezcpas+E48ddsA9zd+WoDK/2UK5+Nw9qimIE0owUI10RBvMG98A1BjTB?= =?us-ascii?Q?rm4KZ4yRUDvXm9VEJ7c4JkXYFi8Q3ePvENVwraadc+TlTflDaCwuGKhjXTKd?= =?us-ascii?Q?RQS5xq+nrGcLHCt/kh68zF8DfrHaT5Jp7lHYQ+JvH0Z+KaHkTilFApms2UbJ?= =?us-ascii?Q?+4z6W2thBRt8pNmpcaW2dDMWDTCemLHccvevGK1ena9Z2c8Ht3fYm/EXGhTO?= =?us-ascii?Q?zAQVzL1suG6H1liSysefnjqZ9E6M1HE4mh0LjGLteigAnnOg8w1jvL9ru5SH?= =?us-ascii?Q?cDjrVIePiTiXE4GOnxB2ghv5Kvea1eLAg6XIPE1uariqc4pyYJxlf1XoZl3g?= =?us-ascii?Q?JPCQyGp+M06+mkZsJ4SsWi4B2PxAlOdXBIXpXwnHz0espPwMsbLHc/HEwg5t?= =?us-ascii?Q?w+mUhfDw8WiZs4CgKiyJXJMwakmt/7MTF5J3h93pI2EaUGhaJuu7E7PBR/9Z?= =?us-ascii?Q?gegEDo1sAnimCwuRdoaMFFKj7AmWoeVUdbSj/wFNuIoOZ7xs5tNEn7Fc1GJh?= =?us-ascii?Q?N06FNV7CrQ=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: d5M5E/J+SsBETI7neJPmEPmAhnpamqn7Tatb5e4zWDa9x3yh8FJY8KZ/wOP5A//rXI7YTlWTyg/7A83GvPRfZALYVj/IAz2MWxkkPGWl4kXakhZ9exOSo+tp13T+u3YVUAs9uxAIIUVwUvfWh4KbG19UOwlnM6wj6telu7/Cggw81MERidGpXJ3nHPCeWaXvwm2RflRNdag0upkCJLzGJgsoYcHhao1ULofPa+dmhnm9kHTo96hWU1AOdJvmb2IfU1nFlK7spJXHmLszAUGDygXw4KwHgEcfyjdhi80IprhH+umotLAg4ZmAVzL7B0pFxSDph6oSL3vSOzrOs1sB196Pbl6QmZNMKEP395kDTxoBrfkvQ9vIjaHRmiOcN4jPHBDSOhFhK6BO931+Axp/YORkv9tkbiLJefQZlmUp6Nq+DL94aE3xdn8qumbr5wLyguZd4IUhwALn2eqPqhTI8NXN1ZGufy/Z1hCEYVLwkHTxtJuy9o8GQMNSKoxy5b96TLZQDVNA1CtbHLk6uPmghtYptIiWR5Y0VZWrgPiFp5/84F5duawYGfs1waeCg7DPupjlJ1zpjUt8hoUh5rrYy8JGHasDL2JGQvhk8MwOTec= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: da4c73dd-3bdb-4591-2c0e-08de590e17ce X-MS-Exchange-CrossTenant-AuthSource: PH0PR10MB5777.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Jan 2026 16:56:59.7844 (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: 810RzN/U5RdxQ1m+V4RROQLWSpkMqJbpz/mWIS+GmJ+0qBlESNxt1V5fask8ZqC9mpDOq38j7/Eg+kU7O0ywTg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR10MB7712 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.20,FMLib:17.12.100.49 definitions=2026-01-21_02,2026-01-20_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 bulkscore=0 adultscore=0 spamscore=0 phishscore=0 mlxscore=0 mlxlogscore=999 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2601150000 definitions=main-2601210142 X-Authority-Analysis: v=2.4 cv=OJUqHCaB c=1 sm=1 tr=0 ts=69710568 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:13644 X-Proofpoint-GUID: Z1PnF4RqtiwZ0HRF_83rt2CZeIk4Hk_o X-Proofpoint-ORIG-GUID: Z1PnF4RqtiwZ0HRF_83rt2CZeIk4Hk_o X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTIxMDE0MyBTYWx0ZWRfX46iyt7UktNeT SS2Yz88Xpl6O5G+sJQxjhBvlZjrKsAMqkTh+sSm79I/jFD8nxFALHFAy8s8flnAJEHDmyszk8HJ sfi073g/TaIc1Yzs9pBTmvCLcDiCwL8u1FQwU19S7iOsLhONkf4hyyMV902agabJ2yaZV3LbLjB IqYd8QVI40HRuhqCcAE1hi8mH2b7tkYVvovG2x+mwHzfa6t9RCQeqHenm3gG2i2s6GUk5Gvqkfo Iq7M2nhMreDqLFxSCTr1OOBmDE7eNTsVYNT87IoSgIIBQgjQTJX1oKt84CtBtfQMpaxlskswjV0 JccJSta26AT2TgmpAgNDRTqKXA+5dDdWem8zkJ3pDaT2YYtkhwOSbfz+tanpnReFLVXjdyCXvwp OaLToioRhwVnoPoKqXFjOHgcak//xhn85TdXcaOWWht8GQ55ywNlVWlHdzafcPNqKfTUiLjwa2Y 5h5/dTNswF6/y8hVqlx729kRl723ZROMiOaqkpBA= Content-Type: text/plain; charset="utf-8" Height is not used locally in the function, so call the height argument closer to where it is passed in the next level. Signed-off-by: Liam R. Howlett --- lib/maple_tree.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/lib/maple_tree.c b/lib/maple_tree.c index afa39bbd687c0..91d3fb7ac39c5 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -2750,10 +2750,10 @@ static void mas_spanning_rebalance(struct ma_state = *mas, =20 =20 static noinline void mas_wr_spanning_rebalance(struct ma_state *mas, - struct maple_subtree_state *mast, unsigned char height, - struct ma_wr_state *wr_mas) + struct maple_subtree_state *mast, struct ma_wr_state *wr_mas) { struct maple_big_node b_node; + unsigned char height; MA_STATE(l_mas, mas->tree, mas->index, mas->index); MA_STATE(r_mas, mas->tree, mas->index, mas->last); MA_STATE(m_mas, mas->tree, mas->index, mas->index); @@ -2788,6 +2788,7 @@ static noinline void mas_wr_spanning_rebalance(struct= ma_state *mas, unlikely(mast->bn->b_end <=3D mt_min_slots[mast->bn->type])) mast_spanning_rebalance(mast); =20 + height =3D mas_mt_height(mas) + 1; mas_spanning_rebalance_loop(mas, mast, height); } /* @@ -3448,7 +3449,6 @@ static void mas_wr_spanning_store(struct ma_wr_state = *wr_mas) { struct maple_subtree_state mast; struct ma_state *mas; - unsigned char height; =20 /* Left and Right side of spanning store */ MA_STATE(l_mas, NULL, 0, 0); @@ -3476,7 +3476,6 @@ static void mas_wr_spanning_store(struct ma_wr_state = *wr_mas) * Node rebalancing may occur due to this store, so there may be three new * entries per level plus a new root. */ - height =3D mas_mt_height(mas); =20 /* * Set up right side. Need to get to the next offset after the spanning @@ -3509,7 +3508,7 @@ static void mas_wr_spanning_store(struct ma_wr_state = *wr_mas) l_mas =3D *mas; mast.orig_l =3D &l_mas; mast.orig_r =3D &r_mas; - mas_wr_spanning_rebalance(mas, &mast, height + 1, wr_mas); + mas_wr_spanning_rebalance(mas, &mast, wr_mas); } =20 /* --=20 2.47.3 From nobody Sun Feb 8 07:08:28 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 E7A054A5AEB for ; Wed, 21 Jan 2026 16:57:34 +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=1769014656; cv=fail; b=q2x8wuxT8eFN49YiWlE/jbju2YdpE0Jz8/q2VvMo0ke8Xa3u4ZFajGGmWRkHzNiBwZEF0QnrY+th3jyMXokohWXHSkFFxfIrPjwfOcaYPey4S3jowUvu3al5yUl1T8UB2quNsXqeMF1z3ibAkVJDJL7DgDprE/fhuS/JtSadCfs= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769014656; c=relaxed/simple; bh=Ww0F3AJ4EXPbkNsXqjCCiI1aspo3rUPFNgMx7kPjfbE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=ZnrEKeZ3Z9id+ftqv9TodQZEUGl6pqKDa0BJ1q5boxTpR34ROjcAuzbrEr5P3khdKZvdwRPHarLzscMebclyyrsp1MbMseSR7f+ZcQP5JdTD0NBcL7XTt/B0KJFcxabBBEYWX5nxLBC/JyH/YGeZYYlA0hHKVUyVA5ZX3SaEKMo= 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=haKPleXf; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=bWpVTKvm; 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="haKPleXf"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="bWpVTKvm" Received: from pps.filterd (m0246631.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 60LGPOXA720383; Wed, 21 Jan 2026 16:57: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=6BRZ85az23keMYfKCiwlz8J93jy7Cdd8clS28lbAo54=; b= haKPleXfIvMVwjD2Ei1Gmtn9XWEBe9+dtPpf9H1+8moMi18d3A9CrlH0yPY26Fhr ePBkiuG2vdtlYRVWDIRp+7Owdclc2YWuUou8Iftf37/qaCcalbMNZrp6GikLhSmB gl7H4rTKGoPO6Hk7dBPfmgRjb9LR2AQc23lVBrJ7OgizjBSudlGil2Uh311myCk4 rQKGX39+T3akAmBB7xvtH97hGzUoo3SrNE+oHrOkfDHj9/JW+iihT6QrXBfhLiZ9 afWoL4cS87Sbr+SrPl9nzinBbUiecOHRoH/9AG794Nu133geYVjo8AzSjn95Vn7/ 8bSaeUXKHyGm+JL7AV2/6w== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4btagd2sp6-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 21 Jan 2026 16:57:10 +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 60LFrfxI032158; Wed, 21 Jan 2026 16:57:09 GMT Received: from bl2pr02cu003.outbound.protection.outlook.com (mail-eastusazon11011002.outbound.protection.outlook.com [52.101.52.2]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 4br0vfamkp-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 21 Jan 2026 16:57:09 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=n7K0o70/Fr/YBvG+lw+FnEGfX3TUpNXMUscwdMDqSTwT1nVFjzW87bhromCzv/nlvEuyNUjoi5Vg+H4SNw0DqsqWWaRbjrZwrGGTcvplqttmHBMqKX6ZWfN1CJqcFa25lRh7+JZwnLpFht7GvVX9JieL28VP9KAeP6UJWbDRbxv2QBgdTVaHw7Nyh+lYwddo3ZNaisqETcDlhNtDuloidYI8RKyVTb87nHlbZQyCdYZjtONG6DhYpdeEBNSvuQuWshdfY6TBaRTdvbeRknSgO8uC3YpA68G9f4kUwZ/+tNe1F6b0ccoL6bupjUlkT1nmUvlIyiDvi3gl6DckitNSEg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=6BRZ85az23keMYfKCiwlz8J93jy7Cdd8clS28lbAo54=; b=H+9D0VNKoqVWptUoWwEnGmWD5vtkXPoc3/JfOBNimLsBG/NmsbYkla06aaWiHnrUUgjKAAhcWtFtDwyMf5Lgyoov7FaT9N0yAv8GevT7yMYODXXbAKrasZTmlzFdPsoH+pqu9nMGqRlDVcX2SY7gCZz9KNPrVlLPmzj87KYWokTOlWGhHnJE07wWKUuDQ9B930vj386lTfYu/9WxKHHGhIeSeZSkD9zsprGb2YebvdErLmxc5mY/TXZi7hjq4iCGtm/+fIhpYwfo20Bn2B6C4Z6KlGMD55DDneX3X+Xxt41AObfBj39ueIJCTw/20AIApwm25jWp6ni00BBpnGe6wA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=6BRZ85az23keMYfKCiwlz8J93jy7Cdd8clS28lbAo54=; b=bWpVTKvmWF6A3svkTUNp1U5V7AEgSZtt8pT9jd6Ig1CgiochCWDk1zr75B+Lh+w9ZNkhxGuiQoFotAaAQOQ94dp2YXJavplO5+j6n0S1fc4jBup3IYaziOgUyLr4rElppGQwAOUQCRNdhaZ0g0HGEU1ZiMDSXN/gEIBsgKtKyxc= Received: from PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) by SA1PR10MB7712.namprd10.prod.outlook.com (2603:10b6:806:3a3::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9542.9; Wed, 21 Jan 2026 16:57: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.9542.008; Wed, 21 Jan 2026 16:57:02 +0000 From: "Liam R. Howlett" To: Andrew Morton Cc: maple-tree@lists.infradead.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Suren Baghdasaryan , Matthew Wilcox , Sidhartha Kumar , Vlastimil Babka , Alice Ryhl , Kuninori Morimoto , Geert Uytterhoeven , Arnd Bergmann , Christian Kujau , "Liam R. Howlett" Subject: [PATCH v2 09/29] maple_tree: Move maple_subtree_state from mas_wr_spanning_store to mas_wr_spanning_rebalance Date: Wed, 21 Jan 2026 11:45:06 -0500 Message-ID: <20260121164526.2093265-10-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260121164526.2093265-1-Liam.Howlett@oracle.com> References: <20260121164526.2093265-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0087.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:ff::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_|SA1PR10MB7712:EE_ X-MS-Office365-Filtering-Correlation-Id: 3068335b-222f-4fb1-6ed6-08de590e1919 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|1800799024|366016; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?bTdxjdvbqZShG233P4nMzW9lAPpolPjV1QrAwXHXtL9aCjCnEJ1CL5FRqLI5?= =?us-ascii?Q?itzhIfHZPP/UmbtTM8dDIWWMNhw0lVZkaPOT/2FJeQxzJ+KgQi/9C8TogTLf?= =?us-ascii?Q?DSJrj7Soc6itC8BV92S8NRcairGRMdTX5dDqGezLSCxgxwkKgkVXwquVS3Ft?= =?us-ascii?Q?81xubJpTW1U90aVGPTdIjr156yD4k3jh0Uu1sDylvzd07dPWm8JqYo2vLp7v?= =?us-ascii?Q?zCaUbUWa+LDKCpr+LDFY3oQBgVn0cO/AhHvdV635ZZMAW4quzp9kePCgFoUp?= =?us-ascii?Q?etQ6esPqd8kxi6TGf+epPzp6KRjhQWwm5CUj5x32TKQyYoh43PEDK4enyryn?= =?us-ascii?Q?QKkz0VkcZqcPla/ZMUQICLTTvmPAOY2AA+MelS1Velzy+mKhoe/K18Nw47GN?= =?us-ascii?Q?GMD4AcbQIfI9TAzUauJUyOxPLF00qhnzvjDybO2AEku2TQUL9joU/mFEdky8?= =?us-ascii?Q?XH6kmm0PNgTGqL0odXxvp1gybxWvx2nkOm/+ZP5PXiTt0+N7FBLLPN+YZbjQ?= =?us-ascii?Q?7PgxzO4nHqlREul7csbSNuIbgwQoivYf1W9u16WpmQ6lQ7BBSRWUbO0F2ZW1?= =?us-ascii?Q?ZCDkdh4qzHbw8v8L+6ueJ/EqeNJWntiTM2Bec2coUbUCAh2vsZXAwk9AQKuE?= =?us-ascii?Q?y4kHGsweQHt7Yg8ShCj4oQmZzrwmZZWfc8fFsKs2885G+YRRxEm7CcWYCIyL?= =?us-ascii?Q?TlA+u1CBYbWjOZ9uBIEWcbooKB2cI76cRkCAKXCTCbH78bWopE90bQnuaOr7?= =?us-ascii?Q?158Y9gYifmZev6kPM32hVrsMIKXTdiwVLD1nkMN6mtJvXbDzykEABH3pf5gi?= =?us-ascii?Q?iaMe7NwqpAVW1ZhU+vyqziZId7dfPOv5qr7b6cAR850FHrXF4LlLHkn7iKuP?= =?us-ascii?Q?3QO8lnGpXkbpXBnxxFMab/7czrViFmOPU7k4UgrbWBBkE5jrUEAuy/BSSpkM?= =?us-ascii?Q?m9W3FD49cHc+wPo+qlX3Pojcx4oWBrc4YEa/kWdIgjrFEfjWrdTV2fsupvpb?= =?us-ascii?Q?q1rbppMY+Ax2eKJwuvgYRLOWSu1SSAAMxglqDFu3YsnZS74gSdV55lxvTE8n?= =?us-ascii?Q?QEcTTRNL5nyusSwV8KABCnk6OLx/M9Xf3IFLeVVESDrk0TWV9s4hrxrpfFh8?= =?us-ascii?Q?oOMMO/4siFnV/REenB8JwtFm5/GD4eDb2tEcCpiVPdTfbk9CKbaympGtDrTh?= =?us-ascii?Q?ABQ/MVKVABzKpWY03dpK3fKziuvFlkrg44MKFoJqc5cyTUL0EkKe6vKvZbgS?= =?us-ascii?Q?NtLXU2Kh+6is3IevZ5rIt8Ev41n65v+9KYMohcNfdJ+UTGtJb7tgjKfWQxpi?= =?us-ascii?Q?DOe/wFETZi43cnY3T0LNxBBLW/giN6r9oarBZbv2eAQ8jVywKVfbiQL45py5?= =?us-ascii?Q?WfVWC3UUzgS9TL5sG5I+nwwREhFHlg76a1T+N4Obip+8+F0ZsBnb8SHyk28S?= =?us-ascii?Q?sbjhM2YRR5StOA9Gxxq827bznpl4SV1WXYcOYNqg1uNOcWgCjvXwUoXWSRyS?= =?us-ascii?Q?9MeCQUeF0ZXVUSy6z1qhnDmXx8ovpI4mb2u3wN8SOUlNil0YHm6daIa+w3g6?= =?us-ascii?Q?bTbfKZVKTKlW8h9csPY=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)(7416014)(376014)(1800799024)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?avfgxHuW8kSm41HTnMzMFZ+1v7vWMKBmodxvqFw7nts467mX3eHd3hKnBdMS?= =?us-ascii?Q?0pu2u7ahejOWkRNuqYndYJpSKXK0ZtxdttaqTvUPo8XFx9QGn48z8yr+Iri/?= =?us-ascii?Q?UKHafotjH4wUqZ1Z48FcsaYOBjMA7jcNE9+KkHL3zyAi9ABnNqzFQLL+9ijQ?= =?us-ascii?Q?W7yTI4zH1/Y9FGmQMuYYyYeFNrEuh/sLs9jlE9pubKMrWv589/OkaaqQ60pO?= =?us-ascii?Q?IsN8ybnmyq++PyUjmXSsNd4WGCDdcXx3s7VhVZR+Bbade6WhYKW+aNkaoR3B?= =?us-ascii?Q?ETN8uON3d0yXCHietzVvjHK7y+5QzvCzOn0xr5EsfJv/yBwHHpeaRddwBPz3?= =?us-ascii?Q?4wHTqBi3n23AD678LiegsgcOpCpvEwbCKh3a886aFUo0DMKHNR17ebkcFYEw?= =?us-ascii?Q?czp0Q4CzHrKXti5rfmYTiZNn2OArlw8BbzJuBCqwSrV/LDBQlqBnuR3JWF6U?= =?us-ascii?Q?FQiKQiJz6g33xpm/TYOWTPX8Am30VR8WXPCCIJybzujvRHG0jBHOb8fuORYD?= =?us-ascii?Q?RzePk1ZodShXoA02DSOL2YrNuqHMMc3CTRUpuCh3RCxGjB6K0W7obIrBHL8T?= =?us-ascii?Q?hXnKtCDqKtldFXXMxglKmhtkiqw/XBwooFYzCQZU9wgAhM9qjeMtyTFaK4A6?= =?us-ascii?Q?XFaYKv0+mkL9HG08TByYaSZUGvFC/jqEdN9tcbComRRDAeY5djaR40WhFWLh?= =?us-ascii?Q?8LO3SXeXq+cp3hgLYdNgIHrhtugsto9zi84UnCs/ugp2polwysxcNfkn6pCZ?= =?us-ascii?Q?ppLFHlOEKh8BmkVw/U/uZPe2WK/r0hGFWcg+Q3MTUW7QhL4mhOvJo9RLXo6C?= =?us-ascii?Q?TdMVUmUBYFK6sj6UodRjtAZ9nWFFyMmKIeLrpvAsaIK+bgbPDyuvW041TRyZ?= =?us-ascii?Q?S9uVe88f+uBs1B1pCiBXOVE4C8Tvz24YD3v4YFPjgWifn12pZcbMHtVwhSho?= =?us-ascii?Q?RleQvbo7F4fjCepKOcubGohfdUKa+1l+vVZuC+gFmONd+iD8atO3ZvtoAKsN?= =?us-ascii?Q?vDOZgYlbLSRWVsyT9r0ECXVKzoEnY/amBrqO7XHcpNuJ0GQDnDjmxuakrGwO?= =?us-ascii?Q?cVET25R4GWjDj9mEr63/ClZSI7L5PaJSTzlfXFSlhWLzpLD2rT9XicKkx6Aw?= =?us-ascii?Q?n35rIO4LdKRnj0LeXD7OwBrLRnkOw1hSNGtKPZYZUcnDFEUugcnuiajLM6FM?= =?us-ascii?Q?0Ns/tnbaQ/qkOI789ul+MuY4qc48Ag7odUlLnGhiXO+L5wtyMF2cCUggpse0?= =?us-ascii?Q?XMIFHKH28e9yWyxF7pf8eR8KFE5KXpDBgrToiGFF71WBn3HUsyrY6EsSlWID?= =?us-ascii?Q?/iZrdOREyjW8Y+tfjQrpDQtRdec9N4q9XLQcrih72UAtnLMynBjgj9Nplar8?= =?us-ascii?Q?rUSDWuxag11xl1MCH0a2yc8nxdtIIKsZLa/u1BPxnDRQypbTMMGkH1TW8Ckj?= =?us-ascii?Q?VTr8v7ZGdukDfl1lhCzoe+UAAsXApTReY0SeDYQiKx82gImVSpBITMr1xY8X?= =?us-ascii?Q?3NuGtYtkNWldYVSwPBUE3UOt7MRkt1dsRPKps9SbUP1bEvU7DN3AFLb7yA/+?= =?us-ascii?Q?YttOec/PyRnrytiwLbn/Du8pUFOQ8rW7a5vLv8R0IX+7U+tnhFDiUSlO/BwO?= =?us-ascii?Q?XnSXdBCeedSSYsPaIv6O/vGsANP4qtLm0fIJ8gstWI7niIQ1CP6HdqqgqHSv?= =?us-ascii?Q?U/IUfaVQbwKQk5X1Fo0kQ7C47Yi/EAQyfOwmXSb2px1uLmtLsd3OsbRB5WYk?= =?us-ascii?Q?CaL2a0O4hw=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 5l1pNpGpQzS4IsMYkrY4DZPh7qAxMKXzBVcUmOY7vuT/83mKQl0Dbag1u74UHcEaidkV9+3/X/5y2xUYi7yw3Es4eCQ2Dd+nSPZJVmLrc43JY7dXXuUurwuQ+OVqj0lzCL4lN6hnBD0aT89lXuOkiaMsKVf2VMP8gIEHys4fZhXCf/MoDGku6yunHICZm/99/LRMlq8qLQn+ZUz3E4OcYie2riWnvHBQHlYioLI96OVaWyWwSQGVm56PYSeVTKapMDArb3MjlJro1xvCeQ/tv18Bc8oCqLnuldBf5hDQ0W1C+pgXpqGSYAw4z/Wa7cLVztxcnqMUlPOc8lmg/gXbO2QBnKenrP8WKdtL16w80088HJi4z575Jwg2aiEXQN5cCiKAzvx/OxbNQMxD2uytHM7qiU/vH33HEpCMypiawwhlIMu8/G8/tEB+osewK2oTi3Uyu1NpH9O4iEZgu+7o7PC6eiRALP23fqAygGrCdIJoNjHnNVYBJ0OXzjLDAkmEVH7b1OIMQEzcy/aW7n/eIFQ6yLCCLOk0Nltm7fEhKYk9sAcz9htSJPaGGBNuiLteDIr9+phcB859vZmqd5POHwh2eOWSSVkO80NF7WU4I2c= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3068335b-222f-4fb1-6ed6-08de590e1919 X-MS-Exchange-CrossTenant-AuthSource: PH0PR10MB5777.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Jan 2026 16:57:01.9660 (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/DcMOSs0Mjk2uJ69gEQpNq1gDugXgzx8ZsV2OK1vkg30Dk3MoeEFq9hkHO4WIBgEiAkxrN4Ct+gq2c7CGmBZg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR10MB7712 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.20,FMLib:17.12.100.49 definitions=2026-01-21_02,2026-01-20_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 bulkscore=0 adultscore=0 spamscore=0 phishscore=0 mlxscore=0 mlxlogscore=999 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2601150000 definitions=main-2601210142 X-Authority-Analysis: v=2.4 cv=PqqergM3 c=1 sm=1 tr=0 ts=69710566 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=CYoulDwovmb3McnCtv4A:9 cc=ntf awl=host:13644 X-Proofpoint-ORIG-GUID: FCTEsRpoNQPTljiJdw-ygYIa5vfhwVdA X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTIxMDE0MyBTYWx0ZWRfX3kgRUsY6E2mV 8aImJOHGw1whPJEQW075uSTcLF8+ArizViTeS9sJUeVosS8MwXCwc2ayy5R6pGdt604waRFEDp8 QL2lJR6tY+ZVgc0N5vYkMB56aA4g1/bftjThmHnKkFznEFGXIwPU1/Np5Vp+BNSjrRfWN5Vt7Ix sUznLuSnsGNOUM8K3knPWTJqYNrAvwSPCW4ZdMETLo5RWRgJ8BeMMMFV+IDtG37JSsSOvJCjVUH MLvd6KkQlNsurd5l7+ZBpTNk9NyDqNbqnViWbHhgARxvFBikkSv9RergCZg6TFli6r7zs2jwSo9 lp3K/UC/j6K3DP5eqMLKjntpydZSqeY3e341mUHExIiPoVyg4CEWckId+2Kk3KgwMoqyMMU+Tvn u88Xo6EGfq5ItlrWR/d6Ym1SP8R6HbOfjcZCqGeuIkbAD8MrDVM2OiRCUogTjXWDX8vGWgRsn/e lSg4U4JpKFuPOBxmerLf95f+rGze6nRit/EiNvp4= X-Proofpoint-GUID: FCTEsRpoNQPTljiJdw-ygYIa5vfhwVdA Content-Type: text/plain; charset="utf-8" Moving the maple_subtree_state is necessary for future cleanups and is only set up in mas_wr_spanning_rebalance() but never used. Signed-off-by: Liam R. Howlett --- lib/maple_tree.c | 41 +++++++++++++++++++++-------------------- 1 file changed, 21 insertions(+), 20 deletions(-) diff --git a/lib/maple_tree.c b/lib/maple_tree.c index 91d3fb7ac39c5..c5bb341da5e9d 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -2750,46 +2750,52 @@ static void mas_spanning_rebalance(struct ma_state = *mas, =20 =20 static noinline void mas_wr_spanning_rebalance(struct ma_state *mas, - struct maple_subtree_state *mast, struct ma_wr_state *wr_mas) + struct ma_wr_state *wr_mas, struct ma_wr_state *r_wr_mas) { + struct maple_subtree_state mast; struct maple_big_node b_node; unsigned char height; MA_STATE(l_mas, mas->tree, mas->index, mas->index); MA_STATE(r_mas, mas->tree, mas->index, mas->last); MA_STATE(m_mas, mas->tree, mas->index, mas->index); + MA_STATE(mast_l_mas, NULL, 0, 0); + =20 + mast_l_mas =3D *mas; + mast.orig_l =3D &mast_l_mas; + mast.orig_r =3D r_wr_mas->mas; memset(&b_node, 0, sizeof(struct maple_big_node)); /* Copy l_mas and store the value in b_node. */ - mas_store_b_node(wr_mas, &b_node, mast->orig_l->end); + mas_store_b_node(wr_mas, &b_node, mast.orig_l->end); /* Copy r_mas into b_node if there is anything to copy. */ - if (mast->orig_r->max > mast->orig_r->last) - mas_mab_cp(mast->orig_r, mast->orig_r->offset, - mast->orig_r->end, &b_node, b_node.b_end + 1); + if (mast.orig_r->max > mast.orig_r->last) + mas_mab_cp(mast.orig_r, mast.orig_r->offset, + mast.orig_r->end, &b_node, b_node.b_end + 1); else b_node.b_end++; =20 /* Stop spanning searches by searching for just index. */ - mast->orig_l->last =3D mas->index; + mast.orig_l->last =3D mas->index; =20 - mast->bn =3D &b_node; + mast.bn =3D &b_node; /* Combine l_mas and r_mas and split them up evenly again. */ =20 /* * The tree needs to be rebalanced and leaves need to be kept at the same= level. * Rebalancing is done by use of the ``struct maple_topiary``. */ - mast->l =3D &l_mas; - mast->m =3D &m_mas; - mast->r =3D &r_mas; + mast.l =3D &l_mas; + mast.m =3D &m_mas; + mast.r =3D &r_mas; l_mas.status =3D r_mas.status =3D m_mas.status =3D ma_none; =20 /* Check if this is not root and has sufficient data. */ - if (((mast->orig_l->min !=3D 0) || (mast->orig_r->max !=3D ULONG_MAX)) && - unlikely(mast->bn->b_end <=3D mt_min_slots[mast->bn->type])) - mast_spanning_rebalance(mast); + if (((mast.orig_l->min !=3D 0) || (mast.orig_r->max !=3D ULONG_MAX)) && + unlikely(mast.bn->b_end <=3D mt_min_slots[mast.bn->type])) + mast_spanning_rebalance(&mast); =20 height =3D mas_mt_height(mas) + 1; - mas_spanning_rebalance_loop(mas, mast, height); + mas_spanning_rebalance_loop(mas, &mast, height); } /* * mas_rebalance() - Rebalance a given node. @@ -3447,11 +3453,9 @@ static inline void mas_new_root(struct ma_state *mas= , void *entry) */ static void mas_wr_spanning_store(struct ma_wr_state *wr_mas) { - struct maple_subtree_state mast; struct ma_state *mas; =20 /* Left and Right side of spanning store */ - MA_STATE(l_mas, NULL, 0, 0); MA_STATE(r_mas, NULL, 0, 0); MA_WR_STATE(r_wr_mas, &r_mas, wr_mas->entry); =20 @@ -3505,10 +3509,7 @@ static void mas_wr_spanning_store(struct ma_wr_state= *wr_mas) return mas_new_root(mas, wr_mas->entry); } =20 - l_mas =3D *mas; - mast.orig_l =3D &l_mas; - mast.orig_r =3D &r_mas; - mas_wr_spanning_rebalance(mas, &mast, wr_mas); + mas_wr_spanning_rebalance(mas, wr_mas, &r_wr_mas); } =20 /* --=20 2.47.3 From nobody Sun Feb 8 07:08:28 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 DEC083191A7 for ; Wed, 21 Jan 2026 16:57:34 +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=1769014657; cv=fail; b=W4GPZW8+aTlZTbwponrXO9ea2QiSTY/cp06Ne3VGPsGMAMxBx+5+aN5ejvHqBsZOjg+Xva26AT2JYRtwPzOecsvO9zyLiNPk3BWb/UrUEJJPQ6tSoN6czhx0JtcoFVkAkdm/cRXTtiJAVC2ZeE41cDn5pRuD6EUPYZJ/UXyYdDg= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769014657; c=relaxed/simple; bh=4au7z9qLneh2PZCHWVOE9/JKGJaotP+64HF+f2IUrs8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=icUZixZHBw9hZsCAn794WU01kVXZruJG5oG7SOiPs1yLB43tMkC7NoQvP3Ac5qVf8vKp/v5uL9OSR24fkgXqcYmhDKpgKw8qP1S5dd+7CXhqfWJs5mG0vA7LPBAsRNvQPVq000cU3ZTw+vQ5RL6yLL45+Z/goZlG2QeR+5og6CY= 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=rOmGuFO1; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=k3iWpjnc; 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="rOmGuFO1"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="k3iWpjnc" 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 60LCeNZP3524038; Wed, 21 Jan 2026 16:57:12 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=zxV/p2KqJn2g62arMPazK+xNgyy3Zs5cGjzURR8JZIA=; b= rOmGuFO1hmLRZu7Y8jDMHBPd0tU5cXUSMOr2nRegnmRlTKlERmGz9PwZjuETw706 1lvQLgx3Qu0B5SR2NhEFP+eF6QwYyJho2ItMxukk6ocRMbOlhgj0DWc0ZQw3yryp lSvD95WNesCtTUzFKi76hyak1h8vMD0O8Sc+/7jIJFHLTEgQJhGwNAr2b46KmFnh b/S3kllnA1V4DhoWszlex+ji/gUTDyHWZ9xnCGE1H0/XgYasJZZuy6+jOcyi5EM8 N9suoM5ZU3I9g9aQdDC9eTadmsVE29ElRd3dwiiJT1PHFRcxElq30uFxGNz6Sun8 +SoA3+HOfe1Vr0KGRStSBw== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4br21qee75-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 21 Jan 2026 16:57:12 +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 60LFhhvY021910; Wed, 21 Jan 2026 16:57:11 GMT Received: from ph8pr06cu001.outbound.protection.outlook.com (mail-westus3azon11012060.outbound.protection.outlook.com [40.107.209.60]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 4br0vfa0a8-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 21 Jan 2026 16:57:11 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=QxofxxaQyELv0e8PS0D2oN+Bb1GXCeV9JGT5PvohjU1hXj/zsBY2MtgMu4FDZmvfV/oCxAqkddpUNn6GYTUMYcanLyVhpYUsmKcby/v3Ydu16CNYSZ/2stLgfZd+CjV8lzZEBIDVssrgvyUxp7y+MPAcxHl+1zrpMq7rFlEoYcyJ0lSGalPd7gr7qT1Jhks7dDxHl9SOkzg3X9AWE8051S4reryeqOFWKiphx+Qh1H77Hq5QGYT9VBdKVEEV9Tf5L+GDwBFNqkVyHML8iDrsk4d91QFs5Cyscl9ficB6a1l45Btkay7fi2p57+Pnv3GEBkDA1WYz4CeXF4FUhVZmLA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=zxV/p2KqJn2g62arMPazK+xNgyy3Zs5cGjzURR8JZIA=; b=MNdXVmcqD2+udu4MP57qYo8MMWacXu/EIzmZNBPdjQG2AT+df66Xu2CW5thoeL8P0Us/rWkxw9BGhR6lec/dhfXBVrLf1uiv1PBrE5cun7p2RyhIyyOlUIIx7gNNcRGXUeSq3R3xtRMWBBvzOlvBk+HkJE2/EzBBcTiwbSjbpNK2JSa60RtkicvCQmkiSdq5Z1fa9aNfeMZZbFkQrn5mgYfUcKGe8RhYZVC5Affhw7xvsPpijMcx0auhpI4ttkCbo7crABkG9ROXwvSQqxs9w6sHJSENh6hHATTcfQyKeXTjt8hG841xZp9dDjNOK7AJuXDtovB0oPzeHo6UHl5TAw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=zxV/p2KqJn2g62arMPazK+xNgyy3Zs5cGjzURR8JZIA=; b=k3iWpjncqzLPBL8HT7FBOc57VdB8wFbambLR+TTVo26GudIBVVRdc4+gqTPSVZNztFAaIIpE5GTcKmZX85Bzx4FkJtsoj7k2EvSg7V3UPmeS2+QIGPvf9KJ1rIQG1j5o9ocCtY5zsv/590Ez8YY1xQmPkBkg/V5kHL581nlNbnk= Received: from PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) by LV8PR10MB7727.namprd10.prod.outlook.com (2603:10b6:408:1ed::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9542.9; Wed, 21 Jan 2026 16:57: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.9542.008; Wed, 21 Jan 2026 16:57: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 v2 10/29] maple_tree: Correct right ma_wr_state end pivot in mas_wr_spanning_store() Date: Wed, 21 Jan 2026 11:45:07 -0500 Message-ID: <20260121164526.2093265-11-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260121164526.2093265-1-Liam.Howlett@oracle.com> References: <20260121164526.2093265-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT2PR01CA0028.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:38::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_|LV8PR10MB7727:EE_ X-MS-Office365-Filtering-Correlation-Id: 85b09c2d-4e53-4223-a585-08de590e1a75 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|1800799024|366016; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?nBi4MAAJbTIsmuhwG8P3vGeOERrQsC3tRSvbNbqNHLsPJ+edgxgKyCnUiXzZ?= =?us-ascii?Q?Q94LfDFu3L/dBeCs3hdbbDPgHlmgGRFxp2tE2pSQWX90JASC8Z1fiDmv0L2B?= =?us-ascii?Q?wv6vtl/6sgza9kp2I/+8jxSHSCxYDs+nxY7+kWgSAXGEUgC9cx16+bfMQGZP?= =?us-ascii?Q?V9fHLDrWf4kaoCr3UK0HxGRPvqvUosUPkNUABM3ngyJnGjakFuvVfKJbyjfV?= =?us-ascii?Q?bAOxzxvAF8M1IlPYr/c+eg8eUAVoEIQVKO2bq3RlTNUj+iydcLDFCLlWzePP?= =?us-ascii?Q?9S1LWdYZyYihDtkwgER9ZpYylpOKxSTX1dYZVhf/wfIHlWjUCEae6lreKOF3?= =?us-ascii?Q?xRsV0YUEaUL5FvYuKRNKzpa+cflHOJyVysKDnNKuNSQGPJa3iYhpfFauEbnM?= =?us-ascii?Q?uynuG5kM4jId5HPGCTIPU8fq9pkkLXvTtDJQKI3nOZNFnXJEew2qwjPFzNWJ?= =?us-ascii?Q?nVmZ/6CRPdV8+p/zNnMZWHKY/+ORwTbAKZ6nur1tcaHOtbeLwi8HZ01NPAmU?= =?us-ascii?Q?EwDHEjD+fGK162ikm1O2CWTSDvDFvQ4AXRr2Enu+9Y/gK6v0vvMGI9T0hFIY?= =?us-ascii?Q?h2KnYfEvvlDxtWjEsuIyRR5TzGO+LgdloLZppA4EPPEQsXZTRI50BjeKXnYb?= =?us-ascii?Q?Zft7YJUh8bKn/x/pOUX4kLiAOl/lk0gwDlZpsg5lDaDn5Ldwyb2t/kIbgE43?= =?us-ascii?Q?w+dgiOWW4U+P8j18Opj3auzbJAbd0EH+AFbD1n6cwRmBXoyB77U1KLlHf5T/?= =?us-ascii?Q?OIoGtm4kbUQ8ing3hQ/3wIrQ6zN5CHkCJoRLbrzRERtegt1PmekWcUg+Alfq?= =?us-ascii?Q?aQPCcASUgangNOXYKJoVYmzwCDGoDmGC8l6F39Y5ytpBo6e/pgiI8kp6gd88?= =?us-ascii?Q?9loE9eh6ePltHo4eQ5cNuzEbbGzDS/Vrw1t8m0o2pBudZY4iuHnraWcISoSI?= =?us-ascii?Q?5onx1eXVT62X9SpAGBahLR0t2pkpY0lRpoucBmYRl1NmlF2u0l/8Zeou3MAv?= =?us-ascii?Q?BcxPQK6Zv11RMw+ajgwEfbNpyfTiSdo/E64m3xCSme6Rz6bUdsxM0Z+q1pO5?= =?us-ascii?Q?Eu2y31C6g4lrJ9tiEBy/s5tZaL8qQKjGsIputszI+0DgF9AegSOeygFp6s5s?= =?us-ascii?Q?g82iTjPwxrKDvbSlCxZ6nECj+tNiy6mv/i8ZTb/ajGaAq8fI+AE3JOtZEBZr?= =?us-ascii?Q?7I0f+ayiCsJI9wi6YPi4zwbKl4yh94if+LFM9JUoxccnERM0wgNUk8e9gh37?= =?us-ascii?Q?o8U8PwzDNBU8OjoWBDoJPZUeCdMaBq+0Du8j/WZcjJjmxtO79sXuLO2uu0B8?= =?us-ascii?Q?eTnYVdCfIWdjVT8vOB/culUzYuitXOMzA4EEwa1qQ0/F1pXVdpNKO+ezokLy?= =?us-ascii?Q?hiUvDQfBBU9oi5OzgRwqxifG+D/N0H6lw8YVqKd7IEL9oNB+dTD8tjZPiUnh?= =?us-ascii?Q?UXadGVvtk4V8aEfQP3qxJusmzVR25VL7csEjF4CJasBJRdZJXQNoeep1O0aq?= =?us-ascii?Q?PkUn8zIxvWsfDBPCXBBqHE84jOhzFh1RIi1DWvkCWP2/g7wvyqCQ3cHl+GlK?= =?us-ascii?Q?l+pVCkapN8yxdzBs1QE=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)(7416014)(376014)(1800799024)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?KGnfnAaQS4yErclr7tPxfX1I+q9RaBxdI9Lzx+u+3Y4LmxLR9z6SY2NEtDz7?= =?us-ascii?Q?xS3atwqx0OkwLsB+4eIDzAao95QkYqutwoUuhun+AMsqGrw2cUzIMys0GsVs?= =?us-ascii?Q?sxAxMGLuiKEQV/yAFgaqIsQ2pmJ+qBmVf5JCiEHzhgjAIBROIJFqF8EgMNef?= =?us-ascii?Q?3Zb9JRZPd2inby8Wv6xgihLmHPq4h9EHYn6opniQZm9ck2uXmMtSpSoAYHbc?= =?us-ascii?Q?GLMqmPYDOHMPADc9KTpMNI/6XFgELQA/LTWszGf5gXybJsmVCeAPWrpgDzZJ?= =?us-ascii?Q?Y/n0P20qWgHPtqObgj/APqWuR7fzmr/6R+OlIhTWehvDvWjsEqYC4enXWCF5?= =?us-ascii?Q?6nmXOt48ym5ww2UJaOlF7GqWgvDJZelO2LE2k6NqghvGn90NuW3ccKeeJcDk?= =?us-ascii?Q?Vysw2xVrlwoPnkfZOewbHvVZwHu3y3C1Hzyi5IXPP/WmcWheafEOXYqwCGxI?= =?us-ascii?Q?XCpC6oqWNpKfAqJPErSTUattMBHjbd9eDo3Th/AJOc3zS7pxNmFCcvuNsId5?= =?us-ascii?Q?O6vAW9U9XUaq/+zIv9FgALXLCDjgSoc/Gsr7vz6Qq2tl0yNEWRHp1MBpji9F?= =?us-ascii?Q?vHhboHf5ojBvfpOutQQ6h6mvwIWdASgDUYtNitl5CG/NSg6/QnY+nOOnbeCG?= =?us-ascii?Q?qpcP7Spk9B+kdJh/BJXNg3mlZ54MN7I4hx4bHYsPq1FQXVQKVxrQjnWdtIk6?= =?us-ascii?Q?jmHBDyC9JvJMfA3ZlI8mE+7iMLpcLjj8FJhYxWpqnfzP9a23O0+pSwLV9wvb?= =?us-ascii?Q?nPmo5xsxY3FmRh8SNviX9qWdSyyQSD6bMddNbpm41FGYhjxj95xCqR+TLget?= =?us-ascii?Q?O7LTcNRq72yiDn8UeKGJXnwTfOy1feVwIAZFgLM40BjDCzFr+3UyZHhUc7Zu?= =?us-ascii?Q?i20yeTNkPKc1dmka9FcKuTqeVTzfnfz4IyEsrv3xsYNZI2/u/tEKb14Uz1Rl?= =?us-ascii?Q?De6w+U/i/R12mIIqX6t4Bxz0NImpaJVkfxjFd6MNvt/BJ3+kj/LV0GTcSb9n?= =?us-ascii?Q?MYYBA8iqYR+3pchbWdv54CxYCz7fIgIibDg6RGQyZAji3wxbw/Im5oOFRg2A?= =?us-ascii?Q?YHQBvldlZKDqejEbWOYqjZlh7ZWHrJACo+ELrbAAjVfAJ8gorvmtW3DfChgF?= =?us-ascii?Q?oiFR7co/535jbh4hdqCcLzyIJCDGJVyEW5hQ4DUIUNgH7Ga9mFBtJP277LBL?= =?us-ascii?Q?hQnepLIvinUU1nKfKPZGjMIEiTiQ4SuTw+c5wksbNRsxupYZ18xp6XLPeTjA?= =?us-ascii?Q?DAE1alAEfiiVR7klAfwvA2jFYK+MIFK4+TmGL0wdIy8THSqP57LNRE80h1se?= =?us-ascii?Q?BF1unoR2Zcq9ErbxeXN2C9UvBYV4ZJ3g/J+C4wRwu6qtrcoqPhUJB1DJ5GyJ?= =?us-ascii?Q?G/jpdtv8Xx0OKkhN52o37ERzJTJE6FR9YF1rsXRB4kh2m/qA2v6o1vQiY3eq?= =?us-ascii?Q?lKYwT+CUSb63LgLxJL20CIhrFoCB43sg4UGfoASlDvru3m7wljcV3G6RiM9g?= =?us-ascii?Q?wELfFXHr6/MdWeHpYIydCA15nR5ZWIyVeFrA6eVAHbe8XV+aGosueWekzLgh?= =?us-ascii?Q?gksqLxTReVtUf3ZaFE+vPKEQsZ3sMGkBs+/tUL8q6tizG/h/o1S+mHKX/8ZJ?= =?us-ascii?Q?8WKnFpAw1NR1FPUBcSkG/dbR0n+WBF82gXk+gpB07GrEWB+ymsKXyiXvMww7?= =?us-ascii?Q?/VKyp0e9fTji7JVvlBxBT2Ra43CyWNEUqq9ftuZDrfZx/ifMSwNPP4a82YYc?= =?us-ascii?Q?+2B6bOqFNA=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 87Xy8NThUrvjybU0t9QqBrwejZHmKx7lLmzQKlr0vofw8Exw1/K1BIwzCPcF0PdC4o9zl2VV0BbU/TkaK2ulXJ1v3/4KGkXRHQg5M0MXj1LKrWy/LwcsdmTcQ1xpT1i9Dtj+jHsMJRyOWvtG+t75Ipvjok6ibg+BNsr5aK1dn/5YPHpPNTixEpltmr92v0NnfzrOeRtCXyZuN9wH63H65ykjwtlZWAjdKAv7QRU8v0BD9H3lRj5pE6C4NCXu0vmGGsaeLd+J4mjdXKZDbAxd5cAaqskORFOgmIuWMjv9STvpbkvbtgVEbeEKmS3iRbMOVpYNQEOKkv02PUHW9Fpi1aBsFUeBygdce+hs0OAoo+JpoXs4XdIAjMn3gsOLix0jEzJ12rnehWUBzLtTXFYsIGauDFFER36XtO9plc5fMHmbKPVJQWYnOW4ZPszcfuhw93e9q1Do4gyKs7nJAGt7qVrLX9Fyyd6a/bqzPBpm0kd6qWhNq9VPDDGJSb//CQa4eEsNabe6mtos5qufQDDjKWyNtsGnDThPXWQGmteh1Ev55LrJfZ6T+OXLu8xs9ygpOLWN0YNQBEDoyM2/RNUdfPWTffRe76wYeumBzNWC9SQ= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 85b09c2d-4e53-4223-a585-08de590e1a75 X-MS-Exchange-CrossTenant-AuthSource: PH0PR10MB5777.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Jan 2026 16:57:04.2327 (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: zzmfkVAXbragNAo73yXyGbcBOkuEnCYtqguY2knSfvk/FDhy2DhAktkbR4oVQrc2rg+0t1a5+IZRyHMRxZzitg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV8PR10MB7727 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.20,FMLib:17.12.100.49 definitions=2026-01-21_02,2026-01-20_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 adultscore=0 bulkscore=0 phishscore=0 mlxlogscore=999 mlxscore=0 malwarescore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2601150000 definitions=main-2601210142 X-Proofpoint-GUID: -KsqIu6qq_uQ2TR_s3gVUXj5W-H62vdb X-Proofpoint-ORIG-GUID: -KsqIu6qq_uQ2TR_s3gVUXj5W-H62vdb X-Authority-Analysis: v=2.4 cv=QdJrf8bv c=1 sm=1 tr=0 ts=69710568 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=-8DI_9cH-nddbzlGVogA:9 cc=ntf awl=host:12103 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTIxMDE0MyBTYWx0ZWRfX6T8+09c32/8s KqbhbSDP93xnStTDWEzwrE46kH1ujkqirUrrXx55lPX9c93DJ0A1CuqOilC+IuAJPDRjH7gmqU9 XDefSNNdQiKrnwPrrWoLa5vvkxoHPSBCDH0A9EdWMgB5g6u/TnZoJwIUqhGj+b5Cm56klLEmUrg e1uRzWHIyJWuG+fBoYZoRRQCEJO/p7KR6hYxDOGSwbO8u7aivbnUZ2mlR9HB47FZ3xp6tx1NtxV m2xZe1My4P1PXhBtvULDFM1TduK60JubfPk53Do+RdcH1VvikPigQzvRiI4O58Ci0WAWRXV2WHY 8Fnche7peLT+7PRnnXgEt45S1yMe/tWwue+Swz9U0D0Bv+5cMUW3d4OwDtuRLj3M+EerWNCmJtD s+AkC6XT8hDuOxOY8VahzDkAbvHm8ww25QHko5MxR/9QzCN6CkgrLP5xvIuFCayPosaRLqgSi1y zpN7ispIDHAClXSE/nV3ToFVEkLZ9as9/zD59WXs= Content-Type: text/plain; charset="utf-8" The end_piv will be needed in the next patch set and has not been set correctly in this code path. Correct the oversight before using it. Signed-off-by: Liam R. Howlett --- lib/maple_tree.c | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/maple_tree.c b/lib/maple_tree.c index c5bb341da5e9d..caac936bd8d40 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -3494,6 +3494,7 @@ static void mas_wr_spanning_store(struct ma_wr_state = *wr_mas) r_mas.index =3D r_mas.last; mas_wr_walk_index(&r_wr_mas); r_mas.last =3D r_mas.index =3D mas->last; + r_wr_mas.end_piv =3D r_wr_mas.r_max; =20 /* Set up left side. */ mas_wr_walk_index(wr_mas); --=20 2.47.3 From nobody Sun Feb 8 07:08:28 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 90A6D4A5B18 for ; Wed, 21 Jan 2026 16:57:39 +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=1769014662; cv=fail; b=TGvSnOt4h4eMTMuxw3ixCHxflMIvkOyf8/OmBd06ed133dxEW7vhm6m97XLUiioQnL5vs7Cemgr2RD2faqdGQlxiutbKh8jiFKYPg7Ncp208UFIoaoK5vMU0/Rh6BnyDwQS3YnX+gfOStP6Wo3vAGstEkjBEYCk4mlVMEa/I/vA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769014662; c=relaxed/simple; bh=rI18sq1t9im7Bj9r/zI/9NhRRia5mAD5c2NwF8zIMCg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=JbUN4lhKaubeILvE8CsetdZzVwoVJnlvXNVy1KX+I420YS9UjLQqwbsbPaddL665zGeNZmraxLYt0f4eiEI7RxWXtltn2R0r00pgfv7V+ci0/7dKwBiRZFTW2JN5C+AL7LkaVYPWz4g8GqKMH888pqeMcxMaqzfCKQaNWr2bY/w= 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=mD8FTYR6; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=Qj0iHBpo; 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="mD8FTYR6"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="Qj0iHBpo" 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 60LESadW3031067; Wed, 21 Jan 2026 16:57:13 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=7EhrgKQnDfJ+QTXrI98tq9qj6wGR4JohjeNGICPwKP8=; b= mD8FTYR6+oqzEGqsBw+ub8tbopbl/pR1CL4cw8T6DqsszTJ/sFNxYBkhED28F8V0 +ZtNpraGKOzPJXGC7ZdizOPMvEjs+gPDtT+SlJXNh0AaVpWv9Z/nxLC8RV9Y5x2Q HHr8IF8nZ4j6GgQBNdMdpnHNXFjBtflV+k67H1jaGs6tDTUP/ymlwwFtzRwxhlGx TjTf53jxeiieaQzL2sa+HPZKq+MsxkuGKpQVdLOT23DXWwkiJPyjLPu8GEDePyO8 xYkKS0hFusfLoLw71oG3XPxMjrpFseZi75wY5gHKiDnhYNffHComkDflDFb4NpYk x27soSH2JgZ7LRP94gLebw== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4br10vx8mh-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 21 Jan 2026 16:57:13 +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 60LGNgJi008393; Wed, 21 Jan 2026 16:57:12 GMT Received: from ph8pr06cu001.outbound.protection.outlook.com (mail-westus3azon11012023.outbound.protection.outlook.com [40.107.209.23]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 4br0vbht22-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 21 Jan 2026 16:57:12 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=tti6q6iA5j16GvKPLWrg6w/pWvLZD0BfKNvLLOesK1DKd18oEWVLttaMJI2pvfJNAwZAK9aky74QxIh1bRtL736r8a91vYxbJiSYFJvgW91bHoo62rMfASgalQ+3DUjz/gxCx5jz+yoJXAoshzDM3BLPg3Tj/QOU5ubg6S2w5B/TancF06AGdaCN1TWfvYusM9KN7UJIbY1HDAwRj6ruRoiYOL7Xr0GWpT7XYF6GcP29SuTJAG8TR+Yc0mNHyXORjuCh/1Xe8tf2PhnQgYz2O0XFDI/nQr5lde7OK/XeZ/vJaxZCmMHbmR9I1REp9sBJGZzveVSK2+8PKwatjQuYRQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=7EhrgKQnDfJ+QTXrI98tq9qj6wGR4JohjeNGICPwKP8=; b=qH1Z6x2cEkPC4T0UG2pu9bg0L5KDU0ubHU3Gic6VQ4LXXDX28sQC9+RZuOzHwPn0eI1msme1967tukGmOuWZxh2od2/xuKdp1C00i2KrEYjubG91VVseeE4m06YZCKH2N76lNcYLaTkLzvjr4pb2EAEAIz3K1f8MUhO/GvsVxCAU++uGMP7QIfeDXli3ApSYKdYIK9mCZYc7UMQgMfTtm1O7u36VBMRrx5RA2wwSp7ha9Ba9ct6AMDt5YerMA+NfonrGWabwnDTpMxraIl4fcplP6u5YPpkwYVq1ySxB83C310ysiNrJUqs+Ng9wLBuDcP4mbX+6OEQynDP1ncmhXQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=7EhrgKQnDfJ+QTXrI98tq9qj6wGR4JohjeNGICPwKP8=; b=Qj0iHBpoj0+Irq89Ivq9OhCt1cMTRaUVw8U20dSqoDuuIt0ZuyzNajFBcEmnBE7cm2a99nubhIKArR/hVouuofwxbp5RnQaN2NT7sk8nbnk8E4LQ4P0Y1itqMQRXQalnWEt2U/gXrHP+hHtP6GJFeyGbDhfpFfuCSxNa2e0hxxY= Received: from PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) by LV8PR10MB7727.namprd10.prod.outlook.com (2603:10b6:408:1ed::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9542.9; Wed, 21 Jan 2026 16:57: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.9542.008; Wed, 21 Jan 2026 16:57: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 v2 11/29] maple_tree: Introduce maple_copy node and use it in mas_spanning_rebalance() Date: Wed, 21 Jan 2026 11:45:08 -0500 Message-ID: <20260121164526.2093265-12-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260121164526.2093265-1-Liam.Howlett@oracle.com> References: <20260121164526.2093265-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT2PR01CA0013.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:38::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_|LV8PR10MB7727:EE_ X-MS-Office365-Filtering-Correlation-Id: 31a9a476-4c88-44bf-7313-08de590e1bcc X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|1800799024|366016; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?v3fJ/M7+A7cxsknWn5h9cYhOeebyGOdo9Et7VB5AsJKvT7KwZI9jtBRgo2VG?= =?us-ascii?Q?fbTw9yFyyVYPy61Ctr7OigO1ZzRUE8WCieFQKdkGaOOJwechIrKSrS2RiwIY?= =?us-ascii?Q?LZOWVCG27nZ/SP0T3CMt0T2A9r6GRy0k1OSQ0pHfyk4sRM0coCp1E2Ic7XRc?= =?us-ascii?Q?Dnmalc+It32ISw297iWnxsv6gbnr7doLwXIKolb9bziYNTeXIQGSrGCrp8rz?= =?us-ascii?Q?mHul3jrAgNWNUSEHCgv8xUQPdyG8CPIlzUMaI4m/ITyGJMVo7R/fd47UH7Rf?= =?us-ascii?Q?s0FB0hCbjThi4ppxplKC7EfoXIHPw0j5P9pIt7KEcJf4v6p1XsGMXO+LUbXx?= =?us-ascii?Q?B56SWskVSzulMwYqFvebJjNRvqBYsge1RHDWPtz/aWsI0TRzmVo/xtdaTUaX?= =?us-ascii?Q?UsMOmhqbGqhU9ufI78NG4LTBfxYewgiv07bV1LnoSF49C0tgH2WTu8aN5+nK?= =?us-ascii?Q?uwnh2sY7JvI3nG/4cy+4ar8UgAHNrvH5VPu8ZTgY81tXnr6mqqLp6JNgvD0A?= =?us-ascii?Q?QxpAwNyPIj8XfB06d79u6LnSVLWp8qVpW06YhWHmrwFIVvgkqblhWwCM01z2?= =?us-ascii?Q?a1VJK88wBxwmKQFTa4fijHS10qWbc0/vJPkjpxA9skFqGkwHKvSNontMS56s?= =?us-ascii?Q?IV+3ZRFbC7R47Nm6FS2//Erb1fKTsp8jYoyVG9PQRUNIUFV+F2vhYH3+AXD2?= =?us-ascii?Q?8ihKfM9d88+O0hwf0bi/EXmkN4XOEE4dHXUA/oM71H97JQfNNlBBF4ExtAPl?= =?us-ascii?Q?4RoGbVrXJ+Lu2hoNYkUwe6ykLgP2cMqWLyHnzyT0exfNxEFb4gr5sXB3mwJM?= =?us-ascii?Q?s4s4c7dhHAd8IpL6J+4l16DSI5DyICIstm22LJxwJy/wJSmdeRWOMeTXOOW8?= =?us-ascii?Q?P86T3+FSroBim0JTRZPmWhb2QwXAjHE0jRlXKlD4w43Y7FTULBrtKO6yqF7T?= =?us-ascii?Q?krGW5E2RijpOGs+iSwEFtCiFdWiAQsr2C9d1RA7LxnNU0+Gy1QiZBGLDqhS8?= =?us-ascii?Q?XBAQYwppUY5A4ipV19lQBy0lBYd3GW1eBrY0VrDR2jrQkFFZtCA+o2zXHN6W?= =?us-ascii?Q?rKVjo4XaZNp2amfx3rZq7zRzE2UZtXYw2lHrDIjgb84AlSrr7RcTiMrcXW39?= =?us-ascii?Q?54o3ctQvJDq6LW0DKyaz1Dg6EOtnYk9oUGG0N6kUTK0+xCg1q8IMJ3UwPM60?= =?us-ascii?Q?fZZrWsai2+na+kzemHyI1Ka/MeNlum/c8ZxjsGLlUP2Z8+y9JtaZKbAKJm2g?= =?us-ascii?Q?cL7BSz0t17C10jfetyC1TFt9Zb4oKC07vUKJEBIImwLmExjTN9KARx278eem?= =?us-ascii?Q?mEYFUsnr+bQu3GjuO8O6oZbDvHqBpiR9dV5775jDszhEpdV39AlJrXE5APu6?= =?us-ascii?Q?Ck5YOe9VKgMIArvLIA1WCwrT0IwvXxas7n+1v1hCLO6DpNPije+hbTnIfr1X?= =?us-ascii?Q?hLGCsfyJrGr6t/+dn0tNdo81cbIPImayvkCVNDu7FdzwJGDfG5ejIn+rZEsc?= =?us-ascii?Q?e6KtxWhU57yEmRVzrTuUWkpdZ+HKL5kdUQAuopFcUqX7+beKAcPSoUaTC3YI?= =?us-ascii?Q?wIkbz0skcfBOY4xT+hY=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)(7416014)(376014)(1800799024)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?c19Q7weWujBOau6Xt3uULERypjj/GJFMep4x/YctXGiNLXMOmkADoQ9/CZJ8?= =?us-ascii?Q?PXcITCnA0vl8mBIxGUfPAo0VRZwk0NtVvJav+zWJ//9dpw7NrlOhJwH0z49l?= =?us-ascii?Q?dX7vrq2ll7BfDn4vGhkBjwoBg3E8QY/4rDQeFZnJDem1INwAlMbsmG3cdhKV?= =?us-ascii?Q?lOqu5bsiEK+LCvoKNXzxleKXQmWY5NHfj9RdEAUJP+aFW/gpafmXVel4M0zy?= =?us-ascii?Q?ikCeJHqAsXknbK4jHZcdTjnL37MHve+P9jgouCA193jxay2w76zlkdGukw3F?= =?us-ascii?Q?qEiQH7gtepulRyuCcM5r6y0akmb8JeRDxPuNTZSaGfKC2hr4e0bT/RCXr8wE?= =?us-ascii?Q?52/Dkv+Aw/2HlSksrN3mwcrWJ1bOThqHzP+jVuKx4sUOc2nagdeGQvn+ND9Z?= =?us-ascii?Q?g0eoPkHZk2u4WB8qoDKJYOvtNs4S9vcAhmLgshIxZv7ax8Jfj1dFHz9tgFGU?= =?us-ascii?Q?lVn8dEX38M6ZW50+UDyKTGCwJIwLVpHFapRzpciEWdGqu5pqR6erMK6JvIXT?= =?us-ascii?Q?H5QLkFEx/Mlijq0YxDFkj3HsRg4A6ebNCqqXrhLFwZSCbfDdFdwCNP3QaalU?= =?us-ascii?Q?FRA+VN6grXphcP3HUdGSRv0oUv0Y5DdWScj/9qctsZeJd5SBfFe4nS75VXn3?= =?us-ascii?Q?7EVI2wZEaX0w2zPslGs1sH1HgHNtdQXqZ7m5JRNCvLe5saKBIFtxvC1Nm2JX?= =?us-ascii?Q?Ni/Yq6tg54tVcL8CzVYna+2rRkJDq6+L+xxS9LXA7WDbgogUx2HXHGFHV9wp?= =?us-ascii?Q?+5hN+Sr8hCHvlHbwlGzNTKOQeor7A3TEkQ5wAnUnPeQZhVEcLOGXVxYyK/U9?= =?us-ascii?Q?kWRQCODAPZgxoSKYimJpI9mTB9JfHMO6i+49tUfqptGWSsAJsVRXHiwagLdY?= =?us-ascii?Q?sZ+rQJoBwG2LHr4v5H9QJeKruyX7b1qNw43Xds8CkpHeT7xAKrhclltm/u7s?= =?us-ascii?Q?pk2TTPe2OcILIR1R8puVIC/p+Q6w6+jEV6j/sruJ08gnwqOdhMorRHphPB8a?= =?us-ascii?Q?aVE2zArZVm4AO8keXmgCNrRA8gcqfiMssc2ePL6uOKat0Ma1ZqZDGCDYYPdX?= =?us-ascii?Q?kldmcwbFjLJKz9V1jM0UynA964tznSK0/vTVy+gUvcxd2fRBLy5sLLRV03IM?= =?us-ascii?Q?gppyosCtl7LDOT6Yo84IniQEMSFaD/q32FQXY332K4yTrB3t4Q7z61dqB5A/?= =?us-ascii?Q?jdIiytS5wmW2yDWl0gTbGTmEpPDPPvqybjjfUlsE31/+7KR2oiRNkHQAA9Py?= =?us-ascii?Q?ScszkP4fgroqusK2Zk9o9ix1gj3SyK4su/OfTW0f6gdHRXgNJjI0LycaOilo?= =?us-ascii?Q?+LPZ4lydtxohcGuJnUvILYlxQgn0ridTIzAHKBmD+X+AfCus5Sc7qISWlWMx?= =?us-ascii?Q?GFO4LxkymC5q1C+rlnW3b3rdthw+abt2jTJmqa9UT5Ktq2efdluxw2GbTk5z?= =?us-ascii?Q?3E0GrDtMY1kuxkvoYn6b71JsjARpdKm+YV/0UxfU1sCsYnMZzX1/1yEWpeL8?= =?us-ascii?Q?iPFnT5tUdJTKC+OVLQvwgzgWiAaeIZFIHk6eNoOLNalwj8o5Tdw/sRlefWuS?= =?us-ascii?Q?oteiLbnjqeWuhlMmcAZ5Jsdt/tW2HWUGgcppPlumpETPXq67GFutuBcktEbd?= =?us-ascii?Q?m62qwO2kKRkBqTr+CVmLnheNfiyFzRBSqBJzv5jbzsrVWynWynLqcNDRJh+2?= =?us-ascii?Q?en0g9kGroaUT+GrNh06A3J5yfWG1ckrMSrSwfFKiVRvOqQpAS6YGPxYmuzZQ?= =?us-ascii?Q?kqqw15PtYQ=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 8e0ZImXQvdZ6oHNUDpCW6NhUNe+gDI4i6rBYqBGR3bt2MUsQjMCmIIf8nXneRChYaAqAkHBJ4qnH5lRGwM5g6epo5loeIamjc6wzumP5JwgBsXZE/2tEOjh8HFBbnJS7/OQ0B1aoATwVC1kii36yiN5D/AmRctDkfJTi2QM3t3NLEOO6KYB9uWRyODzZEqGWYdrrOmeeUOERvYMT859onaLvwBw/Jp/5CwNDuIrYtpikEB42J9mAGHAAFCgbgwkIzUmIa3rx2v2Umxpp5pxVhIMXgfffX5FNEDCDXq+KgIUgYFGqAFBw50IScmHoXhiPpXlj4ZyyjbhHIOYpLB9b7Kp4va4eizKLA5XR8NOgeA3MfqI4Q9te0ayQsCsO2Jm19QyheAjc2/UQnVlJ8PCS0iv/2w2sbrwaz8CPb+3ofpZBGu4OVW5VqB/NWeUgw6aqdK1FXSoyXcH5fWBlVyw65DTGsW0VDidsE/7A3Rk2bWfH4RlQinfDBOeMMQRC/uAd1aYbZG7Dn4JRntma8Lx+G5KpTqyxoJtb+uxZzX6iCJ2471h6XqhX1IF9KekhVkOc4JZ8HnDJ4pzG7O/HGHFOtXIgkXjmoPvHIaTK92y2/iY= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 31a9a476-4c88-44bf-7313-08de590e1bcc X-MS-Exchange-CrossTenant-AuthSource: PH0PR10MB5777.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Jan 2026 16:57:06.4805 (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: KCbtkVCbglfAZ7FmZoMWry4wqnipQBzrdGpO/OvG/n7q28ok1FVMk0jnCG30ehehy9qZ1J0DYYwgER8RFRjJJw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV8PR10MB7727 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.20,FMLib:17.12.100.49 definitions=2026-01-21_02,2026-01-20_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 mlxscore=0 spamscore=0 malwarescore=0 bulkscore=0 adultscore=0 phishscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2601150000 definitions=main-2601210142 X-Authority-Analysis: v=2.4 cv=H4nWAuYi c=1 sm=1 tr=0 ts=69710569 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=Fk0WoDt32--Uo3WLaF4A:9 X-Proofpoint-GUID: F4GrGlrhaNv7uBFlG6dpRCv07fDbTDiX X-Proofpoint-ORIG-GUID: F4GrGlrhaNv7uBFlG6dpRCv07fDbTDiX X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTIxMDE0MyBTYWx0ZWRfXzaLf3Yl0pWQ3 +GItNb7ViyI6qxPYH2ZXhCVvkdxhWqVPFM+KFuCnPkPi9SoZ0k/vLU6dBwDCLW9rh56HO7FKljK cZ9VWrb6lms2YczmtiPQ7lSGXsxa7P4KqHnACIkWeOlquwLR502PLbPQjToxCogXpnp6YWTElZt kQyEt/pw2LHeXf076DLm5LA6XepUVLuBBqIZfCHlwOZS/nKC0lHewaXDsZi18+g9PNypY//pcCP DWzjwSLNoJpSiecPzUTT1j7rXOhizWMUerc9v2wZ4+BRhIoBWktRNzqYLsQmKTkh28tn325Y/Ty Wev0C1UXzZUvxGx8S5ianmeaeO+bRglqKMG7VInsFP/M+aDQThEHOQ0NtKVeX2SKlR/ZE1mG4cw qO0wk4VJjDsji7JhLzyCPME8mvIHp8SmiChCB0mH0maPhu0NvqbghGgYhge0lDORZN+Dz78Dt03 9qag4GT2b6iGMtaepMw== Content-Type: text/plain; charset="utf-8" Introduce an internal-memory only node type called maple_copy to facilitate internal copy operations. Use it in mas_spanning_rebalance() for just the leaf nodes. Initially, the maple_copy node is used to configure the source nodes and copy the data into the big_node. The maple_copy contains a list of source entries with start and end offsets. One of the maple_copy entries can be itself with an offset of 0 to 2, representing the data where the store partially overwrites entries, or fully overwrites the entry. The side effect is that the source nodes no longer have to worry about partially copying the existing offset if it is not fully overwritten. This is in preparation of removal of the maple big_node, but for the time being the data is copied to the big node to limit the change size. Signed-off-by: Liam R. Howlett --- include/linux/maple_tree.h | 26 +++++++ lib/maple_tree.c | 140 ++++++++++++++++++++++++++++++++++--- 2 files changed, 157 insertions(+), 9 deletions(-) diff --git a/include/linux/maple_tree.h b/include/linux/maple_tree.h index 7b8aad47121e7..9bc7fa89bc2ee 100644 --- a/include/linux/maple_tree.h +++ b/include/linux/maple_tree.h @@ -139,6 +139,7 @@ enum maple_type { maple_leaf_64, maple_range_64, maple_arange_64, + maple_copy, }; =20 enum store_type { @@ -154,6 +155,30 @@ enum store_type { wr_slot_store, }; =20 +struct maple_copy { + struct { + struct maple_node *node; + unsigned long max; + unsigned char start; + unsigned char end; + enum maple_type mt; + } src[4]; + /* Simulated node */ + void __rcu *slot[3]; + unsigned long min; + union { + unsigned long pivot[3]; + struct { + void *_pad[2]; + unsigned long max; + }; + }; + unsigned char end; + + /*Avoid passing these around */ + unsigned char s_count; +}; + /** * DOC: Maple tree flags * @@ -299,6 +324,7 @@ struct maple_node { }; struct maple_range_64 mr64; struct maple_arange_64 ma64; + struct maple_copy cp; }; }; =20 diff --git a/lib/maple_tree.c b/lib/maple_tree.c index caac936bd8d40..554fdffd6c5b9 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -605,6 +605,8 @@ static inline unsigned long *ma_pivots(struct maple_nod= e *node, case maple_range_64: case maple_leaf_64: return node->mr64.pivot; + case maple_copy: + return node->cp.pivot; case maple_dense: return NULL; } @@ -624,6 +626,7 @@ static inline unsigned long *ma_gaps(struct maple_node = *node, switch (type) { case maple_arange_64: return node->ma64.gap; + case maple_copy: case maple_range_64: case maple_leaf_64: case maple_dense: @@ -690,6 +693,7 @@ static inline void mte_set_pivot(struct maple_enode *mn= , unsigned char piv, case maple_arange_64: node->ma64.pivot[piv] =3D val; break; + case maple_copy: case maple_dense: break; } @@ -711,6 +715,8 @@ static inline void __rcu **ma_slots(struct maple_node *= mn, enum maple_type mt) case maple_range_64: case maple_leaf_64: return mn->mr64.slot; + case maple_copy: + return mn->cp.slot; case maple_dense: return mn->slot; } @@ -2595,6 +2601,110 @@ static inline void *mtree_range_walk(struct ma_stat= e *mas) return NULL; } =20 +/* + * cp_leaf_init() - Initialize a maple_copy node for the leaf level of a + * spanning store + * @cp: The maple copy node + * @mas: The maple state + * @l_wr_mas: The left write state of the spanning store + * @r_wr_mas: The right write state of the spanning store + */ +static inline void cp_leaf_init(struct maple_copy *cp, + struct ma_state *mas, struct ma_wr_state *l_wr_mas, + struct ma_wr_state *r_wr_mas) +{ + unsigned char end =3D 0; + + /* + * WARNING: The use of RCU_INIT_POINTER() makes it extremely important + * to not expose the maple_copy node to any readers. Exposure may + * result in buggy code when a compiler reorders the instructions. + */ + + /* Create entries to insert including split entries to left and right */ + if (l_wr_mas->r_min < mas->index) { + end++; + RCU_INIT_POINTER(cp->slot[0], l_wr_mas->content); + cp->pivot[0] =3D mas->index - 1; + } + RCU_INIT_POINTER(cp->slot[end], l_wr_mas->entry); + cp->pivot[end] =3D mas->last; + + if (r_wr_mas->end_piv > mas->last) { + end++; + RCU_INIT_POINTER(cp->slot[end], + r_wr_mas->slots[r_wr_mas->offset_end]); + cp->pivot[end] =3D r_wr_mas->end_piv; + } + + cp->min =3D l_wr_mas->r_min; + cp->max =3D cp->pivot[end]; + cp->end =3D end; +} + +static inline void append_wr_mas_cp(struct maple_copy *cp, + struct ma_wr_state *wr_mas, unsigned char start, unsigned char end) +{ + unsigned char count; + + count =3D cp->s_count; + cp->src[count].node =3D wr_mas->node; + cp->src[count].mt =3D wr_mas->type; + if (wr_mas->mas->end <=3D end) + cp->src[count].max =3D wr_mas->mas->max; + else + cp->src[count].max =3D wr_mas->pivots[end]; + + cp->src[count].start =3D start; + cp->src[count].end =3D end; + cp->s_count++; +} + +static inline void init_cp_src(struct maple_copy *cp) +{ + cp->src[cp->s_count].node =3D ma_mnode_ptr(cp); + cp->src[cp->s_count].mt =3D maple_copy; + cp->src[cp->s_count].max =3D cp->max; + cp->src[cp->s_count].start =3D 0; + cp->src[cp->s_count].end =3D cp->end; + cp->s_count++; +} + +static inline +void cp_data_write(struct maple_copy *cp, struct maple_big_node *b_node) +{ + struct maple_node *src; + unsigned char s; + unsigned char src_end, s_offset; + unsigned long *b_pivots, *cp_pivots; + void __rcu **b_slots, **cp_slots; + enum maple_type s_mt; + + b_node->b_end =3D 0; + + s =3D 0; + b_pivots =3D b_node->pivot; + b_slots =3D (void __rcu **)b_node->slot; + do { + unsigned char size; + + src =3D cp->src[s].node; + s_mt =3D cp->src[s].mt; + s_offset =3D cp->src[s].start; + src_end =3D cp->src[s].end; + size =3D src_end - s_offset + 1; + cp_pivots =3D ma_pivots(src, s_mt) + s_offset; + cp_slots =3D ma_slots(src, s_mt) + s_offset; + memcpy(b_slots, cp_slots, size * sizeof(void __rcu *)); + if (size > 1) + memcpy(b_pivots, cp_pivots, (size - 1) * sizeof(unsigned long)); + b_pivots[size - 1] =3D cp->src[s].max; + b_pivots +=3D size; + b_slots +=3D size; + b_node->b_end +=3D size; + } while (++s < cp->s_count); +} + static void mas_spanning_rebalance_loop(struct ma_state *mas, struct maple_subtree_state *mast, unsigned char count) { @@ -2750,10 +2860,11 @@ static void mas_spanning_rebalance(struct ma_state = *mas, =20 =20 static noinline void mas_wr_spanning_rebalance(struct ma_state *mas, - struct ma_wr_state *wr_mas, struct ma_wr_state *r_wr_mas) + struct ma_wr_state *l_wr_mas, struct ma_wr_state *r_wr_mas) { struct maple_subtree_state mast; struct maple_big_node b_node; + struct maple_copy cp; unsigned char height; MA_STATE(l_mas, mas->tree, mas->index, mas->index); MA_STATE(r_mas, mas->tree, mas->index, mas->last); @@ -2765,15 +2876,26 @@ static noinline void mas_wr_spanning_rebalance(stru= ct ma_state *mas, mast.orig_l =3D &mast_l_mas; mast.orig_r =3D r_wr_mas->mas; memset(&b_node, 0, sizeof(struct maple_big_node)); - /* Copy l_mas and store the value in b_node. */ - mas_store_b_node(wr_mas, &b_node, mast.orig_l->end); - /* Copy r_mas into b_node if there is anything to copy. */ - if (mast.orig_r->max > mast.orig_r->last) - mas_mab_cp(mast.orig_r, mast.orig_r->offset, - mast.orig_r->end, &b_node, b_node.b_end + 1); - else - b_node.b_end++; + cp.s_count =3D 0; + cp_leaf_init(&cp, mas, l_wr_mas, r_wr_mas); + /* Copy left 0 - offset */ + if (l_wr_mas->mas->offset) { + unsigned char off =3D l_wr_mas->mas->offset - 1; + + append_wr_mas_cp(&cp, l_wr_mas, 0, off); + cp.src[cp.s_count - 1].max =3D cp.min - 1; + } + + init_cp_src(&cp); + + /* Copy right from offset_end + 1 to end */ + if (r_wr_mas->mas->end !=3D r_wr_mas->offset_end) + append_wr_mas_cp(&cp, r_wr_mas, r_wr_mas->offset_end + 1, + r_wr_mas->mas->end); + =20 + b_node.type =3D l_wr_mas->type; + cp_data_write(&cp, &b_node); /* Stop spanning searches by searching for just index. */ mast.orig_l->last =3D mas->index; =20 --=20 2.47.3 From nobody Sun Feb 8 07:08:28 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 64C104ADD92 for ; Wed, 21 Jan 2026 16:57:40 +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=1769014663; cv=fail; b=ZQYO3RNZXharVmTTLYkQHgXE67V5ke98KSs4c1MR8S5P8+Z+8nh7y8VDRrfhY7FeaBIT7ayRWe5Zca/3SUDI4m56HjwKyaSIUWvT6DSEbGQyFIluCZdXYquVf4W0NEslGwfZjKQAWMRdPr2ATd0zHW5RVzxorUCj/zDxAH7P0xk= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769014663; c=relaxed/simple; bh=A0h5uvUCLd/O5vrbkFTjFTKGEfy1eM7yBw0ZYG/rws8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=cp8QpuEr5O/LhLA3vnA2hn1YZR8VJPTeEsWrvN3cjpqSQF4ElazQ160Gq6YMXENGRgxVkSSwlK+J87EXrT3e6dBtFDlVzLmv21+L96Q5SIxanlp5k8O9K2ct0LbYRn1KVX0YQfpysMdg1u4z4epD2FVnC/3uncP14KXNjdAT7Uk= 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=UaEPgE0F; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=o4WOu/bK; 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="UaEPgE0F"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="o4WOu/bK" 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 60LDLNeq3029082; Wed, 21 Jan 2026 16:57:14 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=5NvHNWgh0z3jOXwBLQYSIoh1Rxui+PQGVsVsGs8wmOQ=; b= UaEPgE0FKuDX5Qj9IrrV9D3Xln4c0bZpRZTeNGKw/HHugPK3Yr32jXO2DxxN/Jz7 Xkz+B/s3H6HgVagBNrdfGyxs4X4U2qhjZeYqLUuAf1AgHiyzDyfPvhycSg6tUxgy ABjdU2Zydp+nTt9xm5NRo77nXTVslQl2j7aHRSMGQctvdipnVd+74vPVPAMGsRse to9fGE8xQ1oXKFe4C/PaDoFU9VfsYYXCY4oOnEwu5Txx2sHzDuo65RyK0H2oNw0u /TXQll0dUxk+qU+Yi57naSLjAaQGHbTpPpH4XKCP04+yVyxsgP3FxXlJKole9g7b kOKTkIy7+4572Aqe1E48OQ== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4br10vx8mk-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 21 Jan 2026 16:57: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 60LGNgJj008393; Wed, 21 Jan 2026 16:57:13 GMT Received: from ph8pr06cu001.outbound.protection.outlook.com (mail-westus3azon11012023.outbound.protection.outlook.com [40.107.209.23]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 4br0vbht22-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 21 Jan 2026 16:57:13 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=iYm6XoH4KE0mJRDI7+Wi6kJKY9Ijs9R5msE6wDsjviooLmKMC6/R4vj/4A5ZPDOBGZ38cf2++CiH9uIibVYOpHSJWfTB2oG21lb33srzji08597RcQYqGGLCwY45DlHEqO0BRI51KPv/dAjrIWLBvP3EIyIhLZ4hc7rBmb6/+Dqt/m1yvhLUtw5JPekrVf6WtXNlyTEcF5NCJpuGF/ZGKQZ4S1FUk4yT35ZrJ+hEbaGB2evzEmeEsuYUK2D4VUMFz9tFLRN3xsc1nfzgJjBn59U+ZOo5P2L9LTzp08hSx2YWfCw6Ru3EK7rj0kiauZC4TbAfgfY7HXhqi8ikF5OWOg== 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=HT8A/sXqG7/mGqek0uBTiIKA4OTE6OPOplQBrSbZPro09kMseT/cKWef4kgZWbqqZZoRhdXmCMjz/p2bJBNEcsl82kjb7IDq8D79j9b9whZmMeld8cALUTqMhQj98yKUpBrirE1CeShP1yI5rPgZlEC+tkGsH0SWfNad5PIxb5LZlOAzjG7I2Afz/coAWZX2cTtifQmD+7Y8N5ALi22lBlwAWr6XaIbYJAF8EmjBxnopWPv10+w3nprf0tHgeHhZePpVY31KN8an8XKeXVXIeX2mVkgBI3Rz1vkXO7fyB825QIhsfR4pEQVN0xlIxky5XANMsE7fietim3nlPyf5LA== 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=o4WOu/bKI70v9iDMwUKsJbjTKNOvM4iOnPIkbITmZgzeeyUn+4WwYTDLU+Z+sxy25XRiX3kSl3fuvDqMDr6DEeDE7p8sZ/pm5RkR5hcJDQFxPR4t2XrrG55AgMpWnPYW1rJmVdnE7r0ITrO8hhyMfB/SjQkY73vl5kL4vI16g5U= Received: from PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) by LV8PR10MB7727.namprd10.prod.outlook.com (2603:10b6:408:1ed::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9542.9; Wed, 21 Jan 2026 16:57: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.9542.008; Wed, 21 Jan 2026 16:57: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 v2 12/29] maple_tree: Testing update for spanning store Date: Wed, 21 Jan 2026 11:45:09 -0500 Message-ID: <20260121164526.2093265-13-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260121164526.2093265-1-Liam.Howlett@oracle.com> References: <20260121164526.2093265-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4P288CA0075.CANP288.PROD.OUTLOOK.COM (2603:10b6:b01:d0::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_|LV8PR10MB7727:EE_ X-MS-Office365-Filtering-Correlation-Id: 64878371-c013-475d-6db3-08de590e1d22 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|1800799024|366016; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?7UbQ7siAgysaSli+QZ+LTUWFsuIqLiOyVzf91mz4KXjycycI+J/hVGZhSCRt?= =?us-ascii?Q?13G3iRzeOha4lhLRgM4bTvmUsk9XKksjg9fJHZV35MzFK5qRw7Wvna0lrU49?= =?us-ascii?Q?I2/W70dbE8SzZShc9UEMbF+PREz9fKphFWWPjR6Q4t9cmeO3zdsXzoWDEWq1?= =?us-ascii?Q?GU0fYVPuQ1Z/GWLQEX+tNynh/5pZfGnGNMcDCZ7QUtRYLZy+kwqX1u7m1Uzw?= =?us-ascii?Q?bA37w0dGpUpOBM5QbOKFP/mv7rqgo6NoPUJUn65BOhHht9CJJJpgCvIqHMsP?= =?us-ascii?Q?I9Q5YfqWWOaaAqCi4hS+W9H5JXFNs0kd8iVB9vZyM2Zt1P4iDbWbu92LW5XN?= =?us-ascii?Q?VO2GrIpHc7IdWg2CLGrleXyOl47pzLHu7QgaF2EsJdBJNbHaits+29BXRbrL?= =?us-ascii?Q?TRezdaJ3dV6OkYHgvDUssVmoJ7tQkMzi36tPdhxapdp/Dfy0nVnjAnHx2coC?= =?us-ascii?Q?BWmrnJBvksDeulaLf6q4AZHz9aFyq1hESGSXRDIF939u9CH8z/4YEmzXPnJU?= =?us-ascii?Q?/iA7yaTZBMSX+BGW35oqfkS24BCxDvltAa9u4gnaeZP2s6Fo+zvOhQ4EZ2js?= =?us-ascii?Q?Lq4CyMAVa+G8GNZ8OGzqHsTk1f47IUTDQcsTO2KJ981+iDTStn0IQYPHt1Ss?= =?us-ascii?Q?eNgwqzCDB846jtW3M8s2aK8YKecXuGXH0A3yiP+VWP9e/3O2cCeZAVDw+0x0?= =?us-ascii?Q?bK41NNDSPEDeszdmMYASNpVeUjUMesSbVo/C0KRDk2FuSyz7DfB6nyvDVgFQ?= =?us-ascii?Q?SP69CuN3O0XxI+0jNZdImNDrKWc/X8AxGcWKGchXtrm8OfhAthgXj88TgK0P?= =?us-ascii?Q?fpIlBtK3VU8AHBrIlnclGdpOhu7SumOi0SIN0nCPKdIdoAfOBdKsubvI7q/g?= =?us-ascii?Q?shvgR0Eg/EMmdKUxtKAS43fRrDlKu937dGnCkFViW4amTNwkjwcqcb7OWBsE?= =?us-ascii?Q?UU0KLArMrsPESoOGh7i+JFdKT0euA8UruMT2TVkE9A2+Dz9H2uB25+mL5ArS?= =?us-ascii?Q?ua53aQjm2CMcRYUmDzEXWwJutwXXJGkt8dMmIdO9/WECgqxrAUf7Fc7P1GZ7?= =?us-ascii?Q?pTk/anE+Msu8o/+8LB/FoA3xsXhoaVZ/0zbq+L9ocZa2BcHZpJLuJT1g+L1E?= =?us-ascii?Q?OHnLpTz0gBnKSp8LZtL+MTkf8UbB20htkKjvPnLbS/EYico5l9wsZs/UYbVO?= =?us-ascii?Q?gDoFoCND3DKJRbeRTpFXA4NxZCVA/zxc07zvPeunI6mFsZPhGaPiVuRXZw0o?= =?us-ascii?Q?5tEJkLyRPERpFhuRhrA3uGBIDupwyHBmzE67uceoUQXa43bbtiMBKTuQr3Xg?= =?us-ascii?Q?TzzfMft4XNhxFY7A2vwGr844QUZTJE16IOmpGz8gs294L1s0PXLR4wOFBAz0?= =?us-ascii?Q?S7iivCh9fvTG+uh7/72PKr7PfqJM4h5Bvl42lbVREGXSAxoywwXpsyOsuafh?= =?us-ascii?Q?HfBrrun9J2rmVJ8htF0VHtRT0WwACVf7iKjZv3vUkvPpczN0Zacn+yswLBO3?= =?us-ascii?Q?QkTCZiKZLGSaDmiJYSF3lO0TFD1hT4QOoZVLxiMCfJT/qnA7HrOof5nG8fch?= =?us-ascii?Q?RzBMo9BcSgR/ENNhI78=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)(7416014)(376014)(1800799024)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?WqjpcFH/D7K5V7krVPlbMl7oys8ctJ3b9U2AQBElL4IDI5wAzzRgFFG9dtnb?= =?us-ascii?Q?mjBa01/96Ptu/1vQzpYrzp7arUhJVW1g3Igc/FgoptVg4zn37v/Eau5wmxTV?= =?us-ascii?Q?BFdXQpEIlL/gPipnaZ3luDVJKDZl/2ASyqeJPuGcDUD91UcRId3bZkV5SOOI?= =?us-ascii?Q?Wxo3drBTBomWrNUYppSRCPNDYP/5h47Zio4AxHJ9jpHbN2tuqFuFhJxPz0pp?= =?us-ascii?Q?1N5Q+myUqnIdf2X1wdwPEYg4OMuzW+cGRuA/4+ZvmY2iVrq+BUrD2SyvG1ql?= =?us-ascii?Q?GQfkQ2Yys6orvzOaWUfEifdxx/cPq8TOHBd6S4c9I8b7x4M1C/jTh4aL1uyV?= =?us-ascii?Q?6v9Rq9+010sUO/ivAgCYIufaTifOAo/h84ZmqftSvtnon9y81OZzgWb5VlN9?= =?us-ascii?Q?lMuZOdnfWCfXlXy9zzQuhu87CYhe7q5xB4Zq1DJRkEtYNilQPybWxaGYzwMn?= =?us-ascii?Q?p4JGF0JbUkboDfYtTNxVaBNAIlQSPKjzW1l58zKzxWymGgFIHk2iqGiTPxF1?= =?us-ascii?Q?Zk/iUG0oGHp84DQc4Cyna2AQ6lSR6QlNdTu8sHKPX/oUgHBqap2xkdmlQifM?= =?us-ascii?Q?tkrMR1q6BlBC/VR4VEv0lp3iZYUxWbGV3pZf1HxrnZY+kZh+57w0QMQeEgHI?= =?us-ascii?Q?gdIy3gotMt6E4CIuNi6AcMpXqTh64+VMRignWAxW0DL8L2llDWZ3Zugp8vZv?= =?us-ascii?Q?4/9o3AAkg6J/cV02INxz+AS7kA8VuNNuh05tcVqKJDRiroNHLqutq9Zuc1jU?= =?us-ascii?Q?RSkqOcOfTZYuLDPzKa9K/tptSZkBWRAz/0qBpcKKAfA3mFl3H8QV9t+DbEei?= =?us-ascii?Q?Tu1VLtTrn/lyVQ5OhcAt4ogf0WKOKESk51OMwb+4b0k6FTCcQtSSeTa3vbVv?= =?us-ascii?Q?9RrEUd4rUqXFf14nn4/cT3hcgN1G6NlaQKXOq/ZDGNfjyiBxZ1GYJm87KLEp?= =?us-ascii?Q?lcwmL6+AscEnCiWeKrtbMyr5mSpl8YI2qEjkptPeBIVaHzLaZKjiYozKlJtL?= =?us-ascii?Q?hrdGxQHT9kQi76yX56keA0CBdCQG99udWumnlskaazYDv2WO1rGUaP0V7MI8?= =?us-ascii?Q?zkpFaYV6L2BuXJ3T4YhGe9uBoFpCLl2NmnY8jhoR7gm0D1QZ2c8bRWysCCIK?= =?us-ascii?Q?GTvXo6Ex7FwqSJK2aY6NUmDfqWe2lMp8vYhGh03WTQVvsZdSnJLNM9RY2c71?= =?us-ascii?Q?GoEbnxQoJTzHuwAsudnvbQbJh6jLXjtIvzdsNm7MFHTIscTc2ZTU0O4Kko65?= =?us-ascii?Q?8Kc7ETEYKiHMbsVh9cdqlt48Z3IggzaJ/v9dNoJ4OTGPo2cHevbmBsbsyljC?= =?us-ascii?Q?03E5fQ3iAjjNh5X1rdisp9llpF0J5+76jXy5fhzl2GaAz8OIaO0f14MUNgc7?= =?us-ascii?Q?s9MOcP8h8nRlVh0jzSpz6cdhaPj6e/aDzw5CmvYLdIcy/p3scQ8GnLiCeEyL?= =?us-ascii?Q?VCrucCJ5hPFE4O+uH50nk1axL+kPXTYnrKTzcMtX5CX7DKn6PeyOuuxd0GM/?= =?us-ascii?Q?q1veCc/J5dy63Jg8oTe+zW2QhWntE5gy8+x6BohCk56mi1XUP2zzkyDknj8L?= =?us-ascii?Q?1I19UVJDBcRQUFAIekJKOKzLQNgQd7y9xyJFRfWleWjh6V1pEfkxBTdhK3Ne?= =?us-ascii?Q?mVEiB7bU9juNULPcpkU8ECZgZsIN1bu9sujr+L/JDFJxxduiGx6QgLC9CuGw?= =?us-ascii?Q?j5tlPuHytK+QpZyiYCA0yyAIExPafLUUkkaIesZ2n+SeQBVUnBJ6su+WRPnm?= =?us-ascii?Q?O/fhDvhTbQ=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: bq05/cFLRO1noF3q+VlZzqmyRZ53wu8PsJ3Qvarme4RXJXzpQLF7gS+38fMZgI8axmpMlq6lPEgfam+/FgqdbhlSgJZo82HogCMVqqeStS8Ksf3PTRQaa9+xwlbGNi2DQUFIPZ9IeKFom6h4J3il5fsVltV+hjJeA/U4lK09kzgpb9src9yAf2kEl7XFFKKFuXDp4jWxU6hjOHtDjsr7iz22VU1XlneyEXQPQsMeVxJJNp3wAWVTzan9WFwuULZWreRt8Z74GeHMhyceeo1bPUCX3As0WUWkRN8SQ7cDNiepo8yIDiuOND6xP2tzmA8+93xRQs+sDNnmK8S3q4fgc0TY59IHeNnRf/N54+7JPj89xHAyv6SRrk2PdDIHmbYZHHt7slQvz8thbBh6rlTQhuGxTKOffUE8vHcaSsd2Ph6CYIVDp2YmnO2L6rMTuzsl6H8JDyERf2l7aAAL+Ekl7wyrfYq6jilm698g3EnT0Raz9WuajV5TxGKSA1ba/o68IEuX0DtBcLwj3lnRZA9bmd1PPtFD9DK9eltp0xM+sYDzSBLihLtMvMiN+ZgPbKcyDJOk21AJ03wvN1DMtP5eJaM+TDsujnQt37fM+nfpSiw= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 64878371-c013-475d-6db3-08de590e1d22 X-MS-Exchange-CrossTenant-AuthSource: PH0PR10MB5777.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Jan 2026 16:57:08.8407 (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: GvbxTAnsOSwBPYHE8bthEY1gUnqKANZz0grbpQpMZkTSgcEPBFQ/KL5ds/ABz/Tk5yCGBKphqK2Vlc08qlYxFA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV8PR10MB7727 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.20,FMLib:17.12.100.49 definitions=2026-01-21_02,2026-01-20_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 mlxscore=0 spamscore=0 malwarescore=0 bulkscore=0 adultscore=0 phishscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2601150000 definitions=main-2601210142 X-Authority-Analysis: v=2.4 cv=H4nWAuYi c=1 sm=1 tr=0 ts=6971056a 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=t0zg3OoRVwqkdlAMXQQA:9 X-Proofpoint-GUID: VZ8nKsl1fGyedEmbz6ORs0cWBXEqRGOe X-Proofpoint-ORIG-GUID: VZ8nKsl1fGyedEmbz6ORs0cWBXEqRGOe X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTIxMDE0MyBTYWx0ZWRfX479EmmyWz0FG eVTZBv87sEs30TxLsHbRbHWO2XWi1udVXSPbmZGInqqxj8Ybrvi0vtOEMhwGDl08lw7U9Cg+LwH Montu6PtlIUcocxzH4PUWJByN0CCf4FZaacbOfK/9hE3XfWyC8NRPYOsAX6MFlHBDQl4UF9nDAs W0nm8idNs9nEqbXK6RT6DS7lyd5/R6OeoFS6SbJem1N3an5bZ7U0cehNmAYXywvmxWq0XR1tIv9 Ed5YGOnmbZ5W4oIu3WP2PdNAekedmpp4F52HWOyiMCow4m/UrvkZK1PHInCu9rKCHKaUNkgDPXS y1r6a2KJVzD5RHTaxx1Lo/pEDf8V/HohxjP1sUP3zJDzX/6yBV3+ZyNgPtYp8heJoOTbR8tE019 U/+ypRFCRILJIvBGkGKjVBGdaYLD4X0F7gF8T7qTr9Lxr7VKur9jX/QIa0EVPItE8Awugosx6hX 9o8lZ+nSYFl1Q2rfxow== 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 07:08:28 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 909224A5B17 for ; Wed, 21 Jan 2026 16:57:39 +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=1769014662; cv=fail; b=Nyw+nzkwKxgmVuE4+FvZ8LlahZY+Z4fMdB7cNulimjVXSt8uR3xZERA1vXD/1q99QcnwRu+ten4A61Q2QuOmf/FKcx1XFt7+R+KBHowDyKJwmfIGooULtnlosORNu8vLHEauRx2vft8xr7cTMczSnslennMrbgZXqQfeX0tSU60= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769014662; c=relaxed/simple; bh=J1SgX65NCbyG7WM6crTogXqltdgndXTXjQvDzSbwDqs=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=WVioYK4pX/M2my+3v0wETxkLJhLsM2RTDp/vvUTHzZHt85uV/G0bWeEECtxC2OX990MJFF9eZcGs0SISol+Vl7BkipLPLQOPdQ5OOK40vObHj5G8v2Lm4XmHKbIEnW+pSdW9gM/IuZcD+9/50Qcgm4KRVXi2kfnOOK56GfryuOc= 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=PYbD17nu; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=N25SM7QW; 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="PYbD17nu"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="N25SM7QW" 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 60LDEfgn3031860; Wed, 21 Jan 2026 16:57: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=tgkE4OW0KG6KU/HEahv4pxM8DZ5R+yPd67+MplgFSU4=; b= PYbD17nu4LgR/B5dwOgxjZnQ8pOv0mlIeBLTA5NfJxIgMCoxe7pA3EmTfI5u6PHQ ewQW16V1huU+uN6LCEcwRbGuztMZnACMzvIqsDWSIny80mVu8yv6R+8cNTjXuKRU lKLfd3LNuRNGjyDSRm06/7YmagQBEdsr45tKCmCP/qBZ8a3NWY4OaqqkfRlWJP1j QYpDmmRb6UJHyKPejMSQPzFDw3CwWyPn2N8IJ5erUwf2EsBFdUNYQleMCervOwv8 1XwUmSiidcAh5/0/+q2UW2zXO+c3BhRywOecUTS/rMsZXNynG0lAdlrW6/ru/Pwd UpJEJtOyqoZ9jPh/F+sUDw== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4br2ypx5ab-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 21 Jan 2026 16:57: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 60LGNgJk008393; Wed, 21 Jan 2026 16:57:14 GMT Received: from ph8pr06cu001.outbound.protection.outlook.com (mail-westus3azon11012023.outbound.protection.outlook.com [40.107.209.23]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 4br0vbht22-3 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 21 Jan 2026 16:57:14 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=r2KpxuuMZAqETBvddU9M8GSwMh/y7yl3z3GP+InwNVrDqmB059lORJc/6GJ3lfw8qflvL4hMANt0wJ6suXUrYBN0ZTlznMbqBs+TzfH7AtsIqmbr4ec5NJMm0I3hCTIPavrK745+R1dknTO5U1Q3BhlvqxlBb0/LSHf/WPPh8HrB2D/8pT8gEgk9BloJUvM4JFs3RFScK099bfgx2vPZTITRT3kWOriZsTcn8HyQXwQobiLq5WPax7Mx0XqD6BYFDZbZL6PJVO/y/uElUsNXVVO32yT3WrJ3sA02NpDhkDOVjnkhMig5+fVHwWt0DeXhJQgbPsSSVK6WLMbv04b3+w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=tgkE4OW0KG6KU/HEahv4pxM8DZ5R+yPd67+MplgFSU4=; b=N7p8YHUD59gaqkxO0hHNJZJU2Sutydbypr7T+eI9MAlHg2al+ymn+93QrAknYch/PaSo5EkJJtW/6gv3SDJ6BVuiuxb3idECze65GVV1E9gh/PaGAOrrn9Bk4kB9ZHs2syLuE6D3HMyGSeQfdqeTlDX/wFX0Yokg86tgyD/rGK6dsN1KylMpE9MTPm85ir5l0Yo4QShZWLi9FIv18eXn3ScA70nGQfMFLnPTEPG8vdoOtJGMIwvOyJgRr8PN0wfhahNYgaHKbxm8eML1tfuJ0+JFVf9ONRY55s5WuiGoKyN2oVmnt9STwkOwtvX2bJOzzqil1nbPAKBf/VpqnrEeTA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=tgkE4OW0KG6KU/HEahv4pxM8DZ5R+yPd67+MplgFSU4=; b=N25SM7QWl+C+ZVP7s6L1TUXabHkr8i1wlyNUXNN0REN2qb68Qxc1oo2mSVwaQzSShssUXAjD1/nfK63xHb8zVFS54Gyiz9ukJ6W+/pU8cAG+0PIPlp1pkGUbtoVxdIOoZ8TRkdoR1dlolNH5kfqqAyFvq+NaW2g/+wDejF0ZnV8= Received: from PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) by LV8PR10MB7727.namprd10.prod.outlook.com (2603:10b6:408:1ed::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9542.9; Wed, 21 Jan 2026 16:57:11 +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.9542.008; Wed, 21 Jan 2026 16:57:11 +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 v2 13/29] maple_tree: Inline mas_spanning_rebalance_loop() into mas_wr_spanning_rebalance() Date: Wed, 21 Jan 2026 11:45:10 -0500 Message-ID: <20260121164526.2093265-14-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260121164526.2093265-1-Liam.Howlett@oracle.com> References: <20260121164526.2093265-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4P288CA0076.CANP288.PROD.OUTLOOK.COM (2603:10b6:b01:d0::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_|LV8PR10MB7727:EE_ X-MS-Office365-Filtering-Correlation-Id: df9653b5-8cdc-4a6b-cadd-08de590e1e91 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|1800799024|366016; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?VH7iru4dh8Yz/9/pj5bDc9O5Nj5656/RawH6bPSs154jmY79NFPob64+zTqN?= =?us-ascii?Q?Ei2XPMHV2ONwR63CfUW4eLjTZF4Pdm3YLIINEYT7q5+jl1VY2xnW5d0bap7r?= =?us-ascii?Q?xEfNQsRnoPH/EgnShZQGtZvubPbD/M4jkcYVivFsDuVmYtHVBvVC5YB+uBIE?= =?us-ascii?Q?rEMLmq49I7ZW28f7EWG6tOdIGzD+ffoRGJGq0lFIkuKcWEPRvaE8waZbz/4k?= =?us-ascii?Q?x2PvGnThcniWOspEM9ovAlVsl+c6N8qOLyiuRnVHVIDNhArG0YfpHDH/ntzG?= =?us-ascii?Q?IXmTDaH4euo/wLwKnEdXgOnI1Xkiydapn4invpW5DZXecDMSDDP8CcToNlbG?= =?us-ascii?Q?XskvHC68hN9nuupBfJUMvfR14PvN7n7IQV+yTnLOOMKEto9MK0q6XDes8Uzw?= =?us-ascii?Q?Se5KUsCNJPlEL9uGAiHkhQpALdyG43dIwPFjYmLLJLNCR+mpbMbSx1aq3Pp3?= =?us-ascii?Q?aLYHZQsrlGilN1HCleOeFDrUOrnhHgv3x8FMq0Jy6mr9s52694bq4Bj4X/Yb?= =?us-ascii?Q?v1IqDZdaYoIMNAQbv8+tcB1vbdwz84oYibHsWcLxJfSsbHQLUfsne3Rn67is?= =?us-ascii?Q?xXEqu4+DmUNQNgq6H27if1zVweZwM5vvMowXT2ENcbnEc13wZdprBoRjcrJw?= =?us-ascii?Q?IQQZS6BG6zb1sWLl2q6+xHj6CUH8aacTRkPdllqzo1U3IEYV7VMYn30fQfDN?= =?us-ascii?Q?NkUVfEYwoQ7ySXCWLswi4IRonPEq9MrCAPW9GTCvaY1RblNviX7Qm41JUvfQ?= =?us-ascii?Q?XZSFpouLL0tejOdWnbfe1iBuYaSQ/egh5OhPkWhdc/bFmQfrCrBFWxUiN/I3?= =?us-ascii?Q?5aoJnvFH6M2ojqr3SS/jS7Us1asteNg7sgShHYwt6RszHQfUJ0TwC+eTFbEZ?= =?us-ascii?Q?kMTf+D9tz1JFYO5vnBhYztSf3bPA6Ik+Kxiz0fHss4iUjdl65Xfm6aqqJ/w9?= =?us-ascii?Q?174+4tZuzhcF7CQQcjyyKGG8GLkaiXvF8mJ7lCaQzLgrw//e/sVr/J0w2gOI?= =?us-ascii?Q?HBNrRqdRs9K0IAoCf0dUh4MSwQR97B6r0JSBWIbQMO2kuKPmPrftqh1Fy/YP?= =?us-ascii?Q?V3N1huDj5vf4e4iyBITuUKe00hUtVQMRja90u/bW+0r6RXWHsj77TDYAs9N6?= =?us-ascii?Q?9dCbUYxizHIC/EEJJPecvv5RLtmQIIC01D/jrJsaZ7eiwF87zKjo9mhYgi3C?= =?us-ascii?Q?xWOFMfdk2jfrVsUtLncp5KC7fqq813VgdpF5c24+LCD/rAmIVukLYz3OxMyu?= =?us-ascii?Q?oybxxcN8VtIRoGOqSyLVbn2yTxPUUH1OGMKwtKg4MwClFf8gE8Sa/h3vsLWt?= =?us-ascii?Q?8EBCbrzFnh0DSp7LNFzXLTsYDx0RlvDxkD6Fbmi59FlrfjQYMh2XiftwRQWC?= =?us-ascii?Q?38VRQ4RBXGNy6QQpo6xHtXzaGU0pWaQO2wx0lwnjuD2nB4ANmEDBEiZis0ZH?= =?us-ascii?Q?dUPWYlrTkkb8kjeWZeJRn3sgq+b+fOiRIYvDHBZ6QIZVd4IR0J88M6haDl3Q?= =?us-ascii?Q?2KYPiH/tNQUE+98xShDB/wmzCUpIGDDWao81c79P/IH1I1JcN48M6aLfHrzY?= =?us-ascii?Q?gvVf+LXO3ncRRXQDxag=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)(7416014)(376014)(1800799024)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?oNz21SDY1xkxm5S+DPJnoIiwNULflANQpwNuHZxhOF3ZqCV9kGwm9ZIp2c4G?= =?us-ascii?Q?y1jjW383hNans3wJDTNr21YiB1hq0DCSdsejTM78+mgvaY9P+KYBbPCNL488?= =?us-ascii?Q?cqNhEPKhtDZQ9wOvzi01rmsPDtU/k1Kt4dtVbDmHOt27AXSxMrlH/WNGvEMw?= =?us-ascii?Q?mTv5I0jm0FThteu5n10wbT5Sd9hOLGlfMD2+VHOJ33cv/QnkTpGLnGxaWaRH?= =?us-ascii?Q?bjF9gd5lZu50Uz1x5FdwA1Zg4ywPuhrJHiOui/lCItbATBCDgvghiT7VkHTT?= =?us-ascii?Q?wm2/4c3+NXvDNyinmyMcyu8eZ5svYEvPV+Kq98eqZg9ACOK+4QQeaXl6aRJh?= =?us-ascii?Q?S9oUCC+CBd5oLoPcV+ZsSldQjqVrT4uepSL+aGMxWfyJ16sGeAkI4hcDb+vm?= =?us-ascii?Q?Ed6dXjUl+Ihw+VKqGQ8DftfZJaRa75gnVLB8EXLR3nWjS8ksffsqYABIwyj3?= =?us-ascii?Q?54rqGOz6wImTBLWdNnG5nzxdC/ritp5wCnXhi1uDznu/PzMtTPq9vyCZNPiD?= =?us-ascii?Q?a3q3H6+6o9Ga/5M7J6CFBJHKKTxQdFz3OsuHf5+OyKSJbHWlkhYrkwXgtQAT?= =?us-ascii?Q?26s9DmsUqhOKIdGiN0ZrgqJRqD3sZmVh4CW3QvZnz6HOYAgA3pK8mUmX79ZB?= =?us-ascii?Q?XNP4do6wPxMwtTuS07dKXoJBt32ZFWD4oVJj9J05tw3zth0eQnDWhHPC6rr0?= =?us-ascii?Q?enw9GUng5PzwslikhzuXkRsGu/D5/IPqa9edhJVH9dpMrzZfZr8v8ERbbHsX?= =?us-ascii?Q?a5pzPfiPbU67vulMlQWyOQXPB1NblmLKDvO419UaxdDyKt5Dp8DS1gRz0qC2?= =?us-ascii?Q?6qSPWOlFgia5/apEkMA8ab072YbLhhawDmjPlAjY8ooGbeSl+Fbw8TT2WApm?= =?us-ascii?Q?CcqaRb9v/SMdG1EJ7Dxjg0+SqC8v2d70diLPQXJya8CkCKZjzwyVAurXrUpt?= =?us-ascii?Q?gFeJpElp1Mbm9Koehse61if24ZqhqnuYrDIhAg2tSRYnXJ8/YrAxHl14Jkam?= =?us-ascii?Q?0Rpb14nAzhRYzQsY4GAVhGoDStDKmFNVRKBhHyBFCY2DxbalaA+8ADWTYaPc?= =?us-ascii?Q?nAC3wSXBRufAsG8qiQSpWonrQzXrzOb1YMR3qTbju9wys/VrzrEfe2UIHq3x?= =?us-ascii?Q?XymKAyKIcmFehIahoTqhs/MOw4N6UqlMOpOrVRntmh6g5eRhJBT9/gol3p7v?= =?us-ascii?Q?0qP/xpfSdcYKPnQrlDuzGHLwp6J08XQGAJ5rjNFRqJjXiNj3BJq26d1orSBn?= =?us-ascii?Q?BlhGxz3cLv204RHtr1yhXsenpzSwxTDK6jXZzTUyxmdWP/EfUzvkyPyXANGf?= =?us-ascii?Q?cfVjFrOWkdrdZeD66qoO7x4dnVxXZmVVIYIvZlM75dt+HUUcQi9/HdoqU49E?= =?us-ascii?Q?lBkb3Q9JIchp/+QlaqF3x0NfStk8xoBt/Xw8n86z+5ffCyiPmVVswD8PODVF?= =?us-ascii?Q?UYiA2EzS0nJkF3sLwcJdtZRpdGplLDGcytaoEW1W+HKbtUHMjUkhhh8a7Mot?= =?us-ascii?Q?xoyA0vXnCp2RmkzeJXcdZZoSeBXYm+WRi4x37r79cNa7+MaUa6VV/E0ryO/h?= =?us-ascii?Q?dXACwM6C2UwTznbKaz0SJDZCL4vkdOlPUUUoISvR3oHzfgrWyMmibalA4VWF?= =?us-ascii?Q?VmILAobLHH5xRpxytZcsNjUakR2gnyEext/vbZ9lL6Ag9hkuYu+zCOO38bdG?= =?us-ascii?Q?XeQV7nIQgx6OA8CsdJdBmmhqAjuxZYFFc87tW8N6Dp2r5EOszMQfHMDwSAgK?= =?us-ascii?Q?osI6Ni8/CQ=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: qDEdqE1hsrPMHNOIFsMBgPogUq7aCZRIYS9dAuOYPSJPf49rLmN6DzN9O6j74c5S11MQuDA/fy/5tUdUjBnsudr5z5dEthEH1mnSRgmEBzLy6Vcxq0MAkaRRcW7KtOr/5gyTDykFfdIVg3VfU6x5L4TO44em6490jORZIrZxVPZRisaXgOXwxNOPyWzZqUq7kORSF5AdO4flTIPv5l6gB3y/Kox/mrmRvv/L8r82JQH7LWFR7R3qTA9uzdp9J+/jNo/fsBYJhY9RRZIGmGO8ylGVg2TNnI6DKZT5AAEVqSpYLRSjj8DcneTWq8EQBVyTT/FuW+JQnMId6kI2gzboy/F9mksc31V783/m1FQv1m5ZEnhNu24fvgKrKvRo+f067t1U7Eiv+/NQB51/3NHupC9o9Lm8jNmuHUUsl6OaWUYz6zbY4gt2pz7RLuReRYFZM6LfkAvCWdZXpMxA3z0RzhCT3fAf7LY6ChYGMoByWOV+apH/CaOC9LHD8Z1NilEAfEeb0IOYyvLsIurZdxAXfP7UtBfjNivOvGrp2RWGh2WCXpCKjYx8SdAM7p/ru2pahHGlTpnmyGjWGq+jHCNczs/x6M1jzSsD3l0I6YBFIp4= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: df9653b5-8cdc-4a6b-cadd-08de590e1e91 X-MS-Exchange-CrossTenant-AuthSource: PH0PR10MB5777.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Jan 2026 16:57:11.1401 (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: yCs0bqAF7hxTIYaYvZ6VGQ+KVw++5NhFadlwxGmTN7F8nYYsdnlKHHWaFag9I56aLEV10w2sO5GgolRVvsXc3Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV8PR10MB7727 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.20,FMLib:17.12.100.49 definitions=2026-01-21_02,2026-01-20_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 mlxscore=0 spamscore=0 malwarescore=0 bulkscore=0 adultscore=0 phishscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2601150000 definitions=main-2601210142 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTIxMDE0MyBTYWx0ZWRfX4FVnRLO9UQr1 wqeDK5zk4UyoP47kFcMAPs+wDIuGv3FNK7zJDMp7jVfeyper3xs9/U8iZJCV7HAneisBS1y9mkG /WGpEvVawmu/h6k3Q3KcwOZDWB3qTllb4DhcTBpqZk8fPO/jWY+b7Echi1S2wNfaFvpDzEWb9sQ K2/0Z+CcCG67et/Nknf/XeOFJh+/ZMbvUIr0eqyXMSI1CxRsWndMyJjdkGTFWnD6AKHTJPGKMPV 7vuZG9MjLOC1XQ5dJY6ywb41Wdk8UJ6t53KNym8ftrfA8l3adITqK0bg1CWmnZNgiE+Yqd1BqmB bbAgbTyrovPStL1/gq7bfEXmJD2ylIIsiCFPsxa3ZJC91lzueZo2ygHpYSKTl0HIRYPEq4sxhhM RRUur2PBX2iuaaZgndW7t70zc4TJndGZNVX2ZXSbFD7RrbthL+TUGQYznXFljsvesXgDk0GTTSK sANm92lGCHXveZRehvA== X-Authority-Analysis: v=2.4 cv=de6NHHXe c=1 sm=1 tr=0 ts=6971056a 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=SVrgk92_VGy3w6ovwu8A:9 X-Proofpoint-ORIG-GUID: a9wInoEQPT0l05YZAy_XLM0uotLSYl7d X-Proofpoint-GUID: a9wInoEQPT0l05YZAy_XLM0uotLSYl7d Content-Type: text/plain; charset="utf-8" Just copy the code and replace count with height. This is done to avoid affecting other code paths into mas_spanning_rebalance_loop() for the next change. No functional change intended. Signed-off-by: Liam R. Howlett --- lib/maple_tree.c | 108 ++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 107 insertions(+), 1 deletion(-) diff --git a/lib/maple_tree.c b/lib/maple_tree.c index 554fdffd6c5b9..a9b7e398c7dbd 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -2862,6 +2862,13 @@ static void mas_spanning_rebalance(struct ma_state *= mas, static noinline void mas_wr_spanning_rebalance(struct ma_state *mas, struct ma_wr_state *l_wr_mas, struct ma_wr_state *r_wr_mas) { + + unsigned char split, mid_split; + unsigned char slot =3D 0; + unsigned char new_height =3D 0; /* used if node is a new root */ + struct maple_enode *left =3D NULL, *middle =3D NULL, *right =3D NULL; + struct maple_enode *old_enode; + struct maple_subtree_state mast; struct maple_big_node b_node; struct maple_copy cp; @@ -2917,7 +2924,106 @@ static noinline void mas_wr_spanning_rebalance(stru= ct ma_state *mas, mast_spanning_rebalance(&mast); =20 height =3D mas_mt_height(mas) + 1; - mas_spanning_rebalance_loop(mas, &mast, height); + + /* + * Each level of the tree is examined and balanced, pushing data to the l= eft or + * right, or rebalancing against left or right nodes is employed to avoid + * rippling up the tree to limit the amount of churn. Once a new sub-sec= tion of + * the tree is created, there may be a mix of new and old nodes. The old= nodes + * will have the incorrect parent pointers and currently be in two trees:= the + * original tree and the partially new tree. To remedy the parent pointe= rs in + * the old tree, the new data is swapped into the active tree and a walk = down + * the tree is performed and the parent pointers are updated. + * See mas_topiary_replace() for more information. + */ + while (height--) { + mast.bn->b_end--; + mast.bn->type =3D mte_node_type(mast.orig_l->node); + split =3D mas_mab_to_node(mas, mast.bn, &left, &right, &middle, + &mid_split); + mast_set_split_parents(&mast, left, middle, right, split, + mid_split); + mast_cp_to_nodes(&mast, left, middle, right, split, mid_split); + new_height++; + + /* + * Copy data from next level in the tree to mast.bn from next + * iteration + */ + memset(mast.bn, 0, sizeof(struct maple_big_node)); + mast.bn->type =3D mte_node_type(left); + + /* Root already stored in l->node. */ + if (mas_is_root_limits(mast.l)) + goto new_root; + + mast_ascend(&mast); + mast_combine_cp_left(&mast); + mast.l->offset =3D mast.bn->b_end; + mab_set_b_end(mast.bn, mast.l, left); + mab_set_b_end(mast.bn, mast.m, middle); + mab_set_b_end(mast.bn, mast.r, right); + + /* Copy anything necessary out of the right node. */ + mast_combine_cp_right(&mast); + mast.orig_l->last =3D mast.orig_l->max; + + if (mast_sufficient(&mast)) { + if (mast_overflow(&mast)) + continue; + + if (mast.orig_l->node =3D=3D mast.orig_r->node) { + /* + * The data in b_node should be stored in one + * node and in the tree + */ + slot =3D mast.l->offset; + break; + } + + continue; + } + + /* May be a new root stored in mast.bn */ + if (mas_is_root_limits(mast.orig_l)) + break; + + mast_spanning_rebalance(&mast); + + /* rebalancing from other nodes may require another loop. */ + if (!height) + height++; + } + + mast.l->node =3D mt_mk_node(ma_mnode_ptr(mas_pop_node(mas)), + mte_node_type(mast.orig_l->node)); + + mab_mas_cp(mast.bn, 0, mt_slots[mast.bn->type] - 1, mast.l, true); + new_height++; + mas_set_parent(mas, left, mast.l->node, slot); + if (middle) + mas_set_parent(mas, middle, mast.l->node, ++slot); + + if (right) + mas_set_parent(mas, right, mast.l->node, ++slot); + + if (mas_is_root_limits(mast.l)) { +new_root: + mas_mn(mast.l)->parent =3D ma_parent_ptr(mas_tree_parent(mas)); + while (!mte_is_root(mast.orig_l->node)) + mast_ascend(&mast); + } else { + mas_mn(mast.l)->parent =3D mas_mn(mast.orig_l)->parent; + } + + old_enode =3D mast.orig_l->node; + mas->depth =3D mast.l->depth; + mas->node =3D mast.l->node; + mas->min =3D mast.l->min; + mas->max =3D mast.l->max; + mas->offset =3D mast.l->offset; + mas_wmb_replace(mas, old_enode, new_height); + mtree_range_walk(mas); } /* * mas_rebalance() - Rebalance a given node. --=20 2.47.3 From nobody Sun Feb 8 07:08:28 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 EF3044B8DE5 for ; Wed, 21 Jan 2026 16:57:44 +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=1769014667; cv=fail; b=aObPVVzc4GNBrCEWWRdPTXB0sCZHXJuJcqFEl3Jzt/TLj065c8Qjr/ZqTkPEla11bjuKJL3Z/9XNRJxWH0tc+8Au39y2oUt5wSXhfnTGmRQOlOiCNa2WDhtAZbxzJq6vcJmLXnlE+4/RqPOEIH8eMK4zSNHos/fCeqmVHHM18f4= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769014667; c=relaxed/simple; bh=O6jv8fHga4G5+7Qcr6KFSPjhCxQYkqw4KWg1GKDMn+c=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=OJuOQNKoojwn7CQVZpkV/z9InMeXJJmsJrsVkp19Aly09DTaVEvNLQ42B8k/3+hPu5NyKynpl4TU7xqOjvszZ41rzDgSw65lXW90cMMOGxijwkIAC1kcgUS6k2PLnpLe/lzHsoBjfADCS+mlJrkICcwnrtmobJduN6d7IL588HM= 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=Iz61JBY7; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=Aft8jwWG; 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="Iz61JBY7"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="Aft8jwWG" 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 60LDEfgq3031860; Wed, 21 Jan 2026 16:57:20 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=v2fiLpzpBEZoZ4g87VtBK34J8dF2qLs+qFx6Rw8FYEU=; b= Iz61JBY7V/TXbNn0gxrViIw+fTcOy3yClBcjyAFfhbwz2mmtuh+EqJ0r+17SIrUr JnZEU1rjCdLmWd/yDHwhd5xUGIDVjo3Gid2aexh5xh/yWhphlaKUPCoEzi/GsG8C WOpSQFb7wJ6F402xL24ZK4t7x9Fhzt39KCxw7w5kH7cVOuSyXUm99iBv0EYi9EM5 A+tk7ed/NaFpU/44Zr0S5G7sy88Xm3YDPGLegxzE92gYBDdg9WWhK5yAtQoDTe70 1na2+kodT0EfNchC5t49PgUAfy6iPAmUMPNOf4of+ekxceewgaf8rRdKapfYVKbG vFPIBwC38L/BiYUxfoqUNw== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4br2ypx5aj-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 21 Jan 2026 16:57:20 +0000 (GMT) Received: from pps.filterd (iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 60LG7dnp019003; Wed, 21 Jan 2026 16:57:19 GMT Received: from cy7pr03cu001.outbound.protection.outlook.com (mail-westcentralusazon11010067.outbound.protection.outlook.com [40.93.198.67]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 4bsyrsbw6x-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 21 Jan 2026 16:57:19 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=JpkRmSsdiExvgUek6x0fcFbLGzAj0e/GruD44M8oyD0OKJDhKoh/FjPoLspGh0JrDl5eyayOg+pk1XPwiwiOMLmuO8mHLILoZA/FA7UVTT9QYP0mOmfs1pKGQ4bJWkecEyInM0LlveXyRZDWh7z+UZKD3S1vPSJ9GD8npnu98S36JkJgwkTodtCOL6papiJDk5y1w2RfXMfuA0LO/DvsjRlX2yq630k2K4pW0h8gA0VCopCvLL865tImHZcJmq+xGc9xBmmi6wQDP0D7MCLgMomZeg0y/H0XNbrC//fnePdpbixIFDcMVKO3zaAVDLi1EhMV42UStXwMVd3AJuJVbg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=v2fiLpzpBEZoZ4g87VtBK34J8dF2qLs+qFx6Rw8FYEU=; b=xx9jSsUF14tYP7NVZL7rRs1LSKXenSUGebhseCUToVFZAUOQJBYjLnbPJwfGVP5Q4+jKrcA8HGKbXbbHJyjAktFhQjQAZhCWGflmdzI//taMnpd+wNIQ16I+gg/jxEAQhgUXYzDp+0/lMN2ndy4ooUssuexkoLNep0fEblfgTxuRoGLSnSh8whQ/cX6H/npHgA50N6IfthBP8tH/Z9oktWefFXigpzyPonXhQPOsulpKchHfksy1oO6KSi+/Ne7NrrPjur0bEyfYGEvv9MlWSvKoBSC0xH1I/+wNL27J8dmmXiMCthBEbldMFZPqV65Ayn55TxoudcciweOBFWHNNg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=v2fiLpzpBEZoZ4g87VtBK34J8dF2qLs+qFx6Rw8FYEU=; b=Aft8jwWGOjhZ5Oqjns0C/InvfcK++TqGgx7taccw8W89O8pxCHxRrzd4uy15fKaFtLSMa5YThxCna20D1Ceg7KP5isPQgK0CJEkItByOfiDlmlJYo8H99cR53BIcX9KFMpPd/dMzPY/t6esPF1NIaZguhObl30g25IcaumN6PKo= Received: from PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) by LV8PR10MB7727.namprd10.prod.outlook.com (2603:10b6:408:1ed::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9542.9; Wed, 21 Jan 2026 16:57:13 +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.9542.008; Wed, 21 Jan 2026 16:57:13 +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 v2 14/29] maple_tree: Change initial big node setup in mas_wr_spanning_rebalance() Date: Wed, 21 Jan 2026 11:45:11 -0500 Message-ID: <20260121164526.2093265-15-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260121164526.2093265-1-Liam.Howlett@oracle.com> References: <20260121164526.2093265-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0305.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:10e::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_|LV8PR10MB7727:EE_ X-MS-Office365-Filtering-Correlation-Id: d7cd682a-1dc0-46f9-0fd1-08de590e1fd4 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|1800799024|366016; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?4iPjtACBrWCzvC0U0Ovo4IfzRsAFsofBndW8RNJFpOZnA45kD5/ljCkWudY/?= =?us-ascii?Q?xpYxwn0cOHjzcomOesRfs4TjH/RX6EpEMatdT9wWWTay353lPfbMIAIvRxVM?= =?us-ascii?Q?wPpSlfPdUsSTA/dv+VsXmmaHivquAYe0sptABm6jpEjRqcMJvTB6WVJmCRyS?= =?us-ascii?Q?tpz5brmtQHZKVtlBd3MDCqydWFGG/9hi1TuPKK6ZECZg7esV3kAK4alYVOQZ?= =?us-ascii?Q?mRlNH3zlgy+3TKV6F6Cmw/Hp6rJ4XM73WdJle152nhBZGiunjd8jUbf5jgVa?= =?us-ascii?Q?p8D/dKIgGFmhPQN2xtBPWOzoJCvvH4HP45YejJvrZAuhRtx3b2s4Teastg+J?= =?us-ascii?Q?8XTAwuR4gyVhcnehcNxQO5pxwd6WGEHsDzYdF2zVrWeCYJMGndNsHEP1Vm9t?= =?us-ascii?Q?oJ2h5O4dlMMrNOdkKqouVNPDYVXq7E+bjDaRMfEIrmPQbYaxgXUtwMr3gYrU?= =?us-ascii?Q?eul0VgGknDhLvWtIPr9+Hsvkl0QUF41XXuc4F+dUCdlh09uo2n2E4wW8whEq?= =?us-ascii?Q?vGqBECxAcdpmuT7OkySy/J5SGL8JPV5oQmF7Afbu6GbrEJnwllaPHm0blluR?= =?us-ascii?Q?4XMQvCQtWy+8rFae0K6xbPmticfd+6eccqsSzME8hbmamyr5aA5Srm+n5+mG?= =?us-ascii?Q?fzFKU0c2SdCeP6F2MBnD087yL5cX1Pi2DfI57zhb7vF0nRiAgKLPv4KZjbtd?= =?us-ascii?Q?swcwW0H0XdwN6QVabX62d6voYIyZldCTyq2LZH5zqixjqqk8IoFrWihqYqpd?= =?us-ascii?Q?YbHtJ7QpBeFhbr51f9syy3AP/OrVo0pNUlvWyYvqnBTAtt+2xytn7JGY8mIC?= =?us-ascii?Q?MN45+ZVZ6FSTz8DvDxRDDvwebuEgqXAc18gaCR3k3V9j4Muxp/K4Jk4n9i+B?= =?us-ascii?Q?DMSz9kiO+dIG9zAkq6MldAqT/MmYaFM6RaRtNIMb77xRzBsidQb0wZ+l1Lgr?= =?us-ascii?Q?otF3zCCI3ubmWfpaj+zzWX+nT6d7hTV92DdqLWVPNyv6fizyKjioIOptFvjM?= =?us-ascii?Q?Qta8CyUpcdcdqSz43d7FejGenNCEXYJ77Rc0pvd5OavG2wG1/cKhjvS6IYK3?= =?us-ascii?Q?Kr2O1tIqdNsYfNNgGKy57REoOdwkCeHLWjbrnsriAszbpi9uhV3kJkn4vPid?= =?us-ascii?Q?fWnQHXKaBNdyqNnOI/ECPFEGQYkNKcEP5t4Sdy8juzuvD9BriWAZ7Hxf0jY8?= =?us-ascii?Q?oMejyEuDZKHR1nw8w/lyrzz+8BGAIe7jhiyE9AKf+Lj3ZhCI90jImF2O+goe?= =?us-ascii?Q?Lvdk33qqf/7t1aG80QfZIj+7cksc6USHSeLeOd6/jRgPiqtq4cUf7Sakioer?= =?us-ascii?Q?GRf1sLWnn78xCcYl7oUM3B1tfYlJSv6bFysLAF6WsDSO/N+fiPpifJkJ1Cxd?= =?us-ascii?Q?98ly5hySxIwgZqkiMQyDZuNNMXJvz6rgTSle7tKBCwqK43mz8T6rw8VUMTKv?= =?us-ascii?Q?7AHLoL7Z1IAbOVs1KnfV2WapwF2rLd49amUgRVEGvto0HvtrhSIgkVQ33WUG?= =?us-ascii?Q?oXmgGKS/vzNVFjA/jZHvY9e9EvZLlejl30kGMcSvsX4LpiVrfaTUUwExM/EQ?= =?us-ascii?Q?4+OBSF4Fn+QPioAh6Dg=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)(7416014)(376014)(1800799024)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?SMV5vkzdKbyD9ROz8kyHqLxCcjjcsWHQmB0/FST/84w4tUJaRaQkPo6FSwF6?= =?us-ascii?Q?Rumm3QPT9hdTNf3aRVeSZqlMeApNzgWk1D+bZbBy7Nt/c7mfWGAlcrhVbYK8?= =?us-ascii?Q?eedT6z1UmAePdYVmZwIFQc115+f52ZGUye2+HwGeykMhy268eNRY3v/fXfnf?= =?us-ascii?Q?qZZVvkYPZANxgpVx2rQ4+Ceiey1G3DcKyTzYrmpbeSozsU9plqadsXLONnlF?= =?us-ascii?Q?XCny1uPnbFm4Vi3CnNbbnNt/BkrgecfA9Aj58GKWIGWQGpDpNlNJicWsxFT5?= =?us-ascii?Q?/Ig5QmvBMtwTRza5X2ZQcrUyICFDN1FRm0V1GojnbrDVTxQUWckCPPFu4Fwx?= =?us-ascii?Q?31usarkkpt8HDq49pdwvL/C5ysUzX+g9o/aD2d0LCZn/2WgQR39B7hoGhWbR?= =?us-ascii?Q?DkvbE0THTxZmfexN3nupZn81I5iD36BkvYUZvrPIHn6E9VVQLKfN8heccgss?= =?us-ascii?Q?gxE2G/JWxk5GnUyfsI0jONijxsKY8Hmr1RB8mMrXR+WWspmAbWP6RuZ3eeWK?= =?us-ascii?Q?T7CA/+jvgipO0QmEcmPMuTQi57L/u7LhlvCCbcyAFuciGqlAB4F9V0GSpWSV?= =?us-ascii?Q?SFMhnkNfBLJ2kA1KeUZtrSDom6cRaaN/k+DpoAAY5XA36dGu5qerxeLxCEU6?= =?us-ascii?Q?0sVFRUlA0AsyiTI0VBOtVt9fsYvBnoXZ4Gp9yDXaotgSc7W8TQ5c1fklNWbL?= =?us-ascii?Q?z24Kr4V0QlQSQp3kMTkpCRvBmclz+zHEQZwzdqkOqz+7P80fjVDDgUQ2+z2p?= =?us-ascii?Q?6+iJ41cDDLyt6XTIUdUxcGJe/XEr8C8HaH68CDrIXzTBwkxI8qCfkecrG1O1?= =?us-ascii?Q?M3WRNk+eSyQr0FjSbQhf3LYMk09urdJ0KqbiR5CIW+KvogozCCeB4qkyYbwi?= =?us-ascii?Q?tZi+sMnFhoy4l//5fZq7syPp7kNZgED79O9guPm1hHFyQ5tU0sFjB7nJgDQ/?= =?us-ascii?Q?G155UEpRkeumbWa/1Qq/6Uis+vZ6vSFQr/ncoOGo117Szt/wGCI0Ce+kA5s+?= =?us-ascii?Q?I4DDCfJ+IQbtzzac5DsCYsb6VHjE1LyXQ926wacyYJ8m9J0xKvr5h0FEFwYy?= =?us-ascii?Q?mvroiHFT+3+46Rpmm2Rz0gnOyrt+Ool3AOfOEKKt8MGA9vRwyNaSMAwSw35N?= =?us-ascii?Q?BAItEwZMtdgMhkeFM7XUJHS5e9WVXqH8DA0YzmwFwekrCsOr+capJ2uf4eMi?= =?us-ascii?Q?BKhY3Dk5fSvXtu0I96dWSRBfzOBs65RjUys/OTxfADYSq9q4FWM4iMbno2Ka?= =?us-ascii?Q?VgKuk8zpHFj+wCW1t7HnYPTrYdbjr/lO+pSRtRnZ8dMDCgcUYmkN7iNg+zoF?= =?us-ascii?Q?7O1kKPGQDAYy6v7Y8z90lDe+FXuLm9ILZOjL0JIQI6FEs0Lks4JAndvuAC9R?= =?us-ascii?Q?RlmyMLeM4G94CCg8qyAh8qfaG32PTjQqPBVBVkbZiNYu60FXJvwznRZgiV7s?= =?us-ascii?Q?/IhkmiPmg4kF9z573UnT0gGr4oj9wpzMOVoYeSVbdhv5bdP72riOiW2kvEas?= =?us-ascii?Q?2gPGAAFJ6w1nHAkJG80Fa73B8zgHYLQIcC/IqRNhw96iUfcOmy4K3cqkv471?= =?us-ascii?Q?dbMP9rOsPmCLktHEXEkhHaEXy/kuHkKToorEayb8qZ3jtQukOGpotmFdI5rs?= =?us-ascii?Q?nesFkJO12whnYx6Aho4aTARHA7/EXoNY3CCbMPnb8UIVKnQ7Gmj2jEQSLVIP?= =?us-ascii?Q?nqxs/3FebdNqIDG8yuV4B9XcIwgmDOzCr02OGsDNNXW88bZUY/fce+IoMpyj?= =?us-ascii?Q?rW/D4UaCkw=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: +9ZTuXAyM2KmFkrxqaDomOi1ltY/+VRxW/t8vUW2K5jYSyPUQQPFSu1tlm3352JXogekRb0Rwu1yomlvLg+OH63q84JUZKRnfW4rAWdlPFiHj8QmWHAjXitGRwKCnOnFNaGIqps93dBTu5ZeGH7hUkaCjaYryebkBgs84efdXfnWPDYYbZa8Wcl0ijcj98u5XRSM7Xhqo8GVyy732sqTrh2j7hC+UnEZ/vhBOfgxDD/i8jl9aBmmHC0U/qDOnNe13LqwBfFxjUF9CVzgpcpuWl8ejH/AQDWdGr0Tt12L6SpbCaiXDVMUuW5teYDwf2a3MGgYig9N+T2kn80IQhLYhbKsBTIG1ogqkfQvstMMiVzIO+vw3YZvWZk8pZcgfzsWZ+UnpJhZ2lMTvWNmznYhTysDlagwshKSK0i8loY5BSzKfS9UEyqniVRM2KyrgP2dwmJi/V6R8OIHPJeHjMRpcmnM2MP+zPlNaKsJyR3ssyj4qndYu8BNbAdRgtjITPfFTEj9A+keShgxhrN2msjFMPczax02/xB2eFGmmN1hNQ+IV0BUFAg3Vc4Prguyq6lDomhqOey5fYhHFUr36xccF3hvkEX3vjQUxLLHphVrIbM= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: d7cd682a-1dc0-46f9-0fd1-08de590e1fd4 X-MS-Exchange-CrossTenant-AuthSource: PH0PR10MB5777.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Jan 2026 16:57:13.2711 (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: RyrsKXGL90JdQR096ZdbyaXbCnbKn2jAcqQL9FY4wMWgWPZbF6dxC4L/b6fygyH9QXLWkw664Bbbb1TByoFPWA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV8PR10MB7727 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.20,FMLib:17.12.100.49 definitions=2026-01-21_02,2026-01-20_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 phishscore=0 adultscore=0 malwarescore=0 bulkscore=0 suspectscore=0 mlxscore=0 spamscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2601150000 definitions=main-2601210142 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTIxMDE0MyBTYWx0ZWRfXxlyzaIbFvCOH ZBXbKv3EzDIH2IKAZcx1mB8nVqDFBqbuIYssWkvLVrn91OQZfJUfR+Y6fBvGWR8oF/Ddy/SVw7l Kv8luMnQXm82Qi+G1a8aJq9bKv8X3WqUhsFZlKUpz4SNpgVgHiFR6lJb0eM9cIqQ4iunkXfu5V9 cE97b/UWIoYtXWnBSR9g6NHRY6X1PEj2MNq0MCPuEGFE6/0qaSS6BwvNTs3kq3E3o5c1bRRa98V 1dcfUQmVzA9qmh/KkZ4iNJEEO/JVaPIpdai4y7SPayvrZRzvtamy6/FZUb2VuKqygYCEtfjZR+6 01U2RytWETkkDs1J4/NQ9Xowf+VRPM5ZIPseiyYDtWnnNKMPBWDezAZAhXnuGxY39LVHnf4ogoo BeZccsRLy/EYTNuNarHS8YAIlH5uPz7V6r1mglF1c2sn4DmgR2fHpxCf3FVqYghzMBDg8/DfebJ yIaoKjsn9+bUv1Wd+G9HGF4dkpxpGxmyAsIHL5do= X-Authority-Analysis: v=2.4 cv=de6NHHXe c=1 sm=1 tr=0 ts=69710570 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=Dk5oX4W92Jz44JyhfwQA:9 cc=ntf awl=host:12104 X-Proofpoint-ORIG-GUID: uosasmDj4u3YHV58EPPRNmfLvHxy7i3B X-Proofpoint-GUID: uosasmDj4u3YHV58EPPRNmfLvHxy7i3B Content-Type: text/plain; charset="utf-8" Instead of copying the data into the big node and finding out that the data may need to be moved or appended to, calculate the data space up front (in the maple copy node) and set up another source for the copy. The additional copy source is tracked in the maple state sib (short for sibling), and is put into the maple write states for future operations after the data is in the big node. To facilitate the newly moved node, some initial setup of the maple subtree state are relocated after the potential shift caused by the new way of rebalancing against a sibling. Signed-off-by: Liam R. Howlett --- include/linux/maple_tree.h | 1 + lib/maple_tree.c | 175 ++++++++++++++++++++++++++++++++----- 2 files changed, 153 insertions(+), 23 deletions(-) diff --git a/include/linux/maple_tree.h b/include/linux/maple_tree.h index 9bc7fa89bc2ee..e99e16ac1c6da 100644 --- a/include/linux/maple_tree.h +++ b/include/linux/maple_tree.h @@ -177,6 +177,7 @@ struct maple_copy { =20 /*Avoid passing these around */ unsigned char s_count; + unsigned char data; }; =20 /** diff --git a/lib/maple_tree.c b/lib/maple_tree.c index a9b7e398c7dbd..0d6f810a4a1fc 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -1304,6 +1304,18 @@ static inline unsigned char mas_data_end(struct ma_s= tate *mas) return mt_pivots[type]; } =20 +static inline +void wr_mas_setup(struct ma_wr_state *wr_mas, struct ma_state *mas) +{ + wr_mas->node =3D mas_mn(mas); + wr_mas->type =3D mte_node_type(mas->node); + wr_mas->pivots =3D ma_pivots(wr_mas->node, wr_mas->type); + wr_mas->slots =3D ma_slots(wr_mas->node, wr_mas->type); + wr_mas->r_min =3D mas_safe_min(mas, wr_mas->pivots, mas->offset); + wr_mas->r_max =3D mas_safe_pivot(mas, wr_mas->pivots, mas->offset, + wr_mas->type); +} + /* * mas_leaf_max_gap() - Returns the largest gap in a leaf node * @mas: the maple state @@ -2258,6 +2270,44 @@ static inline void mte_mid_split_check(struct maple_= enode **l, *split =3D mid_split; } =20 +static inline +void spanning_sib(struct ma_wr_state *l_wr_mas, + struct ma_wr_state *r_wr_mas, struct ma_state *nneighbour) +{ + struct ma_state l_tmp =3D *l_wr_mas->mas; + struct ma_state r_tmp =3D *r_wr_mas->mas; + unsigned char depth =3D 0; + + do { + mas_ascend(&r_tmp); + mas_ascend(&l_tmp); + depth++; + if (r_tmp.offset < mas_data_end(&r_tmp)) { + r_tmp.offset++; + mas_descend(&r_tmp); + r_tmp.offset =3D 0; + while (--depth) + mas_descend(&r_tmp); + + r_tmp.end =3D mas_data_end(&r_tmp); + *nneighbour =3D r_tmp; + return; + } else if (l_tmp.offset) { + l_tmp.offset--; + do { + mas_descend(&l_tmp); + l_tmp.offset =3D mas_data_end(&l_tmp); + } while (--depth); + + l_tmp.end =3D l_tmp.offset; + *nneighbour =3D l_tmp; + return; + } + } while (!mte_is_root(r_tmp.node)); + + WARN_ON_ONCE(1); +} + /* * mast_set_split_parents() - Helper function to set three nodes parents. = Slot * is taken from @mast->l. @@ -2642,6 +2692,49 @@ static inline void cp_leaf_init(struct maple_copy *c= p, cp->end =3D end; } =20 +/* + * cp_data_calc() - Calculate the size of the data (1 indexed). + * @cp: The maple copy struct with the new data populated. + * @l_wr_mas: The maple write state containing the data to the left of the= write + * @r_wr_mas: The maple write state containing the data to the right of the + * write + * + * cp->data is a size (not indexed by 0). + */ +static inline void cp_data_calc(struct maple_copy *cp, + struct ma_wr_state *l_wr_mas, struct ma_wr_state *r_wr_mas) +{ + + /* Add 1 every time for the 0th element */ + cp->data =3D l_wr_mas->mas->offset; + /* Add the new data and any partial overwrites */ + cp->data +=3D cp->end + 1; + /* Data from right (offset + 1 to end), +1 for zero */ + cp->data +=3D r_wr_mas->mas->end - r_wr_mas->offset_end; +} + +static inline void append_mas_cp(struct maple_copy *cp, + struct ma_state *mas, unsigned char start, unsigned char end) +{ + struct maple_node *node; + enum maple_type mt; + unsigned char count; + + count =3D cp->s_count; + node =3D mas_mn(mas); + mt =3D mte_node_type(mas->node); + cp->src[count].node =3D node; + cp->src[count].mt =3D mt; + if (mas->end <=3D end) + cp->src[count].max =3D mas->max; + else + cp->src[count].max =3D ma_pivots(node, mt)[end]; + + cp->src[count].start =3D start; + cp->src[count].end =3D end; + cp->s_count++; +} + static inline void append_wr_mas_cp(struct maple_copy *cp, struct ma_wr_state *wr_mas, unsigned char start, unsigned char end) { @@ -2670,6 +2763,42 @@ static inline void init_cp_src(struct maple_copy *cp) cp->s_count++; } =20 +/* + * multi_src_setup() - Set the @cp node up with multiple sources to copy f= rom. + * @cp: The maple copy node + * @l_wr_mas: The left write maple state + * @r_wr_mas: The right write maple state + * @sib: The sibling maple state + * + * Note: @sib->end =3D=3D 0 indicates no sibling will be used. + */ +static inline +void multi_src_setup(struct maple_copy *cp, struct ma_wr_state *l_wr_mas, + struct ma_wr_state *r_wr_mas, struct ma_state *sib) +{ + cp->s_count =3D 0; + if (sib->end && sib->max < l_wr_mas->mas->min) + append_mas_cp(cp, sib, 0, sib->end); + + /* Copy left 0 - offset */ + if (l_wr_mas->mas->offset) { + unsigned char off =3D l_wr_mas->mas->offset - 1; + + append_wr_mas_cp(cp, l_wr_mas, 0, off); + cp->src[cp->s_count - 1].max =3D cp->min - 1; + } + + init_cp_src(cp); + + /* Copy right either from offset or offset + 1 pending on r_max */ + if (r_wr_mas->mas->end !=3D r_wr_mas->offset_end) + append_wr_mas_cp(cp, r_wr_mas, r_wr_mas->offset_end + 1, + r_wr_mas->mas->end); + + if (sib->end && sib->min > r_wr_mas->mas->max) + append_mas_cp(cp, sib, 0, sib->end); +} + static inline void cp_data_write(struct maple_copy *cp, struct maple_big_node *b_node) { @@ -2873,36 +3002,42 @@ static noinline void mas_wr_spanning_rebalance(stru= ct ma_state *mas, struct maple_big_node b_node; struct maple_copy cp; unsigned char height; + struct ma_state sib; MA_STATE(l_mas, mas->tree, mas->index, mas->index); MA_STATE(r_mas, mas->tree, mas->index, mas->last); MA_STATE(m_mas, mas->tree, mas->index, mas->index); MA_STATE(mast_l_mas, NULL, 0, 0); =20 =20 - mast_l_mas =3D *mas; - mast.orig_l =3D &mast_l_mas; - mast.orig_r =3D r_wr_mas->mas; memset(&b_node, 0, sizeof(struct maple_big_node)); + mast_l_mas =3D *mas; cp.s_count =3D 0; cp_leaf_init(&cp, mas, l_wr_mas, r_wr_mas); - /* Copy left 0 - offset */ - if (l_wr_mas->mas->offset) { - unsigned char off =3D l_wr_mas->mas->offset - 1; - - append_wr_mas_cp(&cp, l_wr_mas, 0, off); - cp.src[cp.s_count - 1].max =3D cp.min - 1; + cp_data_calc(&cp, l_wr_mas, r_wr_mas); + if (((l_wr_mas->mas->min !=3D 0) || (r_wr_mas->mas->max !=3D ULONG_MAX)) = && + (cp.data <=3D mt_min_slots[l_wr_mas->type])) { + spanning_sib(l_wr_mas, r_wr_mas, &sib); + cp.data +=3D sib.end + 1; + } else { + sib.end =3D 0; } =20 - init_cp_src(&cp); - - /* Copy right from offset_end + 1 to end */ - if (r_wr_mas->mas->end !=3D r_wr_mas->offset_end) - append_wr_mas_cp(&cp, r_wr_mas, r_wr_mas->offset_end + 1, - r_wr_mas->mas->end); - - + multi_src_setup(&cp, l_wr_mas, r_wr_mas, &sib); b_node.type =3D l_wr_mas->type; cp_data_write(&cp, &b_node); + if (sib.end) { + if (sib.max < l_wr_mas->mas->min) { + *l_wr_mas->mas =3D sib; + wr_mas_setup(l_wr_mas, &sib); + mast_l_mas =3D sib; + } else { + *r_wr_mas->mas =3D sib; + wr_mas_setup(r_wr_mas, &sib); + } + } + + mast.orig_l =3D &mast_l_mas; + mast.orig_r =3D r_wr_mas->mas; /* Stop spanning searches by searching for just index. */ mast.orig_l->last =3D mas->index; =20 @@ -2917,12 +3052,6 @@ static noinline void mas_wr_spanning_rebalance(struc= t ma_state *mas, mast.m =3D &m_mas; mast.r =3D &r_mas; l_mas.status =3D r_mas.status =3D m_mas.status =3D ma_none; - - /* Check if this is not root and has sufficient data. */ - if (((mast.orig_l->min !=3D 0) || (mast.orig_r->max !=3D ULONG_MAX)) && - unlikely(mast.bn->b_end <=3D mt_min_slots[mast.bn->type])) - mast_spanning_rebalance(&mast); - height =3D mas_mt_height(mas) + 1; =20 /* --=20 2.47.3 From nobody Sun Feb 8 07:08:28 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 DE84B4ADDA4 for ; Wed, 21 Jan 2026 16:57:44 +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=1769014667; cv=fail; b=hlKb7wBbj2JsCnG5tyq5COzXDrAKIJsFrY2woAxEfqAkYW5mIX1JtxA+JDasFjKBtRV/Iiepg82o5pP2o1W6amvyXZQiz/yDXsyeTUUGytM5q8mBW/cKDntEbffGfqb5hd1S0WuGrksd88Mcz39LIp0llnkB3Pj+7ZVWY6Di8FY= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769014667; c=relaxed/simple; bh=YmRtXBhufaSugN8olQGEzXV50mM5LSmmSbzPfMY43h8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=EBuMkHu8RqN1WPhJpebpwqMImdbnJj/MLhJOnlDlEb5Ly6fr9tcQWxv5p42K9J+7JScWql8tanQAktwzJ3nu8Z+FQEvt9QLVDGq4T6VsHDtEFSg4rOWwA/cKqcL64TLnbnuLmYF0cTNsLX8WyhwC88L7RZCOX67ZWdyYFeypQ1c= 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=AWu25kiB; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=CRqiAEqX; 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="AWu25kiB"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="CRqiAEqX" 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 60LE6JZQ3418790; Wed, 21 Jan 2026 16:57:20 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=a09mnnTsWNk8ZDi1O5yzp+1ctxr1LUvOzgOJrfdz7X0=; b= AWu25kiBPglGwLRXrG7xFBGfn55ZDXHEiBOXDTUEuSMAXXYfRvQUTvQDVVKOWh54 QIIg5DYAMnILJ8sWMrz2S1sPLSavjDdEmPuS5yFt6o1eUGnCjHgxhBLXKObAxmNo ZT1sj8dwB5SpWq1/LmlDXCs3GPqojsiemJiqoy83ddGlmewSSAU1AzbRbscHXlCm 8boesNzCJNWIt/9UPEL+nsxHAQq6liuIlIJSjDQs5kU8LaGL/KzSUBtydX/xDwXi qQvBY2VqvV6+JNRCq5fW4e11qjfif6GnZKdGYPyQOC0ngwg6cmiW/FV0AFSlOI/d nu5nyoLWjhbSbmZkftHMjA== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4br0u9pe7f-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 21 Jan 2026 16:57:20 +0000 (GMT) Received: from pps.filterd (iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 60LG7dnr019003; Wed, 21 Jan 2026 16:57:19 GMT Received: from cy7pr03cu001.outbound.protection.outlook.com (mail-westcentralusazon11010067.outbound.protection.outlook.com [40.93.198.67]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 4bsyrsbw6x-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 21 Jan 2026 16:57:19 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=hH5sPSoJ4ysbBzRAJxypcp323wCxI+85WzIndQsyKRgpAPvPCcMvTYM/cClRujL7k1UqroRcxw3rl9FWcw/3gUrMRJZGGNopy/nzoqDpfyUQG99fHMlU9S1W5wcjunaM71/7OMW7qf9R9qdsqhAVwMf9uIA/ydQhNzTYyOvGwrq/CIC5CoLW1jVv5HXNCLtH9spJDuBJH1YKNsXi79QrBX6VQNTewT3z/egLtgio0/drtLuh2K5kw6Rc/rDpGPEO8EqpdTmhCxTb84yzBq6tfuBBG1n/FRjJcf0XldH7PmXconYhS7ahgnxEATeq94SHcXXycySuNNNv5gJ61XwKPA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=a09mnnTsWNk8ZDi1O5yzp+1ctxr1LUvOzgOJrfdz7X0=; b=M+dS/+jSCH9+FbFtmP8Jy0rFw3nGtWAhbEWwSpEbQUHi+FHd+CJeGKaH3Wp8WCJ6ZOWNzdHvLNHICUeHzKjjNt8Ou6IrXb1Pjcmw0qUGuYV/2rnv178uyLyFJNzcO7e5T8TJ/O4yJJQsa+rQQi/Y5xXI9h4O0amrriLK7LXQ4YtmLkgmeWEn3s86MdbTiza/suyPABO0i2c0OHQBGa2blhdpjjiY08i1NoA8jltklTYxfvvPsWXoBMARWvAXCMPF1tKABnDFA4RtOFkfWTdq3hMpMKzKPNgPNW1in6tuBKzAWSSEk04Ya8R1CpMLGdInGb55iOGPnxQRJZcrStNYQg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=a09mnnTsWNk8ZDi1O5yzp+1ctxr1LUvOzgOJrfdz7X0=; b=CRqiAEqX+VhleaVlSRjKwj/dr352bL84UuL9YmI7q8VoLZM0fbBcSwcBdUtYvXU4sxPdnYevNdN5wjqa8mke+52JPQoruXSp7JARbYAxV8KHRIXAqgEli5yBgxpfn4q7diSSBpbM7jg4hviZ36Y569zGIjP2GIEE/cSEHnu28KU= Received: from PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) by LV8PR10MB7727.namprd10.prod.outlook.com (2603:10b6:408:1ed::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9542.9; Wed, 21 Jan 2026 16:57:16 +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.9542.008; Wed, 21 Jan 2026 16:57: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 v2 15/29] maple_tree: Introduce ma_leaf_max_gap() Date: Wed, 21 Jan 2026 11:45:12 -0500 Message-ID: <20260121164526.2093265-16-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260121164526.2093265-1-Liam.Howlett@oracle.com> References: <20260121164526.2093265-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0289.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:10e::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_|LV8PR10MB7727:EE_ X-MS-Office365-Filtering-Correlation-Id: 54a4d0f7-c006-43bd-2f89-08de590e212d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|1800799024|366016; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?9gjJTDc5gc8pSrqifuX5kV5JHw/uXXJ/LqHYzRnW8jOewQEH9JmcEM/7xJPD?= =?us-ascii?Q?v6DERtdXNQ+jSN/HWwJVSo8Kjly+RafIR6dLYSd0lhLtAQeXWjQEwCQkfx4l?= =?us-ascii?Q?muVRNXGBGBzo5pUwOTguJER0nFdsPinJO8pbOwEWcPYHaSVMtSifw0lDCZmT?= =?us-ascii?Q?dW2OZX518jL0rz25Bo2qG2SBJnAMQyBoTcl+73itOqedXmTOW/K+QD8Ys5Vr?= =?us-ascii?Q?rTsG2vy+K8RqDrDuL1AvSIJQlMz8BlWHavD06Yf1xfVvCSIMbhfodoszdUeR?= =?us-ascii?Q?q+6xYT3OmUTTGcdC9Gi9O4TuKE0O0I3IyqCXVSn10q5E/kf/vOUNWFmnZxRy?= =?us-ascii?Q?1YDftlKp6bo17Rui3CDoWU4cJFa3LJKO+un8l0nklGbFSPy3flqzCLVL5iOR?= =?us-ascii?Q?BBG2VMv7P8ow1MrYwuBVCyJ5jNahNt8DtpXY2uZHIGD2StFQutArjvlxMxyo?= =?us-ascii?Q?Lgjg4YP9JD6BfGH3kAeXuAeZWFkC97zPlR6gX1OEsA8waUv4ymI7P/BHcmtl?= =?us-ascii?Q?YzFpgAaZj4WiwazS9z6gEUvEk00mVGlb5m96++KMMQYbBZr/Mu+h8OJAR/kw?= =?us-ascii?Q?LJxvx/mhpeJp4EBSwedVdoXYA66f5/y3SvR8tAPoT/c03ErN9bJ9ozp4bG8S?= =?us-ascii?Q?OTbxeQSqBPMkCsOI9VTv4z248yeDGl5p1IlgTe1RtT+wGIpO15wRd4u+m3Jo?= =?us-ascii?Q?fc6awUcd/jmQngobwOes9mtpKJW+F7vJEab1yx97msiPg+IMg5RySXyOgp3H?= =?us-ascii?Q?9PotD/SOO6Bcg6uGqFzt7SZJt3ErfN3+DTtdWswzS5tH28Dyu+SNv7j2t1gz?= =?us-ascii?Q?oRdGe7NfBWYOkOc5Q8IBsm4SbjxaEnxF0AjUzzu8AKuCbbGsZt9w7bS3iR+Q?= =?us-ascii?Q?MoH3RitUIaYvBDOmEBbPQWT9M7KZYNK24vXpmLyxpBccQaXOiMxZNtTFpeyX?= =?us-ascii?Q?bXfHKNBbs7f63R55a6oZEewmLbTUHmkoO/54RXMMyrdnb6Gz7lSWW34wwLl/?= =?us-ascii?Q?I5t478wx06ro32bfVb5x4WhbK+resYGCtsdwmn49VME1t0tgDsbAnj9YsKy9?= =?us-ascii?Q?ZfREedXYp73m57x2qTY8jPvx8C5zoOHdAXgTHHoy8DelxxSmG9w7nBwAd416?= =?us-ascii?Q?R0nzyWNzE1oCKWO/8SkvfGG8K7GagJ9wfjIKAzfgG5OrIB0idfJOhMbD8/vt?= =?us-ascii?Q?+dyvK5liwdTCWnTfpxZVg2tWCUlFQkSJhqv14WQlYmTfzWaBTsHRudLEqUkR?= =?us-ascii?Q?+JjNnS0ctaPznjrwOMVAE7mNXcMV8YB13GdOCTn8rGSrC0lS9ILCSoThJZEK?= =?us-ascii?Q?YIGlum60HhV/EZ2m5QhKhM1IhQAchfz7MuWzriPntxX4kwt/jgU0L8E34GxU?= =?us-ascii?Q?lPtG4qjGulWObk7HpuXdhkf+M4PTiUMYUqJjbFwDLlzmQTjBJIHx0Ouzu461?= =?us-ascii?Q?JjMJ6lbHgUhJ8kaSpSQLejPaqAUZgkTHYbxIIEu++SKw+NSzY+2QytLelvWG?= =?us-ascii?Q?VZFLVr7yAOv/Z79Wj2+mTRjOmxgLRl0sMBofMlWTMRpkoxK3WbRhnsgdh5R8?= =?us-ascii?Q?2kiCaMz84ZU0ekWl6MI=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)(7416014)(376014)(1800799024)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?enUxt8SpuPy9h2bp6v9//Q6wfWV/rMDn3K5EvjZOD6FShhwZr05K8B3cdrDQ?= =?us-ascii?Q?DIAm7ortJrJhD60TvKIHFcoo+BHb8RzzwfNk3/dpi5DumHy7Ohn6+TKnI73s?= =?us-ascii?Q?be8sfp6Mhsg9ieGsgpnfGlVOtBhBzWH+NOUdOS1NJY0AcCKo0wdcsu+lVSfx?= =?us-ascii?Q?uH+mSOEn8XnjY7zaN2yYEfnGjAFPSLGlNYAV/RRWcxklqZeqkSEfSN55mAI7?= =?us-ascii?Q?OBgfIFc8NpKX4fH3fdOhXo21P82/pZtPeCCyQm8R1ernLW59l42rEGlBvYY1?= =?us-ascii?Q?XRhi4V0Y6DLlfBT4YiZFq+0dfA70HGDIo1o2xgeI8HYvk+M9V51NUuryPsDl?= =?us-ascii?Q?xJy2V/yK/giWv5hL9ErTKHbal/dS26NWM4cjBO2yrBw36/iq8cFvzFlteNh9?= =?us-ascii?Q?THxuE+OXh8JmP/gufqVBeiQmgzLcIawMfNeqE5bljcrAlu1Lwb5Q8rUELW5z?= =?us-ascii?Q?FoOwHoF0DNZx6Rt8WnS7dJObkC1cmdZrdvnGlCbCZLrzEi3QO3xWmBetzcuM?= =?us-ascii?Q?O8/F81aRGl7INgMzZrE9+IkzZ8/M9Oh1WyeFuHQIv2AvLx4Sbq4yn5ZvlpYe?= =?us-ascii?Q?K4NdsK6wt0awGLN3ioRY5Vp+euGfGmq9baJ1d6o0mAv0M55Avfm20lR1YrA2?= =?us-ascii?Q?ipxrfExYKsc+MC5PqCsxDQf3GLN7+vQyqalpnVO9+frj0/4y2QG/9kAgY611?= =?us-ascii?Q?VjDgYZbfyEcEyufVxnMuKGXju2Wxdx7KZyWU8UCPjLMnlJAXdFue5tlbsUvA?= =?us-ascii?Q?lI+qW0xSj3gyw1r1Ig0KoqtjCMwF3OjPXupP6FkbGI4VfHkRY68ynfKcEdIC?= =?us-ascii?Q?9yssOmJLyDOLl7RYkptHZWSWBwtCxSS5iaR3IuHqathL9U7t1u3Cu6SeJDef?= =?us-ascii?Q?3NU99WmApuS4VQlntlacM/HzmgYACMZ+tJEW1IeP1TjCW7gIeXm7gNNx3uZg?= =?us-ascii?Q?Z0QeizTJ9UbmqKuWrrvUn0rDnH2ukVn4wOiJKXMaUfXLl5lrkL6WI8Fv7xGx?= =?us-ascii?Q?Q3aX0y1u9StIxUaB+vfJDL8W7lgN3dmQ8pGIgZcgmGsKvmicU15KwQkfE9sD?= =?us-ascii?Q?Zz7DMJwP642a9hPCbwP/hC04DVyU3MqJo14aysvA/mLNhj5zAdZOE2zSG4DC?= =?us-ascii?Q?S2pX7SvloMFkPxc0b517jjly1dwoZOTDojZ3HVdiL+r2YaxG1D+3yH22hpKC?= =?us-ascii?Q?gPiKXwv5KjP0NkCIb13cJzsPgmYonM6oKG6qVULfxNyvs7hpxg69ZuaPRPoc?= =?us-ascii?Q?gY5V9Vov4yP1wVWesc1WGduWuuHshHhRH3hMw4JHf6/dUU0IIRrU5RsDTMhL?= =?us-ascii?Q?+6YBMcc2dk0PQSil+e0fRUFqqI1FM06398Y3EkhTLBxBrQIO2UuSRhqW67c7?= =?us-ascii?Q?58l01PuIHwvoMwhw4hSMwzqwwW0dYpOnRTB8oEiLeEgX5N1ALhFMPIDtARh0?= =?us-ascii?Q?zkz0Iou6h4fyUrbrYwyUfDTC/q+2p+1unezbusPTMV7Ml9wenE5tLVUT464b?= =?us-ascii?Q?3kJL+IgPH29Rpu8p+H8TZAozP+qbJh4LvGpuNOGFagC8vY8iZjxYuJZM4/Qn?= =?us-ascii?Q?h29tdPmjUZoU+nAqo8P7kM9Q1Gzb/W3ejBC04AAxNWvIqR8YeYSjrjUfwmrW?= =?us-ascii?Q?TYGFcKZ9Jh0miMJpDNziszhIcxWFmDLCdlqPt4qcbg8fzGBjHmdqeKAkxqFC?= =?us-ascii?Q?EXOa9Gz1twhyUMhG1NCHKtgOTrO1GPE/cH0cywGHpnOo3f1tyUDUGnQIK+Wa?= =?us-ascii?Q?l6zC9Zoe1g=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: L3M8nE+BvFvrg3ZBJxnhJdNXiunNdHmh9Q8jCHydRSyUOllS68TyewkE/cL37c1IVQie0LRI88QTD0+qdsR3j5xxuGbT/BMoNpK9lKgimNvE4juY++gu63Aq32HGdJj7D8VEGuZL457FBKL9yDC8CwxWWf9wjeUPdX1ChQVHZ6iDfJ1/5GQ18ujuyWCiBlT0fTq0m5Vnh9l6EGOYlSCjKQYvKuDlOmIIRgXA890hXhfUNgPSH1U0ddznZZmueJKAZQoBhaGhdr3NIJNuSGrV17/eksTKdfxoe7uSYJfroaxkC0/xAfR8fJko7MWQKh2jkjKzLP6RQMzxFx/eBGEmTwFyer2bomLgRt4TeuEBGgVPdJ9q+vDy8lgrksLNBDZpz6fKxq0gySXoOwk6YgnkA1AUsH2zU09c4JTochj0M2Zn7m8BhC+tLLKRPF0pWX/Yya3q0wS5oWZDZsVqfgwAJX2IM42frEL2Y8GKHUYigwNX1ku9rqbfukDtpzmLhkQ6dyGYj//Om2m1VYehGM0LZTAp6/ceODo7IV98YvwpxigXDIRyImPGyUNfGBxZGdIPynu/MPBKL/cJPqZxfYK6F07XdkvUQUdI2OHjwhWsWOA= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 54a4d0f7-c006-43bd-2f89-08de590e212d X-MS-Exchange-CrossTenant-AuthSource: PH0PR10MB5777.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Jan 2026 16:57:15.5207 (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: 2ry/px9Q/gSZPbKHbhwIg1dfjxcgGPBkl5m4naM60OWG6h8M8L9+HxQDy7Lq5kfX0uAUjtXvofcwby0/biJGaQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV8PR10MB7727 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.20,FMLib:17.12.100.49 definitions=2026-01-21_02,2026-01-20_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 phishscore=0 adultscore=0 malwarescore=0 bulkscore=0 suspectscore=0 mlxscore=0 spamscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2601150000 definitions=main-2601210142 X-Authority-Analysis: v=2.4 cv=OJUqHCaB c=1 sm=1 tr=0 ts=69710570 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=-3J-9aNdBi9tGdEVLXQA:9 cc=ntf awl=host:12104 X-Proofpoint-GUID: _XOcHqFxbAPkeRwKxKNsqfgZIF60Cf_B X-Proofpoint-ORIG-GUID: _XOcHqFxbAPkeRwKxKNsqfgZIF60Cf_B X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTIxMDE0MyBTYWx0ZWRfX5M5yNMU/x6nM aPukUjCJcT6yX4ZKHXdY5OYQ+iC0olvW1h3ZZlre/JWoJkTptX77EIx9Ho939T+XhEFh/iUWIRu e/mkdpUucbW0lqGM6VGbi8/YUH52dEMBJsO0jHih1x5n062aRtliZEWlFJ+RMvxTpLFrdziA+OU bsXVcWe52TAokunizg5/BWvphAQ79lZdkeFlKdOdiO8JktRiX8vOp4l2ARHDC9y4IkRxvwXJSBQ VPLfg4s63ypPcwCyhLQ0JKcNSYwkWpRZc/zSsWaVA/A7sa0RPVu6Q1nhw0KuKEi99x18d4RFAXl 8xGd/BUIl2b0mYln+CgOsJNDdPDV3gCqM9aB6Jcz2C0BP0swvkkwrUNq/nSuxQAgvqOWKarCFdY meqp45N8AzRRX5a9qczV8JxRXVCJzASZhkcZ7oPAKNA+nJfaeAA8cjX2b/ongDP4vW3dx/FWlXv NE6sNh/4PrHxRMmFLMp1ENUogXPse/sXsHTEngxA= Content-Type: text/plain; charset="utf-8" This is the same as mas_leaf_max_gap(), but the information necessary is known without a maple state in future code. Adding this function now simplifies the review for a subsequent patch. Signed-off-by: Liam R. Howlett --- lib/maple_tree.c | 48 ++++++++++++++++++++++++++++-------------------- 1 file changed, 28 insertions(+), 20 deletions(-) diff --git a/lib/maple_tree.c b/lib/maple_tree.c index 0d6f810a4a1fc..499cae720251f 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -1315,26 +1315,14 @@ void wr_mas_setup(struct ma_wr_state *wr_mas, struc= t ma_state *mas) wr_mas->r_max =3D mas_safe_pivot(mas, wr_mas->pivots, mas->offset, wr_mas->type); } - -/* - * mas_leaf_max_gap() - Returns the largest gap in a leaf node - * @mas: the maple state - * - * Return: The maximum gap in the leaf. - */ -static unsigned long mas_leaf_max_gap(struct ma_state *mas) +static inline unsigned long ma_leaf_max_gap(struct maple_node *mn, + enum maple_type mt, unsigned long min, unsigned long max, + unsigned long *pivots, void __rcu **slots) { - enum maple_type mt; unsigned long pstart, gap, max_gap; - struct maple_node *mn; - unsigned long *pivots; - void __rcu **slots; unsigned char i; unsigned char max_piv; =20 - mt =3D mte_node_type(mas->node); - mn =3D mas_mn(mas); - slots =3D ma_slots(mn, mt); max_gap =3D 0; if (unlikely(ma_is_dense(mt))) { gap =3D 0; @@ -1356,26 +1344,25 @@ static unsigned long mas_leaf_max_gap(struct ma_sta= te *mas) * Check the first implied pivot optimizes the loop below and slot 1 may * be skipped if there is a gap in slot 0. */ - pivots =3D ma_pivots(mn, mt); if (likely(!slots[0])) { - max_gap =3D pivots[0] - mas->min + 1; + max_gap =3D pivots[0] - min + 1; i =3D 2; } else { i =3D 1; } =20 /* reduce max_piv as the special case is checked before the loop */ - max_piv =3D ma_data_end(mn, mt, pivots, mas->max) - 1; + max_piv =3D ma_data_end(mn, mt, pivots, max) - 1; /* * Check end implied pivot which can only be a gap on the right most * node. */ - if (unlikely(mas->max =3D=3D ULONG_MAX) && !slots[max_piv + 1]) { + if (unlikely(max =3D=3D ULONG_MAX) && !slots[max_piv + 1]) { gap =3D ULONG_MAX - pivots[max_piv]; if (gap > max_gap) max_gap =3D gap; =20 - if (max_gap > pivots[max_piv] - mas->min) + if (max_gap > pivots[max_piv] - min) return max_gap; } =20 @@ -1395,6 +1382,27 @@ static unsigned long mas_leaf_max_gap(struct ma_stat= e *mas) return max_gap; } =20 +/* + * mas_leaf_max_gap() - Returns the largest gap in a leaf node + * @mas: the maple state + * + * Return: The maximum gap in the leaf. + */ +static inline unsigned long mas_leaf_max_gap(struct ma_state *mas) +{ + enum maple_type mt; + struct maple_node *mn; + unsigned long *pivots; + void __rcu **slots; + + mn =3D mas_mn(mas); + mt =3D mte_node_type(mas->node); + slots =3D ma_slots(mn, mt); + pivots =3D ma_pivots(mn, mt); + + return ma_leaf_max_gap(mn, mt, mas->min, mas->max, pivots, slots); +} + /* * ma_max_gap() - Get the maximum gap in a maple node (non-leaf) * @node: The maple node --=20 2.47.3 From nobody Sun Feb 8 07:08:28 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 587474BCADD for ; Wed, 21 Jan 2026 16:57:54 +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=1769014676; cv=fail; b=gs7YOS0fgeNAe1lau79+qWGITnQXBgymhk+LVaO+FAG0TPRMCXEM2XP8UebiYxNPBDRu3+iVXuqF75YIzA43CiFe3eyG0CspO+OSEseVu5Od0n4AEyVx+vGj9QYX7CPsVKxGAe7XS5kPuZya1rHh57yZpWC7yHDWTJdnbcDoOPc= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769014676; c=relaxed/simple; bh=54vO3rZoAzKTDeQmV3paAMLLn1i0yaMWwCGqgwxMFJg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=H21k56j2sHNf8ETUDUNZsW3OOnEx8+5lNGnkjGIBJURtvn3Xd/6wfrEO3cumUQrsvgmLMA7lpmP8/CiVQR2Wj4TjofXytRXq8RkNwGbwDTqxTZC4Bs6KSfD9IYgNBu+an+iqQlB2GNhlrKnYTJ/uEX5VqDZj+kn0SRhjDbbdaSw= 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=rHdojEX0; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=JjHb9Ic3; 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="rHdojEX0"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="JjHb9Ic3" 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 60LEOGfg3430893; Wed, 21 Jan 2026 16:57:22 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=QEIeGa8s8FT4BesebaeHml1I0z9WBgn4siTvKsY8tgo=; b= rHdojEX01gjNiQa5H6UlKya2byJwABXn0uF8C9HCMgNK7oymmxCviH6lyB+PCJN/ cYe7Al9Dm+83BEmTKR88xb2oPLGTV4/XWSUGiQYIj7t4/ZeudUYKjdOOT+4YUXqn VFJw5WmNxlCXklEySD9NcdAzd965Vd+8qJO8HvpdJgKlZk00MaBeVmaEQ8D1QTHR gRyDUZqyHLse8LrWkFrWcT303OsrWb4pOhSohng9TXzBQ0++RhboDgiicE8lIcU/ ZfayXrtSTEveWdWj/6dCmVZTnFYC8C1KMSk/0x9z3L2AmDSXocbRZ/xOcSuq7Z0E 3DYooPIxa42zzoaSHh0Ojw== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4br2a5p619-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 21 Jan 2026 16:57:22 +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 60LGgNor008362; Wed, 21 Jan 2026 16:57:21 GMT Received: from cy7pr03cu001.outbound.protection.outlook.com (mail-westcentralusazon11010036.outbound.protection.outlook.com [40.93.198.36]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 4br0vbht75-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 21 Jan 2026 16:57:21 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=QG9QAmnHTE1K3foteGR3cyewr+HVNagRAGnCEUCxNyFFWIQfCDjUbK3R8TCRDBpcxaHKhjcCjjyYnIZ7V9KFIpKcSMXlyYd/eI+JQkuUGbHqPKfyylSOqhrF51pCqbDFSzT8xgcE+OD3nzrrBuGa4xhAy5wdlw36FMCVFxbKVz8uoAhVsFWdC2/fL68BP26uEtsWEVQNHi0y9W2iGI8OdXSImjAA97/F+hYvx8z2NGWgMOQUER7Bk7lnPLouI/L/k3Ur+1YNBN73QqnErLK+L3vFsdl0sNqJzp5jzEyFA7NDD/M9Gd5OdltuX2IjSAww/0a928Y/HLj7pWpHHfiRqQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=QEIeGa8s8FT4BesebaeHml1I0z9WBgn4siTvKsY8tgo=; b=jP2RB9FVkw93ZgbvQ18uV86yVel+Vs8K3fuibgpI1DFLzbbGNjG6v57DvCPkwu1EqtBgoLpfaV9T7A5iVnRn9zwZn02npHqPGoncomy6qhgzOverV6MH3yDJEynyksfIu+vlEBaNv8xLssQH9gWztZ1iT3gJMEOtd3gb/Ionvsp1bv0gPRUnA/b+vUp6HSjR53kngj0zii2OfSFOOy3xI6MHZg8xAs6XCxuLOE0i0WJTXSbAH53EhN6/t0Yi95G9f5Fdi6/h11DD79oXvTtx2jjIEuirOv73GaAcDpnixgGvH67Un5y34e318En9Q5wnvik+/dJ0IOMIU0wtwE3Y5A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=QEIeGa8s8FT4BesebaeHml1I0z9WBgn4siTvKsY8tgo=; b=JjHb9Ic33MilTwm1hrewgknHRsX2PFY9JfnWCdVZTocNARqY+KJJRPebId0PPIFPhLbmsVAfsGD6fkvc0O9qDjff0dU7s0euii6SEOfMM4otS2u1oLpZ7G0u4ANfUfeuk4duYShiY/bqcdKh1ZEUtfxURYHpAD1OkMk57Q03xmI= Received: from PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) by LV8PR10MB7727.namprd10.prod.outlook.com (2603:10b6:408:1ed::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9542.9; Wed, 21 Jan 2026 16:57:18 +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.9542.008; Wed, 21 Jan 2026 16:57:18 +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 v2 16/29] maple_tree: Add gap support, slot and pivot sizes for maple copy Date: Wed, 21 Jan 2026 11:45:13 -0500 Message-ID: <20260121164526.2093265-17-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260121164526.2093265-1-Liam.Howlett@oracle.com> References: <20260121164526.2093265-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0291.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:10e::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_|LV8PR10MB7727:EE_ X-MS-Office365-Filtering-Correlation-Id: 23158a4a-a3bc-4c7e-9fc6-08de590e22a5 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|1800799024|366016; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?A68hMNQ7Dapu24RmpRCZHF1kzzgysVHwyL0bByp1PW02bUEpLbza5yVx+AzW?= =?us-ascii?Q?TV7qeVzsCU752zlwxyiNcU66vXVIAhSfktTAgWs+9xlNt4ruSBvhSt2A5Tyu?= =?us-ascii?Q?8HwrkWlgKjinV8SqBskw93MUzr8ptGly13uErignzyMCQpnIEfBn/FxJQ0v2?= =?us-ascii?Q?waQZCZuuMG2HnJTDsyr+qTFiLt9Y1kfU4bOB2CJuTzGpc0mw9tur1k813xKK?= =?us-ascii?Q?PnXoIwls/FNJeTv4PJYED0YjEXUEoxryUAMv7c5hg2vr6e+22Q4H0o3WiNJs?= =?us-ascii?Q?/z2Bu/phxQ0fOe1nr02HZ0qhtoV4MPDE17vHfUUpswwXpjVZnJTyeiCdo9tp?= =?us-ascii?Q?ci6OuQE3v3aGaH/dhPssxghQVtUEOCcUGRo1CZ/J4hcDcaijpI2SoY3gT4iC?= =?us-ascii?Q?oLZQwojTiBTQWoIGkeIY8jxxYVVk2vUhzUtfkwEGbLsYG3Hgt99Gvna1SeMs?= =?us-ascii?Q?06pAVzbk8poj+x+gMCertLqfButEpUTBhnX3lqBDUYFk1VDrmaPVjdxaj218?= =?us-ascii?Q?W6xRJuf3Ehx6qnxIufNGT2Qfb0wfXf+Nk5vcRoRX/DmmGznuDA9MOsVpJ592?= =?us-ascii?Q?xW+wweplpAx7QIrOXj0qLWnB4BjEBA66mMGMUbteYoLVvT9kPO/S+u7PJvJz?= =?us-ascii?Q?LiR7rtEhJZ/xdEBIhN9TPkvY6+Q5DSxKoX8Lk2giL+f/reHBrBDeEeVMnGoS?= =?us-ascii?Q?g+QRFdSPVSg5Ix/JB2yHV5eujVqDXQEUCQFYpuzdEK6FWKpCsF2frrl4M6kC?= =?us-ascii?Q?oraDvfvwAg2xGndeXgrfXsnBd5Lb80IJikja6gpvdF1A8p9aGCFTnp5FtbiZ?= =?us-ascii?Q?wg1k9YBVB1CBL5HD4xgRsvxSN/iKFdLPsV5vGH1k1Nc8kCobYt0mx2Q/y+U1?= =?us-ascii?Q?iUqTcjVYeO6+ARY6gabKJ3MDh83MtDpXuL0bR5gf/SD7oI/phMLzM5YfW5+m?= =?us-ascii?Q?s0Dru3O2uA8Iz+G2ygLHYk3CsnF5l6e6mIakdbI/rTzGzu+afG7ewcbTD5AM?= =?us-ascii?Q?FKyMAmNjekVNy8ek14kH1NKPWKxSIzAGj2WE0PL/rE14JFSyuwt8ZKIxSOqS?= =?us-ascii?Q?61NLH73mswx7FJbAecu6DFrc9aMNx/kKGxw4A/uQL+lT1nL2Toc01kvkefXq?= =?us-ascii?Q?LfQ4glQ82bUmD+aIcTvjdUe8ULVfvIWLwvt7mcAji9AFd+qi/qwnUKy5NLlB?= =?us-ascii?Q?fzVhI9CqAwQ44yuDpRNKcpynE1ColdixJOfpYbmClQRsik4HfaXSyvlq0DuL?= =?us-ascii?Q?A8BqW6PisxYHOJhdYLR+54NSQArxE7N5a0Y+tDGkppIpxmczgqhtUdrCm3FN?= =?us-ascii?Q?4i6yW3yerybOcK9A7poMw9GQhpB1F9ZLyRJJzQzMnk4yr0n3rOCnV4zaPE5r?= =?us-ascii?Q?XFZdSXQ1lOwpc7cwBqt+bEDeCnqzIodLGtv8bTXi8LXrBBT/0cDah7rNoO9C?= =?us-ascii?Q?YG5w5OzU2CvtaWFjV9TVQsJwC1lH+1/OeBG68A2kKyQDHPVCm5WDdOd04aLC?= =?us-ascii?Q?BbdYZU5+jTtlrCLYXUjPawTfbjVmZVnJKY7M6Bjk/wHDQ0PlQ6l6O2RX281q?= =?us-ascii?Q?ZRXeu9GZDgUJAS6qGEU=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)(7416014)(376014)(1800799024)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?51gxOjv23r/db2H6sT1o4CAtWUcUfOZcBhNpNnV9OR/ZchTrUAZbMilhlHQ1?= =?us-ascii?Q?f59WdFbYzXyvNEe8fr0ycCJ7fTmZeVLcxYa6yJvCeqEbw/jTmVq5G/UFGofr?= =?us-ascii?Q?kdAHG30IMNktdlVtCO492To5eX7lHEm17eTU/HXWoxSCs2KmUryWZ4JJbZ7V?= =?us-ascii?Q?nOvXUjIh73DBkg/XnPti3d0bdDi4kDg1I3G9JS0wdoPwwRHjgpiU2cfAVrE/?= =?us-ascii?Q?k2J8SBwL1Rza2nCyz4NWnEwRrEdFnQoqf43OVFn1gBDzElt8iU6yu76lEG6u?= =?us-ascii?Q?nIXbO49Alx4kNE3tkpdGyWxRiMmlsP6/xeyOR2KqsTq1mAWHiuXzrvRgJj0E?= =?us-ascii?Q?SF6oWSYJCvxXNK/lEMkaFgqWG2WKXAzccUKv0a3XtA3+4Xj4puxkHg0Ba/b+?= =?us-ascii?Q?myI59FkTlo3AdHzRJIH2oeXxiiWl5wfCz5JT196wRpiI6EcFawO5kBaDXtGO?= =?us-ascii?Q?A5bmhHO2dpqOmzLPFNdDP/4aWiJs0U5ShC93i5opyeO2BiW3W4K4S5D8SKS2?= =?us-ascii?Q?UJ/AQUKULgg+0ss211kTY2ErYfBYx0l9LDkr+wqSCvMoYXo1sVotL3GSJxsI?= =?us-ascii?Q?eyagKnMYpqBJR5kIndVnTWCLXTX8sWRviRAPUtXpvifXe+34WHqyOfLcCbfu?= =?us-ascii?Q?l/ntahX572upiHbr4SS3LacCRSx+jr10VXvhLXAi9CfbFgu63Bxs/3IUbm7L?= =?us-ascii?Q?Z+e2ZPub1ftaPcDPvpq4eC/NiZkSJ6mpmHJRRDKTxBoaCZ5a0DagkwXI/DBp?= =?us-ascii?Q?izEnU91Q2es8izzO9cvtS4rXU6JmqdV3FU32oluvBpQcVuLO8t189lDlW9ur?= =?us-ascii?Q?YULHVtDVq/W5tt92URkL6kmdCKtS0OPbt8/Qecis0deZX+KpwNPyx/K2Kcmi?= =?us-ascii?Q?S3a4wPNkkLWbes2pL8pMn15zrGWZHqU532GaGcIKbLRklQbgmp8hcsOhuQE7?= =?us-ascii?Q?kaBZAY2NoDXnfhKjLzJJB7SqNzYwtpjnuyWkS5r01RkZB6Y7YRHW7ectz1Rq?= =?us-ascii?Q?UAp46ap2jM9dWOUyAQZptS32/Mx3IroPm4Nu4SXKqf+cB9owFqv0KyUoVEis?= =?us-ascii?Q?v/OX+MXTdKl9r0UE21YwsJRY3JllH9g2zlCNpk6kB2mLOmac47nUFr4+5UKl?= =?us-ascii?Q?YJv0YNEa1/tFPIPSUdEr59pbwH5lQMdgNU5ZjOLI5wNwB3v4D4G1F+Ab4qgg?= =?us-ascii?Q?YsDjBJ6CTnXdbj/5W4LFZWL2uF05kcEZa+py7UTv9M+NR6SeX2Pp1QU5domd?= =?us-ascii?Q?Iub7aeBLgvQ1tvATbn4Av6Ny4q/nb1lw65GmRamnq1D7Yt4WKGGFHwSXMf1G?= =?us-ascii?Q?dQjOTe71/HBkVpKgHg7vokcRn/CROCDqFgpisNf0S66Z9XabhOhV1WxHbPyA?= =?us-ascii?Q?dy3wUpJkbPK4I1iS4dOz+Ym79fcBuGVaxFtx7JMR98kOql9fyBbUsxpYYoMB?= =?us-ascii?Q?MiX0ug8TcNTulYTGUAnq/oKFka1us0xwsV+PBd5hwJub12Z1IBZZc90dfkL2?= =?us-ascii?Q?vADVWQo3Ynw6uGtxNeI42j8j8ha/Bq1STpvzDYLqgtWYoK73dqhYObCtRMgY?= =?us-ascii?Q?8Iak8S/1W3y+KLKQOr5nFgOhdS2CqZ5mLLDFXwTdhp31CfFKFW+Z5KBefjxo?= =?us-ascii?Q?47ClzfgnlQqCT17Z9Y1hnjjWaBqOqlHCu/Pg1xRDt7MuCKEhWqcZLiWphA4x?= =?us-ascii?Q?c99JLOSqAu71N8kWDSQS1GvHIv7MCRwUO7DHukslawLUMS/YTFelyCt3FMYY?= =?us-ascii?Q?JbW8qE9p0Q=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 187HC6w4FL6aHacF7mleDwjsChYd8H9UlbS6UchvYsdbjWAQ0FFDRtPwAzS2xw880ujD7cFaPGYwGTPhAYR84TjQcQsUFhyALwMe1dYiJOIJ1Aqh7mc2wmBfNIQISHKae8nCZm0VBv+VdrZYKkcdmqpq+oLmTXcMh5lMae+0UEOJMSrQ1fa/4a2r+6OlrDidi8m6VZIxo3ZhKsfOP2SbIUDYCEiyzOe0j1wXD7TS/B23fvLVGFQ+TsQ7rwCFhPMPJP1Z6y9x9XqtulgtClTat6NTVWlfNhFtPVPRY8fbRHkMQnx5x17zGFvb0NMvCrq4hBulSbmqyfe9WN6hZsldgJfnLuscOw6/Vv4HKizNmbRlfbtlG25C0e1EEF2iZ/ajO1nSDiZ4hj7Z/yEhh9hrZYORsMfh3vvv+9smPM1dBLqOlLAh3SS7Wjgy+dCt/44RygaRFgo4eHOLBYn3wxT681B1FK0hEHvSgP98tUOij7q/xOvANSWUhHWUxjCD+PURI96rQ4eV5Ag8ZgcebxZGClIjM1EIhkBifvK80dsGV81pmEhH5C7xlfehJlOSSXUYHmO85VRq/iitkAUdPqT81QQNZtuXaUq3cgdryGiMdDY= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 23158a4a-a3bc-4c7e-9fc6-08de590e22a5 X-MS-Exchange-CrossTenant-AuthSource: PH0PR10MB5777.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Jan 2026 16:57:17.9972 (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: dzbnYkoVrhAIHXP3krMPRo19lBxp/vEeiVSKT2zY6q5uPyWOm61APozFEViqg11QSpXsIddW9raXpbK4kHedZA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV8PR10MB7727 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.20,FMLib:17.12.100.49 definitions=2026-01-21_02,2026-01-20_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 mlxscore=0 spamscore=0 malwarescore=0 bulkscore=0 adultscore=0 phishscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2601150000 definitions=main-2601210142 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTIxMDE0MyBTYWx0ZWRfX0ZgMtQIm6Sf1 hgjnbFzNv/Z5rzw0fZvSENGf6ijtmdjIvsHvF+bgdPen4schORZ5qZV60h2qpHCVkvyVBeMlgdL 9jbBVfpBqWIrzC7M++R1DVIOrnHQYmhSQJTo2xdgnykSL8OTWePr7GiKv3UkARc0PxBRQutBKCc vdSCTHChSvPOw+bcuYzV9KJL0J/ikZkGPVFDIHZyf7H6g5ohNdCxi5Q9qWabBTZVolcsCIB3mFs pQceWKqa4SLcz3516K28A73ZBoa56FxyNVlKoNE7R+YnjlwAKA7lWLwjb+ayhqyx/Xy/+jH+Al9 VkRowGFR3jyhP/j0RXifCihYS68swU3JKs4bGktRtIPXInic9XCh9TQE9I60MnNLOALn2okm2Zw 2sPGopDS42Vtsp84LuiwVDDkblsMG3yaBIq/zCWzXS1H2C54aQ0oXCzrMClcGNA9pOaFbcJhBiw C1sQqkojmJDAKW7hmSg== X-Proofpoint-GUID: dh6uQEANPikrkfWeWNdm0sx47T22Ko2K X-Authority-Analysis: v=2.4 cv=XK49iAhE c=1 sm=1 tr=0 ts=69710572 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-ORIG-GUID: dh6uQEANPikrkfWeWNdm0sx47T22Ko2K Content-Type: text/plain; charset="utf-8" Add plumbing work for using maple copy as a normal node for a source of copy operations. This is needed later. Signed-off-by: Liam R. Howlett --- include/linux/maple_tree.h | 1 + lib/maple_tree.c | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/include/linux/maple_tree.h b/include/linux/maple_tree.h index e99e16ac1c6da..db6a02788902a 100644 --- a/include/linux/maple_tree.h +++ b/include/linux/maple_tree.h @@ -165,6 +165,7 @@ struct maple_copy { } src[4]; /* Simulated node */ void __rcu *slot[3]; + unsigned long gap[3]; unsigned long min; union { unsigned long pivot[3]; diff --git a/lib/maple_tree.c b/lib/maple_tree.c index 499cae720251f..9c701ee7412ca 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -101,6 +101,7 @@ static const unsigned long mt_max[] =3D { [maple_leaf_64] =3D ULONG_MAX, [maple_range_64] =3D ULONG_MAX, [maple_arange_64] =3D ULONG_MAX, + [maple_copy] =3D ULONG_MAX, }; #define mt_node_max(x) mt_max[mte_node_type(x)] #endif @@ -110,6 +111,7 @@ static const unsigned char mt_slots[] =3D { [maple_leaf_64] =3D MAPLE_RANGE64_SLOTS, [maple_range_64] =3D MAPLE_RANGE64_SLOTS, [maple_arange_64] =3D MAPLE_ARANGE64_SLOTS, + [maple_copy] =3D 3, }; #define mt_slot_count(x) mt_slots[mte_node_type(x)] =20 @@ -118,6 +120,7 @@ static const unsigned char mt_pivots[] =3D { [maple_leaf_64] =3D MAPLE_RANGE64_SLOTS - 1, [maple_range_64] =3D MAPLE_RANGE64_SLOTS - 1, [maple_arange_64] =3D MAPLE_ARANGE64_SLOTS - 1, + [maple_copy] =3D 3, }; #define mt_pivot_count(x) mt_pivots[mte_node_type(x)] =20 @@ -126,6 +129,7 @@ static const unsigned char mt_min_slots[] =3D { [maple_leaf_64] =3D (MAPLE_RANGE64_SLOTS / 2) - 2, [maple_range_64] =3D (MAPLE_RANGE64_SLOTS / 2) - 2, [maple_arange_64] =3D (MAPLE_ARANGE64_SLOTS / 2) - 1, + [maple_copy] =3D 1, /* Should never be used */ }; #define mt_min_slot_count(x) mt_min_slots[mte_node_type(x)] =20 @@ -627,6 +631,7 @@ static inline unsigned long *ma_gaps(struct maple_node = *node, case maple_arange_64: return node->ma64.gap; case maple_copy: + return node->cp.gap; case maple_range_64: case maple_leaf_64: case maple_dense: --=20 2.47.3 From nobody Sun Feb 8 07:08:28 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 799374BCABB for ; Wed, 21 Jan 2026 16:57:51 +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=1769014674; cv=fail; b=TOuXiLZNfUvNe9lz2mn/hmumH4NobSCaxYXP4vwZTCUBpVx9Uo0TabmGeO0jj9XYADniCK5aUauZki3IvEpvnTTALp+27RO4LNYVcU637ERlVsH6jpwAaX+2pt6ptf9hTrCmp+P17QIuHZmTr5XlSpR7+Wd/hZ16/adcPw862Pg= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769014674; c=relaxed/simple; bh=U55MU7VfFBs0hMiCH/XB7o5XUYWFrHVuVHvrBsfHx+s=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=Gm5Wp12/VDjetRQ/gMw0j2AwQDYLtQiMFMyi1G2Ig9TYjZTPNpQYX9jvjNxPOEdbDBhnXj5PkjtDIcHgnJXBJWxOs/YfaiqpkyUPDVu3/qFWBVKoVt5SyZFS1vgO57RMUMGgvbYfI+hZ+0/BnwDILqFLO1NJvPdpCkxABg/piZU= 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=m+IkXWAW; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=P/LgEAk3; 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="m+IkXWAW"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="P/LgEAk3" 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 60LF9Jv23031586; Wed, 21 Jan 2026 16:57: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=B6Z5SxwQfElT4VaOYM9aDStMqZ0God7JWJKVcnEfPJk=; b= m+IkXWAWk3WBbdJqjDiY2qLUmaYNaTzEKYcL5QWXDe2+ag0Td0SskIj4tVsyKWNd f09pY+Jh4cnvroZP1VJyP/9PM6O6IzsDXJA949jVpcr83KXlT7ZdqhnoVtmSAjqv lkZqXU4suC+YsgkXjQbSniaHZTV3vGvNdIix5wBKGM10GfpPVxMUTC0Pq/23cwCu Jb9vP/f722Glp3C6YnfH3nR00AptFx2F6SkvXzYlFhi0fPcivaBpvx03zI/rTTLe a3ab/wWgon9mSHa1AjnE9IFr1QvXTNZqZLOEf66pQlChRG6WvDs4kcA5K3hLjHBM UcTgEKUesPdJDrvieawc+g== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4br2ypx5ay-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 21 Jan 2026 16:57:25 +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 60LGWLCu019002; Wed, 21 Jan 2026 16:57:24 GMT Received: from ch1pr05cu001.outbound.protection.outlook.com (mail-northcentralusazon11010016.outbound.protection.outlook.com [52.101.193.16]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 4bsyrsbwa0-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 21 Jan 2026 16:57:24 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=dlrAResh/gYuQCm5zeJYG0WNfWuR+gmVNUw1cX+xAuC7cuqp2/YOC3mJs2wMAzEUt9wx5Uia4A2W5v2Kx/8X+O5a6oy5NFuEJF8zv8aeYvbs4u0d/4Fnq5Ln+kI9SJP4YW7Z6fwnDbrgsqw7hREv+2xXTTBiSFCYyd5Y5T/Ul9W8rXzHHdsNRq3Sw7ZgCxeDBYMgMLw/tN+OA0wxLh0U+10JEFcvK3ikI5nik7Th6JsIky2Jx+txHNfPUsx+68fWRzo0qNVS+zfiaotpmigi6XMd/SmfytsewJGS2dJsc/KSaVzS9c7SmrFFQxwlISAdPFXUR4KScoeggiEy7GifNg== 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=B6Z5SxwQfElT4VaOYM9aDStMqZ0God7JWJKVcnEfPJk=; b=m5OtZaTir3hBU9vI53T79X3o7mSj44vxtFlbYarnjQrAF4tBGXKewBD0Si/HYaFm2K2+FbyKIZMzk9Faf3pTg4dloFIfQv3+G/5k6h0sp1SJGJ9koUfKt8QLnnQs7zOusnLfFbjf+xhL3ROiLznARC1hnDcpPVEhbjNJ5OjwCCH4epcnQ64CEWDttx095tVp6JhhZXPb0UW3c7+hjdF5xDA6wf/YxdSxk1+am2QML0d+9TKa8xXua49PLqucMaaPDOgo91tXECcBqALFXwHnUn+eEs0X8yB22FHlhaTBedy4sDjesTlGmMDJ5qEi3xhn1UfklWPBgBhk+fn+n75fuQ== 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=B6Z5SxwQfElT4VaOYM9aDStMqZ0God7JWJKVcnEfPJk=; b=P/LgEAk3vaM7p3evxD716tftAqbj09faiFS58W6oUKAz4JVLrgvZB/8EjJcGO2K8RN43hSbG2MwJrfmFKwKMPGAMFrxIwrX2O6zaCalRJ03JFY+18hH8+tIrWel1YTyMlwNuyY0+jcT5m1Pa2Dbf+3uQmPES3AAsfITUHpInen4= Received: from PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) by LV8PR10MB7727.namprd10.prod.outlook.com (2603:10b6:408:1ed::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9542.9; Wed, 21 Jan 2026 16:57: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.9542.008; Wed, 21 Jan 2026 16:57: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 v2 17/29] maple_tree: Start using maple copy node for destination Date: Wed, 21 Jan 2026 11:45:14 -0500 Message-ID: <20260121164526.2093265-18-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260121164526.2093265-1-Liam.Howlett@oracle.com> References: <20260121164526.2093265-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT2PR01CA0006.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:38::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_|LV8PR10MB7727:EE_ X-MS-Office365-Filtering-Correlation-Id: 5cc1bb77-3b96-4580-cb59-08de590e242c X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|1800799024|366016; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?d/2jClB/TIiOIVVHJiGgLkhV28UOFDvhv9+Vf/I00TsunHjRM+sqyqU+jBF6?= =?us-ascii?Q?HjF4GcjJTkxqnvweM8DI/3EgHcXpZ6cWk9UFNcOH7g6rGkKauSvQ3bNOsyV/?= =?us-ascii?Q?Qdwfv5mafO/991nuXI4XRfMCkQODwpG5fcGuMhAWVI6QNL88sKRmEVGswKEV?= =?us-ascii?Q?brxiEt+wbICMSVgtlWC0m0FXq56AZUutIVTdHrZLUzeHpYSK4zwfVnnRr4v8?= =?us-ascii?Q?Al9h6ZKDMbREHx9NgySFDtm4tfysI9Xdzaqjp1JUxzWV5maIS9UtRFxIxy/j?= =?us-ascii?Q?KbnPit5VSrAyolhxMJ3JSBa9cdUlY169QRTg5TlbpORRC7oF928hmITHMmRX?= =?us-ascii?Q?4Pj2WCqOz1u3w0iPPObiMP6slhTuZ70pTpPzzZ73azXLGM4UUOg6YyDWNdRa?= =?us-ascii?Q?q+kj7s7V2bJTJJ71pPZ7Fh1CKkafliWv3lbVcjJEv3aLvpUzUo78Owg/WfSM?= =?us-ascii?Q?XvWbn+7dePf1d5Onq+HIR53PLzGHOL0zF8pjxp0nvK0J7J5q0LmWGSUfhtqJ?= =?us-ascii?Q?T6A0vJ7TH87FG8mYrcZNcHpOguP3Rke5JH4YbMZOAgHw2+9vU7xZtjTtbhFs?= =?us-ascii?Q?VKgiaKJS8cc3ZmWsVT7lteM8Uqw8wk3Xq2o2Smrodk/CYroPe6qchyuWIhwp?= =?us-ascii?Q?Kbc1cfXGQSXkcg8heX4UvzkoUE9hN411t9DjvqlcnSrE0iLfU+rbWbWHMTHi?= =?us-ascii?Q?fAvTmfUhxYQKB+Ajn/9hFSt9WKVocbLhUD6Wa+O8ldiofrwbQTZzK7UNwU/r?= =?us-ascii?Q?e4uboyIpg/2EfbX9zF7pjiPtQoA0gr0Z9L6r/lPFQ7Nj481FhFvz4MeorSDz?= =?us-ascii?Q?qyOH022T+I/VXKzIQOvO0AKnWLdQ479eBDiCHhMSDFCqMnX3PyZKHjuTRfvm?= =?us-ascii?Q?ilDu4JHqJRozB+ddSzJ2R9tzyNPDHPu2Ua/1pq8HSBI4Y8/MjV1ipfd2fUDT?= =?us-ascii?Q?Ugeoyna8VdSoOozBKxhZ0qCyD9KWPBcBEmsFHWkZE9aC0hMEHnd/hI1DLmhD?= =?us-ascii?Q?s9Il5g5rC2DFlmDI77vg65Ww3RoAWdHJRufhKHjmJKwfZpcPoRFOfs3IcLcJ?= =?us-ascii?Q?5m4BJoRWZ0PwdVMYVdYuJUu/jvc6ww1sgxRefCMGOcvdoG59+xluFhQ4ZrMN?= =?us-ascii?Q?GrfbAd7bPKel4gyuvfQs7mXzf7xdoPVnHpE/Sqc9cB1rNo5GvkYSmYhkSyXZ?= =?us-ascii?Q?RLH+ljwFl55HGxMprUWlXXTXJxAhxJzpRG1pyy6/N40xA/wtu7aXp8Ex1NFr?= =?us-ascii?Q?CmNzXzozGbdELOthHI5Zny2ZiCsSp5gAEKBTPRap0Q9PK0cUn9L8zBTGIF/H?= =?us-ascii?Q?IWf3K/nv406W5r1PR0au6eVwuGNEElozs1lkTZw+mb8XAKGKCyuwLZqDXk9f?= =?us-ascii?Q?Ky5TX0nmNgTgbPZhpEX4gckvM6kzMjM1SM7k9JdNZCVWOwG5Smx4CJwSnT8w?= =?us-ascii?Q?v1KSaKVYeoTzbvdRmLJtQL3JEYVW7FhATPaFAd1ZUVMrJcktku6zpAYszBaO?= =?us-ascii?Q?FJDnW8y2Th1b65ButtM+gG4wJLMlwn9w7ls4OkNEuOLLGDNojh5N0cnsO2PB?= =?us-ascii?Q?V224uESS4kMAANk3eko=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)(7416014)(376014)(1800799024)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?5lx3LH0TgiZ4VLNN+XOzjfxGHewMKj3XrfmNBUgaSE9bh8rjP8RJr+YU3UwY?= =?us-ascii?Q?p3xxSnWvosaKqMewl9/cnH/bUxyheJ85+LVBh+LCTGb0/xA/+hJ4CefTd3FH?= =?us-ascii?Q?dQQewv0hDWZAiOAZYirLR1IckZpaHXhLDzsCuIBRGSvjabiAYPDqkeNrrlF0?= =?us-ascii?Q?eMh6/nLAd/OGR9PDN+YafTTSU6q4kz2/0DI6kauRUdI7oIBQGdmidUfb3MPx?= =?us-ascii?Q?jaW+aigcvSfYldZzONVHqJ5Kgcr4RwjrBEJ2ymmeX/p9o4Ho6e1iUJSEuXmG?= =?us-ascii?Q?YgKKoFbJKG9Y1yad+tTKg2NnXLmYxcU+j9QUHBs4//mHAHCqzXPRvHaYYNvK?= =?us-ascii?Q?UDF/wxbFMxOwbkDNutH9YlVfVtmOhvF6Iz45axueAokOWYJC3iA6zRlvzroo?= =?us-ascii?Q?9Sa8t584Ju0D16UsArcnEoDeZp4ukZzDZ4DlWb9Qq+G4njiQ+ficeOux4fdg?= =?us-ascii?Q?CmoB5hchlD2Lge7FzU39hTbMAz5SlviEZu4602dlrF33DwWOL9tZ4AHQgf4W?= =?us-ascii?Q?FPGKXATnvorUeO5k1I74sz7ynT8waHzI0iOq37LOZgr6aOObBPSBP2POnJGx?= =?us-ascii?Q?UQn0eRlFMkLf71Lnp/V03V6hSp7tdq3Ndl+ZyHXbKieC80m+uC0+Pp65B7FT?= =?us-ascii?Q?E6sVlgVfGmR3ImyFo1gqwxezvZ7lwu6LIj2qymIhQTmyXLnA5Tbwsuko8WCJ?= =?us-ascii?Q?nSmatarkDyQz3I/0aDe04O5/HB2BjsD5Hnk5zdVJLLDpWeYmKb9ZrkzEeC57?= =?us-ascii?Q?mGk2FytOAeGA/AimHmE7fH397Kmyl5zaJseKelWjR/D9ENtUVxyINjHpwpLN?= =?us-ascii?Q?/a1+Qn7JtB3yur5B782uL/c/Ah+YVs5RnDkb4whclFJzOP18R4kEYZTcKehV?= =?us-ascii?Q?+HQYONX/YoPsPjEFDWqh/E/ZjtljVRqhXpnN4eybhzvvCAKqiWI/Znw8OOg3?= =?us-ascii?Q?ZSFS4DANqamI8gJpnZHIbIqfMze8SkjquyemEAMi3ld9dG5R3UcYT/hUVKgI?= =?us-ascii?Q?kM6N2/Mew+fGkdLbP6K4omq+XqKnAwe04mNFflVhI0K98w2IiuCSTgdzo18F?= =?us-ascii?Q?+les8+UzfbM30H6U8soH9jorZzwKfrrCCTqoTM3lvJkUmv5Sm5w1wNEPdTiV?= =?us-ascii?Q?9UkULpd1Dfy0oAyMklB0U1Du8x111gZox39zp6gZgIJkkxPPO8N8tkdvPxac?= =?us-ascii?Q?lZlwfkJsBxNh2H6WJQYQ//zIB3jz7V3JPdoKyqd0qISpHcj4gP38sQMtTdtV?= =?us-ascii?Q?uFdM9fyj+ULpcr8ciUunupvBkB+j1SDjtyNX3kuD0g5FxbX5effriSUmUMq1?= =?us-ascii?Q?xHSdi9Fgpv8JXzt7W1SgwWKAKmOrf4cfDSQ5tc/8jITIpEkZGwcshC3WLNis?= =?us-ascii?Q?nw24QnEiW/MQdrK6yod0OVziGz7x/pLyY22G27ZphG9gB98MRK+L/cAlD2RG?= =?us-ascii?Q?akG381nFY+NaU7IOfjZrHirQOZs6FfhY4wUsVvPEFuLSupTkzNuYI/JgPqjL?= =?us-ascii?Q?SYSpNRGRbZNtW0rCpE1xJwiyqKRXDHJYnbLaRXgsU2r8SNCPiLO4kNP0+ypQ?= =?us-ascii?Q?qJyREdJSnZqbkHEATc9zt24T4cK/zkV58mBX5Geq6WiNRn0WSPnbOpqyEmXh?= =?us-ascii?Q?Wc7yZP5f9/m8JR16XAGYeV1Ufq1GtVUdFcFSoeR5ED2X2tKCbHotY6ONAL0c?= =?us-ascii?Q?SdNr0Qu3HqNlLOQkHjoaV39ghm7KvpS7VSv98wYyYLVnVnYQ8wC3dsbFyko+?= =?us-ascii?Q?zYj4Lj9rKg=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: kwtMRxnOZT1JMqV1vy5VpByy+fMqEEM6631weBfe3VCS5VTXGsvKQPYbgCzxARmKegRXwhpKWfGdbZAXq34chmEwIFJvSu01adRXuuOnGWON3PXUtirBTifbna7Rprq8mqa7RQbthixdsaCVDMvA/lka6imoD8ffXtMNX0sm3hzoZRKDla//umRnDui9toPXL3fHgmnliF395kbU2NLOjSmUk3uMs2jOG6WwWwdiCpHdFz/+nXygmH3qxn5LYYspKnheiqsiGeY4X+JN6JsZ9wszVSIiguDO51gMx5WdB3TbFl4vFBhqFRLQAx+KJryBjwP4r1t7YXjQ/6LdWKcswCRRYpYWs88TWa8vCGgAJ+o3qoUqWd5Zy4rN3rDEYjjQULfJ/tAcFtiPaWzClHsKkq8iRDQP7Shc+YEhkjoV6mtxCmi6CVSo9KJEBAj1schZbHmEu34E19wUT3ws5XCfCb50nZun9pCQ9LAiZlmC6JQOrTxfMarGffTY0Ema1rVuAeHP9y3Q0dPnu1wu7LfAfmeLFNVlFhCPVW9hPmIPRhrr0n0KMsoIx95WRGKEvodaTQosiNGSQeYLNvFVW5HkTb7iMXr9dbrJgdkzWDaciRk= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5cc1bb77-3b96-4580-cb59-08de590e242c X-MS-Exchange-CrossTenant-AuthSource: PH0PR10MB5777.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Jan 2026 16:57:20.6769 (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: +G/iKeIo1iP2r9gNzVSTGNT/rqeXBPqCmLu7zFQ3wjYJF0qTI2cxV2PjGf2rcjE98u3PJuvcipJsPRF3+y/boA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV8PR10MB7727 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.20,FMLib:17.12.100.49 definitions=2026-01-21_02,2026-01-20_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 phishscore=0 adultscore=0 malwarescore=0 bulkscore=0 suspectscore=0 mlxscore=0 spamscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2601150000 definitions=main-2601210142 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTIxMDE0MyBTYWx0ZWRfX0mrqECt/eett +9ymdc6VxVpvTDP0sXk+UCNiYfuMhXtNqpfdKf7cdMAv/JSw1w0IdTHSFR6qCbOvHYxxbXz4WG8 HfxIv7jv8RvhhDroPSYwzBlCn02+g/rDGENIvMOu3w5doY78/oAktJzwLXuJbSYRF9vOz3K3p/Y KeTwJ40PuoyhOJYBo9DzIaZI1/f3A96n+B36nkCqW4gOqFqt9pRfND8wC0cDB/LChp6eD5VhHVG T1e+pLKhWquOhKfmTOAmEteMzTA7nxMjKEkvEKdsGUqvjqcKq3RgSyrLFZsqPfZG6r+ZTXla7eg FQ8nsh6wR7IiTxJNaNqDFRKFaDq4lekgRKp+Fhh04gHN9U6+Gf3PFXKNJLPc+FCDLsTed1BGCVl pn6jtOyYzhGhFEDR6j+Nn0XqkAkz7NO/zroy3MeIMP1DR0A3MC8UZ6nZuVfhK+gIfMXQcnpzO/8 ZHtPhAklisyV0hqhdTfosQoZwqoCWhL6QdMMVb3w= X-Authority-Analysis: v=2.4 cv=de6NHHXe c=1 sm=1 tr=0 ts=69710575 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=ftHlONicu1wf5FYgji4A:9 cc=ntf awl=host:12104 X-Proofpoint-ORIG-GUID: pfH68ws0uOOge2b5uKX6bm9Wkp5St58Y X-Proofpoint-GUID: pfH68ws0uOOge2b5uKX6bm9Wkp5St58Y 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 | 618 ++++++++++++++++++++++--------- tools/testing/radix-tree/maple.c | 2 +- 3 files changed, 452 insertions(+), 182 deletions(-) diff --git a/include/linux/maple_tree.h b/include/linux/maple_tree.h index db6a02788902a..0c464eade1d66 100644 --- a/include/linux/maple_tree.h +++ b/include/linux/maple_tree.h @@ -156,6 +156,17 @@ enum store_type { }; =20 struct maple_copy { + /* + * min, max, and pivots are values + * start, end, split are indexes into arrays + * data is a size + */ + + struct { + struct maple_node *node; + unsigned long max; + enum maple_type mt; + } dst[3]; struct { struct maple_node *node; unsigned long max; @@ -178,7 +189,10 @@ struct maple_copy { =20 /*Avoid passing these around */ unsigned char s_count; + unsigned char d_count; + unsigned char split; unsigned char data; + unsigned char height; }; =20 /** diff --git a/lib/maple_tree.c b/lib/maple_tree.c index 9c701ee7412ca..f694a38ccd4ba 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,112 @@ static inline void mas_wmb_replace(struct ma_state = *mas, mas_update_gap(mas); } =20 +/* + * node_copy() - Copy from one node to another. + * + * @mas: The maple state + * @src: The source node + * @start: The offset into the src to start copying + * @size: The size to copy (non-zero) + * @s_max: The source node max + * @s_mt: The source maple node type + * @dst: The destination + * @d_start: The start location in the destination node + * @d_mt: The destination maple node type + */ +static inline +unsigned long node_copy(struct ma_state *mas, struct maple_node *src, + unsigned char start, unsigned char size, unsigned long s_max, + enum maple_type s_mt, struct maple_node *dst, unsigned char d_start, + enum maple_type d_mt) +{ + unsigned long *s_pivots, *d_pivots; + void __rcu **s_slots, **d_slots; + unsigned long *s_gaps, *d_gaps; + unsigned long d_max; + + d_slots =3D ma_slots(dst, d_mt) + d_start; + d_pivots =3D ma_pivots(dst, d_mt) + d_start; + s_slots =3D ma_slots(src, s_mt) + start; + s_pivots =3D ma_pivots(src, s_mt) + start; + memcpy(d_slots, s_slots, size * sizeof(void __rcu *)); + if (!ma_is_leaf(d_mt) && s_mt =3D=3D maple_copy) { + struct maple_enode *edst =3D mt_mk_node(dst, d_mt); + + + for (int i =3D 0; i < size; i++) + mas_set_parent(mas, + mt_slot_locked(mas->tree, d_slots, i), + edst, d_start + i); + } + + d_gaps =3D ma_gaps(dst, d_mt); + if (d_gaps) { + s_gaps =3D ma_gaps(src, s_mt) + start; + d_gaps +=3D d_start; + memcpy(d_gaps, s_gaps, size * sizeof(unsigned long)); + } + + if (start + size - 1 < mt_pivots[s_mt]) + d_max =3D s_pivots[size - 1]; + else + d_max =3D s_max; + + if (d_start + size <=3D mt_pivots[d_mt]) + d_pivots[size - 1] =3D d_max; + + size--; + if (size) + memcpy(d_pivots, s_pivots, size * sizeof(unsigned long)); + + return d_max; +} + +/* + * node_finalise() - Zero out unused area and populate metadata + * @node: The maple node + * @mt: The maple node type + * @end: The end of the used area + */ +static inline +void node_finalise(struct maple_node *node, enum maple_type mt, + unsigned char end) +{ + unsigned char max_end =3D mt_slots[mt]; + unsigned char size; + unsigned long *gaps; + unsigned char gap_slot; + + gaps =3D ma_gaps(node, mt); + if (end < max_end - 1) { + size =3D max_end - end; + memset(ma_slots(node, mt) + end, 0, size * sizeof(void *)); + + if (gaps) + memset(gaps + end, 0, size * sizeof(unsigned long)); + + if (--size) + memset(ma_pivots(node, mt) + end, 0, size * sizeof(unsigned long)); + } + + gap_slot =3D 0; + if (gaps && !ma_is_leaf(mt)) { + unsigned long max_gap; + + max_gap =3D 0; + for (int i =3D 0; i <=3D end; i++) + if (gaps[i] > max_gap) { + gap_slot =3D i; + max_gap =3D gaps[i]; + } + } + + if (mt =3D=3D maple_arange_64) + ma_set_meta(node, mt, gap_slot, end - 1); + else if (end <=3D max_end - 1) + ma_set_meta(node, mt, gap_slot, end - 1); +} + /* * mast_cp_to_nodes() - Copy data out to nodes. * @mast: The maple subtree state @@ -2684,6 +2805,7 @@ static inline void cp_leaf_init(struct maple_copy *cp, * result in buggy code when a compiler reorders the instructions. */ =20 + cp->height =3D 1; /* Create entries to insert including split entries to left and right */ if (l_wr_mas->r_min < mas->index) { end++; @@ -2726,6 +2848,100 @@ static inline void cp_data_calc(struct maple_copy *= cp, cp->data +=3D r_wr_mas->mas->end - r_wr_mas->offset_end; } =20 +/* + * spanning_data() - Calculate the @cp data and populate @sib if insuffici= ent + * @cp: The maple copy node + * @l_wr_mas: The left write maple state + * @r_wr_mas: The right write maple state + * @sib: The maple state of the sibling. + * + * Note: @cp->data is a size and not indexed by 0. @sib->end may be set to= 0 to + * indicate it will not be used. + */ +static inline void spanning_data(struct maple_copy *cp, + struct ma_wr_state *l_wr_mas, struct ma_wr_state *r_wr_mas, + struct ma_state *sib) +{ + cp_data_calc(cp, l_wr_mas, r_wr_mas); + if (((l_wr_mas->mas->min !=3D 0) || (r_wr_mas->mas->max !=3D ULONG_MAX)) = && + (cp->data <=3D mt_min_slots[l_wr_mas->type])) { + spanning_sib(l_wr_mas, r_wr_mas, sib); + cp->data +=3D sib->end + 1; + } else { + sib->end =3D 0; + } +} + +/* + * dst_setup() - Set up one or more destinations for the new data. + * @cp: The maple copy node + * @mas: The maple state + * @mt: The source node type + */ +static inline +void dst_setup(struct maple_copy *cp, struct ma_state *mas, enum maple_typ= e mt) +{ + /* Data is 1 indexed, every src has +1 added. */ + + if (cp->data <=3D mt_slots[mt]) { + cp->split =3D cp->data - 1; + cp->d_count =3D 1; + goto node_setup; + } + + cp->split =3D (cp->data - 1) / 2; + cp->d_count =3D 2; + if (cp->data < mt_slots[mt] * 2) + goto node_setup; + + if (cp->data =3D=3D mt_slots[mt] * 2) { + unsigned char off; + unsigned char s; + + if (!ma_is_leaf(mt)) + goto node_setup; + + /* + * Leaf nodes are a bit tricky because we cannot assume the data + * can fit due to the NULL limitation on node ends. + */ + off =3D cp->split; + for (s =3D 0; s < cp->s_count; s++) { + unsigned char s_off; + + s_off =3D cp->src[s].end - cp->src[s].start; + if (s_off >=3D off) + break; + + s_off++; + off -=3D s_off; + } + + off +=3D cp->src[s].start; + if (ma_slots(cp->src[s].node, cp->src[s].mt)[off]) + goto node_setup; + + cp->split++; + if (cp->split < mt_slots[mt]) + goto node_setup; + + cp->split -=3D 2; + if (cp->data - 2 - cp->split < mt_slots[mt]) + goto node_setup; + + } + + /* No other choice but to 3-way split the data */ + cp->split =3D (cp->data + 2) / 3; + cp->d_count =3D 3; + +node_setup: + for (int i =3D 0; i < cp->d_count; i++) { + cp->dst[i].mt =3D mt; + cp->dst[i].node =3D ma_mnode_ptr(mas_pop_node(mas)); + } +} + static inline void append_mas_cp(struct maple_copy *cp, struct ma_state *mas, unsigned char start, unsigned char end) { @@ -2813,38 +3029,153 @@ void multi_src_setup(struct maple_copy *cp, struct= ma_wr_state *l_wr_mas, } =20 static inline -void cp_data_write(struct maple_copy *cp, struct maple_big_node *b_node) +void cp_data_write(struct maple_copy *cp, struct ma_state *mas) { - struct maple_node *src; - unsigned char s; + struct maple_node *dst, *src; + unsigned char s, d; + unsigned char dst_offset; + unsigned char data_offset; unsigned char src_end, s_offset; - unsigned long *b_pivots, *cp_pivots; - void __rcu **b_slots, **cp_slots; - enum maple_type s_mt; + unsigned char split; + unsigned long s_max, d_max; + unsigned char dst_size; + enum maple_type s_mt, d_mt; + + data_offset =3D 0; + s =3D d =3D 0; + /* Readability help */ + src =3D cp->src[s].node; + dst =3D cp->dst[d].node; + s_offset =3D cp->src[s].start; + src_end =3D cp->src[s].end; + split =3D cp->split; + s_max =3D cp->src[s].max; + s_mt =3D cp->src[s].mt; + d_mt =3D cp->dst[d].mt; + do { + dst_offset =3D 0; + d_max =3D 0; + dst =3D cp->dst[d].node; + d_mt =3D cp->dst[d].mt; + dst_size =3D split + 1; =20 - b_node->b_end =3D 0; + while (dst_size) { + unsigned char size; =20 - s =3D 0; - b_pivots =3D b_node->pivot; - b_slots =3D (void __rcu **)b_node->slot; - do { - unsigned char size; - - src =3D cp->src[s].node; - s_mt =3D cp->src[s].mt; - s_offset =3D cp->src[s].start; - src_end =3D cp->src[s].end; - size =3D src_end - s_offset + 1; - cp_pivots =3D ma_pivots(src, s_mt) + s_offset; - cp_slots =3D ma_slots(src, s_mt) + s_offset; - memcpy(b_slots, cp_slots, size * sizeof(void __rcu *)); - if (size > 1) - memcpy(b_pivots, cp_pivots, (size - 1) * sizeof(unsigned long)); - b_pivots[size - 1] =3D cp->src[s].max; - b_pivots +=3D size; - b_slots +=3D size; - b_node->b_end +=3D size; - } while (++s < cp->s_count); + if (src_end - s_offset + 1 < dst_size) + size =3D src_end - s_offset + 1; + else + size =3D dst_size; + + d_max =3D node_copy(mas, src, s_offset, size, s_max, s_mt, + dst, dst_offset, d_mt); + + dst_offset +=3D size; + s_offset +=3D size; + if (s_offset > src_end) { + /* This source is exhausted */ + s++; + if (s >=3D cp->s_count) { + cp->dst[d].max =3D d_max; + node_finalise(dst, d_mt, dst_offset); + return; + } + /* Reset local src */ + src =3D cp->src[s].node; + s_offset =3D cp->src[s].start; + src_end =3D cp->src[s].end; + s_max =3D cp->src[s].max; + s_mt =3D cp->src[s].mt; + } + + dst_size -=3D size; + data_offset +=3D size; + } + + split =3D cp->split; + cp->dst[d].max =3D d_max; + /* Handle null entries */ + if (cp->dst[d].max !=3D ULONG_MAX && + !ma_slots(dst, d_mt)[dst_offset - 1]) { + if (s_offset =3D=3D cp->src[s].start) { + s--; + src =3D cp->src[s].node; + src_end =3D cp->src[s].end; + s_max =3D cp->src[s].max; + s_mt =3D cp->src[s].mt; + s_offset =3D src_end; + } else { + s_offset--; + } + /* Set dst max and clear pivot */ + split++; + data_offset--; + dst_offset--; + cp->dst[d].max =3D ma_pivots(dst, d_mt)[dst_offset - 1]; + } + + node_finalise(dst, d_mt, dst_offset); + ++d; /* Next destination */ + if (d =3D=3D cp->d_count - 1) + split =3D cp->data - data_offset; + + if (d >=3D cp->d_count) { + WARN_ON(data_offset < cp->data); + return; + } + + } while (data_offset <=3D cp->data); +} + +/* + * cp_dst_to_slots() - Migrate the maple copy destination to the maple copy + * slots + * @cp: The maple copy node + * @min: The minimal value represented + * @max: The maximum value represented + * @mas: The maple state + */ +static inline void cp_dst_to_slots(struct maple_copy *cp, unsigned long mi= n, + unsigned long max, struct ma_state *mas) +{ + unsigned char d; + unsigned long slot_min =3D min; + + for (d =3D 0; d < cp->d_count; d++) { + struct maple_node *mn =3D cp->dst[d].node; + enum maple_type mt =3D cp->dst[d].mt; + unsigned long slot_max =3D cp->dst[d].max; + + /* + * Warning, see cp_leaf_init() comment and rcu_assign_pointer() + * documentation. Since these are new nodes, there are no + * read-side operations that can view them until they are + * inserted into the tree after an rcu_assign_pointer() call. + */ + RCU_INIT_POINTER(cp->slot[d], 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, @@ -3000,173 +3331,98 @@ static void mas_spanning_rebalance(struct ma_state= *mas, mas_spanning_rebalance_loop(mas, mast, count); } =20 - -static noinline void mas_wr_spanning_rebalance(struct ma_state *mas, - struct ma_wr_state *l_wr_mas, struct ma_wr_state *r_wr_mas) +/* + * spanning_ascend() - See if a spanning store operation has to keep walki= ng up + * the tree + * @cp: The maple_copy node + * @l_wr_mas: The left maple write state + * @r_wr_mas: The right maple write state + * @sib: the maple state of the sibling + * + * Returns: True if another iteration is necessary. + */ +static bool spanning_ascend(struct maple_copy *cp, struct ma_state *mas, + struct ma_wr_state *l_wr_mas, struct ma_wr_state *r_wr_mas, + struct ma_state *sib) { - - unsigned char split, mid_split; - unsigned char slot =3D 0; - unsigned char new_height =3D 0; /* used if node is a new root */ - struct maple_enode *left =3D NULL, *middle =3D NULL, *right =3D NULL; - struct maple_enode *old_enode; - - struct maple_subtree_state mast; - struct maple_big_node b_node; - struct maple_copy cp; - unsigned char height; - struct ma_state sib; - MA_STATE(l_mas, mas->tree, mas->index, mas->index); - MA_STATE(r_mas, mas->tree, mas->index, mas->last); - MA_STATE(m_mas, mas->tree, mas->index, mas->index); - MA_STATE(mast_l_mas, NULL, 0, 0); - - - memset(&b_node, 0, sizeof(struct maple_big_node)); - mast_l_mas =3D *mas; - cp.s_count =3D 0; - cp_leaf_init(&cp, mas, l_wr_mas, r_wr_mas); - cp_data_calc(&cp, l_wr_mas, r_wr_mas); - if (((l_wr_mas->mas->min !=3D 0) || (r_wr_mas->mas->max !=3D ULONG_MAX)) = && - (cp.data <=3D mt_min_slots[l_wr_mas->type])) { - spanning_sib(l_wr_mas, r_wr_mas, &sib); - cp.data +=3D sib.end + 1; - } else { - sib.end =3D 0; - } - - multi_src_setup(&cp, l_wr_mas, r_wr_mas, &sib); - b_node.type =3D l_wr_mas->type; - cp_data_write(&cp, &b_node); - if (sib.end) { - if (sib.max < l_wr_mas->mas->min) { - *l_wr_mas->mas =3D sib; - wr_mas_setup(l_wr_mas, &sib); - mast_l_mas =3D sib; - } else { - *r_wr_mas->mas =3D sib; - wr_mas_setup(r_wr_mas, &sib); - } + if (sib->end) { + if (sib->max < l_wr_mas->mas->min) + *l_wr_mas->mas =3D *sib; + else + *r_wr_mas->mas =3D *sib; } =20 - mast.orig_l =3D &mast_l_mas; - mast.orig_r =3D r_wr_mas->mas; - /* Stop spanning searches by searching for just index. */ - mast.orig_l->last =3D mas->index; - - 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); + cp_dst_to_slots(cp, l_wr_mas->mas->min, r_wr_mas->mas->max, mas); + if (!cp->min && cp->max =3D=3D ULONG_MAX) { + /* New root */ + if (cp->d_count !=3D 1) { + enum maple_type mt =3D maple_arange_64; =20 - /* 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); + if (!mt_is_alloc(mas->tree)) + mt =3D maple_range_64; =20 - /* Copy anything necessary out of the right node. */ - mast_combine_cp_right(&mast); - mast.orig_l->last =3D mast.orig_l->max; - - if (mast_sufficient(&mast)) { - if (mast_overflow(&mast)) - continue; - - if (mast.orig_l->node =3D=3D mast.orig_r->node) { - /* - * The data in b_node should be stored in one - * node and in the tree - */ - slot =3D mast.l->offset; - break; - } - - continue; + cp->data =3D cp->d_count; + cp->s_count =3D 0; + dst_setup(cp, mas, mt); + init_cp_src(cp); + node_copy(mas, cp->src[0].node, 0, cp->data, cp->max, maple_copy, + cp->dst[0].node, 0, mt); + node_finalise(cp->dst[0].node, mt, cp->end + 1); + /* + * Warning, see cp_leaf_init() comment and rcu_assign_pointer() + * documentation. Since this is a new root, there are no + * read-side operations that can view it until it is insert into + * the tree after an rcu_assign_pointer() call. + */ + RCU_INIT_POINTER(cp->slot[0], + mt_mk_node(cp->dst[0].node, mt)); + cp->height++; } - - /* May be a new root stored in mast.bn */ - if (mas_is_root_limits(mast.orig_l)) - break; - - mast_spanning_rebalance(&mast); - - /* rebalancing from other nodes may require another loop. */ - if (!height) - height++; + WARN_ON_ONCE(cp->dst[0].node !=3D mte_to_node( + mt_slot_locked(mas->tree, cp->slot, 0))); + cp->dst[0].node->parent =3D ma_parent_ptr(mas_tree_parent(mas)); + mas->min =3D 0; + mas->max =3D ULONG_MAX; + mas->depth =3D 0; + mas->node =3D mas_root_locked(mas); + return false; } =20 - mast.l->node =3D mt_mk_node(ma_mnode_ptr(mas_pop_node(mas)), - mte_node_type(mast.orig_l->node)); + /* Converged and has a single destination */ + if ((cp->d_count =3D=3D 1) && + (l_wr_mas->mas->node =3D=3D r_wr_mas->mas->node)) { + cp->dst[0].node->parent =3D ma_parent_ptr(mas_mn(mas)->parent); + return false; + } =20 - mab_mas_cp(mast.bn, 0, mt_slots[mast.bn->type] - 1, mast.l, true); - new_height++; - mas_set_parent(mas, left, mast.l->node, slot); - if (middle) - mas_set_parent(mas, middle, mast.l->node, ++slot); + cp->height++; + wr_mas_ascend(l_wr_mas); + wr_mas_ascend(r_wr_mas); + return true; +} =20 - if (right) - mas_set_parent(mas, right, mast.l->node, ++slot); +static noinline void mas_wr_spanning_rebalance(struct ma_state *mas, + struct ma_wr_state *l_wr_mas, struct ma_wr_state *r_wr_mas) +{ =20 - if (mas_is_root_limits(mast.l)) { -new_root: - mas_mn(mast.l)->parent =3D ma_parent_ptr(mas_tree_parent(mas)); - while (!mte_is_root(mast.orig_l->node)) - mast_ascend(&mast); - } else { - mas_mn(mast.l)->parent =3D mas_mn(mast.orig_l)->parent; - } + struct maple_enode *old_enode; + struct maple_copy cp; + struct ma_state sib; =20 - old_enode =3D mast.orig_l->node; - mas->depth =3D mast.l->depth; - mas->node =3D mast.l->node; - mas->min =3D mast.l->min; - mas->max =3D mast.l->max; - mas->offset =3D mast.l->offset; - mas_wmb_replace(mas, old_enode, new_height); + cp_leaf_init(&cp, mas, l_wr_mas, r_wr_mas); + do { + spanning_data(&cp, l_wr_mas, r_wr_mas, &sib); + multi_src_setup(&cp, l_wr_mas, r_wr_mas, &sib); + dst_setup(&cp, mas, l_wr_mas->type); + cp_data_write(&cp, mas); + } while (spanning_ascend(&cp, mas, l_wr_mas, r_wr_mas, &sib)); + + old_enode =3D mas->node; + mas->node =3D mt_slot_locked(mas->tree, cp.slot, 0); + mas_wmb_replace(mas, old_enode, cp.height); mtree_range_walk(mas); } + /* * mas_rebalance() - Rebalance a given node. * @mas: The maple state diff --git a/tools/testing/radix-tree/maple.c b/tools/testing/radix-tree/ma= ple.c index 85fb5616c133c..dfd7099f0d8ef 100644 --- a/tools/testing/radix-tree/maple.c +++ b/tools/testing/radix-tree/maple.c @@ -35508,7 +35508,7 @@ static noinline void __init check_spanning_write(st= ruct maple_tree *mt) /* Store a value across a node boundary that causes a 3 way split */ =20 if (MAPLE_32BIT) - i =3D 49590; /* 0xc1b6 */ + i =3D 49430; /* 0xc116 */ else i =3D 49670; /* 0xC206 */ =20 --=20 2.47.3 From nobody Sun Feb 8 07:08:28 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 201734BCACD for ; Wed, 21 Jan 2026 16:58:05 +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=1769014688; cv=fail; b=PbJwIo60HLFbvYqchPxuAUnA7FBIvsXBMiXaBpO3KK7W8sZuBCxW9S8xiA3u3NIA04wAoUxFvAmwBzdbzxIZBYib8aHwLuNrgOWME7YL7kW8cmIDxrP2etZJiDIGRlVoZmzRKSASNesQ2Y607/wXVmM+H2xMHCQNTd5R35zpKtk= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769014688; c=relaxed/simple; bh=jCzDH41YUxCpFjv1s0/2YnUNENGrK7G2rTXI9DLxEEg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=lcAVXzU9THBi+1AkgjZjFAPZF2DKGW5AyJr3wm4l44thxBOYUfukq28yj0bY40UFO9fe9HLWhVU1zxZ0Rw0I1kE16FDBK55+mHS2WRvIE1PhwQIfa9x0qpP4y93Kq53+c1Ivih+2ZFVPzXGSpysfthwmfULBDa5p2i/TejudIT4= 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=bATeb/GU; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=G/V9vhhe; 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="bATeb/GU"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="G/V9vhhe" 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 60LFUJiu3264931; Wed, 21 Jan 2026 16:57: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=iRn0fsS351mw15bhKjUHwsXVZaso7MWLkrabk2dfSsc=; b= bATeb/GUyc6KOZ2XXnI5dOP5yRvOc7z6siBMhGP0u7oxn94+XMxa+Ys9Z+UMrtdZ 0+jU739XWaWmPo7R7RJfDJmm/SVNddZRgVWSblwZXytwfLgmhWw+IdYm/5Ibu1rg yXYyU5JBS3oLKMy/8dzkGCgH2fq7OB5FS6VWintmEFc3GlhlQM7TwH/TSTXqkCoe M1nORV8obv2BXP1cMJVYFxSBLct1GrP0NIfloAU1d0Hx6ZoCb9Lp3XjRFjed/7TQ Jz+H8RvEl2xExN8J7xLM5Hz2xCPH22EK6uGEcm3/kMkGrmqUoUS8wityGTEy+qvC NDlbEpScuccJowKuFKllQA== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4br1b8e90s-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 21 Jan 2026 16:57:26 +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 60LGWLCv019002; Wed, 21 Jan 2026 16:57:25 GMT Received: from ch1pr05cu001.outbound.protection.outlook.com (mail-northcentralusazon11010016.outbound.protection.outlook.com [52.101.193.16]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 4bsyrsbwa0-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 21 Jan 2026 16:57:25 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=wRIZcqkSgjQx6EsuL3L6GybhWREvcnNVn8CEhKi56Go6K9jPLn7RgqsN/CxhJeJDOldigvM4M6NtOQF723YcI32B53L9pd0mryy14blSy7OLEE+g+y+FBj1W8KkXIqWnC5JLOAsYXLvyQuioyhCcuKmr1lIhbL34FAbXNSjL/L8xc+abyICbgxKJ3lGtqT/xCV6Srh+5uK5m7PoxyJnmQkCMAsBNVyAkYvE7XQa2eW2yJ/s5ErudsZ66K853muXfYQtbiYFLBa2sBypx2xsB3ucjN1EA0/K6hx4ZqZfyX5hkCQWjwX5ixtOwCf191mqq5szHvt4TzWP4/226iUdVPA== 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=iRn0fsS351mw15bhKjUHwsXVZaso7MWLkrabk2dfSsc=; b=McSrhdV367xPG3rqCRb74wgUDBR+v0FaSKQzkCl9eK90zJQqqR3lyDjHqW4bKCa61bDXKVDeVJYrdZy8c0SiIyEkOVF0OLJyEA0xPyKdNJLk4tZQg1b2NRZJDiTxYN8W8mRzD8a9H+jAYpLj0ET9TqWQ0Ud3sCK8RDDnzvda+d73/Ct5MfwGf+1CNcu1WCIw/Pv6beKycvqJrujmQGxoh/RQYuWWs7zI+Upeb1mZlHFwOkynbSvqurotPaM+g5vEncwfL+nHQ0i8JpJvkOV1QkSJPOUFuhlDW8RjuafzcpbECC97F0fiBKnbMq5DJW6+wEIiZuATMkNofXOvQir9Lg== 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=iRn0fsS351mw15bhKjUHwsXVZaso7MWLkrabk2dfSsc=; b=G/V9vhheSkFhPJEg8FH95YeYzKBEBa9TNPHV0xay12r/pr3qBqdS61aKHw/wcZNyuI/2qjSNMpq/38RKwchJnJ/I2f+9j6jwBbJ6uW8lkFN+suZAN1UFo9iBU9qDPE301wWyNP+PhqimDRyJPgibxt3r1w8oXAiZSJwFI+WTfJ4= Received: from PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) by LV8PR10MB7727.namprd10.prod.outlook.com (2603:10b6:408:1ed::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9542.9; Wed, 21 Jan 2026 16:57:23 +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.9542.008; Wed, 21 Jan 2026 16:57: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 v2 18/29] maple_tree: inline mas_wr_spanning_rebalance() Date: Wed, 21 Jan 2026 11:45:15 -0500 Message-ID: <20260121164526.2093265-19-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260121164526.2093265-1-Liam.Howlett@oracle.com> References: <20260121164526.2093265-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0196.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:ad::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_|LV8PR10MB7727:EE_ X-MS-Office365-Filtering-Correlation-Id: 5121fd89-dac3-44be-a293-08de590e2592 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|1800799024|366016; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?3oIWrjq4ckxRb9j38/k913/HYAuCP27fC/O/G/h0vl3r19OMIPO3xQ/w/eoU?= =?us-ascii?Q?Vj1gvZ++tP8hDBxYJhTEzYcFH7VzgOdjZuDMR96KevY1hQw1H62eb0Ua16uv?= =?us-ascii?Q?gEdg9nfv9T8UeZrnN3hh4YiWC5P9qGknxxr846J4OzcHajtuf9KuywOUX7j1?= =?us-ascii?Q?7ofEeOSGNYJbm/DRi6B/wJW4Rq2KZUn5XMAF5CscNQz9m0IosDvKFgoJcQyr?= =?us-ascii?Q?kj7MK5TJm/h+W5n8nv947mSgLBf+FlpKnbPCLU+vqLL9Ose4xU/t1NLTIjpC?= =?us-ascii?Q?GKCauZjsPIR+T4mYmyyUK2iOj3M2lAwr9q2u+eoO6+z26pfmV+MNMF/q38aM?= =?us-ascii?Q?L3Q2MtzvLlTz37WrUxFsEasaRNFj+hbHj/WOXsRhbKPQqvr0ixBDnh3Y7pd0?= =?us-ascii?Q?ssRZPMyEmzdi0d5PeB/4JRwdVPRg114xSaEhffdEcXpmsKhUCevY5ZBuIBtu?= =?us-ascii?Q?+5mxqgkTOR4ywLw4l8hCXcOzmSo2MH7RP1Cx3+ASWUwahVeeQi+0pCcof9Ob?= =?us-ascii?Q?+D8zT0yOkxA6efjRhxadzrBddAuvXaK0QT4vEuaRW1cl627jM4zXoFnWjqjJ?= =?us-ascii?Q?BIwBnTAKiCabBRvpkZHyKzqUjL3Y5tCUdcSZOjW3ajY4/fkMNkS3ji/K9hVX?= =?us-ascii?Q?cZSwqh3Wtn9yVe3OMXWwKQsnVOyuSG1WJUFc8G4no/5afcPbm/1oSMbmfWAI?= =?us-ascii?Q?OKa6yHvBmGz+JZJNGZZBHVFzgWidnTDUEP3QSSG0CwZBrbEQ51NuIMR/E3iK?= =?us-ascii?Q?WVImOMuAXTHiW+UOZpaojslKbDH/TsQoVIPmwdt1NfnB6U9g6kKmX5QURZnG?= =?us-ascii?Q?NcPgDdD4hHNWPfxtSrQ7HcnMtY1qoso7f3Fn98etF9KM2cpDVko9YGH8O5Rj?= =?us-ascii?Q?kjLso3cD7rpKq7C54zw6950shf0xoFDcK2/pXPOOLSkVPWF8FOKQoZebHYl6?= =?us-ascii?Q?w2xrdbzXVtxdiHHql+ml/mXMu1mmNn+Ngeg+01fL4ugCUTCc9j+erzd/W+/J?= =?us-ascii?Q?R6tVnG7R51c3MeIgrLWyp8ufDkHDsF9kjQ/Fltg+I8QSHWlhLk7J+bXdElvH?= =?us-ascii?Q?zynU6Y1D5RaB4swowzOXk+MCMCzMlFnTyerKqgnTGo5xz9sWgixlPLOQEdcB?= =?us-ascii?Q?bst1eSCtAhOW+Rd5hM/u1M9Xoz6uudS2i9dkH7//Pm8aw/PhmN+OSvoECWRg?= =?us-ascii?Q?5hqVLwBrZRuMPDyk2ZrT3e/tViowJEjLdGVQvWuuwZq7E+Lys7kZtIY4KRrI?= =?us-ascii?Q?e7IuTTX6HyCsVS1Ir+pzQ5nbALY7ZYWqsjrhD62/LrO8aCJdAXBIVZjQcqUb?= =?us-ascii?Q?CLR9ZKc9TJccXt/J05OIYUABGHlzbvGjISEBGniqFcQpu2kvtgKHX9aGZIvq?= =?us-ascii?Q?Wy+efC1PvF6A+mxH1EIXdZO7o2LZu9YhyfxuuMUgH76LtD5JT4pETrR2g8PW?= =?us-ascii?Q?tg1A+ERlZpVyznvhtdWR3DHc+8H+oIxE5aTKTBR/LjuH92z0eQIyQ+BSLogp?= =?us-ascii?Q?X88xSExJzq4S7MgNgx+na5+ZrUA/W6FLYjiwXAVaQtpxjHt2ihahQJ0iU5FH?= =?us-ascii?Q?IsZFsvlsP/7hWLlifpw=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)(7416014)(376014)(1800799024)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?AUpeZli0MEVPcItxrd+bhoTHKJtIdRN/5CyntkxG9jHnwKanK8G9QKxfd1ef?= =?us-ascii?Q?wT29BoYACZjElEFUpLuOUllJgNCTzaWxY9/sYG2Rhrs5T5hJf3yiKs5cgtVy?= =?us-ascii?Q?j/rwQaGadzqdu+BgJIwYWb6EecfEgWD0a+GlbSi6+Aw41F5UBuZ3PfQzRjSQ?= =?us-ascii?Q?JHiNHJPJOmK+Ca8U5srE2cpPRAJX+nEDMG6my2sv8+WB+EQFdCsHA5/ep9NY?= =?us-ascii?Q?BeBhLtt8rsAK3OlunOSd4MDXJHIAkIKg2lHZqAEzPIBVyzHRgfEfqecew3h1?= =?us-ascii?Q?T7ZWFgez4feGuNWxhbcePq/3FAEgIIbvPEns2zkDAoE6idj+dxf6DDyQSlvP?= =?us-ascii?Q?ryuOTYQ6Neo0QYDexAGDv0tr1Er5dqlXvKANu0tmfqEM0K4WGdBcVm1IrXAc?= =?us-ascii?Q?CJb2jybqd/tQikdSuh1fEX6qt8bDM/AnDNYtD2Cbu466oudwqI5ql8iwdYPN?= =?us-ascii?Q?uJWP3mztY+42Rit8m6nD6mdhMsFg+zLJF1OuvQo6T2MmCKFGEgUQ5anBHkLS?= =?us-ascii?Q?p9Dya6h1QAnHrubVnzp6TMsRKrAV7wl6NK3DtLM+L5YZpeYhXD/yCWyqXzsa?= =?us-ascii?Q?lqI3UXkia/RD6+w5l0gsL7EafiqneIdFYv/5dzpeAVRXUnWeRJlLoI//ffRp?= =?us-ascii?Q?gKVQ2QWjlvUKD4ZAaRqgpWcKRFSLWu2Dsqp4WtteC5kb/AtJb4uMk4LF+OZh?= =?us-ascii?Q?MX+gw236zSmTrJReqsMo9vrxgIcqw1TZK1xYhoJq5jJl+iOJdmO/RhKJJMT+?= =?us-ascii?Q?vfUpuIsUjElRlXYMDt8C5qeiT5K/FnXVoOvVWCH0yG+wGey+xAVG+L5xWKjm?= =?us-ascii?Q?VuimrKKLO/LTJL6BAhsXudrGa7fEayWRGJcG/5ZSAuf1Xz1b/zEwDFRzPshg?= =?us-ascii?Q?yOZS0MJs8DRLRlzEMz+aFPkLjuzmvO66RDglLQWEL7kSyotn7q/na2jnaRS1?= =?us-ascii?Q?HNIyiz+nOvH4OetESkhD+KKPL7YI6dRhFGya5nVpGAwb4eJl9YnYMwhavgl/?= =?us-ascii?Q?1+yUFGC4QnK1WHIRq47jYfZr0wCjzUye6tTh5/jNmoMlK9n0tFe2Cc19ub/L?= =?us-ascii?Q?/bk87NjCKzUO+u2hpYbGFnqkXSFAFRvtHfcYhNi3xKTFW38YU9zJRoFZa3UX?= =?us-ascii?Q?SEm67dE0I/55l11M2b02TXlUpPfbxz3E+yb2stRiKEbmn3Zw8D7pEICPLL0x?= =?us-ascii?Q?xBpR5qtLoVRZ1UZQH8oL6nbxv5UCGnsiSlMnA8axC/0W3g7pau5C7rXMsgkB?= =?us-ascii?Q?MNSGrTDLWztu4hrZWW8c4cwb1TzX/9G5S6XT3tobZboRSw9YS/zSdM05eax9?= =?us-ascii?Q?3m8M0jMdvvBIGnidmtzDFYN8XkkuIqLe0CSfq+xp/vhGgKFUKfllLO7Iv5Xt?= =?us-ascii?Q?PZKdWvhMJEZP5QEzbeTBfuGDIEcgTwHy373ER/90pUZfEI8Fm5X46UTCloIX?= =?us-ascii?Q?qAuZXJeiPecTm87IGjAva+vLSd99FDmaL9AzJcTAXfo2I+PGUmh9ZnDT0fLw?= =?us-ascii?Q?6klEmWHTrVEuzufRqylQDGywO/O57X+7W4QIyakfD/MCw3klHWQwq6xYEwCi?= =?us-ascii?Q?0XqN8iD2b7u7OUQrVP4wZGyzTnD9NtD0R9sGamcR5E5ZAbdES6ELvOJ/PmEH?= =?us-ascii?Q?yO5kiqJrHi2hhh7Tp3PMoKWr7GWifI2QKPq1qGa2jM5LLI2iFVvLVDTl2UlC?= =?us-ascii?Q?F7dyBx6rCqBJtLm+IDoa5S/4p7mQIbQIs4Ms0np3nF8w8GNBU7msNCsaTiPa?= =?us-ascii?Q?KcKnfRLvBw=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: Bydlmhnu8xahCV1cjYboF7EhpsotSFDFL+paW/Ax/BjK2HhmhKTEVj2cdkZB7iS1BLkNKS1ztFB3hGwSyq4xicGIS7ah4KzNO5+hSBJZal6JF13HYTkfCokAKRzkKtreWYklY861qEMSZ5zOMHfw9R1fo9hyUiZxvj89qWwEtNuVCzF3Q3TOzv88j5c9ns3Je5nZT6dq1U5oEyP92tYWrJekeNpxBDsUv53FiYs3PP95AAEi1qidMKggEFn7jU3iYW+HZCDqXuzN6/jpLZ+JvRGcSbPWW6OoQFv/PqSITJ0WbkRosvTkHViwWakonfhyyn1o1UVTwdgYEoPT7mnccJNuSbfw/hf+lwUwZ5Kpe2QA2pzWcb1NVr27Cmioc1ntMAP1l/zRbwXie3X+8SxAZTCBUomMfUimHJZsmXvp2DkK+Yu7p+tQUNGWOifmpju6KjZEtPVk+jfAsCmEAPlotzByYXLFklUpXaCMEFA5HAJyDzJ2E5Tf1dO5pLLNJWg60RJT4nUf668UxeLhrq1KDMYSvHT9di1+DzglB+EsaxTM7PRpDak3/dTQDPUFEEvvT3oeJw0SeKQX4cnm0JRz0GA78ad+uSJ2KOOhKC+UVdk= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5121fd89-dac3-44be-a293-08de590e2592 X-MS-Exchange-CrossTenant-AuthSource: PH0PR10MB5777.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Jan 2026 16:57:22.8944 (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: horFvb4XHclmDggNOhoINQb9A9thmodjymVPy7iCYkqJT6eaaN6cb8mvuCb55MLOG4RHhhuV+BwxbXXC4LVksA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV8PR10MB7727 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.20,FMLib:17.12.100.49 definitions=2026-01-21_02,2026-01-20_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 phishscore=0 adultscore=0 malwarescore=0 bulkscore=0 suspectscore=0 mlxscore=0 spamscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2601150000 definitions=main-2601210142 X-Authority-Analysis: v=2.4 cv=WbcBqkhX c=1 sm=1 tr=0 ts=69710576 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:12104 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTIxMDE0MyBTYWx0ZWRfX3g6E1vi0zSXQ cmpQZgs6OQYr+SMe7jsxDaNVs438UdrzctbjKEFbK1emLk8VjPg7jncMmi+oI8Sh77J0R0K3thr Vt4vSZp6M+g/2/hlZMtD84UzvPj+5fSigc1+RBMHjhVUJRu3DL7fkm/caUbZIU4+8W5nEJHV1r3 /My9aTOcOymnDnDMtPKdvXEFkvrq8cg/zbKZ3oS+SA1ih7mUh/K/MXkxqSSOT2v3NAuEggC0wyj B2PjnpIBxxp0XoqJF1D5WRs3jTLqXCd3nKf2/fEMZAczGVO+i2TO+jcv3dO5tKbguoHdGfFswrs 1jm4IGdJA7okWtr3vnUZfALIDMlWECZB8FWiPxasc5ILYMcoK4qB6zFtfzV3foEoM/qhtmqFz/w iuYQuqzuqoEyJscxZzDgyUQD+oVNeEsDaRrFDRyDcheXlqnNzd1YZU4ixq7Knx+ZPGa5X3X1GaL q5RIHnEo0FP6zrmKj+Y9F5mUzvUetujs/YAR2XcY= X-Proofpoint-ORIG-GUID: MSCu09pG24KlF4X6TW5zjYii0-nsVcUj X-Proofpoint-GUID: MSCu09pG24KlF4X6TW5zjYii0-nsVcUj 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 f694a38ccd4ba..6d5aa2088d821 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -3401,28 +3401,6 @@ static bool spanning_ascend(struct maple_copy *cp, s= truct ma_state *mas, return true; } =20 -static noinline void mas_wr_spanning_rebalance(struct ma_state *mas, - struct ma_wr_state *l_wr_mas, struct ma_wr_state *r_wr_mas) -{ - - struct maple_enode *old_enode; - struct maple_copy cp; - struct ma_state sib; - - cp_leaf_init(&cp, mas, l_wr_mas, r_wr_mas); - do { - spanning_data(&cp, l_wr_mas, r_wr_mas, &sib); - multi_src_setup(&cp, l_wr_mas, r_wr_mas, &sib); - dst_setup(&cp, mas, l_wr_mas->type); - cp_data_write(&cp, mas); - } while (spanning_ascend(&cp, mas, l_wr_mas, r_wr_mas, &sib)); - - old_enode =3D mas->node; - mas->node =3D mt_slot_locked(mas->tree, cp.slot, 0); - mas_wmb_replace(mas, old_enode, cp.height); - mtree_range_walk(mas); -} - /* * mas_rebalance() - Rebalance a given node. * @mas: The maple state @@ -4079,7 +4057,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); @@ -4136,7 +4117,18 @@ static void mas_wr_spanning_store(struct ma_wr_state= *wr_mas) return mas_new_root(mas, wr_mas->entry); } =20 - mas_wr_spanning_rebalance(mas, wr_mas, &r_wr_mas); + cp_leaf_init(&cp, mas, wr_mas, &r_wr_mas); + do { + spanning_data(&cp, wr_mas, &r_wr_mas, &sib); + multi_src_setup(&cp, wr_mas, &r_wr_mas, &sib); + dst_setup(&cp, mas, wr_mas->type); + cp_data_write(&cp, mas); + } while (spanning_ascend(&cp, mas, wr_mas, &r_wr_mas, &sib)); + + old_enode =3D mas->node; + mas->node =3D mt_slot_locked(mas->tree, cp.slot, 0); + mas_wmb_replace(mas, old_enode, cp.height); + mtree_range_walk(mas); } =20 /* --=20 2.47.3 From nobody Sun Feb 8 07:08:28 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 AF2644BCACD for ; Wed, 21 Jan 2026 16:57:52 +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=1769014674; cv=fail; b=J16PSUKTirlY2juLfhq9ouYPziklu8dEhZEasfEKzllR3cpUabkJGdyDHLcP0F+qwTkNQcxZsoKlhBARXZKpLiExnZy0shzdcCfkspkJH5Pkxn2aL3cRej8wZGqr5FB8SWSST0eapr+6D212HSJ7z7GDv1XjpKLrNhhPRyvlwAw= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769014674; c=relaxed/simple; bh=4yTYxuruBAJ3pzzNbPO2b0P5JB+GJhodz2fATnK+7Wg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=IpQLH4FdfDM4rG28xV7un7LM4hp2qSMIbIvlNtqu7kuOZcXun/qj7CvJbJQgRYWjFF0ISbNdc8cggZZEKgywGNpFy8vH40myc4JipOsXuAAsKCoVqJjQfFS8ldFGYkgxooLB3a4NbeYFTxKEfGgOdO0bLpcpuMmf5P64WIJ6mJY= 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=OYcCNFvY; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=v0aE+f+M; 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="OYcCNFvY"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="v0aE+f+M" 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 60LCqquD3031785; Wed, 21 Jan 2026 16:57: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=yUQ9eFVFzsseOhWKHnC0X84bu3BzNm9gjImGATB5rS8=; b= OYcCNFvY7aWLkJ3x1Y8lQOPb+3IvF9eVcoHN36hKKgI5wRPfni/+N5cRPcgTAaWp OYxmjvenrjg8lYDS2XfnOlz3RbS4E/lTCgtMuyoXZpwpVNEiANkfWckZPVrcSB0U TEfIE1WlGZQEd8EOJJzMF47+DP6/+wjdHdN+cOXJzC43QJb0tmFRqhI08SrczME+ inGdEACB48LfMx8gNHUDmeqzHA/pWFJyFgiUVfMQUnJCGGrKTZF6rAUQ89oCRJBa 1FXDW8tUNV50scQhVo9kWivQ2YN36Q+bLxiJQ772dKTdhDRlByulDGUUkZ1ScgBu e2xfLl0fx8OApITVTqk0bg== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4br2ypx5b9-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 21 Jan 2026 16:57:29 +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 60LGo10g017471; Wed, 21 Jan 2026 16:57:28 GMT Received: from bl2pr02cu003.outbound.protection.outlook.com (mail-eastusazon11011069.outbound.protection.outlook.com [52.101.52.69]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 4br0vbhhak-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 21 Jan 2026 16:57:28 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=fYDx0hS0z3nfUOBJuvwg8QvZKMhaf/nx2BFVF1VG86dzC1ttF7w3zYqZQQGUAV4wEKhYTobiYRBbTk+ZlZHcff0VCciZn8HRBvlIHnJBEdnY1aPED2KuyVgqP8akEok0Npc2QMEzIndBHFGKIw19T4OZJHBkVtJ2tFsJDVClAEaoH0E/BqMQf1yAwOEYJz/3/FGGW5D3nhemd4K087D88LOag1aYpegzS6V9NMTRQKou+tqI8EDj7077btgDad0THtdcNm8rNLeZP6zno3qBgByQpnFR7XMl743Xv+LFuQF5dfi1Y3nEDc9lQSKBAlmuh9JFaeCJ7t+cXxVqgBe0Ug== 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=yUQ9eFVFzsseOhWKHnC0X84bu3BzNm9gjImGATB5rS8=; b=ZfJ7mjFo8sHlKsbOsUrnss44MiI8p3iWO2JGW68rN5nAvyI5rI7raSIDUJRcgxhiRp1HsJAMNtjoLYVxnLgjZey6p2UY4vBPWhZE8p4jO53r/6GSdsHxhCnf8zmAvmx7+BZyEIOzurA9JKMSrZTS4b0InqHehvGpmt8sNFsRpPLVILICsBvQTXxcMdPxTziXeGYBEAOaryAFHCu7B9g1Y86VQk0VE3IXO2rFS3xgVjn5JTwVqdmFyimKWMV7Nos1NglHJ7ZrxbXu/dEITbh31LNjOWx2V3uan5mRiUA8bzXfCf6tcwqon0KrIdojJHfsDQ+pOzwGTaL7k/i2IAQdKg== 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=yUQ9eFVFzsseOhWKHnC0X84bu3BzNm9gjImGATB5rS8=; b=v0aE+f+M9QnfcospbIHT3ugEMwkNmlKiXEADBwJp9CV8dh1hbDXgSCRuGHul7iWcihjG6A/1Fr67AuYSX0lEgB+40HO6R+EeUwgZgfsv8qNPjy2Ml7czi82ZGZ3n55prKsmmxSBt9vEVx+RXMwNQ//xdYeaFPKP/GJYggYCNQbs= Received: from PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) by DM4PR10MB6696.namprd10.prod.outlook.com (2603:10b6:8:110::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9542.9; Wed, 21 Jan 2026 16:57:25 +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.9542.008; Wed, 21 Jan 2026 16:57:25 +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 v2 19/29] maple_tree: Remove unnecessary return statements Date: Wed, 21 Jan 2026 11:45:16 -0500 Message-ID: <20260121164526.2093265-20-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260121164526.2093265-1-Liam.Howlett@oracle.com> References: <20260121164526.2093265-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0337.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:fc::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_|DM4PR10MB6696:EE_ X-MS-Office365-Filtering-Correlation-Id: ed599f2f-0306-43cc-fd32-08de590e26ec X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|7416014|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?cBaGq1cgCe/Pwf/hHUzHtq/2FXIx1rd6CcILmhMAQTYqlQXWGYokpEUiQbXm?= =?us-ascii?Q?IkpgVrcP0FMvyWSCZD4Sm6nkieMVjzfebFuSKHGfzY2zk+nXgmjvqS1iYI2O?= =?us-ascii?Q?ucgjlYcUArzUM/FIjYBRdAgR4phrvuwxrKFeC2kezbn/l7kwSEPn44rqC+bd?= =?us-ascii?Q?y0CeRhLqaXjXFqMasf/fefxnKpJM5lZwryK7CiJxWxdB7dbdRrRHDJNh8piO?= =?us-ascii?Q?DqtuApkbnaSniKaETDxbiJPaPEHN4KPFhyTY4o+Aop3Z8ILqSsaQhI2iWYiL?= =?us-ascii?Q?foaahPrMsi1mBUcixjUvG0DczykF5u+7WOFv0Sk8WgSrDbzz5Qv9Je66LQuW?= =?us-ascii?Q?50eN0qHNjsRQuGY9tiPJMf2D0/eQfa6CmNw8HlNX+cFCMwkN1h2wwmt2eKX6?= =?us-ascii?Q?DKnPGm81G5LTi9+/LnGbkHA4DEFDbLQSb030+hZHCgcS7hDmhY966cksYjK6?= =?us-ascii?Q?XnHDroNDX0eVgod/E0yoFnFr2XEhNK2v/qU4XLg7/OYmJ41D/qNtuinfvENu?= =?us-ascii?Q?nr4/OcO7rpPgEGUpHeJV7a4INrdiiNx7UbOFmJPcBvZ2nVn80YcWHPB1PF/Z?= =?us-ascii?Q?Pdf5L96EOwkSz1kooBuQZbJHeJrlYsjeoXxDLj/S64KUAF0LRQKWDw4RITd9?= =?us-ascii?Q?uLemX+kc7R/TSEd3+qAdceo2YvnRPJur+TuLmPjXcS6rCW2qTI6oUtRHkMVu?= =?us-ascii?Q?b76YlAgNBa0hTeQL6g3UfDzPkF4KHCGufuA/Tt/V609PCO3cx0Kn1Z+zTN3N?= =?us-ascii?Q?WFLhZqZhvjuAbhSjLhdJMJlA+BQ/zkfANUedoI/VDPJ+s1ZYM7TfDg0zsbwI?= =?us-ascii?Q?3+SCAxkqB5AoUvU3cLy3QvgY4QZCorYr99+DMsIRbuiaSww2fq27kWRXbYus?= =?us-ascii?Q?jvVHjNDy4eKUoCV4W/Thl2f2uxqEtNPggUU+afdXLMtT8eXqhodD7rIwyb40?= =?us-ascii?Q?q4ZAh9feosjXGgvOiJpMAv69QDKDSm5Lw+rN66RbUIm2OuI9WCuJOGASkExz?= =?us-ascii?Q?soDkXZRdCzNtZX1/YV6NXlCw1wJwcC3BWk3h5kIJnWWar0WW1H/9SQAmFlFB?= =?us-ascii?Q?BbfUQx9G1N2zvMfmxG+OmJU+oxMrgRG8N+yBkN6jsFuoTw+76d3aUrQZ9F5V?= =?us-ascii?Q?A3mg93FXz2XcLmbacY35A1Bp1zni1cUoqScnpFq9cDgBd7pnBn10jqV74L6U?= =?us-ascii?Q?Hy0XI9OOgSewKsTVb0ZddWTmgLaEw5pEH7Szwfgj1K4Umd/3B/vLYMWUO7AU?= =?us-ascii?Q?Fb6b7nfJNmjHbfxdH3URs9BXmfZEFanWQKHNd14prk1k4WkcfJuhddO/zVlG?= =?us-ascii?Q?j5uMXTxLkWdEDYjRB4tkLgSqm2VRlYz40vf0sfnfp1xeJAv0Nv80L4Kp4Y9R?= =?us-ascii?Q?10zV7soVd2HdldDIitnkICtwJA6tW22D0Ywv2mKBjdN0gZyNa8IsB6S20vM8?= =?us-ascii?Q?KX3AKZACDXL2h46l7wHVF9tbwJl/gnv59F4+gJdOCLRp/YbPUOSnLX0vgHrz?= =?us-ascii?Q?9dSOpgzIdL0WME8bkBDmfwZVx03eLDfBhtv4Xv63ZTwnLWR8bs9C0N1r/DcN?= =?us-ascii?Q?RtWVnfe3udrk2EKqadI=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH0PR10MB5777.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(7416014)(376014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?5DdC348uA//VJBQHyu1gLM3QrwQOJqIt1CVaHBaUsrVF97vhCrLWj4BTHfXU?= =?us-ascii?Q?s4VaFStnaDppS4YlMtH4zqQTPkGlPR/JAxNzSLMd3a08nNiD2jsqu/MqyuTS?= =?us-ascii?Q?kftCEnNINRZtbXCI2et3ptteSlvP0o1U0AgvLudCo0+SqwYOte8Z++oae2uZ?= =?us-ascii?Q?EBuon9r+7191EBht4Gc0Yjg2uXJSJpEkatcOEJfhdTTmbSKnfIPRTSIDB4Ab?= =?us-ascii?Q?/l5JIpCJeLfY0xbyypC5Tf+GlvtHEjGg1/HUbYxY1PR2VRg+QsC6yvC9e6VU?= =?us-ascii?Q?k6i2f38lGvfABFo85l5BAqSdINW7H0Q3/pBNxawuZILN+IQ2Zrw1UI+tddIZ?= =?us-ascii?Q?raqjlRE/FjRvdjpP6kIuRlKFH76cHi07TFTs3XEoOWCOXi27ADaYe5gSfBkO?= =?us-ascii?Q?7w04D3Yoop+CsSYB68W7hBxaSZ+1Mh3xLU4KpKHVaepnU2sd4N1xLo2YGLIb?= =?us-ascii?Q?T/rygtlkImG2Y9HebOfmVW+7zjZRWguwjlG0wLc0Qr7ZCQXVhDpFCLY8VSSy?= =?us-ascii?Q?BEs4xtIlNH8HhWlFp2HUWZMpu+aZQ6ZIovCModvog2MgLDRMN+ckro9edz+1?= =?us-ascii?Q?pQxWusYo5Fae3BwKSoH2tKMnmoJJFHskFJmYhQfejwrDxiqE6F8kmw/JogFy?= =?us-ascii?Q?asy4h7uNqfKfREfEYNV2j4SY4LjurVxO7JPgeCwcxDo8C6DYZ+srYK8lBQh+?= =?us-ascii?Q?oYyF+aX39gK8l8nne0tYX7DosLi3E0wJI/Adyu6hq4WVnUUmIHZ31k+wTCZL?= =?us-ascii?Q?NjMyMYxvNJAtfPylK6YANZSIPbXO1gAePeKyUPRDgta768Wm/LB1JhEi4VF+?= =?us-ascii?Q?v1hX46hhNMDb3ShtjeLofotdxe/GeCF/hK9BDIU90y/vbDYBU9J5Ri0dejHm?= =?us-ascii?Q?tU5mh1jgTGBbdSc9mkgOps7xyZcRiWhaisANdhhI2kptz2GpVFlx5ae2i56o?= =?us-ascii?Q?gwUX5o3nVaNpmIHiltzywM1YBVebfHRT0dvQfR37CH+7ykWcijkrVN6+X9PB?= =?us-ascii?Q?MJUOy7Xthsy4eeDhdGLAqGkkb4n77p736OAdbUiEkCufgl3lUR5gg8P2rK57?= =?us-ascii?Q?8wYNcMlyEJwXh4llubWCSU0zGEdQFWrOomwvV3lUnzhgqTxXFE1QdVy8fCP7?= =?us-ascii?Q?Rvz697wqj9li7yn1HK3JKDecq5XOSfpYG5OWSdVFAAvUfIJj+bJRCEC8KWUR?= =?us-ascii?Q?FclD4VJCFa49pxPT0PERxU0z1Uzxqsfui55Q8CSHfUnuPDvVgFJLhuGle28j?= =?us-ascii?Q?AWGrSeBARyvZqHnWaH3svJWy8YY+62InO2AZZZaizyzDaj6WCZ55MrlB1GgJ?= =?us-ascii?Q?EmBtks6gBYGKQleTIT/2WQzrx2hoijuURvvMPLUhMDu4YtcDtB06fGBGNoWb?= =?us-ascii?Q?DCijGKgzoTF5nxUacpKww1BkdUYU+JZ2mckQALyJcV4WqY6YJ5v6Av4tuJws?= =?us-ascii?Q?fvQahnxR/jf3dRBj2ABStL62mLAf+cO+Q1yFGnPmm9jAZQB3JEOQEbGeRZvT?= =?us-ascii?Q?WuZO3y9GpI3SgJ0Z/R1B5mwO2J55Me+vRF9UAbGpYbt+xk+j06UrUXAPjeoF?= =?us-ascii?Q?EZ8Rd/XRwlOtbSHfQBO3bQtai/ECFvs2grpqMGKoHN6R1r+U3MJFlVFpPpWu?= =?us-ascii?Q?4FBYtSPTCJKXQJjZqCxfrq6YoLe46k159EEhwEJ0gDJhby+HDDttZHTvC8mU?= =?us-ascii?Q?usElt99T4dFq0ogb04dYTdZ2lGVhVvgLjNC0LWARJPOtYW4pOELY9EaSSleK?= =?us-ascii?Q?QwvVb9OASQ=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: DwO4WD5mIzR5Z4tOGGUycgSmEX17Ii+WrDG302lRAeNDw/3zEUw1HQX81qw1792CYLIMN3vDXqNuhFhBmvzwhQhUXfzihXxH+DvBRbXTFlT6MgTBjWLaVqii2iaFOM9uCxkChoRaLexmS46z3wPaH2jJunE8e4XR7obrwzJ32ZM586iZIKzBBKTTfXfX86kNuTOS9R1RtqG6nBWdFCyPkrHMfrJ7bPPSmd12vAXtvKkyZ1YR/IBNSDGzQYkuWpvqHxhsyxVxu1QOHDtS7u0QOcZFCk2WJQojUOL4e5KY5mAZAHLyq0A57Utq1EtCBoNMMJdISapO0fQlCx21iy68zmXtmDvw0XE2+moCbvcblhTqiPffLnicGtI1oZKdLJjCSezle8Hh4zlJBfDH59YPKdy98qb5ACxPLD68icyqs1DobMXcpg4jIy4nGKM78Rnly5DJcj7onWMEkJfqpVQ8IhFXEj7wFuqwzc0co0y4JmJUUtRUIZhFJPidPljD7t7J1a2+3KpNihqWu/fhBT3Z9tSy9KcAUxiL+nBYnpHEgP2or+eoKA+PckkGTcl55HtLUVw7tVE9++A69h4bTWkPSZF2hpn+sycqtrPjbwRhKGY= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: ed599f2f-0306-43cc-fd32-08de590e26ec X-MS-Exchange-CrossTenant-AuthSource: PH0PR10MB5777.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Jan 2026 16:57:25.1585 (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: ZFr7zUts5TO5K6tPuR+00Quw9RXt5Ku4IY922Ja9HtcifBGZHoOB6J0kB4F5gNTY8Xo2b5Ud9mTIUblwsNZHXA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR10MB6696 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.20,FMLib:17.12.100.49 definitions=2026-01-21_02,2026-01-20_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 mlxscore=0 adultscore=0 phishscore=0 suspectscore=0 spamscore=0 mlxlogscore=999 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2601150000 definitions=main-2601210142 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTIxMDE0MyBTYWx0ZWRfX5XL1XVwCbl2O AYEUAGJUyEKnbsOO0K518wwofTAMlUguCdyVrRMtMtUIdIciKfdnHK9qt8Iw1lx3Pf+V2dAN+FO NeEPoOf1jDCcCK93Qlfxmcita0DyQ3ksng/WmK5hh7UifnGR1x5cA9LgIyIngzSUehxHIrEtRFF Zn0EwYjYXhH8kF76QUtHCGLuryFI4tI1R25ws6e7b1ow/P72o+W46ouFAgxsQFNSkLgDs/ijGnT 4SB+vqPG1EpooPZKiotuvp5k2F31okAsdzFflEUzaNjeXcrlmliAHdas7MPWyrkwb2aMiVgsmI9 G2b2vcKASVX8wq6pCjIGoYJYDzO5IGqfIXomgSHKNWRvIThVgji9Lo5KixWxDpMFzyV4Jo6Z2iP BMbd9KqHEU7PNJp0XYiuAI/3qQCn20LsRYcPKFVdeDZu0hq65KzI7sdTn+Z8141Tt0kjVhd3iXz KKrhWQsNRyfN/eEUpcw== X-Authority-Analysis: v=2.4 cv=de6NHHXe c=1 sm=1 tr=0 ts=69710579 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-ORIG-GUID: nEHYVkjGGrRzK_SGmELNrouSFhGtLY83 X-Proofpoint-GUID: nEHYVkjGGrRzK_SGmELNrouSFhGtLY83 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 6d5aa2088d821..56586e4c70c1d 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -3287,7 +3287,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 /* @@ -3712,7 +3711,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 /* @@ -3773,7 +3771,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 /* @@ -4045,8 +4042,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 @@ -4209,7 +4204,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 /* @@ -4257,8 +4251,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) @@ -4372,7 +4364,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 /* @@ -4431,8 +4422,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 07:08:28 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 8D152481648 for ; Wed, 21 Jan 2026 16:58:06 +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=1769014688; cv=fail; b=qRsZZAWqeVIpAWmUvSTMpIEjHgqTO9e3QbWQK/3XVfzjhztttqDHw8nGt9mn7OL5R9Z0a0G65j+VovvOmR+kRsV0KuiYj0/uPW2l78bn+ICDXB4xq5qVFAJwAOYM3GCKqXW1+nohWqZey+Q4E30Kt2Kwx0FdHoD+3PkuX8+dTDc= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769014688; c=relaxed/simple; bh=wegvx1TgYHSXHEc06UCge5A02oYq6q/GI6NNtFUx7Tk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=HTe/HDobhHxlDCWvs+SqdmJPpn4RE7PhSqUNebkEFGAvkDWRLyY6ziEAtbl7uh+CJzHDazUX4Q+E9QVcK+itEDkGt/P7C4GhReuJ39S4GPMyEyRI18Zg/w8ooiVaJNy31kPNUI24Q/PSeOFMUPGCNd9SGAD1fC++umLHS/SFb1Q= 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=mgOrf9Tl; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=rELcT5+b; 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="mgOrf9Tl"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="rELcT5+b" 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 60LDUvN13429899; Wed, 21 Jan 2026 16:57: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=fmuMmBTqiZKI+fVfWhfAWV2tRHKSesJhQgb8G9HH9HM=; b= mgOrf9Tl3DxdovMnkgcKWStMfQ0XNK7U8mZv9RrsPT5dayl9lOwJMlsBnk3qIIjw gzBtXHw8JO6k8r0+49oTv9CJ24XLdMvP1p2LXWltE6gI2qHjxhrLnfkAzN3hVNib byoPBrpYRcCLplHGXoYWr62VukSZKYIuZgXA0AdKWGO3FDC3bGnhdXUm2pKJVZ0d KS3+3AkL/VLEVFb+zhuhUybCVflr8UftahLFyvUCCE6BaFe8584MYyZqZyBhZ4Gk QNfv7KJGQNEE+P3/A7kBPBCRz294nMW8FchtrUean8oeosmnZKKvjCRqXZ1jSyOe vcoy212IUrHd7mPth4FQPg== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4br2a5p623-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 21 Jan 2026 16:57:31 +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 60LGqYxH008425; Wed, 21 Jan 2026 16:57:31 GMT Received: from bl2pr02cu003.outbound.protection.outlook.com (mail-eastusazon11011070.outbound.protection.outlook.com [52.101.52.70]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 4br0vbhtc9-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 21 Jan 2026 16:57:30 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=RomoN8aP09zCZodHCsHQkRyyOE6itcFJFdG1yjiXtOfzBdpW5JgRhB4FAFz6kp+W8v9DMjq/xSSbBnx8Hkuk7h2wGBz6SYNdUlz4xeidIPT1L02hr+Zo322PcaUGaydEF3kbFGjE0Ocil1gAwGw5mMyVZgTMVkkOxwggk8ZAixkw2vfc6hjrY2N0vnomJaj4vMzs5igsEFSSC9WyqnksHaHbuMh38M/qKFnFXJgYP0s4Oe1Rqda3dgnI2H2EKGYfAn2RYTDcQsI2Y8t/Zw7KxT/BkWvL2irfs0gwqA3Simvmu36xRBX2EmnvI6qx9bhk9TIHu33buO6M8CBxtxxFOg== 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=fmuMmBTqiZKI+fVfWhfAWV2tRHKSesJhQgb8G9HH9HM=; b=c2UdE7ZQeLi1rsWbIlhVszxwkfuPPjGREnIVRWNW20dctwmAHcRg6fIgVBy8MAMxGR/faDeEDVOXJrkfSV0xLLwxyK2fRFfALTDLjb80MUBhLXBTS/LPdEuHZxRve0xuK8+CISmoA6uWayBdbge0kewzCjwb+8yLyLtrVnCQ2ed3VVcE8YB3gfP6MiDeveY1cUijZ/ERumzK7+rkHDSihQgR4MVM9d1p7iDmJRG7v2bKeQvmhuxBawfDCRM21q0D6lekybU50H9hQE95+yxwMhaRpZGPBLUOkVFf4ZtLTHVW9UqQktl8FmplVSccANqkWS6oAGKU4qPo85P/4oSTGQ== 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=fmuMmBTqiZKI+fVfWhfAWV2tRHKSesJhQgb8G9HH9HM=; b=rELcT5+bDWRJ9fj7BiKNNj1p9Z3mxGBMGTe+79aQ1DaLMbqY4vmMWWITo7et7R4/dcbFU/mEkXysg7c5QgjAbye/Qoz+KU6vITgBdN5n84BTqwLiSYDvLjfhYGPXC8GIeTqHp1fDJtEhgaqTxzoBPlaf4QsJ7eJNzJ6zXKGTE4A= Received: from PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) by DM4PR10MB6696.namprd10.prod.outlook.com (2603:10b6:8:110::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9542.9; Wed, 21 Jan 2026 16:57:27 +0000 Received: from PH0PR10MB5777.namprd10.prod.outlook.com ([fe80::4b84:e58d:c708:c8ce]) by PH0PR10MB5777.namprd10.prod.outlook.com ([fe80::4b84:e58d:c708:c8ce%4]) with mapi id 15.20.9542.008; Wed, 21 Jan 2026 16:57:27 +0000 From: "Liam R. Howlett" To: Andrew Morton Cc: maple-tree@lists.infradead.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Suren Baghdasaryan , Matthew Wilcox , Sidhartha Kumar , Vlastimil Babka , Alice Ryhl , Kuninori Morimoto , Geert Uytterhoeven , Arnd Bergmann , Christian Kujau , "Liam R. Howlett" Subject: [PATCH v2 20/29] maple_tree: Separate wr_split_store and wr_rebalance store type code path Date: Wed, 21 Jan 2026 11:45:17 -0500 Message-ID: <20260121164526.2093265-21-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260121164526.2093265-1-Liam.Howlett@oracle.com> References: <20260121164526.2093265-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0211.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:ad::14) To PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PH0PR10MB5777:EE_|DM4PR10MB6696:EE_ X-MS-Office365-Filtering-Correlation-Id: a4c97f23-3f4f-45c3-0002-08de590e285e X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|7416014|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?1M0k8nT3qUiXZGqmRRqqvBOv1/1+VjrnYY7SBDzV8qkHa6/yMHQC9NJpSciY?= =?us-ascii?Q?XNBIhPirxFZ9M1S+VAojhx733X/UC9x/JW2p0yFsXin1TVGo+Uu7hio+1GkZ?= =?us-ascii?Q?ZPZ8vGXvh9BRzhGLn5b44lOK9kn1msYr1BG2l0KQAvkjkWzWoXD8wQTfEpPp?= =?us-ascii?Q?iHxL3CB6rMX6RyPN8j2MuDz7RRm4foHyLPM8eBAEm6FlJUBOh6NXxZPDD6+j?= =?us-ascii?Q?T1U3w0hJc6Lgatb3aOY5TH+WqPOimJpKRt0m9Qoii/swxFRxHDZdHedZrHiI?= =?us-ascii?Q?MnefIZlS8aBfP7Ypz/wVSH5wU2PHlImBUwAxPM/lqUJ0g6BZL60dw1Jiq1i2?= =?us-ascii?Q?Hfpr68TRlWT0yd6Rh4Lfx9x/pw61mbPwrCp8QRtkMus7CzaQKmWRXgYT7nc+?= =?us-ascii?Q?u0nirOWrn27//vt2PbUVComM5590KXdHePsfLAPtzxCIN4GpnORjNLV3kMZc?= =?us-ascii?Q?ZmLMQxarU4MdI/96IcODdJjjfYSqXhCDeGMKXVfQAWjAtCuOSFD13Hpckzx1?= =?us-ascii?Q?kIfnaM3UzIZDqfCLs0PpAmti/i2EWnulbEIRSNA6xEPSbz8EsKERcou2k+V1?= =?us-ascii?Q?BTF0kW7s8XuVA2K311BTPPvCxAmxNUkS6uHh4yNmcwyxyl0LzPnL7o4KhDxw?= =?us-ascii?Q?UcWr/BC4NDXEgI1JYeZZ61puMuZRYOyAwpivlesElem0ElaUQ/6jAEvcx3HO?= =?us-ascii?Q?bwMG38vhFj7FXpoigsYy3blrXrxTocgCLI2ENoxWanHsF0cjdwP58VYuImlk?= =?us-ascii?Q?D9FHI0tL6VMFFftnBe42lmpNCICBVcHw1xeTXVxw71v6kjunrwFo00vg4oPN?= =?us-ascii?Q?87vIA9SSNvZIgu1/GdY3u+xgdfHpdwMiTdT1wdZQ70AxQOjH3kutmW6DA7dx?= =?us-ascii?Q?CdQgX3nGznXmyGeYPvsZ41fEjK2/iM4S0wIp205h8zUmy4Ve7m0OpnYaKspr?= =?us-ascii?Q?He8hpPva0ZHUifY3lHiBwGLy/4zgZAHssvatR0c//7SJzVyopzaJKRIYft67?= =?us-ascii?Q?hXG3mJj/22JwkmULoL4X1GwNcQzXB2V41E+oaZyraq+IhAvXPXcPmf1ym8od?= =?us-ascii?Q?fTnDcA50ldtnAvWP+kkpBby3nJ5yKad4psUoTyIeXdVcZx0tWgTEWr1tUuyi?= =?us-ascii?Q?jn7NTXC2ALJIq9xwjhKKoeeNU+TrEbfS99BfvhzV/8IpntvvC7yZ+DRCLncS?= =?us-ascii?Q?ZbYE5JIM2Yx8h+BTXAX6qOTocGnfHlLLF6SACrzoDTVEiJZKebUd8IP/+hsN?= =?us-ascii?Q?vggEeDImgTsu/0cpdASDFtjls50pHW7lSy1kpeF4e+P5dsj7YRORxjyCEdaq?= =?us-ascii?Q?P0e3T/1MwSjJbnoLKiDYagcL36ljLCX9iiQ+SFtjHzFEyMAcWAWADux2d0pK?= =?us-ascii?Q?qetDboWuZm09L0wQ/J2oKNvM5RfZ6pAIHtZY38Se+T1JQpEIwpeaKeLMvDnn?= =?us-ascii?Q?lhBlmOFPFXnoENccj3AnPboxWDTAheqzcAAKvjL3crwBqNjdtPKAv6EVN6M+?= =?us-ascii?Q?skGcZwKrP2rtomB+NER5PZ4wdpTBUfc87y90Wzo8cijiVAf6bSlMEDe6dufL?= =?us-ascii?Q?w3/MRc2LUDl1XpR1PTM=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH0PR10MB5777.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(7416014)(376014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?BzsWqaiUz1vLUdtTjPXjc1I2gPfPOVno1CYOU8Kk2OneZIoMf5A8ZAHPUoKj?= =?us-ascii?Q?sA66Ee9N2tqPxJxprbBduab7ZubvsZHHfd8Sz5dQs3gZNLwOSNpy28inghBL?= =?us-ascii?Q?EMO8OTdmUtXetDpVCwjpuTxXh889dmocEOsVKB0NZntSK20ovjDUcCQSFHAG?= =?us-ascii?Q?YhGHmz46YsgUCBW8iceL5TMiGMIBmSOLLnTYJtlHNkWQRZom/GvkznXwMMb7?= =?us-ascii?Q?ek5T0fxuGQwVxy3Tv+3X+Os9x5Ho0NQnCXkuZ7K3NIGhDK9I94Poo3yxx9Yn?= =?us-ascii?Q?+bU3DwX6XYfVGs+w4jsuI3GNQ0+XKhHrli8OZWMrpwTYuSHvHTxecdmulSa0?= =?us-ascii?Q?0jakXpNPuX1fgicCCC3ySHO8jeFH10R85eLUTnzqyqII7mFNMTyWC9v4RuNd?= =?us-ascii?Q?S+cIQ9aclXmgrdFAS7EfK/hwZEM9ilkURRPRz+9wcd7uFWrgh+m2Ab8HDLeG?= =?us-ascii?Q?aN18iqCrPGewy6KxazgyOMCJd/9RgdhpUiCMRbZkPLAeQj/1tpjI5rqpVy32?= =?us-ascii?Q?lcGe2qPm6Q1GLRn0eeYSzuv7xBGf/iAEY8cNRzVl8KrPbjhQTOmeuLkge8V1?= =?us-ascii?Q?KwuF65o08de/eH+OcjxfTU7enjZkDe8nEGA6IrkRfoA3pkV5xNXKV0igIvJX?= =?us-ascii?Q?18C5MwEv033fDwdhOtk6Hn3PWhEtiZL6IQoFKP8JNWuyXzHIbFE6baqYEkZg?= =?us-ascii?Q?3nu5qXa95+g2M9bnEdeVOCyUgkEksSw23IuxB3YySXrAt+dKO3Y2CSPS6QKX?= =?us-ascii?Q?cQqTCIz4ge8jv8LRaNtG1n/YrZpnZWmUKoFOEOvbbgSgwDuZDdaQSPfVGf16?= =?us-ascii?Q?Yz2O5HtAjRmz93M9/3LGq7Wzro4OwBrcRyVjaWLtOwn6pD/2zJv+ten/I39b?= =?us-ascii?Q?/8BU0LUsAY9pffLxZvvPQu+lBpGsDmTdiRobI7V2pdk/AsSNfbl0gVCVbokO?= =?us-ascii?Q?kFdnXIhQhr50qX0LyxFI5nYkH4HQySGhK30UFSddPiPhtgytU88acW3c3BuD?= =?us-ascii?Q?Q5tqYaiSbUf1XTTJZSDmr16FZzTL52HWkgFNamSTO7wNbderz4ESGvBhBmaO?= =?us-ascii?Q?GmEyFbuwyKCfRZejuQygh34jMtpf0RLJrJ3KKm40PhGwTDSZX1JN1t0mwP+c?= =?us-ascii?Q?T2bLLB2mSt3rfn7dUfClVCYPYYIoPjtH6ZS3AeWQuLUcV/xpR5HIP0SaWEvC?= =?us-ascii?Q?xBD//Sk0ObvMV9J0cHYpwR8+h+Eg7qON1fMXkbX6aokFvUQfTnndMLVx7Mzx?= =?us-ascii?Q?phpQyA92G2hqRMhziM6pKl3ZeHWXkdM1PZgpQs3GeSU5d326zH+MFq0Ej3nj?= =?us-ascii?Q?byc7nXybuh8/Z4oNZGkEwm3a/+oJTJjLzyk5FV0XvTJI0z67dxb8abJr8QOb?= =?us-ascii?Q?JPMDPVh1MaAa7wtI+AWDBxxj3nMPhc4fSbqX2UvIjsnwUHakABWDd9HXMRWp?= =?us-ascii?Q?5QF0PeGgtvQ9lWgMmYr52hFLDsVWnAr4DkLDZEckP5LjIWDDuDx7buLKiNSn?= =?us-ascii?Q?Y32A4zfxmNhhqAd28xmfp83MXF570R4Y1uy+rq86zN8gPtnuybq/7ynSkO4A?= =?us-ascii?Q?w7IxoijKqYUvVJLUlo/ClXGdMOGzMMHZfDsZsujuU4/HmiRc7cVCE/3NgZ5g?= =?us-ascii?Q?7kCVhYO02zUaQ2reT83DKjLPrVwGj+yeqFmTDN0gruEVYrWE648PU+qowSEw?= =?us-ascii?Q?vo/zXjRMTWiwnZqC4CAqdENQSn7EMoeyEtOdE4H/BQV10X/XKKnPLhXUz+t5?= =?us-ascii?Q?0g8J+N3AXw=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: awcNiL2O4s79gnA424FEMHHSNs74pXaPgU508iOo5fWKlk8xiPy+3+zUHayRKwsqVYnIKqDvluEP/zAIuRVVzTf3E4JT/AhV1L1INtOnPhkUIMmi76ibaNnGwiI/CzYeuFF3W9D9R6HEki882lLcxVj77ACzFKCzOY6aLOUFszwi9u0IMV0tNzxSi781HCg9CC0BVUi52yih238gUY6FlrgoJMzReraGOm2zoYnPRH9QKeK5PRaIw09E7U3p/3Kc//Gyl3SnWLNsHd+KGgCwo7jV/z3AkliU75hWnoWhWaQnzXDzTNUQmQgPKPrOKuWW2ZZA1xUMJrOjGMaRy70hDAqTkEeUYUBwhV1sWiQYb6oF+9sKGaLbmXacm7qv/6RAsGAIJ5DDWx9zVh4XATdCwEoB7VKar+0u0c3PlJauOMIp+YRriHE+TE9zjoAWbbHsEHYARi4HhT3nFlSgY72bZHvuYP4aEYJCu7AyoAvfk4tKrvOFOWfdkqXikeTg8nDejVP/bqgcrvhjfMNregWpl566E3AItiobE+Kon9Av80fRm58LPHfyiwZcHKc1Q43a8blgT+c/I3+t6fXPq/0rumniOHuqBLoj7skaKXzQdvY= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: a4c97f23-3f4f-45c3-0002-08de590e285e X-MS-Exchange-CrossTenant-AuthSource: PH0PR10MB5777.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Jan 2026 16:57:27.6005 (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: dy3tDqJqx/GW+5Veqykc2/jus0pNPHpHW8aHW9x4OC7MXKMtQLQuCcA6OoMppJBMxqW4GHmpY6nIpm8kL916wQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR10MB6696 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.20,FMLib:17.12.100.49 definitions=2026-01-21_02,2026-01-20_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 mlxscore=0 spamscore=0 malwarescore=0 bulkscore=0 adultscore=0 phishscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2601150000 definitions=main-2601210142 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTIxMDE0MyBTYWx0ZWRfX7tsGt0l4BGmx UlMiEhNL1/14ByevsMxXLQRR8+THQ8bEmw0m3jrWrcvQdI4WN/n0usDoL03PnmYtpIxAn0hVJQD RQkakSCYmQqvH24q7l9WWlBJ9XgMTRIR13O5pUI9A4GCFSeOSi5plPHb+R9ee+Jn/shICNw4K44 GB6BdQmxXQsiikvkh1P3HgPLtIeZ3U66jeAFjRbCMFoBk8U4LgbX8YIykpc1+uDci6QEgFeWf08 ZMiqhgR/rQUo3JclSFQ+NfnsFsJdOEoFSV3S9bCg7IbZHJ6LaaKwc6DhraxIk45k2c4BQO/cTLf IvhZOfWf9fX6j/XJeuv2IJ1B2WM+m8aaEaA69cTe7lU/vzh7W9cIdwThR1eZebjOdvk5YoWPAyw DEA8inoHRydWL7vuutNIjymz4k7scfLR73yQneLkF2ytNZ+xxnlBNmj+byVSMJjAwTIrELj86uv 5Kv1pFxTn1j4GBUz56A== X-Proofpoint-GUID: rcSbxY0PmJRBdM1EnrPAOdjwvpHux5Kp X-Authority-Analysis: v=2.4 cv=XK49iAhE c=1 sm=1 tr=0 ts=6971057b 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=_NXkmabX6IJC5lhnbH0A:9 X-Proofpoint-ORIG-GUID: rcSbxY0PmJRBdM1EnrPAOdjwvpHux5Kp 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 56586e4c70c1d..005cf46aadc10 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -3713,24 +3713,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 @@ -4367,19 +4349,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 /* @@ -4410,8 +4407,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 07:08:28 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 644094C043E for ; Wed, 21 Jan 2026 16:58:05 +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=1769014687; cv=fail; b=j4x1r4o27ERKzNCN3qOvLo5hdv/1n+x57zSLCvo92C1Dw+pJZZWg2fzx2cH93kyIJgMONxVruBWiKtyWjtWlSslHH5PJ6LsawDoMwjhASOa8F9umqoCWv6K7+RXBAn1oeqve4a4XHX5O46w6lxspJnQ3yE8ziKdRq7+053SyGz4= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769014687; c=relaxed/simple; bh=BRFYOonGdqvAuz1uYTWskDVgYpk5RPUmUD087cMlQdU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=pga3y+USiSgLnLsg8w3kZP4z6gzHtQY/FTTHE3V0lC5ZtoiB49xFOK1MXFaLqUbYn3NVD8H26U86dYtP9WvbOpObhMg8hD0H20dtld2YXi+WBMBMvdmjZvXlc1AYBldJOg30K2FYgZ5R5OHgmcWnlUJfVDeZr7FBf/A8kCzni7Y= 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=m5DIqQgK; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=mycd4cov; 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="m5DIqQgK"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="mycd4cov" 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 60LEljR63029078; Wed, 21 Jan 2026 16:57: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=0n7H+usa/qUWTCDLeWd4ZXGdk5/3Ptqg3L/u4308+zc=; b= m5DIqQgKPKEq+S5ui5ABmqS27wygqX2PJ+u+eXA8eS+PRK6zXQfh8IzewyG3lchN noyS4oPk0aepDkYXOGodrIexc4/8AC7dnuPhsK8EffDnFBxqGrgnsg6iQpndUfxO 0aKSjt/TjfJoeK6VWMz6OhRSdb0DfXKozTNem8tEViMJgk7BGa28Wgpi4l7iRaaO CIqr+iXejAdKbJVWwIdpJ549fNgQQAwV5sbsJZ/0hrD0aG1bXmImx7I2icPYspW6 Wn/VpDfWz3TJnDbNqZT/Vs3VpJSF8iqKwtRNeZ3eyhFf1W88+PpqCq8JjfM0h33b SCipQUigMLlqyiGzQ3A/LA== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4br10vx8nu-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 21 Jan 2026 16:57:33 +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 60LG7dnx019003; Wed, 21 Jan 2026 16:57:32 GMT Received: from bl2pr02cu003.outbound.protection.outlook.com (mail-eastusazon11011036.outbound.protection.outlook.com [52.101.52.36]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 4bsyrsbwdy-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 21 Jan 2026 16:57:32 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=hwmgipf93T1hl3ljFwB7VLMsubJrVxPHM2omA6yRoLO2JZSaUfITAx6dVQeZs+NpaBofrr3K1B4aq2qESM4WGg7OErIlK3QxSUs97lZVjRvhUBUp2lndoykBoSmnDH4FWcYToLjZKXQQt/xeFH+hzwBDKyQP/BMDARR55sbqrycJDV7b1m40LMDi85A4P4DPKrWrzmhYDrC+RYfvCuNwUFVLXpqntraKXFzjI2oX/sYloNJBbep1BDXlMYkqPEcOf2rqe5gaHfbQlSJsqeoGLNFxJek+0wl2jNVTXN2IYj5Wfzav795JADktDzXDqbOZ3/q+hqzz+qf0xpOgrdkMoQ== 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=0n7H+usa/qUWTCDLeWd4ZXGdk5/3Ptqg3L/u4308+zc=; b=BbgxLnbOA9IJIJj2SBK+xFc4gutEbE0KbZVs14AEgmFcTcmKo3BqtVxkOV7RKlOBZ7RGxkNnGBu73+vt0v3KF6eIy+xS4daAZY08AsA1IGcFphDt81vg5TxXAsK9l88+RwS/nBdUg5kusFfYDHXUgx5I7hfAcgzatEptK7OFjZ1nwVn50SshJHDjxYdp9PAbzz9jvk1yDR2SNYeN4Z15XsPXN6NEtZYFeha6gYLxGsNalQ+A/kgjzykzEJFRr1ChUWFOjkTCtCx2s1eDCn5asdEtDqAoHN6wkLPcFcWcqjWpV/d/824Op8V0MMlCz9zvEOWbjQtJ2EElAZVy5zZICg== 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=0n7H+usa/qUWTCDLeWd4ZXGdk5/3Ptqg3L/u4308+zc=; b=mycd4covQZFCZQHZKecRW6NfdMKl1Z8AL3Q7F1y/ezpqyZIywQd/ZLnlQfwlmQ3Avekv3gagjGQiVsrdgiiQ0AdoHjNvGTOd+0VG3gWc3jLSh2J1prXC68iTpQIegcv3hyrwj52omFpNu+97eHxsRz64iSN/DH5t5ESI9A6XYfg= Received: from PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) by DM4PR10MB6696.namprd10.prod.outlook.com (2603:10b6:8:110::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9542.9; Wed, 21 Jan 2026 16:57:30 +0000 Received: from PH0PR10MB5777.namprd10.prod.outlook.com ([fe80::4b84:e58d:c708:c8ce]) by PH0PR10MB5777.namprd10.prod.outlook.com ([fe80::4b84:e58d:c708:c8ce%4]) with mapi id 15.20.9542.008; Wed, 21 Jan 2026 16:57:30 +0000 From: "Liam R. Howlett" To: Andrew Morton Cc: maple-tree@lists.infradead.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Suren Baghdasaryan , Matthew Wilcox , Sidhartha Kumar , Vlastimil Babka , Alice Ryhl , Kuninori Morimoto , Geert Uytterhoeven , Arnd Bergmann , Christian Kujau , "Liam R. Howlett" Subject: [PATCH v2 21/29] maple_tree: Add cp_is_new_root() helper Date: Wed, 21 Jan 2026 11:45:18 -0500 Message-ID: <20260121164526.2093265-22-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260121164526.2093265-1-Liam.Howlett@oracle.com> References: <20260121164526.2093265-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT1PR01CA0063.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:2e::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_|DM4PR10MB6696:EE_ X-MS-Office365-Filtering-Correlation-Id: 5e22ccfe-c9fd-4f33-b7b8-08de590e29d5 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|7416014|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?uf1x7XnXfvQHUODWjtOpZ/vKSHyWYk85DnBWEQkRyZZIYwQf9l80ZWzMzJCf?= =?us-ascii?Q?8Cq4u5uGD5HYkFJeyB7XWe8Y5WH148tT5n7+sV1xKSW7DuLG+HoYRuKMbsYL?= =?us-ascii?Q?I9IoX24z9/fdWjMp/rBr7BcO7c1f7cop7E+YCsuYAUIAbnTGvMqulnw7P7Kc?= =?us-ascii?Q?8II+s+vPllQljefxKN6YFNjaS3v7Ce7mVMwO03yPbOuVmHBoKQMb2a/bEhJB?= =?us-ascii?Q?4JAVXRb0bsJB85Jq6+klzABIjjxH/wJDztmi/19SqYm5aSb2WnLSFB+bbmNM?= =?us-ascii?Q?WRThV4icnozU8oVGNnSTOXePUA/P23OfwkELH/+Rv23bmCXMTDN26amJYtUX?= =?us-ascii?Q?VvqDDRHFI/tt6d91xX50SyZsPUQzVQ7FwaJGWuaZIg+OYVATpkt+gf/Ruv1n?= =?us-ascii?Q?9rva6SHVDYY+yp9EozpHGzHz42ZAr2z3wPKOL99J2py8jGa333I1obM/ab9Y?= =?us-ascii?Q?ROcmJoD5AUShfKahT7NpZbn6wFF4Gg9ShYR1dcANnStTBDQkwr0UP/S4z3l+?= =?us-ascii?Q?kCnQkF/FMAryWGOpTbr+HFBNeljltvECXLdZ1sVUq7JJaKyDR9lLbPyXJbUm?= =?us-ascii?Q?ZX9m6useYJd60fxKr0VIDS4b+D7lUr3i+K5ZtNOkcsEaBzUGvpS+uW+cP6tD?= =?us-ascii?Q?DMtagR09NfrXKRlt6EQbOn3DiP6isPj6OOTEY8szyqCEMXpOGn7xRS06ru/Z?= =?us-ascii?Q?FRhmovE7qyV7ckK0i3JKJ44y6w+docknXtGGwNqQxZBVmq1qXeZhD5o9OHce?= =?us-ascii?Q?u3j6cyJ+Jm8U+UpQ6PJ6IF5q3+iYOMzyu0Hr6+KmDmMGW8eJZp0Ol2Sgvinz?= =?us-ascii?Q?P/y7mxgnOVWVqa/tSlXLOC6KYMhX77cViIEUHBlfDA6ePOWW7M/yNm0cRbAD?= =?us-ascii?Q?Qg16KyxwhERruaQrrReeNOk8azMWcMQ2zxrx791kj+YwphujvRb8/UY/u2tj?= =?us-ascii?Q?ovhTc+lEA57M367Qljo7iZCBVGaidEhytKot/easJ13Qa9YVfGbY6O2d77Wc?= =?us-ascii?Q?WSwCQel7KUqO03HRMhMoPM04brPOozJXaMDjkT4Odr007U2qRNsYp7Mpd6qG?= =?us-ascii?Q?vmusmzV+9loMV/VAPTRokyizaq0hc68OOaouCB0wajEZ6GDYOUEw0c8L99tA?= =?us-ascii?Q?SUGEZp0ommKSn4zHgnG/VUZy50HBb5PHnBQ9tbpxP6VpQXv20oEmSMt686w7?= =?us-ascii?Q?OAQNNDMe13DrfDQTtPUyxIkGTcSSQGu/bCBS+dM7kt2UzZogUT23T+coGgGP?= =?us-ascii?Q?kKn7OWixdpcNXarYuYbOh6M323F44yGvPIcxprhGsbCgWM51ZpIpEKJfZskR?= =?us-ascii?Q?c7CIRvvmSI6sj0tpkw+QKhEWjaSQzyPjzpX/FhpZ9lo73HipXrZ1fgnNa2PM?= =?us-ascii?Q?GyNuwLtTtN5njrA/sPjqm0h7rj3ubrMiF5bS26zUOFR2vy3I4PXcuMfuRykn?= =?us-ascii?Q?nI5PtEuPj2+1Aqqe9Ke/+kZNss1KBkMuFRimQcxmtzx0ngIqlM3VPMvCYkpR?= =?us-ascii?Q?oiSqzJf7X6uxLaVkMOvXFbxXMXcvhAUO1Frd0yqDHhAsi3rpWpaMtII0bgb3?= =?us-ascii?Q?QRBypsouPg7gaSA/DXY=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH0PR10MB5777.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(7416014)(376014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?ONupbMcrm0dXLsaD9cwEV+6YcsEmT3ATolpaEjM1ZhlUkit2jckdRCaPTvLS?= =?us-ascii?Q?2x3O9FrPPfzxnqLxZyyoYByxgOHio7HGGdE9dsDVFZM5y0gisIDpG9GrNtq6?= =?us-ascii?Q?uZ+NXynhVKm7PCdYvTKRIfxoB+X/qZ6xXrKJ+iRL9/8lSTXoN5NaXxzDgjmy?= =?us-ascii?Q?7upL5pMxI/SQQt/fZoJ3XtXj9BcbJMu5WpxzzFuRH0gl3hTwSS4U4YMDgyP2?= =?us-ascii?Q?mqrzm86OUircim9R2z/RpTifaPhcajgVCDdqOK/+Zpsh2qh5pjlysi+JN9xQ?= =?us-ascii?Q?EpjzfiFkO5qFLma8myRxCMd1LTtRrH1aaFmujHpoMbCqo0rEpeEvggsCOu09?= =?us-ascii?Q?pZk/hvMvTP9F+eRRTG8Jigxb6RJBy0d/PLrsgMUGkkScvTOt4PCylWIPlJHV?= =?us-ascii?Q?YNO+hYygzazA5+GPzk8bXHU4NUQAFyYU0KF31DMRTXjOkCR3D2YYxDXG4Wfn?= =?us-ascii?Q?VIfzOPuhxpAyg9dW3vDaA3qA8ftmdMKH1RxRb9zu8Sujrw/taDtfTgMN2TjJ?= =?us-ascii?Q?nsR9C9fuW5DpHZq6Z5vnWckYQPqrXOQdCZjDSSCOy8Ie6FZZnhwXWSgRQYz0?= =?us-ascii?Q?7JYuu95qeTrFkY3qCFuUKF/MK9D3qc4yBU6C9LJzI4x4LAymDQdssWBm7DKV?= =?us-ascii?Q?DULVkeLSTCVkkhhCXNQLZJD22hrvDrPijfTtF7g9m1m/uS7TQxkAUpztUDCv?= =?us-ascii?Q?bLHCvIJX3gInD0vQ1zN8GbnHv2Gn8VHvYu+e4meG/J8+4EXcTJHno1uf9C5z?= =?us-ascii?Q?P1p9LqRsZfk0Yim/ntYRG27kKnGLvZNX7r9gOYIqILPtytNrkjlryRw3eF9q?= =?us-ascii?Q?jefRAFHob+IKB14p6oRPxgiHmazA2PJvSV8iFQMsi+aXuAPnp4Df/TaaOpml?= =?us-ascii?Q?cgtfdYAzLrT7J7Yj2Rnn87UTSI9pZ9N9BMtTMW72Q3mFXt3yknfZ+inehIs9?= =?us-ascii?Q?Y+UuYwdXb00TdMKNZ1wzLJZQwsG2iFktaE9GM7hUBebk9XVg0aMYCK56hI1m?= =?us-ascii?Q?Wrrx7jP82JBcFld/dNMLWQHiGFZB0/BA7Q0VYa4EgUODLi7/fQ60nsJXKe8Q?= =?us-ascii?Q?LrkGeqxNLYeVh/TtwlIfWRHTt0FtMppnAGwD98HORaGfSkYlgzZsrNpKe6y6?= =?us-ascii?Q?53XJSRO7c6I4+F1Wtqkf+vcYk345r3Jf9SyIChOvWMJIkTHre/LF1dVjbj4s?= =?us-ascii?Q?lYKezqAZNmUZa3JmvWpkHdrhHbUOCkPOzvHjSAYkbFU8hTmqXVup0Tw4BjkU?= =?us-ascii?Q?fCLiHvnPHA24hXX0umMB1U+D0L4fyxRgWMOGKgG8kvwC+841g4xgPZGtW2Iq?= =?us-ascii?Q?C4JtDy63nmYD//SMP1FwiaKnaDtcCTUPLs2nE5O0r+nNhfiN9gcg+kvGEZw6?= =?us-ascii?Q?d7CJQRcHiwBqnaIu5Kss67+jXAayt9Tm+uFaPcyjRJDLZBIsiw9ufrbZwb9r?= =?us-ascii?Q?FWSizrgZ01oiQwygFWh13lhCQPVL3iTJFQP4EM6vs7g4QgcVPj2ZX794MkY0?= =?us-ascii?Q?FOY6G3Ls65b3PIw8Y+d7/m4tWD7GH9KWG6oGHIUEtvS3kjevh2DfaoDztuUL?= =?us-ascii?Q?+QK+V/06HjS0wgkwzUi75gtHp6EWAs0SxNhwK9gki0Tzv0UYjAtBF9wl6hMK?= =?us-ascii?Q?C+fwLc3D2m9l40gxkY11qS5By8dUdf25cSSQHHbH33aJ9wvemWrbsXAJhbWM?= =?us-ascii?Q?H6koei7+mgLqNn40NAtT/O+yXuI/YodNUD6nSz2zjXJw7JjCD3NoUT58tai3?= =?us-ascii?Q?9Ljfkp23FQ=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: HToB/5rzvcnri+UeU9Pw0zGN5YB/FU8Fykm5F1quJf7qwcDz/QX8gvnZWmBTdrV/YHfji2F2y+rkG9rF8vJdAmoHyBCli++zM3BhH9ZgUNqWqdFojn5AcPZT6uBCZvduFfnwvDw7DxlX22cju7YJvtolUXcaVuMLm4qQxOxxSRnCsvL7X+NjVl9P2kHWwpz9mjokTUHt4HujHs4JdEsEH3IJhtqhS1xZnhW3il9by6JB53NFyR0dTOm/DLtXMZ3jTWX76n5fqsjcfqVeYv/9BJD4W/3K7iQNAneyncHuOjW5Epn6rVDCIbgzKYDjN2C0w6MZD28B4H6Yxz/ZmayDjmg9LOShT8weS35EiIPfpniRi7hWJ5Bj4QCy4IuTzpiaExx9loEGhNIB4N2utCpoV3NfsM2ci+tQS41o+f61dh29xPxeoN/FIsT4yB1LG8c9E0Jdoy57m3NLevQQ7xBfem+5Zd4eq/qTZJL/vNrd/E7IE8KJTjSTq9q7nigBbFRtb6kojNr9cUSmf6IRIYXzvDfFXNLCGtLsWLeTmtEzMyzrTSfW5FxgawTqdk5Indc0Nn2JcTafPy2nRglk2vx6RnenOIWtP6IEvoRkGao0DbM= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5e22ccfe-c9fd-4f33-b7b8-08de590e29d5 X-MS-Exchange-CrossTenant-AuthSource: PH0PR10MB5777.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Jan 2026 16:57:30.0377 (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: nbxsqXxVhnCcigRILd/PXI/GPEO5bxxzHTKtWCg7B8L8DxdLUV2tz1ODpgj38hlP0XosJ/qmSAGWl+dMxzgLZA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR10MB6696 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.20,FMLib:17.12.100.49 definitions=2026-01-21_02,2026-01-20_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 phishscore=0 adultscore=0 malwarescore=0 bulkscore=0 suspectscore=0 mlxscore=0 spamscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2601150000 definitions=main-2601210142 X-Authority-Analysis: v=2.4 cv=H4nWAuYi c=1 sm=1 tr=0 ts=6971057e b=1 cx=c_pps a=qoll8+KPOyaMroiJ2sR5sw==:117 a=qoll8+KPOyaMroiJ2sR5sw==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=vUbySO9Y5rIA:10 a=GoEa3M9JfhUA:10 a=VkNPw1HP01LnGYTKEx00:22 a=yPCof4ZbAAAA:8 a=j0p3HzqOWq5dXWzuM78A:9 cc=ntf awl=host:12104 X-Proofpoint-GUID: ToJQbZSlwbfW0liBSOmh8DUWbxYdHx7x X-Proofpoint-ORIG-GUID: ToJQbZSlwbfW0liBSOmh8DUWbxYdHx7x X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTIxMDE0MyBTYWx0ZWRfXzSeSms0B55Hz q1tJ0Ryhr2cBPWeiRfmwKEBmsfUQ5VTh6CvxmscrBQ7MW61/78GP/GSImI090346WayPcEKkcCs tpWOZ8NrizmjZZCCu/OAAB3Bd3Qlz6XoE2JMLga0wYG0Ko18b8DyE29igiiQcSGQKWogPix23pH FLcDX1f0sw3cRymftV6gDswd1FliY3fig3LO3SDvbIK9R1ILcsAQSfWTb0ZXIpWhJWQG2f6qjGk cASeAYxyL1gcQzrt5IS98R4AjTgS1acUkvkvTrGZiXn0bUZY8yeT8gq+cg4zKHg6i6htcE963RD fIBWzTDCKYTmUO6bX6ErE+AyceBGDCictCauwIXrMQOaIcL9hj8TYTEfqdjygry1v+CzL5wGYhx R33rKwvbYjqSeLQ/IwkpVQzeHN7nLdgwCMssh3xlquAueiE2B+/J0BUbPDyp89wSrqBE6udVPgQ 7/2c4PVfpODCaIKGYAySCjdxZ/rHe9I6sWCtafvc= 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 | 71 ++++++++++++++++++++++++++---------------------- 1 file changed, 38 insertions(+), 33 deletions(-) diff --git a/lib/maple_tree.c b/lib/maple_tree.c index 005cf46aadc10..326d6026afee3 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -3330,6 +3330,43 @@ static void mas_spanning_rebalance(struct ma_state *= mas, mas_spanning_rebalance_loop(mas, mast, count); } =20 +static inline bool cp_is_new_root(struct maple_copy *cp, struct ma_state *= mas) +{ + if (cp->min || cp->max !=3D ULONG_MAX) + return false; + + if (cp->d_count !=3D 1) { + enum maple_type mt =3D maple_arange_64; + + if (!mt_is_alloc(mas->tree)) + mt =3D maple_range_64; + + cp->data =3D cp->d_count; + cp->s_count =3D 0; + dst_setup(cp, mas, mt); + init_cp_src(cp); + node_copy(mas, cp->src[0].node, 0, cp->data, cp->max, maple_copy, + cp->dst[0].node, 0, mt); + node_finalise(cp->dst[0].node, mt, cp->end + 1); + /* + * Warning, see cp_leaf_init() comment and rcu_assign_pointer() + * documentation. Since this is a new root, there are no + * read-side operations that can view it until it is insert into + * the tree after an rcu_assign_pointer() call. + */ + RCU_INIT_POINTER(cp->slot[0], mt_mk_node(cp->dst[0].node, mt)); + cp->height++; + } + WARN_ON_ONCE(cp->dst[0].node !=3D mte_to_node( + mt_slot_locked(mas->tree, cp->slot, 0))); + cp->dst[0].node->parent =3D ma_parent_ptr(mas_tree_parent(mas)); + mas->min =3D 0; + mas->max =3D ULONG_MAX; + mas->depth =3D 0; + mas->node =3D mas_root_locked(mas); + return true; +} + /* * spanning_ascend() - See if a spanning store operation has to keep walki= ng up * the tree @@ -3352,40 +3389,8 @@ static bool spanning_ascend(struct maple_copy *cp, s= truct ma_state *mas, } =20 cp_dst_to_slots(cp, l_wr_mas->mas->min, r_wr_mas->mas->max, mas); - if (!cp->min && cp->max =3D=3D ULONG_MAX) { - /* New root */ - if (cp->d_count !=3D 1) { - enum maple_type mt =3D maple_arange_64; - - if (!mt_is_alloc(mas->tree)) - mt =3D maple_range_64; - - cp->data =3D cp->d_count; - cp->s_count =3D 0; - dst_setup(cp, mas, mt); - init_cp_src(cp); - node_copy(mas, cp->src[0].node, 0, cp->data, cp->max, maple_copy, - cp->dst[0].node, 0, mt); - node_finalise(cp->dst[0].node, mt, cp->end + 1); - /* - * Warning, see cp_leaf_init() comment and rcu_assign_pointer() - * documentation. Since this is a new root, there are no - * read-side operations that can view it until it is insert into - * the tree after an rcu_assign_pointer() call. - */ - RCU_INIT_POINTER(cp->slot[0], - mt_mk_node(cp->dst[0].node, mt)); - cp->height++; - } - WARN_ON_ONCE(cp->dst[0].node !=3D mte_to_node( - mt_slot_locked(mas->tree, cp->slot, 0))); - cp->dst[0].node->parent =3D ma_parent_ptr(mas_tree_parent(mas)); - mas->min =3D 0; - mas->max =3D ULONG_MAX; - mas->depth =3D 0; - mas->node =3D mas_root_locked(mas); + 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 07:08:28 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 A999D4C042C for ; Wed, 21 Jan 2026 16:58:08 +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=1769014691; cv=fail; b=Bnu9Qd6pDAZY4Ks5xX378gbLxBaL2HxmtV9jnVdFLZzgHFZS9kGyvpjiw/NLa60F7NDZkUzHWSyvuyX1Z2KPqIDWnW3vpfLlIpr1FhtISW6Xp2U2u21ouuLyhqK7dgWBl7/ifhP+LHoGxw175LhvDwgt3eCsuriLAZVFD+ockEA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769014691; c=relaxed/simple; bh=WC/twMFke6y0rNHTivOK3ybnRub7Wdt/ZCxvwBjoNWo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=OqlOSiKB4vTNzq5hyKg4WM2vQ4qSngjFOePT60lDKFsdaHGVZ2GQ/ETd3BBTFO0/yWEd4NqBqV0PGX52idQiNKBke7e0Q8xv7TmrL/+RYtQWYlk09iNoXEjWNhYERK/XQZSfsPfXqNsSmS8O/Bd1TEFwz0SCtJumTLMy2R98cbk= 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=AabthXje; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=s9GQnJeG; 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="AabthXje"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="s9GQnJeG" 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 60LEIFjE3429885; Wed, 21 Jan 2026 16:57: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=/WCDxHSnVjY1D7rDROP4F9efGJ5bHZcczysaereUs0I=; b= AabthXjeermcDe1dPbYyBFZoEFrKKWSIk8Gmr6wM+RiOx+Z1PGEBk9g2/YCMwPq1 HP21OACraExwTixrM1eq+JIb2QhP9vEmmnzs3kvUndJ6z+VWw0MxGLUT8Bc9eb7m P1mAmKECrp8Y12OKHe/tokn0iD1gfi68n28OhNlHLzK0VRuzurOMHu+7vyRWstce yq560zg/BOgiUrcZRJSwVwo9/cRmnXkoyzMQ93XQgV+LXXCIpYZUI1WA+OFeMlmH lJeCvnnuEZXCy8WdIZw6FSYoTgc4PqELJwf32Yrq2TIwwvrDKxs3QpzfLe89fvt5 rcWoPQvrfREk/AD3z0I5gw== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4br2a5p62p-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 21 Jan 2026 16:57:39 +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 60LFnnrh022456; Wed, 21 Jan 2026 16:57:38 GMT Received: from ch4pr04cu002.outbound.protection.outlook.com (mail-northcentralusazon11013005.outbound.protection.outlook.com [40.107.201.5]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 4br0vfa0u3-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 21 Jan 2026 16:57:38 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=WKPN8jzgesl/lrNqVl7lQqilCw1GN58YoIC/H7HyQUrkxUx0Pk+jag6SnIkF9AvKiZw2H0EKgCqeoIakBFVsGOigfVKdp8iNYcYyfpp4xH9sXpXnyA12dR8NgYUXg5zfhYS95AvMk2E0Z17aG91vnEMtRFlMhNUkhO7OvVK+3clWc1FlJBlWusKR3oPes8bEXWzwcUIm/rrMUq/E3D/U6O+2hbW4r4eiwVOst0Woe9n8W6dWHXjaVkaMqW2n0Hba5OzyNrKT+8Eb1DUSRcDEBX/kfruLDGnIOH3M9hMi1kHLMBP23gphmPGyT3+Lw2mSgs2gO6DI48maMcxAVEyyiQ== 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=/WCDxHSnVjY1D7rDROP4F9efGJ5bHZcczysaereUs0I=; b=Evw/QoybfgdghfNaJPm3jXBHLMdyzjWxPLlPI9DWRWogZ/TYXpfDd7AG6v2n6NMPwRP9eO2cBRBiVpsYO4sdf8/gPQqwgsPZ5JtkHCT0Rrv1V0NHZVLeMrEdBlMahNevjm9fYO8dZ7fcxJrYHwlvIrdQG+m/LPw8H/vxFYCv5DEPh2qzrvK+BbuDPN92A73QQbVIDdfRmReBh8C/DPqedBc/+E8ngkzTq5P4fepREUNU5zBp1Nzwz5N5NFe5Yv828TffSDKqGAcAZX0QfmEmdZYPRoE1rkJqPa8IqvgvLeYWCSwjkfHWJ8UJyuo7uKrjjJAGDCkqrcaJHZgtJiOT3Q== 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=/WCDxHSnVjY1D7rDROP4F9efGJ5bHZcczysaereUs0I=; b=s9GQnJeG9Rb6TGX8kK3K8yNNnGm/wfGO6VIEOCkOEEvP2AvMBgx9BCYRNv2Uyc4bUYeoETn74junZ45OLi1F20tPd7Ye7f3dq/B13TTesH0tDOBp1cz2pHM2QEHKhujxwaHdLENJ8kG3LeMNFoxKByVXkW15eIp/CVe1G97s+ws= Received: from PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) by DM4PR10MB6696.namprd10.prod.outlook.com (2603:10b6:8:110::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9542.9; Wed, 21 Jan 2026 16:57:32 +0000 Received: from PH0PR10MB5777.namprd10.prod.outlook.com ([fe80::4b84:e58d:c708:c8ce]) by PH0PR10MB5777.namprd10.prod.outlook.com ([fe80::4b84:e58d:c708:c8ce%4]) with mapi id 15.20.9542.008; Wed, 21 Jan 2026 16:57:32 +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 v2 22/29] maple_tree: Use maple copy node for mas_wr_rebalance() operation Date: Wed, 21 Jan 2026 11:45:19 -0500 Message-ID: <20260121164526.2093265-23-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260121164526.2093265-1-Liam.Howlett@oracle.com> References: <20260121164526.2093265-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4P288CA0057.CANP288.PROD.OUTLOOK.COM (2603:10b6:b01:d2::14) To PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PH0PR10MB5777:EE_|DM4PR10MB6696:EE_ X-MS-Office365-Filtering-Correlation-Id: 1b2afeaf-d418-4565-4e2b-08de590e2b1f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|7416014|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?uMqHiebO2ShWggyEpUCmzuD2fy9nHw7hVy+lbOOqLKtOfgif1ZE45gLzJ8pM?= =?us-ascii?Q?W6xxHUqPzrRE2xhZ6c7W8yLgGLsleB3FnVFLX8E1QJZ5UTFhVedNMQLUhlPo?= =?us-ascii?Q?Nhyq5K7+xU+32/uaJLpyp7wEAYXU3ziRyuERMVDrAU2Tm/NMGFzDyv/Dh/pK?= =?us-ascii?Q?Io+56DTds/nf2m3RyV0DCzKX7grRTklOzDKqXfs75KwPc3UuOlouL9/YQR/R?= =?us-ascii?Q?fHSQStQ99z3G0fX3EObFW4Pw3hbRv8KpZEMNqhgRGLHA8AqTgXqI2KLUFUBB?= =?us-ascii?Q?uHkSf2Cby/rKzyVFxLqyeNPLbNcGFETMwJ7DWpx9OFAvlGU/BRr8tWORhXzn?= =?us-ascii?Q?WediNeUnAVOHs0urkFDAyjHxwIa4qpFmIxypQr3g1nLa7J2YMLQDmFn1z6B7?= =?us-ascii?Q?9hO6fq47uYrhZHPwiguC/HZOSJwEfcU1hu7N9Dy8T7yVvJ88PXDnVrWgpmSw?= =?us-ascii?Q?d5DIPYSJQFPM5dZkeLwhZxnWhROFftL0umtGxmU/GI6M40OiDL4QIo+56HVg?= =?us-ascii?Q?eGU1Kvp0po9tPRJL8LOShRimO2gsKs8vSjmZpqCSBQveIpAwQ6kHapzn/Mbj?= =?us-ascii?Q?jWpVHdqVy+pk37WdlglU2L91HzHlH+XrqNOaCOZ+K7DPU3w4zEeKxZBc2Min?= =?us-ascii?Q?96CJP6UqO38iY14qqD5ZkFuyeCIFJ9mbJxJ6sDqUAwcwIDDO03hAhhj+YDUt?= =?us-ascii?Q?P9CWR4NvdFYePe689kjLaRXYVgykXwbXfARlLNOBc6A0XxUPdO/ekrPcbVjn?= =?us-ascii?Q?JNJmxWZXvsjkEwdhYyZv52sBTRNMz8Vo6cUOrsHQ6a8ww3inWzNmOogxm98I?= =?us-ascii?Q?liMfwfL2Vj/gEmIZYMW2Y/+/PqfseZSloPYoPEYni6ebbvcL3oaaFFeXuCGn?= =?us-ascii?Q?BOJxMUq+wKn9cWIKVAHkh8Tf8u4NcXhUSGspmJ093C9rPCbFH/HD3BDdgYN6?= =?us-ascii?Q?XhmQcgC8Z5ppuB+EOuRhW/877vlOarECXDXAQFYMmeQmdDmie+klgJNgDk5t?= =?us-ascii?Q?6e51beIDGy5BaA930f8FulXKA0B+VYNSQJRfljnG34WPsaOX+dY/3Bis7RJO?= =?us-ascii?Q?bkkQsOsiY/FgydwH/m6gb6TIukmnRroR1//UeDkXSQMM+/0z44yBkag54CqK?= =?us-ascii?Q?OkQGryDXIfCzzbmg76vynTM+7gXRzsORdxY7GHUmv+J4NsLG5IHOkAOygBAL?= =?us-ascii?Q?4OuHArrkTKchu7KeFMj6tb7l1OtzK/ipgvKU206cdIPBkeBA4EMtiaZHqPax?= =?us-ascii?Q?vPW8cpW7rIiflN1QDluN+KnwOXJbW5cALaGJBrs+/aMoSp3CPR/EYsZVH0y9?= =?us-ascii?Q?o0Y53db72vExpMhDZAQ8ENiJRUploV4XAQyL+bxmY0xQ4cdZVTGKS+rKEsFL?= =?us-ascii?Q?Rpm2OXQlANuJyMF0c2LIo3drDHZTV/IX6tugubXbHE0JyqigB4+MRErc9oTd?= =?us-ascii?Q?knXTZ+Uc4s/KHC+gukRO/LBVWgyKMnU7hk1Ns70WjrNBcOKAviDEHeOOw3Rl?= =?us-ascii?Q?WdiS+5on4SQDR7TPjePP6j8TfNaW+OSVm85ZiSy+k1akexcoUIL4TPMWj3jL?= =?us-ascii?Q?uSI2JhFHa2Z7K32UegA=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH0PR10MB5777.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(7416014)(376014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?K//kvOMWOd+lEjJvIlFm+OBNKbzSpfeOXMDIEMiWhlSfL84BgQSAPu9n3knB?= =?us-ascii?Q?DYZ9o8uvFIlqI8uDdU2zrfFTZ0QfB43d7b/gVmNtBBv2A2JwgzWRKeCQe4ui?= =?us-ascii?Q?rtX73nCOcaZvP++4iAaRIiC3lf5h8s2WRAfEW6jPneDH3Avs/5bkMSxHOIh/?= =?us-ascii?Q?W10LrpvYdgp7lXcBz30K5eN7MpZV4zDdLhylHXVQ4DIdvk5XgCXR/j9oWvzq?= =?us-ascii?Q?YWjlxdkVtpR3iQTqpBZYvTum58MvY3UNp7lCBmQbtbeb6PHuCEMHyhqf9aP+?= =?us-ascii?Q?H9yWeRQHLg7ihGzJmqg4/ctFXuISOzyU6Wdg286vWFDV4nFQxloIf+xU1hSx?= =?us-ascii?Q?TpwGc3QrjsvCfqxIo930Nubn0HkC7+GVkiCuhJiJO+EQGypgiUdiahPxWEo7?= =?us-ascii?Q?sKNB+2e37cCnX/0fu3q5wBfc6sxgDKKJaIX/7kB8QUDrjKQCenVXD4+OEIjy?= =?us-ascii?Q?qSp+HbjdRq//55cSmgjrKcVcRF9TL2wJ0nmYprDaR5/Oh31KuOmA/iJlztAF?= =?us-ascii?Q?ttamH3yzNg+kPqukSHD0BsdiFuyl4oVHC8Yd3y8GN7qLJ1EkVGNdcl40rnUZ?= =?us-ascii?Q?iIdajTjSBPJIJKOMvtafYwpdsci3/BGvCF0LXhfdrtLK68yPSup8jxlkWtLp?= =?us-ascii?Q?l/gsYwHoKHfeQuyoBMIeZqihtE4wKJ1X6EHckSxRALO9qCLXyAdR42jw60tQ?= =?us-ascii?Q?93ZB/SIkYA/EbarYieniMyFyXXftxeVB/ALHyqaQaH+5Et2pxpxkGo/aov2s?= =?us-ascii?Q?Orz108GEkI3EGEPMdBGEsRrPwxRtyQtJdmBXTxNdUoa6hp3anDBsCOLWFjMr?= =?us-ascii?Q?ihsFX023x1oETzrBjID7d2o6AhziBuZVsP9zfyQlSKx1xoNSzbPmBEp+6X5Y?= =?us-ascii?Q?8wFlyDKWHYXdAqFe9yyDyjaGTA3k9c47mkCze/3iMWb96h++1rCooTbNJ84l?= =?us-ascii?Q?OzRmSNeWnxlZb/dUfOjVbT57aM1G38BregxcwIeFdcsg5kKRLRBmFfk03ImV?= =?us-ascii?Q?P94lKJW0x8OGfdaI5iQ7Uzv3qDbvsE2MIRaQ/Vl0eTYqYNZAwddjQpJCzu+Y?= =?us-ascii?Q?uFwq6H4KA/NVICaTRx2dqZXxDPFKpqTiomckjLMXWhHa1zFY0Mq2SyI/NgZj?= =?us-ascii?Q?U1uSxLXhtSJ1fCi+BDxW4tTf1LfD2ebEetHKjU8RuKPbzaep2oC5NHbHQ5VS?= =?us-ascii?Q?KjOJGWy/d5Z5oFjpRVmLKGAN/dMG8jEfHHbk2z8MSj5R4lELE5sOqR4V8R1J?= =?us-ascii?Q?Zfx59JpPujAypuauG8MHbcLexUaZu83cLzaROkSgcK/FUFVagUg2qm1iNcGP?= =?us-ascii?Q?lufSi4Ck3LaVe+XEUPDexDLjIQdu4tGt0mxWHEZCU8JnJ9SBab9qixr0LGI/?= =?us-ascii?Q?Nj/IBl/mDADFq/UhJcdl5CH9wrRUbpuHyIFqWyXDBXGaG37KPgHcoatlU+wb?= =?us-ascii?Q?dyH6i5bn7k8kwA0eEpX99sG7Rg5w8YAtwISGNujQ9bpy2qWaE9BJgZQqG+0+?= =?us-ascii?Q?D1XhLU/jlAoHm1XEmavglWSN1U3i92/33vRS8KMPRW5SAZx7W64v1aWnbUAZ?= =?us-ascii?Q?6dIN0p8vmeVgAj9o4moafmBXvm829ksD/OuHTwNiK0v9Np1PUENAgDWmKIrO?= =?us-ascii?Q?oNL7PLZKS/oMV/JZllqGGJA3Jmb2+7RtDRhwIOq3yc0PmgGf4Qa/UUUnPQzD?= =?us-ascii?Q?LL27zSV7qFqVtRdLiQdC/M6Zcn1lt+GsaEALNgv3k8VPC6HJDfOCYhz7+NSM?= =?us-ascii?Q?uKxkPEdZ0w=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: fAgxgc7gS6ZLgCQd5ZoBSFaHmOjfa363JyKOeZabRvSt4mto1gPa3qnICH8ump4OAk3qIKKa7C5AApWfdTdR8w7KJQMGpWA/UoAJn2WoyAstrMcDrKfAyjGZda37ILsy8yR7PR3B/9gHYIFnskCivFZcSJzL6Tx/Wni0hvhVypdC87L9hwaVuYgkQvm/bUBoBw/+rnITHWaHsNOwy/oUe9sF5FdFzvxcnTRvoh9wKOqhdz97Mg1tUbq39NBXY+jB+YRfDeMHzXYd/iZtakreVxHWgIDgx+7a2p3PMfTtB+b+A3coh3ultLiWAmfDONaj6YoZhT+z0sGXgRqDx7iINCQ+/STSLNLc40vy2OPL6jkzjYV+u90Cow9568Bnp0ORLilU3MH4+ZLC9ne+30/RzwC6aSEwAATPa58NV46WWq4NkyimzxVTbRezlPkLkBBt+6XHAUpHMYELDkguD774CHinKbPUr8lYDRIxnyKLeu/C0E3Vpfi0qtVbM22MuGwZWNe9MbZ0UmfTrlTHQ0O2TBe3OGc5MvZekIufIdAEd5HD+VxFkMh58zUPZZk4HuFh1mc/1yfUJVzTeuIbuAafZoFrujYtbcuIPqso8dIXV9I= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1b2afeaf-d418-4565-4e2b-08de590e2b1f X-MS-Exchange-CrossTenant-AuthSource: PH0PR10MB5777.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Jan 2026 16:57:32.2179 (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: r8TE9LaUGXJgK2NLH/6mDdbw5spQSpwjQDYGg9g+LgwbUsXdOqkC6SeZmrFtHaAOMXMIbZJp5axg//JoVJoXYg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR10MB6696 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.20,FMLib:17.12.100.49 definitions=2026-01-21_02,2026-01-20_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 adultscore=0 bulkscore=0 phishscore=0 mlxlogscore=999 mlxscore=0 malwarescore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2601150000 definitions=main-2601210142 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTIxMDE0MyBTYWx0ZWRfX4aX4zbQ6a8gy Tmrm6rVQuLrLVOoada1SJxHEccXvV+tMPDH1OdzaSsoUbEwyqu3UyTJ6RFFwUWL5YrpoX7Fv+49 +mYgioyCGHrmWVnNDNo4KYs12RUMOWMHsUMrZmT92PVHcZkK6sJWNF69BlHdeDBHFHIRhFkOxkr j50YXnABbFj2lRdja+PmoSitLlQbgEtpcALXaZffjSL0q9Tlmmy/mZYgv/IVDNFSrFmjP62op7J BUcsanyDZROOZYXoYxs0mSFY/zcc68lc6oQybLX2tKmJsBNVAvvSiHMcdWsbej6AIfHqSs1WqAL ptO8JWBpB8IDRDb64n8MTL4UGRVeKKMa1cnzqRAnVqOUudoZM0qcSEmVVSvk70MxDjmUC1XWjN4 T9X7a7dqZ8+nsF03G5Rd5/o9eM5SOKZQdCtoPCpEE0W310BGyNHEmBPcELBgsTVaiI2FTmlwH65 i10oXafortfe7Budw43snkWSFMJvE5Jsdqx3peQs= X-Proofpoint-GUID: ZVG6XauaZnPldXMRSSc0kFJoFRF996GN X-Authority-Analysis: v=2.4 cv=XK49iAhE c=1 sm=1 tr=0 ts=69710583 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=Zz53rQgBdMDpxz0lw5UA:9 cc=ntf awl=host:12103 X-Proofpoint-ORIG-GUID: ZVG6XauaZnPldXMRSSc0kFJoFRF996GN 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 326d6026afee3..9b1686fbd2d8e 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) @@ -2848,6 +2861,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 @@ -3405,6 +3523,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 @@ -4372,16 +4539,47 @@ static noinline_for_kasan void mas_wr_split(struct = ma_wr_state *wr_mas) * mas_wr_rebalance() - Insufficient data in one node needs to either get = data * from a sibling or absorb a sibling all together. * @wr_mas: The write maple state + * + * Rebalance is different than a spanning store in that the write state is + * already at the leaf node that's being altered. */ -static noinline_for_kasan void mas_wr_rebalance(struct ma_wr_state *wr_mas) +static void mas_wr_rebalance(struct ma_wr_state *wr_mas) { - struct maple_big_node b_node; + struct maple_enode *old_enode; + struct ma_state parent; + struct ma_state *mas; + struct maple_copy cp; + struct ma_state sib; =20 - trace_ma_write(__func__, wr_mas->mas, 0, wr_mas->entry); - memset(&b_node, 0, sizeof(struct maple_big_node)); - mas_store_b_node(wr_mas, &b_node, wr_mas->offset_end); - WARN_ON_ONCE(wr_mas->mas->store_type !=3D wr_rebalance); - return mas_rebalance(wr_mas->mas, &b_node); + /* + * Rebalancing occurs if a node is insufficient. Data is rebalanced + * against the node to the right if it exists, otherwise the node to the + * left of this node is rebalanced against this node. If rebalancing + * causes just one node to be produced instead of two, then the parent + * is also examined and rebalanced if it is insufficient. Every level + * tries to combine the data in the same way. If one node contains the + * entire range of the tree, then that node is used as a new root node. + */ + + mas =3D wr_mas->mas; + trace_ma_op(TP_FCT, mas); + parent =3D *mas; + cp_leaf_init(&cp, mas, wr_mas, wr_mas); + do { + if (!mte_is_root(parent.node)) { + mas_ascend(&parent); + parent.end =3D mas_data_end(&parent); + } + rebalance_data(&cp, wr_mas, &sib, &parent); + multi_src_setup(&cp, wr_mas, wr_mas, &sib); + dst_setup(&cp, mas, wr_mas->type); + cp_data_write(&cp, mas); + } while (rebalance_ascend(&cp, wr_mas, &sib, &parent)); + + old_enode =3D mas->node; + mas->node =3D mt_slot_locked(mas->tree, cp.slot, 0); + mas_wmb_replace(mas, old_enode, cp.height); + mtree_range_walk(mas); } =20 /* --=20 2.47.3 From nobody Sun Feb 8 07:08:28 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 DAF362571A5 for ; Wed, 21 Jan 2026 16:58:08 +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=1769014691; cv=fail; b=bV+EDCzeVMF9v6f3u/waSQIySSaZlISvOINeuBNXPCv1DqpOJFM1ldQy6VTUq47iyl4AbX/i+DZ9n8UVZ0tr18cl4TOzMI+wgbEbVzV2XSRPcvnSyegEYsGHIthv0drI4gYKrYtYvQfCUqmi2UG2Bfrqw9qC3Tn1UFKX3BUo5Go= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769014691; c=relaxed/simple; bh=H9M0CewIxBk1rM9BOb+kC21r+hD+chPd393intHkG2Y=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=cq76b3nHwTepZ8Wxd6rOzyG1cFe/TGPqFIG/jh3GWc80hIVMyLG8ytyz9f2kibyFstMZBdwOVamzR6E4WR2ULHc36IoPkk7uqmDVb6N2/jpJ/Mw2PgFeh6NLiziU7DcIszeEuVN9X2e+3O25n9Q0PKAHGQaYL6WK1uPLZFKBGZ8= 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=mRyFS7WT; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=GoEv5aEl; 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="mRyFS7WT"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="GoEv5aEl" 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 60LDNTs43028859; Wed, 21 Jan 2026 16:57:41 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=6Y2Ns4+dpl5/KO1A/bm8/LqsaVSgmvxZWW0Rv736UBg=; b= mRyFS7WTrVIhB/ewvnl8PSna4HGmdRR3P9CrXpoEeCnur4AInIRvYxq0Gqsqdlfg 45DBcxvPFjossg6Rv99lKfjWtILK+tf45r4i1ftlSNGazOBIVaSwbpw2CjxyuQuA tS4ZqhOsfyS0MBZxba3VM4zA02BepdYide0awtkOw8KoxU22vnYaPa7v8aFAS1JK rNI2CYvQyQH9cFCu/HUv59veObRxRoc8gQ8JuF+MK/5f4nPLfSwNII/Ne47KyRCj oYlPunidGN6bvAUL4QOjCKlYeVCTFBuChgdB9uaaGz+f0qxylD2OKXq5bIJfTdhJ PgMIUw4aiFmTt5Ek+ktO4Q== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4br10vx8p3-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 21 Jan 2026 16:57:40 +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 60LGqusL032182; Wed, 21 Jan 2026 16:57:39 GMT Received: from ch4pr04cu002.outbound.protection.outlook.com (mail-northcentralusazon11013018.outbound.protection.outlook.com [40.107.201.18]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 4br0vfan5d-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 21 Jan 2026 16:57:39 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=yCRJ1CqgnsLbyYyDqOi0mbtkKHyBlusMNlJ1/NPqtEtWlVoXt5Fw7kaIU+Q2CqxI4108KMvIMqTyXs+rEbKg+a80HAe/cas+EIwgzjIvrGQP9PeHSR3o8mSUmLpCMN8VDzO6Xv2Z3L4tD1eW+Ehz+bqDLocY9+bbNNq4v75mhpO1cyMzOd+T8BxkQ+ksg8EIYr8P38WI87YIBAVn5DWXsCUmlUwk8+SBj+v2ObXtdJu44Nj7pVuVlXiwtmNMzAM1DpCqOFq1gqW5aPO3A5txYUxql91KazYHMpBS2PtuFrmK6cdaLsxkGTl3E1RjUDWbuOUFfjBeLpKEmVrAPAIHpQ== 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=6Y2Ns4+dpl5/KO1A/bm8/LqsaVSgmvxZWW0Rv736UBg=; b=lRLAopVx0bDPiejYBZ+BCCsy/OkfjDD585Bp3gAvKHoyuHmGKOcZNqydMC7DM0UHMTV+r6QnGR5bujzMpcykvUobO6h38jogDtuArGHa8cggGbEpyC0GREaie9pEiMMjO3Ax5eiffS1NmdZzDuAc4dVxFqFa/mBn15ewAXIcmE9YXCZy2xWbzj6YwbtdqjH9M0uqzZN1S5iq7JiHgZGKr4AlmBrbxgzWb9N5yABC2mKrsg1OPjT+B9DHdYqj8dKUDUARnCA3ebpV7/5BEba5SXgt/uX/lF4vh3/2DKpu2VrtHfhTAp6nwMYyb5ZiDtrSJ3jdJKErl4qMVgakDy3p0w== 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=6Y2Ns4+dpl5/KO1A/bm8/LqsaVSgmvxZWW0Rv736UBg=; b=GoEv5aElpFJPdJjJqOJX7kRwWM+3N7T0Ofh9+/VBs5V8DLQm1DBCTYsA+NS1r2D80IxcLNcEplDUfDn4qeHQXiWQJKNcga9Qe4BfsmgwGzIpEd9iNoXpSKH9ASppn/CqI53YuYL74UwtAlR8XCDMKOk02KtHMe5qj1zxPN1c5yE= Received: from PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) by DM4PR10MB6696.namprd10.prod.outlook.com (2603:10b6:8:110::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9542.9; Wed, 21 Jan 2026 16:57: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.9542.008; Wed, 21 Jan 2026 16:57:34 +0000 From: "Liam R. Howlett" To: Andrew Morton Cc: maple-tree@lists.infradead.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Suren Baghdasaryan , Matthew Wilcox , Sidhartha Kumar , Vlastimil Babka , Alice Ryhl , Kuninori Morimoto , Geert Uytterhoeven , Arnd Bergmann , Christian Kujau , "Liam R. Howlett" Subject: [PATCH v2 23/29] maple_tree: Add copy_tree_location() helper Date: Wed, 21 Jan 2026 11:45:20 -0500 Message-ID: <20260121164526.2093265-24-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260121164526.2093265-1-Liam.Howlett@oracle.com> References: <20260121164526.2093265-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4P288CA0066.CANP288.PROD.OUTLOOK.COM (2603:10b6:b01:d2::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_|DM4PR10MB6696:EE_ X-MS-Office365-Filtering-Correlation-Id: 4d66613c-a69b-4d85-b274-08de590e2c7c X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|7416014|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?cWZ6vrl2KhGj8ZkDvYneLkku4D127WdCLf0uJHvFH5FzlxJSW1TiqzekzsNr?= =?us-ascii?Q?HxvyaQHdPjpdhTWhkotZSO+Aja5Ac3NTPVsmE+TmUuRTtBrHZftPNUe4z4JS?= =?us-ascii?Q?wc9SLdvbTSP8LyHMZ/pxOt/5MLjUCY9qD6027pyUdKwSg087Yy3g4XHHSPkv?= =?us-ascii?Q?XjE7ekUXQSbIs3ZEFrgbiklHlWcvlHjrwucLPOZ6fR6vM1JOmduxxoBzk9RW?= =?us-ascii?Q?uRWRmuAfViGKV9lwJuSa+jmOq/zRgaMHDVFXGgaabCF065EOsv8Ynm+mhcak?= =?us-ascii?Q?Hd9nci2mRuAsi5H+WLcITWOwe8SpMIyIbqfGqyiKTLwBpSK0+TQ+21Z8J6l8?= =?us-ascii?Q?AWKBAuw87BcDFbN7d95Qx5gD4+8bVaWuHEGkbNhADR0VDLrhKe/m2oNu2K8b?= =?us-ascii?Q?OGG4/pDnlJirancLZl+3MCqPR23cmoBTaIuVQrJHZha/liiHPltUDY49asua?= =?us-ascii?Q?JCucUlcgWH/idryK/smdu2iUiXnkr6CKjHq3guc8bfFEJm4NWQuQwcqTC6Am?= =?us-ascii?Q?eInz294kaiLhK9w93U3cpjOwXP4i2EnzZqwmI0nvk5hUb5umZOvvn9MnNTN3?= =?us-ascii?Q?f7m+AGk1xxKKFISBNVvXkSnJgbNx4e3+g1n9tALelutWgt0KotG0yr9cG8oX?= =?us-ascii?Q?H+jXEfMZesHkcHEIKxgvHIwoYKr3TAf2caA5rmsJeYP4ts9XiVtPeS4UQDFN?= =?us-ascii?Q?wsFcMdVNKDG6N7va/6bBhOeI5M7DKqg+dX+9VIFOR7GKN0pz/4wqWTAMiuFU?= =?us-ascii?Q?vP4yrQ8TLOA+lG4Ee+XXfn4k+SdnX0tBWaI5B47v1hYhcql7NpA+6na+uyPw?= =?us-ascii?Q?WGVbDs4ILJafnMGe2x9IDjdkbFGLKCAhi66eayIcDamuMK5cFyq5SRIQ2/ob?= =?us-ascii?Q?T6Bh9cf30FDaXzloJdFmBweeEMc3m4fqs/KcmpBK2Iq14Fgcme1YOxLeRHV1?= =?us-ascii?Q?iBvLYQ7TJzd4g/8RCf8ph3PgNMeBiQayjRy52TI5GzxUMb9KU6ITs+JLH58p?= =?us-ascii?Q?jCupnvLoOgzlNUzMCsdv3yc02UPysLiEkcPLauphns67xc3mTKiuOGBQMybe?= =?us-ascii?Q?2aZD615GRm8r/8P6NHYZ6zWumOw2riHHDMUhxb3zHWKdBRETh5YZQFanh+Pd?= =?us-ascii?Q?0gFrgPxzvdxdKYj8IIRcGRpZn0RAQ89pfMwkU0oBeDO0b+NkgStAoDAGv1xm?= =?us-ascii?Q?gsdtiCYglF9s61DhCnO3xgajfy8Zum87qn7DWxbizAlDwsYsk0g/Lrp5FAH9?= =?us-ascii?Q?+JqqgKEzM8KW3vNDoSdfr11McXoNyr5cjCPssaIt33g3b+8Js+yb0H+QYCwM?= =?us-ascii?Q?t6yOcY8pPuu0ZNxDKjBwph6V75WNfxMUiEVQD9E6HXP419c4Jzt1oDFJkkbN?= =?us-ascii?Q?wLAoEAeSQ1MbfHxVGDBnLUHgmSuTvGbnW26Hfgqe/g5CxzNbFT2BJm8l6yfp?= =?us-ascii?Q?am/hmC0IGdvsM14yHY6jJPtfmT3itZWT7qK0NSB0ib9TaYjMQc2zpJbhFcfs?= =?us-ascii?Q?r+d9tDak9xXekDIaKKj6n2f4ABGONjvU8mOZ+bYXWc7JknQj5vn4vEQRUqin?= =?us-ascii?Q?8u2quHEWAN5hrG5iiIk=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH0PR10MB5777.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(7416014)(376014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?/ye8mFoR0R9xlxPglbVkbUdHFNHE33JTZW/+8wm8VBFQB215K/GVtXbgcO8n?= =?us-ascii?Q?I4LM4BVOUffxvRhMd5PMufQbvlDC6nuSONxgMhhWlxD4XcjnaxrHYbNEvyHe?= =?us-ascii?Q?SFcLKhrCoFHlBI49Yxh8fs1NlTwrYxXEBvGFdOtuZNTmpbck6lBAlCnrqG6o?= =?us-ascii?Q?QNrQVggBiFFk8IpvXcnExV/GKf9WJWBbv4a1GA8UmLHaMJa+CwOoyobrBxTQ?= =?us-ascii?Q?JGiP7Kzrv1hSXhiCfOeXPvKKXfY+T1rQUMrr5HJ5YzXebJoMWQA0zGQlILUv?= =?us-ascii?Q?GpSc8tCaSrfMOPqnrv3bhGXJy8ezbd1F4crvMwwq5tVb1yB719IJovz33dK8?= =?us-ascii?Q?aZAfg4Cl52AKR7innAR/3eGhJKjPd0wkbKEhEai4Qf2LWauAclajkmd1yDHm?= =?us-ascii?Q?SrfdDlgpQfYjYCOtILDiInLv8uBJqtyVYx1deR5dNPaQn+iBvkrEzgeC4rsw?= =?us-ascii?Q?cMl0cbVxNVyDOhGEkHUig4gPUSs2kbgSQ3Yj1/f+opOt8JXaJ9iPpLrX5l5K?= =?us-ascii?Q?86VlESKsjYs2bQxXiQN/4yrlhmDi69sjBJFXvlMJsxLkkgxhZgtyh0QBvaF1?= =?us-ascii?Q?l0M9qpOhQFbgQI9VGeEmfXlSWfRdQfch5ZTwxvyBzEEy6qKLuwa/5i8GJET/?= =?us-ascii?Q?1X1tdGlLj3DEtDnSP/XJSTWhuZKmglvs/fyIsqMGcMNSMyZmK/wNdqq1kxyE?= =?us-ascii?Q?q4T0NQOjRQRRWM34ndN/b8a8lVf5I6Ue+H1RGaXV5EHTyJA6tXD99FVj5exK?= =?us-ascii?Q?0AAY5HlYuB0DkVofp8k3xA4fnLZUasYt93BY14UFgeUS7bKq0F5gESzHK6bv?= =?us-ascii?Q?gA+pjjIZmOpBFDML3xjF24s8ybeaVwtj3cQaDBTs101jxCQIyNWfXCjrE5WM?= =?us-ascii?Q?z6WLZ08Go4AdJZNWsviHM3LVJO5u4DAhK0DwboN2AoQJbK9E+8esNVYuD+3j?= =?us-ascii?Q?KNDxW8MpxuTBYMlRMdwBf7psC5MW3kDhKzjbsxg+WJ46AN8YHVJiWjNfSOQU?= =?us-ascii?Q?725ADDGgUEgPCl6zFaKjZmooTQScODCoo0nzGNkZxHdtD7rxk5axeWJSAMjU?= =?us-ascii?Q?dDLs0e+IzqrDAnPixfS5oRxUJeNIqwNP/7JSkG1t/mEvUR/Q3vBBIC8XoWH6?= =?us-ascii?Q?LJwR8cgmy9XrsSfeyIC49BJuyjfk0EY6fKbWGf2Vuq59ipIzV/dOhplI9oUo?= =?us-ascii?Q?oTyVXeGOplJA/SWf9gbSxYxZMsHeXPj0/On+lAtV8Qlo3B0weTj1evJa5XsM?= =?us-ascii?Q?QgdH7Z1JNTwGAQLfM2dU8WQCLNbsPezXu2JAtdQxnKOrMwN/aTio9AWMz6vm?= =?us-ascii?Q?iK6KhkvWqDmgKFYV76GqdxS/l+zy/LAp6Gdp8V36k5YNuedghs0bh5kpr6A5?= =?us-ascii?Q?+lYWGnrclfvu595yN/UCWkp1GGzWMibHMPA4K2RXkL63oKkKUxZbudiGM6q3?= =?us-ascii?Q?MPd5/7MFuFGFi3N0uHAC57SYpLFoocuFjxRvmQ+IRWm5MKaShpT7M5XgFdV8?= =?us-ascii?Q?XaFey6MH4v4V5hDx+h5XrePhmqwabSzNqm0Iy90Cfi+BWJCNLhncF1E0RloI?= =?us-ascii?Q?zd1p6yAyENiHHSoxGvQiAFcy8PRvHiircmM1KSbSN339iRhu8B0WIvt2k8za?= =?us-ascii?Q?PaqdoRPejILNvbZBGM0h5XVm5kYmbcQxqBapz4MwDnTjnlk5ETKvC7AF/sD2?= =?us-ascii?Q?FO1LR95hOO6GNGoK6lE1Dbgt0gXfOxh2nkC97WBI8mwnwDuPuOAczIZ9YJWO?= =?us-ascii?Q?NmOBgoKu9g=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: i3zmuhYV69gVit+4vOU4VDhzg4Zu0xqyHhaQ2sCF6AkgeUoY403c52IBvV2rrYp1/3U8eYng0zhyxUp+IobeYblZjgC/qKZvp/+Q1ToNlN4h1LMaYsKfVRbG5sy/7zWKZ74KM8Bu5tsQQs+1/5iPCVdHo6vuxAh1mjzh4rWOoVutUtGQOTbkZ5DzV3fIfgVEGmwhGWIiWp62FiA6Nui9NOLKiUiyIhBGW+zv3Ldi8APzW8Cdy4Y1aKMKyQTbPyPIDQjUzqKXFBVKOH87oRzSMk2GESBL+vh9E7H2Rxc77x36vLxqNqjBXV28OknWK4E2WrtsMq6FjeaPgSAA+6c9+G1uZb8021/HJyT4zr//0fEGSzI2OdFTk8qX9aSNjQxebRyHGc9QzW8zYlDyEuIE0ryAyXpHIzRKD54u7re77MCSFATfah38uXAUOITLh7gHyLZYo37+1CIFcRJHd/oXp1nGK61p3VI4f16I82osnlMYWCYDQ5+uB6vIgp91xiV5NbLVGLD7Wgfxbxpb2IGt1I+4RnoTmiBsncPEZ8nCvsyqwXlhuwNdcdKq6hJd7VA4cz/t1ZP7zOFV7f2q6Mej0h8Oil6ggN4KZis6W7K1Sxs= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4d66613c-a69b-4d85-b274-08de590e2c7c X-MS-Exchange-CrossTenant-AuthSource: PH0PR10MB5777.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Jan 2026 16:57:34.4864 (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: agqluL6qN8sKFxRA1HpXoZA0fdsWTniTmhdSN9al3MsmjdlI41Dj7ibX8YG2dAEimU822cOyn9zef6g40DrA4g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR10MB6696 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.20,FMLib:17.12.100.49 definitions=2026-01-21_02,2026-01-20_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 bulkscore=0 adultscore=0 spamscore=0 phishscore=0 mlxscore=0 mlxlogscore=999 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2601150000 definitions=main-2601210142 X-Authority-Analysis: v=2.4 cv=H4nWAuYi c=1 sm=1 tr=0 ts=69710585 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=Ql65JoKsIb5UmNcyGUkA:9 cc=ntf awl=host:13644 X-Proofpoint-GUID: vtR6SkUzEHof-gSpDgT36C11dYvbxp-Q X-Proofpoint-ORIG-GUID: vtR6SkUzEHof-gSpDgT36C11dYvbxp-Q X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTIxMDE0MyBTYWx0ZWRfX3MoCeBoQcRf/ NeUxWfly7eWfPtpGZS1dTvUtStPn0bSB1dtBEvIhqkVhqqVz7cO/0TZO29KwC7iFJCrbfxowfhu 9pGV/QHQaeSQWN2Qt5X9C12dfgUi0LPhALPDcAXzMm02pwkJrSZHkxOLBi9K/oED3thf4ckwGLL UzhuITa8ZmVm6az/uXC2sGpes6qwt0vGRRaSFP4AdE5IdsxSQyFFggyIiXo2jJwv4DVR21vkZ+D DrM3lVdv5zhxuWJyNuuw7QIbSSXr89a4aDm7Ed0WqCFJQdXgtyzLlncqrLrwFR6596t1aKiXZz2 c6h9wSYH8J2dzZNjrkY75p5eBhNoS7gCFzsM0bRhR3RCytQASqSkUAXSZOpiroZM9z5MOEkjTax 5skC0ibKCGyx7dgo29dcX6X14ZCxVXrkIznj/hevmHC2L93DOrpkd0TFVbiDKpQP+upGehHCk5q wmg+ypAT1on9c8wFOK/cMitSPoIUNf3Sj3sUa6IE= 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 9b1686fbd2d8e..22f52a9b26a9e 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -3523,6 +3523,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 @@ -3562,12 +3573,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 07:08:28 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 DAFFE2C0296 for ; Wed, 21 Jan 2026 16:58:08 +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=1769014691; cv=fail; b=OR3IXHPLpRpeW9uMR+wU7zetWydS8XyELIxKC6cU197Q1SBrrYvWheQ/6JdoI9NWx1XOIi4lL+qdLAUOqabgU9K4uaQpK366R5TZQed4x0h5g2e6iO7BAc5X4IUx9jaICsHkIRRKQHo3O7qY8eXGAAIIeFIxNG8Kl2yPHoutp2c= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769014691; c=relaxed/simple; bh=oCRh0bjAd9rnnGi31od8AJNphpY/Xwlgz+kYK2Qg60c=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=f1yhnIlPnX0MxPkZQgeLaKM38fQICabaPw5od7p5qcda0efG9VTmDtdylgVhEl/xR9no1EsIcxU0E4/Yrfz1qsmZNICreril/ZffRV7H3D01Muh6ukh8GN04ndMSxmtNwVJtSrZdNQLoq3Aa7cZLo5OKKqf3DfruwM4anMakapY= 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=FaRN+WSr; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=lXNL78SZ; 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="FaRN+WSr"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="lXNL78SZ" 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 60LDugvM3029196; Wed, 21 Jan 2026 16:57:41 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=CxjehauT+wEH2ggsK71zICvWbtqe9sdWhYgGBySbVzM=; b= FaRN+WSrlm/L6fCgCgWgWWauDGRpIGHa+nG5ZepBfTFyor5pWmYAzDrPuJdZs170 vGn5QVw4YW7hy0dpVAoy5sQgf3Rp+2SZ3qgU8SGJcOzvOXvywg3xsuB1BDe0JUXJ 8RcqKXGdEBgMZNA/FCyknYg7yaQbVULAnVO/yHEGNr8ZX0qE1rMkU59X2+R/uXpr K26ednf36ncslYK4w4+6WO+Smq555CMMae0Eav/wZdYDakl6FikDauG5JjRHH5ev znQRdcmUHYbyzeXG7rgmjYNPWsyHsKR/dQC2zkVpCNLRQsOmkfVwUlyZdO5kzPp8 TDoEMObIiBTQIr8XOOnQNg== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4br10vx8p4-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 21 Jan 2026 16:57:41 +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 60LGqusM032182; Wed, 21 Jan 2026 16:57:40 GMT Received: from ch4pr04cu002.outbound.protection.outlook.com (mail-northcentralusazon11013018.outbound.protection.outlook.com [40.107.201.18]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 4br0vfan5d-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 21 Jan 2026 16:57:40 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=oyKfHfTruMix00wLAgFAwuz6kH6qR5X2jAuGk93uicu+Ac9ebDGyxkmLXDMUf1+DctRLbHzMmPqGf/wzb9/mTfVj28hQG6fOCNyVUpi/dwShzDn8qrxVVj7L6rcpR8+lBjzlsQf1sPAiqIwfKm6EK6enzu4Dy8tvZUcTvPaTS68n6s24ptGnIk87Z1z8HKUxfrl+8ekoGWcmXdOaRPXZbE2NIJDRs9R4+vzYJc7n27VirnsZrS97eXeJmAt07tE0KlVAUXzvvqMPFqbv788z33FWrmFuOuilq1BuAGguoFvX/sGbjrDO8y2e0FtJUu0fpw3skI2IKHZaLmn1CEWmHw== 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=CxjehauT+wEH2ggsK71zICvWbtqe9sdWhYgGBySbVzM=; b=FhaXzkgLj+B7yHrq/I95nSdOuEvuxbcjfnHuGyil1rAaqirNzV52h3AhuZspx8pM/c5ajQ++tMMLT939gpHjok0Gwg5A+jZ51t8F6dJRTuLRdQ+HNPNIl2z9I9hwbc9yRtNJNJWD93UbUc6LNA4WrE2R3AU4t2IR8K0aDiXJUOcnP30d0uTaIeEII0bimSi8ZB7QboB3CyRCKcT2BX1xHO+4PVybM8MF6WhhjSxo453g4WCAQVBjJHmOqKwYWn9kYmNTZjSDTZ8naQPa/j6sOFbRpis3HIlPuOugstdY7XU2amZwKpXasLTVsBOg/pUfFZmJAEhhe1/8ofyIA503jg== 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=CxjehauT+wEH2ggsK71zICvWbtqe9sdWhYgGBySbVzM=; b=lXNL78SZvsYDLJSdXjNT5OsSyuaAS0zJu/0kynnF+iZii3pqYAttGVLfjcoimDK5h0jGRr3goMnh5IzRzuCxrnsUmnR6307CDiIxBpKITzNklNV1qr1WVxf/ifto3OyqJU7iMbRX76CVnKhFkaicD//GvfFkgssRvPXQ6BQzLyY= Received: from PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) by DM4PR10MB6696.namprd10.prod.outlook.com (2603:10b6:8:110::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9542.9; Wed, 21 Jan 2026 16:57: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.9542.008; Wed, 21 Jan 2026 16:57: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 v2 24/29] maple_tree: Add cp_converged() helper Date: Wed, 21 Jan 2026 11:45:21 -0500 Message-ID: <20260121164526.2093265-25-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260121164526.2093265-1-Liam.Howlett@oracle.com> References: <20260121164526.2093265-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT1PR01CA0136.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:2f::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_|DM4PR10MB6696:EE_ X-MS-Office365-Filtering-Correlation-Id: c804cfee-e9ad-4dce-1097-08de590e2dd9 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|7416014|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?Yd5FXhcqYpwpH07NbWVnRQd4S9U/8xfIU030ofbE9TaMp7wUmcfkVu935xST?= =?us-ascii?Q?6oz94jLeoJIEm1+vf9TKrebHDxWj/wGQEvq1vJtEZGdtZqbWL/bUOabVUwLK?= =?us-ascii?Q?L+UBDylvpx9KVUG0OrSiMU525YIMGDE2p10lzUsVt+jkOloa1kTl5LeZwb1s?= =?us-ascii?Q?vZrZGqRUw5P0jP/P0D2383Y+6FOGekdAJoIpD7zUnUt4gwWvZKy/vlIBm/0G?= =?us-ascii?Q?MyCt00pzTDO1wPrkIOuUm2luf0HT5LHKfMoZHf+nBONQZ2LcT7zdrfsl/rCg?= =?us-ascii?Q?v6JhkKsrOVLyEaNErcRNfqszLxu1/+uo2FNOTnigeZPEHLvZFgj3/9QgAqHe?= =?us-ascii?Q?s7Zitzdxx5vxRQuEXRnES8p5BusJ9uDYhFAkh/A5vRE7uM7B06ez9otroMYV?= =?us-ascii?Q?7s580rc33SHc3Ymrf+A9bKtEgYweJ9Ec5vW9ghgQpNAQLMFEU6QuIWc2W/gD?= =?us-ascii?Q?B4JYwe1GLfx1OWc0DoM7ZbKrDbenqwQHvffXWnQbRmECOwR8V18PNVYkay6m?= =?us-ascii?Q?7F4j6uDxDp8SfbsPHbyt+Zy12CrNoP9Jd9Bo9UthpwbuwC2ek421usa2v8q7?= =?us-ascii?Q?V4r8JX8yGOBnY1CNKxQqg8UTVH9pJ29cqRMB71cpmuBWvqG9TCJjhT/XQowf?= =?us-ascii?Q?2d+ExYxCjAICGFpQDpHNalQlmjdVrInfyHJg/hqtJbgfhf9vtne3SJCrHwcc?= =?us-ascii?Q?Ngou6OQBeKTX/LYrDICEJCholglU66upOV7wnpZ0lcQKzNwsac70/oRDhr8B?= =?us-ascii?Q?3p8EaaRKyjCelFEthzsfEbC2JDull8+EZG7JC7GWRnbr+0uKkbumLE+Igixb?= =?us-ascii?Q?JvsHTkZImBJIWYvG4yoZoFR9AVhDFa/LFgb3XDQqykXOzujoAAZiWsxjhRlx?= =?us-ascii?Q?Pmk2F9efBmT0jTzIeENfAm1toL805wN9seYd3S7CNRyncUlMn55hCt/rCQLE?= =?us-ascii?Q?V25luU4Lx10TYMHxvLcxcy68ETfq6oAZLlUL8IoGcPAepOFxlIlyiC7zD0Oy?= =?us-ascii?Q?XSWDVTeBZB2JpVjAXdnTlZJu2VtuY74XcGJI3sOKpyMZk2plYZ7VNg8g8nf2?= =?us-ascii?Q?f4FeLrvDV5QI3l0dkn8nSHh9agQOqdl7u044wSgTaUbJbiBhpCvImsbV/bFT?= =?us-ascii?Q?CEOTjt9wul+A0+sBvGcI+b7HUb8TzUpwsrfkyOTiTNQzNJ6+KUBSpRmsdNo0?= =?us-ascii?Q?j+9s/+FaFkzK3R0juSIJ3qLE7qBnrbqXjnpYQOVBA0nb0C810F2c/lKlYJph?= =?us-ascii?Q?Pntn0KATBT6PrZAFoxLgbBDaaOB1eZLYD2MuFQ13pZvkJ5io2FH1UYlO8nEw?= =?us-ascii?Q?gS6LYb3AurzYSxb2X2n38nz3HnPpZRPNVKJYzdUHG0kltGnEJl8uJ8coWR+i?= =?us-ascii?Q?h7N1iwFMfULYacAp2oKHWfiDomqtkvajOl9VVYipQMEreijeNF+16Zy/jqkj?= =?us-ascii?Q?QE2flK3RCLqs7qFrE6wo2iYIwAx8aT06moN3MoVRmJy8/fL4pVV+kmBoztRk?= =?us-ascii?Q?lGMDatRfLv4HflOE/LVqk5aB+784ndPIWc9IkNZOgUARtOM8E8doftAXDIrn?= =?us-ascii?Q?S4158KP0P2KUjQVeXqo=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH0PR10MB5777.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(7416014)(376014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?bUJikHf4HRUt3DmeI8/kxOb7z+wZMuSmdu/rv9waBJqgpUDjiQRDDWm7zyHj?= =?us-ascii?Q?GmhnwVSWBzxzD/38oxPRzliQqbczxnsYZGb2rKvEzlhyV/v4t83N3wVJysvq?= =?us-ascii?Q?jv34t3jaTb4nTyyfW0LuBrjnfyN5MsyHZhZKrOwJqQ6dUvnL/GsmNsiz4pKB?= =?us-ascii?Q?NGorNrOBwfJ2eyGhoNyvi2HJkm7Cq7JLVM8Tm4cIIU9rQ2elvvG9FzDTQlLC?= =?us-ascii?Q?1W+u7/LfGg2wHX15zqqzXBiXGrFfitndtMtCKU413AzCl3iMSePvFvkVEc8I?= =?us-ascii?Q?nS3jAxNg9wgAMyg2nINSTE4sUY2kKiEH8pKv+6zksWpDkpVLKpLAnEXjRD4Y?= =?us-ascii?Q?H7+Ba7TGawEpr8Z93ofGhQ6j/qCfgsT8XYPHwvVxEUYp4dbX0vvNg6tNuS55?= =?us-ascii?Q?Dz3doYPzsUsAKMxd3F7bBLz2Q+jxEfkFCd1RNUTiJVyNC/v9qPkk2fO+maZw?= =?us-ascii?Q?jQgBaOaMGHQ1GucbVhy1YmNNk2364gygOkBLMXAXZvtNbwymSbM8UixUYxRX?= =?us-ascii?Q?UNCLlTfqPmnIB5N5gE6oHcD0fMjWhlCDk1ZAHu7qlBny58EaZjTWTOcc/6WN?= =?us-ascii?Q?2u8GDj9Mswjmh9GCbVQG2JXBTaZgZxulfpvl63UQzNIa+PZ84EHo14zdsSPl?= =?us-ascii?Q?Sa4jXS6cFTad+TJrgCFZaM98kZo5BNX4iV/LHzR4loqYxsyD3orvncwQPo1E?= =?us-ascii?Q?huR0DvW/K8mN8FqZ8N1qcb6Vp3ZuFKSrTIR3CmsWdHiMo77W8qlrrhVyIJ/z?= =?us-ascii?Q?Lx56/2GLtLRejP+OMBKubnU+/VsOsznodFxC976zKJBYF9tfJsItVuPzpXBi?= =?us-ascii?Q?lgBII1V6MXJjAWuQNs2qgMry7ecLggRhvbmJzijDBQ/XBgkltOJSASbCr6DR?= =?us-ascii?Q?ARmlBRgn1wNpx9aIUGJq23haBI0KEcqYxEF5jnGpZwMdiqgbysbENpf5xE6z?= =?us-ascii?Q?tDXT8MdHAKkzw9W0GdFGFmpFoGZU12X8BQkCaD7WTkp0gIzr36AOQOOm8YwP?= =?us-ascii?Q?fdYSjbgrtyQJVk+AHTTTx0dJFKgsO1Soz28ZbzaoL6g8djiLTUU8vO7OJYoa?= =?us-ascii?Q?V/bZ5DOeNowZswn8rlXZQSX/BVhInT43BYV0kg62BR3b+yHW0Ok4S7CGA1Xr?= =?us-ascii?Q?DcJoauGAY3WhGwYAi/efsU9Mn5xA5hACjoerbiIkUryIj6dvhfu/pHCa/Q+k?= =?us-ascii?Q?IaDs17xVavF0dslyhX8ftt2jtyXTG31Cu7ZrcW+igdUAO9DHyzZRqg+FqC3l?= =?us-ascii?Q?fn847/GU5tplrka/AX1UdW3SkhT74643ZubJO8Zf40GRFBrW6qACG5cx/3G+?= =?us-ascii?Q?r11TURPzkL61EwNG4OgZ6PP13dfrX5QY2lUzWiyKehtS5TjRoVCaUNQAFADW?= =?us-ascii?Q?c5c8AosB4X0yU0R6R+Mf4prYrnUIzh1AJKSS4PubdD5S/mrr1jeWuG8FhtOC?= =?us-ascii?Q?vtq1GTSfTzgRUUfWxmK20+B3bG0HTh9Zv6BgvoEx2wTMK/RwIqhZd6yCc+aI?= =?us-ascii?Q?IN5MzQSSu7jm/VFK4gdA3qtIRys4Ru5eRjMeRfzz5VhoJLagY9DuOtbO0Yvv?= =?us-ascii?Q?ZQWTlLuxBTD9shs/96qEcl7ujMvfBlYS5q00Xnjl81q4iyJ9blA3hHHak47Y?= =?us-ascii?Q?uNkfDcNTVrtRV3UPGcIrMDvXNrOy9MRod5aRBCnommHKmQi+qJ8QWIl0RTnP?= =?us-ascii?Q?ZfqDyv14SPgczLzDj6gFhMhyMGL1uURJGMpcs88FTDl8vSh9UgVHEx3AeYWB?= =?us-ascii?Q?G88dQ070UQ=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: rUOzncXSePImgGliIbxO0humKsDeYtUYaYdeLb/xissUthtyii6BekCSgdI9hDlCRtb5hQxlwXpEgz4eHtSS3RlES0vv4ZMoGqYlyXPfrVWe7v1rlvVv3nXhTLMgwSrasdzyZOFEdxFrqmMJ4fHSMNdFhzmrk/FuASEcNRSTtxZOWd9BWL+cb14ENJzUJc2W3WJWVa+nTRYOLHu1p6bUXboZh/D7q/O4WDIunQLNxEXQ9MfGHc9K5UrfxWGekt+G9vfR10bzSAfWoC81jPb9Lxm51z+hrVotCx3RteA9ZRAdvgjv+qhtQTKvgSwpJa5Di0jq0WxZebLx1jxJ3aQE1catuteWa1U1AbO+aFWZhF4U5VzBgFwQLyOSE0k3xJCzgJzwIXFFH5OGY8sqo2W0a9Z9CTQYeNt03Qffw0MB2PXj6ZFb9BWkyvIY1ma7BuMt0DrbPpLhOMs7JhAvaVxjwKISo/pRoDug/nw5fPwxqNUed9mp6CavnribZOa+MoFb6ZNK2eljuIMRtfZP6oT81Ec7rrkQsl7jcUmLWY2emrAiqePaP6hYkxBHm83SIurlCvXUYTrrLv5rWXZjfOVPE0O3ZXiD+tyJhmQ9vZE83Vs= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: c804cfee-e9ad-4dce-1097-08de590e2dd9 X-MS-Exchange-CrossTenant-AuthSource: PH0PR10MB5777.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Jan 2026 16:57:36.7640 (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: 17gqcwMgXTrG2JGr1adOZyil0cMjmKUDUNIDPE8IVoQqlmPGVoVLWDr7py0rZayiWq37IAfmjxyT3/dB9J9Ydw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR10MB6696 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.20,FMLib:17.12.100.49 definitions=2026-01-21_02,2026-01-20_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 bulkscore=0 adultscore=0 spamscore=0 phishscore=0 mlxscore=0 mlxlogscore=999 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2601150000 definitions=main-2601210142 X-Authority-Analysis: v=2.4 cv=H4nWAuYi c=1 sm=1 tr=0 ts=69710585 b=1 cx=c_pps a=e1sVV491RgrpLwSTMOnk8w==:117 a=e1sVV491RgrpLwSTMOnk8w==:17 a=6eWqkTHjU83fiwn7nKZWdM+Sl24=:19 a=z/mQ4Ysz8XfWz/Q5cLBRGdckG28=:19 a=lCpzRmAYbLLaTzLvsPZ7Mbvzbb8=:19 a=xqWC_Br6kY4A:10 a=vUbySO9Y5rIA:10 a=GoEa3M9JfhUA:10 a=VkNPw1HP01LnGYTKEx00:22 a=yPCof4ZbAAAA:8 a=MoTMpwtd16bSVnSR3GwA:9 cc=ntf awl=host:13644 X-Proofpoint-GUID: k_uyOiKq1_KFZ1ZRBvXlrhNuotqj3P5g X-Proofpoint-ORIG-GUID: k_uyOiKq1_KFZ1ZRBvXlrhNuotqj3P5g X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTIxMDE0MyBTYWx0ZWRfX3TZFIfxVRxix aqjpKwIroLV5UxnBgWzxdLEjzYS+68l5wNpckNeeyhSuEtaXOdly/E6/LROMuUgXf9EY4CFDkLc 2JJ0Q2UZjEjM74wy8AWNKN0jbblFNz97Lnjkhd9pLcgO5CfEsj0xRmQpJIeAnN7F5WKKk135EEX JPWgOBwnE4h3KGzLbQDPELxd43ZyhA/jhQcxzEKOTeQQfVDviX6+Z07k0X4uFSJmd2cmpPD/wuH DjWNjlpCzvGJI1YA7s1+SAjbSyb5YSjNT6gn1K9QQZiHhAOfi4YlKDI5hYz7b4IjZstvOijODYF jHfLR8qV8oymnGz41Bplws1JGvSxe4eblgvDJvzGbjV3Wvyt4iT58NJqG06ozq+lAzvivwzMY63 5n2j5gtH/UVkstCpCnEblTpIsYSS5qpXcSfDzMq41iWawLkw9Nzf0nq6TEDvRYO25onB4a93WPy KStLZo5Mo3z3IuWaUo0KYeLzT/1/n4ASEvfT8bD4= 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 22f52a9b26a9e..191b855575650 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -3485,6 +3485,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 @@ -3567,10 +3577,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 07:08:28 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 B084F4C9554 for ; Wed, 21 Jan 2026 16:58:18 +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=1769014701; cv=fail; b=Y3NVp4LJReRnNX7L15o6DfO7OipEDo0pOI6dp7X72WuqyVY2+DKKwX1j7nIBuhvH4BU5eamDs9A6NrA0z0iIz8fNfcWclt6rhkYat+Wn0tcGKO+f6FS983oRHWA/7Ps0Rtfbbur67eGwJ6V3MqAssa4uvo+5phZMs6/A4H7zM8U= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769014701; c=relaxed/simple; bh=yZIMpDd004XlBTRddpWomk46qc+mguQ1eFR1zG/fd9A=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=WDQGUqx1iOaJbpNh3ACwkVl7Qyw5w9p9oASrMmRdOOa4thRW9TM4+qal94kiE/Zx3jm8d7QaxaHPO/qLro6oRwyI8Ao4rgXZIgCADD8lnLdg8i6puiJOVXkG5k216jNy2IRzFZcJiAsEs3m0UtxdKAgRWlauMeJYaCPl2G+r0xA= 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=VoYXkwMc; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=Ad9s1xNy; 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="VoYXkwMc"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="Ad9s1xNy" 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 60LDLNev3029082; Wed, 21 Jan 2026 16:57: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=yYEh4Sqe57k4zsxhFOXi04dxvb/DRI97Aq828syFWsM=; b= VoYXkwMcW4ybamiL55r4s51KQleaHBv8qbgnJSfsfBIigMvQwZvbyQPJ2BPR2bDg HfjKe3gT8rclHpY4YU72Um9Eg+WmBLPSzKo+Laj0hQMDBxdMkL0KnspZ+hFmAja/ CdyAXkoAkReet2vWnnKSzf7+kX9qcVXApaAbev1bfN7Zk9+/2nfhUyCcFx5f/zM6 FoZmMxF7eUIGTFj9TUms5J5PwXm8o09yffBEMduNPPYxyq3XjRtEpWtdKlE/+dIO 1YmX7cqPu4RaumsvLWMg3Sj0h1pPcDB3Y+mdpq99ASO7KndX/GObGfd3l6c9Y0vL hZXO6L76H9I6k3a4UgQLxQ== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4br10vx8p7-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 21 Jan 2026 16:57:43 +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 60LFshI7038732; Wed, 21 Jan 2026 16:57:42 GMT Received: from ph8pr06cu001.outbound.protection.outlook.com (mail-westus3azon11012014.outbound.protection.outlook.com [40.107.209.14]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 4br0vbgpuf-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 21 Jan 2026 16:57:42 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=D95610vfGhRcEtKeLoQ81dy2a7u/Og84pb3KI+bMx0qWF6eJuUJ6AJbi3eLyKH4R52q86G55gIHRcnW5Ul2GlavPWcLpjmJQdgeAlNaS51DfKtWqCStLIb/Ao519GQsFr/qFPGrGUgrJj7RAJ70IRC9psfYCyeaVGq9R9cgbGSK70G8BM64c4eg5nbXZXlEzcfKGAituJ2xp4z8/Q9wlz+/qkIL+xTTicqjn3bB7Rlef5ePqktjoNsr4bR0n35xphvUOlGyJjv54OFwXfStLmNX38j63ybf3jmiWbemdg6iNXQttEaTgd09uA+1S+w9gwOmOugDyO+GWNJhQ29Re8g== 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=yYEh4Sqe57k4zsxhFOXi04dxvb/DRI97Aq828syFWsM=; b=Tw9WuT39hkZocDHtYCaI1fStl5KAm0wwa/1pnf0AIUtYChHGpt18NWtdX7pxdvk2DSiSTLEwR1UHnyeDVsLaiwuJibud+Bt3Ji5pKNz2uKf//b7AQkw0+U1ugn5FveVLFfTqeTKrKPsj2pWQR/mKW8VccEHGmnwv+I6zZXPVFXbpCMRHGRxlh4xzrrBvQ82WtZ+zZCl2zHOr+Fg19Ac+YQIIEwQgHDjDb2m2VNL/ZIp71V0AHt5N+yXa4nXMDbs6+y3Mh9GWeQBmJR6HedcCEv3KDSM/UPjfDhkH0KiamLvNImykRAA2WwulzA8nssY/ppGcZRuYnJSfrv+losZISQ== 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=yYEh4Sqe57k4zsxhFOXi04dxvb/DRI97Aq828syFWsM=; b=Ad9s1xNy1tJwGEXcCF99FUCei+dmWVozUiRkN5PrvpbkghFj5B+s4d5Mi7WKuXiEHoUqOIsOZTjAfpbCfVeOZwlqvp7kDcsuaFzCzpPKKIcbJViwYewb7wkFjaJE1FVo7WZsvG25uaDOWCRWm18rtGGDVwbh2oUIMqmoYlmWXeo= Received: from PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) by DM4PR10MB6696.namprd10.prod.outlook.com (2603:10b6:8:110::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9542.9; Wed, 21 Jan 2026 16:57: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.9542.008; Wed, 21 Jan 2026 16:57:39 +0000 From: "Liam R. Howlett" To: Andrew Morton Cc: maple-tree@lists.infradead.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Suren Baghdasaryan , Matthew Wilcox , Sidhartha Kumar , Vlastimil Babka , Alice Ryhl , Kuninori Morimoto , Geert Uytterhoeven , Arnd Bergmann , Christian Kujau , "Liam R. Howlett" Subject: [PATCH v2 25/29] maple_tree: Use maple copy node for mas_wr_split() Date: Wed, 21 Jan 2026 11:45:22 -0500 Message-ID: <20260121164526.2093265-26-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260121164526.2093265-1-Liam.Howlett@oracle.com> References: <20260121164526.2093265-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0005.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:d1::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_|DM4PR10MB6696:EE_ X-MS-Office365-Filtering-Correlation-Id: eab3ef6c-5447-4ad0-5ee3-08de590e2fac X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|7416014|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?uY3KWSJU8vJDb7w/DHIUBsLbOxRIBqK4clPtA2DG/N3UVdFb4ieMkkJzBSWy?= =?us-ascii?Q?yuOE0dTz/7MHT3NqRfV1sVqGW20CuaxUEtDrQUhYTNMSJE9Pa3237CgxV0tL?= =?us-ascii?Q?IC0QmI3oS5jtpIneCU5H6lvtkJcpQuFDrw07xyKUvY1xhAH5cugb6K//CyIT?= =?us-ascii?Q?U7sG3OwyCCYU5GhxzS2HEXYf2cIKQ+qVh/9q+dtAydDzSmzWXV4sVWE/9uGg?= =?us-ascii?Q?/9JzJw8lYC6hBxBilG/ArXli2E7S+w08M1nHNWHRY8/4odOhMcVy7me9lBc2?= =?us-ascii?Q?BQAXzw6XBw6YyUujGmEY6i0B/GaMEmZh6WFinlqdSRIlESD8K78ldmfj5vGB?= =?us-ascii?Q?DSFxdh0nIVGgcLNNlrRVG22uW00cKFRblMqh7tdMIzRl48s9bfU5k+wVYhlN?= =?us-ascii?Q?Zf1UmoDor75pX0i/fc9eh0ClaTZgXLyoVOvs6Tv5r+RoTKnsAdZGCdcggXx/?= =?us-ascii?Q?ZgjL1kNfpqrLSxadI+hq452Tb2TBUlssJNe0WRhEUMXnlUcy/jd8eOjbLzNe?= =?us-ascii?Q?7oR4tpPfGCaHa4iVJ7Poc1x2YPdMojsuSsFlJTvD++L+2CtXg64qGnPye07q?= =?us-ascii?Q?u+rXOWGa3ddcKQl6JKZ9ElVRErDEvZ8Mqz386boprbjCAgM9TqfejF6dUIpo?= =?us-ascii?Q?JdRMRQP/xccuDkZR1KCKIvmdFMrRLkXNIa6++hVE+qGkqVu0VDm3ZufL9TKy?= =?us-ascii?Q?w5iquNBsK7OM45h3SQ0XwhMIzz0SZ1hcymw83EmR+wj2QcgYXVW45fOdzWoQ?= =?us-ascii?Q?s5zr3xmr6R55iPVKu2KUG6JFDuVsNrMgBA13j9QKAHdNgn7fFgEZNsvJ13+g?= =?us-ascii?Q?mP1pnTQG++RBs25eY95P7QOvd7zuiLvI3kYM4obcAFf+C67DCojnbMjyUQrU?= =?us-ascii?Q?egASZtpWuUSdmiSF1cQ1exKTkZfxZvPWCcOJ9Y4P93IKuoHpvErXYE5KaX33?= =?us-ascii?Q?PULKVw3UjtFyVqe8HwDWA1qUzln1gVP8jY6HZ+IQ6lxE8wQNNwcADUKFQtya?= =?us-ascii?Q?X/dzdkb7t8XWXoKf8VXXB1Y+a2/d4sEoIqUYp2nSNMZXUNP6qgW3wNtofnP0?= =?us-ascii?Q?KPvVNgRZwt0n+jcvrhdKNV4BdXt6vjh2W0eVT7541EEFIOPe+84jnLKUdFBQ?= =?us-ascii?Q?nKUNqbTpbhmeDvUPGiAhglb0hlZDpiTfOYU9z2pXsu5I/AJEYNO8dCTGDqZy?= =?us-ascii?Q?ucQIgs9853kjNWlPsOnol0ZhlQAaf+IiYMANkBsRZkparAtX59zed1vqzx4d?= =?us-ascii?Q?0MpR9uTsy2/rKclorj1SojStKAwDXsZ7O2vf/B6zUrxpIdyvWsEzUC0s5D7q?= =?us-ascii?Q?G8qE2z1t8QLZlwCDAn0wlPK2ispXEHbF37VaT6LNhak8cBEprlj6ByKbm3op?= =?us-ascii?Q?ZVL+t+zKMZ5VX9ei4GCxKgwcakRcoIERO4gFpUYwAIhWMfS0Bwh9Bjlsvs3h?= =?us-ascii?Q?L21tr5sUUvrQFFOBPNja9g21xOIZWRrnAS8XGawQD5Dcu3SDo4o1Y3E9hxVI?= =?us-ascii?Q?EKTL/e/2uk7X1m5j2MbMpFIZB99JbHSIubEW+POkOQ/YCNIgq7NP92tGSglh?= =?us-ascii?Q?nPsazfLHB6opIyJQve8=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH0PR10MB5777.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(7416014)(376014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?qwerwRoFaPaJ+E3ERK9kRmvpJHIqXVOSS8LcSvFQsaLgd3Jj21dXL7pxE420?= =?us-ascii?Q?7/pIh0sHzx81c2eDwiKsJRGb6ac2pikFivKKbwBcn+4cfptBDaqt2qccJ9t7?= =?us-ascii?Q?K7wJrUyYDg1JPW/UprlP+xLbSI55VtF+3863bd+ZM2P4xEmTg07kuAr9VfyP?= =?us-ascii?Q?P9hqplNfvQ3SuVsuLn0gKJW/cInuuGR8F2719P4shNBIG9WfCPXNt1AtTUgc?= =?us-ascii?Q?W3ZH70bVuY7CSLOZQOi42YKp2ulJqrjJuHvDVSSiBtx0qXUcKbRmktPoh63o?= =?us-ascii?Q?XcVJ94zpzEN0xRtWCGe614Vdj1DLky+xYLAEWGZ8Ookooc8oRanttX79OYQY?= =?us-ascii?Q?UEQTR9KcerFqnH9IsugOOg7aSPdgef2kZyDH0dOGOKBtmdI4ml9aH/uG3gdj?= =?us-ascii?Q?WS1kUlU8eN/ZVcEAiSTXaCXeqDcxp7TnQxy8EFOi+RHAedWx6kNwqfR4+zdP?= =?us-ascii?Q?JqgZe7jt4nW+4M2xuf6PfYfgrkcJIqvxxxbDSeJ6qRfetLKpYaWBjuWOgYWk?= =?us-ascii?Q?HWxc1if2exara7O4F/27C65sNT+MAqj/v97KVyE+iVnPWUFnAA4aNFRM2lZO?= =?us-ascii?Q?5igJ0lLKaet3kxvVvl8v4FMYE2fJ7FRgCOjmnugZmGD0+R30vtno/3ZJLVoy?= =?us-ascii?Q?4xJiX9I+ig9+rtYCVt1TEMxlGzw7dLLfJ7F9vGkkhsOZaC9CqONgHcrWNJPS?= =?us-ascii?Q?5C2xGlyUYOIyCTyDPZN/qJ/PPHbLcIIMpTSNG55shahBWbUcfsM6WvNym8Cg?= =?us-ascii?Q?C3M+gYgCDa5w3MGgqR753SIhgyVq5luZ12ofzS3XReIA/s2qi7bAL7zYX5Zl?= =?us-ascii?Q?B6MJvEu6uCoglL2cU0OaO3jsFjq8bY9fJ/RAmaa5J8wXK2ae8EogczyhG111?= =?us-ascii?Q?+scdPO9uKACgSj66vRO6OBIkbkTU6wAUYDoTQ8/m/KJN2ODAKCJwhzCaihDO?= =?us-ascii?Q?aOqNZnYaC6tRj8bd1pRW+cOzABMoI9PSHasE0t2EjANVN2NwriRhkVb19TSJ?= =?us-ascii?Q?D+g7TVGgjPfbhvVh6BSofavNz6bPPpq/+I6nCDg/IsTlJeiRuyY41GqbIioG?= =?us-ascii?Q?Dqa9k4qAvCgMgCT2ys1MU9MYg0vB5rA+OVPaxS1ikJpGcx52WSRD+axlH5Td?= =?us-ascii?Q?lBsFxDEnsHttUpzP7CweqSe9KSad/gyVIHBdVPF1HNpJRntCXY3dZSQgZIjt?= =?us-ascii?Q?foBv4jbusHg6Ti1B8eHHpR8ZBXUHWkSGD14x8E7T9OQV+1yE7NA141eSKTPA?= =?us-ascii?Q?3ylU/gdYXkK68ay//L+hjCQsM38gVkRF7DACNRx7ULlnuoz8Q5KDyAkgV4N4?= =?us-ascii?Q?kG0KlETv7hyu1xIsKAOG4bbZm9XcaE9D7A9nnEDdMzsArhGDBymEywSCl5wx?= =?us-ascii?Q?K25my7ZLA9mIVRtysqxC1GM9bI//o9lKzxNwzkXwPu+yP5bg91VQKTr9RQ5k?= =?us-ascii?Q?fr12bzlZHbputbRS5PALdqqoEx5Ys7bdgv6GPf45Au8MXps5J6PK9BMlZAT0?= =?us-ascii?Q?cxOW76jN02lBgcu78PWweWcYI0eg5FMBsgYSDMm9DWM/CFrg+zHsHYqBDMD+?= =?us-ascii?Q?N8DrFV8qZLIfXYBZorq65Mr/lTMqPYn39R3PMIA1j2PB1vbkmAEQ4XgAnV4H?= =?us-ascii?Q?ieZcddev4YQatctYW2DdNX20D/Kh8vjSh7sxyp5uICmbvqu7O7UcUqaOFwol?= =?us-ascii?Q?gGdW2Rxnju/G7Hx6wmMCNxl+BbM+LEym0oYQCr54gfXlmqG09jEnJ8NIeKQQ?= =?us-ascii?Q?12qTj35lpA=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: LzrDMcewdbTOvSkrlrBj8guRrRHa3OFJORSAQ7q8aToldgX8ioKZTNehEd+zw6I4FmyUC407bCavVRA1ReCo7zb0xom6aOEw+hWMN/mjcNDNMH0r3lvkipgjrTkMkxKaejoRSyUVQv/ttx1WaPWK08HBjRtL5VsAzlJvNV7GE/P/S+gAXYVMSgwGG1iVEGstuB53fyefsdM/sj+J7yCWFPsULyy7FxlFvCp9ljesGXCvYAKwRFUwrY+or3L7ch16HEA69h6cwXX8Tki2QgAJWEH0Q5QoGjnjNyV48Gt+rKlGOg1WCLsaeRpbPSv1a3YjcEIFeIb5eE6OnoAAmmb47vvJFMr5Uk2kP31P3bT/eu95esAwNRNGry9ABtLIYg+SwEM/omqPXT9GphQ+xqLexGiEjWhq6bcXZpsGXfAC7gJeY5kRq73VmeQAHEEmX83p9G5oaVRSCi03qAnDGsMfaBNnamRcu0OqKG1aX+DzN8TMrhmM3Z53L6AxvxCGU2FEMzDrgJTSeb+LBtg5ATMVbZe4KjWQ8uexh56AmruRUHUVeHDPxKgJkSeshTdiTucrvhrGe5ZZhzl2IoHahXG77pJWZg5sdF7X2XYC9BgYzwc= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: eab3ef6c-5447-4ad0-5ee3-08de590e2fac X-MS-Exchange-CrossTenant-AuthSource: PH0PR10MB5777.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Jan 2026 16:57:39.9147 (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: OXliE/eGFupQztOkx0+6CT6c22tqKDUlR/HV4B3N8xIhw9fqvowAo/4+nIRXxQzu3mvP5Z8paJbSCHpky3BQ1A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR10MB6696 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.20,FMLib:17.12.100.49 definitions=2026-01-21_02,2026-01-20_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxscore=0 bulkscore=0 phishscore=0 malwarescore=0 adultscore=0 mlxlogscore=999 suspectscore=0 spamscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2601150000 definitions=main-2601210142 X-Authority-Analysis: v=2.4 cv=H4nWAuYi c=1 sm=1 tr=0 ts=69710587 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=tVZdP6cYBDUjvyGzC5MA:9 X-Proofpoint-GUID: kvzt61d8zHD2Jrnf4BnIMieNkwx2KLvy X-Proofpoint-ORIG-GUID: kvzt61d8zHD2Jrnf4BnIMieNkwx2KLvy X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTIxMDE0MyBTYWx0ZWRfX4Qwq1jKTW7QM Cc2+vnVeWwZI/upbmwDUUBqxEGTYUKbefn1CE+i34JhzvxbJ6b2odY3hqxFBNNQnhDrpMTrUrCf IfSAVyYiVWSSS3kDGEA4zYDR7KERFehFvl5+I6vKfNclEZ98Pin4zCRG4drY5vWU4iF59nCnUrK zeVRwy8swXMaobApmcC442wNbTak0npYILszjmNPlqk0HwvxHqPMF7TBvjXmsiNgOnT8WauPtng A5BbrQ9mvbX8A/PiO68JDsWJRiWyY+3aAWAdV1uj111wgrJklFZhjCN6qqXQyISfDoBHKEGgwMe XgsMZN44rbbNdb7h7qL7d3KWbokFwVKiNaKGm+306uZGOJaqfj1F5CDjwhy1JWcgUpnGRqIWjtj EKvSX1rYaSCzsRiCdUn9qGN99pvIdIhDG9KD9rjQNdFbxP4teAzmZz/7dr5xqI7MVv+vG85TrtR D7nNvyOYjiAR8oTO1Mw== 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 191b855575650..8c97f2963b9c6 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -4534,19 +4534,106 @@ static inline void mas_wr_append(struct ma_wr_stat= e *wr_mas, trace_ma_write(TP_FCT, mas, new_end, wr_mas->entry); } =20 +/* + * split_ascend() - See if a split operation has to keep walking up the tr= ee + * @cp: The maple_copy node + * @wr_mas: The maple write state + * @sib: the maple state of the sibling + * + * Return: true if another split operation on the next level is needed, fa= lse + * otherwise + */ +static inline bool split_ascend(struct maple_copy *cp, + struct ma_wr_state *wr_mas, struct ma_state *sib, + struct ma_state *parent) +{ + struct ma_state *mas; + unsigned long min, max; + + mas =3D wr_mas->mas; + min =3D mas->min; /* push right, or normal split */ + max =3D mas->max; + wr_mas->offset_end =3D parent->offset; + if (sib->end) { + if (sib->max < mas->min) { + min =3D sib->min; /* push left */ + parent->offset--; + } else { + max =3D sib->max; /* push right */ + wr_mas->offset_end++; + } + } + + cp_dst_to_slots(cp, min, max, mas); + if (cp_is_new_root(cp, mas)) + return false; + + if (cp_converged(cp, mas, sib)) + return false; + + cp->height++; + copy_tree_location(parent, mas); + wr_mas_setup(wr_mas, mas); + return true; +} + +/* + * split_data() - Calculate the @cp data, populate @sib if the data can be + * pushed into a sibling. + * @cp: The maple copy node + * @wr_mas: The left write maple state + * @sib: The maple state of the sibling. + * + * Note: @cp->data is a size and not indexed by 0. @sib->end may be set to= 0 to + * indicate it will not be used. + * + */ +static inline void split_data(struct maple_copy *cp, + struct ma_wr_state *wr_mas, struct ma_state *sib, + struct ma_state *parent) +{ + cp_data_calc(cp, wr_mas, wr_mas); + if (cp->data <=3D mt_slots[wr_mas->type]) { + sib->end =3D 0; + return; + } + + push_data_sib(cp, wr_mas->mas, sib, parent); + if (sib->end) + cp->data +=3D sib->end + 1; +} + /* * mas_wr_split() - Expand one node into two * @wr_mas: The write maple state */ -static noinline_for_kasan void mas_wr_split(struct ma_wr_state *wr_mas) +static void mas_wr_split(struct ma_wr_state *wr_mas) { - struct maple_big_node b_node; + struct maple_enode *old_enode; + struct ma_state parent; + struct ma_state *mas; + struct maple_copy cp; + struct ma_state sib; =20 + mas =3D wr_mas->mas; trace_ma_write(TP_FCT, wr_mas->mas, 0, wr_mas->entry); - memset(&b_node, 0, sizeof(struct maple_big_node)); - mas_store_b_node(wr_mas, &b_node, wr_mas->offset_end); - WARN_ON_ONCE(wr_mas->mas->store_type !=3D wr_split_store); - return mas_split(wr_mas->mas, &b_node); + parent =3D *mas; + cp_leaf_init(&cp, mas, wr_mas, wr_mas); + do { + if (!mte_is_root(parent.node)) { + mas_ascend(&parent); + parent.end =3D mas_data_end(&parent); + } + split_data(&cp, wr_mas, &sib, &parent); + multi_src_setup(&cp, wr_mas, wr_mas, &sib); + dst_setup(&cp, mas, wr_mas->type); + cp_data_write(&cp, mas); + } while (split_ascend(&cp, wr_mas, &sib, &parent)); + + old_enode =3D mas->node; + mas->node =3D mt_slot_locked(mas->tree, cp.slot, 0); + mas_wmb_replace(mas, old_enode, cp.height); + mtree_range_walk(mas); } =20 /* diff --git a/lib/test_maple_tree.c b/lib/test_maple_tree.c index a182e48b5f5e6..434d8a2fdd99c 100644 --- a/lib/test_maple_tree.c +++ b/lib/test_maple_tree.c @@ -1024,6 +1024,7 @@ static noinline void __init check_ranges(struct maple= _tree *mt) mt_set_non_kernel(10); check_store_range(mt, r[10], r[11], xa_mk_value(r[10]), 0); MT_BUG_ON(mt, !mt_height(mt)); + mt_validate(mt); mtree_destroy(mt); =20 /* Create tree of 1-200 */ @@ -1031,11 +1032,13 @@ static noinline void __init check_ranges(struct map= le_tree *mt) /* Store 45-168 */ check_store_range(mt, r[10], r[11], xa_mk_value(r[10]), 0); MT_BUG_ON(mt, !mt_height(mt)); + mt_validate(mt); mtree_destroy(mt); =20 check_seq(mt, 30, false); check_store_range(mt, 6, 18, xa_mk_value(6), 0); MT_BUG_ON(mt, !mt_height(mt)); + mt_validate(mt); mtree_destroy(mt); =20 /* Overwrite across multiple levels. */ @@ -1061,6 +1064,7 @@ static noinline void __init check_ranges(struct maple= _tree *mt) check_load(mt, r[13] + 1, xa_mk_value(r[13] + 1)); check_load(mt, 135, NULL); check_load(mt, 140, NULL); + mt_validate(mt); mt_set_non_kernel(0); MT_BUG_ON(mt, !mt_height(mt)); mtree_destroy(mt); @@ -1285,14 +1289,20 @@ static noinline void __init check_ranges(struct map= le_tree *mt) MT_BUG_ON(mt, mt_height(mt) >=3D 4); } /* Cause a 3 child split all the way up the tree. */ - for (i =3D 5; i < 215; i +=3D 10) + for (i =3D 5; i < 215; i +=3D 10) { check_store_range(mt, 11450 + i, 11450 + i + 1, NULL, 0); - for (i =3D 5; i < 65; i +=3D 10) + mt_validate(mt); + } + for (i =3D 5; i < 65; i +=3D 10) { check_store_range(mt, 11770 + i, 11770 + i + 1, NULL, 0); + mt_validate(mt); + } =20 MT_BUG_ON(mt, mt_height(mt) >=3D 4); - for (i =3D 5; i < 45; i +=3D 10) + for (i =3D 5; i < 45; i +=3D 10) { check_store_range(mt, 11700 + i, 11700 + i + 1, NULL, 0); + mt_validate(mt); + } if (!MAPLE_32BIT) MT_BUG_ON(mt, mt_height(mt) < 4); mtree_destroy(mt); @@ -1304,17 +1314,42 @@ static noinline void __init check_ranges(struct map= le_tree *mt) val2 =3D (i+1)*10; check_store_range(mt, val, val2, xa_mk_value(val), 0); MT_BUG_ON(mt, mt_height(mt) >=3D 4); + mt_validate(mt); + } + /* Fill parents and leaves before split. */ + val =3D 7660; + for (i =3D 5; i < 490; i +=3D 5) { + val +=3D 5; + check_store_range(mt, val, val + 1, NULL, 0); + mt_validate(mt); + MT_BUG_ON(mt, mt_height(mt) >=3D 4); } + + val =3D 9460; /* Fill parents and leaves before split. */ - for (i =3D 5; i < 455; i +=3D 10) - check_store_range(mt, 7800 + i, 7800 + i + 1, NULL, 0); + for (i =3D 1; i < 10; i++) { + val++; + check_store_range(mt, val, val + 1, xa_mk_value(val), 0); + mt_validate(mt); + } =20 - for (i =3D 1; i < 16; i++) - check_store_range(mt, 8185 + i, 8185 + i + 1, - xa_mk_value(8185+i), 0); - MT_BUG_ON(mt, mt_height(mt) >=3D 4); + val =3D 8000; + for (i =3D 1; i < 14; i++) { + val++; + check_store_range(mt, val, val + 1, xa_mk_value(val), 0); + mt_validate(mt); + } + + + check_store_range(mt, 8051, 8051, xa_mk_value(8081), 0); + check_store_range(mt, 8052, 8052, xa_mk_value(8082), 0); + check_store_range(mt, 8083, 8083, xa_mk_value(8083), 0); + check_store_range(mt, 8084, 8084, xa_mk_value(8084), 0); + check_store_range(mt, 8085, 8085, xa_mk_value(8085), 0); /* triple split across multiple levels. */ - check_store_range(mt, 8184, 8184, xa_mk_value(8184), 0); + check_store_range(mt, 8099, 8100, xa_mk_value(1), 0); + + mt_validate(mt); if (!MAPLE_32BIT) MT_BUG_ON(mt, mt_height(mt) !=3D 4); } diff --git a/tools/testing/radix-tree/maple.c b/tools/testing/radix-tree/ma= ple.c index 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 07:08:28 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 01AB14C8FE7 for ; Wed, 21 Jan 2026 16:58:25 +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=1769014709; cv=fail; b=TnrPhVD75Y1uESdNMLNyw9f4XHVLPgbD1n+QDdupAUKmBO00JaORvSt4sIFGWECpUf/LjgKlmICsHboWt40FxkSLVD5o3oSFbhNPwD2pHYjLou9LcQFSpm2lsd+keEOIfqWgW2mmoCbi8EW8+PqP66WLmhwW882TlhS4Ur8SADo= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769014709; c=relaxed/simple; bh=AkWecyxD8R6SUBoYgyNYBXwmj2m2sJXuLn49iT4IgQc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=Z+HnYGb6ZNEEAoMnyfP1fvPtnoIp4LQcs3mO70Mo76VYonZlxkkxRR8tuwiUV9ISQZnSFSLmadGaN1iO9vjSgG30+Ztyg5JcuCqCUqZ8LD7OswYaMaEnMhLc2MBalZtHIvQuuR3nluN6tWEa8M3sC3RawG1oC0FEzHtf1LwI+Hg= 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=kFknlZ42; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=aBfQCner; 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="kFknlZ42"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="aBfQCner" 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 60LG0KMS3429768; Wed, 21 Jan 2026 16:57:47 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s= corp-2025-04-25; bh=WxAyGp5LPyMExoTHfMqj7smpv1S41dvj3PIcDVT1f6o=; b= kFknlZ42YZsb1JhxZYF6JzrfZ9H9OXdXBt4A0VL8qZmk2soMw0hAkluWyYG//36y AtXpAfk+8Tk1DtPZth3X7ybwqJhNwzbRKr5TuCidGoMUGx4HZy9WvHga4jJ1ewHn FpUgf0Uq7EmpNEPecQyVauFaJCJyFk9UwWID2Cm9PWTXt0B2CkVUAltGRxcAhMRW kfclHyqBzeVGYIv0WV3zR8XlgxFJBU5cQOoXiHysAlF+RGyWcp2hQoek65ZQlUqr aFuPwh8erBVB4moXuUCKRnVrRz+sFzWV1o+sVXHVjsdHmRCDq3KRK7gsEw0WCHu2 j0xaJwQIuSmC+nd9zdrdJw== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4br2a5p639-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 21 Jan 2026 16:57:47 +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 60LGOhW7015498; Wed, 21 Jan 2026 16:57:46 GMT Received: from ph8pr06cu001.outbound.protection.outlook.com (mail-westus3azon11012064.outbound.protection.outlook.com [40.107.209.64]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 4br0vbhhp1-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 21 Jan 2026 16:57:46 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=l3ZcMWiJXkCQ6tuYvcPPGY6GhOGejIfh+na9EJJXUmMxXOuNnZnGDbXq9Xt95gMLFLz1lL8HnINBISfbTNZVXT0lYa9T6UQKl1tBGYPqnXcd831VlY4Q1nGjfsLojybcdK6+1RLm9uZNEQGChML5+qG1OgX5aLyX2LQimqWFE+zCPgtx57rXNVBo1s6DdacDD6iNZWoLDMXUA/zr4CbBHbMfDt6fVnJXgrfwSwudw4pWOyZEN1WyL1tKjpz0c4+iTLwvkKAAjz2Z45h/BOgAT/swrFrhLz/e7ZOTJC7Eh9cisPC183Ad5mqsHpIftul3ITKD5C8tGX6pDDch2dt5SA== 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=WxAyGp5LPyMExoTHfMqj7smpv1S41dvj3PIcDVT1f6o=; b=inWYO5ZKxenyCnUGPI57flckBjG8RsYC5zloUjtmuAed6yT0tZKfNVUAY4y75oaS/iUk+RSCajJhL2jOzB/QJSds+dS2k7gy8BF9Uu91CkCQQQgyfj2CnVpGrX4ricQwBNllEIjAoze1w8YcTgD2dseAbAlxHZ26XiMynUIzknei8hUpm9D9nstCHsRDAQ7xxDaMPWctCwIxEMkiYF2jMWwnZbc9URubI07TSWPVyhkcNIETDMz3jczTG6laDrbZrOmtBfyroNU0iKpT1MaPsIYHxKLZe8MZ/E0DIRo3OJvjR5j/+++9BNbXUJ+EkjG38pgQMCSjCCZJX7NlRrhPTg== 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=WxAyGp5LPyMExoTHfMqj7smpv1S41dvj3PIcDVT1f6o=; b=aBfQCnerTIfj1ufXu1n0fbr/dxZb6F5qtmPGOFBYhuM3wncq3icaI1bR7j398rfdWRam3j+0H6UI0ApJjYfD42fPUJIyMPleiDcU8hgeiJO3qop59qOxUDq5O8a+3mcLAbU0MczLzU0TRyLXXmdwyuMhC/LlgcwSDwagWgfI+4I= Received: from PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) by DM4PR10MB6696.namprd10.prod.outlook.com (2603:10b6:8:110::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9542.9; Wed, 21 Jan 2026 16:57:42 +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.9542.008; Wed, 21 Jan 2026 16:57:42 +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 v2 26/29] maple_tree: Remove maple big node and subtree structs Date: Wed, 21 Jan 2026 11:45:23 -0500 Message-ID: <20260121164526.2093265-27-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260121164526.2093265-1-Liam.Howlett@oracle.com> References: <20260121164526.2093265-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4P288CA0006.CANP288.PROD.OUTLOOK.COM (2603:10b6:b01:d4::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_|DM4PR10MB6696:EE_ X-MS-Office365-Filtering-Correlation-Id: 1d7d38ab-b4d5-401d-26e8-08de590e3148 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|7416014|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?u+Nyi69VtFHt0mlJiTMEm2Z31GmdrUheW1re89vbEMJUcFrx4q8jsSk66AZp?= =?us-ascii?Q?GbSPpB5u0y9/prayHTrYmYKx8bQoffUw2MiRoXL7DXF+2m6AwFHksGvg2utI?= =?us-ascii?Q?vMNtY/BQJBdTp8HOcBwSGlNLBA+YGONsqni+6Ea/UOH3AOAsMTR2ZQcy1xzx?= =?us-ascii?Q?k57PgUTkQT64vJ0rnZdR4IYVYutZb/Fw6Ey+iZGaHyOLAIvzUDB2iqGVvk3A?= =?us-ascii?Q?+ag/Ff6OfXBVGD6beJGyYpDiABmC9zUbzIwb3QZ6+B/Kg6pO0MHz5ZjOMTVw?= =?us-ascii?Q?NJavQ+BXHNotkXS7ydFaY1SPBdfP2J9/ZTof/AnPpHOjHDDaWhmP/8D4oPA0?= =?us-ascii?Q?7AO4m1Aqnd9e87LgKlcUc/IxpViT2zN0x8qpDhM3eFT9KosCjp35aV5kyREN?= =?us-ascii?Q?/Mle08hwWq+dsWZNcpg032udnauVs7F+rCZx76FN2pFtQO24iT6gcpzAbnlU?= =?us-ascii?Q?MROXODQ8387MGY2SRC6uuZf3PzEjpswZpvw1u7jSoe/8bbRfnn8X6ZCeKFwV?= =?us-ascii?Q?55aC6SdC2U03MPOe17gP3v03YcPMeW0dqKVnbgeCf2X9FoUVnblhL/49ZoI4?= =?us-ascii?Q?dp53SS6s8jokSSZuYnic8Bkx9olsJqM4S9z8PLUoPTzE9gfHx3m0FMwsvbNd?= =?us-ascii?Q?r2FG8W5ivv0lm3QkC73r5gwJ9N0uyzvgz60MOC+zYHP6SRsXeHOoH976VIkl?= =?us-ascii?Q?6HuVyswtg8lJUr0Lr08wW+xY8N1lGXV3WrRZ8K7SHp+XtbtzC8OlLkT5DDo0?= =?us-ascii?Q?CeISFhrrvHtLdXavvBXqdcue5oxuwTv8LACBj5ELRBI3P9AkTFOkm3QjH7SS?= =?us-ascii?Q?Gkg+W4sJF1RQZoB+mK9KRKhD0EBSiAjaTinhrONd3PY8pSfIzDS3LfcIjxCL?= =?us-ascii?Q?8pT2niC2Dky3+zPxD0FTCw1L7gF/l1lWDHoovuzl9yuF4wQEYW4NdipCFcca?= =?us-ascii?Q?NFfE7F3k8i4SrlD//QeRnSajmXC/bYFOG7agGuMUmi1PARhe9IPCwwD4UcKI?= =?us-ascii?Q?Fx99B/9DocH3XMiK1D2SHnTrIYYO1dt4UcDD3fSHsu5UwFym9ReYCOhawds8?= =?us-ascii?Q?CalVHYY9UtpsCAw+xkxBmP7mA8Hn/7qFaMPNTdrC4G+viVXR2yItXzR3ilVx?= =?us-ascii?Q?LnBtoNrFbUNMbonIb/y4Ni+usaRwUInWrFaS2fWBJ0vtfcxuF6Fq0oJUDY/L?= =?us-ascii?Q?aYV1/LCQ18v9KxQnuTzdjhSXhwHpbpqIk+9sXiP5K7Ar3IXUWIuxkUXb+J8P?= =?us-ascii?Q?7/xArZe5TJbdMSEZrhXK18GJByEOJCjMbSxH6NO/T1FjbFEpVKeURjEATy8X?= =?us-ascii?Q?bCU2bhfao+aPAXjkNZ63pwRlamMGQDTIO7z9a2E2NkTwgT9uJG1CO4+V5hnD?= =?us-ascii?Q?9gmWn/hqEsvMUArWtQ2Adpc+271BD4K3HnEIV7icZDwesv9CkLjOogk/DsYJ?= =?us-ascii?Q?tTSlQPg+ayA3HyjWWQvOYXbkk3adu7bg6YgBjRsKBeLML3XGBH70YQz/xDCo?= =?us-ascii?Q?VwAl4MuaYrbn7x1R9uCT8sTQZmZ0BBf/vVY3n9vvLcPcJDXgrczCJ1P4vXsR?= =?us-ascii?Q?W206JBFdLEy0hHBhNTg=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH0PR10MB5777.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(7416014)(376014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?r/JNow6XZasMwAn6gU0ojWX4xGXK5nVISIRfTqmIuEFlowhpBKTGI3eo7lsh?= =?us-ascii?Q?f9FT3FRF/VDEK1QRmIHzc+jSU6CHEHOgK5nfjuCcBN+xWXAiLSQQhSeyy5rw?= =?us-ascii?Q?sMIS7DMPeyUbqbxwRvUyKup8y4L+uZ2fOMsBoUv1QTG227MGiZFyQAE6PAVy?= =?us-ascii?Q?HIPJeKE7efo5Pfi82KpQ3z8/O3k9lQ6G6CWyYetIMvnNuKSEaG7Q71gpNn/t?= =?us-ascii?Q?FvAX4FOMkO79fmw+PMkvySPjbE1JotaP+4LHuooZUxF6Wzjom2ixNYMbhO9d?= =?us-ascii?Q?7bErqdxtuSmfrH3MfhyzjNJbvoGoXfdf4+WAVoBrr23GEKmuleRooGLJolk0?= =?us-ascii?Q?Q4B7GkUvtTrHwHEd1jk7dLP4/xQ/Zd2GVafPGUpOsUBSd9kIEDoQFvRNhKkh?= =?us-ascii?Q?ejKq5OJJNM1THiiGE1FSWoOk9UfDob9bxmfs6X2qmEThCnjFAjoyGQq3NRsn?= =?us-ascii?Q?me8QMMja4xEqBV2pC/EF+UC9HHbvYqUU4cuUW4OJuhHxQF1Y6V0VA0Bh6eNE?= =?us-ascii?Q?sOX/bMPyKBnSAzOas7Dh9xLWKyvUkJ03sr2ZwOEF9QR9JYSAvwl2+Ml0wd2v?= =?us-ascii?Q?buQ/ieiMLLZLs9vMv8Xy2Ok4s3dHPIJ1V9P9RdL+unhC0olCbvZKKEY47oqc?= =?us-ascii?Q?cDCgI2S1U+gu6mDWyOXFS5KorenAUCntpywLEu7pgdPi9i8OAQy/eUhxaCr1?= =?us-ascii?Q?Uit50Uz+xtrLOjQw/H1wqJW6jaGBVOXyGpVNNzVZs6l7V4LIj3w36LW9UMOd?= =?us-ascii?Q?cMHIdXbmXQsh8qich4O/Rw3YhVLTcxwaWwEZccrH+jf9rvNIosuQoM0y5eGj?= =?us-ascii?Q?UhkZ0X0hWyigLPtWAh6kRV8prkCCqASTrCvsjryhWYwy+qVXyB7O5+vvvmIF?= =?us-ascii?Q?KrWbGwyfBy8nWYsOGRnAKZmIakVVXEI6XePM4B2aa0B2Mtwck5ALvfBcIIxc?= =?us-ascii?Q?pIYpJRJJiG/80iUmjKllXvkn12S4jb1XsruD7Q1MFXDnmqTJGG1xePqckVER?= =?us-ascii?Q?quLzwXnz5E8nJ3PLFiTdqFUIyzhXSgoF4hWVCXCpudpD7gPAQw2qdsKgACmn?= =?us-ascii?Q?MWTdhcEu+Sy9WuSy74PE6fAAPIOlSA6pN6oVmYE1pUoW2zaLTuvSHPyyP+iL?= =?us-ascii?Q?EeZyaZYY7QR7Mc3qcLM2W/cOjvI+zrELhjq2GRP91XiwbvAYfOT4x4B70I8l?= =?us-ascii?Q?nCR4ZIPwr5oyTAc/2eHDKoQyMxSWRkFfYJb8nLXxY/0bqm5zMVr6c7vtzvtj?= =?us-ascii?Q?+XmHfmd7so8bmSU+MTm7o5ejXMwseVp/i4C9IdPvhSq776ccshWL5Vt4Ljmv?= =?us-ascii?Q?3NEm7Dp8XNAfZr2Pbi+CSeV9nVrKIvqJBqeVx0m05r3ZWnLdJYKLS3j07+Pg?= =?us-ascii?Q?ycVUHBknF3xjBBHhbC8h8zaUwof+6wz/4uDkKksA3Uke4idxwvDIex0HMKrS?= =?us-ascii?Q?zTTUjnWWI5rVBtin6r6fXXwjBuB4ENBo0WMGIyHIx/udwirUWqaGQO9I/RlO?= =?us-ascii?Q?VKk6LD//X51Kn/j2yCC+3+4GVNhF8MMjsEQNIDFM1CBEDQBXHLWhtUgaXoh/?= =?us-ascii?Q?9sOjg1Q5NVW+WZXP/+VES2X+W1dnPkzhMw3T3rBCJB+h1FZzjcmVH/tGr6Wd?= =?us-ascii?Q?D5NEbtqbd0dgYS4BmUFN/vxUnVZ341Kc5KdT1heivl16b1UcrmChVsH2akzi?= =?us-ascii?Q?+7bJSp6PEbE7du47dLN36/98feo9reXVGc5wsbV5aQKUAYgVHUDTFczdr7mh?= =?us-ascii?Q?ejhB4ddqEA=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: MzMoiLhrJslGxN20hlgQCw/xtlrB6X4Fkhu1rqGvmxfQzJiIbrsUdzPlFpF8FiY/7gLfaO/I6AK2wf+WRbmiPol5vGzZsKd6veh+R/KQr/0AFEf5AP8hFm4rTE7XV0RlkpmUbHyi2Qd0RmU/keXmZq34TpSYGAbJiOOUcm/lcQNFsSG2ncY0PXaYY4AsrSNMQrbGXdCFQEiK6SH61uFBrJ4W87ViRTQ5KoG9R2STmXfaYsmYCVaMOWEWDgSS/WCtKdDIxCbUUCHLw08nIpsVyFa3KmXPCx2k72SI6U6RvI+CKnqMXCivVt+fZ99UtQrqBipmEMnM3SDaqw/G7kZxDfdDSsrrBe/EU97SiFxuWvfT/f0aDxd1WID5PXcVnILAno0B31Z9ikiuGxIgqHjnAIJn5h4GUAnUgFgt40muCsM+IqPqDlHlriPvK+4Vwk1vo/PdQd56vohdKBfe3qoeFIDqogQaKfAtevJwB4zYLlefrU400XCDDZS/+ljyQB9tGLDX3HYtZmCufC+OlU5eBy1em1PCzg1Fz5GSohmXOh9OA238YwgMuin/A7ONRSCtPUS2llkIO3M1G2EXSp+lxVTjWDDU6a97YyZW3Eh3jWk= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1d7d38ab-b4d5-401d-26e8-08de590e3148 X-MS-Exchange-CrossTenant-AuthSource: PH0PR10MB5777.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Jan 2026 16:57:42.7300 (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: 2FxUEWLjODussbJY77peA7gjCWGVwrN89rztR/wEQz3+9v1NJ3Hg5Yb9SVH/B+jQRUTIReJqmdGNbUwbVTzifg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR10MB6696 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.20,FMLib:17.12.100.49 definitions=2026-01-21_02,2026-01-20_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 mlxscore=0 adultscore=0 phishscore=0 suspectscore=0 spamscore=0 mlxlogscore=999 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2601150000 definitions=main-2601210142 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTIxMDE0MyBTYWx0ZWRfXzoBQ3SVdIN+m RudcCEK7znkAJTOkSUKDHs9zVoFsSVUY5Ucr5DhIr6LNcCURJRcAU+THSEczBttqtAvRgS2EcuI 7MEohwCpeChc5hV1tPJs/IV5Op54/cP5ZaBGttf17hmGsD3bMFUCedd4l9O1zLLLRkUWizyPyVx SJaEfLcvDzp9amMh4uefP+CD8+QUu/7UM1K3xgNuDwqRm9L8nArLZPCv7q8qweNwq9a186BXYKV D0wt90wY3+gAYkjAu9ZLBbrurr6klmnKoQTuYEgs+N33MgsXN0IKkChJFy573EspWfTOQ5/eKP9 91dmiXnXqsEZNp0AS5kttDpuhWdJtv8kubs0S3BW1TR5wv/PwvrCq8i6rYcNOXgK9SGcIx13wma k2XzrzBlpTwgWhfNTL1n44DcK/X3Q2yq1zPTht1Sp3CZyDU6dc0YvIKxITnH7EG1dYGfd6mMxcQ +DzioRbIbyT+aPYalHA== X-Proofpoint-GUID: UR51vKcil9Iq7mBbU6A9qYK5qaCo5rQ9 X-Authority-Analysis: v=2.4 cv=XK49iAhE c=1 sm=1 tr=0 ts=6971058b 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=AJrCfj9k8GgL1_glB6IA:9 X-Proofpoint-ORIG-GUID: UR51vKcil9Iq7mBbU6A9qYK5qaCo5rQ9 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 8c97f2963b9c6..744df5a596550 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 @@ -2641,103 +2019,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; @@ -3296,158 +2577,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) @@ -3586,319 +2715,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 07:08:28 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 B15D63806B6 for ; Wed, 21 Jan 2026 16:58:15 +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=1769014697; cv=fail; b=LnkOaOwoyLCATwvvmcHtfYlnTlC+15DuYNjNRpNFDq6KTa/lGB0tK3foWECDqXRP5nZPmnXlYKdECP9nJ1ifBF43yFiiKP/4fDRiCvFtrqWo96+K4wSBYD6I9I7Sa8kjzcQZwEzFH9toNp/EiiVZ849VslzrJWDLb/hEosfX0ZE= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769014697; c=relaxed/simple; bh=W7ErC8Eu0k9oiqQEMzaag7xDZjcd3HyKhLEs/f2zqkA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=EyaVqdSfWf1Wk3tiBA71E3zO5WNDND2uWxW89E72NonVtaDXpWX1x3xGkJgLgbgJ1DQY8Dgy/ldkoe8zCb97KrYX5EXPjpMf3GrhTX/zAS5ZM3h44DFZB1SLRxl75aHu6pmELhMFp1sG4doyvvCIMZWsTi49NhcHU62ZS0GQb3I= 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=owjYeWap; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=QbXRMtna; 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="owjYeWap"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="QbXRMtna" 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 60LCeNZR3524038; Wed, 21 Jan 2026 16:57: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=yqRszWbzTUqk+djeu7qEE3o1TwiliEvBV88vRJf0aSg=; b= owjYeWapgIGZv8Ox2sPgwxuYmmLk462I6DIHge6DZErhuEZCywGruLxp/I4Dinp9 H24lQkb0jeXx7humIDq3wxdO3B9CuYpymqzc3ViiJXPZEiKQQIBBKqjOVCyxAunj 41YFqK2mLxOeXGeZK4OoU0YiwYTCDkMe2ymh62rkVCcNaEXCiSKSqxr+W3TdgkTG iY4cj00TGUtx6GhbzxRGwnA6EXOpJiMiyRKMdv8wWVf0vxwKrTQkJw6gSVe91CH6 1DGzckkM6kO5k39ISi9+3tdoM4zjvxAvjjmndXor1LSCAu9UItGjHsjoC+NLDkw5 OMnVN1/pfcc2TiiGa2Mrcw== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4br21qee7f-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 21 Jan 2026 16:57:51 +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 60LGqkbN032828; Wed, 21 Jan 2026 16:57:51 GMT Received: from ph7pr06cu001.outbound.protection.outlook.com (mail-westus3azon11010037.outbound.protection.outlook.com [52.101.201.37]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 4br0vfanbn-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 21 Jan 2026 16:57:50 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=O2m/TAY5xwXyYGGhPGasAg9BLxzjOU68JhkhJPDFImTfRsi45ns5fLgqGqUQv5umXBC7ikbfj+XPmSHF8EGut2fsK5uZifAwXhc/03waElVjPK/Zui0EXjFGlhblpYmWG/oAA4nYnn6nt7kwPHa22V71t9NH1sOPGiYu6sAbiM1g47ocfvFykCKBRuhBPdaSm7Yn7Xxh4k/PSKw+S7wwnjc3krfdjzxgoDGhted7hbPVmgNqt12Xs3KIFkUDFSY+GI/Z99IahPlbMo4Ed98id1eayCqD6Q2o21+4cb6jyhnKuWP5ltyWngU6sB927IeJDtBuUsFSi77JYxUsDfb5gg== 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=yqRszWbzTUqk+djeu7qEE3o1TwiliEvBV88vRJf0aSg=; b=pZAqi0T4U86NnaqUE5HuQrvYftf/tj7pLFCC/1uMemf0fhTHp1JuA9R0uzU6n3BQ0RAJj4EqT0wiyD1QMbSAQe++Gim7zgHXk2vB1mpG1xAh5w4am4JF//dCdpC49Ji1lq1KH5yu5PjLjzqSiOGOlXpxR0wAg7NVUPOBOXR8HFKd5+ADOoCFKWCdxhfupR/2AsxU/iQLxksPcL91/fmHkZxIUJNmEKB869CFT+G70nUX5SGipt7BxKg3gPQD3/kqkM3cIEzQqXtsHz+2pghc4R87x0jFgFK+d0wGrmFvI62921p8E6iHIaDqy8eSJqfTlyBYMkP9AEL2xuCrlefMFg== 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=yqRszWbzTUqk+djeu7qEE3o1TwiliEvBV88vRJf0aSg=; b=QbXRMtnaMIDUQFa3pj2W1c6Oua2YhAr1cf1cW/eAGJbnTkmvcNi0l5/Vi4HttYICGGIGp/W64ONnLNvXwZPUXpe0Sx9OWcOgRf2kdt8iAX8mLxlgo6KXOp448AJJ0Npy5H7Xq/L10PUhOoU7aiNsNxhCwjyX3GSyMgCrYo7U6CY= Received: from PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) by LV8PR10MB7727.namprd10.prod.outlook.com (2603:10b6:408:1ed::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9542.9; Wed, 21 Jan 2026 16:57:45 +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.9542.008; Wed, 21 Jan 2026 16:57: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 v2 27/29] maple_tree: Pass maple copy node to mas_wmb_replace() Date: Wed, 21 Jan 2026 11:45:24 -0500 Message-ID: <20260121164526.2093265-28-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260121164526.2093265-1-Liam.Howlett@oracle.com> References: <20260121164526.2093265-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4P288CA0018.CANP288.PROD.OUTLOOK.COM (2603:10b6:b01:d4::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_|LV8PR10MB7727:EE_ X-MS-Office365-Filtering-Correlation-Id: efdc3504-2bad-4ed8-18c0-08de590e32db X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|1800799024|366016; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?sI3WqSKXcFDf2e4G7ehCxngMrVeLVq9CkayoJ6ZeOaV0Ms4wmWV8AkE8ndfK?= =?us-ascii?Q?hsnhrlz2IimE9xNhWdUVpvgAmye7FQQwRpMTAfAOm9gn5fsIjdlR8RXO2MD1?= =?us-ascii?Q?3BN/asUlZ/ZpH3FeS290bjMT5nw+2NdVM4aheGpmK3AMUkk1M6wSM36guijn?= =?us-ascii?Q?zQs2BnHgSpzB1aKWwSF5IA97jXuJRpchqmdk+UfyZy6nWRzfyn7KLCwQFKU4?= =?us-ascii?Q?U7tIIitUDqjN+grUoEumZMO3b9gmZzwTrw15f3I8rwZlaSmqORNCXgQ4GNHN?= =?us-ascii?Q?QX0LMg/Ljqa3zXxiyLNUFteE7xUWhOsqO4u6BiskW1gSXCMzRpekZNIVxNT4?= =?us-ascii?Q?aofS5j+8wN92FRcIsVQ6uqLbjorPlkF7S+dmweFtlBLo/7lDjIiSjXv0AGO5?= =?us-ascii?Q?0sAUT6RfZ3dNDT5Q83srlWVf3cxtxG4saY8dLdkDpiWXf1RW4SFx42Sty11h?= =?us-ascii?Q?Mf75H8PW/7KcIHdfYLpvHyN8n8fDoPdWJ8fh9MjP6ftB/viELOC8zl6aU2fY?= =?us-ascii?Q?Mxzp7U7IKSIaBOkhuUSWAFTvPi5KJirLCIyj0eSiiILHWJTm5TxwzzshM09m?= =?us-ascii?Q?788KjvQD9Fv0dUrSA0LTTHlk3HWE9Toh61hRvC8jQnk3dLwrLzcRyTxi/G0x?= =?us-ascii?Q?0cfF+Cledg5283R+WmJpvbBs/cf++FjDGmbXxTZu9jwYq5ag7cQFV0K8uktn?= =?us-ascii?Q?6Vr74qDTAY+WeJut5n5AwU5z750BvVTahpIAICXlkScpd17NY9YrEeFxwshK?= =?us-ascii?Q?dLxkdASDAYsCQXfpBZT+IDPa5Bt3XEBVsSmHwkraJIee0WSN7kpcn1FzCDQY?= =?us-ascii?Q?MyAvptoOHlNOfLbt1CNa1JNBhMFwLNdta5dy1qW6miHu1pbhu5zA7XWaa9gw?= =?us-ascii?Q?481fMzmHGuXncReRpvHPRXUpTf3ayR/rhkWVoKM7yiRJMV2Xnc0PeltDud6b?= =?us-ascii?Q?PmBk9RgsdIht1fVXVcLAMqcbHSTjxJRGEqgb8Jx19bgbiEmVMocv7/yP56J2?= =?us-ascii?Q?yuQjRO6M5jhPzDaBOjMZfNBLsihAme8XdKQE44Gcq5kM50nNkgU/MXzqPFkC?= =?us-ascii?Q?aHVfVqrMv1PbuJ2XqxU334GJsexGtAVB+xpt+IEjjMEMlcXpXAXpGaPMSz6i?= =?us-ascii?Q?A4l8q7fnxvXje5prEafet8xdf5J8ijBntoF4D8Oq9VSWPKPP+J4N9XnBZWAb?= =?us-ascii?Q?6Tp8eZNpB2ahGBWHusO6uvIMbjjSpyw2kKOPik1sCuKlhV0/VeUWWKAhMafS?= =?us-ascii?Q?MH0aAx83BQWpNx6ufadLIFbWrWYzHUbFOzakXVw9BwxeQyXAERrRAq2tgHHJ?= =?us-ascii?Q?m5LEE19xnabL++spoekIS1TYBbShG0YxE3T06ma8j4jvkYLYb17MdIxM5km/?= =?us-ascii?Q?l4BzpEcWvEZFOfnJsWX0XNiFVh3fqgqUYAnzPZ/+Db+QExQo1/X5A/I2Vyfz?= =?us-ascii?Q?EODJ7OFgaFXWMByCtE3MLqJugvrz/qrGWLI64D0p13JfXs9AijJ1kSfqwp9Z?= =?us-ascii?Q?2XnFTaIvWA4bJFlTyKw87odeZ8e2kl3giuPeI4MDAWeAWLPvTTkw+BfhYU98?= =?us-ascii?Q?xkXSvkNCEkWac9+txYY=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)(7416014)(376014)(1800799024)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?gF5pY3+TN202C/Akel+XTMX9jWmeO40dKT1jqds5Ui5uw6aNU1vo7KNTWpHR?= =?us-ascii?Q?XubjfgOKtii+OoMn1a5AjUCrmJH2quRgPjotHPeE6JOlTL0RLqQk2Xn0rvWx?= =?us-ascii?Q?4No4Uc+9wW6vg7qABnDXK1g1XZKbpg+QukK6Bh4jacDHQW4XlIf5XGgXjEO1?= =?us-ascii?Q?zkOmQYbzUYu4IQVUuTqWTwjgKm2NQmvPCyCqCZFb66uoezMEN0lWVAEg1W5Z?= =?us-ascii?Q?l1h1nooew1cAy5hMq9G9FLGCa+OEkKTWLNfBXmLhn57Qgx10HyYw944h2boV?= =?us-ascii?Q?b7wRn83ufbNKLkbHDm/X9m6kTQgQ4wDeXreZvp+Gt6UdxD6J1N2JWW5m61wq?= =?us-ascii?Q?hlzPwnSIafVAEGhys4AsvOMGpbdsIR3j2y+oy0lrU/sf/ARsd3FCLIgMl6V7?= =?us-ascii?Q?+02IpJTBXRUWEML6WoRLgSiT2fh4agZDy3FSGKwh3jU6iJt6HBc7xJOaou8T?= =?us-ascii?Q?EwX59hV7akH/y8Yq6c9LJjcKsm6Hi39d8fbLK4RPW0z8Q5Sc7WNVQtNIfjEU?= =?us-ascii?Q?okiP9boy6oxku20pz2JZi4ew8sBS33ou7uz1vifddm2O1hdn+rtToj1z2BPv?= =?us-ascii?Q?Or2xsZiblHj4vXLeImLmADiWFoCWXepaBS2c255Wk3wTpxducmpdk1RgG5Yl?= =?us-ascii?Q?B82UKIP+sGPcJyrz3Rhbp5l+/1QswrulItNVbyZFWmyr8MKztivl925RCMyZ?= =?us-ascii?Q?0fkTuH/itr8gc4io24EymyP3hM3uCDs4LECjv5GTtiou2CZ6/9UPnbyet8nW?= =?us-ascii?Q?Jaxk7KKu/ua17lo5k+4swSThl79zd7Yxycg3yrHsZsQosYpqBesxmfq5N9MY?= =?us-ascii?Q?MJNKnpcMWxfRXNanN1VPje7n9h3FBzMhJ0qfpu6WWdwi+G5sEfo1WMVp2dOU?= =?us-ascii?Q?6W5Z64VmtirHYt6GvREKgz9BKemUAg9QbRUqZPJ1OGltKJvfbrqMxdnMMPHv?= =?us-ascii?Q?xFtKhC6gNwl39n+N+B6wtMvqqrQVVyPmkoQ9vJqNim5x9+jC9rp1c62KGikx?= =?us-ascii?Q?QwXVR8rbf9MDcPh1XgLfN//hXsXuPHm9sK5a2r4V7DNywIy4+VNV1O/91ADp?= =?us-ascii?Q?Rq6LxLoHHbHbxyqw7TA5qyrlqMVmY1w1lxb+p33oml130Asmax4SQckkvgbY?= =?us-ascii?Q?tbUpFoo5o3NDv7ToWlBlWxDENAIopuatyueRP4Em8pExAJ0o1KRHoDDxIVkO?= =?us-ascii?Q?P+pzjiqO+lwhatSWwFpJudST2IX+0K9VrNWt1J6YFDrAmbY5ZqPGo5h1Q4sl?= =?us-ascii?Q?Rw4zXNFIFuKfygrWGndzBP39wtxXOihMk1CRI1HISUUiDrD5mjTIAbU7/vtg?= =?us-ascii?Q?gTQ5efqC8TJr9J30wZ6SMHtV1m92MGX5tuldFz2BEjY1K0Ltckl+ybJAU01o?= =?us-ascii?Q?ZH3JDJg+iPhWGd1x3SLgW6AzcFGFSsHSRti/MHpEHbz6MjtoU/+pDLRaKKw4?= =?us-ascii?Q?QQknGQkdxqO8rE7GJv3FvH2DqE8uLQ03X6BgoGKo+03NUe6SmeFtdwGy8yS0?= =?us-ascii?Q?UKexkWPO3qUGOxeycnt16j9FiX20in0hFFLzsTh2GUsLiw/v6lf2x1jFQ9aU?= =?us-ascii?Q?XgtglybPCW2g6muOdBCaSpu1QG9sxh9cSus1EXSmpQ85668/37xHWqGbvS7/?= =?us-ascii?Q?hrs1jq7a2u35L7CaF3dKwHe9SFC71UnHq7/rZxVhxZMav6adK6Ddj5p1854a?= =?us-ascii?Q?QL76zFPE8814aEGXHXy6y9PPCST8Orppcvo4PSo8A+xH7BtDZKOJ71Oh2tAH?= =?us-ascii?Q?nkBS908AzA=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 6wjt/Q6/sZOkTpa6ogUVfWMHoSK5XTehB+EhlsMl2n3HIdY62+BJ2P+7gPr/FfLhty+yC5KqRa6YDfXmPw9qii0TVDpdDw98d/cV+In2yDrmGxuoCaorCKRVxqy0ZQLt7feTfEoGlAMX4XVWiIZtVwUuzb/oxgF8QCSsW4YhYP4lRYP7VwydcykV+8a5QFE9nKpnlvFeiR3pUzDRqRYBIFfd6Txx9H+43UC/Re01dQPw625qBJIKOC4ed87rO6/sQP0JX3ZpwO44Um/+AJbXTy49keAb24QlZ3bTkzM+bH0KZO9mP1Sl25pm38twgzC3nmFfVLoqyFeaLNJQIBcWFbyGg0AD+3JwihPMFe2U3D9IjmppVtpa7I0nbAA6o4SSOL2TcJ8MPRk2CI4wtQY7e1SseIS/bE1LRHwZre9bWD8WCi7U3dWMCFpRu29yWpevw1gSuCMqQEymoiSrl7fxO3+AMO2EsdneM4W5ggdTiGHJesbelnlxHVvElpo/GahYeP4CiU8FaVgYgNvI+qpz+FFJUCL4B4akk4fobOLVdSfCtB3iyh20lsPkHV19U8anq9KWKToP+PHJxEVxHGb37hLMYnNv8OYOv5OLT0b0IDY= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: efdc3504-2bad-4ed8-18c0-08de590e32db X-MS-Exchange-CrossTenant-AuthSource: PH0PR10MB5777.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Jan 2026 16:57:45.2043 (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: it0u3GUj7ogWNo9vyYwqnr1kXMD7NImZtd+y5JgXf/9TeoSvdgVGUJYcBWfcCJhvE//jXXpBPmPMSY+MEMzNqA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV8PR10MB7727 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.20,FMLib:17.12.100.49 definitions=2026-01-21_02,2026-01-20_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 bulkscore=0 adultscore=0 spamscore=0 phishscore=0 mlxscore=0 mlxlogscore=999 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2601150000 definitions=main-2601210142 X-Proofpoint-GUID: _hhtF8SZK4VSVA4YjLVYtgtvTpQ4ZQgR X-Proofpoint-ORIG-GUID: _hhtF8SZK4VSVA4YjLVYtgtvTpQ4ZQgR X-Authority-Analysis: v=2.4 cv=QdJrf8bv c=1 sm=1 tr=0 ts=6971058f 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:13644 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTIxMDE0MyBTYWx0ZWRfXwFClQmdlitFr w44ZFasrgebj14mZlBPZp0xksATzT1Rm71wj2xpK3u0P85rHMdbS2qJFEXEyMrvRfBJEib3Bn8P 6SMdgw80eSwKPDmCxTfUYRvpC3Ylaq6W8eAjNF4rRLGXnB061+ZaqIYPfi05Goqf6PXzigMAJI6 Tw1n6RrFg9k0QU+4kcOQUWhr8vTb36jCUqgoqROmXgDrsFSNhxHmGUmA1fut1OsZKy91PYOE4aq 0b9S95xvdrgrtIVKNnWqOfnJnNsxU+oHydkfJLCjCx7E4Ggy+ew9BDBiUW0MPANND/wMUa3Vafn w8FSQZMp1Meu+9hmPoegPbKw93t8SsLZYgV84zkZ2M2Yx131/0XXFwe1ppoHo68+pVDKDe6E2sw CynQSN15k9U+QqKMkAR5qCR02xGmXfZIggu6+AaLc6tbhTupqTmdaHFGLef32z09d1OcAkx+4Xa NDbxXnewWxGJCZnPxOgUnM1gBsdaRzuLTZsQRAZw= 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 744df5a596550..8ce4b252c0696 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. * @@ -2079,6 +2059,28 @@ static inline void *mtree_range_walk(struct ma_state= *mas) return NULL; } =20 +/* + * mas_wmb_replace() - Write memory barrier and replace + * @mas: The maple state + * @cp: The maple copy node + * + * Updates gap as necessary. + */ +static inline void mas_wmb_replace(struct ma_state *mas, struct maple_copy= *cp) +{ + struct maple_enode *old_enode; + + old_enode =3D mas->node; + mas->node =3D mt_slot_locked(mas->tree, cp->slot, 0); + /* Insert the new data in the tree */ + mas_topiary_replace(mas, old_enode, cp->height); + if (!mte_is_leaf(mas->node)) + mas_update_gap(mas); + + mtree_range_walk(mas); +} + + /* * cp_leaf_init() - Initialize a maple_copy node for the leaf level of a * spanning store @@ -3036,7 +3038,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; @@ -3104,10 +3105,7 @@ static void mas_wr_spanning_store(struct ma_wr_state= *wr_mas) cp_data_write(&cp, mas); } while (spanning_ascend(&cp, mas, wr_mas, &r_wr_mas, &sib)); =20 - old_enode =3D mas->node; - mas->node =3D mt_slot_locked(mas->tree, cp.slot, 0); - mas_wmb_replace(mas, old_enode, cp.height); - mtree_range_walk(mas); + mas_wmb_replace(mas, &cp); } =20 /* @@ -3425,7 +3423,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; @@ -3446,10 +3443,7 @@ static void mas_wr_split(struct ma_wr_state *wr_mas) cp_data_write(&cp, mas); } while (split_ascend(&cp, wr_mas, &sib, &parent)); =20 - old_enode =3D mas->node; - mas->node =3D mt_slot_locked(mas->tree, cp.slot, 0); - mas_wmb_replace(mas, old_enode, cp.height); - mtree_range_walk(mas); + mas_wmb_replace(mas, &cp); } =20 /* @@ -3462,7 +3456,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; @@ -3493,10 +3486,7 @@ static void mas_wr_rebalance(struct ma_wr_state *wr_= mas) cp_data_write(&cp, mas); } while (rebalance_ascend(&cp, wr_mas, &sib, &parent)); =20 - old_enode =3D mas->node; - mas->node =3D mt_slot_locked(mas->tree, cp.slot, 0); - mas_wmb_replace(mas, old_enode, cp.height); - mtree_range_walk(mas); + mas_wmb_replace(mas, &cp); } =20 /* --=20 2.47.3 From nobody Sun Feb 8 07:08:28 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 600E14C8FF1 for ; Wed, 21 Jan 2026 16:58:15 +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=1769014697; cv=fail; b=mrb9pybEZeaWJrUv5VaOF/Bd6E/Q5hM0CjIiusdfdFLErfTgrDQoYuSc2c0RlXj9fGJ6sgAVGEx2elQZNkOUDDfg+ptbZtZX7DbjJLGCykYz3M6z+8hxEw+YjIX0At4I+yN69DHH93vMk18VjOHJYPs0psMHCsE/mJqVS+v06Hk= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769014697; c=relaxed/simple; bh=ekdDxpwhfD6gXm1lzRf+jukVbW3zskV932JuMQoMVeY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=I6/NIEXqQfFVT03DiTPcY6i55uFR40iaqkCqvRDaWzl7yeuBvXN4ZPIYLmve64ycKOX/+37khkwbb4SuBeUyeSj/NWuFa8pArRWIC8ux4dqbGzM0CJKL79L+V0DfB3QNCbJ+pdyYvyEv2jeBtbcC1Z6U2iEj35gjkCo/ynLI/6s= 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=P7ayjBbk; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=WoRqChdz; 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="P7ayjBbk"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="WoRqChdz" 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 60LE6JZS3418790; Wed, 21 Jan 2026 16:57: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=GGAJt1GDI9+Yae7PaWvLMkfn8fBjW6Q19HJwhvib6ds=; b= P7ayjBbkXywwBKvAjofWqNacc1zqs34VgoPJnHaXhjknQ+z43WdnTUhdGB0Vkp4K IVyIClFsASow2jvJlhknDhR8ynW/N7ek8IhM65pO+7GMmE08gJODbTSveCH4QyXj y1jiLDAtwsL04WVMQvK3Y/zS4e+Zo4ThTImTH9d+JqfR4wXErSitYu0aGWkplJjL xn8YoExuEUpZf2l190I1RvelDiH58O5yIn3hGBFux47HE5p4po5icoYrCBOtPi2r 1/9yR4sffKzP5aMKZRs/2V0VPR9EwZRq0Jbvu+UBiGBZ+rvpE/EaHofZweLh8ei6 Y9FVLvt4Szuch280IGbEyw== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4br0u9pe7q-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 21 Jan 2026 16:57:52 +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 60LGqkbO032828; Wed, 21 Jan 2026 16:57:51 GMT Received: from ph7pr06cu001.outbound.protection.outlook.com (mail-westus3azon11010037.outbound.protection.outlook.com [52.101.201.37]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 4br0vfanbn-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 21 Jan 2026 16:57:51 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=tIaLrVmrWI0okNi80qxl1wEdLcLd9S6WqCPRYov0KoDH2uPnmVfUkI47oBrxb6MlDvqUK0qf3H8ROi+b/V9lkPrYQyNTxO+k2QfhmeOWF1CKabRRBRzvRjmmXMsi47VkEN1hSYaG5596Q8/Pme+bYpj/A5XbWL7x+EbyASiYZn7vgDvYRuV0zhdBYLGUUWMrNgyPss73J6PROpE9/HxBQFdhjrPCMBa9rzmXPdxMQqMNsvOiodSHIGE+7StukhGdrSEv27KHJGENMZ7xJySj7M6ihUHJFaS64VtrFaaPz9g8dx3K3AZErDWZRHYY2pBmNV1ygf1X03Eq4Kpo3lh9dQ== 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=GGAJt1GDI9+Yae7PaWvLMkfn8fBjW6Q19HJwhvib6ds=; b=Va/EjzV2yF0imH/Ug6fNbam95FcfO1ePz9TeOmjxo1oo9LATz2AUWVEfAS6HTZhcnrSH7Ndveika/7+wdm9q1ck4nbIuKqIMmoQDEj64UXX5I8ovZY1a8ODZbRYOSYXiw1duYqc1N5QJ1wOhlkBqeGbMJWJKrx+URRtLixH4Hbh58PsUReAmgnQoDWLI4GBVEWsL6Av8F5ld/TIT7jU1+FLEjErKy35r+NSZyWpy0rAU6n/YNuixTVKEjN4254YY557rjcXATvCo3vx8p0IG1DcexP5mWWVDqpcsoMXhkzBNyjMeJOraQBbdEvzke2STbmLim+P97kCUDv+sYZuzcg== 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=GGAJt1GDI9+Yae7PaWvLMkfn8fBjW6Q19HJwhvib6ds=; b=WoRqChdzpyBa1uSFA5XUEeBt8M4u3HsCS4721x/uG7ftPik7LAsvDScCqzKG+jS7sBaXUicFV1QLWqYRL/qk1LmNF0uucde64vG9ksBwnqSkk+FhwoJ9epKv/6xmZsIoDYqhF/5o/u0GsjnW5HEUMiMY8LcYYcgCIm7zn7Xpt70= Received: from PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) by LV8PR10MB7727.namprd10.prod.outlook.com (2603:10b6:408:1ed::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9542.9; Wed, 21 Jan 2026 16:57: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.9542.008; Wed, 21 Jan 2026 16:57: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 v2 28/29] maple_tree: Don't pass end to mas_wr_append() Date: Wed, 21 Jan 2026 11:45:25 -0500 Message-ID: <20260121164526.2093265-29-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260121164526.2093265-1-Liam.Howlett@oracle.com> References: <20260121164526.2093265-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4P288CA0021.CANP288.PROD.OUTLOOK.COM (2603:10b6:b01:d4::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_|LV8PR10MB7727:EE_ X-MS-Office365-Filtering-Correlation-Id: dc292e98-dc72-4aff-be8a-08de590e3437 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|1800799024|366016; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?nUDqXzlxZnCgKNV4QkWbluznGl7W9E4dwjwtTa5mYKDtsKTMllnxAGzcaji+?= =?us-ascii?Q?LIYxPCi4VntzYwlMeCW6BVjotODjR5SP4dkQNUfwaSEhliaW1GLrO+9yMhFv?= =?us-ascii?Q?8z7QL4TzjPHEZlKn84uVJmWp1+XBfvRzt2EdXM4sShaEABTjfjz1m3jCnTxB?= =?us-ascii?Q?NvDkXutvI2pGJi0LpqIPINDeQpszvnOUG01kj/vVLihC9qtKaAfLYE1VAjen?= =?us-ascii?Q?WfAj5SGsPm2S04wLG4IX3mnoFykrdVObKAKj9ExheIWDW0oqOE+Ps1OknmUm?= =?us-ascii?Q?WrZ8onGohntC2rKqzDY/bBb/e/doUxeSIOnaIOwRsfu40DcUgjSKBqEp2Nrf?= =?us-ascii?Q?BmMtYwqYl/Cp+2A3tqtIx7mO9v6ehlFrF6iVGlYLli98dMwz/LLqGEGRIMEl?= =?us-ascii?Q?bh+cb3byXW7gpKWmcXd9MS+kkGsClumyn7lu2Yr5Q5Rg0moJdzddIJNT2ITJ?= =?us-ascii?Q?sYH9dTveS8k2w02ZfTsf4OMzNeyZB6WD3N4zlEfPy0kKDp9CLnzlPXZYItPw?= =?us-ascii?Q?09CdoQoQmSd0iOVKzHyBrSviTWWYwhMOofaTMPDLp2rdu6EBrhKuehHMLS27?= =?us-ascii?Q?1tMSP3aoA7BBh1CAQ6VARQbSwZkyodl4yMDQdmc6RcYRBcppwVr7bj5eqLFx?= =?us-ascii?Q?1RFpQQdhYjjSFCXvR7suPYgWGMKitco73xY0F33bztgDF5D6lKwJfZGeGnuj?= =?us-ascii?Q?Mkj65mQX0Mmp22AODbqEXipUUxh2AcK+RjR0T+GGJ5yd3Uaw/jaAT9BycJ/v?= =?us-ascii?Q?qQ7gIz6gEgMlPeZ9/RE28tYV2iBhtX4npMxJOc3qwf6ZbK11v9S4h88tMAIC?= =?us-ascii?Q?aH8n2hoTlF31l1ZZG5vbHMSco+DJeNhpSQz+I1CUC4y/j34s6v2ck5rGQ9kt?= =?us-ascii?Q?FR0AGPhXE8bW9ixdusYCjaRfj1npLcCWengmAJ9LxQWnVoTwMUeaEnLhxwBd?= =?us-ascii?Q?ZJosuqfZj3q73V9+BDUlHVosk0zWUa9EwkgJ35+UgoH6C9ZFeGWkxAbPW6uL?= =?us-ascii?Q?/NGJAFT/Tq+96ZxKjFCOUW3Jp6Jqv9svxncaWWgBKnDp/oJ/J6qwwImqAEIV?= =?us-ascii?Q?Rgfb6rOflEAJ4iANtTn4Gz73qpFYRtqMsp3h7q3z8zhcxw8wRM2T02uJa3P5?= =?us-ascii?Q?weF2/0fzSlqWZqoPc7s/hqMQSC05AFl7aXAguRGFxaElvpX7PZkfgVvignTp?= =?us-ascii?Q?w4im1eqFzLhPQ/N4rOHMqwPiuzC0fa0EdNOUZvPKDhEHwJnB85lT5TAPOWPW?= =?us-ascii?Q?XeeE6+FFHvprxhwrby2YHnXLLXJt716lZ/KTjyyuSyn5qZlreJewqo2zKHnj?= =?us-ascii?Q?Rm9FSZuW668N72Gl1fU9H6glZLeDCP5g/5nAECI2fDIFmUjIEc59/5dCH2r1?= =?us-ascii?Q?5TbaA0bT35JFfpdYYpykgS8gy7Kk9Nnx56NammGa8imcjJJlRFBBgbuuKsCG?= =?us-ascii?Q?EjfN8ZFlfiddlqEVzxwTHTCq9xN4JEFRKTUwoKiNAo11ilW/ulDTxnhdAnW9?= =?us-ascii?Q?Xqw9EIfvXC7OMIeAKXsVuPEMvj/7WAHN7ZobEfUiSVtjZgKBez07nx7dXwH0?= =?us-ascii?Q?HUPWo8wpaZX0O2+fvRM=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)(7416014)(376014)(1800799024)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?tU5F8Xlrly6r3ieX5brp1X0B/x5lFDK4JEX6WI/xwSG+GI1blZnjNPedIWZ1?= =?us-ascii?Q?xbzQlmHI0d86mSWktOoB7TpYualDFCOE/0FxxTSiWKA2oZJtzoy1sQ+t6u6C?= =?us-ascii?Q?az/7MtzHlqpBShcHbgfEw56Rsg23D2kNYITyr0wR6U7B7CUaL1fvpeWydAJl?= =?us-ascii?Q?8aNccNtjB8f2Sc6Cv8AKjwwxgvIOwYfmT+xTmEJ0ExMWOmlDc8fdhmCqiHj0?= =?us-ascii?Q?1IyYqxkoLAqYOC1Dcwy5kM1xs95y407g4H9OXIxMZKw9E1wNdAOh+M1iZIEU?= =?us-ascii?Q?ZusGzN+LbyS7OgTT+RyUjJL8XNBH/3SlobPRtYgkYJXzeH5mL2uiJ1hmbHqb?= =?us-ascii?Q?U7Ct2DpJzsPXV5XoapRkvqtznu0xQVxDRH9JsWj+Xe+tJUeAtozS8gzgyLoR?= =?us-ascii?Q?DIvi+jLLxgr0ZM11vInbRRxLWgl0cZCYK+sQA3y6yW+kFpFiX1x4KLSnwgLK?= =?us-ascii?Q?2L2/yrlH+/EJ5tuqIsvA+OO1hfWDJ2NjB01khdo4mSVPgsmblUXX2aAr9+e4?= =?us-ascii?Q?+v+PCdvTjWI7ekyl13avqekggqzKx892U1pvgWua0s585LOL3Jmni6a5DsVO?= =?us-ascii?Q?BcFp2M/z1LAZSMgd+vcDgX63hfW0J4eJRiJzGbN/5SygpN3spxryO5BT86QM?= =?us-ascii?Q?3afAT3qa2rIHFNKB5n+JQFj+Hi6G+4vYEJMOh5qUYToh19DachehkubUwovI?= =?us-ascii?Q?2ECdz6JKRGMm8FXlPcEEKe4SupPaSaQdpV/66ZWr/mw8ukJsJLlzE7Vd5pMr?= =?us-ascii?Q?i9nXaxBq7jKhhdTRw3qOvYOY6+D8zAwJtlxUcuxOtUYnak9PkS+7DUjMRQGl?= =?us-ascii?Q?qNrjaQYLNSen3vSWSYYJcyc3aZ8emxSvmUw7K1XujuN9A6E75iB8gHVEnq+r?= =?us-ascii?Q?7GxlLNH3kxIoBvapwwzsGGScu9qvrBgqooH+yjQPwCgxvDMyijrsGQwvCcv0?= =?us-ascii?Q?ZegTOdbmOyVbKEcVq01ifq2w/+UCo6rQMce7FBSGMyEe+fbtwfaDpsVMwu8Y?= =?us-ascii?Q?2Mbv1e8bszQEFnRtWDharQ8BOs5bMxFRzrFUbfSdRXVxFk36CSC6BdNLXojp?= =?us-ascii?Q?6Zc9jkaqC2NhAPdij/3eOAHEZPXiK9JYphXQEhUCQhqDPaWPeqKQbxbjCj5b?= =?us-ascii?Q?92yw/KxpRxNrbPRdKN0pCjP17CRCcZ8Ch8ba/EpqDACeEMaU66PzR7ku0CKX?= =?us-ascii?Q?HkjAMApwKOoJLailmUaObEfnpVN2m64EUUsff+OHMZYlqa0i3uzBlL319Wyo?= =?us-ascii?Q?mI4aef4s8+zH769QMObHJ2/NwvD/NJ9HsRAxJY4ll2TFFrq9XxmHryASy6xt?= =?us-ascii?Q?rc58cemRpNJ4Yvg43H8+fuDqyoYZ6akgFV23kHaGQos2PNn3HLN3arwHpVun?= =?us-ascii?Q?0Jea2UsN6mXbmrQm6BALX3PA1QNcP1dUw2HziRXns9gjDiLnzKkaIFfWEEVy?= =?us-ascii?Q?hXxksErIKaGFGiqtgwNaoifdCyNnO70F5a+C7vIxm8IiiOtx8WuXaJKGNq1P?= =?us-ascii?Q?Ls0OPIvsNpeUn8d3W46EXrneJu0/IKn+CVNIqQz7Z8TCyLjuUjtCbBo9x9QW?= =?us-ascii?Q?AfM6lsG5TBLzb8qHjO9qNFvaDRLq6UFF38mNjXT7FsjSZ7fU0ZbmJYBHn+vE?= =?us-ascii?Q?g/MvSOkPn5EP6kKvwXopDpnzBJhqiDy5u9ZsUd7LCvJvs8iI6Ftoc67d3dqB?= =?us-ascii?Q?WeyTtvXz6ImGSOphVCRYhYneelgW9qXzVpjtsk7aXqroX1QiMBP+FkBq0nNV?= =?us-ascii?Q?Vf00GIKdPQ=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: fSx6F2dDL+PS+HTzRbCcGUyaz8LBn8azEU0H8GqAYBAUwRvd/tDwYaC5bmcDD7k3f7KLCmdfuCU2ZlhuHNTQMjfALPAG3GuqKd+JGX38/grO2V+nCFbmjJP7WEGpV/YiT4yOYEaTSCsbfILKnj2dXPz6M9hPy9G32R2hZNjSi/36IEFUdRIatASZVyuW0384X7jv4xM3bh7pAlu7yV7QHiDvJBTzi1h7aO/VyLJ2qOF68ZcYaUP4qlmUAeHZV2YkmwKaYm7dWqRydyCHEKtOlFmrNfqQd/TsAEaTlbX9KcEq+Jd/VqjFOsJlD1jmL4nHGoRjgncg78nbM3a+k43tjXRgc955rL1QegBsPA04ot97N3s/8ieYYOTNdxkzRi/VeJu/lxQun4c4USk9tErO2fNDmV3uU9R9i8qKpu8oPMQwz1eVt2NUH6Q7tHyaDqiVcTxol5IIHkvLZtwEvLBM1G35mE+hgH6EgL/Rdod03KKs9UYWiPnuMNdKSJbNSU6Uujua6TufNBn4RBJIrkae/vWiXsnIh0LhlOl+XraQ57B7Zg93s9QQFLlJZfG2Xg8dSptabNY8GNDKbCFtGMIC7XCezjJI2OHKx6eOYqX+Jp4= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: dc292e98-dc72-4aff-be8a-08de590e3437 X-MS-Exchange-CrossTenant-AuthSource: PH0PR10MB5777.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Jan 2026 16:57:47.4766 (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: ZAldiizb1pizZDPkY55P+5FMAPBbZLnx9BokAGxG7Xj0QicFWmRy25cU8QFV7QT9gWgT8jJJsWs1Y9TYJy12Ag== X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV8PR10MB7727 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.20,FMLib:17.12.100.49 definitions=2026-01-21_02,2026-01-20_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 bulkscore=0 adultscore=0 spamscore=0 phishscore=0 mlxscore=0 mlxlogscore=999 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2601150000 definitions=main-2601210142 X-Authority-Analysis: v=2.4 cv=OJUqHCaB c=1 sm=1 tr=0 ts=69710590 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:13644 X-Proofpoint-GUID: Tyc0dtjv1qfnxu4jbElnGV16b2vDCKI3 X-Proofpoint-ORIG-GUID: Tyc0dtjv1qfnxu4jbElnGV16b2vDCKI3 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTIxMDE0MyBTYWx0ZWRfX9dpQFE8Vhdu5 oeZZ5VUmrVHHuLqwxQmkkWr1IHJBVHGfVeEbjzHbf/NxBsCKIQhYp6bSiAMPutmhwRSNjrz7xMh VsCYT5koJjtEiiGW8xqUid0RQ0ia7rbxqe96CzxNaWf+mH+89TTuVSEzNj3nGzYUNeXTRMyuE3z fzgvMvVQweWp4k2OprNi/qpZSfaSlwDT6INPmVe4tC0d5Jh0uCDpWwEMeffWi9N3TCsSCxw9HPl MbiLRXntEm8ppVv969Tzr5/yD6twp6Ll3KjICImphZ+kK3huZ7PPZ68BLhDeX/3ZIi1k3KTzsiQ 6VmQbKY3BTkowmPnA+WfdN1YZ9DH0xEfZdpVmASNnW+xnPedx8RIdvKAkwqrJWHOdqYaFMGSfI1 3viAACWvO74CqnQz3w0VeXDxl2IpW2o+3ciVTHZdgBTuQUUfodU9Ao8eNNY79CC0cJqbxxmTCw1 RLoBn/aXShiinU9f4o+idxxorPRb+i8t06eNQhFk= 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 8ce4b252c0696..bc58c10d3a300 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -3301,18 +3301,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]; @@ -3505,7 +3504,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 07:08:28 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 19ACF4C8FE7 for ; Wed, 21 Jan 2026 16:58:15 +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=1769014697; cv=fail; b=tHqnv1F49ByG5B5+iuEIMvR8UbXUKtEbijwn1aNyDDSNIwWY5KGQgh7pz5APUyuy7N/i8YlgksX8M0czLoXouSFOsiy2gYd2A/MbtXFfxnxba14G4hxKtBV32A9Eq7+SH2hTPQk6DMsKJxkDrb5nP++98eYvmfP8sXoKMTTewUg= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769014697; c=relaxed/simple; bh=Iktq/MWpVHwauW8E92bTwfeHF1xHgcakM4+KuTWM4Bg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=Zfp++9nEkc56bFE9z7TsZmeYh+M1rbmec5mgVWc8BIKeEC77vTqhwIwdhQziGIOeYNqqndMyM0UkHAdWJhsIFhwu6ivfvVhX7sdqxpuI53oqnz/jLbbjK6WAFFRxhH4GLqzVScQMMLPCoStwVoqM7eMvsynlvM85ZFxL60Y4gTo= 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=AwCN5Ee6; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b=thmU4hhZ; 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="AwCN5Ee6"; dkim=pass (1024-bit key) header.d=oracle.onmicrosoft.com header.i=@oracle.onmicrosoft.com header.b="thmU4hhZ" 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 60LCiLR43523936; Wed, 21 Jan 2026 16:57:54 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=nMKFW8ALB0+EPw2Oj12MrfWXrqNQZgvwla5SbDkOP74=; b= AwCN5Ee6qz+ae/FydfSc24AEBMQ51G4y8MUeVpSzeGyRscuW821vlj7zuKG0qg6l WWoe6zHLqL34zP7oW6FDxw0dTX+RTfSyvnpOpsWzuKWcYEsunHcCxTP7yCap5Sv/ zL+ZRZsLLhAHbixZdigFs5e0MMoc6skdippJLU83rKLkweDcaP6pAUw7HCmAwbHM iiEzpoMgb8KytckGhe1kIefJ0Yyg3uBZp5Fq4pw7TQFSiaMn3fNWGofzr5Bv8foZ 6Ksi4jSYH2pK95JUghpirZBF8dr0fNmhD54t9HWgsjgLcAwt9ahLxTvwoOuaAruk tym5UlnDsVTM/VoboGOFIQ== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 4br21qee7h-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 21 Jan 2026 16:57:53 +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 60LFnKR8019040; Wed, 21 Jan 2026 16:57:53 GMT Received: from ph7pr06cu001.outbound.protection.outlook.com (mail-westus3azon11010037.outbound.protection.outlook.com [52.101.201.37]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 4bsyrsbwsv-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 21 Jan 2026 16:57:53 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=MvPOHdhgjMO3/CTaMFhb9Y0raunPD37PhcFnqLk1KrAmol5jnB+yeqmCDti/uxl++xxNdO/b4I7gsrziLiOeO2zk/FI0ZMDsowHDKwH5oNOqqefN1rO2esNvR7t+y/FG7GHp0unWwatpFpPjqZiN2oHNfYFZRqDBJrGuu7KnICkjujpX9e0q7S68viDPT+UmDeJ74CjZvLQM4P90PLYTj8u6Ek9ewRI+Gu3Cf8rdsjHIRN86le/AXiyTamn28yOY7y3wnZFh0ao8daJiNuLSX//M3ksTehuM2zW3f2oJxhorK7oyrBZg7pmHKiDHJarJL83uFJIkR19gNs5yMAlLlA== 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=nMKFW8ALB0+EPw2Oj12MrfWXrqNQZgvwla5SbDkOP74=; b=PnPCIHCXh9wYvDu/t68jlZ74Pndveokb/R7gO83gJ8Bj+PtyPia7mt72r+lkuU0CIcsovAika80VMSEO5eaGmmBraDk2C98yzebNAuJ5pipl89a4SMYhBPi/7Iz1cHOgjndoQnZ4+uEeVJo37ott79BAj/GxbNZDycR4CnG/uBRDe5bPF+EX2AQsF8/MR7pGWISKO/m/HVtKv/7vTacTEKcZC7fNA/fqlxa5C5gCiX0mOyJG452mgcrenaoRRvi6iCSLupUDQcW0K2ZZqUS7sLACP930UPnjPr77hB+r4VoseXsPXsSqPKVXCaUNO2ZNFBOR2mlQ4fE54ALHxpN+cQ== 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=nMKFW8ALB0+EPw2Oj12MrfWXrqNQZgvwla5SbDkOP74=; b=thmU4hhZZQc2XH+IMQ4XW4u2u7AtlYpNK6llWkfDTIRTKHUCbPuXNBmvLBKbrzyq4jk5E3TE2FS9ruRCg0GIXsFDDRC7Q0oVLnl3i5McDv0BYKrd75t9gco688RgCJCwz4/6NXvDl0OcpL5fL7G6mkjJsZK4rQ5JGJg9aG0Qy8E= Received: from PH0PR10MB5777.namprd10.prod.outlook.com (2603:10b6:510:128::16) by LV8PR10MB7727.namprd10.prod.outlook.com (2603:10b6:408:1ed::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9542.9; Wed, 21 Jan 2026 16:57: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.9542.008; Wed, 21 Jan 2026 16:57: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 v2 29/29] maple_tree: Clean up mas_wr_node_store() Date: Wed, 21 Jan 2026 11:45:26 -0500 Message-ID: <20260121164526.2093265-30-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260121164526.2093265-1-Liam.Howlett@oracle.com> References: <20260121164526.2093265-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4P288CA0013.CANP288.PROD.OUTLOOK.COM (2603:10b6:b01:d4::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_|LV8PR10MB7727:EE_ X-MS-Office365-Filtering-Correlation-Id: e32b1695-824b-46fe-a959-08de590e35ac X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|1800799024|366016; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?RSJ2gmbvtmfJn9wblSPBRXjKIGWUEuv2vmqdPu1N2if5NFb3Q9biiHt3MvMr?= =?us-ascii?Q?Wz+1QSMNHwvaGGahru0XAmnyeFKYs9pxkbUh0OfRY04QYFNKJ+vV23sOPKfu?= =?us-ascii?Q?KGxa/uz6mavLsOMJspamEKMY0LOn6NbQghoH7zSAGWic4omZM8X/QXYBD+0z?= =?us-ascii?Q?Sa/RBHCb0ACmPaiXc7imrRtumi32SBmwbGWEnC/RLPbxeKjJeySQHBxowNBp?= =?us-ascii?Q?ldW8J+dcMcvAu15K+dU1BM5xnDSCQH7baA3KKcHxNCjVqncpnslx/ot1KVfw?= =?us-ascii?Q?605WvQbwyoxnQtbyQcgO3R7Ojk5sPB1zVm8kOJB4nIcz9lEE1UcUtRXqpROM?= =?us-ascii?Q?clmUJFkUzccDrwfqJEHkfLvf/voBtCdDFeR4Uiu/C7oLz23hXuwrzOIq/htq?= =?us-ascii?Q?mfqycIPLvRAnDggH+DlzDcPwtNbpUZ9xPTmH0Y9A3LKU8sVkI33S+5V+Kf97?= =?us-ascii?Q?eXtrRlJOQDo2xal4urYnHZhxDG99Nx5gABF3wW+Bd0EMiYgPa8UQmSsq7pVX?= =?us-ascii?Q?IrcFk8VKTSf3wZEhD8m+dQwO8gfZ5o/XBeuADhmVJW/TuJkhmdpAz+MdLR/X?= =?us-ascii?Q?/Yp9Ofhbgev9ZPNnRCscp6b5aCb0zLK4e7Qe26hUtsL/okn3q5eG+fow2Ia3?= =?us-ascii?Q?rxz16B5dD7u/4Nrp9lXggYNQc7Hw4ZgzpyEhYkjEGAq/AAk/g0jmF9ND2TBG?= =?us-ascii?Q?to5BwKadzPqhyGfkYS7MC2DhDAZbx8clHxEksQhyH7ciOpeoLqPZCTQ+/9Pv?= =?us-ascii?Q?UwdtoAZrM3yGrPFIO0sDcIknCp9Xq4TydUOW1Nlu6au7PLrhGqztSgndgnaV?= =?us-ascii?Q?MvWJdISIHHfiYqdjTAFZQa7K0xCdF6k15x2FttPLcwavFz1c4bYT/PUXSdd+?= =?us-ascii?Q?TdXUchUYvGUk2QLJ/3xRCFLDXWcAv1OTPWS2vXp/UBujeA+dzCzmAY3vJTac?= =?us-ascii?Q?EGRvq4OK47084VSIrBoOuaCecy7AjsFja9mA2WgAZlPWklIYTXlF8oaeDk08?= =?us-ascii?Q?N5tUj53tw/DL8kPNdaXYY8sG2YmBt4L3OtnXznDU4uaNY8ikZur3i/sVVSoE?= =?us-ascii?Q?gexox/8oJVclRnCkOknU5nQ9J+6szgccRdEbBxH5zOZQ97+ho9cpswKIaMOk?= =?us-ascii?Q?Do+YTxydKd4ZNnbgCuEQLk3GuyQil1gn9v4s1CYlnUxg3IZDJu2V5XV6tIL3?= =?us-ascii?Q?Cy/xU6smpKuVGhMoFJDRt4Mhtxu9IkjwaV6gwG9FH/TXPc6zMaEI/VOhx+FQ?= =?us-ascii?Q?mlECFAHm+0WbQrzsgo84xfNqGirqPFJFh/qpGug24TZaFLOTK4CD91+sHSC6?= =?us-ascii?Q?WXsoY5KTI0e8xyXPkxy0Xff4zcwA6h58khig6fASq6xk1hdlacJe7iRGe0G3?= =?us-ascii?Q?QEk4/0weKh85CCXz9lq9As35q7jBD8GgnfBSusKec03bzQJVVJ8VqbdctIOH?= =?us-ascii?Q?332VZQEJbRHs437U2NmDJxfo+nl90qhwIkpspMDviwX+rcDE+JjvRrhQHlUq?= =?us-ascii?Q?7ssJw9PvaP+11v0+1VfEXwXDbp/pcN4pGTwn3dXqsNrdBH/KE3qBu0iL2141?= =?us-ascii?Q?2x+GaPuIDcdxW7idhSs=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)(7416014)(376014)(1800799024)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?jIRDwLYFznFV2hJhJZb+1DjA8Q4ZwGNLLUpgtfV2rueU/bJRnZgqo5KSpr1G?= =?us-ascii?Q?vLKEsyf3qg1ol8GijEvo7y2DE64F8VRXEXlveMBiEjS6jBZsMQM7GmG8V1o5?= =?us-ascii?Q?9xJv0ZjvaY2rAtlwRrvGS06WB/N+giSQ2iwvL/m1OY3V8JZruLgKoLYyE4lW?= =?us-ascii?Q?jWCkwVmlYLCW+UZwKR2DWwwvZMI37nzOwuVz9pTquOAPXgClOZanJETtSOwM?= =?us-ascii?Q?5UxLrShc/Ca3iOeCO0WDHttnXl0Y43w6Vojzsm5dfAF4H3V1DWl64FA+KTWB?= =?us-ascii?Q?/h4lB4e81HYIOvINterEP0C5T2NMs1vOPylil4TaYWLMTErOMzrK70CoDQbQ?= =?us-ascii?Q?PjE3NV45rvSreyLtWuXLBYDop8xaHUnLgOwW8qXhi0FcTz8xygtZIW0PWEuq?= =?us-ascii?Q?ZVgbSuQYwkexDZ86y7nMGwfG6IhfNudvwfWzVibklp42pmsBncjNVNOlYuJP?= =?us-ascii?Q?PCG0NPwVPm/lnqmzW5AVDc79NaOlja7tb9RpjMYlZYXJU9lEQ1dopPnVkX0u?= =?us-ascii?Q?qWSX5TpJaH9cnMLGrg5NtTg+I64QOuI4uoymbH7BheZdJ4SFSakk5XJGBBud?= =?us-ascii?Q?0Wf/27adHjyGiJ5Amgg+XlmUpqbAz9iywyPj4phMwNQMiiNz5ktlZ3mwlyfc?= =?us-ascii?Q?oMLKDMrOTKa2GtmczjKHhh4doHBOpaLZOuyJabMLIHl+Z3xhTB4jLfeg9gec?= =?us-ascii?Q?EK2ZIwoVKzTcTT9jQ1daemf5mswtDEIwKksrRbdq9rUQrO9JYIEHO+ge3n/n?= =?us-ascii?Q?A0MlWHdVVMguO+n5Z8AUDKNGzPSgMMLwkM7wMJV1bR45D9iUQKb4nJzEUcfZ?= =?us-ascii?Q?KT+gAwFiU5cFcNCepsylx7aKgYMWqbcsN6dBauA5hjWa7M0eByAJODwaCdmF?= =?us-ascii?Q?HTCxuUdFp5MAXYU0RLmmL4+aHaODFYpfnH75gkZRIojmPdZC38SVEflHXNis?= =?us-ascii?Q?O/X7gvr3A7IZ37zlL1R0SmpsZDE4lFanNqVNZVPuMcBxwXvqiG7udzdFZYUc?= =?us-ascii?Q?DTjwVS1WZN4uwIn8JEcmbOC/k5KEByOER2hzwvVt6q+Ff+lPW0ODxLaldHjL?= =?us-ascii?Q?9RglRfwDMznY6+2zBEjxx70ETFD+y5jm0F5qNFUu+Qy5cUpC7xZrwk6X7wa1?= =?us-ascii?Q?SWnI9lX3zShfdDigd8voByQfH/H8qs3Jz9LI30Fu+7UajHDbibHUjytLEAJA?= =?us-ascii?Q?y5ku/eHKKIsAWTexiLeNcGyxM+c3bG2NxR10dnrTEL5iOumm2oaS2K8jw4XA?= =?us-ascii?Q?GelhYw/OJkgfOc6H7lON3ApcCYjmrbSjBvvENkeTjo6FqidWAYKHE9EsxPp8?= =?us-ascii?Q?prNuJRkijhjHwYu5j+bmruGLBzyHA5fqT2Lc9Ptaxh+N81xEdr2cZFkyHota?= =?us-ascii?Q?Y8axiswaxXLPne39/aeSq/oYDmX6Qkk097/NIS7oGRqWyFWE3mZyk0h4cUiP?= =?us-ascii?Q?HC5u4uEFK7ZjPyhKolsw8auRw9muXP7QC2H6T8Ci3yQtlfJ1Udkm5DQ3lZX4?= =?us-ascii?Q?uRPPzNnFsV6lJHXd6Rely7VPJR1lJ3iJM4W6ES3yd/mHNmiYcnccJeXNurMn?= =?us-ascii?Q?HMBB3KIP6hRIwBTBZ25Hj/iIXBrNWrfI/asxhewvV6c6Bv6fA/7NmQBCYbyb?= =?us-ascii?Q?e0VAUDcG0ZSJbbSeX30Q8Y5BAKpKBwoiO+wqjHfJRZrwN5IsevRPkVFnoUFU?= =?us-ascii?Q?5JN4tHo5+5Fc8JnKdEDDGd2IoHlRAi2CSFwdYzcrMs9s6bZBoVG64SUWRrqQ?= =?us-ascii?Q?ff+GUbSeKQ=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 9EMbKC6/AyubRkp1Xtz+XjW9YmPTtuersQsuYI7t6WY6DKNxAx3rDeP0Ev5B7ZwVl9LhvwLWpO447iEb8FbrsuZJFMqJk/joawM0h/dBcGxL18WXKQtoF5ogPJIee+w4AE9T98b/fiwvmYcaADFUtC2LCnRb29zCRjpRZG5AubTKvi5t+SEBLtpc8pgqEomMlIv8S1nOuiundeD6An8YgVluGhDr9ZlCoMkOuRmcH9rrUeFzmnAt9qvOT2j3hztpYhUXOULu+QQQUQ7zZux7vd2YUebhaC4ugLZA3rrPTPhfnJNJgmJiOVGE88W0tVRs/8fMcJg3XIlIwkgKRQEDpgb6F1jyq92Pry6siSUhr2C14XPmXDYWRh4xgr4Q4AIDTZA7+zBaxOWgHGqFGgM4cEMbDYJltTceUTttLWwhGp5h0PVn5GyeoiWwTqnzYamzWQFT41Wvr0VtgjU1L1ODbGvxj8qaFFudEzkRoiHVO51drUfjDWzxD6Ni9XOJJH5EB3g9tYs0vgL7MlG2US/gU/B9HSvCwKLTfuBim2WSC5HlbOVWFJ6d4t+Z/dCZyOl9AH1zIlvSmcqgzC6jv1xh5stnc2BpMxMvBDbWgSiqnjw= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: e32b1695-824b-46fe-a959-08de590e35ac X-MS-Exchange-CrossTenant-AuthSource: PH0PR10MB5777.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Jan 2026 16:57:50.0069 (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: FyiBU3YbRyY7hd6aPNK43mTAdhI0kxbH15862tJrIkrZfYynVh5UF5dmlcXSEUsAS3Raf0+6DJKMrIrjFibAAw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV8PR10MB7727 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.20,FMLib:17.12.100.49 definitions=2026-01-21_02,2026-01-20_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 phishscore=0 adultscore=0 malwarescore=0 bulkscore=0 suspectscore=0 mlxscore=0 spamscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2601150000 definitions=main-2601210142 X-Proofpoint-GUID: 2UiAM2JPzJMG3EzYl3KoHbYJcORoQyVO X-Proofpoint-ORIG-GUID: 2UiAM2JPzJMG3EzYl3KoHbYJcORoQyVO X-Authority-Analysis: v=2.4 cv=QdJrf8bv c=1 sm=1 tr=0 ts=69710591 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=I3VoEf0meaw97abzItIA:9 cc=ntf awl=host:12104 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMTIxMDE0MyBTYWx0ZWRfXwepikilABb+B dOOSJ0cBlGp+YyAwkEYlnwunQk0W5G9zXu7XnJSMevy2MWyjPhGr8PnfnOFSdv39WJtJ4QKH4gZ +c8ceH/F4EmVK541DOqp5pAFb2pCyjpdFVeFcaI89qqoFauvFKWcpoeo5v/Hplj7Y36ier9fXCD /wI9MKUoTy2RbQFnKLRyY+6e0YUcqa60nPmpBDNBjmfa3tNbjTW7GRMJffCkny/CF4NPf2rY31g CcZnKtfuTsdhHP6zDEILMVuMGR4Pg3JoELmCnHmQVIV4mQuO2mdIskdPgbgRiWRpInmmKtRIF/T vdXGga0DeSpsqTcyT/pmHIYiS5JFRac5xatoctHD+Zsw9gtRza6m5g6TZMpLXpffBqpFBZtpqmr PsQphD5MysFnjePtibZSFA6zQPndFPsDdBUYPxy8x4R3pzbsr5NYaefj2+WQ/oAKIelz9W94vqU C+TAQX5OGh7fKqFnL9yYzeRy3sMvT3/9Y90o6TYc= 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 bc58c10d3a300..e5cf947f1a576 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -3114,20 +3114,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) { @@ -3141,13 +3149,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. */ @@ -3166,7 +3177,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 @@ -3179,7 +3190,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)); } @@ -3495,7 +3506,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: @@ -3510,7 +3520,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