From nobody Sun Feb 8 06:04:58 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 62960C88CB5 for ; Mon, 12 Jun 2023 20:40:47 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232579AbjFLUko (ORCPT ); Mon, 12 Jun 2023 16:40:44 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59596 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236250AbjFLUkf (ORCPT ); Mon, 12 Jun 2023 16:40:35 -0400 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8897719AB for ; Mon, 12 Jun 2023 13:40:28 -0700 (PDT) Received: from pps.filterd (m0246632.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 35CKNtS2031433; Mon, 12 Jun 2023 20:40:05 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2023-03-30; bh=hNNPNCDvHhDl4WRLh9/7Z8qWAAWKO6ttK4dq+KZRwuk=; b=25FVTHF01gH8hjwRuYG87MO46BLLpBKYxc51DG3Ftx2qPPIrpe311Z80TlvkyHFq/9sI /W+87pON0u4FM19l3vA204aMjC1Qnvp/graQo7T2rQgMAtJmJ5nG1QgxXS3AGCEVMyGI Y1JhBeE2ZQ0uu/DOuzwqma5lOJUiUkDq6JFYVmxJ1+Pnh4jb6RW4190jcy6vM3dSUsHD Rw7nZER9xAD3lQqi93bsn00CG1V3MDZI2BUj7kT8X8pqUaxvGp2SKqQtU5IvU2L8BA1d hy2pDPV6L4eHBDne52tvGU0IAXKcCfcdg9tMxru8PZDoFOqnnsBwLK8qRDcePLgab9Hm DQ== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3r4gstusxb-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 12 Jun 2023 20:40:04 +0000 Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 35CKTjNK014117; Mon, 12 Jun 2023 20:40:04 GMT Received: from nam11-co1-obe.outbound.protection.outlook.com (mail-co1nam11lp2172.outbound.protection.outlook.com [104.47.56.172]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3r4fm314tj-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 12 Jun 2023 20:40:03 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=f7ageyaz0Ytokt1HEDIUzAA0w9oXl3sadA1PAbGpliOIuLQ/6L+REioMdcPBcEC+ysN3crr8mBhABSa0l44EurUocl7O9vva4EoJnPZqPehXDqrmIfUftmBHjtPkhIeJuInsZ23dThiqfj7bpoCBth0veZEEVCbZ2Z1uasKV7IoxYGwGjSDymbR49w6K8HyPwvDRdk8+64u3T3Js63g0SJuJ3gJxRDFtoO+wbbLl++RPw7GGEw0gYP4xAgfYOV76MUakHaIiHUIgzRZiCa3GiuWrB8moFBYS5lOpex7Vwlh+XgjsY5XtEwSFbaIWCzlDxLeMIarg6gOh9HBBgUyaPQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=hNNPNCDvHhDl4WRLh9/7Z8qWAAWKO6ttK4dq+KZRwuk=; b=nypFSZYdulMFUU24fNQuzHBdpd+nFpxcYd3ySt9ZJXKDMN1faDcR4o8gPqc10styBDcr4dbGPVnaWLMwS0M0sZ0eTB/K23MvXANxEz4PBeiRCdRfgXid6kYcfIDYAWM4qhjhorY1gaqA4vMMSbhZyithWzSIgDBdNFBVOS3s5CpbaGJ4EcYYitQwBr+5f82deN9309CHluj1FBJHUQop1MjY8xDvWK0j9S/oB7gZs7Vt21B0Ag/oKfS8eiaIAvuQMDy2rLF1Uktj2R0Edn8awxcYLbfDweh4VoZxHb2BYj0xrDmhmm+3Tjrzsfw6cSH5P5wJ/fLGbLho2D/8MaZBDA== 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=hNNPNCDvHhDl4WRLh9/7Z8qWAAWKO6ttK4dq+KZRwuk=; b=SgYB3fXOZc+84bcCfcmJKF+qMOfEFcE8zCzoZCyNCt6yaqNTdCm3ayCTEFTyNqDA3JkwWbKWPbsvrGWplmoc8YdSXUzDCVzzHVNq1CDXbZsN4zEtzHHyu7liMr1qXPRWQ7oUoKutZdBybJeOjVVVtMdjEE95MY4TJ16nHoqROCw= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by SA0PR10MB6425.namprd10.prod.outlook.com (2603:10b6:806:2c0::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6455.36; Mon, 12 Jun 2023 20:40:01 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::998f:d221:5fb6:c67d]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::998f:d221:5fb6:c67d%7]) with mapi id 15.20.6455.045; Mon, 12 Jun 2023 20:40:01 +0000 From: "Liam R. Howlett" To: Andrew Morton Cc: maple-tree@lists.infradead.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Peng Zhang , "Liam R. Howlett" Subject: [PATCH v2 01/16] maple_tree: Add benchmarking for mas_for_each Date: Mon, 12 Jun 2023 16:39:38 -0400 Message-Id: <20230612203953.2093911-2-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230612203953.2093911-1-Liam.Howlett@oracle.com> References: <20230612203953.2093911-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0059.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:111::9) To SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN6PR10MB3022:EE_|SA0PR10MB6425:EE_ X-MS-Office365-Filtering-Correlation-Id: ccbe0029-e4e2-47eb-a0b5-08db6b8531e4 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: fW9jK6+JCCE9qJGYTivQXROCeKeQtflnBCE8lvNLpr9XW3BrnIPVbSvOnCZatVu4fcHJevKYiu4jbE5omLmog+DQCk2RzfoZ0l0UwPFdj6JFRFtqfAvS/A69lbZZu611J/0AN246s9/jOUY5jS9st20jeKdL23zUVlmllmAU2l4NyJCfR8CR+yG5gTnefCpSIhoRT5DdlEQ4ju+wDYnY/5GWJmUB/7BDgvsFviONT93TGToChs3JGp+0JSAqJTsqkqIEQY21IHcdQw77i2eGC2QvOVBV/0kytfJIgSYaHV02Gzb8gxaYcD6w4E34loCaW+rXXNQFJaEj6GYz+2tEarNc82pS92lpTFkA8ru3Q4FoKPdWQNAmrISfRF2BytD1z3PLOkLxCKlyjJBENgkyeM2uy3iAhtLLNHjlU8eNoqEq03S243xbtrqnv40wzBtayWk5YWuF+ZyS5YiJAhU333VsXdmlCUQ7LRpW2heyQGCtk7Xb9KYVDs8V/K+JgYpffKlGlXPFH0e/I5DVUT+8raxKiK1S64DbiWMEsqMTcqtBHUtmgrVVkQXfGAbx3d1Y X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3022.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(346002)(136003)(396003)(39860400002)(376002)(366004)(451199021)(6916009)(83380400001)(478600001)(8936002)(8676002)(316002)(66476007)(66946007)(41300700001)(86362001)(4326008)(5660300002)(38100700002)(66556008)(36756003)(6666004)(6486002)(2906002)(54906003)(6512007)(107886003)(186003)(26005)(1076003)(6506007)(2616005);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?PK24/H/bH4sp6g0lnYi8T04v+p9CYODDF4XNdnG2XAzUhWrQnaRXfEvbWvvw?= =?us-ascii?Q?Vvx7E0bkH9J3rCqb0C7exbW9DD2EMygv3HjppwM1y34FAeBMioMVl9wkjM0s?= =?us-ascii?Q?CAkaNx9wrNxlyqcPddgqrZs5d8Oo3ma13RB5KFCkGYaeWn/YcAzQhbpY3NrQ?= =?us-ascii?Q?fYaYwVqJAI4jcCXHgQhg5AhYKeNDbeDIHA86rGcmzY6Oi1yMTJogGqGxQlIj?= =?us-ascii?Q?jbVMVYqe1QZWctJfVJvXqfSlakSSjOj2kRK8kUXtbpH0VT6B42QpvOOv0Fbw?= =?us-ascii?Q?Zt0Smb+L3KBh7FBU8/zl4vfGB6t3HGDXgslKqZNQHx+XMZQbyx/sPYeerIj5?= =?us-ascii?Q?jKUzkwCbmd5S5YpoKyUpKxDkjFOxVX9elc8Le+crGzHLIa0fEEcJraOMeIed?= =?us-ascii?Q?G6OVvL836HzCiw9l+v56R61uR98F2TJ2rhZSyeExcuz36NBPTysVS5ncLw+Q?= =?us-ascii?Q?zgsF2PhxRNrwLt74WjFk7HXwUomJXOPyl2M1iXMad7ellvSlQxuJBMRvujyZ?= =?us-ascii?Q?aiY3w37GMVMcCbLkhIhTxmfFng8NAueIQmP/3MzF4lVnzuLRN6EVxj7HSdh9?= =?us-ascii?Q?wpwnzlkdMLTGvW2E3gwc32S7JVTP/2IjWcmcZPBbqjSNrX3XkU1a6v/WB/jo?= =?us-ascii?Q?/T3gagjrltwIY+XFKXipmhSyQYpycDQ+uwyjw7Xnlw2CF5WGD/z7RY8yt2WT?= =?us-ascii?Q?v4b6SoiWgGyzBnlObSywy2X6x+yMWZAxjj5mELlrIUzNj1KAwXXuEVs/h1b6?= =?us-ascii?Q?Y0xSx04CcU6wx0eCD2hJVOwioysaffGzMDdQ3fZJMDGZXDNrCmLrdGmzZG7h?= =?us-ascii?Q?WzdFJvUY9q6FCmEH0MjhzGCrMinwhdwT8XJ72482qioe15oWkW4lwTmSXV6Z?= =?us-ascii?Q?yVg/xb2d2oLwpmXf9CWqJllmsm0SE2pMhYJ3ZUJbbxo0fvhH3jxDzsFD5JX7?= =?us-ascii?Q?lTKy4xOmYumQwclzIYo5tsJxc9QJAMEBAOOyvirT0D/yW58pLyNUQ6nSuyCJ?= =?us-ascii?Q?C1nzMaJNdY2ZyBelzhJiB8RJoi8AtNm4qu2SKp8TuGSA6kPUvBoYncUall3q?= =?us-ascii?Q?CjA9g8BjMxvJUozcwt+uos7wm2JPvzjo2Jfg4wFRO51xJ0Xh399O0BDrKcku?= =?us-ascii?Q?XIrOL1qxDoJo1hPbygQRuTC3nV9xdFyCqUp9DgT/s+vNjPzS7A9jk2Q7RIqq?= =?us-ascii?Q?SFoYn0vZjxMEOtMY2Wt1BlLkcBuaNj8Jbls2QAb0z/7o90qxYalsmrqU7PF+?= =?us-ascii?Q?hrgAkYeGlcHTvuVhbI1Yzv8WcB2PIy5bAZySkloq1eBE1fYgZKco7jTB+hbo?= =?us-ascii?Q?vlZBde7tWs4gPVDmD4UXAG50UCRVt+6i8COdnmPNIOVVW8rjXUZrVbrjplm2?= =?us-ascii?Q?Ls88qbEj8lIHhRZCm1wqjEhjT8QrNZQcKYUq8dklBh/Hbdb2qTorBYWICB7N?= =?us-ascii?Q?pwe0Tnt+ronR3hqkT8rABLxU3fyBaH0ei2ZkCKZeHU9E6vwJoNC8EdQLUVNB?= =?us-ascii?Q?C3FweTTgwSC6GdTdDKl7neA0C5ouPMe9KiA7SX9/kT0Ph4LTjOK79x7Mfvwl?= =?us-ascii?Q?mbetrUOY4cgbIPeoZ6DBNqSA+nM74oZqElWWFapJ6BRHjlKkifiyEmrtYAH8?= =?us-ascii?Q?tQ=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: =?us-ascii?Q?K3jREBT0wMYXRrQH6DzUPIZJu1ACqaHkoRAYjmoEpR4GFkUGek/bcbVdF4q+?= =?us-ascii?Q?g1sbVpnBm5wa9v7MZVG6cKkZlYg+Ok6fjhG+bzqpXQnEcV0VRlsYuj0KtPQy?= =?us-ascii?Q?I0/io8/s37dBtbValX/4BSz40Il+hFOKGjgsun7PbQF1o2OjHimndmMZ7sCS?= =?us-ascii?Q?O1p2ytBAevDdAi8TzF0Bd2enu4SzmlrlUPalTjm+lSgSD3Nhd4+1S48acIVQ?= =?us-ascii?Q?3faAqLxzesVpP87UX729jPVAZPbbfGSzUk6MwCnJpnOFtEhBvQN8fQLDZdpX?= =?us-ascii?Q?ObFvOLSkbKZQPBwSp0sADYSvVZKh6Wly0qY9zjxfSj9cl7s2Sb08AHW1OtpA?= =?us-ascii?Q?WrxMAha1pHfF63gCVtrnHHY9B/h4B83Opl5e0e/DMFPInEr/+mtLVWhlZ3BK?= =?us-ascii?Q?pQM/K/95Gx+VLdVL5gTmF31PPjUBcabEHAEJQslXJ049nFiUvkTxCe9/8aSP?= =?us-ascii?Q?qxM6lMHVHvvQGCXm+x10E4yiADUCrkIfAlvYVDoIXj6eu3GpO6j3RvKLtarn?= =?us-ascii?Q?FykcUGxZSLN1tjj2BOdpDDctjMwN1pFleEVndZmUZaKYdumBcvGMfXWpUwbo?= =?us-ascii?Q?9yGdnRUIQ7qPwK2/EjG7WMZpQhTDQOwywTmTa8uUBffo5s6LmDaNYRNw1Q7x?= =?us-ascii?Q?sUWbeKBF9M/8feeWPr3WmRdz1I9/++y9eMdhr9+u1dMi2YiX4c+9v9pbU3sI?= =?us-ascii?Q?yxzmOM80gzcDl41Sd3cD8sVGML5bIemJtT7lBgTQ/9VTtVplqUf53ajbf+pz?= =?us-ascii?Q?N31dEvtO1jbU85TeY9U3e1nKRouH6ztHaYivY9uAOpiLcKeuntJSWd0TxoPj?= =?us-ascii?Q?/2bm6GgRgIpp8lWQQ9DhJCAvxqmtBQGRln0Vf6NDIk9BoiBCuMWC7+E8qkS1?= =?us-ascii?Q?nJb20RdCqNoWY/MGMDwTy4vIPP7HoJj9DG0rZbfr50u5sHKIihxYDvbdpjS/?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: ccbe0029-e4e2-47eb-a0b5-08db6b8531e4 X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Jun 2023 20:40:01.6074 (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: rcgMFxXNmcwNsU0/9zCTs/vzfM2zVBGf5qnHZO2izEGjlxBUnrt5TxjlRA88+ggyMKf5wnEUQOFxIc5f9g5Stw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA0PR10MB6425 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.957,Hydra:6.0.573,FMLib:17.11.176.26 definitions=2023-06-12_15,2023-06-12_02,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 suspectscore=0 mlxscore=0 adultscore=0 spamscore=0 phishscore=0 bulkscore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2305260000 definitions=main-2306120176 X-Proofpoint-GUID: bfNJLouZY3-BwEbTzzdisdQZgRFu3f59 X-Proofpoint-ORIG-GUID: bfNJLouZY3-BwEbTzzdisdQZgRFu3f59 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Add a way to test the speed of mas_for_each() to the testing code. Signed-off-by: Liam R. Howlett --- lib/test_maple_tree.c | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/lib/test_maple_tree.c b/lib/test_maple_tree.c index 9939be34e516..3dbf99c3f2b1 100644 --- a/lib/test_maple_tree.c +++ b/lib/test_maple_tree.c @@ -44,6 +44,7 @@ atomic_t maple_tree_tests_passed; /* #define BENCH_WALK */ /* #define BENCH_MT_FOR_EACH */ /* #define BENCH_FORK */ +/* #define BENCH_MAS_FOR_EACH */ =20 #ifdef __KERNEL__ #define mt_set_non_kernel(x) do {} while (0) @@ -1705,6 +1706,36 @@ static noinline void __init bench_mt_for_each(struct= maple_tree *mt) } #endif =20 +#if defined(BENCH_MAS_FOR_EACH) +static noinline void __init bench_mas_for_each(struct maple_tree *mt) +{ + int i, count =3D 1000000; + unsigned long max =3D 2500; + void *entry; + MA_STATE(mas, mt, 0, 0); + + for (i =3D 0; i < max; i +=3D 5) { + int gap =3D 4; + if (i % 30 =3D=3D 0) + gap =3D 3; + mtree_store_range(mt, i, i + gap, xa_mk_value(i), GFP_KERNEL); + } + + rcu_read_lock(); + for (i =3D 0; i < count; i++) { + unsigned long j =3D 0; + + mas_for_each(&mas, entry, max) { + MT_BUG_ON(mt, entry !=3D xa_mk_value(j)); + j +=3D 5; + } + mas_set(&mas, 0); + } + rcu_read_unlock(); + +} +#endif + /* check_forking - simulate the kernel forking sequence with the tree. */ static noinline void __init check_forking(struct maple_tree *mt) { @@ -3430,6 +3461,13 @@ static int __init maple_tree_seed(void) mtree_destroy(&tree); goto skip; #endif +#if defined(BENCH_MAS_FOR_EACH) +#define BENCH + mt_init_flags(&tree, MT_FLAGS_ALLOC_RANGE); + bench_mas_for_each(&tree); + mtree_destroy(&tree); + goto skip; +#endif =20 mt_init_flags(&tree, MT_FLAGS_ALLOC_RANGE); check_iteration(&tree); --=20 2.39.2 From nobody Sun Feb 8 06:04:58 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id EA3FAC88CB5 for ; Mon, 12 Jun 2023 20:41:13 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230335AbjFLUlE (ORCPT ); Mon, 12 Jun 2023 16:41:04 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59660 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236654AbjFLUkh (ORCPT ); Mon, 12 Jun 2023 16:40:37 -0400 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B37BCE53 for ; Mon, 12 Jun 2023 13:40:30 -0700 (PDT) Received: from pps.filterd (m0246629.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 35CKO4xo029655; Mon, 12 Jun 2023 20:40:08 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2023-03-30; bh=wU14PBuTjC9Yf1nsufmd8IeOziKTsVC4KgDaYYEL8V0=; b=h+aqMamu0m7qGwqXWpAUlzvT2s0oEKa3cBk2dHtqk+8w/RrWxokIbCPrN4OYNBUF8gw6 gOUDsss/oGUMflfpnBU/x53FTDtA3xfKd+8aYAKV0imhuYpWUew92ba1HPJL+MsV+vt9 r8MA3h+wdDlwuSYkg5H1CwSf5TyRjhbw3p5g6Co7OHWRjeMLiFNKSALyqx+vuHRNed30 AcjCd7vRXj16MmqJxRUpX/sfsHN4V0Ln4jwwg1LXNlYEoLfOyQvvkqwAvmhvjx2V6DoN Lmzpb4zXWGbNMuuSXT2PY3YZL+o3FDuD0spr+y3jVzF+LuN5Yb+tsW5gqtkOd48z2ukY rA== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3r4h2akv3s-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 12 Jun 2023 20:40:08 +0000 Received: from pps.filterd (iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 35CIfCEY016225; Mon, 12 Jun 2023 20:40:06 GMT Received: from nam11-co1-obe.outbound.protection.outlook.com (mail-co1nam11lp2170.outbound.protection.outlook.com [104.47.56.170]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3r4fm399k9-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 12 Jun 2023 20:40:06 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=McgoDsYzjeBX++RmX15mKRQN9mQDWalP+biqNKx6ygMX7C7LgkRDFNqo7kAngDyEiGhC5lk2gswMwo/wio1cTNJQMhVg602szpKUCYn5yecsUywMeEBo+x6HFGVi3f/oGQdLaN9wYP2zZihai9e+CFLWmJObnjODQdCXQJrz9OxNcugyxGM8wkxhCDDwFkQsSh6lujH6n6ZFm/2l727O6a5MGJJLwJjQs35L97sV2SqvhMMGuRp1P2+H46j8T34TC+HR2FLv5S1iPny13fCFW212xDIgYMK1dHr3l3p/xQbcyabOVZ+/BnGGNBzA9Y3XU07ZV3E7A7VjX40FAZjwmg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=wU14PBuTjC9Yf1nsufmd8IeOziKTsVC4KgDaYYEL8V0=; b=YE2bUyooeQTEgEeNcpUQXQJLDE75quHeCVcGccDimhmb4KySdPi/qxQDjLhL5NAxLcJeXke94TEyxXGeTj62QaZwiEX+4+1be3xNrrrTaL54RQw24Og//Es42tdQInL8WN8QkBaq5xO3JggO3o5mNGctwWRgId3LHTbBT2poIZM+79XwuxwHUzQRkQ4LCVvRideW2BEwR81IW1RAtcsVwgWSCT9a7xy9lb5sSy2tnssrVqNWYvs+VtadrzuOZceUiHap4h9vKWYS7/Z0SqZsdtLI4tT/CE86rvTTnVBP3hdNJch/gf/anLpn5ei+rBDrpfLakl9g3Oe3hnxmvviVlw== 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=wU14PBuTjC9Yf1nsufmd8IeOziKTsVC4KgDaYYEL8V0=; b=t0iAOtB3qDvbcWDFj0yWPpyxd/QhlwRnwcufCjGQKyhyvdVv+kL2gd53SRBnCRBOId6D1ozFH7KfzRTOwr8rBxyfvGZHBIVSqXqfrA7BbEdiXC868iU/fvxwiA8VjT40q9beg7nCI5yX9C90UmNcBiJvVrHyAY1MC8r1NXJnwo4= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by SA0PR10MB6425.namprd10.prod.outlook.com (2603:10b6:806:2c0::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6455.36; Mon, 12 Jun 2023 20:40:04 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::998f:d221:5fb6:c67d]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::998f:d221:5fb6:c67d%7]) with mapi id 15.20.6455.045; Mon, 12 Jun 2023 20:40:03 +0000 From: "Liam R. Howlett" To: Andrew Morton Cc: maple-tree@lists.infradead.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Peng Zhang , "Liam R. Howlett" Subject: [PATCH v2 02/16] maple_tree: Add benchmarking for mas_prev() Date: Mon, 12 Jun 2023 16:39:39 -0400 Message-Id: <20230612203953.2093911-3-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230612203953.2093911-1-Liam.Howlett@oracle.com> References: <20230612203953.2093911-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0354.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:fc::14) To SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN6PR10MB3022:EE_|SA0PR10MB6425:EE_ X-MS-Office365-Filtering-Correlation-Id: 4ae038b1-4ff5-4c42-b3f1-08db6b853321 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Sp/5XFtegxzNRcoTnPwPSKoizwg1syhPPl1VA2dPtVtbgX3PqyGEs29Ksdh6f/H4OGknkr2G8Uny/c/ebymFk5te3wPWJ9uNB7FzeV4ndZXLeiWiGzRBe+54DgIfw1zwytM7uyifpMnM9qPB3xnQcheCLVUHDLZ2Mxqv0hVbyKpMm5fzBQf+lhMc3/QWwSk4DQ9nPzOIkMJHycXV4auBldCMi7Wq23JtYp8v5Rx7HYK+ehN9g5TKMDPXwUCqBL6V37aTQ15FqhWwBM01jOxhTgKrue1xM1KlPM351Rdjvh3Fj/K01LS/KkvRckhyFzHhl/+IHxxwX5rj0xxZKiXaZjptOmzy6/z1eHMI0eVC2I3zALUfeqLXgzPiTiSRM7eTeRBjc6KKJDBUkZ22eUNpPRnikj2nAcjfZrxDCtWcDQNr0EEfynLSZUHWnMQEhG+9sl+JB3ttbWp6ZOeZwLcXUVfscym7UOQigmWmEdoU/bAuyypa4xD5ZBiQ6HYvtG+jkRD6m0U4+358rBLFxy+YVFp60Fl+t/giDpPhQzl5l66Z62CttcJ7DfM8lAub/n4h X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3022.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(346002)(136003)(396003)(39860400002)(376002)(366004)(451199021)(6916009)(83380400001)(478600001)(8936002)(8676002)(316002)(66476007)(66946007)(41300700001)(86362001)(4326008)(5660300002)(38100700002)(66556008)(36756003)(6666004)(6486002)(2906002)(54906003)(6512007)(107886003)(186003)(26005)(1076003)(6506007)(2616005);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?3RCgeonaRw7dDX9wxKXkrg7iWIv1Zc3E36aAdfzFuGzUvEbXGql+DW/AD8mN?= =?us-ascii?Q?n57yB8S8SRWrTdjNOjPOUvle/PKRiel4g0VvD0kN5tx1nUA5FuV37RuAl9On?= =?us-ascii?Q?ajnz23WIzsNFCD1k61zTxbuQ/gmvqvRNRjjQqIXO68Bes9XyvGiPBknHEF1x?= =?us-ascii?Q?sUXbpaI1x+9LYpc+mylPZ0wFdRg5KPhpbDr2Tp3sVeQ9qTsz+J5UCAzYliF8?= =?us-ascii?Q?8kBTauLdiIMprSzz9SA2gU9nFtLTYbKWcPm3l68sNB8HYB9cjuD79xs8Tg/P?= =?us-ascii?Q?+DKiqQueSHZwKJV+ZqeFd8nDI8PW02dPhFgug7ypEjT4Zh9/VADeFpkzKkHv?= =?us-ascii?Q?igOcblR3o4snYbIemv0xfw7Rsgf5LtT83uYl22Gva3Hy5h5Y9h1NhpdQFlOx?= =?us-ascii?Q?4HRzspdq71M5NUU3z1jOsmjMxVaMQ7mWj2cDhOS7OAI3rc24kO88eHHxvHGI?= =?us-ascii?Q?qm8OIszV4I3VcR/1Q8qbbl9wxjQSvXQej71KuKCG9nAZXahVSfFQdPvQGIq8?= =?us-ascii?Q?KzYub7v1NnYq2kjWUPyt1+YeYlBOodL2oC+lMBage+Tskl86oMgZL3JAo6ZO?= =?us-ascii?Q?eEQwpM2t2WRQoEeRPDHGFIBVO5hY9jUOi9yXYiluglsJbiTET+NEckbK3ncp?= =?us-ascii?Q?nJ377TfNep1vWVtqMFLUWBKqw6DtIql8gJWuGJbJogdiqS8AD9q+EuJodnDI?= =?us-ascii?Q?Hn0Axz6vqrtTIw5AuCdPmoRDRqoXgDcMAuzyg02bZRnDGnQNlhFg94Cr1ukB?= =?us-ascii?Q?MgWXFifjNwcv1FLMqPVFums1ua58LwzITYsPSRLpzuvC15OMGpcGlq0xzgtE?= =?us-ascii?Q?JdhdGC5tcBbCLw8b4brp2UBkIvRyQdzZIGR+AgLgufcomvqh3MagmbNFQHSW?= =?us-ascii?Q?07FYP9Zf5vlmageXtl9V+HCq0CtoB7vKDg1xmatdwZanRe+xaxmTBXTMPT1d?= =?us-ascii?Q?mXDlYNml7ZwYGW5sn8Qra0RhLSZGnAXlVnWDuS/nvV3e617ns0zejYBQZDQ6?= =?us-ascii?Q?DtpwXhHSXAzppNkbIaaYhRHThy1uPkY1WjYw1HHB0ZnkzoNBEp8iFqp8cIwy?= =?us-ascii?Q?10mmwbe8xflW8k2N0rIaSyafJsQ7CCUtj0XBsPVT2uQs5Ks0jIH77wACz7sC?= =?us-ascii?Q?cf85fQ5fSpSdnUvc4RsKwMo7kkncY5dPLzFfTrXJOr81z1VdwN+moEdBt+WK?= =?us-ascii?Q?hsGAp6O0T45Sd8a78n4Ynly31rnVC2WBSp2uFSExrzqqi0DeV7dXs89qw0Pb?= =?us-ascii?Q?c6gLNL2Z1EDo/G4cogbDGpoqkEsNtl+rise+9aGszO57EpWTDGEYOlSPnA1h?= =?us-ascii?Q?LdWJJ8bM+QhzjG2JCOEiY/516BJr7JfuxFTICqxDkYrnLeSeHQOAdDZHYLWU?= =?us-ascii?Q?fnpP9kLS7T/uZPosPl83dp04rnbAJXRzUbewrL38a3IdL+yWryN+H+EZi9F5?= =?us-ascii?Q?+ox3PxHB2BvxZfP5eSATZ9PvZ95dIR6rQ4AHvkPIoCx7g+bcABtyzqfx7UaP?= =?us-ascii?Q?BDi5OXuhxEm1UwEbvHCokZpxLCiw9XysHsV6xvBKTTZ3PlmEr2QrsIwHTKes?= =?us-ascii?Q?wT5CDHpkKLIUlBEfxRdICBYNiMGmW5NHVfj3CQjX1cdUBZyBsY2ij3tfT6DJ?= =?us-ascii?Q?gw=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: =?us-ascii?Q?QRLEXBfGB0vhOyawo92OI2bwTlVWwibfh1Tzyxn5yaob77UF/9eCZqNW9H64?= =?us-ascii?Q?mmsmPz6kaXuP0YuFmzYgqEnpTFQDO57hXT8opJYcLJU1rngemRO7wIqMri1u?= =?us-ascii?Q?DsXnwQpRaHInRQ++OMZv8EsQ2H5q8SrZbKn4mCmkSEXReyGDulYNMnta5USK?= =?us-ascii?Q?7454xVDxLBpWcGpUwEhe6HSHbZgLkGUDxgH+q+MPHfnKyCMaBuvfJD1buHL1?= =?us-ascii?Q?qbmwchoUjcthXrBp1sC2kiI4/q7IJb+BkQkydF/OpRqxuuVg2dLTYeulBEpA?= =?us-ascii?Q?02UVujjc5cCarfz4sT4LPS7vSZnMT7gcnrmkfYTpWtYQyxdI3aznZujoN/AG?= =?us-ascii?Q?yxdaY8s2O2DYfy/Y43szbebkx3cGVbcfgK8zznQEyMXd3BQy0exTmYIbv7Pe?= =?us-ascii?Q?0yTznWbmCf8eWCg4P6kFh/DaA0IzP20Dj27E9Btc/ighpNgIsDDLmqAaGpan?= =?us-ascii?Q?GBrqw59xcjJ31TeIQn8xjdERQi/MZFGAdGtZd6tO+0i+XgS5Gnl78qiC8SZy?= =?us-ascii?Q?+Sb81F7iFfHWZyx3zSkO49abKtl1Jok/b/J9OSLGLB/DiiSOYX6UvYHl+Tom?= =?us-ascii?Q?hMURJPrHz2h7KD1FaNNMjNua4h1izxynbuPStJtvhVHwBLiz4Jllrm6rFsry?= =?us-ascii?Q?10iOoR8hjq3rVBq6B+mTcECVIjxaWs6JGec6LWmtOm6YpbnXQpPwyef1rrza?= =?us-ascii?Q?VkclPo0s1dcVxYyvNUjVXVug8V5NZRUW3XhnpMvy7+bxT7L4/SFy+V/mSals?= =?us-ascii?Q?UzwTKq7s4psykA5PhLg9K6w40L1doI8TfAJc6Qo8WvMglFGJkApMsmGGnZ65?= =?us-ascii?Q?prq+jTuFwpC3TK+AkqZsIkFVbY9dMWv0LHpvAMk1BFg8Ve1q5appqCtttHq7?= =?us-ascii?Q?X7UdlKiD+xL5tCyCkHsLAV+LEEQ+o32PQyn9u3ylXmPrGwgUzfpEWwhYjium?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4ae038b1-4ff5-4c42-b3f1-08db6b853321 X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Jun 2023 20:40:03.8925 (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: ox+Q0+Zdm2QO/pUZgOImBn6dBfEYyBoNwYBDyGHFE1+cYjV+OhKfvUV/d/g/qD4iuaWdAVdnmmMhtp2+Ui/UUw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA0PR10MB6425 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.957,Hydra:6.0.573,FMLib:17.11.176.26 definitions=2023-06-12_16,2023-06-12_02,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 bulkscore=0 mlxscore=0 spamscore=0 malwarescore=0 adultscore=0 phishscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2305260000 definitions=main-2306120176 X-Proofpoint-ORIG-GUID: s6Lb2icNYkDxG4qP6CNl4pjZmHmfNJlK X-Proofpoint-GUID: s6Lb2icNYkDxG4qP6CNl4pjZmHmfNJlK Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Signed-off-by: Liam R. Howlett --- lib/test_maple_tree.c | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/lib/test_maple_tree.c b/lib/test_maple_tree.c index 3dbf99c3f2b1..15d7b7bce7d6 100644 --- a/lib/test_maple_tree.c +++ b/lib/test_maple_tree.c @@ -45,6 +45,7 @@ atomic_t maple_tree_tests_passed; /* #define BENCH_MT_FOR_EACH */ /* #define BENCH_FORK */ /* #define BENCH_MAS_FOR_EACH */ +/* #define BENCH_MAS_PREV */ =20 #ifdef __KERNEL__ #define mt_set_non_kernel(x) do {} while (0) @@ -1735,7 +1736,35 @@ static noinline void __init bench_mas_for_each(struc= t maple_tree *mt) =20 } #endif +#if defined(BENCH_MAS_PREV) +static noinline void __init bench_mas_prev(struct maple_tree *mt) +{ + int i, count =3D 1000000; + unsigned long max =3D 2500; + void *entry; + MA_STATE(mas, mt, 0, 0); + + for (i =3D 0; i < max; i +=3D 5) { + int gap =3D 4; + if (i % 30 =3D=3D 0) + gap =3D 3; + mtree_store_range(mt, i, i + gap, xa_mk_value(i), GFP_KERNEL); + } =20 + rcu_read_lock(); + for (i =3D 0; i < count; i++) { + unsigned long j =3D 2495; + + mas_set(&mas, ULONG_MAX); + while ((entry =3D mas_prev(&mas, 0)) !=3D NULL) { + MT_BUG_ON(mt, entry !=3D xa_mk_value(j)); + j -=3D 5; + } + } + rcu_read_unlock(); + +} +#endif /* check_forking - simulate the kernel forking sequence with the tree. */ static noinline void __init check_forking(struct maple_tree *mt) { @@ -3468,6 +3497,13 @@ static int __init maple_tree_seed(void) mtree_destroy(&tree); goto skip; #endif +#if defined(BENCH_MAS_PREV) +#define BENCH + mt_init_flags(&tree, MT_FLAGS_ALLOC_RANGE); + bench_mas_prev(&tree); + mtree_destroy(&tree); + goto skip; +#endif =20 mt_init_flags(&tree, MT_FLAGS_ALLOC_RANGE); check_iteration(&tree); --=20 2.39.2 From nobody Sun Feb 8 06:04:58 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 577E6C7EE43 for ; Mon, 12 Jun 2023 20:41:13 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234745AbjFLUky (ORCPT ); Mon, 12 Jun 2023 16:40:54 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59654 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236386AbjFLUkg (ORCPT ); Mon, 12 Jun 2023 16:40:36 -0400 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 886A619AA for ; Mon, 12 Jun 2023 13:40:28 -0700 (PDT) Received: from pps.filterd (m0246630.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 35CKNtBX003133; Mon, 12 Jun 2023 20:40:10 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2023-03-30; bh=j9omlzefsXQ1zzAnkg/pmDvba27GUm7hHo77v9ASBEM=; b=Hm/0dBTNhSW/Z9+Im9O0iNEmy/kQucs6MvuLidubwvJq8dzJeINJoCu4rrQkRvT79pJl rW0BkxcpJMJar9ttaQohbm8dfBeMWx/owu/QOEzlu6MA+x1cILwUF8Zn76jGYk7+QP28 K83OcPGTdSXdh8XamUKDotzskvHyp21BBv02jSfq+YKtAUdsSv1CfD+N2gmkOGz494PA ZwBB1nrP8FHEbjbyjqDFZmhfDpkN7L9x+zRdKsdIUpTPrGPgr1K8/VodeRY9gfoz+Cgr z0iOoKNujvXbLXcQGPcwUhmbngWwpMp6QfdmkuKCnNaBssUSY0TXwDIsw2bwmeJDIfTu gw== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3r4fkdktnm-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 12 Jun 2023 20:40:10 +0000 Received: from pps.filterd (phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 35CJTvUA017793; Mon, 12 Jun 2023 20:40:09 GMT Received: from nam02-bn1-obe.outbound.protection.outlook.com (mail-bn1nam02lp2046.outbound.protection.outlook.com [104.47.51.46]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3r4fm313r5-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 12 Jun 2023 20:40:09 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=e6Xh9SJIXhrlAfGQF7FG6cW+rH3LxqLDdTMtCSwh1Ms5rj0Rp5gg1cm6jomXQAgxndIHGYn9RbIcUUqsQYbrVV0dNcNJoCFy9Unl6zoiy7yPMKOGM1pOQjwD9gPE2/sM+In2TACOVMB767bYoGUtivTL10lm0DOTnk/sJCzz7WReKieKnxjhOa4LyuW5YWGvhcovuq3j/JRcU3vu784kqhxEiwm4uVMeJ+Lt/EJcR8mezt+5vJkHOVvmHCZpPR66gqtSF6vLkug56KupfNG1ychHP6C5MrQ8worz1J10evi5rbzaW1h1+iuMqZAoG4aUQ+BukpUWmabv6fljWv8U8Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=j9omlzefsXQ1zzAnkg/pmDvba27GUm7hHo77v9ASBEM=; b=GCwkWgF8NWQBLmE4TTt/K+VJ2PajnODKJOVIag5cV65c8ZckMbuuFsisG4ih3HDtwM8ivl+kEpwzLmnt3kko+xLPEkz8p0Pikgt5ry03j1kd3WMOmZ0NBwM1KgtNm60uOq+WDn5Bc0tpBRp3S/xcNo5J+37YEmbZE/ty+ja0+w6xYqXWgcvFVrsIOJO/yFFovMXaO0IdbN2Ppon+PiBbqEwGfLqhnqWiU3ARZTYxrq0+x7zVdIOKbqO9PamwkNgGpP13y3wrBUIk/j0TYQHViWodL0Jife1eFUnaB799HKsOn9Ovl+Lbw83OPQXT4eyWcfgkxweODNzylkhtgPO5GQ== 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=j9omlzefsXQ1zzAnkg/pmDvba27GUm7hHo77v9ASBEM=; b=FIjSZuwNsZ6ZudTWlM9lw7UEsVVIgnu17WNh3tSwiqFhnGkKbDtgzWeHReoiwFL5d43PYeqKzWd3r57pWRmq9MdVeDcbqbfqzGGw1Ao+G2EoKK4SIKJe2zrW9jiQNCOJ/1r6oyLCpwCWttoUnia7znKd54rq9P1sXVKvmEgqA84= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by SA1PR10MB5868.namprd10.prod.outlook.com (2603:10b6:806:22b::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6455.44; Mon, 12 Jun 2023 20:40:06 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::998f:d221:5fb6:c67d]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::998f:d221:5fb6:c67d%7]) with mapi id 15.20.6455.045; Mon, 12 Jun 2023 20:40:06 +0000 From: "Liam R. Howlett" To: Andrew Morton Cc: maple-tree@lists.infradead.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Peng Zhang , "Liam R. Howlett" Subject: [PATCH v2 03/16] mm: Move unmap_vmas() declaration to internal header Date: Mon, 12 Jun 2023 16:39:40 -0400 Message-Id: <20230612203953.2093911-4-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230612203953.2093911-1-Liam.Howlett@oracle.com> References: <20230612203953.2093911-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4P288CA0084.CANP288.PROD.OUTLOOK.COM (2603:10b6:b01:d0::18) To SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN6PR10MB3022:EE_|SA1PR10MB5868:EE_ X-MS-Office365-Filtering-Correlation-Id: 2acfcaa3-5965-45e6-4a95-08db6b8534c5 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: yVEUUe8xAgmWcUVHfjMeHMZuWzMIzKrh+q6nlUSsTkRpp/AkwFFwzYsSExmOMRp3t1xii7ixMBXGKO1rEoPzQSdFmtujSYxmJ+ZI2qUwbFKzqPtW3h+Crh9eOA5RYXKhoU1JTQ5j1gO3EKJoEtVdlw8DnDJc0/PhuvyV9GctBWJ7zbZaDfSpdPkAp2X2tKJta7Kv3ZPEOGfYdI26QE6r8vRlCw6LyhSLYxg00JOZM0Uge4pEg+H1JDAUeH0pwnPd2A5VPJRgiSj02+oJ4niBP/t+7rQTGbfU0qaHQL70J53eTXwDu0c7xbiX8M1gTNv9UfRIBDi0ZCjV5prpqJ3iNRXm/oTN54g6G61nxfkn0M2R+w3KNO01NC74wEdaJHOGPKmKffNrCqtRLnNSoqpLmeMTf3L7YBarkAZ71lUOV9IwzHG6ua8eZGU5higzy0uWo1YLA0MUx+2D/Z6l25zG7gkdi/fDOBvCVwOizV5pqppuPP0tkOLFR3h10ky8oPvBezmHbep++O2jz2RqfaXnERBJ3SiKp9OkzSmyig7I7SF4lfCkve/asXBrYrIzPib2 X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3022.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(366004)(346002)(39860400002)(136003)(396003)(376002)(451199021)(8936002)(8676002)(5660300002)(4326008)(6916009)(66946007)(66476007)(66556008)(316002)(54906003)(2906002)(41300700001)(6666004)(478600001)(6486002)(6506007)(26005)(1076003)(107886003)(6512007)(83380400001)(186003)(36756003)(2616005)(86362001)(38100700002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?Bjg+OQ6C7HF2X/e9bJ0Cd17PF4Aio98JxVBibXXB61awrC9SCzpIaZEBoxnK?= =?us-ascii?Q?QC1ZTO51E1t+bVlIHXzKh2edRatoYB36GoZUOhrQ5+dtz9he7HspCfDJ/7x6?= =?us-ascii?Q?euVQTlR7cGJDlD7W8jzP1844WlWMo6b6rob9KIXUhWRPIxvh4sh/yVbK2qNh?= =?us-ascii?Q?zhZAMolfYztnCZ+nu3o3aqpnL2+cvkS1H+3+qc30qqOYJTJFNGIfx2ulBDUQ?= =?us-ascii?Q?5YhkV5fEqm4+wE9QzecMhk7AcZk2EOtRy49dGsnrFds9v2SMaj/CGXpdlv9P?= =?us-ascii?Q?kI5UQ+1PzQKp6yyFjbzEjBPA5tD4PJnvdbMLLpSYjD+zHbpJAdE1UUUQIPHe?= =?us-ascii?Q?/UqVMe7fTsqG5aL0/L1qvkoQ1aXwvGOf4fADps26qFDqxVw78BjXObM26knG?= =?us-ascii?Q?z6VWqXaz0PTVhdQztWZ0Tt3NAsHxwdtnWlxIsEdCKNrSGWM7IHE0G8v+BjiU?= =?us-ascii?Q?WEJ0hU+H0oCc56iqI/HFJmKPns1mq5I5bf6DkAS9Vkbg0ZcOUN3juE+XoD2p?= =?us-ascii?Q?sFJSDryPdMjFo/VC6ObLqJ08dpNcnsN9ctNMHO/HeCjgmIzLDRpAuOrz10yG?= =?us-ascii?Q?KToHXqGaKo5R2mCybQ+cPQ1xn8infl2Ntci1ToYgNf56oQVlvETC+eusbDk1?= =?us-ascii?Q?I+YehFbAQ7MJSH3KsvNj9DAm+pIE8yhzhVdtaOJirsNsKXNyMFO0PiUp5dZJ?= =?us-ascii?Q?UaAmEhWitPU63B6PqfY5Xy3LCioHrqn1uNgT4CnLeHNn/2T/zwCxZ9j+bguS?= =?us-ascii?Q?FFK91kwwJJdzEjhvVVIbO+Lxep780kCI1WpbPvSFRkNIFPnRfCnN925jSALb?= =?us-ascii?Q?HTKGRDbcbh5muzmwy8jlkD5M5RSyI1OFfldt7YfSifk6WKk5Uc4UU/gy10Tg?= =?us-ascii?Q?xFH47oIyqrh4IecBn7m6FA537wAydqXG2SizS/k/BhYUJ2hXEOM4XrVJpMDU?= =?us-ascii?Q?N9KL6AEGFpRwczbNGt7BU7NWY5YEzLqbaa3AttsBh2R01CcMjkSIygA3JkBK?= =?us-ascii?Q?gET5rm7gjYteK7/5A5H113SoQVKmEIWaUfe+G0iFYhabA7kXReYL62ZbQCtF?= =?us-ascii?Q?BCUmOHnFB10N6nu7tQhyhWuGT032OnLFGqZ3A+OBSy4wjLu4Atf62ZxqB0PI?= =?us-ascii?Q?jTjDN5Ps+4jsggud60qgbIfIHttLPe1uf4iTk1AJ9LXlRPpXdVJs4dygjjfU?= =?us-ascii?Q?ch+PtgTmKx93tj4Zufrwve7lghc+CsZ0KFUig51sj5NjfSihOP4PM4XX6CUT?= =?us-ascii?Q?yovRT3lIQIJhDBr3F2RAr29s6M78yN6RO4F6E5jWQ0opMKCpE8E6cwqElje5?= =?us-ascii?Q?VrQoqN533B8zXUENObOKfQWiZ2e83CpJt+yY75S53mxzSVD8/rmmsKB2Fe8j?= =?us-ascii?Q?tM1Ra/7e7FzvoK+nhFwsnAERv7WJAAQ/19JKem3uew71ezCeBiO9ZzL2CS88?= =?us-ascii?Q?XQ/DIT3+7DJomy/ADNWqRc9zntYH8/RP5pqbuZSLru6JgJ5i3IE1CkwGjQuW?= =?us-ascii?Q?p4HoE6ALyvdotP0A8Tm72r0+SVZEt14nENxrBMUzgQh1APa2Eh2lbbe29PCq?= =?us-ascii?Q?WZHML2r7udpi3XAl3x58ZC4irdkXCdtcgShp3U7cLbCyjb4yD09/xH71hr4O?= =?us-ascii?Q?Vw=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: =?us-ascii?Q?IOBZMygSHc4V3pGeQLovYjDYNXpAufzO1Hrr+7SbuD8va4CV822551fQV0Rj?= =?us-ascii?Q?QgTPgjG0uS89cmiQU1dZN7UUCV2wp3IjE2cXjJKqOsxzyuO+BBd/Vs5lms3Y?= =?us-ascii?Q?P/4gWlC4bQWEUsd7dMvv3TD3oaVwfyBmxRiJGZPmsomm6MgynkrVWYVqqDHc?= =?us-ascii?Q?fGI3esssbRYIYY9E0+Vu7dzdTC3WoayUAZEPbj9EOVDqR7CcCjCjPHqdjyVH?= =?us-ascii?Q?2TfHYWl2L1vza9ko7Vo6q0+3PA12ANb2eU1eJWQXaEycMkxs9IoGxgX16Dht?= =?us-ascii?Q?5voINR8FaiJNwEZdDB3PDToT/SirvhyWQ1JLbDhXJDlNs12foKnPCMpaK+ME?= =?us-ascii?Q?KNe5hHjXsKDEN2EuIFDZfMpit9wOV0CHRRw0o5oWutJu4ZHvF1QxVDKkwfiq?= =?us-ascii?Q?LV54KesPfIgm7lXkfgnI9lM83IBJcluJ/WL0XzNuau+UXje6GesoznGIS160?= =?us-ascii?Q?InjZc4n48rn7cC/gXqrD49Q1au2miVshJn7vCYO1qiXulN7VQmQZQBlKKJ3i?= =?us-ascii?Q?MkanA8jJCV+1zuZa6/PIIXIS5C+B29CjjiCXoOu+gLmpVvKqU/MMCUD//Owo?= =?us-ascii?Q?xdwjl+eIyvtKJmNG3rXQf7VTp+bfRmwpvefymKFfOz4wfKKAw6oPsWY40DO9?= =?us-ascii?Q?azHDEcv2Ed4GZB8/vtGY9AXz4ZmwRM8+1Nl4qarCdQIVUrs2q/ADUzlTlckE?= =?us-ascii?Q?CFb0iCXU4lQXOmEpoHrGpqR2ah3/tGXDRJhW20AN8b6leMzw1yvb6eeo0ZDi?= =?us-ascii?Q?C1BaMuFO3KJBgJntfOl1sfulbqJm/GWMU53sDEtNhSFaziuF7vi1N4ZuBPPs?= =?us-ascii?Q?81SycAU29qjlrV1pkyj++0m6lksXVqT0vMQx8w8Cdj3X22tcgGBtm/u+OSK2?= =?us-ascii?Q?t+M2ZTpfCQdGWFHks/8e1w3bkxwRs7mYyjIFnC+5ElJ2M92jnYogJ/wxIAcG?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2acfcaa3-5965-45e6-4a95-08db6b8534c5 X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Jun 2023 20:40:06.4200 (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: qnQp3eFDfZW1cV3sWc/iCFxbxrj9IEN7idm1q1GEBnif/8LUt7TVGPUBxDbrydvmuadI34tH0PNEzi14Jx8izw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR10MB5868 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.957,Hydra:6.0.573,FMLib:17.11.176.26 definitions=2023-06-12_16,2023-06-12_02,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 malwarescore=0 suspectscore=0 mlxlogscore=999 mlxscore=0 phishscore=0 spamscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2305260000 definitions=main-2306120176 X-Proofpoint-ORIG-GUID: WaXItoCbJqspkI3w7aozadhHoYiHMjdT X-Proofpoint-GUID: WaXItoCbJqspkI3w7aozadhHoYiHMjdT Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" unmap_vmas() is not used outside of the core mm code. Move the definition to mm/internal.h Signed-off-by: Liam R. Howlett --- include/linux/mm.h | 4 ---- mm/internal.h | 4 ++++ 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/include/linux/mm.h b/include/linux/mm.h index 66032f0d515c..209fe13dc8a2 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -2302,10 +2302,6 @@ static inline void zap_vma_pages(struct vm_area_stru= ct *vma) zap_page_range_single(vma, vma->vm_start, vma->vm_end - vma->vm_start, NULL); } -void unmap_vmas(struct mmu_gather *tlb, struct maple_tree *mt, - struct vm_area_struct *start_vma, unsigned long start, - unsigned long end, bool mm_wr_locked); - struct mmu_notifier_range; =20 void free_pgd_range(struct mmu_gather *tlb, unsigned long addr, diff --git a/mm/internal.h b/mm/internal.h index f45f5eb4514f..9b665c4e5fc0 100644 --- a/mm/internal.h +++ b/mm/internal.h @@ -1099,6 +1099,10 @@ static inline int vma_iter_store_gfp(struct vma_iter= ator *vmi, return 0; } =20 +void unmap_vmas(struct mmu_gather *tlb, struct maple_tree *mt, + struct vm_area_struct *vma, unsigned long start_addr, + unsigned long end_addr, bool mm_wr_locked); + /* * VMA lock generalization */ --=20 2.39.2 From nobody Sun Feb 8 06:04:58 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4212FC7EE2F for ; Mon, 12 Jun 2023 20:41:45 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237671AbjFLUlN (ORCPT ); Mon, 12 Jun 2023 16:41:13 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59710 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237076AbjFLUkk (ORCPT ); Mon, 12 Jun 2023 16:40:40 -0400 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 93B9210FF for ; Mon, 12 Jun 2023 13:40:34 -0700 (PDT) Received: from pps.filterd (m0333521.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 35CKO1a9029054; Mon, 12 Jun 2023 20:40:13 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2023-03-30; bh=e9UPiz3pEKMXIuIsvPDaS8Nyli4ACB+wguzwvJ/2XbE=; b=Xj1n/67ee7v/XwH3hZ90ZbVK3FhQrpbHgAI3vRIWK5jvLyej4vnvR50UvL4sspbYxC00 TX+crmVXqL9cWXrXGSJd2otYNJ/z2YvQlMLx4Nw2mnb3sr6yfpil6AjYth00iVwyMmNu zMGCwNcjD1rf5+b/0GFr2EOZqH6W4AxvbaZPWKrxXW3uBEg6Ik/ZERwEGIofNZbl8mPE RLm0wYV0IqAAzHjIlCMx00ea6TgcfHDvBt/1yCUvQrLZdWhHf2v/ltucDn9+OYoqvtyi z842Xrleu3mF7ZKA2mmD19q54M+wmJ6UJF9RglaecMzHJSckcf3NAi3HERxGQQL1YHFu 1Q== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3r4g3bkxa5-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 12 Jun 2023 20:40:12 +0000 Received: from pps.filterd (iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 35CIeJDX016265; Mon, 12 Jun 2023 20:40:11 GMT Received: from nam02-bn1-obe.outbound.protection.outlook.com (mail-bn1nam02lp2044.outbound.protection.outlook.com [104.47.51.44]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3r4fm399pg-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 12 Jun 2023 20:40:11 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=AjO6ZrgvBQd31QQ8whjqEGk73v0juDHubKVN/1pSZJOu01gryb1nmQeI/K6d64HoCrSgHWZGd6/wpf5BWmOzLLuaw4YNh4AydQITZ50Endz1sCAvGhlB6/EEToWbhoO1S1Y+PgAoiTTb3AspTA9HL1pnXaTtRKy81JRqAA4b40/kMEQkavro+IGi5wm136u4UWHTRGp+uq4FEosJrDTG6Gt5RGfln6hYq9C4yX83bPePIbwGXWoDiWBwcMbAiDtcf9eIoS+5wzFhMow188QL3/rBfijJkHwhIa731PLE9K3euT53ROZaYpvqUQUftttD+KU0b0gC08+0ambEZ1VL6Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=e9UPiz3pEKMXIuIsvPDaS8Nyli4ACB+wguzwvJ/2XbE=; b=iuDuf8r0Oj9Oq+zjwiigF/lPE56zD8tRlPouVqeuU+EnLQCgDD3wLqFTtwMRBCTPvlydpgWdddOXsq/ubTPvW9lB4vKFFKNEL9g5WTRLhe6pZDQX6RwB2qZi/G9pBstFN01e9MNrYhowzE5hxPcddEfXSWg40lcMiW71SoW3ixFGiU0nXoVwKRtBNNH+gb62ijSL8EO7jVOb6RCpUESi/5e+IGSHi7k1ZHYhulQouFL/7l8wddFIJA4quML4KBJxMynAtPJzG/8UjM6Xqt0PuDSyZnnS6j9dCeRH9t0gNljvTdwt5jMVOdSmhNzvF/HTN+7lrg9FABOgitlFPqUEWA== 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=e9UPiz3pEKMXIuIsvPDaS8Nyli4ACB+wguzwvJ/2XbE=; b=WBG1jNZErpRfwcQoqGPTW0GX8i1VtcOlP2tn9yoOhUlouiJjk4L+1UwI6b5nF4lxpRqVND3fXr4CiuHu9I8znbxYegRu1DqHYuURB2w8yvzChDYmcJWacJGqsGzaD8x43lzNKDf0vMUjE/znnfFwdnVgqELXx0/Nx2TZWgrQZsc= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by SA1PR10MB5868.namprd10.prod.outlook.com (2603:10b6:806:22b::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6455.44; Mon, 12 Jun 2023 20:40:09 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::998f:d221:5fb6:c67d]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::998f:d221:5fb6:c67d%7]) with mapi id 15.20.6455.045; Mon, 12 Jun 2023 20:40:09 +0000 From: "Liam R. Howlett" To: Andrew Morton Cc: maple-tree@lists.infradead.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Peng Zhang , "Liam R. Howlett" Subject: [PATCH v2 04/16] mm: Change do_vmi_align_munmap() side tree index Date: Mon, 12 Jun 2023 16:39:41 -0400 Message-Id: <20230612203953.2093911-5-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230612203953.2093911-1-Liam.Howlett@oracle.com> References: <20230612203953.2093911-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0108.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:d7::7) To SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN6PR10MB3022:EE_|SA1PR10MB5868:EE_ X-MS-Office365-Filtering-Correlation-Id: 5c4baec0-ae91-4fd9-1aa9-08db6b853683 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: YQH3Ehb7vtadDOYcyTMovH/MdiRMdwbmdtCOnVaTUCmCuesx/8pcOBjkQFD45500e4ME4EeJvyjw3pfyT5LdCmYyTwZ5uI5tGMtRnLSJ+zg4xzPOLz/AaD1cFgLnmLewJHkKnFqIwoOkqynH1zEYAaI9x7jTb7Mfaf1zhunngGWh4ohZ89MT2elu/025j0LpIxGC/LjTO4KCmRBW6RUsJyA4eRdEwrv5NUXZrK1EqqJRpU5K/oyB+hsoyd/LWhlmr3nNmc7rZ+mDvQWsBYp4aCxppHyX5+S2hMdQia68aJUp4zrv8C8AiuGOt1aPaCh8i2GdWeYluf4jo9V3l9oeVDjjp5+ljGmrxMqN6tNB7BZy9jv5Oexyvpq/LtGEAewMC4NaGHd7U411Rh4R5S0P2M6XmZXFeoARD+c8A7jUkdzTn7GJ8PFMYuYVfNGJQ583fNMdl34OyNsHSCur5Q+Zo0t736NuQXxhXafJMZXB2UnOUDZA+fSAi+Ji93CjqoYVBCdYRNuIrvEkDBe0mJxlWS5bh6Tz7gCebp4ubJuxUxx6kQcCBnY1jXjx+Zfadlp4 X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3022.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(366004)(346002)(39860400002)(136003)(396003)(376002)(451199021)(8936002)(8676002)(5660300002)(4326008)(6916009)(66946007)(66476007)(66556008)(316002)(54906003)(2906002)(41300700001)(6666004)(478600001)(6486002)(6506007)(26005)(1076003)(107886003)(6512007)(83380400001)(186003)(36756003)(2616005)(86362001)(38100700002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?va1RbSbVHQ8QF3qKI2l1vhk6m92oClM3YapOLBycpvDAxJNGc4zRTZJJbEv4?= =?us-ascii?Q?75Jcy+8L6GB6KlP8uVz2uJ/dDZ55AajHc3Qo9u40LBvqWVBfk0z/c5BT9XJ3?= =?us-ascii?Q?4IhpiIqKHO6QXwmEMk2i390WY4tc9Tw6ZOybR5drQJO/8Yauek4XQdYskje7?= =?us-ascii?Q?xLWI9VzYRWiSz2jy2KwYp8uu4+HTuopT9MHMMBlxjzzHfu4yK6Zv6H2aTbGK?= =?us-ascii?Q?+Ss/FnQtKhkjSa76hhvW8X1q5zU+3Wlcpk/UcFnIUyIgpiAsx0474rLu/w7b?= =?us-ascii?Q?77kx2JKpnrsGEvZuWdgbRx3kjpK1Ne8BHv0t7sQuAnIoETF02BTb0UmPkl2Z?= =?us-ascii?Q?uTWP7R44kz/faBNrdPJ0KWVNYlC7auufoCp39v2SyV/r6C8wApYbH6p9JuXH?= =?us-ascii?Q?EnPl+b50Rq5L67fyfgTfCPZuiVFnkGV1ldM3TzAxwRAmwCLlRvMUV/Ov1WOm?= =?us-ascii?Q?5W4snVWpFjsCq2FMIFpbfOfQVsBYppW5W7q5BawcaNOsk3+/15CYWFA6V7pX?= =?us-ascii?Q?J4dZgJsa+HQS1NaFYn5B36fM9++vEJGVhJs+2k6KRLJbDKKCAzOq8iiUfGka?= =?us-ascii?Q?zyV7LQ7ZuE9NjO7+UW/O0bgU3yvVVVQHUjDPVGNGuNTnrAAfcCt5jwpNMWR+?= =?us-ascii?Q?ZHGLfpZHy32FUzS6Xvlc/2z3JbXs+OYghRtabK8yHGoFYIwRrr2KPftE47ij?= =?us-ascii?Q?yEu+AIP3anK9TrW3y2esxPOvktAy3iW5qFvnXWB41PcA2n+Ck9IcxCuFQc7z?= =?us-ascii?Q?7Ih2xHZkxsKoFP7jRTmHt0nvO1d/EpEGT3QSHH3D1eQHai6cW+u3Dqnowp14?= =?us-ascii?Q?Nu/DYlvOWUIdBpm9ir7H5q+sey5OPLqr3FPIzsSqlnYaW8+NIV1RErG5tRIu?= =?us-ascii?Q?30GzEGAP5s3DprsYkyDsTt37+97Uiu2LqhsuRwKU//STM4qBkujIOr9BTdH8?= =?us-ascii?Q?GGejira9jRVCOP6uPPP8R5mx2TXyMjjiU9eb6qWTdH+iS9Y+DhfKBMcqjRSS?= =?us-ascii?Q?LPqjManxgywc4RV1PCeEuTs6AMOTG5OnK9Vw4SfjMbzmognibyo4r6o9YSYi?= =?us-ascii?Q?Q2+jKG1XtrlTLNdP+dvxPEdqpzFZnLxWayTcmdUzQR+G1ZWMpve3ovyjbN6l?= =?us-ascii?Q?nMjjbs4PIgKaLkM7sW9aUkRtt3rjffEzTpe8WxtIKXE1jQcLZfAab/fR5AIu?= =?us-ascii?Q?G+M/ucd0KHZdkeTHPnU0SetpIxatxtkZiww0xbCnndP6LZXfZfofCp29QtHQ?= =?us-ascii?Q?IAW1vOukKySHTm5/4fgjwJ3YT7OZbd7FopocIPpOunZOrnDbvXIPLlm0DVAp?= =?us-ascii?Q?xYxInXft7tnSMFzFQt4LetVuE3M5z/puSQdc3pq5ruXe43fLe054lHVB2JEz?= =?us-ascii?Q?f9MOnGbpTe8psK3ZrSXzhgHI6jm/MkXGuWJcmKgLyz9C1rO6Mp3Q4YiN8/hF?= =?us-ascii?Q?7oIpnGqvvROVKboMp65GYHiOEeZ+JAweqyZFI58SsoD0uCIqOQpgqVvxvV0E?= =?us-ascii?Q?Z4UMTc1mJ9qWXBd4lK8tpQHfX4UdUGbvLnq0WiLqecaZh/2mCu1ovuL3M/1H?= =?us-ascii?Q?e2o1ceQIY6h8SjCV2ilD8Wah6v+N4Knx73hY97RGvpANnHzF9Tm4umgILyHm?= =?us-ascii?Q?ag=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: =?us-ascii?Q?K05mouawFNO4tQCn/8IPwE120feBDWozmQ4nWa7MqRzZf+yHsOlZjH6iEciW?= =?us-ascii?Q?dlXnrlZRgxsjxBrW15gxJ5Ra6VjUbrjtf53OrgxlmAhKUbSdcy/mQdQAAKoO?= =?us-ascii?Q?SN+1ixAHrMxbNLmJvAvHzEjUkwmx66+xlAcwzJiT/iSG+9Nj48emQGcN2yRX?= =?us-ascii?Q?ZDFE3r5C1Y059etM9PZ+Q9dg517nEcRo3QwXJ6/HBdCgRjQ0picbc63XvVrf?= =?us-ascii?Q?EAICGDVSgjai2d09UDoHvWm3T9hILtLAYvGT55V1E1nx324IDfRcVYmrgcTH?= =?us-ascii?Q?OqA4etdcGRaXyOzye2EOCvgaS8w4Sit8EcPjwpI/zs72hBe2b5Jrvfa42NC9?= =?us-ascii?Q?Ew6WZuUqFydtNVYgJ/uXEv0Pk2nIK9/4x9l5PU/O7PUSRC/yYi/ng8o3bmPz?= =?us-ascii?Q?T1uwaLC2NyijQYzIJuFKHgmRpZmedZr2RbeGNv2WwKx/7nDZOxMEUepo4csu?= =?us-ascii?Q?0HgdIlTP73MJd7ONeqXskKFA2J7sl2CQgzHo+54sVz/ptQ4gLv8EBreK1jkX?= =?us-ascii?Q?vmaiJKdNOEzWp9B+buzwQks+037jaKLHljXWmhVR5hULHUwvGhI/qU2P9QEg?= =?us-ascii?Q?Kkeu/ueXih6sxfERXfRadNntr2UVGj0tOxDDlN0KIBrXId64Vi9RXYsIg1eu?= =?us-ascii?Q?buGKYBmMCAFCUDo1SHuoNd1yVorcDVgyNZDsCi0jHw+XhJuahcLcRASoDC3L?= =?us-ascii?Q?uEKboOViRH/rBIZ1lRKgxrGyjP+gw6kNBvt1g9b62UejJy6tcSYmb9lmOleg?= =?us-ascii?Q?BRaBfDJ4YQRAl2QnrmD8hzEG4MRxJomCM1jeQfvhn8ZjMdou0ltrSwnhNAFj?= =?us-ascii?Q?IN/+5WqTf/NSxeTwCzjGChL2vI7gVmJ6xQAf203VgvnuTfGSM/uLPTWZugl9?= =?us-ascii?Q?rx0VO5W8WH+KcQpBNwBGSwWtnC1ap7btBnHD8gP6zOsqNPEJM3Bbt4RNHCrS?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5c4baec0-ae91-4fd9-1aa9-08db6b853683 X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Jun 2023 20:40:09.3831 (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: NcTFGSo8PWSCsG7wKfY5NYm7MrRQxlcy6+8aM+rnzRIsQXajvhuDNmhvf5TicqOOF5mGQkPMyPwoQIYjJT0/Mg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR10MB5868 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.957,Hydra:6.0.573,FMLib:17.11.176.26 definitions=2023-06-12_16,2023-06-12_02,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 bulkscore=0 mlxscore=0 spamscore=0 malwarescore=0 adultscore=0 phishscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2305260000 definitions=main-2306120176 X-Proofpoint-ORIG-GUID: oUOySkaVcwxAB0PYIPSN6hjvFas6u9US X-Proofpoint-GUID: oUOySkaVcwxAB0PYIPSN6hjvFas6u9US Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" The majority of the calls to munmap a VMA is for a single vma. The maple tree is able to store a single entry at 0, with a size of 1 as a pointer and avoid any allocations. Change do_vmi_align_munmap() to store the VMAs being munmap()'ed into a tree indexed by the count. This will leverage the ability to store the first entry without a node allocation. Storing the entries into a tree by the count and not the vma start and end means changing the functions which iterate over the entries. Update unmap_vmas() and free_pgtables() to take a maple state and a tree end address to support this functionality. Passing through the same maple state to unmap_vmas() and free_pgtables() means the state needs to be reset between calls. This happens in the static unmap_region() and exit_mmap(). Signed-off-by: Liam R. Howlett --- mm/internal.h | 8 ++++---- mm/memory.c | 19 +++++++++---------- mm/mmap.c | 41 ++++++++++++++++++++++++----------------- 3 files changed, 37 insertions(+), 31 deletions(-) diff --git a/mm/internal.h b/mm/internal.h index 9b665c4e5fc0..24437f11d3c2 100644 --- a/mm/internal.h +++ b/mm/internal.h @@ -103,7 +103,7 @@ bool __folio_end_writeback(struct folio *folio); void deactivate_file_folio(struct folio *folio); void folio_activate(struct folio *folio); =20 -void free_pgtables(struct mmu_gather *tlb, struct maple_tree *mt, +void free_pgtables(struct mmu_gather *tlb, struct ma_state *mas, struct vm_area_struct *start_vma, unsigned long floor, unsigned long ceiling, bool mm_wr_locked); void pmd_install(struct mm_struct *mm, pmd_t *pmd, pgtable_t *pte); @@ -1099,9 +1099,9 @@ static inline int vma_iter_store_gfp(struct vma_itera= tor *vmi, return 0; } =20 -void unmap_vmas(struct mmu_gather *tlb, struct maple_tree *mt, - struct vm_area_struct *vma, unsigned long start_addr, - unsigned long end_addr, bool mm_wr_locked); +void unmap_vmas(struct mmu_gather *tlb, struct ma_state *mas, + struct vm_area_struct *start_vma, unsigned long start, + unsigned long end, unsigned long tree_end, bool mm_wr_locked); =20 /* * VMA lock generalization diff --git a/mm/memory.c b/mm/memory.c index 8358f3b853f2..fa343b8dad4b 100644 --- a/mm/memory.c +++ b/mm/memory.c @@ -360,12 +360,10 @@ void free_pgd_range(struct mmu_gather *tlb, } while (pgd++, addr =3D next, addr !=3D end); } =20 -void free_pgtables(struct mmu_gather *tlb, struct maple_tree *mt, +void free_pgtables(struct mmu_gather *tlb, struct ma_state *mas, struct vm_area_struct *vma, unsigned long floor, unsigned long ceiling, bool mm_wr_locked) { - MA_STATE(mas, mt, vma->vm_end, vma->vm_end); - do { unsigned long addr =3D vma->vm_start; struct vm_area_struct *next; @@ -374,7 +372,7 @@ void free_pgtables(struct mmu_gather *tlb, struct maple= _tree *mt, * Note: USER_PGTABLES_CEILING may be passed as ceiling and may * be 0. This will underflow and is okay. */ - next =3D mas_find(&mas, ceiling - 1); + next =3D mas_find(mas, ceiling - 1); =20 /* * Hide vma from rmap and truncate_pagecache before freeing @@ -395,7 +393,7 @@ void free_pgtables(struct mmu_gather *tlb, struct maple= _tree *mt, while (next && next->vm_start <=3D vma->vm_end + PMD_SIZE && !is_vm_hugetlb_page(next)) { vma =3D next; - next =3D mas_find(&mas, ceiling - 1); + next =3D mas_find(mas, ceiling - 1); if (mm_wr_locked) vma_start_write(vma); unlink_anon_vmas(vma); @@ -1684,10 +1682,11 @@ static void unmap_single_vma(struct mmu_gather *tlb, /** * unmap_vmas - unmap a range of memory covered by a list of vma's * @tlb: address of the caller's struct mmu_gather - * @mt: the maple tree + * @mas: The maple state * @vma: the starting vma * @start_addr: virtual address at which to start unmapping * @end_addr: virtual address at which to end unmapping + * @tree_end: The end address to search in the maple tree * * Unmap all pages in the vma list. * @@ -1700,9 +1699,10 @@ static void unmap_single_vma(struct mmu_gather *tlb, * ensure that any thus-far unmapped pages are flushed before unmap_vmas() * drops the lock and schedules. */ -void unmap_vmas(struct mmu_gather *tlb, struct maple_tree *mt, +void unmap_vmas(struct mmu_gather *tlb, struct ma_state *mas, struct vm_area_struct *vma, unsigned long start_addr, - unsigned long end_addr, bool mm_wr_locked) + unsigned long end_addr, unsigned long tree_end, + bool mm_wr_locked) { struct mmu_notifier_range range; struct zap_details details =3D { @@ -1710,7 +1710,6 @@ void unmap_vmas(struct mmu_gather *tlb, struct maple_= tree *mt, /* Careful - we need to zap private pages too! */ .even_cows =3D true, }; - MA_STATE(mas, mt, vma->vm_end, vma->vm_end); =20 mmu_notifier_range_init(&range, MMU_NOTIFY_UNMAP, 0, vma->vm_mm, start_addr, end_addr); @@ -1718,7 +1717,7 @@ void unmap_vmas(struct mmu_gather *tlb, struct maple_= tree *mt, do { unmap_single_vma(tlb, vma, start_addr, end_addr, &details, mm_wr_locked); - } while ((vma =3D mas_find(&mas, end_addr - 1)) !=3D NULL); + } while ((vma =3D mas_find(mas, tree_end - 1)) !=3D NULL); mmu_notifier_invalidate_range_end(&range); } =20 diff --git a/mm/mmap.c b/mm/mmap.c index 1503a7bdb192..8e5563668b18 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -76,10 +76,10 @@ int mmap_rnd_compat_bits __read_mostly =3D CONFIG_ARCH_= MMAP_RND_COMPAT_BITS; static bool ignore_rlimit_data; core_param(ignore_rlimit_data, ignore_rlimit_data, bool, 0644); =20 -static void unmap_region(struct mm_struct *mm, struct maple_tree *mt, +static void unmap_region(struct mm_struct *mm, struct ma_state *mas, struct vm_area_struct *vma, struct vm_area_struct *prev, struct vm_area_struct *next, unsigned long start, - unsigned long end, bool mm_wr_locked); + unsigned long end, unsigned long tree_end, bool mm_wr_locked); =20 static pgprot_t vm_pgprot_modify(pgprot_t oldprot, unsigned long vm_flags) { @@ -2221,18 +2221,20 @@ static inline void remove_mt(struct mm_struct *mm, = struct ma_state *mas) * * Called with the mm semaphore held. */ -static void unmap_region(struct mm_struct *mm, struct maple_tree *mt, +static void unmap_region(struct mm_struct *mm, struct ma_state *mas, struct vm_area_struct *vma, struct vm_area_struct *prev, - struct vm_area_struct *next, - unsigned long start, unsigned long end, bool mm_wr_locked) + struct vm_area_struct *next, unsigned long start, + unsigned long end, unsigned long tree_end, bool mm_wr_locked) { struct mmu_gather tlb; + unsigned long mt_start =3D mas->index; =20 lru_add_drain(); tlb_gather_mmu(&tlb, mm); update_hiwater_rss(mm); - unmap_vmas(&tlb, mt, vma, start, end, mm_wr_locked); - free_pgtables(&tlb, mt, vma, prev ? prev->vm_end : FIRST_USER_ADDRESS, + unmap_vmas(&tlb, mas, vma, start, end, tree_end, mm_wr_locked); + mas_set(mas, mt_start); + free_pgtables(&tlb, mas, vma, prev ? prev->vm_end : FIRST_USER_ADDRESS, next ? next->vm_start : USER_PGTABLES_CEILING, mm_wr_locked); tlb_finish_mmu(&tlb); @@ -2338,7 +2340,6 @@ static inline int munmap_sidetree(struct vm_area_stru= ct *vma, struct ma_state *mas_detach) { vma_start_write(vma); - mas_set_range(mas_detach, vma->vm_start, vma->vm_end - 1); if (mas_store_gfp(mas_detach, vma, GFP_KERNEL)) return -ENOMEM; =20 @@ -2415,6 +2416,7 @@ do_vmi_align_munmap(struct vma_iterator *vmi, struct = vm_area_struct *vma, if (error) goto end_split_failed; } + mas_set(&mas_detach, count); error =3D munmap_sidetree(next, &mas_detach); if (error) goto munmap_sidetree_failed; @@ -2450,17 +2452,17 @@ do_vmi_align_munmap(struct vma_iterator *vmi, struc= t vm_area_struct *vma, #if defined(CONFIG_DEBUG_VM_MAPLE_TREE) /* Make sure no VMAs are about to be lost. */ { - MA_STATE(test, &mt_detach, start, end - 1); + MA_STATE(test, &mt_detach, 0, 0); struct vm_area_struct *vma_mas, *vma_test; int test_count =3D 0; =20 vma_iter_set(vmi, start); rcu_read_lock(); - vma_test =3D mas_find(&test, end - 1); + vma_test =3D mas_find(&test, count - 1); for_each_vma_range(*vmi, vma_mas, end) { BUG_ON(vma_mas !=3D vma_test); test_count++; - vma_test =3D mas_next(&test, end - 1); + vma_test =3D mas_next(&test, count - 1); } rcu_read_unlock(); BUG_ON(count !=3D test_count); @@ -2490,9 +2492,11 @@ do_vmi_align_munmap(struct vma_iterator *vmi, struct= vm_area_struct *vma, * We can free page tables without write-locking mmap_lock because VMAs * were isolated before we downgraded mmap_lock. */ - unmap_region(mm, &mt_detach, vma, prev, next, start, end, !downgrade); + mas_set(&mas_detach, 1); + unmap_region(mm, &mas_detach, vma, prev, next, start, end, count, + !downgrade); /* Statistics and freeing VMAs */ - mas_set(&mas_detach, start); + mas_set(&mas_detach, 0); remove_mt(mm, &mas_detach); __mt_destroy(&mt_detach); =20 @@ -2800,9 +2804,10 @@ unsigned long mmap_region(struct file *file, unsigne= d long addr, fput(vma->vm_file); vma->vm_file =3D NULL; =20 + vma_iter_set(&vmi, vma->vm_end); /* Undo any partial mapping done by a device driver. */ - unmap_region(mm, &mm->mm_mt, vma, prev, next, vma->vm_start, - vma->vm_end, true); + unmap_region(mm, &vmi.mas, vma, prev, next, vma->vm_start, + vma->vm_end, vma->vm_end, true); } if (file && (vm_flags & VM_SHARED)) mapping_unmap_writable(file->f_mapping); @@ -3131,7 +3136,7 @@ void exit_mmap(struct mm_struct *mm) tlb_gather_mmu_fullmm(&tlb, mm); /* update_hiwater_rss(mm) here? but nobody should be looking */ /* Use ULONG_MAX here to ensure all VMAs in the mm are unmapped */ - unmap_vmas(&tlb, &mm->mm_mt, vma, 0, ULONG_MAX, false); + unmap_vmas(&tlb, &mas, vma, 0, ULONG_MAX, ULONG_MAX, false); mmap_read_unlock(mm); =20 /* @@ -3141,7 +3146,8 @@ void exit_mmap(struct mm_struct *mm) set_bit(MMF_OOM_SKIP, &mm->flags); mmap_write_lock(mm); mt_clear_in_rcu(&mm->mm_mt); - free_pgtables(&tlb, &mm->mm_mt, vma, FIRST_USER_ADDRESS, + mas_set(&mas, vma->vm_end); + free_pgtables(&tlb, &mas, vma, FIRST_USER_ADDRESS, USER_PGTABLES_CEILING, true); tlb_finish_mmu(&tlb); =20 @@ -3150,6 +3156,7 @@ void exit_mmap(struct mm_struct *mm) * enabled, without holding any MM locks besides the unreachable * mmap_write_lock. */ + mas_set(&mas, vma->vm_end); do { if (vma->vm_flags & VM_ACCOUNT) nr_accounted +=3D vma_pages(vma); --=20 2.39.2 From nobody Sun Feb 8 06:04:58 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id D6711C7EE2F for ; Mon, 12 Jun 2023 20:41:13 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236005AbjFLUk6 (ORCPT ); Mon, 12 Jun 2023 16:40:58 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59656 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236433AbjFLUkg (ORCPT ); Mon, 12 Jun 2023 16:40:36 -0400 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C306E19B4 for ; Mon, 12 Jun 2023 13:40:28 -0700 (PDT) Received: from pps.filterd (m0246632.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 35CKNuv4031467; Mon, 12 Jun 2023 20:40:14 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2023-03-30; bh=0xbWsBeaPIGtK6mfcigFaEI5C+wIlDGWBRAKirJxgb4=; b=YWh9QtKre8qPF0kIOowyvx9CFrhhgmHxNHGpnZVxya0ddAbbQ9/UZzLYq1LcrhaafMGt ZprWvhn2RqWrkjYUyMYGuCJJJV8eW+FQeofTfqIUzlb/FkWbIThi6HhZgq+zRHs+WYa1 uEQCJzrUyfh3t5/HQf8OahGPppw/hdOwO6LG2wNZYo2KR93W6XzU5z837KTuYq0OVXkf WQlTvdOjLlITiZUiIIHzEre/vn4Vj0cMAR4sTIP7CnHpNwdlh5Z/LV/P7pCo6AUgvakD jhaFIdWMYAyBI/V8InyF9HIx9jHf8yJU/UQ8ACheEEn4l7/l3AXJy/TLfRV0wqKGiZh4 Lg== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3r4gstusxy-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 12 Jun 2023 20:40:14 +0000 Received: from pps.filterd (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 35CKZi76008325; Mon, 12 Jun 2023 20:40:13 GMT Received: from nam02-bn1-obe.outbound.protection.outlook.com (mail-bn1nam02lp2043.outbound.protection.outlook.com [104.47.51.43]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3r4fm9hddv-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 12 Jun 2023 20:40:13 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=NsXDpD1eLBOO/+idjkgk/aEkoingnUrzztS6QQ8pUW0Evz0pJGjic7mcFFxVmEpKHHSRZMyPzHmzW1aYwFVOl42qjuOTSqK4pyNf2yqg42IWj9cv9QsVwqarO8t7je+lpj3qvQJZB3n+hHqdyWhp5b5AM1uAqewcKoVEKlg4as6XvOuLXkIcGALSEWNmjPAjjYhGrNh31yNVF/esQQIzVVUIUwHFcSauA38Qtv6CRbthF/Nb7Qu7SIhgAf+K1HlXOK1Hto66tXSAFd+3SfnIpCfaF86SY3JwWL6FVS7k8/fmuYei7WWt2lXhErK6zKUyiPAvYQUhCLEWQBHJFy0GMA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=0xbWsBeaPIGtK6mfcigFaEI5C+wIlDGWBRAKirJxgb4=; b=HVYIEi3Sf5uyviIpNIoCB2CUNzvxH7uUGr1z4wU2tP1FKNZ6HVkXsLtbvui+tKye5QYOW0AQ/UatQq6pZtbxxIuCJvCm3yYfMFJvefFvvmC6TpzbsOA/xT7ZUbN5IwyWC0hBjlTMwYBLs+qLcPsTOmlVEhcCh6vjMQI1v2ZS8xs3GdoEUh7hR5o/B1LeGEq1J7rDqUx3i/7DMYmCwOsBqyTtpHysemMNtSO2YzLEcCw5veAi1Go3RCpuC/V2sJWVuA2E5b5mwM1WAnRQJ24ecGaZNqEokFlCWMCf0YFdr5Uo60Vq/jIJ+KCpTMIJh0XFDVKM3tkdGn0SCDSiGc920g== 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=0xbWsBeaPIGtK6mfcigFaEI5C+wIlDGWBRAKirJxgb4=; b=TSfws7VJM1KNcwM1INp8hR0FktpXXAGkliu0ZXogjCRBXj/eAMQOPehXCI6fOqugBiUOX5K9tQdnrUM7y3XKHCw84SF43TsBenWrRaFHDdSs824ImIVAGEfOOFwx0TA/+QBNr6CUIDIvkKVYOZJui1uoiBY1XQ+xfJkMLysCAJg= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by SA1PR10MB5868.namprd10.prod.outlook.com (2603:10b6:806:22b::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6455.44; Mon, 12 Jun 2023 20:40:11 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::998f:d221:5fb6:c67d]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::998f:d221:5fb6:c67d%7]) with mapi id 15.20.6455.045; Mon, 12 Jun 2023 20:40:11 +0000 From: "Liam R. Howlett" To: Andrew Morton Cc: maple-tree@lists.infradead.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Peng Zhang , "Liam R. Howlett" Subject: [PATCH v2 05/16] mm: Remove prev check from do_vmi_align_munmap() Date: Mon, 12 Jun 2023 16:39:42 -0400 Message-Id: <20230612203953.2093911-6-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230612203953.2093911-1-Liam.Howlett@oracle.com> References: <20230612203953.2093911-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0100.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:d7::21) To SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN6PR10MB3022:EE_|SA1PR10MB5868:EE_ X-MS-Office365-Filtering-Correlation-Id: 2f433b13-a517-48c2-50e4-08db6b853805 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: NygcBW41Wcss6CtZt3zJ5hH0Q6qZ+sPv4OZtwF0GWOQNh1YTJmFqIVwtHZkxX16gvxXyvkphAZgr/YYHK8II27JkiL289EHix+cIAAiJqn9zCPyx4NOxQQI6lC11xS3xrz4fboBkLs19ycMzLeqX43urnsAl71qZoeCKrqX0cCPyCLKSXkZ7PR7kTukVQdYt3IvqO6/ChLp2gxS2Pw1XREqcL1UhP3U4oLepD4scGMIakRmnpNPOL2CZccXodCFs1y8iljBwr+4amo+fnOQWK/tgswgxXzRE5YsJciZWBpaDSyZ7ZFu6eEFz6wgs84xgPdEXZ64Z0+bQEVd8V/LcmVcUxi8gsN/qN6OIE1a8oN77hA4gjy/+i1t4bUw+BhopHapWKdkp/Jfgvm/J2g5PWDZf2dSnIM4EuRfx3TRsdrVTcIkOe1EZdIEacToxtR8QgGzAFlg8pE8Oo3HGZlOBE7Jtu5v1+VTQgSno+HaReQgM9g++V5bIl2lUkm7n1kRyqlhhjn6sicSXEOmRvyN+0DgyerYOPenDA+FzEUPlSEhwtrMiQlpsquRHXDR182Q/ X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3022.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(366004)(346002)(39860400002)(136003)(396003)(376002)(451199021)(8936002)(8676002)(5660300002)(4326008)(6916009)(66946007)(66476007)(66556008)(316002)(54906003)(2906002)(41300700001)(4744005)(6666004)(478600001)(6486002)(6506007)(26005)(1076003)(107886003)(6512007)(83380400001)(186003)(36756003)(2616005)(86362001)(38100700002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?lPEARgMiYskREwXEaKVyX/5y+Ewj0cq4BjJjoE4X72eKcYy4d+DZHWM259Dr?= =?us-ascii?Q?ZB8U6CqfRpixWgzVrhz2+8FEVeAV8ghTKxWM5e4bwR21iQY3U2Cz7lkePDY/?= =?us-ascii?Q?M1lJrJ5hn7+pc2ZydwlIlPze29TkAVepP2nbE1ioRGBhTfqDsdAnzHzgBCV7?= =?us-ascii?Q?7sPo/0CxLMvzW0xCPSqvzh6vRpnzMFe2ZbbeKuidWTysxgLkYir9bKiRu4dY?= =?us-ascii?Q?9VFukdP5999txYKUG77SG3C/qfoMRSjQ/y2p55QMdJs3SDEBWmsHILOWFfSU?= =?us-ascii?Q?xivvJuZra+ye8Xb32f5UqBwPmUGkCoDb3GeAL3Zsa01O2k+eQpUXtKzyi8qR?= =?us-ascii?Q?qMg2V3gU7hsXcgCqEO+oCckVTMV0koPt0HU3Veb3So4R9V8X6SzIS6nKkTV/?= =?us-ascii?Q?rTCILvGijsN5EjEIVvK2eRB8WkKBtDQ1hfHZGo2AZFR2FKxkjz32T+mmsNv+?= =?us-ascii?Q?xDMCSbXP8GbTSjIezCA0ZtXAPtEYk+v2lsCi7v12UQgB55dUw9rLmzu2gxDy?= =?us-ascii?Q?Y9kTKSi4Q8X3/iDzonjQNmx/xyNETkpRNTDVlo1NR8YuBtLwCuDXm/admImt?= =?us-ascii?Q?BXKVDLgtOy56OpFDDwI5PuQSgtYhd5Dzf5dODsfOK+7gCF+FmQziFG3fWDFW?= =?us-ascii?Q?YvzctVZ9qw7pxlDYQI7r4Fl6jZvIrrPKCjhoPG2pyuO9pCThSfkHaRzyEshb?= =?us-ascii?Q?5scHspWS29ZmFosRbOUYRFbtux0O32Ks5liJg6FZstnIVY1yIms0bFJUzoHJ?= =?us-ascii?Q?835eEMRTDTXwvdCI2ulNgZMm37sGJ6l2CSm67r+vvXyWTgc218fSix4SU6Yd?= =?us-ascii?Q?ZszBA+2cXh6hMd0k9yagUX3glKqIZL3Nc4gS1nhDwKWVkmrUPxReqeoU8HfW?= =?us-ascii?Q?V1z8OWY9KlbibUU43wGeITn76H15izQKW2QStdA3qO6EG3r5CaYEJog8oQmb?= =?us-ascii?Q?uwnRio14wfQVwWCzV80x7OD85wjOOrVyvObLmNabwzzFdAoGQRhUKD5q32B3?= =?us-ascii?Q?DMPwzhEuGRbu08RYnZAef3NZNkLhElFM78Jk/BfmO8KowJn8NsZvyhiPnKKC?= =?us-ascii?Q?WWnfMrH+vu1fA0tkdFJl5RqJ61utbrRliovQWu78EzVIv7LhLWVq6NiO2dB2?= =?us-ascii?Q?EJMW5+rWz34j2qoay4rNeWTP+QGu2tQf0eJD3KU3+P/CJb6qSk2qQEFsTE+X?= =?us-ascii?Q?z8QSHAJTp5DB7vUzSqhTh04bN+Hb70IpfwBB16EnzpYDczHv2udxLkGEHNvA?= =?us-ascii?Q?SCE19LtQKttYJ9JPa1r9qyQE9fWt0N5TpCC3ryVpEiePZ9bzUAAMhqCp807e?= =?us-ascii?Q?FlIouT5uiqUdMFP9dglw/nY+HE776fvSE/HyUzIheZLAn3ax6vCOHom2Iuqp?= =?us-ascii?Q?KgHHnA8jQv7O7bz5MGryjtR9/ybvPSsY5k8tdqCudCVI9IPd/qmr0q7H5lCL?= =?us-ascii?Q?Y9F3Z+PTPvD2tgd3gnt1pPz49VZhblDdpmCCSRKLsq+JU4TQzy10whY8Fjlh?= =?us-ascii?Q?3FVeV8C0fynHt2wKKSDwkqU/9aQtUo+h5faea62Kv+coJUAjclq/IwYMWHmR?= =?us-ascii?Q?F2ECjjxg6yFRrUqSb5ifLWVdzOy8aNsk48vzwmxB/w8PEVv+YPMRgeFfQwCd?= =?us-ascii?Q?dw=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: =?us-ascii?Q?fL4MfQHj4JEg4l3x8P0JR3X0s2sSuPG+K25N46NCKcN0LU5y8oBjp3e30Wsh?= =?us-ascii?Q?wpLEIvH0OAPBJXEVAbmkSZHYOU5UQ7t8QTa8diXvC8VC6YLcBicB1iso4GVW?= =?us-ascii?Q?mTP7HkPeNcdHtQ1H4eRk312U4gRuokfO1fHnuxM0b5Ki4L0VZGAmG+BHN19/?= =?us-ascii?Q?0VqJ2kPmP3NdsvaM8Pirqfoi9cH/R7aR4poEiErAKUuZI6XVnOUezIWW/J5t?= =?us-ascii?Q?OQGBiItyBI98OnpWpOfA1HeaxGieRXjvuzbkesNsiN6VJRpNFwqzIEZIg8gJ?= =?us-ascii?Q?nPEDbASXG96Kuseqq9v88vBXWMkImmGpDKjul3ui4rgVxPkO34I4OMcdQtDB?= =?us-ascii?Q?UF37H0cXgQyOzOkIsmE+aPQcpuv/ts4dlLX6DOgUWlCSrpvkePCQ6cBRdzp1?= =?us-ascii?Q?RUXiNRAM0yzBLjSJUCntCnr6zbSJLIPeLexN9NktG8MdpiDSFv5gBx8CUICt?= =?us-ascii?Q?O+VFN3zHFlfbJRyELE+3NczPVnpBfMaHSln4HhUANgtgmFAwroQfQYIxZe0r?= =?us-ascii?Q?mUE30MQJl8qGT/duDSJmiItcIcnCWtyTc1BX+X8iaEadQT5dC/L2eF9Agw+G?= =?us-ascii?Q?Q+07FumSElIbMb18FCDrgvQRJKpAhqzSNIdth4CqO/GozK+FbVsp0wO9Yq3m?= =?us-ascii?Q?6u1+lz0P25Uzc65gahqcKOznY/3nhQpNtiwMTtWGrJQM0laq7LS0KAbmOLtR?= =?us-ascii?Q?JoM5pxkeET8lw7FD/zU5Q0Fg30W7EOMANio7XkjWrSdyfXDRGv4+gLoaLoLK?= =?us-ascii?Q?nVdAccCfa50ZyQOzi6f8dvqHugBJnU8xrVwfm9KoBwShTDlWqO6TJpIWpLu+?= =?us-ascii?Q?8Gf+/Zru/2Z989qaKwarQs4xWd4GoPnwLl4KnwEKtqTJgnypVrAmzrG+LhLp?= =?us-ascii?Q?u2aK4bwr5EpoRaFf9haklzH3I0Mk1RNji8fm+Ccm+pbUsvd9AR+ijdI8HfRY?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2f433b13-a517-48c2-50e4-08db6b853805 X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Jun 2023 20:40:11.8479 (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: sOVlukJSHsshqXcs09W5deG4UmopUbsbyViZxh6kTrTh4SserryFp5re8vvtL92PxfpG6H6gAvzcx+CJMf5qWQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR10MB5868 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.957,Hydra:6.0.573,FMLib:17.11.176.26 definitions=2023-06-12_16,2023-06-12_02,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 phishscore=0 malwarescore=0 mlxscore=0 adultscore=0 bulkscore=0 spamscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2305260000 definitions=main-2306120176 X-Proofpoint-GUID: gTK6XWWAqcaBl5Nssr89L6WX2KKfrOCS X-Proofpoint-ORIG-GUID: gTK6XWWAqcaBl5Nssr89L6WX2KKfrOCS Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" If the prev does not exist, the vma iterator will be set to MAS_NONE, which will be treated as a MAS_START when the mas_next or mas_find is used. In this case, the next caller will be the vma iterator, which uses mas_find() under the hood and will now do what the user expects. Signed-off-by: Liam R. Howlett --- mm/mmap.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/mm/mmap.c b/mm/mmap.c index 8e5563668b18..fd3f505b40cc 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -2402,8 +2402,6 @@ do_vmi_align_munmap(struct vma_iterator *vmi, struct = vm_area_struct *vma, } =20 prev =3D vma_prev(vmi); - if (unlikely((!prev))) - vma_iter_set(vmi, start); =20 /* * Detach a range of VMAs from the mm. Using next as a temp variable as --=20 2.39.2 From nobody Sun Feb 8 06:04:58 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0DCF8C88CB2 for ; Mon, 12 Jun 2023 20:41:14 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237022AbjFLUlJ (ORCPT ); Mon, 12 Jun 2023 16:41:09 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59732 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229949AbjFLUkl (ORCPT ); Mon, 12 Jun 2023 16:40:41 -0400 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C5B09170E for ; Mon, 12 Jun 2023 13:40:35 -0700 (PDT) Received: from pps.filterd (m0333521.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 35CKO0Kh029029; Mon, 12 Jun 2023 20:40:17 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2023-03-30; bh=1prjPOCurqnWH4L6WzWAHY38RL29aaMdFp7clnJuEH4=; b=p3GpDCa/k56YDHOiV7cMF5GbsyCGzTh8yocigOFRfK/p6WjUqZo2vMqdBfLmRO4e3Uog UyYGGamwY7K9BorOFQGpA45gSHATG4HuiSfGU/pzxgKMObgZZh5mc9jBeLeXjezj93/9 gjOV+JeDUKUisWVRopKdes+/3RjEvtf3fdJxrs69dzvVvHY4XllUAe67Mr1lbfVEPQWS /CCev1SFNCYxioNo83Z/o3K8Ezr6NLJOlikXhbCLs1Z+UC5/007Hl24O8ypcAdaxhUQm Bt2poh7ecsozBgjR3NK/yoNzWYsjIJPNI4uzKvPXm/eRMLJ0tEWG1ITIFC9WlpVXZrmq Ww== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3r4g3bkxa9-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 12 Jun 2023 20:40:17 +0000 Received: from pps.filterd (phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 35CJC1GE017781; Mon, 12 Jun 2023 20:40:16 GMT Received: from nam02-bn1-obe.outbound.protection.outlook.com (mail-bn1nam02lp2049.outbound.protection.outlook.com [104.47.51.49]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3r4fm313vj-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 12 Jun 2023 20:40:16 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ckwOPp+rrVKNVHhkbwbbYK8SPI3NOEpsSXbNIAFKmmioiwfSesJKWjdBMNYTO5E9V6nDfxRo86d280s3sMWXns0k6swJNnOq8Tgup7h5sy+heEErFn6yke6Dd1EfE/YXxy4HmSp6jOQ5DaB2vV8cwfHWKIJuqWZmqTKxi3nfCzR+O5AGujvYfApU84wZtu1kov/iwsU3TTZg4sjoMwT4fYFWNqi4PC/FvjqPymKZefepn6dVDOuYdGdcxP0Ee9nu2wgR/wzy+xDte07nyWj7VvA/kovvhsWLYoDlNNd+Q6hd6IPbFiKbsk2yIqJLcwJv1Z+QqORpP7/vUaypD28Zaw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=1prjPOCurqnWH4L6WzWAHY38RL29aaMdFp7clnJuEH4=; b=U7aO4PSRoSmlTQjmPRflNfuUMquui3KTErMyhlnW9L6yzA+6FOiOr/DqImQNrnaKYoL8v8vkUEh2W4prJPe2BtdgOEK7jp/h0kpdYEph5YMEEcgNQCmKAaqFZD4SfhqPqNZSCDC0mVOcXmGJ6jdfhV34CPhA44qXM8YnSrXEKhcm/noHKhT/Ndd1qIljrv0CznQP29WM3PBZmrjb8gW/gC3LbU9castXgzTApUE1TWTnyRkNgaOn+F08/43dLxZnB6fU4u3xfkTCYM2e4S8oVFfUj3qbmZUXN6J36K4Fq/pR5dJEhYFUIaeo+VYsEhsaaxn4O+QjKNzrkiOEUUbnlg== 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=1prjPOCurqnWH4L6WzWAHY38RL29aaMdFp7clnJuEH4=; b=UAnjf6G7TrPWj8ln0cELu4fOS5Udg90RClOLcy4y1VffQOfeujLTHJO/6vs/Uw/y8bOX/jS3PjjBvUG1ycqITNlXTMEI49aMXq3Ve3aVw/dtRKT74s6J4QZnBDG/QHvtRFGHq2BcHFVkcY9kNTukUuzPvBpiu29B2Bqp4koQp1M= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by SA1PR10MB5868.namprd10.prod.outlook.com (2603:10b6:806:22b::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6455.44; Mon, 12 Jun 2023 20:40:14 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::998f:d221:5fb6:c67d]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::998f:d221:5fb6:c67d%7]) with mapi id 15.20.6455.045; Mon, 12 Jun 2023 20:40:14 +0000 From: "Liam R. Howlett" To: Andrew Morton Cc: maple-tree@lists.infradead.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Peng Zhang , "Liam R. Howlett" Subject: [PATCH v2 06/16] maple_tree: Introduce __mas_set_range() Date: Mon, 12 Jun 2023 16:39:43 -0400 Message-Id: <20230612203953.2093911-7-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230612203953.2093911-1-Liam.Howlett@oracle.com> References: <20230612203953.2093911-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4P288CA0039.CANP288.PROD.OUTLOOK.COM (2603:10b6:b01:d3::24) To SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN6PR10MB3022:EE_|SA1PR10MB5868:EE_ X-MS-Office365-Filtering-Correlation-Id: 57b4764d-038e-47d5-fdf1-08db6b85397d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Ay1EP2fPCKOJyBkgLP2tJ8FujDl3HFR2f5q8eyJB6KCkxxmezqRtgfumAOraShnZyT24gpK9RZ/5W59/AKxnXNI6PLVNFuBNV4DW+/Ch6u8BYau8cMeYVMSMIJeV8m1IuxZiGOA1MpCSHHDNWub64oWYxdfX5dB65x8iLv9N8PYqIo+f35RKHAtm2unKzgvuVk3kYmy9UWsIJorGoiYcDgElIVZtLxGxsAtuig1u56lgvQfUKAhLUzGiFITRb0x0zuVPSYWVTOKMGUiQb4XE4oYOA+79U6a1qxFMwU3M+zhiBDruOO1HFqpCtrcdPhDHxLRoHbAEi0R3Ufm8TKPvpPAtFMPsD1PPkz/CggKfc2XIKSHZ9TiqE7DjXg7RFAXveL8xClytyAHmIjR3Tx8TiOyldtkKn2m8Yu1IKtTm2ZMr9d1rBj+C2CiHvc7au2Ng4kn90SFwMV06Yaj5iovEdMO4mIfa/MWpGUi5OgCkYm+EIxh4Adp0VIgL9IW2kHS6oNDkKG+JfnWqyMUPHfaUHDl4zL8yriJK/qs+ttHKrqchNszql9Q9HMVdf7bug233 X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3022.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(366004)(346002)(39860400002)(136003)(396003)(376002)(451199021)(8936002)(8676002)(5660300002)(4326008)(6916009)(66946007)(66476007)(66556008)(316002)(54906003)(2906002)(41300700001)(6666004)(478600001)(6486002)(6506007)(26005)(1076003)(107886003)(6512007)(83380400001)(186003)(36756003)(2616005)(86362001)(38100700002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?KzGCn9CTDO4urX3FRQIXCLJdJvkG70PSKpRjkTl1GtjG94QY3uxsJdrAEiuB?= =?us-ascii?Q?iCZT6cGuX22vzZefkmtMuL/STH+bvz3bkz2OhcKroh8yztnJtAdqgSbli0Nq?= =?us-ascii?Q?JdPdoN11M/vC9DlvyjzABAWcYdLgfg11PXHLaVV1eIx8J23qK+qgpNYaW6uf?= =?us-ascii?Q?0JWAaHdd140ALDemI4zP5QOeOq7HXhGrVDLKwjPgresjxx0PQVR6Sohw3EYp?= =?us-ascii?Q?ojbZS8ke5/W9xg3ooSX4PvVU0DPdZ97A2rd7Y21NF7QxN50rCngJeDwXqI8/?= =?us-ascii?Q?vBdNRDcu6TqIGgK7zQ20dtiRvBZHv+cLc41SytOhkM2EOKTb9/aNCg+Osiss?= =?us-ascii?Q?aTxpF7uX5WHKTFph/4LVnmD7HE49sQ2GD7FZu4CENWYH8DOKznbIbVFx/0Dv?= =?us-ascii?Q?hSBCOZunadbjtoCC4VA3/C2rPxbS1jD/eceFN8CWq1JFBy+p6fMQ0sWBVpT0?= =?us-ascii?Q?Tbe7jnO2QAUHLwFpSA6s3bAOsBuCvubQRtH4eHaskvriKeZjTuTjQlQi19Z/?= =?us-ascii?Q?uhshVF6Hm7zn25KoiSvnfbW5n6NSc+iwWYalR9rqswnKhlKm8OYFUIq7tna1?= =?us-ascii?Q?J0Zx13BTTB+lBPTan6VL30FqqIrp3fgcS6sVnBBu1gAF0XGKnSH16yDzE0NY?= =?us-ascii?Q?z9fY1Kow8dDX45S6412oZqXiI5easX1khD/dS+kXSGtfPYY2rh2zVuzt1Co8?= =?us-ascii?Q?wRUpxgS0dsrmsIPU32MZKYVgB8UZLizV0mih/EIBWLfYLiC0uFdCr4/VnmIB?= =?us-ascii?Q?SxK4O3h5jjSAf6+yxXN+3DW07OOwnfZVz9qFK6AZz5Kdi4PP/OewmWndZ8Km?= =?us-ascii?Q?FM5rxz0GrgulVrA772naMRYvxMmPLhe+lMP/cie6RXC7XB1PCAG1G/mEaZOq?= =?us-ascii?Q?/vUbsi9oJERqVX0D6DxdUVzbVL6EkC/vEQRA0QXMQEteQTawuVQbtNGclqq2?= =?us-ascii?Q?4CPTQ9flC7pb+mfNw92XVM1nZexIsycNqIdB44MNwPC/pxiLTv7k8Cnkx3ka?= =?us-ascii?Q?m2SXr8+paRmFNdgdMk8/CDFPkKlatWZ2crIbEVpIHVD4P9U8ImFbED4g5Eyw?= =?us-ascii?Q?sfsE90vTqGzqBWm90om4Y2mNJ6cojoNyPmEPbfM8cpbNoikzHeuMnLnrqX5/?= =?us-ascii?Q?4Wz1RMgFwXgQMIV2LCJ8qwjyRTXVCcApQlQgUSntZTLwS0bMnBLJcgkLRy+7?= =?us-ascii?Q?HdJl+WnGnz+mqj0BkjPtYG5lu9+UrajnvsjbuK+8U81rr6oTeyULmvj9RnBF?= =?us-ascii?Q?OdHUhrNZBvyCsXHJNVdFI7DGl884SdL5ZX13OpfPAmkpeJYGChjEHUjTDKlF?= =?us-ascii?Q?S6DhZ92aZs2xTkEn0CJ1ZA0Tn4zBbRuAELC7FFUWEZXjHxabrb+yIIktN7DU?= =?us-ascii?Q?ZqEID1hXfKT+lAMsUwqqD3VS3LR/xpViuvQNeOab6/V7+mc7o8AiDO9If+BL?= =?us-ascii?Q?0m7gfuZ8k2SWosFlRLGuN9Mu+qkMhWVQtsBEv+0XbSyDCKlO9lvddOdZ3piy?= =?us-ascii?Q?dn8sJKjdIhpa4a3hDouUdXIrWyIRVZxHbXeVZJsW+5EXRjX08SsrfPsJxpBr?= =?us-ascii?Q?4vcJ2row9ih49VIzbxnd8snZp/5vkjjxOhjDtw4FMwdCFMS2btku7LTsaDHB?= =?us-ascii?Q?jA=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: =?us-ascii?Q?PdAVC261onP7BcS05T3eNSaLCtJJegzuBXdX1kyBt2qAjPBMMlcLiFxqql79?= =?us-ascii?Q?gOt3iBMqWvHdDCKYmxq1N0QNfAkWPy2S2LYYLPhx55Dhw89/lOZKZ+5dDg6W?= =?us-ascii?Q?lBfO+2Xh/VJR/ZKPMpVj2on99hArjmN3L8dTT/CPF35x9UZFgRkTe7Phi4Uw?= =?us-ascii?Q?CZO13RBdsXRUWtYc46Ncc1rvMX52q3uGQ4AKNNAlrjE1H7tIoSIO3O1H9C73?= =?us-ascii?Q?e8Ob6Froybly03FIom+VNP7viao7+WfuPhL/FrhS4W4CGs4aYb9uc41Ejdw+?= =?us-ascii?Q?0759v5svVImGdqc7aUSg8eHUnA+tYgwf4FYaTeoY/C9wvnTWmTZIDLHtC+sa?= =?us-ascii?Q?AWPRya/LpTD23U9PGDY4+EyRAOf3bZU57d+zd23N/j8gvwld16F8qYXdpHjM?= =?us-ascii?Q?qcXovuUjNpHrneuG8V7jDVBQ6Pc3WDKPHmpLvZrTkIzjo4d8MezeofsJy3dT?= =?us-ascii?Q?ciku3hSuIEaX0HjeAewz2GRoxetF1Epcmp2r7pY5dWGqYKaLWEcF7oP9+9n7?= =?us-ascii?Q?LheeH0c0sc7PP7w7B5K/Pum61YPsD+aOZTVJcyT8JISXRGWXKa/wGrM1fykh?= =?us-ascii?Q?hVHQGX+m7ZsP3giLDIrRSATAaM9LhY4AYUoP0+7NeU9aMk2mWXfI3dpau6mb?= =?us-ascii?Q?aiM7vIA1yauNNY4XrruZQdMwIfTmx+tkfxCmZ9HQcfZAkss0xQw5s0MIkieO?= =?us-ascii?Q?K4ScJuykP3FZFUd8FlUTlKVN0CwzBeQ8whr2K1J6HLArkRRYkCjA0hyx+oQx?= =?us-ascii?Q?W9vOhUe236uz19Uc5bpC3D7px26G81WN/k4fYWzcuwLQwpKNFXRjUWXvkIFZ?= =?us-ascii?Q?GAcM+txhOrlXgzztN/JCi785l7EdAmcBbgSAkCEEPm09FZvEaZUOPyQPv3hT?= =?us-ascii?Q?mLn5Uh8LtREvB3WmG6GfQB97S2OjsuDejJQfM9FRLd1VSY6bUq1BMCc8oA6L?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 57b4764d-038e-47d5-fdf1-08db6b85397d X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Jun 2023 20:40:14.3235 (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: D7zfx+g3YsD0fZUgxek1cnSYpd3dSJ7oep46Z8fFaxDInB/1xkHrfQuhYCkdNuYEhCH1VjFO106ssrFSJhqggg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR10MB5868 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.957,Hydra:6.0.573,FMLib:17.11.176.26 definitions=2023-06-12_16,2023-06-12_02,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 malwarescore=0 suspectscore=0 mlxlogscore=999 mlxscore=0 phishscore=0 spamscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2305260000 definitions=main-2306120176 X-Proofpoint-ORIG-GUID: QViMhexuKJwuYAl0IJkZO2TvD0jIjTc6 X-Proofpoint-GUID: QViMhexuKJwuYAl0IJkZO2TvD0jIjTc6 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" mas_set_range() resets the node to MAS_START, which will cause a re-walk of the tree to the range. This is unnecessary when the maple state is already at the correct location of the write. Add a function that only sets the range to avoid unnecessary re-walking of the tree. Signed-off-by: Liam R. Howlett --- include/linux/maple_tree.h | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/include/linux/maple_tree.h b/include/linux/maple_tree.h index 295548cca8b3..ed50d8f459e6 100644 --- a/include/linux/maple_tree.h +++ b/include/linux/maple_tree.h @@ -531,6 +531,22 @@ static inline void mas_reset(struct ma_state *mas) */ #define mas_for_each(__mas, __entry, __max) \ while (((__entry) =3D mas_find((__mas), (__max))) !=3D NULL) +/** + * __mas_set_range() - Set up Maple Tree operation state to a sub-range of= the + * current location. + * @mas: Maple Tree operation state. + * @start: New start of range in the Maple Tree. + * @last: New end of range in the Maple Tree. + * + * set the internal maple state values to a sub-range. + * Please use mas_set_range() if you do not know where you are in the tree. + */ +static inline void __mas_set_range(struct ma_state *mas, unsigned long sta= rt, + unsigned long last) +{ + mas->index =3D start; + mas->last =3D last; +} =20 /** * mas_set_range() - Set up Maple Tree operation state for a different ind= ex. @@ -545,9 +561,8 @@ static inline void mas_reset(struct ma_state *mas) static inline void mas_set_range(struct ma_state *mas, unsigned long start, unsigned lon= g last) { - mas->index =3D start; - mas->last =3D last; - mas->node =3D MAS_START; + __mas_set_range(mas, start, last); + mas->node =3D MAS_START; } =20 /** --=20 2.39.2 From nobody Sun Feb 8 06:04:58 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id EA825C7EE43 for ; Mon, 12 Jun 2023 20:41:45 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232742AbjFLUlV (ORCPT ); Mon, 12 Jun 2023 16:41:21 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59632 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233070AbjFLUkp (ORCPT ); Mon, 12 Jun 2023 16:40:45 -0400 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 36A38E54 for ; Mon, 12 Jun 2023 13:40:41 -0700 (PDT) Received: from pps.filterd (m0246627.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 35CKOQtT003957; Mon, 12 Jun 2023 20:40:20 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2023-03-30; bh=0QsGUeSC8PoHDvjhcOgTqj5kZeGqMxkW78nbUd0JW7g=; b=yFkLpVjmpeFyAtGtFkwT1a9KXx87493sNzLCV4Sd1ewYYqNofgtBozTilp6fBszf/0C7 mOKC6BupJpB2VXmJ9rpyDB+tTrpbBQxk/74hCawJKxFpGEErqD729Tb/7Z2O8nN9WifW uU9VXK9hFcjwN27aLrtEHo0GlWC8elMUZg+lwTBzdLslmNNxhqimmXADxpldhbnwh70R 70oMJ3oYV1DMZdylZBzn7WEFeIEIV4ZpIewZ6xposdUa7S4lHOSlZV76yx82+joVWv3H x4sfVXZygcksa5Br5LK/MiyCvtpJrCF/bQNUpgyrqntgl2xLyfDEqkG+UkT0S4H/ihZf 8A== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3r4fs1uxa7-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 12 Jun 2023 20:40:20 +0000 Received: from pps.filterd (iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 35CKZPxi008941; Mon, 12 Jun 2023 20:40:19 GMT Received: from nam02-bn1-obe.outbound.protection.outlook.com (mail-bn1nam02lp2045.outbound.protection.outlook.com [104.47.51.45]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3r4fm3hf7y-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 12 Jun 2023 20:40:18 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=O0P7E79rwmAdL1sZFZb8mW0RxW9udSDv+LV5gy0KBo+yxqAXxwaiYgKFSm29fDVYTI6J3O0qHGQMmofTmy3ZJOQEnSEmZRk7hxfV1YbShXxIhffI40ygy45nOe5uiLagO/9ANsWwKYnlOGucd08UOggxa0cERtK4+y9/IfRiKWYOVxpke5PxznPPGRogVHuKmZ0f+mEJyPUsA5L8SW3FvadXflYW0VnKXhkCca5BDeVOmn6p+mkChQv0eAiQs9wI1X7GdPiawWgIqy1iuJZ0aRkr+NKpVdxFrxJJKuKBM/FJtysFnSTMFy4UjWU2mNLhGdBGB2Bn+oRjqWO5yGRH2g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=0QsGUeSC8PoHDvjhcOgTqj5kZeGqMxkW78nbUd0JW7g=; b=PN6BRqk0UhU6E9tRic7PKGgvfZCcP0zIsVR64OvftBf+qiQUDSWMV3X+bdBYto9+xYmapPG9SpvPFlo7M69ERoOCRBAV9AiVRMV5vPxRFPKCM1cbR9TwhZSTxUH4Pqa8T1MsygHH5rwQfp0JAGLKwZYG0lPgh4V6pCcecjfou8o9ma5uhsRkoLUQrP/yTAk12X6q4aSyZ+oHKF4OBO5XMuPxCJXaexrd9Ngu50aebUpThj2wQskrAkXlgThf5cJ5jNf82ma/MbEDci0t29wPMtFdj8L1HDYsLKBThDnamUUV7BuaZb5E9JNzNdC7t6UquwzwhAwK9bX2ZIAFIpxDOA== 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=0QsGUeSC8PoHDvjhcOgTqj5kZeGqMxkW78nbUd0JW7g=; b=sTWDow2CVvoldR7CJo3/r8Pe9cCoaEzx1VfEJ6wfzdwEaeYTOoLUNHRQ8+2LZo/s2lxRg6JHui8MXDKqArNoBtTIAjnGQzhpA3a08wl5KFbwbqSY/6HSdsOTLQ4sX37F2soYmZlClXZo5eW7ghgA+DR6TQ4slrqWoH9a6vWa57o= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by SA1PR10MB5868.namprd10.prod.outlook.com (2603:10b6:806:22b::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6455.44; Mon, 12 Jun 2023 20:40:17 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::998f:d221:5fb6:c67d]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::998f:d221:5fb6:c67d%7]) with mapi id 15.20.6455.045; Mon, 12 Jun 2023 20:40:17 +0000 From: "Liam R. Howlett" To: Andrew Morton Cc: maple-tree@lists.infradead.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Peng Zhang , "Liam R. Howlett" Subject: [PATCH v2 07/16] mm: Remove re-walk from mmap_region() Date: Mon, 12 Jun 2023 16:39:44 -0400 Message-Id: <20230612203953.2093911-8-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230612203953.2093911-1-Liam.Howlett@oracle.com> References: <20230612203953.2093911-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0123.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:d5::26) To SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN6PR10MB3022:EE_|SA1PR10MB5868:EE_ X-MS-Office365-Filtering-Correlation-Id: bb06d531-bedc-453e-e26f-08db6b853b2f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: NdU7jP74WRqKJNTDI59tzfberdQwwUYcA2ismbAoht3v0sOOtrTK/Dq4HsLSaTeK44b73gj/sekCTlInkW1G26nY4LK8o8QD9oCMprcWqXF5ydZLTGq4u4yrsIJHcftUhOA5HYdhx/A2pgtyHVE93NXUr2YuzAaOV/ZVci7VmYS68zZ1/AjE2uLNsoTxWHTIX7DpUhPUH7PsGzqlhHIG4NqF3CkpepI/Nd54pOK5AMzv7CHFD7r4VgnlS+7o4pBTyq54KC51+QsxbjoRKf5lVGhlqMN9ZL2QQmH5dim+ZYaimpQ9nWYzbF1j9kI6V2KTkIlCnOCPaurXA+O2pAMeEB2kixJ+jSCROwAh9imVovoH0BYqdZ2d2zQy8CRLtRDie8dHTFTWvRrFxHh+R24+BE0p3gps/wq8YekCx3GVUIGUzI+Whiok5DDdxpQ6Ia/0W17iZrP/kn3O4dNANlCAaZgMvqdvrdcvBmSLjIjaAKRK80CRghj8jHZmKtyUbNPC2iDJpXfn2xkqkMtK5qj6Pg0NoOFc9kAlCz2PUkY+nTZ5uZUluULUZrl/2zLsluOZ X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3022.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(366004)(346002)(39860400002)(136003)(396003)(376002)(451199021)(8936002)(8676002)(5660300002)(4326008)(6916009)(66946007)(66476007)(66556008)(316002)(54906003)(2906002)(41300700001)(6666004)(478600001)(6486002)(6506007)(26005)(1076003)(107886003)(6512007)(83380400001)(186003)(36756003)(2616005)(86362001)(38100700002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?UzikNdRC7YheZf+k+2UjbzIkGxwrU6xmUAb+lxhuJLF97p6W416NA3Dm1RF3?= =?us-ascii?Q?z7LuBjIdiAPNj/PilO57uJV448NYQQp6CIA/98IiTkElg63ur+d5pL21oq7B?= =?us-ascii?Q?XJ3aMTlyx5eImx55cVLwGPHwlGwUxfv4xRPaqd5Q5BQm/25HhBw+UdwLOgWD?= =?us-ascii?Q?0wTvpBZAJd152aMjnC6qp1/pSAX4g50o5rBfHghuSAP4eYWmxAu46eg3eVjQ?= =?us-ascii?Q?lhncXNFXCA4UL8OpSbkuNcZMtb8GoWTZ6uU+RtDz1NQf0FGYjmLiLhVQrZW1?= =?us-ascii?Q?hlM7u9vaW3Ud+X1PdcnmBIRLFHEGNLO09ky+4SHBM6EZBf753GSbxB7FWrpO?= =?us-ascii?Q?Ef6cKnFUVU5QS3ANE0oKlZ4MtnqPrtKrLYpIYUcaycqrSc3dpF/2Ehf04HFt?= =?us-ascii?Q?hZ64seYvUPeyMJ6GNCz4/Ih3Ct+AowVwzq5A41CNI1Cp6/hphCZqQoZUcT3T?= =?us-ascii?Q?DaF6a3IMabMoJn15njmnp7MczC/mr35PUWUkPCKCjtoDjRqnRTa8m21gFdnB?= =?us-ascii?Q?oeHt7p9X2jDX2+CEr63Bf/aYiC7A9xlCFeBmKbjGh2d6sjs6dtrhqGyZOpY6?= =?us-ascii?Q?aRlt3ZKrN0kAeG25iZ8HNgXcJm4UJ9E+5rzxoWDtUbuyheAhF0bfw3cYOaRx?= =?us-ascii?Q?3UBeK052ixYBuvN2Kfsi5b+bMtY9diIZCZoDn6ml1CTwdZRtrgGqmfk02kur?= =?us-ascii?Q?mENvh/kmFkQKJI/VUQ2gnSdJBboSSet3dzeU3Cw8Uz5Ic6nvuMjyIc4V0rTP?= =?us-ascii?Q?4uBWF8KudOstfqYtQyyEYxevY4XxV6mBHREtnVS13AKzx99CiHYJdTKsA1ec?= =?us-ascii?Q?Fd4zHvXHmCcDZS5YF5fcXRjMefgqrH59sAPgbPQrR09VEbkeOXwMyWxzudoq?= =?us-ascii?Q?lyCwEcBP/kJJiz/VYSNPHXSnKK8IzvL+csXFRnphwbRK+lJYIIzwyCpEiaBf?= =?us-ascii?Q?o7pGj5y+1Gn+KLX/+1JDlgREaHELsIViQAXRRz2V0eTVmBLP25g028BF3F11?= =?us-ascii?Q?RH5v/U0POY2heVzYB8tGfElfyAk3WRsfLV3jfDY0jZCJpBZ5A5/xK6WrCtZv?= =?us-ascii?Q?wJnuSckcaaNA+2oCEHx6W3wEeUODnCENERWMEmNU2ETQA7rHIxtMtrgXWbir?= =?us-ascii?Q?l9oGd3yrgp+XJdZQcLFIXdVviMwSDJpqsFMhYDSfx4Byi5Lq3TPjq/bQh4EU?= =?us-ascii?Q?nSlGNclvDmbq6LzjSXe6+IjNmPHBazhdXbb+4rr76IShT07avpsgPoYTJQxk?= =?us-ascii?Q?hi1PwC4swIS76T+rOqI4/igikKG2jKJ4IhYPijBJ+rB/bc5qpgckcrpR5R1i?= =?us-ascii?Q?PaDn4HeCyMEYZ8d/+2JkYPh/8Hij+GOOn94GbfXMlSAXCDt729Fevs6Cpz4b?= =?us-ascii?Q?yB6SBP0MzkV/7QaevzBYt0/kBQBAD76A+KEhlk41N8BgCMdjWvnU0mism1yc?= =?us-ascii?Q?gl0HOqhZpZZGnNEUeonazrDJTwh03UAWuZXlXxDwBYF9fPov37cUuPM2XbeP?= =?us-ascii?Q?ErSBWXi7vnUZtKwqpaLC1zwRr6Vd7EctWhs5goU8uA73XCEgWW6VukIsr8uM?= =?us-ascii?Q?+ftjLwdyCwuasnKgUOw15a2yCo2uSbme7r2wESg6nTVfmWa+9rlgMmNeni3d?= =?us-ascii?Q?4w=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: =?us-ascii?Q?h5DJsf9aOA2PLYoDopwjdOtKiZleyNCrQSxJxUFHk5Mnr8HJ+jzERkjY2c3B?= =?us-ascii?Q?/eK0Wxbo6KegZ5Afm37lafPd5jZXHOHDFHZXY2Rg/kgOmWbd2xmFjN6CepoE?= =?us-ascii?Q?Q+Ix+tT7SUEw8jG/aYbwmjQVwJ+EnsyhxGFs1iyEWblhqWggAtGw86XJoBA9?= =?us-ascii?Q?8n5OKrRfdnk7r/pTSEEgkzcSxfFM3l6J4y20swROzwV+iZ6mdoyOJAEeoXPQ?= =?us-ascii?Q?3VzYfwIXus0g3PZTMsXiRRCaZEjmDWovbx95yoKbtujTBk/mjyyiVNFnt9Gj?= =?us-ascii?Q?z5/UpJyMSUnKwMUHhInaXnaSv9BZlYQe35UV+eJ5jfAuLWImaGeYTJ7Dpaqt?= =?us-ascii?Q?4ig0qeNL4pnEfNOctQ3yUOy7s1eKjs2gEjKVqHZCzHmTONbSx3X2a9PyYIUE?= =?us-ascii?Q?h5U5HR1+aMJ6uT9sn76WSaiG8WKZTMCTp5rpahtfNld3J0rBsUFSkslmIUHH?= =?us-ascii?Q?9DKE64CNINns+JkAKqQf4Gy9byjuRe/LPRRR85aww8EnUhvv+GES8Kioi/uZ?= =?us-ascii?Q?UlqBqEitaAofhXuUtTosT0eA0p0tzQyuCT+0wCCACy1YI/QUzBzKUTZcnq6W?= =?us-ascii?Q?jz/PmEFjMDzpC7088r7qyJsedukv4Sc/xk/kcgOaw91VRP10XsNeX430HFkK?= =?us-ascii?Q?neGoj626Ggjzn2RJnEYknWb8Tu9M7OChcWQTfWiYEp33uFcneQGDm//hYm3K?= =?us-ascii?Q?4TooOG6O6oR4whsz7+j2JuqTW449wRQN4RjCr5q/Q8vvLZm5Sunc8ayOmqbj?= =?us-ascii?Q?vgeBUsLvVMJc8XQwqXth1ak9TlmPjNjuS55T2nFPfiakwxLAqH0eM0Mfzzxf?= =?us-ascii?Q?RzO8QoBbF3wPc7Vk2Cs/Frw87vvClqYpMmFT+zY4X9TUwPvYeSbTJtcFE42m?= =?us-ascii?Q?ngPRuGWU9hcI85yTg116OE893fkF+ZMQP+IGrGGlKgvUWfc3WO+H/UEJg4Nq?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: bb06d531-bedc-453e-e26f-08db6b853b2f X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Jun 2023 20:40:17.2080 (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: eo81gt8tJY7HTMPVL2K5LAN8kacb7MZYcGxB1v1q6bREAM0xsiEOfIPmfP3fGZv1OVdh1w51bP7M2cBWNcxkAg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR10MB5868 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.957,Hydra:6.0.573,FMLib:17.11.176.26 definitions=2023-06-12_16,2023-06-12_02,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 bulkscore=0 phishscore=0 mlxscore=0 suspectscore=0 malwarescore=0 mlxlogscore=760 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2305260000 definitions=main-2306120176 X-Proofpoint-GUID: _VED76G80_mQbMfxLkOmBxo76DP78tXA X-Proofpoint-ORIG-GUID: _VED76G80_mQbMfxLkOmBxo76DP78tXA Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Using vma_iter_set() will reset the tree and cause a re-walk. Use vmi_iter_config() to set the write to a sub-set of the range. Change the file case to also use vmi_iter_config() so that the end is correctly set. Signed-off-by: Liam R. Howlett --- mm/internal.h | 8 ++++++++ mm/mmap.c | 4 ++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/mm/internal.h b/mm/internal.h index 24437f11d3c2..cdf06f680d6e 100644 --- a/mm/internal.h +++ b/mm/internal.h @@ -1034,6 +1034,14 @@ static inline bool vma_soft_dirty_enabled(struct vm_= area_struct *vma) return !(vma->vm_flags & VM_SOFTDIRTY); } =20 +static inline void vma_iter_config(struct vma_iterator *vmi, + unsigned long index, unsigned long last) +{ + MAS_BUG_ON(&vmi->mas, vmi->mas.node !=3D MAS_START && + (vmi->mas.index > index || vmi->mas.last < index)); + __mas_set_range(&vmi->mas, index, last - 1); +} + /* * VMA Iterator functions shared between nommu and mmap */ diff --git a/mm/mmap.c b/mm/mmap.c index fd3f505b40cc..8b3e58d6ac40 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -2659,7 +2659,7 @@ unsigned long mmap_region(struct file *file, unsigned= long addr, goto unacct_error; } =20 - vma_iter_set(&vmi, addr); + vma_iter_config(&vmi, addr, end); vma->vm_start =3D addr; vma->vm_end =3D end; vm_flags_init(vma, vm_flags); @@ -2686,7 +2686,7 @@ unsigned long mmap_region(struct file *file, unsigned= long addr, if (WARN_ON((addr !=3D vma->vm_start))) goto close_and_free_vma; =20 - vma_iter_set(&vmi, addr); + vma_iter_config(&vmi, addr, end); /* * If vm_flags changed after call_mmap(), we should try merge * vma again as we may succeed this time. --=20 2.39.2 From nobody Sun Feb 8 06:04:58 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id DA8CBC88CB2 for ; Mon, 12 Jun 2023 20:41:45 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231318AbjFLUlS (ORCPT ); Mon, 12 Jun 2023 16:41:18 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59578 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232673AbjFLUko (ORCPT ); Mon, 12 Jun 2023 16:40:44 -0400 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8925C1726 for ; Mon, 12 Jun 2023 13:40:40 -0700 (PDT) Received: from pps.filterd (m0246629.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 35CKO4xs029655; Mon, 12 Jun 2023 20:40:25 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2023-03-30; bh=NHXrvplhxn0Psdt+SxrHMdYn2tB3EVdr75v/Rv24Kts=; b=MTYsbnLQTHG3B1ZBJh1Vnbxesj8PTLlLZa3VFq2m8BnRj8B94gPqYSGcme9HIUovnwzC 5fKEwvTpBpb1BoL3N8Uk/37z/aPM3wSx6stMcAvXsPkDoFeaxnBB7ROEiL5y+cNB/Cyv CsP5bWMNLvEWYoIOu+KE8qOnh2eYmgbT74IX+hv8qE07pS8YCdkQuwBzISqbyhcgIyCB el3McO/pSL77Ikx9D4OLRz2P0jBdx+KPiGOaLNodvvcsWTJG5gxBtwtwvj6hN4vAlT5U ndApqiUlKLVx9bmx1NxVWp5f2dyStAqUVxTkpbkcUGo348mYItR6kfvqSQS8WT7Phs3Y 2g== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3r4h2akv47-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 12 Jun 2023 20:40:25 +0000 Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 35CJd8Ku014064; Mon, 12 Jun 2023 20:40:25 GMT Received: from nam02-bn1-obe.outbound.protection.outlook.com (mail-bn1nam02lp2047.outbound.protection.outlook.com [104.47.51.47]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3r4fm31597-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 12 Jun 2023 20:40:24 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=WeCKY+tvXV7mKyT+zr5vHSyaEgofR8qDl+ew3w4GwF1qvXvh0+k2P9yzF226lCEUeqEEyikMi47ZEBHThbJmu+Reu+dPLJYIVqJbIOqKSsVsDiIVA+ub2mu2qiSzjgX2Hp4Rdq7hV2KLOBLFmZmKEgMgvjMK/VFezf/SrCy//xooCreT2x62zDhjf9G/a72kjP4KYmZUTTNr0lZNzkDIJNisFfYhatvMcoIGhgGBi8N7viAu0onjOnjZFODibQOyHeSaDXb7LVYsW9pgMRqXB78nm3+MQ/oenhGKYURkf5UKhOUSWJAlywbFqRgU4xvTSpkkkpV9cLFTGiAdsYK7kw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=NHXrvplhxn0Psdt+SxrHMdYn2tB3EVdr75v/Rv24Kts=; b=h+yBukN/LuIo173e4U7A/q9dGExBNKR6ZF1Ln9bjpC3QB2LejKLmOWTvLAGfMvdrKLulqbcKjRbd5qrgkEITtJUJUYB+WLVUmqnsMn+P4TIjEZXaV70MReB7D0c5tS6VPJb2pZr2MozIlLz5J5XNLrTmuF3xQoeqsqkzDd8SBg9Sil/Jxr6bsoQ43vw8/+WE/p/Su0sNoQs7P+IkZAj0tTHeqcg3eJJ7mC9n9AsGZ6PnyvCCx3D+8UbDdQc6yoJmF5+fI/uNywDYZ4vh7fhu0JEheOUBhbrc5GH9A4xp2cQ12/hMvvd9P47BcptXFT6wMwE0F0vI+Pa0GFeyDuL6Fw== 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=NHXrvplhxn0Psdt+SxrHMdYn2tB3EVdr75v/Rv24Kts=; b=jXrGt2b+y24Rtba3QF6+dStV8krEpn2d17YXcexs6VwN5dyBNhBAIZn8gnMCMFnpgkLPuPbQ/qg/Ys/gHrBJKhLGKGZCu1laOLBwxUqdP8VmJDomAV8ckG2v6Rh3JsBtCMhAYfz+gh7piIWiuxSLXphCXL5coVVEtDPgJBXsNVY= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by SA1PR10MB5868.namprd10.prod.outlook.com (2603:10b6:806:22b::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6455.44; Mon, 12 Jun 2023 20:40:19 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::998f:d221:5fb6:c67d]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::998f:d221:5fb6:c67d%7]) with mapi id 15.20.6455.045; Mon, 12 Jun 2023 20:40:19 +0000 From: "Liam R. Howlett" To: Andrew Morton Cc: maple-tree@lists.infradead.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Peng Zhang , "Liam R. Howlett" Subject: [PATCH v2 08/16] maple_tree: Adjust node allocation on mas_rebalance() Date: Mon, 12 Jun 2023 16:39:45 -0400 Message-Id: <20230612203953.2093911-9-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230612203953.2093911-1-Liam.Howlett@oracle.com> References: <20230612203953.2093911-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT1P288CA0022.CANP288.PROD.OUTLOOK.COM (2603:10b6:b01::35) To SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN6PR10MB3022:EE_|SA1PR10MB5868:EE_ X-MS-Office365-Filtering-Correlation-Id: e008042f-87b0-4306-a25f-08db6b853cbb X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: iPNPgv0xdySK9nUTM2NSmF/o5nEeE0G+SwuTw8CkzuKVP0huwylxAb5KKTMRNrH4Aus/P5wIW4RW+y6KpuPOjuLP44NPqNzlVnIUW2CcZh7J08xxtVOTEYbdwHwpAcSuz4dQnAnWziPWI8gDoQOrldiX01PWXpzq3QecwpxmucW53l9qnokVkJ6DLSVxV1OQAhwCAPqKtdZsSCua7LMpI4xljF+Sra0LNqf7xz/tN/9Y28ASCq1QeZwtMFCHxr/SgvJbgS8UQQ/hs6QwL5dB90Y0h8+DfNKsxBX+tSEvD8XY+MF8ZPAXUpdnHW5Px97W62fq64MODe6TWuCnqNB8m4E0nSkt37Bd8EbtSO/g5HLybLaqllDv4FjPbX/Y4hBS3Jt65E2IUKPz+8x5PhGJqwsHkRvk9XcxelCJX10aHa4qvAz24/I//6STcGOrTBdVU1eTZ19jCCFvFhV0Yu8xhNhvbgTLxSfmIBwY+0hRTy4ISR+MG6Zyj4vNoXQxDttggU3U3pUS9vmgwf1s3iN/+ztgrljnHAOffHNcNrM6QqDuLb8S2Tg4lX/Dz1zYNu+t X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3022.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(366004)(346002)(39860400002)(136003)(396003)(376002)(451199021)(8936002)(8676002)(5660300002)(4326008)(6916009)(66946007)(66476007)(66556008)(316002)(54906003)(2906002)(41300700001)(4744005)(6666004)(478600001)(6486002)(6506007)(26005)(1076003)(107886003)(6512007)(83380400001)(186003)(36756003)(2616005)(86362001)(38100700002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?XWvSRhor7AQa9JMh4Max+JDrbO8Wj16ciljHUWr7kk5CMStDoTD2k63bgXZ4?= =?us-ascii?Q?hZ+Prnq7Fa7w0dtxA/tm78nDowciqSgFuXoigXjrcLwloAud++sfJZosc9N0?= =?us-ascii?Q?x8S5iREbcpAIex0GP4btu1rnPTPtwmVE0lTykgetFWoV9rNzss21RMmYKdcy?= =?us-ascii?Q?MkP8NhelEy9OvLr30PaZGfPlDLib1KaTrNdxqnKEh/DhYH3OlTjSfkrpr8A0?= =?us-ascii?Q?E6aAwHpqaRJXDuf4VaXYqYJ7sgzxRfROw/a6rMv5LlPKgr7OnbwO9vqIyvNh?= =?us-ascii?Q?IlTZAd0xVBRczUg+EZkd4FADRegp2w2vMpHQZS+WF3zcuWSRn6RbbjXv64v/?= =?us-ascii?Q?jGJEwIWUdba6J5R7SyAGc9xs1OmPNiug0wyp7+GuzOBx/Ii7sNZLh/Qbj2rp?= =?us-ascii?Q?PsyNibiN007HRKlx/zhuHDn1JUBZH2aiO6uBycrosJrPKhrs8SjRu/99ivq4?= =?us-ascii?Q?AwNfX+DsEkQgNeVGEfQJWGcNDekqXTQCHGIUVDuOLJ7fBtOU1bXUidepAbSQ?= =?us-ascii?Q?Xgcu3ShqLFD6+m8PQkDLzh9EIQQ42GS4hRv/z7q5wN5lfbKB47gn4yAy4lNh?= =?us-ascii?Q?R4AO70gU4qlLk6RZGDJxhOwrQiPfB0QLGYjHDUDXSLDDpH0coEX4E19ht+c9?= =?us-ascii?Q?LQAo+wWUBhYANIrBjmTYz4hRcxmxQCJwILUAHMacbeeiDrbVUGulNpbJScKT?= =?us-ascii?Q?7CqbBhrZBrYv+0bKe4T2tDE2Zh/WFIgaDzsTwaHlI+HFNGqoiATTD5pkgx62?= =?us-ascii?Q?O6q5/o8lxjtzOpRK3MN2+kmXW28Hw+XVxiW6iAuh6pSpQCi44akTuSLDraZz?= =?us-ascii?Q?DFXSlluKYuHp9UROqTXf6ULbp30bvHgCXx26NlIz4yryrV7nAY75Jx2vIWmJ?= =?us-ascii?Q?HQpyGhZF5REEevAr0blwSXhgWTHUp8V+H+KONefcWLt6GjzZssZaZLFlW8Bm?= =?us-ascii?Q?W5qyZeTWwRuy3hIF1VHFvRA7ei2VxhwC1NuYDRnwr2FwFDDOczLGtnyQMh7C?= =?us-ascii?Q?qzN1YWCg2vzFBrtsGBQZdBLPdzpNZEb2QOS5BbhbQvGpV3GCsNpbh0pAKcH7?= =?us-ascii?Q?N66Qeoc9wpOFrXDF3rpxquET9zGxnJHrCW57m6XmGgcDl48T7dRgQ2OA8wwF?= =?us-ascii?Q?jQe3/F5Cfj8qX3X73u7PiJl+LrNkzurWGKcIgvKmm4mFSq3cIcOoD3OZcuUx?= =?us-ascii?Q?9mUIycQw3a6TiL98Ioe39tvPMak9fHSSPCm7jbw108ptd8oqC8S/LgtKto0H?= =?us-ascii?Q?vU+smgqYK6Jm9JSrxvnUY8HYMxnndaAbuaFriVzeotmxlXCJkMIXlkZsw8m9?= =?us-ascii?Q?DdRXjgTGMgfc7JAwkNggOJYQTb0EJXue0e6nCcYHdMv1v4PI0T7jptdmpwVg?= =?us-ascii?Q?APcQwZVALNF6AtohyWNUuoecXWE58kPueSa8usyeGiltEFJcGQcz3IJ/rY9E?= =?us-ascii?Q?k27NZ+5sUlBisvPY59EI35+U6rPL6B365wCvmDODPfibhKnshRWALnm2F0Hs?= =?us-ascii?Q?a9yK3Yl9bEjohWV2eTFDR2W5kkmZsXf0V+66tDE/fKpHj64iBFRdhvzPYSgo?= =?us-ascii?Q?FC3+Z+/3t79xubtzR3BqR5RL3FQoTPH02OhEiBy87x+nxwvGvBD3IRQUA0/l?= =?us-ascii?Q?uQ=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: =?us-ascii?Q?dR9jozdjuPvNRFS5X8/6aRy9Bhp72XzS+lZKzdY7VRnP7UMNhBDPf5OoYr0N?= =?us-ascii?Q?OaJ8ptCU7e+M4HPVpTIFlgQnpH4cYKmKFGkXxX3hMgPK75azpi69wfk8dOFp?= =?us-ascii?Q?EK64lwq9ImiUpV2zk2AxbgQL2MtWk5RfOt+kds61FBi9QKBTtVVrjsD8DwDY?= =?us-ascii?Q?P+fyP7ZNcfXRuANvk9MUdedDRDnzFEfxYlclH1gDxDVJsyriz1yOJl9zFLgA?= =?us-ascii?Q?glGH7NtFZ8GMw5Z7PKGOel76fZq0dtErXvD2kTYWkNrXNfAfOHje6WdpzjpM?= =?us-ascii?Q?4Fy42dbYIhArvpbXlSkdJLi/okOUwL9ov6rG/1RNMjVssgZ361R8Or8RURhT?= =?us-ascii?Q?2+bOWGmGQJH34flwVmHBPZqbK8b3ztS6mcLclI5Le+ODAxHLrk9//hRRvXJI?= =?us-ascii?Q?tVUq5LR+dzlj1yjIuRz5LtntJe0o+jDBymu77QMRYx9CNt0c4AeFUvRnyVkw?= =?us-ascii?Q?uMlmrv5H7x2Q42Z8L20jmpF+ictDOiTw7l/X+7+qbxVl1IihhAV8ef031kVz?= =?us-ascii?Q?m/zNsqajyWDI9vwKDus4xeli/D1DCHnpwseUxPjIp6sZt3sHxDR7sNlxu7XP?= =?us-ascii?Q?Y9yBOFqs2+eXW5W2NJ7gJJy8swXWOLNRfOaam4yPkihRGzDPi6quj1bQltsv?= =?us-ascii?Q?H1pTBdKpsgFYG372Ra+K473eBwTzSplSQqrWXx58e0muanSUKHk5gHLeDT3h?= =?us-ascii?Q?ZQ7W+ybi98iICW+bdGXe9DAHSr0otGfBxNVBOjKXmmGvQWH0zT5SqUHkm2ns?= =?us-ascii?Q?e+VaP1sw9lxhAnO3O7sYvDndScTuzIzBEgeyloM0A68BpMjvGhxbSdH7s7zD?= =?us-ascii?Q?mCpPmZKeX64v85lKjgX98I6dCDes09ZluMsJuPhXNCx6m9zuD/7eI2fM/a48?= =?us-ascii?Q?ESitnTCNOTHujQ/ELSPDr8SXkP3H9tqvuO4HzqJGjFP4RwOfwYMde3ajano9?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: e008042f-87b0-4306-a25f-08db6b853cbb X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Jun 2023 20:40:19.7620 (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: pjGx1C7VPhciuCMNfUsQjVTUv6XMx/efITCxS6d/wyAqG67SxtJjpf6vEKt3yxHcF6ToOmyjNzmyut6N6YlzUg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR10MB5868 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.957,Hydra:6.0.573,FMLib:17.11.176.26 definitions=2023-06-12_15,2023-06-12_02,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 suspectscore=0 mlxscore=0 adultscore=0 spamscore=0 phishscore=0 bulkscore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2305260000 definitions=main-2306120176 X-Proofpoint-ORIG-GUID: S0vO_-NYP_drEBiC1puPCk0BtsjcqveT X-Proofpoint-GUID: S0vO_-NYP_drEBiC1puPCk0BtsjcqveT Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" mas_rebalance() is called to rebalance an insufficient node into a single node or two sufficient nodes. The preallocation estimate is always too many in this case as the height of the tree will never grow and there is no possibility to have a three way split in this case, so revise the node allocation count. 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 bfffbb7cab26..815c64f4c370 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -3166,7 +3166,7 @@ static inline int mas_rebalance(struct ma_state *mas, * 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_node_count(mas, 1 + empty_count * 3); + mas_node_count(mas, empty_count * 2 - 1); if (mas_is_err(mas)) return 0; =20 --=20 2.39.2 From nobody Sun Feb 8 06:04:58 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 07D15C88CB7 for ; Mon, 12 Jun 2023 20:41:46 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233279AbjFLUl1 (ORCPT ); Mon, 12 Jun 2023 16:41:27 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59608 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232279AbjFLUks (ORCPT ); Mon, 12 Jun 2023 16:40:48 -0400 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 911FA1718 for ; Mon, 12 Jun 2023 13:40:46 -0700 (PDT) Received: from pps.filterd (m0246617.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 35CKOQGg002209; Mon, 12 Jun 2023 20:40:26 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2023-03-30; bh=566WjR9HOsaiTi90oG2qxgL9fq1TpDqi1DBa3zdZrq4=; b=s88SGnntgJmGn+MPF4muwVC94AFY2YTnhmSpHciXvH/IZmaSbcbUtIOkJx9Th3RsKk7b 3wKDkFWumq2HLXT+lIGJxRJaJw33EHXkbIpJj2vBxl3fAblzUDywtGb8TTnK/eDc8sxS p8hpvaZXfxB1LqnM8P8tEwBqg7OUOeWNjtrkHfJBlwG82ylGNoqC2Dl97LjWpQV9RtC4 whQdtlak4MxzMcyobgYqlVTUdzDmu/C7zcTVtdIi8h/5vzGPgT8b5HAekU4aocYVGGWI AWnp3qt+mrHKCDmE9aPdx1+6wdH1EzYAwRTntY8wthCF5tz9ZNCi+McmH5c26Mgke5/b iw== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3r4hqukv5b-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 12 Jun 2023 20:40:26 +0000 Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 35CJd8Kw014064; Mon, 12 Jun 2023 20:40:25 GMT Received: from nam02-bn1-obe.outbound.protection.outlook.com (mail-bn1nam02lp2047.outbound.protection.outlook.com [104.47.51.47]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3r4fm31597-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 12 Jun 2023 20:40:25 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Hm2L81BeB3ccBfsgPP8tGY36kwj2U9s3v9SlYSunHcTJmN8AYFbiXn6lQmsh2Vqd2XyEGuT1gtqqAvXJGmgVEQfWNMfXAwI2j83Zi+ULCDQq/KZ7WfduOOzCiKzwoNLUwiwhu7HkeVIX9ecnXyTw8ZPiODbqI0dOU6YBknRU9i2rWzCm3n3qPs7kB/NwF3bz49+h3HjvfACobCMuF3emuXInbr05QmqFiYdB/tmZ45LNsIYFmm+STBhKG/tE7xhasQ7134KXGqHiLPA4oanyGrGo0z5Cw0RGOr7PMiUQAPqq34sbUnuGwt5tsXdpUF6U2FfB7lLUwE0vuGQy+Mugbw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=566WjR9HOsaiTi90oG2qxgL9fq1TpDqi1DBa3zdZrq4=; b=kbTt5Wj12Hh33U9BzQ9XHwp908EVbSH9vMtCVpwAs4vtebzvpQsP8GZp0FcupWOcjanT2UTq+cxQFNev1wWUhQn2nZwv2hJOQLNvTXzH/OIKNCB9MkHmBoUEAejUiPBcLb+oCjyh0egeRFG//wT95x83bImKtEEB7kNJ3wQmIFHTpbjvVg/lYH5VlD1A7ZKDeWkk+rvhgdBMy1gShnrZ146rdVXNWQwoZgX7NUNZ2nBD95PqhAlN3CsVqC1da8C3p5ljxaP6lOqSAI68dOAG2AU0gfp0iUg+D2AjgqPJ3XDK7dgU4itHAiGuv8tgND2xgwqqyVtTgMc5Yqp7kh+1qw== 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=566WjR9HOsaiTi90oG2qxgL9fq1TpDqi1DBa3zdZrq4=; b=O4w93raSfb3728A3uCHIarYUMVg5FyAAEDXMtg0R7BIQyyAJ80WRi767YwmnVXeeaCFQnF+KSs9mR/wGv54gziZVQ8QKdMEZPv2ALZ2HDZ6lsN7xsHb/f6gX9fI/aP776PgswQSH6z6EoYtpPuZD/dU6NpDhYXLqCSqq6FcY5no= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by SA1PR10MB5868.namprd10.prod.outlook.com (2603:10b6:806:22b::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6455.44; Mon, 12 Jun 2023 20:40:23 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::998f:d221:5fb6:c67d]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::998f:d221:5fb6:c67d%7]) with mapi id 15.20.6455.045; Mon, 12 Jun 2023 20:40:23 +0000 From: "Liam R. Howlett" To: Andrew Morton Cc: maple-tree@lists.infradead.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Peng Zhang , "Liam R. Howlett" Subject: [PATCH v2 09/16] maple_tree: Re-introduce entry to mas_preallocate() arguments Date: Mon, 12 Jun 2023 16:39:46 -0400 Message-Id: <20230612203953.2093911-10-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230612203953.2093911-1-Liam.Howlett@oracle.com> References: <20230612203953.2093911-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT2PR01CA0008.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:38::13) To SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN6PR10MB3022:EE_|SA1PR10MB5868:EE_ X-MS-Office365-Filtering-Correlation-Id: cec6426c-3a27-4f87-57a9-08db6b853ee2 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: q6EPS6IEdfiQYbbm4yCq9ZiuY5pCRavKFx9MSuqYSUNyEEfKwPKQHNf3KyRftd9Ys5cjH+pGeSl66b7MfT1u4X4UHsIMMRiqD+5X8FjN0NgIjYbFhYi5KIke4mz1072svwC7iirGALKjVDlwzq55jgShwKObOTeOAA2NG8l8DKzrH0gJYWB+LZkeIk3gI5dQGbDFUHMsVh5VaQIaXTHap4IHAjKxKqxQwC4RHI1F8kNgOHJJ+wIGJbofq4d2afYm7AjSHO+d18K1a+dBytlyRrE6de/APQasnCq4kbWU9Mi/mt5uYHIC+nTxO0mxmjTV0cgd/XRnxGUYykZTtPafMVW3rBxnB2Z+WITwpuHwf6D+9fLCvZA5O3r+8sRUTLDJxNOjl4EgPDpPoypQ0+WMsIXJcRSr3Z9BLLnM41zxp3fWSo+hQ0gtByaaNDHyN9nQ43z6wS7/cXv5NQyvTUKEYsBkx3Gqbdlpi0+paoQXxeaoXWQCgrhdBVXeaUaqd3GMhk2+KJPMhyB7x9Wnn5SR/wPVUHrFhQLH1kvGmrrV4kZ7Y14l9wIQDiXXZV45TChO X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3022.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(366004)(346002)(39860400002)(136003)(396003)(376002)(451199021)(8936002)(8676002)(5660300002)(4326008)(6916009)(66946007)(66476007)(66556008)(316002)(54906003)(2906002)(41300700001)(6666004)(478600001)(6486002)(6506007)(26005)(1076003)(107886003)(6512007)(83380400001)(186003)(36756003)(2616005)(86362001)(38100700002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?l0QCH4m2yJ6H6YXabrwcUWVhYuLHGXwtx1mE9VMEp9RncJg3AuIcfO+eylZJ?= =?us-ascii?Q?4FxT7wRywJHsCXUmzlo02pM6FaOrIGrOV81CbshGUX/hROTixyCrtHSomQtT?= =?us-ascii?Q?0NY9v6scoI8AQuddBefLNMvHc5Jp9gWkAJnOyxAj+WZdkE6OrqCL3gdmEpwp?= =?us-ascii?Q?SSiT4IPcYd54XeoxHMQJXdzvdY2nQ30ceOu9a1rUR+dVWxtpsOMXczON71jA?= =?us-ascii?Q?aKMVdgG1Ht7G+3jnqDXjkIcmkWFNTcO6+/X20il5n/lgIxhoHdqKsmi9g6n8?= =?us-ascii?Q?h2JzzLZyWr8lxOLUO0AixiZUBV3LzbIvG8GO54I+4ndF0lk4eK9yyCid5Q6B?= =?us-ascii?Q?PirX/g/zeOcT697NbslqI2EiZc5uQeeUIjUKt7xjD0wIi7HRS7gvgrci6PXw?= =?us-ascii?Q?ZTwYJmd0EzV5f5ntOh7D4LUD44uFmCw3G1PtDiY0JmwUXkfnblwki/l562ph?= =?us-ascii?Q?bfiZH8GhLRCV+FAv93miUZHcqwo0XaF3VWekTgAgf4XsDbkKJ42XreUVk28v?= =?us-ascii?Q?lSrMNzqUuOKIvqzUmF3oxGX2JYWp9SP/TPZ9uAxySFo3J2x8NBvl4LvPyu+L?= =?us-ascii?Q?iQc9zTeG0nwZWFCKWHbn27gWezHaVfqm3m1U+KAVtEjmzFSCMDeD2Pz/lWv6?= =?us-ascii?Q?tYvtb5B0EalbXpRj0AsV6Y5jO2S9BZJfaJ1psZ+hZiJ10HNuz8c3rrf3TjZA?= =?us-ascii?Q?WGHLmTyfKUGvde53K/XcUavp+t3HW2xWfk8z3A8f2Xou3xqcWAHzDwOklOub?= =?us-ascii?Q?Tu/+f7VFSruQ8CMUTw57LemOo30SAHpGfYTpHnZSrr6iYmLDaP71VS2XwxIU?= =?us-ascii?Q?EMTyi+69JZX2LpNflNnieI+Z4AJeWW4JWeZji5gFxnYOxXZkv/OMAUvcsylb?= =?us-ascii?Q?n7nyFnsN0C3Bt3RHYZZMGTzxlXK5I1+rjINiXLekCPaLlVThdoMDT0uo+YcT?= =?us-ascii?Q?/dVFZtX2wk5Q50D4eTI7PriBgum5+934NBBF4SzTGlKdypeUqUAvN73C/IV3?= =?us-ascii?Q?QWjlWX76WZBm0VdW4JZYoy4YECisvdEt6Z6iolUhY89j1/JRVV/vlWvU66Y4?= =?us-ascii?Q?LMcnWlla5NZv2OY5fKQ74C5kCqKQLQCaHlqdZVdZ/J7Ne5kBfoH2A9el66hW?= =?us-ascii?Q?xcqiQ5Yj5F2L5MsxfeOzNvOwp9P9rkqQjnkGOpd1yWIpEqiiDeJlLwClXNdP?= =?us-ascii?Q?wqUHe5ivYW0wVDpTrcMtXEIPfbK0Mw575EnaHu7Fir9EzPGESkJ1QLkCVoVk?= =?us-ascii?Q?RyX2NIfZGUdHg1e732CIiKxooVmaqOn3jKUICDFrJVpuZlTCnIXBERNSQnBG?= =?us-ascii?Q?ZBxOuiSGIOT/VXjqtNPgePrR2xjmbc5LIox2gweeSXWYZdCISRLmJJPQ4hVB?= =?us-ascii?Q?VCaXgYKGbttFeNZ3OgzSCT1EYMeMw7KxDjJRiRG8cC80tKFfhdk9zhdEQaLV?= =?us-ascii?Q?j/0SuRQkQvo72Xo5yjepA6y1FWAhsf8V0Fkh/M4fy/a79py4TxFPjpRHwLBw?= =?us-ascii?Q?X70lXLuQVW0m3sF6ASNJJZG/tXMuK3qH/1FuXaMrYXPGFQXdAR6BinCy1nDs?= =?us-ascii?Q?E0qI2uonA8MI7gS86CNu2SOP8ZhWa2disMe1XVRqTQCK+VvkSuljn72m23D3?= =?us-ascii?Q?JQ=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: =?us-ascii?Q?46OAOXoTQK6kGORyFmOFyAsaybHpiC/Pmt0t9j/iZoSuiIwAvFMOkggPqv/2?= =?us-ascii?Q?a1FCqblm1JSFjSmAClUCXssg+vCxxLLB0VUgnGgGMVCnKghucmO9C2M1aGfB?= =?us-ascii?Q?b8KMBhpuwKtu5ICkj0MdIGZO5fgNWArd6j2axOoyrsB+bmm9tt1CMjLVEWL+?= =?us-ascii?Q?ghUNdAU1o/0ULnhnclUBpP/2LRur617+1/RKye+Fvf7FYIO8GdTncETt2PSX?= =?us-ascii?Q?eV8nM4kQOVIN+YiDGpxN109Z9W9+VbznpxdPbzXxTniysdrwieIrQFrbOhhz?= =?us-ascii?Q?MFOFmPFyQJsbNoozs7rUSYii3JaQpKTJgDQcXZaZcRgMv2/nTjxakyuYWDxD?= =?us-ascii?Q?FHnZqv3SJEnZ9Dwa04FsqhlYiDeh4+cZuDT3jygT3s4K+B3TUwJ+pVJuQuJn?= =?us-ascii?Q?BtnLAQY/jKdCg2RZ/BkGB8FgIIM24OJqEijtguJ+A0y+/ZQsEnycxsdZ/TiW?= =?us-ascii?Q?KbZ+cq6Oa2ZFlTXm8dfKoAZJduzGMlFq86pVUCINQkMr/G3KKfr3+Mxgkp0t?= =?us-ascii?Q?oS4ow+PpIJP+nwNT+OSAaR62cPshisSIPGthBjRmZStXnauHdLOIZOMUMgM4?= =?us-ascii?Q?U3Fmn5EAp+EhxFNFDlUOfAkEM7BA4qZfWFkT4zgtm5tSzjgLuQLzAlBEn7tq?= =?us-ascii?Q?g13rww25+zRYZ0ImtJ0fwLLOY6ZCA7gIku31sn4eXADEsaYsHLJQuny99m7U?= =?us-ascii?Q?VIiRNBRVW2krMudle+90eSKNweuZQHSVYxfNs7QW30fAqgv7438+X6daDQ5n?= =?us-ascii?Q?zIRhZOzKNGb9UrfIpKv3JBXRsULGZoluP2G86C0JNGq1wG8PWvrvjglQ6N9N?= =?us-ascii?Q?1uq0rr1kjO7X977koM3aaNkVkX++RCQeNmNS94SZWy2h4e3ZwVlE/F5XWB3f?= =?us-ascii?Q?jgV2hNdHZGIp9YHVFz9lROwQbGE4AJD25YfXofrGfzMWZKtt5+KbHlxG+Nrs?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: cec6426c-3a27-4f87-57a9-08db6b853ee2 X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Jun 2023 20:40:23.3659 (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: kZcB1aUyHxXco7EeZPAEUzNmWN1F2S7I0LuK4OUI7ZXx6tMWL8vWi3rxofFOOuAMyYwZC4DMjlLohCQf1rwmUA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR10MB5868 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.957,Hydra:6.0.573,FMLib:17.11.176.26 definitions=2023-06-12_15,2023-06-12_02,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 suspectscore=0 mlxscore=0 adultscore=0 spamscore=0 phishscore=0 bulkscore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2305260000 definitions=main-2306120176 X-Proofpoint-ORIG-GUID: ULVK4N_hTSzwuBw0zczigZ84pYV4HAkk X-Proofpoint-GUID: ULVK4N_hTSzwuBw0zczigZ84pYV4HAkk Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" The current preallocation strategy is to preallocate the absolute worst-case allocation for a tree modification. The entry (or NULL) is needed to know how many nodes are needed to write to the tree. Start by adding the argument to the mas_preallocate() definition. Signed-off-by: Liam R. Howlett --- include/linux/maple_tree.h | 2 +- lib/maple_tree.c | 3 ++- mm/internal.h | 2 +- mm/mmap.c | 4 ++-- tools/testing/radix-tree/maple.c | 32 ++++++++++++++++---------------- 5 files changed, 22 insertions(+), 21 deletions(-) diff --git a/include/linux/maple_tree.h b/include/linux/maple_tree.h index ed50d8f459e6..e18ecbefc7f7 100644 --- a/include/linux/maple_tree.h +++ b/include/linux/maple_tree.h @@ -458,7 +458,7 @@ void *mas_find(struct ma_state *mas, unsigned long max); void *mas_find_range(struct ma_state *mas, unsigned long max); void *mas_find_rev(struct ma_state *mas, unsigned long min); void *mas_find_range_rev(struct ma_state *mas, unsigned long max); -int mas_preallocate(struct ma_state *mas, gfp_t gfp); +int mas_preallocate(struct ma_state *mas, void *entry, gfp_t gfp); bool mas_is_err(struct ma_state *mas); =20 bool mas_nomem(struct ma_state *mas, gfp_t gfp); diff --git a/lib/maple_tree.c b/lib/maple_tree.c index 815c64f4c370..fa51abaab09b 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -5535,11 +5535,12 @@ EXPORT_SYMBOL_GPL(mas_store_prealloc); /** * mas_preallocate() - Preallocate enough nodes for a store operation * @mas: The maple state + * @entry: The entry that will be stored * @gfp: The GFP_FLAGS to use for allocations. * * Return: 0 on success, -ENOMEM if memory could not be allocated. */ -int mas_preallocate(struct ma_state *mas, gfp_t gfp) +int mas_preallocate(struct ma_state *mas, void *entry, gfp_t gfp) { int ret; =20 diff --git a/mm/internal.h b/mm/internal.h index cdf06f680d6e..2691deca9699 100644 --- a/mm/internal.h +++ b/mm/internal.h @@ -1047,7 +1047,7 @@ static inline void vma_iter_config(struct vma_iterato= r *vmi, */ static inline int vma_iter_prealloc(struct vma_iterator *vmi) { - return mas_preallocate(&vmi->mas, GFP_KERNEL); + return mas_preallocate(&vmi->mas, NULL, GFP_KERNEL); } =20 static inline void vma_iter_clear(struct vma_iterator *vmi, diff --git a/mm/mmap.c b/mm/mmap.c index 8b3e58d6ac40..75b2a86e1faa 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -1982,7 +1982,7 @@ int expand_upwards(struct vm_area_struct *vma, unsign= ed long address) /* Check that both stack segments have the same anon_vma? */ } =20 - if (mas_preallocate(&mas, GFP_KERNEL)) + if (mas_preallocate(&mas, vma, GFP_KERNEL)) return -ENOMEM; =20 /* We must make sure the anon_vma is allocated. */ @@ -2064,7 +2064,7 @@ int expand_downwards(struct vm_area_struct *vma, unsi= gned long address) return -ENOMEM; } =20 - if (mas_preallocate(&mas, GFP_KERNEL)) + if (mas_preallocate(&mas, vma, GFP_KERNEL)) return -ENOMEM; =20 /* We must make sure the anon_vma is allocated. */ diff --git a/tools/testing/radix-tree/maple.c b/tools/testing/radix-tree/ma= ple.c index 03539d86cdf0..cfadc4b75d51 100644 --- a/tools/testing/radix-tree/maple.c +++ b/tools/testing/radix-tree/maple.c @@ -35383,7 +35383,7 @@ static noinline void __init check_prealloc(struct m= aple_tree *mt) for (i =3D 0; i <=3D max; i++) mtree_test_store_range(mt, i * 10, i * 10 + 5, &i); =20 - MT_BUG_ON(mt, mas_preallocate(&mas, GFP_KERNEL) !=3D 0); + MT_BUG_ON(mt, mas_preallocate(&mas, ptr, GFP_KERNEL) !=3D 0); allocated =3D mas_allocated(&mas); height =3D mas_mt_height(&mas); MT_BUG_ON(mt, allocated =3D=3D 0); @@ -35392,18 +35392,18 @@ static noinline void __init check_prealloc(struct= maple_tree *mt) allocated =3D mas_allocated(&mas); MT_BUG_ON(mt, allocated !=3D 0); =20 - MT_BUG_ON(mt, mas_preallocate(&mas, GFP_KERNEL) !=3D 0); + MT_BUG_ON(mt, mas_preallocate(&mas, ptr, GFP_KERNEL) !=3D 0); allocated =3D mas_allocated(&mas); height =3D mas_mt_height(&mas); MT_BUG_ON(mt, allocated =3D=3D 0); MT_BUG_ON(mt, allocated !=3D 1 + height * 3); - MT_BUG_ON(mt, mas_preallocate(&mas, GFP_KERNEL) !=3D 0); + MT_BUG_ON(mt, mas_preallocate(&mas, ptr, GFP_KERNEL) !=3D 0); mas_destroy(&mas); allocated =3D mas_allocated(&mas); MT_BUG_ON(mt, allocated !=3D 0); =20 =20 - MT_BUG_ON(mt, mas_preallocate(&mas, GFP_KERNEL) !=3D 0); + MT_BUG_ON(mt, mas_preallocate(&mas, ptr, GFP_KERNEL) !=3D 0); allocated =3D mas_allocated(&mas); height =3D mas_mt_height(&mas); MT_BUG_ON(mt, allocated =3D=3D 0); @@ -35412,26 +35412,26 @@ static noinline void __init check_prealloc(struct= maple_tree *mt) MT_BUG_ON(mt, mas_allocated(&mas) !=3D allocated - 1); mn->parent =3D ma_parent_ptr(mn); ma_free_rcu(mn); - MT_BUG_ON(mt, mas_preallocate(&mas, GFP_KERNEL) !=3D 0); + MT_BUG_ON(mt, mas_preallocate(&mas, ptr, GFP_KERNEL) !=3D 0); mas_destroy(&mas); allocated =3D mas_allocated(&mas); MT_BUG_ON(mt, allocated !=3D 0); =20 - MT_BUG_ON(mt, mas_preallocate(&mas, GFP_KERNEL) !=3D 0); + MT_BUG_ON(mt, mas_preallocate(&mas, ptr, GFP_KERNEL) !=3D 0); allocated =3D mas_allocated(&mas); height =3D mas_mt_height(&mas); MT_BUG_ON(mt, allocated =3D=3D 0); MT_BUG_ON(mt, allocated !=3D 1 + height * 3); mn =3D mas_pop_node(&mas); MT_BUG_ON(mt, mas_allocated(&mas) !=3D allocated - 1); - MT_BUG_ON(mt, mas_preallocate(&mas, GFP_KERNEL) !=3D 0); + MT_BUG_ON(mt, mas_preallocate(&mas, ptr, GFP_KERNEL) !=3D 0); mas_destroy(&mas); allocated =3D mas_allocated(&mas); MT_BUG_ON(mt, allocated !=3D 0); mn->parent =3D ma_parent_ptr(mn); ma_free_rcu(mn); =20 - MT_BUG_ON(mt, mas_preallocate(&mas, GFP_KERNEL) !=3D 0); + MT_BUG_ON(mt, mas_preallocate(&mas, ptr, GFP_KERNEL) !=3D 0); allocated =3D mas_allocated(&mas); height =3D mas_mt_height(&mas); MT_BUG_ON(mt, allocated =3D=3D 0); @@ -35440,12 +35440,12 @@ static noinline void __init check_prealloc(struct= maple_tree *mt) MT_BUG_ON(mt, mas_allocated(&mas) !=3D allocated - 1); mas_push_node(&mas, mn); MT_BUG_ON(mt, mas_allocated(&mas) !=3D allocated); - MT_BUG_ON(mt, mas_preallocate(&mas, GFP_KERNEL) !=3D 0); + MT_BUG_ON(mt, mas_preallocate(&mas, ptr, GFP_KERNEL) !=3D 0); mas_destroy(&mas); allocated =3D mas_allocated(&mas); MT_BUG_ON(mt, allocated !=3D 0); =20 - MT_BUG_ON(mt, mas_preallocate(&mas, GFP_KERNEL) !=3D 0); + MT_BUG_ON(mt, mas_preallocate(&mas, ptr, GFP_KERNEL) !=3D 0); allocated =3D mas_allocated(&mas); height =3D mas_mt_height(&mas); MT_BUG_ON(mt, allocated =3D=3D 0); @@ -35453,21 +35453,21 @@ static noinline void __init check_prealloc(struct= maple_tree *mt) mas_store_prealloc(&mas, ptr); MT_BUG_ON(mt, mas_allocated(&mas) !=3D 0); =20 - MT_BUG_ON(mt, mas_preallocate(&mas, GFP_KERNEL) !=3D 0); + MT_BUG_ON(mt, mas_preallocate(&mas, ptr, GFP_KERNEL) !=3D 0); allocated =3D mas_allocated(&mas); height =3D mas_mt_height(&mas); MT_BUG_ON(mt, allocated =3D=3D 0); MT_BUG_ON(mt, allocated !=3D 1 + height * 3); mas_store_prealloc(&mas, ptr); MT_BUG_ON(mt, mas_allocated(&mas) !=3D 0); - MT_BUG_ON(mt, mas_preallocate(&mas, GFP_KERNEL) !=3D 0); + MT_BUG_ON(mt, mas_preallocate(&mas, ptr, GFP_KERNEL) !=3D 0); allocated =3D mas_allocated(&mas); height =3D mas_mt_height(&mas); MT_BUG_ON(mt, allocated =3D=3D 0); MT_BUG_ON(mt, allocated !=3D 1 + height * 3); mas_store_prealloc(&mas, ptr); =20 - MT_BUG_ON(mt, mas_preallocate(&mas, GFP_KERNEL) !=3D 0); + MT_BUG_ON(mt, mas_preallocate(&mas, ptr, GFP_KERNEL) !=3D 0); allocated =3D mas_allocated(&mas); height =3D mas_mt_height(&mas); MT_BUG_ON(mt, allocated =3D=3D 0); @@ -35475,14 +35475,14 @@ static noinline void __init check_prealloc(struct= maple_tree *mt) mas_store_prealloc(&mas, ptr); MT_BUG_ON(mt, mas_allocated(&mas) !=3D 0); mt_set_non_kernel(1); - MT_BUG_ON(mt, mas_preallocate(&mas, GFP_KERNEL & GFP_NOWAIT) =3D=3D 0); + MT_BUG_ON(mt, mas_preallocate(&mas, ptr, GFP_KERNEL & GFP_NOWAIT) =3D=3D = 0); allocated =3D mas_allocated(&mas); height =3D mas_mt_height(&mas); MT_BUG_ON(mt, allocated !=3D 0); mas_destroy(&mas); =20 =20 - MT_BUG_ON(mt, mas_preallocate(&mas, GFP_KERNEL) !=3D 0); + MT_BUG_ON(mt, mas_preallocate(&mas, ptr, GFP_KERNEL) !=3D 0); allocated =3D mas_allocated(&mas); height =3D mas_mt_height(&mas); MT_BUG_ON(mt, allocated =3D=3D 0); @@ -35490,7 +35490,7 @@ static noinline void __init check_prealloc(struct m= aple_tree *mt) mas_store_prealloc(&mas, ptr); MT_BUG_ON(mt, mas_allocated(&mas) !=3D 0); mt_set_non_kernel(1); - MT_BUG_ON(mt, mas_preallocate(&mas, GFP_KERNEL & GFP_NOWAIT) =3D=3D 0); + MT_BUG_ON(mt, mas_preallocate(&mas, ptr, GFP_KERNEL & GFP_NOWAIT) =3D=3D = 0); allocated =3D mas_allocated(&mas); height =3D mas_mt_height(&mas); MT_BUG_ON(mt, allocated !=3D 0); --=20 2.39.2 From nobody Sun Feb 8 06:04:58 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 67B9BC88CB2 for ; Mon, 12 Jun 2023 20:42:17 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234281AbjFLUlx (ORCPT ); Mon, 12 Jun 2023 16:41:53 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59734 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236078AbjFLUlA (ORCPT ); Mon, 12 Jun 2023 16:41:00 -0400 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B24A519A7 for ; Mon, 12 Jun 2023 13:40:53 -0700 (PDT) Received: from pps.filterd (m0246629.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 35CKO4nm029683; Mon, 12 Jun 2023 20:40:29 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2023-03-30; bh=NJmVxdLzLEbLcdb/yA4FmvurN2C/Dp3Rfx9FmMeuxiA=; b=i9qE9hCSQDKA4f5Ep3rPsXgHaGrky7c1yc5PN8ZeZOAWuxj/CV8cITcF+fSQelWUPgm1 BfVUCQbtaVjaS6dUO1vqSm7wq+ysIH/R2p/tIuLcterTsHNqxy6r7xoXfa7rPxHdmH5q v6wdhJ1q/GlKWKh1lKx3u5Fyx3lPztCzRKpkVjy26CExuvkV26dtJoPZPObIkYhW5W9z LpnYCdY+oguHhdPuGczzHSeFrqfEKgiTZ5p3PnXmlhN2OTLLjHyXOkZFPO//Y2uJnAHV S+E94DWeBfEz5HL6jj9+1jrawxgeG2EEghON9/M+IoHS/8behS1qxGQYEeNOrivwFuZf Fw== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3r4h2akv49-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 12 Jun 2023 20:40:28 +0000 Received: from pps.filterd (iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 35CK5C8k016192; Mon, 12 Jun 2023 20:40:27 GMT Received: from nam02-bn1-obe.outbound.protection.outlook.com (mail-bn1nam02lp2040.outbound.protection.outlook.com [104.47.51.40]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3r4fm39a2c-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 12 Jun 2023 20:40:27 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Iu/ENnTKzbTs31QmEtIiDzbg80S3aFioxCCt0cAiT4HSPoghkxDDiDYFt1dWWJ5PT+wH3YtnF9tuH4HxmH4s7214eJZ/zobmRj3qn5xPtsbu5peuazyXswM3i1/vAUwGAEwJ4DZpnoQ9Eue9CFICEWaF28utPohX2kVs+ReQmXAn8gBU2JsNsf7twMPI0Of1v7I07oSR5EA+/pzTB0cKoPGXYtZUgGgL/om4AHG+guWrnJCQCScfFuxUx+INZkP7NLIt02BRDJXqAf3lAii4ScoHq6bnKKtOiw51WW4w8Y6AFpJ3pCoQ3DquUvOCrxWILSWDCkAQETqeG9x2eHlfdg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=NJmVxdLzLEbLcdb/yA4FmvurN2C/Dp3Rfx9FmMeuxiA=; b=mCsGs2f6mUmdJLMhkY9ZFfwgc3zRaWYdeeThWb3JYlVfTpU2Osy9g209cYLfVaTdyvtyNW1+HVdvdQpUCY5A6Jn2yreljze53aOwIzYWmA1gXcEpOxZ7nKTb4tGOQWi5hWEyeFFLqst9yzyB8LnpvT2najdT6eOlzco3LWKSUq4KxVHb048DCDRbN+pijKhh7HKjkKNHbI4UD4r1wt3VuMHVsR62elPn7oNOzKHa5VIyXcpiIYsPACTALDPn+4+T9/nY2o6aedJEWcUbXqmwms/s8LVSAWa3ED0ytw1TzHFt7QCF3AKWc023yvp3S7x53U4Y1GoZbA3lxmBTf1EfHA== 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=NJmVxdLzLEbLcdb/yA4FmvurN2C/Dp3Rfx9FmMeuxiA=; b=RJQlZqZuu8eb7hqkFrI7CY7CN7sByKgIa4v4/CUaw5XlvTfAkH6vEvQTcW0lEFIlzJJQQLEW0DFwF9nqPY2AXnv+SHug8yENm1rnG1hapnNtBwJ42Enc9X1ft9QU/70o4msvXU/79Qv/xOpIJ1P0gpti/yalwhLGgdYt4THu0Ww= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by SA1PR10MB5868.namprd10.prod.outlook.com (2603:10b6:806:22b::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6455.44; Mon, 12 Jun 2023 20:40:25 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::998f:d221:5fb6:c67d]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::998f:d221:5fb6:c67d%7]) with mapi id 15.20.6455.045; Mon, 12 Jun 2023 20:40:25 +0000 From: "Liam R. Howlett" To: Andrew Morton Cc: maple-tree@lists.infradead.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Peng Zhang , "Liam R. Howlett" Subject: [PATCH v2 10/16] mm: Use vma_iter_clear_gfp() in nommu Date: Mon, 12 Jun 2023 16:39:47 -0400 Message-Id: <20230612203953.2093911-11-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230612203953.2093911-1-Liam.Howlett@oracle.com> References: <20230612203953.2093911-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT2PR01CA0015.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:38::20) To SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN6PR10MB3022:EE_|SA1PR10MB5868:EE_ X-MS-Office365-Filtering-Correlation-Id: 21f98b25-61ff-460a-1927-08db6b85404f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: ui6FME3PmAE0xJih6todlSqHZhFHycEvuWQQQOHktI0+6KfNlq2rJCBlLvfVtZxJeepEucrLjLbd5+uTEbNYbt9f1Ue2fGfFF1E5HC+buue3em5jlMJ/g/XyfimTu3Ld4xy+4RbZDFxQ26DZ/dg1IJpdgaetU4xhKtGb4H9pMbrQUoMBzZDilY94y/SYjw5R5rPN+ih7q3WZnGl3YpUk087bSZyGR8wejoljWQaskPjQ41KOGjo6hDhqm+HY2TpD1ssVRyedySw+KnmWhHpl5iKc6SZwQHjHCBAp4Tg3KmOIk4y4y9SpMtn8u+W4p0sjvHY3st9MiyVGk0Ytk0H/BFwQgYbmmxj+4Ryrfvlc1tOm9nEWByIGu20iVUltSHeTk0r5zegin443E1wgEnBca3mG/KHYJjq0Dt6u2af6esVEQyk4vl4RvLMCbfNLpRAPJ8RcAi/wqL46DUMI9m8Noeev74Pq7Eufr8GH4LR9ci7jCNsHWcPAbk+tcBsksHREpCXc3fPfaLjGxBuBcSef56zvqtKQ7+vBo2nrFKhQ4FxB8NN02BIMecGFzov7IU3g X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3022.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(366004)(346002)(39860400002)(136003)(396003)(376002)(451199021)(8936002)(8676002)(5660300002)(4326008)(6916009)(66946007)(66476007)(66556008)(316002)(54906003)(2906002)(41300700001)(6666004)(478600001)(6486002)(6506007)(26005)(1076003)(107886003)(6512007)(83380400001)(186003)(36756003)(2616005)(86362001)(38100700002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?E85lERHnonFOLmCDSD8HiyPzvk1SlzUAXOk4YIm1nJMo9uqAe0GEKwPyMtTy?= =?us-ascii?Q?p4pBoW3yTile2BoYQDe8zuUnAy9/6c9qNabKX6puW6FFUmVZ/AakCggRuAsn?= =?us-ascii?Q?ur00fUr9M0uCXFhyEoxNl/QJuqqq4/G5NXzBPsWHXBNaydM33irWD9boWgmd?= =?us-ascii?Q?s/e0nWrxZfxt1DVX7pt44a+TwL/+vxxJ6MEVxVPSY4AOgVZGtXRjuIGfgXbC?= =?us-ascii?Q?fw4TCLd3zO1kxTCacH2o5q0o63OSFSlirvFDd6v4XcDn2FpWlwW6m32fcKk8?= =?us-ascii?Q?2/Mf8/4lIrs1Tev1Bo8AiTP4YbqGUazAqZnIPakF3nHUmjLZ/UF1UwhdUizA?= =?us-ascii?Q?rWjvGt1FVBEuZctKruzf87sIvSk3YnnhmBBAk5Cv4XyPM02mLG6wUGt8IfuI?= =?us-ascii?Q?Yr4An7WC6lng8wUVGG4jJBe0PDVW9GQTrdGgEkG3hPH7nrnoSvf9k2GS7Bq1?= =?us-ascii?Q?xC//Ke0WvZrKOTMq09W/x2cIEbmUpD5AXz7C1CO0qgIg5n4W+QDAtOfORYfb?= =?us-ascii?Q?JeMCsab4uXnvus/kkHSfC9/zC1gnLhx+tVA3OwKri3fnHMEpdb6XWHS7JTaa?= =?us-ascii?Q?uyVmuKTnjwVN+lxgneaSeUYw/H46tdicDQ2roMxfgZcqHatpZs4Gr6nIin/b?= =?us-ascii?Q?xkKV8U06dJXMI8p4TCScU7tU7fa9GNrOwBySfEPclrwLoFLVW3l6mJCyCVr6?= =?us-ascii?Q?jQK1AoXGux7Pl28ROIn+QTWySXHX9s8WUeh8HI9QsFpb4OFUmZYAEa2HiBLu?= =?us-ascii?Q?bM6YggnLfI/AhYChjRkEr+og14IQH/sWcesHEPyPrqPVFWgvBleA2novTKVA?= =?us-ascii?Q?FRuIw0+gt/KJPYCPTFzwm0V2UGqfCD826e5JUuwoSGWLJwMPzeK57HyZrAsT?= =?us-ascii?Q?6Wxc8Pd4MqIBmweugRrlCvh1qMuHJMyr5oEDBsKngmSlzXoCHOTJzoQwLsSX?= =?us-ascii?Q?NDFX0myVnyYujKd086xQ4ngQwORE4ZlPczzxogJyVmDgpROhIeiaN8BLOYbe?= =?us-ascii?Q?TJjPXS1iRHHlT747fk0O5Kw43wnrJANgjfEsPpf8XDg0NvalfshjNzfPVtls?= =?us-ascii?Q?w7vg9L0HSXZV72YgBYzKDiyDbQoIerHi0zp9Urut+FyeyzV9shOWAviBo9pC?= =?us-ascii?Q?j0u+Qb3xaz7FzqZRgL3R9JDeD2gOFDvR+B602Yix00ldhaKnYBybfjAJXXnF?= =?us-ascii?Q?OsRSJPErK5YP6TSzln1nMrKcgXaxrfr4etnuSBX7Pc02CERqr/LG6JYraKA3?= =?us-ascii?Q?qPbIdPVfz722NzWfTl3sW9UXVy8oouQu/KYqRh+c15LSNeG6tBY9jK0x+wT+?= =?us-ascii?Q?w5RNvBbTi/veOZMMk8lgpnc0jkeJ1ujKm2SlK8A5czbJyXr4TjlCr0PNnk6B?= =?us-ascii?Q?D3gLml+ku2fXUv26lDeDvR2/1RhiRkSRDRAYuIR6n84UQ1P2iPyoOlj6AiNy?= =?us-ascii?Q?QPQv3jZLurq+JZFM54AaaieOR0wC5B/Koa9EqaPa2dbVoCZjA7IDCV9droyJ?= =?us-ascii?Q?64tXHnsXTfnhGG9YiaFPzWUfsbMy2xl8PTm1cjen8oZ6IBT2vlTraywHb5G/?= =?us-ascii?Q?6mLCc38JuIdEb2cmCvUOTmJx+yuSk66z9ct0WrUc3C/CvvsarBgYCN/0O+rp?= =?us-ascii?Q?/A=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: =?us-ascii?Q?EFZ9tZrfCxV1Nsca/mQrlXaWeCJbiwD0qbiD0j2JQepVTbJW0rvi4qkkEDxc?= =?us-ascii?Q?HvQrqPinQt/czT2laJcAjrKsQzhfk6FpjWu2pOGgUutDBKoRGiGRlkagbNm7?= =?us-ascii?Q?JtjmbY80rbeH9uo5XXR8TW9TUKUfU9bo4i6CP1ickqiazjYsmHrJ1GsqbTMT?= =?us-ascii?Q?VVkbXj0LVgY3y5Y395zcefYUKCQWUyj65NvH80dijGta/UmwQsSNlHnUoNiL?= =?us-ascii?Q?JBlOCwd4PVryYncZSdk/pEwKAoHSHbkX0SCOFaJIfLUtkbgh9DsBFHvUrEaU?= =?us-ascii?Q?XMWZNOVFyLWcLwGYFPAN4qcsM/ZQ6+YTxgxAEpOri26AG+TWpjRkPWKmIoIf?= =?us-ascii?Q?+7c3/XcvYeRf12L58O98TPCfAlF+rvIHY1eYNFE7FBEFsuJ4Hs6oZpZoG+r4?= =?us-ascii?Q?NDq6jMdbO66N6jWKiZj5+ok88R22iOCPgApUWFutfBoA3cMXj5APu7vVGmc0?= =?us-ascii?Q?csOlqD8XjeeE/GDTV6tF7WdaT+9f/LpFqucF+9977HZpxcqe0Bsfqx+YYQod?= =?us-ascii?Q?D1SNbYBb4NNmcrnwNHHOCedooTVuoN/R5kaTJ2WhvA0Zri6+iFPUtoujGNqG?= =?us-ascii?Q?s0R+bOZJTUBquaotL9ZcRQB1nPxqPob7Wd1SopW2G+WtgLKq27n+c0EueAjC?= =?us-ascii?Q?SyswkngXBW4LrCUjifXQLGvOMhDu6icNle69bsT+ebTWDUL2hyKBAj71JalL?= =?us-ascii?Q?Jx92UO7Be6JAFkW3d+Uarh73Qt0Rf2+POmVl37SuNcsX5ibnmv119iUx4AFb?= =?us-ascii?Q?5RGdn01WvaQig2XO083GopvZHa/qljP9lOxuKpuQuK79N+71c+nzmELpA4XU?= =?us-ascii?Q?u1XeAdtVdYKCdOrL0fNA+fFbPmZeKulMzpYMXa8naaIAJU/+tj6kUR4fghGI?= =?us-ascii?Q?abyhnhKtH9R+3/4BW/BxZvw/VDL8YAdA/NuuYegbARBmZQ8rSFm8VKW+iCgo?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 21f98b25-61ff-460a-1927-08db6b85404f X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Jun 2023 20:40:25.7432 (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: Byx8VIziLtcaGLxkhXV51lGLldpzDUcRF10yiWivYWusligkl5CcTtLzD1gGCGH3tRbXFjjHCsGwBRDZ3FAX7w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR10MB5868 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.957,Hydra:6.0.573,FMLib:17.11.176.26 definitions=2023-06-12_16,2023-06-12_02,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=983 bulkscore=0 mlxscore=0 spamscore=0 malwarescore=0 adultscore=0 phishscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2305260000 definitions=main-2306120176 X-Proofpoint-ORIG-GUID: ZeGkSo8bZNxgKlZvaQXNXL-sJIYC_5hQ X-Proofpoint-GUID: ZeGkSo8bZNxgKlZvaQXNXL-sJIYC_5hQ Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Move the definition of vma_iter_clear_gfp() from mmap.c to internal.h so it can be used in the nommu code. This will reduce node preallocations in nommu. Signed-off-by: Liam R. Howlett --- mm/internal.h | 12 ++++++++++++ mm/mmap.c | 12 ------------ mm/nommu.c | 12 ++++-------- 3 files changed, 16 insertions(+), 20 deletions(-) diff --git a/mm/internal.h b/mm/internal.h index 2691deca9699..d78fd0fafa3b 100644 --- a/mm/internal.h +++ b/mm/internal.h @@ -1057,6 +1057,18 @@ static inline void vma_iter_clear(struct vma_iterato= r *vmi, mas_store_prealloc(&vmi->mas, NULL); } =20 +static inline int vma_iter_clear_gfp(struct vma_iterator *vmi, + unsigned long start, unsigned long end, gfp_t gfp) +{ + vmi->mas.index =3D start; + vmi->mas.last =3D end - 1; + mas_store_gfp(&vmi->mas, NULL, gfp); + if (unlikely(mas_is_err(&vmi->mas))) + return -ENOMEM; + + return 0; +} + static inline struct vm_area_struct *vma_iter_load(struct vma_iterator *vm= i) { return mas_walk(&vmi->mas); diff --git a/mm/mmap.c b/mm/mmap.c index 75b2a86e1faa..22c71dff762b 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -154,18 +154,6 @@ static inline struct vm_area_struct *vma_prev_limit(st= ruct vma_iterator *vmi, return mas_prev(&vmi->mas, min); } =20 -static inline int vma_iter_clear_gfp(struct vma_iterator *vmi, - unsigned long start, unsigned long end, gfp_t gfp) -{ - vmi->mas.index =3D start; - vmi->mas.last =3D end - 1; - mas_store_gfp(&vmi->mas, NULL, gfp); - if (unlikely(mas_is_err(&vmi->mas))) - return -ENOMEM; - - return 0; -} - /* * check_brk_limits() - Use platform specific check of range & verify mlock * limits. diff --git a/mm/nommu.c b/mm/nommu.c index f670d9979a26..a764b86b132a 100644 --- a/mm/nommu.c +++ b/mm/nommu.c @@ -1383,17 +1383,13 @@ static int vmi_shrink_vma(struct vma_iterator *vmi, =20 /* adjust the VMA's pointers, which may reposition it in the MM's tree * and list */ - if (vma_iter_prealloc(vmi)) { - pr_warn("Allocation of vma tree for process %d failed\n", - current->pid); - return -ENOMEM; - } - if (from > vma->vm_start) { - vma_iter_clear(vmi, from, vma->vm_end); + if (vma_iter_clear_gfp(vmi, from, vma->vm_end, GFP_KERNEL)) + return -ENOMEM; vma->vm_end =3D from; } else { - vma_iter_clear(vmi, vma->vm_start, to); + if (vma_iter_clear_gfp(vmi, vma->vm_start, to, GFP_KERNEL)) + return -ENOMEM; vma->vm_start =3D to; } =20 --=20 2.39.2 From nobody Sun Feb 8 06:04:58 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 20BF4C7EE43 for ; Mon, 12 Jun 2023 20:42:17 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233073AbjFLUls (ORCPT ); Mon, 12 Jun 2023 16:41:48 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59580 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234874AbjFLUk4 (ORCPT ); Mon, 12 Jun 2023 16:40:56 -0400 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B55631984 for ; Mon, 12 Jun 2023 13:40:49 -0700 (PDT) Received: from pps.filterd (m0246627.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 35CKOW3c004153; Mon, 12 Jun 2023 20:40:32 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2023-03-30; bh=R0qsDcG9O4MhzZqrq1oD6FDIspNJvYaqrNhWXitLwfg=; b=Y3b+g8r3438KMZoG9jk/PrPBc1kQC6lwmgrMntLEla145gmNoVf288KgfIox/enLPgIC HC/lykFg9Fu1krocF+AAVOfSmz4DhimQLFIst+gWNTHztGq6+cM7jyih+iyrU0RU/XrI /Cf6agLAHvVKFINXOXSZe2NjVNoNplsT9Ogwq/dAc19RRz5gK+tLlF4RjY5kIiTvwV6Y VnDkHydtkwhTYy2hkTKW2ygXlj39wCxEgPDR2S5FqPZp4v8n+V1hYpoJMa0xZnk3OkuA VVdr4jW1vFhFhmuqHxXd43BfOOF76bsveJ+3R2Gp1AlGKxLBOYNYxcUQaOx3o4mTOZ1a RA== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3r4fs1uxan-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 12 Jun 2023 20:40:31 +0000 Received: from pps.filterd (phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 35CKTaW1021673; Mon, 12 Jun 2023 20:40:31 GMT Received: from nam02-bn1-obe.outbound.protection.outlook.com (mail-bn1nam02lp2048.outbound.protection.outlook.com [104.47.51.48]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3r4fm39bw6-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 12 Jun 2023 20:40:31 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Zxz0N6LVqdEFFJiaRp9WAFKOx1xBLjerCHfJ49qA68Fmj6Y61fShuTBSb3/7/aa19Iw3mNV2lxR/pi3xkaYL8icR6gyC47Xd6wF6g6ukVBOqmZTge8EPLcHj+atIi+P1LnTf2HUS4brtnaDfCHapXQ/F0ECHreCEJBYbP9S0zMlJ6GKQ0TiUYghL3AptG19bFGL7uDOTCiw4IFDqX5RauiWxeM4KlWfhkAeFodP3QYgsk0SPIga5IwOJ3bNiql5GzuloBdqYDx9A3aFoxk7+WpX1wspkPPu3UKeQ375YYrqlD/Up1dxl17tp2wXUIU8eJhLfYyRWZm2G9mXzmb4+IA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=R0qsDcG9O4MhzZqrq1oD6FDIspNJvYaqrNhWXitLwfg=; b=DAGmSOoMM+Rtk5QVkHbLl5DowlG8igiXQ79g93ILJGZqAcfWdLNKCIxrMz1BoXmoaE9jDIduYCv11mA4gIih4mvbQF3blAZIcrv16bApWEcIC5V9JFYX3MfCnj7l6KfHrCqxZoqJXZ7C1bSc8NDkyzeMlacjpCLOuPdjiv0wfHkhiWymWjwi/4HYvH8YGiHBaWWHy4Bhvy6UEZKaVZ53Bqer6yQHVIJ45o4fsUmsT8dKmjVbuXbq9jrxjoWN8cRYkU3gT3Edt6tFff2Hg6U7/OdcHRIyhP3fZYgFnkqN2bXGMKy3QO9o4tNtDMdwTVL2Z0+8wnblX6ScKaRmndS6Iw== 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=R0qsDcG9O4MhzZqrq1oD6FDIspNJvYaqrNhWXitLwfg=; b=CzpAq6EYG94Td/g4JsxG6pzseIWOu6Rt0z0vvyCbhigNsIDKyFZaGtwiIjK/dLvchoGhstL/wCYXpUhoGpqg67Cgabt7TShJrEZN0qGe0v+tUtf9OnrSx9ENv/3JHujy3JfpCycbi+O5A357V4/P4cY/P+MFfSotuCzUwzjYi04= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by SA1PR10MB5868.namprd10.prod.outlook.com (2603:10b6:806:22b::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6455.44; Mon, 12 Jun 2023 20:40:28 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::998f:d221:5fb6:c67d]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::998f:d221:5fb6:c67d%7]) with mapi id 15.20.6455.045; Mon, 12 Jun 2023 20:40:28 +0000 From: "Liam R. Howlett" To: Andrew Morton Cc: maple-tree@lists.infradead.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Peng Zhang , "Liam R. Howlett" Subject: [PATCH v2 11/16] mm: Set up vma iterator for vma_iter_prealloc() calls Date: Mon, 12 Jun 2023 16:39:48 -0400 Message-Id: <20230612203953.2093911-12-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230612203953.2093911-1-Liam.Howlett@oracle.com> References: <20230612203953.2093911-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0398.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:108::19) To SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN6PR10MB3022:EE_|SA1PR10MB5868:EE_ X-MS-Office365-Filtering-Correlation-Id: e55d9ba3-17aa-4460-d8a2-08db6b8541da X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: baiAlL7d72i00B1ajKVYNocWxGFowIdsB/lK7kgGCoBgQ8wNX3xAXDGzwaAZo1tmfKaQ2eu4U/UTGpp00zxHTs2qknGFRss423KPY4V8ZdYcIOdsga4J+HjRfFV5BLu4v4j0Q1rLySK3XSSPUNWZY/mj3O2fckbTUUFMCIRQRboAW0IFWXBpnPylCRU6oH0TCtbRFVVTkx4PJpsVgpRF3g5SEdk9pKiUuMqYoqc9nNuCDKYxiTc2q0XD7sHnSRw1uGh2b034G8/+ZDnC41N1BZSL+iMEKqlBIIIDNG1g/1zeflRiDGbeBlJTMYNi7Sbqj7KSRHIwMwNXQSE1DwothH3SnbUXRm1Lf0slyvWXEqFaRq10+6x4QXX5RAxaWDXEQ761i0sI5ZkVV0+1F+lOfpfkJesfzKL/NH3t+Sj/vyQ8HE7Su3WB0rDXjaEkX4rI2y4BukN3jBqJE3JAhiW/QAz+i6iezacCCAs5y4WG657PfF7KVzwxxbBZCN4biKg5RD0hA7viaQVb0Zebnz9kSKpKWqDtzLwx6nRFu3Tp8dc2li99s63sWnW0ies0B7Ag X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3022.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(366004)(346002)(39860400002)(136003)(396003)(376002)(451199021)(8936002)(8676002)(5660300002)(4326008)(6916009)(66946007)(66476007)(66556008)(316002)(54906003)(2906002)(41300700001)(30864003)(6666004)(478600001)(6486002)(6506007)(26005)(1076003)(107886003)(6512007)(83380400001)(186003)(36756003)(2616005)(86362001)(38100700002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?JLWDf2Z159QOImfXtQ89HkOyaYpafdVRF2E5ZLCnHerdojwzlc4laSINEXOv?= =?us-ascii?Q?q/Xkhz+b/0FxZOjYiSNTik09ZQ6CDZHIxN3olFU1YUZSs3xoKP+JBiRYiXA4?= =?us-ascii?Q?yiBJgk+Z9YQdF3/23YAaNw2ixBz2QPXEy2y4mTB5PQtMYGyCb71KyJwEJOrE?= =?us-ascii?Q?891yWwe4G0EE2c+AktTR50L6PNuqMDHIKze98UjJxreRxGxVR7LK+1zYCv/c?= =?us-ascii?Q?5NSWMJeg9eTbYj8nsmweEKXNDnXitee3lyL9m759HIrm9qj7OvuX/84O//50?= =?us-ascii?Q?YD0GTjd2Cu886tKnwV4IuM/DnBJ/SwwQdLfeMijM4s+alBQ1Qs0KVohzKq/S?= =?us-ascii?Q?LpyXKPGGOm84DZ98tb1jYWYBBfVvCURS35uav7xNmQO6KL+zwci+UnNKa7JR?= =?us-ascii?Q?2ZFBmDX84k7rhZGeG9m6YSFa7xESuch4IRHGecLoGjPsxKShpK07YF1JBYYS?= =?us-ascii?Q?51OCu0KURqS/iup4WbHCrdLkOqyWE2PbxWobbgfvopAEX6Gc0QOMELYe0Cia?= =?us-ascii?Q?hlL6wYVtb7QnGzawH/Py9RgtGPtvyu8MkyXnFKQ6qj/bNxgkgu9sNzbzIpwe?= =?us-ascii?Q?sGrFK+jMKSZ6GOuXaeTMx0LoFq6OwiuwhKeW7koThzumcTMiFltoNcWRrF5a?= =?us-ascii?Q?2tm15CA73tmzWi97cvEWcdB9JmxHQKjQhy1CniHdOnsWhB+dE7W7W5RVKBqb?= =?us-ascii?Q?E+BFYtP/uaqEZbAs+5jvkaD3eKyfa3LO/t7rMttQAxPfgsIUUOfI0RpDpOwH?= =?us-ascii?Q?ZpMzR1B/CzC9hv04a+vGudp6JlGO65U0Z7J+PcgFkp/PNiyO3i6NbwuOK9NQ?= =?us-ascii?Q?/Hugf3H/LrPZHWxLaPtxFwpMc3qy2uicNCoh+bltZ7zA21zj9VIqgpNTkt8p?= =?us-ascii?Q?dKoLdZjLHz96PUot32Y+y2l6eM6kxXJK80xr81hzVbtdM8eb6DunUqZAANbA?= =?us-ascii?Q?mIZIsgN4f2OLTFcYzuVZ7AFe9eFyNjQks72tz0fbPWOMqW1yNL0Q3YvAq5hw?= =?us-ascii?Q?o9GweVVaaPjAXmU/JlHCDi43iV+M5jiXaO9v4VSuWZNEUQdixvckcaW3XCid?= =?us-ascii?Q?thzXj9iC+0R8TyT6QTGLielXJAijSGm07RbVmZR4yhlFdnTmtUYASNHyHp4E?= =?us-ascii?Q?SWi5+G6SkIEutaAd5jKQga/dQB286F/C9N/QuyNm9uEKE6kU0Gpiq4yzCrhT?= =?us-ascii?Q?sfCzWFpc1wiRmhNPiYFGTgWQ5KLst9bCEJEAfj51ZxoU8QrbubSSgmf6qGyV?= =?us-ascii?Q?ZeWgAdce+RlTbSvzDTbjBGHlbGEGdNfd5dwN1/iCaUTSjholSRuezoHT5gxV?= =?us-ascii?Q?tg2fUX/SBm+MkWw+1jbGEI9ZbiQIS31YABe8pvNrNPTqPp2j/gwyLznHzdG5?= =?us-ascii?Q?ULJKo+q4BFuddB/9pVlIBqnHlcrd7bIHfbaoF+1YIHyeaXBmuUvvnO8Hrm3t?= =?us-ascii?Q?h4RYJdBXlv5n+Gyr9FWWHMwE/pw3XhzgxHkUnx8qmvzl31W0PzApBMOsnwgc?= =?us-ascii?Q?6QamJYgcjHCjNMzktVveEg9P/LFBuGy4/q6hU+H1ctbluQdTK0gSYcd5k3D9?= =?us-ascii?Q?qcPsq3D3CACKxQUAzDdIWpsA9dF8HdqusN+MjszrPbaw1ZiK/acjUhFsZsET?= =?us-ascii?Q?Vg=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: =?us-ascii?Q?z9DM7iNkrT/OLzyoklmwwE52k/J2QjoViwMGBkMgxM/s6HKaQYEv/hrFm0yr?= =?us-ascii?Q?qGdseZbHbdHBWZEml4a01bR3YZ0dduqnFhX0g/HLPSJuGMYmX3mfZ+bAunuR?= =?us-ascii?Q?ty7J/RsgwWP/8zJ+xOxuEt368fRf1KD6ND23Caupdm7c7w++PQcikzStRU9J?= =?us-ascii?Q?/iji/0Hvkk+zlblBnwcy5OdnhS2hi8gXPyqTcbS57hAwcdczMcskYKoZ6voH?= =?us-ascii?Q?2XTjxwESM8BhabOrrowVGq0gecbFnnxYCYkMLfRgZkNR3uLExMRxnXDjftBQ?= =?us-ascii?Q?N5d3Z3jg4ZHHXg7fqQa+ml74Nk+tIcXi2wsCrsl/xFf494XEUZxkWlA+NMOV?= =?us-ascii?Q?ZHRxt7Beh9zQZZqTEdn0A3yFrjZppSM1yCuez2kOPxsNZxKuw4p2VFZUtrmW?= =?us-ascii?Q?4la02QrsqNTPahwbLNDGdx07dNLJhAXOycMQqjZixNoC2Gd4TEMafHzhadiV?= =?us-ascii?Q?K867fm/is3D2nmFp3U0zSqsNKm9WlRaLIZ8OEtIEL6mGNufPWDV3tZya5e6D?= =?us-ascii?Q?Lw2xjjUrS2B2IZrGZlnAI0lFryf92w6WGAU248TDNwQ+nzOYLAkDb+25nTdV?= =?us-ascii?Q?UCecdpNw0T9lTmrLi/aI6fdampOUS8BRBhioc2Bfslxb7ZlZ2lO5SgF8y1HA?= =?us-ascii?Q?82+frPdIVCJhgZbWMluYsw4rH9ZQ3OJLnmcLIJvRpWhxuS/Do7NEgDPSwStQ?= =?us-ascii?Q?6gQxeSNNVEWuh+nSymdjsMKuFnT04L5rLm2gflY9ETsTqz07VhfF0ObO6HzY?= =?us-ascii?Q?386svlFXx9NdXf+SR6VM7gMpsC6Bn/6byMLPP+KZ8FRIVvZKeFoGK11lOH7K?= =?us-ascii?Q?8Dh1AmmlvibHtvpBypi7UeRlGre6yXkHK8/Hc/P1x/R9uUFHxBY7jM+pr8GC?= =?us-ascii?Q?TnkXsrAa5u/8a5TL/VA1MGCR1tOKunPAz1IpXhX8R7KuH/AwWVwOpFQ11ArI?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: e55d9ba3-17aa-4460-d8a2-08db6b8541da X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Jun 2023 20:40:28.4000 (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: seXZaU6wB3eyC6jRbU7BjSTF7MTpTrC4rty6Ou6dFd6CB5k1xVgjQop7oSOZP8u8YiDqwrpOOlw3CPC47z+m0w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR10MB5868 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.957,Hydra:6.0.573,FMLib:17.11.176.26 definitions=2023-06-12_16,2023-06-12_02,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 mlxscore=0 phishscore=0 suspectscore=0 mlxlogscore=999 bulkscore=0 spamscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2305260000 definitions=main-2306120176 X-Proofpoint-GUID: D5IC79pNnINVD8vvbzvUb9loOXEQAmE3 X-Proofpoint-ORIG-GUID: D5IC79pNnINVD8vvbzvUb9loOXEQAmE3 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Set the correct limits for vma_iter_prealloc() calls so that the maple tree can be smarter about how many nodes are needed. Signed-off-by: Liam R. Howlett --- fs/exec.c | 1 + mm/internal.h | 18 +++++------- mm/mmap.c | 81 +++++++++++++++++++++++++++++++-------------------- mm/nommu.c | 33 +++++++++------------ 4 files changed, 72 insertions(+), 61 deletions(-) diff --git a/fs/exec.c b/fs/exec.c index 25c65b64544b..dc0ba74ebb74 100644 --- a/fs/exec.c +++ b/fs/exec.c @@ -697,6 +697,7 @@ static int shift_arg_pages(struct vm_area_struct *vma, = unsigned long shift) if (vma !=3D vma_next(&vmi)) return -EFAULT; =20 + vma_iter_prev_range(&vmi); /* * cover the whole range: [new_start, old_end) */ diff --git a/mm/internal.h b/mm/internal.h index d78fd0fafa3b..531b2e95146c 100644 --- a/mm/internal.h +++ b/mm/internal.h @@ -1045,23 +1045,21 @@ static inline void vma_iter_config(struct vma_itera= tor *vmi, /* * VMA Iterator functions shared between nommu and mmap */ -static inline int vma_iter_prealloc(struct vma_iterator *vmi) +static inline int vma_iter_prealloc(struct vma_iterator *vmi, + struct vm_area_struct *vma) { - return mas_preallocate(&vmi->mas, NULL, GFP_KERNEL); + return mas_preallocate(&vmi->mas, vma, GFP_KERNEL); } =20 -static inline void vma_iter_clear(struct vma_iterator *vmi, - unsigned long start, unsigned long end) +static inline void vma_iter_clear(struct vma_iterator *vmi) { - mas_set_range(&vmi->mas, start, end - 1); mas_store_prealloc(&vmi->mas, NULL); } =20 static inline int vma_iter_clear_gfp(struct vma_iterator *vmi, unsigned long start, unsigned long end, gfp_t gfp) { - vmi->mas.index =3D start; - vmi->mas.last =3D end - 1; + __mas_set_range(&vmi->mas, start, end - 1); mas_store_gfp(&vmi->mas, NULL, gfp); if (unlikely(mas_is_err(&vmi->mas))) return -ENOMEM; @@ -1098,8 +1096,7 @@ static inline void vma_iter_store(struct vma_iterator= *vmi, ((vmi->mas.index > vma->vm_start) || (vmi->mas.last < vma->vm_start))) vma_iter_invalidate(vmi); =20 - vmi->mas.index =3D vma->vm_start; - vmi->mas.last =3D vma->vm_end - 1; + __mas_set_range(&vmi->mas, vma->vm_start, vma->vm_end - 1); mas_store_prealloc(&vmi->mas, vma); } =20 @@ -1110,8 +1107,7 @@ static inline int vma_iter_store_gfp(struct vma_itera= tor *vmi, ((vmi->mas.index > vma->vm_start) || (vmi->mas.last < vma->vm_start))) vma_iter_invalidate(vmi); =20 - vmi->mas.index =3D vma->vm_start; - vmi->mas.last =3D vma->vm_end - 1; + __mas_set_range(&vmi->mas, vma->vm_start, vma->vm_end - 1); mas_store_gfp(&vmi->mas, vma, gfp); if (unlikely(mas_is_err(&vmi->mas))) return -ENOMEM; diff --git a/mm/mmap.c b/mm/mmap.c index 22c71dff762b..eaebcc8f60d2 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -411,7 +411,8 @@ static int vma_link(struct mm_struct *mm, struct vm_are= a_struct *vma) VMA_ITERATOR(vmi, mm, 0); struct address_space *mapping =3D NULL; =20 - if (vma_iter_prealloc(&vmi)) + vma_iter_config(&vmi, vma->vm_start, vma->vm_end); + if (vma_iter_prealloc(&vmi, vma)) return -ENOMEM; =20 if (vma->vm_file) { @@ -664,19 +665,16 @@ int vma_expand(struct vma_iterator *vmi, struct vm_ar= ea_struct *vma, /* Only handles expanding */ VM_WARN_ON(vma->vm_start < start || vma->vm_end > end); =20 - if (vma_iter_prealloc(vmi)) + /* Note: vma iterator must be pointing to 'start' */ + vma_iter_config(vmi, start, end); + if (vma_iter_prealloc(vmi, vma)) goto nomem; =20 vma_prepare(&vp); vma_adjust_trans_huge(vma, start, end, 0); - /* VMA iterator points to previous, so set to start if necessary */ - if (vma_iter_addr(vmi) !=3D start) - vma_iter_set(vmi, start); - vma->vm_start =3D start; vma->vm_end =3D end; vma->vm_pgoff =3D pgoff; - /* Note: mas must be pointing to the expanding VMA */ vma_iter_store(vmi, vma); =20 vma_complete(&vp, vmi, vma->vm_mm); @@ -703,19 +701,19 @@ int vma_shrink(struct vma_iterator *vmi, struct vm_ar= ea_struct *vma, =20 WARN_ON((vma->vm_start !=3D start) && (vma->vm_end !=3D end)); =20 - if (vma_iter_prealloc(vmi)) + if (vma->vm_start < start) + vma_iter_config(vmi, vma->vm_start, start); + else + vma_iter_config(vmi, end, vma->vm_end); + + if (vma_iter_prealloc(vmi, NULL)) return -ENOMEM; =20 init_vma_prep(&vp, vma); vma_prepare(&vp); vma_adjust_trans_huge(vma, start, end, 0); =20 - if (vma->vm_start < start) - vma_iter_clear(vmi, vma->vm_start, start); - - if (vma->vm_end > end) - vma_iter_clear(vmi, end, vma->vm_end); - + vma_iter_clear(vmi); vma->vm_start =3D start; vma->vm_end =3D end; vma->vm_pgoff =3D pgoff; @@ -991,7 +989,17 @@ struct vm_area_struct *vma_merge(struct vma_iterator *= vmi, struct mm_struct *mm, if (err) return NULL; =20 - if (vma_iter_prealloc(vmi)) + if (vma_start < vma->vm_start || vma_end > vma->vm_end) + vma_expanded =3D true; + + if (vma_expanded) { + vma_iter_config(vmi, vma_start, vma_end); + } else { + vma_iter_config(vmi, adjust->vm_start + adj_start, + adjust->vm_end); + } + + if (vma_iter_prealloc(vmi, vma)) return NULL; =20 init_multi_vma_prep(&vp, vma, adjust, remove, remove2); @@ -1000,8 +1008,6 @@ struct vm_area_struct *vma_merge(struct vma_iterator = *vmi, struct mm_struct *mm, =20 vma_prepare(&vp); vma_adjust_trans_huge(vma, vma_start, vma_end, adj_start); - if (vma_start < vma->vm_start || vma_end > vma->vm_end) - vma_expanded =3D true; =20 vma->vm_start =3D vma_start; vma->vm_end =3D vma_end; @@ -1945,7 +1951,7 @@ int expand_upwards(struct vm_area_struct *vma, unsign= ed long address) struct vm_area_struct *next; unsigned long gap_addr; int error =3D 0; - MA_STATE(mas, &mm->mm_mt, 0, 0); + MA_STATE(mas, &mm->mm_mt, vma->vm_start, address); =20 if (!(vma->vm_flags & VM_GROWSUP)) return -EFAULT; @@ -1970,6 +1976,10 @@ int expand_upwards(struct vm_area_struct *vma, unsig= ned long address) /* Check that both stack segments have the same anon_vma? */ } =20 + if (next) + mas_prev_range(&mas, address); + + __mas_set_range(&mas, vma->vm_start, address - 1); if (mas_preallocate(&mas, vma, GFP_KERNEL)) return -ENOMEM; =20 @@ -2013,7 +2023,6 @@ int expand_upwards(struct vm_area_struct *vma, unsign= ed long address) anon_vma_interval_tree_pre_update_vma(vma); vma->vm_end =3D address; /* Overwrite old entry in mtree. */ - mas_set_range(&mas, vma->vm_start, address - 1); mas_store_prealloc(&mas, vma); anon_vma_interval_tree_post_update_vma(vma); spin_unlock(&mm->page_table_lock); @@ -2052,6 +2061,10 @@ int expand_downwards(struct vm_area_struct *vma, uns= igned long address) return -ENOMEM; } =20 + if (prev) + mas_next_range(&mas, vma->vm_start); + + __mas_set_range(&mas, address, vma->vm_end - 1); if (mas_preallocate(&mas, vma, GFP_KERNEL)) return -ENOMEM; =20 @@ -2096,7 +2109,6 @@ int expand_downwards(struct vm_area_struct *vma, unsi= gned long address) vma->vm_start =3D address; vma->vm_pgoff -=3D grow; /* Overwrite old entry in mtree. */ - mas_set_range(&mas, address, vma->vm_end - 1); mas_store_prealloc(&mas, vma); anon_vma_interval_tree_post_update_vma(vma); spin_unlock(&mm->page_table_lock); @@ -2255,10 +2267,6 @@ int __split_vma(struct vma_iterator *vmi, struct vm_= area_struct *vma, if (!new) return -ENOMEM; =20 - err =3D -ENOMEM; - if (vma_iter_prealloc(vmi)) - goto out_free_vma; - if (new_below) { new->vm_end =3D addr; } else { @@ -2266,6 +2274,11 @@ int __split_vma(struct vma_iterator *vmi, struct vm_= area_struct *vma, new->vm_pgoff +=3D ((addr - vma->vm_start) >> PAGE_SHIFT); } =20 + err =3D -ENOMEM; + vma_iter_config(vmi, new->vm_start, new->vm_end); + if (vma_iter_prealloc(vmi, new)) + goto out_free_vma; + err =3D vma_dup_policy(vma, new); if (err) goto out_free_vmi; @@ -2600,8 +2613,12 @@ unsigned long mmap_region(struct file *file, unsigne= d long addr, =20 next =3D vma_next(&vmi); prev =3D vma_prev(&vmi); - if (vm_flags & VM_SPECIAL) + if (vm_flags & VM_SPECIAL) { + if (prev) + vma_iter_next_range(&vmi); + goto cannot_expand; + } =20 /* Attempt to expand an old mapping */ /* Check next */ @@ -2611,6 +2628,7 @@ unsigned long mmap_region(struct file *file, unsigned= long addr, merge_end =3D next->vm_end; vma =3D next; vm_pgoff =3D next->vm_pgoff - pglen; + } =20 /* Check prev */ @@ -2622,9 +2640,10 @@ unsigned long mmap_region(struct file *file, unsigne= d long addr, merge_start =3D prev->vm_start; vma =3D prev; vm_pgoff =3D prev->vm_pgoff; + } else if (prev) { + vma_iter_next_range(&vmi); } =20 - /* Actually expand, if possible */ if (vma && !vma_expand(&vmi, vma, merge_start, merge_end, vm_pgoff, next)) { @@ -2633,9 +2652,6 @@ unsigned long mmap_region(struct file *file, unsigned= long addr, } =20 cannot_expand: - if (prev) - vma_iter_next_range(&vmi); - /* * Determine the object being mapped and call the appropriate * specific mapper. the address has already been validated, but @@ -2721,7 +2737,7 @@ unsigned long mmap_region(struct file *file, unsigned= long addr, goto close_and_free_vma; =20 error =3D -ENOMEM; - if (vma_iter_prealloc(&vmi)) + if (vma_iter_prealloc(&vmi, vma)) goto close_and_free_vma; =20 if (vma->vm_file) @@ -2994,7 +3010,8 @@ static int do_brk_flags(struct vma_iterator *vmi, str= uct vm_area_struct *vma, if (vma && vma->vm_end =3D=3D addr && !vma_policy(vma) && can_vma_merge_after(vma, flags, NULL, NULL, addr >> PAGE_SHIFT, NULL_VM_UFFD_CTX, NULL)) { - if (vma_iter_prealloc(vmi)) + vma_iter_config(vmi, vma->vm_start, addr + len); + if (vma_iter_prealloc(vmi, vma)) goto unacct_fail; =20 init_vma_prep(&vp, vma); @@ -3009,6 +3026,8 @@ static int do_brk_flags(struct vma_iterator *vmi, str= uct vm_area_struct *vma, goto out; } =20 + if (vma) + vma_iter_next_range(vmi); /* create a vma struct for an anonymous mapping */ vma =3D vm_area_alloc(mm); if (!vma) diff --git a/mm/nommu.c b/mm/nommu.c index a764b86b132a..a96b889cc17e 100644 --- a/mm/nommu.c +++ b/mm/nommu.c @@ -583,7 +583,8 @@ static int delete_vma_from_mm(struct vm_area_struct *vm= a) { VMA_ITERATOR(vmi, vma->vm_mm, vma->vm_start); =20 - if (vma_iter_prealloc(&vmi)) { + vma_iter_config(&vmi, vma->vm_start, vma->vm_end); + if (vma_iter_prealloc(&vmi, vma)) { pr_warn("Allocation of vma tree for process %d failed\n", current->pid); return -ENOMEM; @@ -591,7 +592,7 @@ static int delete_vma_from_mm(struct vm_area_struct *vm= a) cleanup_vma_from_mm(vma); =20 /* remove from the MM's tree and list */ - vma_iter_clear(&vmi, vma->vm_start, vma->vm_end); + vma_iter_clear(&vmi); return 0; } /* @@ -1041,9 +1042,6 @@ unsigned long do_mmap(struct file *file, if (!vma) goto error_getting_vma; =20 - if (vma_iter_prealloc(&vmi)) - goto error_vma_iter_prealloc; - region->vm_usage =3D 1; region->vm_flags =3D vm_flags; region->vm_pgoff =3D pgoff; @@ -1185,6 +1183,10 @@ unsigned long do_mmap(struct file *file, =20 share: BUG_ON(!vma->vm_region); + vma_iter_config(&vmi, vma->vm_start, vma->vm_end); + if (vma_iter_prealloc(&vmi, vma)) + goto error_just_free; + setup_vma_to_mm(vma, current->mm); current->mm->map_count++; /* add the VMA to the tree */ @@ -1231,14 +1233,6 @@ unsigned long do_mmap(struct file *file, len, current->pid); show_free_areas(0, NULL); return -ENOMEM; - -error_vma_iter_prealloc: - kmem_cache_free(vm_region_jar, region); - vm_area_free(vma); - pr_warn("Allocation of vma tree for process %d failed\n", current->pid); - show_free_areas(0, NULL); - return -ENOMEM; - } =20 unsigned long ksys_mmap_pgoff(unsigned long addr, unsigned long len, @@ -1323,12 +1317,6 @@ int split_vma(struct vma_iterator *vmi, struct vm_ar= ea_struct *vma, if (!new) goto err_vma_dup; =20 - if (vma_iter_prealloc(vmi)) { - pr_warn("Allocation of vma tree for process %d failed\n", - current->pid); - goto err_vmi_preallocate; - } - /* most fields are the same, copy all, and then fixup */ *region =3D *vma->vm_region; new->vm_region =3D region; @@ -1342,6 +1330,13 @@ int split_vma(struct vma_iterator *vmi, struct vm_ar= ea_struct *vma, region->vm_pgoff =3D new->vm_pgoff +=3D npages; } =20 + vma_iter_config(vmi, new->vm_start, new->vm_end); + if (vma_iter_prealloc(vmi, vma)) { + pr_warn("Allocation of vma tree for process %d failed\n", + current->pid); + goto err_vmi_preallocate; + } + if (new->vm_ops && new->vm_ops->open) new->vm_ops->open(new); =20 --=20 2.39.2 From nobody Sun Feb 8 06:04:58 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 1B480C88CB5 for ; Mon, 12 Jun 2023 20:41:46 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233643AbjFLUla (ORCPT ); Mon, 12 Jun 2023 16:41:30 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59996 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233617AbjFLUkt (ORCPT ); Mon, 12 Jun 2023 16:40:49 -0400 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E92DA1728 for ; Mon, 12 Jun 2023 13:40:47 -0700 (PDT) Received: from pps.filterd (m0246627.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 35CKOQW1003980; Mon, 12 Jun 2023 20:40:33 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2023-03-30; bh=n9fkLaYuOty+dIbsK0bmceZK6lnVKin+jtS1fPal57o=; b=l8/TrtRRb3BF3qCIj0LPmLOuuYyaks/RGqU3W564+g0JUDYa1W2tO+9laVfW+xG7cTjt 4iI3RUY/VLkhRhzPk1F4QkOtv86X4RZJhKZBWEicAhxiNWINneHGSS+mHe5eyRe+eiGy Lmi8gRRdS4pZEIU1P9IdsOYXpmWZsrY70XXNHjIepSw5HrRrrfpSN7ZXtxLgyHsg3jBL Zma3+xKLLeo3F7IWH6q1lsWs/t5CaPFQqmwH/kxO7dMlQdc+nLM6OTYrpPK2gZleyi/G vGETpqGdGFRYggPs9HsvXDXcNkazd4t2Y4ckTQgeQrjUlTkdVYfQvjK+lBvnDBVXLXCD Ew== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3r4fs1uxaq-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 12 Jun 2023 20:40:32 +0000 Received: from pps.filterd (phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 35CKTaW2021673; Mon, 12 Jun 2023 20:40:31 GMT Received: from nam02-bn1-obe.outbound.protection.outlook.com (mail-bn1nam02lp2048.outbound.protection.outlook.com [104.47.51.48]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3r4fm39bw6-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 12 Jun 2023 20:40:31 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Biva5kqmHDmfulmPhwEhudLNkIA3Sx9T3fNxePUj3H+sCjYdSeVwb+AlRnJf8lYQDkB8wU1l4nOiBfwrVOW6sRp4Qw7mR/erjBBkmDGjl/tq0oywm4zeQo5G2j/iI2AvhTg4Gc5uoOqZTegYeFIxtALopGxcIII03t/Js7hE6DInH2ANk6uuavkz/w+zjtOd9R4OI4HRTPpYfPbmJjKO9mNkEHu6b49A6bzzAKAXzwY+O/W7imMjSmGpuuPy+URwNMIXtZKiYJCSssXDb70nzGfXFJHJeERMFqAFvWF4fkkVnRMP4BQxO0L0dCyVeu6iJ0TQzB5iXOd372rNDasQuA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=n9fkLaYuOty+dIbsK0bmceZK6lnVKin+jtS1fPal57o=; b=QDOPuC621uABdOXMTXU6G04prklZ1de6OQmCwucHpCwHtOau+qoLIaWWhrNZuv5G9/v9CBTvCLM82FdzHMCDap8YwqaKVQpy+17oNLvvHOBr+x9FcmUJT1FaTsgZh+mjnbLV0zsrlKFP5tW7gVUIgoXi6aVgprV12lsBFkcogIPSptBWtIzJuqNHwtOPaVGJ+p8bvtpvdCAd2ifzy3G4uJIdkS/5yZV3FXUCkP5lK5nku6hY89flF/+bGeEuNMjAbeqePUvqwNWQ/naT8SJSJKl/bPa5k2obHgE3jeh0Ful0bE2pWXRvN2Mvly9TSSewhhM6JgLrmGr1fsE6XRnQAQ== 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=n9fkLaYuOty+dIbsK0bmceZK6lnVKin+jtS1fPal57o=; b=XDhsDDVmDJiFxmdAFTpaIwhMHFKYTF+e3HR2shbWqoTA6Qa3CrGtvjuai3Zcf+nByl7yjb2TD1HZ4qnM+R8WfITAUxH/4Iy5l523loXbTORBtX0X6yAgxP6txKdrhxbpwqZFzR+WI+afP3G6DKXijTvkj/55w52FQWbgt76xKEA= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by SA1PR10MB5868.namprd10.prod.outlook.com (2603:10b6:806:22b::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6455.44; Mon, 12 Jun 2023 20:40:30 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::998f:d221:5fb6:c67d]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::998f:d221:5fb6:c67d%7]) with mapi id 15.20.6455.045; Mon, 12 Jun 2023 20:40:30 +0000 From: "Liam R. Howlett" To: Andrew Morton Cc: maple-tree@lists.infradead.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Peng Zhang , "Liam R. Howlett" Subject: [PATCH v2 12/16] maple_tree: Move mas_wr_end_piv() below mas_wr_extend_null() Date: Mon, 12 Jun 2023 16:39:49 -0400 Message-Id: <20230612203953.2093911-13-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230612203953.2093911-1-Liam.Howlett@oracle.com> References: <20230612203953.2093911-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0399.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:108::6) To SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN6PR10MB3022:EE_|SA1PR10MB5868:EE_ X-MS-Office365-Filtering-Correlation-Id: c6bff715-1590-4ef9-c30d-08db6b85432f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: S4Azg8zRXfu/PIrnPS+QbFRj9bC/7sPgv0vOVVSMqc6vpCiI3lJNnhUeAq6+062fM2Uqp2jKr3cMnkk+VzImODJkO7wvMuwPHPPaz+6+lS8uCxAGjA6Iijdzb1ODFUOMIQvbPLb8+WSEc7BMkRTDNTZU2EmuojPY1Ktfh4a6nShW/nc0LgR1oBmO0+YohKs8+2QsHquk1cB5MmOeI2GuN4QXQ333aSZgune08MyFl+gCaJQRTYnIQsy2OJTkL7AVdhEy4xyXA5Sg06zcdLBP6diMe48uLg/qnM90/SA7sxsrf19+oaUiThgov32ZlYclgexXvTNz6VAxDZ5ycWZWvSyLhKeN/YN6wPaCaRhQMmz6sHzxDM+VDf20GiuAvekKBXsOkzPpI1SZplg13UrnVTJb3nZ1BTLXMPi8af9Eko5mEo6T3d9M+e/YqFnnE/h/YoaSbKwvqNW/zahON2hnBS/Tftwlpt7SVUqu1SHfWXsF/Krg74V/PJB6fiMrhHxr0ZuzRjfp25gfQq2v8Dxi2qc5mCrWKVq+WJhF33b8SZAEteeY4UR1wZ4fotWu+IYj X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3022.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(366004)(346002)(39860400002)(136003)(396003)(376002)(451199021)(8936002)(8676002)(5660300002)(4326008)(6916009)(66946007)(66476007)(66556008)(316002)(54906003)(2906002)(41300700001)(6666004)(478600001)(6486002)(6506007)(26005)(1076003)(107886003)(6512007)(83380400001)(186003)(36756003)(2616005)(86362001)(38100700002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?usWxw2IxcrfU1uvE/MbMXTIqYjHtPFi2xROnhDI83KMes8h5dPHPXIZZtyhR?= =?us-ascii?Q?kVuME2lj9nqkW3fdp8abD/qe5qemTk3hpI4Dpm/niHspO45Zfgr7yrITjqlU?= =?us-ascii?Q?H/T+LSddQOCaP/pMx1AaTx8lWhTLlRoGfa0cYCsUT54v/aJyuvTWaXywmVuh?= =?us-ascii?Q?40LPHc2jY8kLMWcZnr5L1sCiclKOLFW5XNQBhwA2iBYGA7IGDRrJL2Kc97Rd?= =?us-ascii?Q?1PT1AU7YDStkoDU1A3PR94q/ts3JFnk1jdcKKytM+VrnIqGSkvNl+Nbc5d2d?= =?us-ascii?Q?ybQF0N4ex6oNS1xez4cw4pcs6kNBgJkcsVCekLtK3jgs2EkRW57b8kcBftS/?= =?us-ascii?Q?PzHoqJkqYMAiO+3CsyB9O6PBmnrDiujzwZEsfDTodrkPeTQNRMlzfCovOirS?= =?us-ascii?Q?fVxKgBEzPAPoJs7nu2rWWIxMf0RdR/kArQC9O603mbv+7rD9DZz6ZJWdlt+/?= =?us-ascii?Q?4TbDsL3puYRE8fDGNcQsLTiN7wY6xAd1Q0/qBRIwmk47iyxJB7GW0WTDbqft?= =?us-ascii?Q?Q+RA5m0ZWIXQANeaAOCXXyz3mDmpHESofiO3AJSZnT7K5UN/QeyA0QTcEUxb?= =?us-ascii?Q?RHr3pFn7afTvUipSSvyVYHP8yFq4eVypwmkBGoLK79Ohlov3gGpJudmuUpp+?= =?us-ascii?Q?OxNzauLCr3ziBGC1hmV9KR2TMoYV2iEbbIoNsZnhUHPTgOXxd+pWt2AldDrp?= =?us-ascii?Q?Uqv+bpgz2GxWQirVuTWIYx11lc3CWXDWzcG9uqtvKC0O1sZVDe6O2zIBEyAw?= =?us-ascii?Q?x45GfEGKvH/Yb6ym5JJ407gkMliYT3bhFacsDZp7nYvSugXdlr53vKaFnsrB?= =?us-ascii?Q?py1i6mpfjZfEoZ18lZX1REIdaFn8gbHsOqDfAYeIwSt6ayiNEJX7EZ1T2JD8?= =?us-ascii?Q?GPVGkZoHAKj4H9jPvOmHbVQTS/tustPS5MEvnroNLODw3PVdAtMZeGuNhtku?= =?us-ascii?Q?gCu+r1M4rX8sysDIdK/vHCK6ThNMzIbBoah7+oYrU13Zr89OdQieotSQVDd8?= =?us-ascii?Q?JGWRuBKCnzhG4bVcX81Y4/fDa3XRMcuoL+5RMRlKDVBFjzEel6fOF0Ah2078?= =?us-ascii?Q?y4caymKpsVLmM2aItCIpoulrweXM5GjugrGfJ+peUgoGnlKsrkxOi0JNCW99?= =?us-ascii?Q?FD9xjpBf7id7/VcwVHnhR3kmPX6ldF9nr3mAxQx5Jaogjo6FlaFocnFG6t2l?= =?us-ascii?Q?gZgVpc7pCbuBu/Z9BBUiFA2tOOL+wdOiHpNNCv6RbLvx3ksWoEE+NyXzboZI?= =?us-ascii?Q?YeMS0a+liRawZeot45lPy2wXvyHcNdfFL/eJneKFCenmCsx2QyjpWqxusokM?= =?us-ascii?Q?gnJS8SVkiypFzwdzdf9oXTqDpMXTRCyvK5Kh9hKtTnVioYn9QMfyPfZ1MR5f?= =?us-ascii?Q?tQkSvITNFEi7WBeTYpLolK8et4KYFBS8tWdG9Bq+DTwX1GTKwR8zBQ4BdjOP?= =?us-ascii?Q?YQllLtbImA0YX8ruEMlHLPHmgMnT+4Je1Ppfpm5BT50Lqs3GeDDB4v9U9NSB?= =?us-ascii?Q?qiwEHXhAcg8+nA21OkORdhcj/JxTPvJBJx5CCgirVeThZ2SL08OlQZrwIziX?= =?us-ascii?Q?NPx8A71ZjSd6lSG1f/Ox2nnCLMogxWwJYVIBltu+T5pmHfLM/JH8mKyD26h+?= =?us-ascii?Q?Dw=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: =?us-ascii?Q?wV3+jlgnum1LrCKv0q7WDVrZgsIwm3lFLGaHUyhZAaT6ajzSvO9jUey5Qauw?= =?us-ascii?Q?u/ZlrpNjwKh6q4imbSqyjd5CqnojBrum31cELcN/mmIigiUXWeroOUw1t46L?= =?us-ascii?Q?GyJA5nWjv8K0ybUNJ7P6OmCij2kFZ0goQFDoWq+a7VIUyJxKSJv7CgwiYQEI?= =?us-ascii?Q?2wR5cyN9ayP5LbOB/hQsZajC1pCaETzQru7Zm7TQMAc8+HC0TYOrgER/wvXB?= =?us-ascii?Q?iNZemJhxVLrzXgvrHulB5qf3R+BFQCPA68BKnnVf6zCK5p5LgasyrdDm7R9t?= =?us-ascii?Q?LB8u4HfRcT8B4+8hDMNIuS9510RQW0HxTjnSUlKortk38zHQLWP26A2nl6Rx?= =?us-ascii?Q?KAufNAzHaYBJEMMumacIiej/t4bUsNLlkOnndF60NLkKftVsd9MNc/fnrpLv?= =?us-ascii?Q?ctfkVhQRVMbXkGc8Fe+r+nf6VoRgwwTASJ1GdKjTVs+XivjgJFzzqYWxa6WL?= =?us-ascii?Q?zfeXX8dyct8G+VTI0yvjUBARH8poKdpSdDaxSvkQ7u/8IziPl72neipmUP+v?= =?us-ascii?Q?lhUBJLCKR2lQ/Hlfe4bbH+SS4+EgMcUEc9UWI9oHSs0WkGlXMs7aRIFjrLxw?= =?us-ascii?Q?sboaQHWoYnP4FXHfIIo/Q2+N8hnKstL0CiRQC4lLj3acHAF73F2HW+Eh9j18?= =?us-ascii?Q?oa2WqQMRRHAVYer10jCOPKMgI3xad+NL5Lk57qJvK/n3/lG8fhul2M73Zew0?= =?us-ascii?Q?SPpVXnWRAmfW5FTU7TDC76cqdWutAP4AQ1YQvaOxul3aNQlO51TMQRCh6UKO?= =?us-ascii?Q?CMq2xPbTLIsi8sQU7DoZVBNypBCgWlgF+rkJR5eEak1HUPOB21PI/yzf04bD?= =?us-ascii?Q?is3UPSKVh/vpy8/G00XxcIWJEvNhpOtpdlJCnTIM0IwzJXMnyTYUFE+Z8Sud?= =?us-ascii?Q?XlSwd/yVzD6Sa5POW51ladf7mHNC6kyQ0B54mBvTdSQnvUwWYCnms8H5tE6T?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: c6bff715-1590-4ef9-c30d-08db6b85432f X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Jun 2023 20:40:30.5932 (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: MQFbMsgksgOUf1JYIbjWwi+WRpUwRYR6ST9WO393gcvd78A0wTelpsRH4wsiFOFzhndbAqP6TxZSkvRVasip9Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR10MB5868 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.957,Hydra:6.0.573,FMLib:17.11.176.26 definitions=2023-06-12_16,2023-06-12_02,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 mlxscore=0 phishscore=0 suspectscore=0 mlxlogscore=999 bulkscore=0 spamscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2305260000 definitions=main-2306120176 X-Proofpoint-GUID: ijbDhC1EBN1bpxeSwa9t00WFUerEOBbw X-Proofpoint-ORIG-GUID: ijbDhC1EBN1bpxeSwa9t00WFUerEOBbw Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Relocate it and call mas_wr_extend_null() from within mas_wr_end_piv(). Extending the NULL may affect the end pivot value so call mas_wr_endtend_null() from within mas_wr_end_piv() to keep it all together. Signed-off-by: Liam R. Howlett --- lib/maple_tree.c | 31 +++++++++++++++---------------- 1 file changed, 15 insertions(+), 16 deletions(-) diff --git a/lib/maple_tree.c b/lib/maple_tree.c index fa51abaab09b..048d6413a114 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -4197,18 +4197,6 @@ static inline bool mas_wr_slot_store(struct ma_wr_st= ate *wr_mas) return true; } =20 -static inline void mas_wr_end_piv(struct ma_wr_state *wr_mas) -{ - while ((wr_mas->offset_end < wr_mas->node_end) && - (wr_mas->mas->last > wr_mas->pivots[wr_mas->offset_end])) - wr_mas->offset_end++; - - if (wr_mas->offset_end < wr_mas->node_end) - wr_mas->end_piv =3D wr_mas->pivots[wr_mas->offset_end]; - else - wr_mas->end_piv =3D wr_mas->mas->max; -} - static inline void mas_wr_extend_null(struct ma_wr_state *wr_mas) { struct ma_state *mas =3D wr_mas->mas; @@ -4245,6 +4233,21 @@ static inline void mas_wr_extend_null(struct ma_wr_s= tate *wr_mas) } } =20 +static inline void mas_wr_end_piv(struct ma_wr_state *wr_mas) +{ + while ((wr_mas->offset_end < wr_mas->node_end) && + (wr_mas->mas->last > wr_mas->pivots[wr_mas->offset_end])) + wr_mas->offset_end++; + + if (wr_mas->offset_end < wr_mas->node_end) + wr_mas->end_piv =3D wr_mas->pivots[wr_mas->offset_end]; + else + wr_mas->end_piv =3D wr_mas->mas->max; + + if (!wr_mas->entry) + mas_wr_extend_null(wr_mas); +} + static inline unsigned char mas_wr_new_end(struct ma_wr_state *wr_mas) { struct ma_state *mas =3D wr_mas->mas; @@ -4377,10 +4380,6 @@ static inline void *mas_wr_store_entry(struct ma_wr_= state *wr_mas) =20 /* At this point, we are at the leaf node that needs to be altered. */ mas_wr_end_piv(wr_mas); - - if (!wr_mas->entry) - mas_wr_extend_null(wr_mas); - /* New root for a single pointer */ if (unlikely(!mas->index && mas->last =3D=3D ULONG_MAX)) { mas_new_root(mas, wr_mas->entry); --=20 2.39.2 From nobody Sun Feb 8 06:04:58 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 77396C7EE2F for ; Mon, 12 Jun 2023 20:42:17 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235128AbjFLUl4 (ORCPT ); Mon, 12 Jun 2023 16:41:56 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60280 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236015AbjFLUk7 (ORCPT ); Mon, 12 Jun 2023 16:40:59 -0400 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B8A6D199A for ; Mon, 12 Jun 2023 13:40:52 -0700 (PDT) Received: from pps.filterd (m0333521.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 35CKO0Kn029029; Mon, 12 Jun 2023 20:40:37 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2023-03-30; bh=MRxZ2xtmGClbLJvupzZ1eM+6XTaXbG4AfbEc1W++zXY=; b=IcNf5Sri9Af1Pp52MpQ8lLNnONoBu6JG9O2rPdKKX2uX0qP9/2H3tnUpMi/dkSNaa4yP ykSYJN+aK8bTps2pWNpuvP5eflrw1gBASflbW3J9oS9Z3hiQDkdfekOZixh1Sh+JY1Xe 9YXLSnIQxMU4khmSdNyg8QOAPjWgNlGwtKtpEGFlu1ar0J7wwknxJ2Gwvk3xg5+85Lq4 IpXuPiFzkh81TEuo108/HyDdNrPb3D7KaQ5b/oYQ4tt78RJscDx3vhHdiXxAdZvuCqV5 mV/Gk5JUg25ENrdpsA2qBMk3o73aRV64T5Tg6rfX0xczqGfk+QAiRwEolH+WLYorrIfK kg== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3r4g3bkxay-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 12 Jun 2023 20:40:36 +0000 Received: from pps.filterd (phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 35CKHDrC021578; Mon, 12 Jun 2023 20:40:36 GMT Received: from nam02-bn1-obe.outbound.protection.outlook.com (mail-bn1nam02lp2047.outbound.protection.outlook.com [104.47.51.47]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3r4fm39c0g-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 12 Jun 2023 20:40:35 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=YcimoHmlH+Eu47TlTCKaKe7YwbDPRoy8/apVgmpA0luVYEWmBjW3Ak+EDFPLCpRWZ8hkR8ofDk1T4d9gB+Kxd8/4fPVNKr6NqUggd5MK1Mb1y8wO6tzIjgP54yVPm9BCjNVDtuqgRcwVBzHHU9WjghYB/NhCJs2HLSDAQeZ88eu7Hbov4RLTfBAmqrN6vTQO1XzGjzpCYc2FZYSKX+NXT8uubn/W2S5y5vvzo+sFPL1phbz2DEuFhZpa5UEr/RfSY0ztiT15EtBKiZg41D+WjTaD6Ll1hy1v4pVHlyftaN/SijanjhJc3EWc5RuGi2ZgDdtHm40l5nqlQI8WUIC7kQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=MRxZ2xtmGClbLJvupzZ1eM+6XTaXbG4AfbEc1W++zXY=; b=aj8DzMftMhWM2TnwRhlowl8FyKT/MIcT3BMnbiI6fsSAsFSvZzmCJKmHN6iWWnCLPNeIctOs7gyhgxvWpiElg2OGN47lh1+uQ6/+gXo5bdwYexDfk9FgWOq7+8LTXzoVTZWjRq6buMUpwjJA4v03JYyo6PJi9r7wqLKs9WCUGlxvL8QbVSZ2STiIQzm4Xw+6gYicPXhQTRwMhfnpx5PcBVOKLIliB2VvJv4uXN9pomhCVrKNwrNaa1F8mVBF+1tADxXBblO/gseSDKBKw3tVh1X1la1P/vyK1R84XfnDbR5gFQn0mkDEBQ3yXflgpVK5/Sfa59kQqvN+mwU1nE2JNw== 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=MRxZ2xtmGClbLJvupzZ1eM+6XTaXbG4AfbEc1W++zXY=; b=epbrl1ZxPBDqkw9C7c9lwRwMxCHZ/b4IPFxhPGmTRwoFH4WgNc8PjAkdl000dnpui0ucFaN/WZFrIUFPaK4dQ8r3iKdhUFfTr18l/PvCIBOzU/+OF4xjwJDOYPiY7XmSYjDeN/vuBiubUk2HxxM7JspgGZ5y/yuYbazFFbZxz6M= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by SA1PR10MB5868.namprd10.prod.outlook.com (2603:10b6:806:22b::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6455.44; Mon, 12 Jun 2023 20:40:33 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::998f:d221:5fb6:c67d]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::998f:d221:5fb6:c67d%7]) with mapi id 15.20.6455.045; Mon, 12 Jun 2023 20:40:33 +0000 From: "Liam R. Howlett" To: Andrew Morton Cc: maple-tree@lists.infradead.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Peng Zhang , "Liam R. Howlett" Subject: [PATCH v2 13/16] maple_tree: Update mas_preallocate() testing Date: Mon, 12 Jun 2023 16:39:50 -0400 Message-Id: <20230612203953.2093911-14-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230612203953.2093911-1-Liam.Howlett@oracle.com> References: <20230612203953.2093911-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0459.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:d6::18) To SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN6PR10MB3022:EE_|SA1PR10MB5868:EE_ X-MS-Office365-Filtering-Correlation-Id: 9c5a48c0-6f83-46c0-09cd-08db6b8544e4 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: fTnRWMa10E//Wi8VKbRnnGkbaj0JZuu0gAyfz0ZqCIAc+YZUSf98zEumXAnTygNMOY0Uljs9wUyNHHu7tQbNl7xY03PpHdaA3xugZVW6e/e8M61DGb4x2ipj8Zjn6LXUqqbheqKAlxvLIthIz6WY+vVugBn3RUyCxdl5szTBO9UYTfqn7wjzgLa0sSP9xW+pQvNAnwcXGtum7U5X2B19EEqXw2t7ITTvSBAk0cQorM4CSEs9o8DWkpGXweDZO7gIgdsXDyJoPym3e5F0WGD1m7L8LTlP+rkJbiNTGBpOlCSmvHJOPKSxKQs1uLIqzDgBcxmnTWVH3EiTIrla8d1lloLJK6rafclhnAykKAy43hu/1x4KG/3lxsZlQPHWfIWxk3i4OygjbLDaKX5XuYJiF4xYY5lzrHaDxoY6UEI+H3w2gy93ygojBDD6UY0IuOOcWxsN1Qbrcjlq6mQNgEFw2hbv9dPGXGdKum65Q81Bk3aLnKaAxsbqFlgi6xexnJjRUWHsOrO6zPuqBXnOrcC+CjdLnnp326ARoNwYk4UXOmGz+nmrRQdh5F5IYs7LzApl X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3022.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(366004)(346002)(39860400002)(136003)(396003)(376002)(451199021)(8936002)(8676002)(5660300002)(4326008)(6916009)(66946007)(66476007)(66556008)(316002)(54906003)(2906002)(41300700001)(6666004)(478600001)(6486002)(6506007)(26005)(1076003)(107886003)(6512007)(83380400001)(186003)(36756003)(2616005)(86362001)(38100700002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?JVvSnXGbvrE98OH3ILkMsiMjD/w36J5v5DU/iMTJ3Fj/orOsVBagVvnqRND+?= =?us-ascii?Q?D1lw+r6aLwkXVQsxclzr2adlQ9AhPvU+LxO8i2giOzC6JuHTRObwQB6eZOSk?= =?us-ascii?Q?M0XxN4iUVW2vksig93BZWzODMLqQp2xMe5876MTTmlEGpSKC50BPn6OrT2NN?= =?us-ascii?Q?81yN/2Q7zcOLA9tCOmbilsHmHX6/En/NiFnPvoOOHoTrCuPvXEJ4CzmGle4T?= =?us-ascii?Q?fybSrihr1r7Z6lDzYQMrC6mVK7W3Tjfesci2r/JYmc7rhIzKXldfm+nlA24R?= =?us-ascii?Q?85fb/0UJ1XyOPwZIzDIKRvHgF0VYLCUwOaspMvKaU5DwEef3uYPeuIzlvGt4?= =?us-ascii?Q?lO1Q6R1eMWDDDqdZ7AKnkIbgOzhDWvctsZBnHnDCd8AP2LrLdED7MMbiiw87?= =?us-ascii?Q?/37rx1sEOU0SNsrAcuLboHUcuf+QYTFGxoQDmGzWRucx2826Hm7nDqWK+SWm?= =?us-ascii?Q?I/WlIIno/hNpkSZTEDk2mHgaZlgJWb5pfXHJp2W2DU9jGladLOEVix0qlNb4?= =?us-ascii?Q?wsl5VHQY2PiDU9+MFhfKWHjeNx88DbS+viHKVbsGv4mwqu3teSqTFwZvAVCf?= =?us-ascii?Q?L3n+JT6eM3fmAfhN6Cb8t1cVXSbVvrX6dEFpZtxtU+zr+7OdQtbEs9biS2bk?= =?us-ascii?Q?AFj0dhbIZsaJGpLUEVPJr596klTyF74wtUpFCeu3pVs1e6T0pp6niOflgeXj?= =?us-ascii?Q?fj+FqzmXM+IjqNv/a0swNvb4LQGgULhoV/flMTDtcuWHhjmP/qqQ2gwder9Y?= =?us-ascii?Q?NhGSSBNTgjexzLfunisTYazflsBy26r5ErG/RdWARrt962Dt3frxvycKA59I?= =?us-ascii?Q?eBZDiwSlV3HA2erqmbjn2nj3p8ydEmQgsEZvAEWPZ4KJmOx/19T0IcY+7mIf?= =?us-ascii?Q?Bg3pEyNA9XjCyVa0DZncv4b3gI8UrfpjngKnbQBNbQpqvhEQ2XSE4atazq6V?= =?us-ascii?Q?kK+k0rT/y0zwKZn2SUol7C+QwRjEXIR5XCcT9/BZsUek8U8D/h4AisRnJ/ST?= =?us-ascii?Q?Ld+x98JLmNSYv9Oxg2i7cZ4kyCejZv09nCSddoBvfT86hPSUz5m1ONVIsjkv?= =?us-ascii?Q?SMzc33H4t5P/2krJ97iqMxnPAOrBkyBwZxleczVoiSBwKcnVEBK2ey/awx4Y?= =?us-ascii?Q?xeINOKM5/i7i/g8F0dcCBgoMljJbboXy13wPPtE57VsRdwO348qorz6Kp4Zl?= =?us-ascii?Q?SmRpfkQnH8kKjDQzj9YWjzkO5Db77vdz8FVQdj9rZhWlw8IerV8urVTHLcYk?= =?us-ascii?Q?GYV2VzGgpmX5HimS+ISp0zU3q3tC7q/eXYWDVJidLTuIsPG5dM4EuxTZu8Yk?= =?us-ascii?Q?LYWcP55LgkJwG9xgr5BhyoPdeOlsKTZbVCMVQ7ZNxJJaBryaSfxfJ/LDaC9U?= =?us-ascii?Q?251nrJfNhVhMXKvwZvc7lXOl3RVREn4ElfFghC9ivvqxJHBtzrdnwj7AThXX?= =?us-ascii?Q?994mGi0WGFVCNE73Yebz4Lz+xTZ+zxZ70wAAVn66bqBBBTzooPQbEGWYfxSB?= =?us-ascii?Q?vLVi05aRETD4+RxSOcRL5jcyIdy99ZsEmOUbodbp0W8dmFWjQqoxmDFahtJK?= =?us-ascii?Q?sOug6GjvDu+AAjsUFeVZLOrt39Mpmk5Ih7NCVlIVmTs0vP3hSD1bF25mypfY?= =?us-ascii?Q?VA=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: =?us-ascii?Q?HvCrmC4BmhNSk3U3ZQz4VSirFvSqp4b4SmQm+NUz0R1YDmF0qZSVPmTFeBn5?= =?us-ascii?Q?Dibz4PiW2VgqREqaF88FraIeY2pRqbHCCVGNXIxa+O+T9F/HBOgwPvaxvrtO?= =?us-ascii?Q?17Jf32C/24l+7qKQB3vD9CGbmosLD+WVfRUfCsjLcuYXGl3GrOhJbpOTy9t3?= =?us-ascii?Q?RXlFei6Jq/qV+Tr9t9dvBPHvWLFk6Uqmkmltdnjmlg8xEvHQwlrXEFQZ9dZm?= =?us-ascii?Q?HkffCkuOjix0A+po7mEeNBxvRXikgqxnHsoiO+nrrKYzqsvzoNdAKKQ8aaMb?= =?us-ascii?Q?d3FH+glvB7xKVF8IPuESyyOtt223xHnipcpxhAACo5q37OZcQVRl+5DCoZIV?= =?us-ascii?Q?PfokF5ZjZZDtFzr2Q43Oa23i0+1mN38HBXqLbkIByP3rvQQvDBFvy5P5IPOM?= =?us-ascii?Q?d/46rw3lDwQQo9DB4WUI1401FAWWdWtiV1eHu6VsD92V/ojdV4KgKpqhTbWy?= =?us-ascii?Q?CSFtyT+eLt66XLhRPGvX4ZjyeiwGBV5NAet6/mbit2tQuLGJUd7OooAq33RA?= =?us-ascii?Q?Fz4fsQwz2rbLAjax965BVwPOWgxWfnzRMlUmt+p0jclEKXXThDgO6MrJba36?= =?us-ascii?Q?lKlJA03I7jsp3Rqnbl9DmFiEVgUHSOfyHx4gNxAeu09IoEkCRo3HUO2PnBT1?= =?us-ascii?Q?7sgO5k6IpmKmiNXTlTmyLPLPR3C3ud4Vaarl4jOeLpMjNYvJVZsSm1TLBYoM?= =?us-ascii?Q?brpZaCzdYS7h0EW1QExg1BSCJl3KegtiPduxuTvGuz441K8BosWM/bPk1oS+?= =?us-ascii?Q?GDH2WXj5U+hj9A0+Sb5Vag2nLvXVq4ECF2gjVzceq+bGoWbvzRysPb94AiVu?= =?us-ascii?Q?3tsEGqBXP7oN0rriBhaKQeyI0PNmQcEewHE1+Oc9+LOqwkk3/GMqIDoNjnEL?= =?us-ascii?Q?cFbvTTm5wKqlPBNpke3i/zkXXNJ43bZcvj/0N/n6Ydn7JwLrQIrb2shU+euL?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9c5a48c0-6f83-46c0-09cd-08db6b8544e4 X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Jun 2023 20:40:33.4360 (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: vbRcOS0++mY6wySA/HWvJf11Z9U7xpmOHVk4S0xFYiFp3iCr1EiqGf7NJOc5qLyB+RiHjV/TxanwxqLHz40U0g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR10MB5868 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.957,Hydra:6.0.573,FMLib:17.11.176.26 definitions=2023-06-12_16,2023-06-12_02,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 mlxscore=0 phishscore=0 suspectscore=0 mlxlogscore=999 bulkscore=0 spamscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2305260000 definitions=main-2306120176 X-Proofpoint-ORIG-GUID: x4PoJTAPY4JeOCEGCA8KeiuUAXZZJjOf X-Proofpoint-GUID: x4PoJTAPY4JeOCEGCA8KeiuUAXZZJjOf Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Signed-off-by: Liam R. Howlett --- tools/testing/radix-tree/maple.c | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/tools/testing/radix-tree/maple.c b/tools/testing/radix-tree/ma= ple.c index cfadc4b75d51..c42033172276 100644 --- a/tools/testing/radix-tree/maple.c +++ b/tools/testing/radix-tree/maple.c @@ -35383,6 +35383,8 @@ static noinline void __init check_prealloc(struct m= aple_tree *mt) for (i =3D 0; i <=3D max; i++) mtree_test_store_range(mt, i * 10, i * 10 + 5, &i); =20 + /* Spanning store */ + mas_set_range(&mas, 470, 500); MT_BUG_ON(mt, mas_preallocate(&mas, ptr, GFP_KERNEL) !=3D 0); allocated =3D mas_allocated(&mas); height =3D mas_mt_height(&mas); @@ -35406,7 +35408,6 @@ static noinline void __init check_prealloc(struct m= aple_tree *mt) MT_BUG_ON(mt, mas_preallocate(&mas, ptr, GFP_KERNEL) !=3D 0); allocated =3D mas_allocated(&mas); height =3D mas_mt_height(&mas); - MT_BUG_ON(mt, allocated =3D=3D 0); MT_BUG_ON(mt, allocated !=3D 1 + height * 3); mn =3D mas_pop_node(&mas); MT_BUG_ON(mt, mas_allocated(&mas) !=3D allocated - 1); @@ -35420,7 +35421,6 @@ static noinline void __init check_prealloc(struct m= aple_tree *mt) MT_BUG_ON(mt, mas_preallocate(&mas, ptr, GFP_KERNEL) !=3D 0); allocated =3D mas_allocated(&mas); height =3D mas_mt_height(&mas); - MT_BUG_ON(mt, allocated =3D=3D 0); MT_BUG_ON(mt, allocated !=3D 1 + height * 3); mn =3D mas_pop_node(&mas); MT_BUG_ON(mt, mas_allocated(&mas) !=3D allocated - 1); @@ -35434,7 +35434,6 @@ static noinline void __init check_prealloc(struct m= aple_tree *mt) MT_BUG_ON(mt, mas_preallocate(&mas, ptr, GFP_KERNEL) !=3D 0); allocated =3D mas_allocated(&mas); height =3D mas_mt_height(&mas); - MT_BUG_ON(mt, allocated =3D=3D 0); MT_BUG_ON(mt, allocated !=3D 1 + height * 3); mn =3D mas_pop_node(&mas); MT_BUG_ON(mt, mas_allocated(&mas) !=3D allocated - 1); @@ -35448,33 +35447,37 @@ static noinline void __init check_prealloc(struct= maple_tree *mt) MT_BUG_ON(mt, mas_preallocate(&mas, ptr, GFP_KERNEL) !=3D 0); allocated =3D mas_allocated(&mas); height =3D mas_mt_height(&mas); - MT_BUG_ON(mt, allocated =3D=3D 0); MT_BUG_ON(mt, allocated !=3D 1 + height * 3); mas_store_prealloc(&mas, ptr); MT_BUG_ON(mt, mas_allocated(&mas) !=3D 0); =20 + /* Slot store does not need allocations */ + mas_set_range(&mas, 6, 9); MT_BUG_ON(mt, mas_preallocate(&mas, ptr, GFP_KERNEL) !=3D 0); allocated =3D mas_allocated(&mas); - height =3D mas_mt_height(&mas); - MT_BUG_ON(mt, allocated =3D=3D 0); - MT_BUG_ON(mt, allocated !=3D 1 + height * 3); + MT_BUG_ON(mt, allocated !=3D 0); mas_store_prealloc(&mas, ptr); MT_BUG_ON(mt, mas_allocated(&mas) !=3D 0); + + mas_set_range(&mas, 6, 10); MT_BUG_ON(mt, mas_preallocate(&mas, ptr, GFP_KERNEL) !=3D 0); allocated =3D mas_allocated(&mas); height =3D mas_mt_height(&mas); - MT_BUG_ON(mt, allocated =3D=3D 0); - MT_BUG_ON(mt, allocated !=3D 1 + height * 3); + MT_BUG_ON(mt, allocated !=3D 0); mas_store_prealloc(&mas, ptr); + MT_BUG_ON(mt, mas_allocated(&mas) !=3D 0); =20 + /* Split */ + mas_set_range(&mas, 54, 54); MT_BUG_ON(mt, mas_preallocate(&mas, ptr, GFP_KERNEL) !=3D 0); allocated =3D mas_allocated(&mas); height =3D mas_mt_height(&mas); - MT_BUG_ON(mt, allocated =3D=3D 0); - MT_BUG_ON(mt, allocated !=3D 1 + height * 3); + MT_BUG_ON(mt, allocated !=3D 1 + height * 2); mas_store_prealloc(&mas, ptr); MT_BUG_ON(mt, mas_allocated(&mas) !=3D 0); mt_set_non_kernel(1); + /* Spanning store */ + mas_set_range(&mas, 1, 100); MT_BUG_ON(mt, mas_preallocate(&mas, ptr, GFP_KERNEL & GFP_NOWAIT) =3D=3D = 0); allocated =3D mas_allocated(&mas); height =3D mas_mt_height(&mas); @@ -35482,6 +35485,7 @@ static noinline void __init check_prealloc(struct m= aple_tree *mt) mas_destroy(&mas); =20 =20 + /* Spanning store */ MT_BUG_ON(mt, mas_preallocate(&mas, ptr, GFP_KERNEL) !=3D 0); allocated =3D mas_allocated(&mas); height =3D mas_mt_height(&mas); @@ -35489,6 +35493,7 @@ static noinline void __init check_prealloc(struct m= aple_tree *mt) MT_BUG_ON(mt, allocated !=3D 1 + height * 3); mas_store_prealloc(&mas, ptr); MT_BUG_ON(mt, mas_allocated(&mas) !=3D 0); + mas_set_range(&mas, 0, 200); mt_set_non_kernel(1); MT_BUG_ON(mt, mas_preallocate(&mas, ptr, GFP_KERNEL & GFP_NOWAIT) =3D=3D = 0); allocated =3D mas_allocated(&mas); --=20 2.39.2 From nobody Sun Feb 8 06:04:58 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 8699AC88CB7 for ; Mon, 12 Jun 2023 20:42:17 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235743AbjFLUmA (ORCPT ); Mon, 12 Jun 2023 16:42:00 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59568 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236013AbjFLUk7 (ORCPT ); Mon, 12 Jun 2023 16:40:59 -0400 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B89E01998 for ; Mon, 12 Jun 2023 13:40:52 -0700 (PDT) Received: from pps.filterd (m0246631.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 35CKNk8H016718; Mon, 12 Jun 2023 20:40:38 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2023-03-30; bh=Q022I5yTvzYmJXxqO7/WBlIwy5GdU306+IeJGS1jis4=; b=BFacnYjJeSgPODs2GxVJSgn137lZuOULhnO7nCoWxAL5FipMaep70jLuaCBf9TR5brhP rPUwrMuevppb8gFcqkxMlrRFbQFZWcB2hAbu0ozapNhGRc7jDrhLcDTKZUDRiz6eVA32 ZHYWAl33SNocGRfn4UwABsoink+r4GIm7OrREZAPJGGqqtd+g8VHJDgwewviHwAn43Kf a7HH6D7vLdgVqHJ6dCxir/sk0gEf5dOSS4YUYfd3z80Y1kzthOx+oEefvp/yTlonAXGV c6wtpk7bpfJkx2oI8tojx44ZTtrSIPrf2blS7YkkZY/b13kRRMYQu5J/S66LoOsQz5ul fQ== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3r4fy3busg-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 12 Jun 2023 20:40:38 +0000 Received: from pps.filterd (iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 35CKWdkG016285; Mon, 12 Jun 2023 20:40:37 GMT Received: from nam02-bn1-obe.outbound.protection.outlook.com (mail-bn1nam02lp2045.outbound.protection.outlook.com [104.47.51.45]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3r4fm39act-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 12 Jun 2023 20:40:37 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=VJkmYnM97KjX6tf5szi/uJ3Tveld42Y1TEvr2bqXVQIoobih+kkBmQql05wV2FlyYfOE39JSAkbUEzoa2dPzCJ1yHTDvZAkuawwyuYC94RfBrO6lzvKbmKF7f0OZISzrYOi6my7lz+HUuTqCZbtk+sm3DNCV7ahX9QzTg7+vVTqI/EkBcuUwNlfScOIjQ4j7kreKHPBjojXVxuIvh08cgzB3rYDeSHwcgVsJ5E3gXLv5BsSsunabYuzXmIiCEtAuyUfY5S6O9yGjJkXK6xlnRuu8b0s+93DALF6ykZH9hKQhVzc0S9ghOdS5IldqjgI9tuAPBiGCO+e0oVV+4hFFrw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=Q022I5yTvzYmJXxqO7/WBlIwy5GdU306+IeJGS1jis4=; b=BpFc9F0G7527iHl+wFlusB9KMlTUIKyWA4vBWOK753xhxq4mO439SOxmoWtd0EOYs7jLGSB3dWoH7r+KpSCW8x5g46axg1rzLedhqytd4HmHQ9JBc3dKu8tEQTmM3WYEQYxcACQBE+ykZyisnO7gWeDHqMShxpcsm2R+EslYbPjTKSnzHJMBo0K/6tHXegcH9r78FvC0Jpb8dq0XvGkQPbV8lsnZagVIR76c0z9F8sZgh/v/yDMClqrdIvVoSBi0BXbHYkJTBmXl7i41CqFwrnKEk+RM0/xinKq4YfU4X+Riffq+tDVYNSylGSmduLk2RbnKKoXVwKYfE4jdS9IUQA== 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=Q022I5yTvzYmJXxqO7/WBlIwy5GdU306+IeJGS1jis4=; b=SMnlvZ/zKV5Gz1gDJXyw4pbGXOtaNTjfzWnSHuoorYF31PbwlKX59kMre6bHIZ6gsmtSSI/WD2Y82taJ7FEaIgFTiv6GKQhxPdwPKC9tF40W5KB284yX8iQyj9EYjp5Lj8gomi4EoM9OltuWAQlTochfniPlTZbB/wsspE/0QE0= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by SA1PR10MB5868.namprd10.prod.outlook.com (2603:10b6:806:22b::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6455.44; Mon, 12 Jun 2023 20:40:35 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::998f:d221:5fb6:c67d]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::998f:d221:5fb6:c67d%7]) with mapi id 15.20.6455.045; Mon, 12 Jun 2023 20:40:35 +0000 From: "Liam R. Howlett" To: Andrew Morton Cc: maple-tree@lists.infradead.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Peng Zhang , "Liam R. Howlett" Subject: [PATCH v2 14/16] maple_tree: Refine mas_preallocate() node calculations Date: Mon, 12 Jun 2023 16:39:51 -0400 Message-Id: <20230612203953.2093911-15-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230612203953.2093911-1-Liam.Howlett@oracle.com> References: <20230612203953.2093911-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0079.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:ff::11) To SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN6PR10MB3022:EE_|SA1PR10MB5868:EE_ X-MS-Office365-Filtering-Correlation-Id: a45bbe5f-5396-4af5-f256-08db6b854657 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 6O66l1Ng+2YWPcjS+/NR1IKzjQjWNRbB1MgIN0Pt/8ZLDPLHtrVdoJxF9ulyW/RGnZcnnZhBysz273AFIoRQnOlwqZp1kV5WhDWNmf2LIDUuwwb5kPbffOEdg/Qn9mmBqu+/qZ3DA48TjgPBC9IbYq5zzYm/k8a/d6NW5sfoJuaIkB4P95D22ZCiCxg8S+iJ9pT0MBqifRr6vBAHudG/Le9K6IiCJEUbx6ruIFjoqIirScNymdoKtVfcmHakwRxfQALxccVlxmwM/7Xk87WPeaCMt2bzr92YZgwpf3Tekmey0NObIpgJhnm9Xy2pEGC0VTCeZmNEDd/t9USjD3mdb8Gv/hEMqEGuUsdMTyE2eUxP71mJJmIrqWkb2HXX9R1jaG/XgJE2TmKL0n4izCqn2L6YUyGlTt1DghAZ8J8p2oHYH2zHUXhzPZ4sWcCCgb15+2Tk9aUNsEgA2RwvSCf1Jb5af94Tb1gU68Y7AHRl4p/OzOp+aope67/vgYg+oCmuNvW8ElksCoGSRl1X8R1xHmGzAE1nQo6NzLV4qdD3pKrEKeJA8WXdH5zSuq8w7t71 X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3022.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(366004)(346002)(39860400002)(136003)(396003)(376002)(451199021)(8936002)(8676002)(5660300002)(4326008)(6916009)(66946007)(66476007)(66556008)(316002)(54906003)(2906002)(41300700001)(6666004)(478600001)(6486002)(6506007)(26005)(1076003)(107886003)(6512007)(83380400001)(186003)(36756003)(2616005)(86362001)(38100700002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?sAqqN/m5Dfl434q16z9a9qsPtpgv5uCd5xAs7Asq2bMrJ82zP44iiQezbYmD?= =?us-ascii?Q?ToC0FS0U9a5Bax35JfYPWd1V/fm6rsKxUCrgKeD4m7jDbbLvdTKX+cL74zEN?= =?us-ascii?Q?AiKjHXau5G3CPFJnWT/DlKAV73lnxvU12YBR3822vio8lmp5pDmOk6mdxGqJ?= =?us-ascii?Q?o235POl9SZbY4eIaKrezN4lOTymAi2qtLhWF2WvDJMy86jkhLHoHrbLUeQ3C?= =?us-ascii?Q?j/upUXQ9kptY3MhtZtCVRIlSA9ttGGN5nS0dpQlU1nmqeoHzs5Po3JzXhgW3?= =?us-ascii?Q?bZOJqPktx5CUwSeFvO1kFMCDpP15HJwPTE0QTXf54NfKQaL2ItoIpmL5ndvf?= =?us-ascii?Q?BWsk5ZI8kaK70huotjrDcxWNmtfgjATghxxb1+/xok6ujgRQKDDwDZF/L9ds?= =?us-ascii?Q?L+Zcec/uLNkZ0VXFyPzlVzvXSFA7Dp4/vvra95+ktr88ZLetyJYNvdle4sma?= =?us-ascii?Q?mZqfxz9f5ofICsaCpBn34h+nI2qGH1f+AB3vRFHHB3N//xJWJWAtGZYBP3il?= =?us-ascii?Q?Jt6T6fWaaDqs05dnb/YfJcJ/s2TcdIUrzTrcERiylqwNy4n9TeoS6hcg7suA?= =?us-ascii?Q?gQAj+H/P6rmoJaT1SrfJSpzF9UyeLtjvCYxJibgd9LME5LUzpkXlUSi2kZYY?= =?us-ascii?Q?M86kEv7j8cGizecH4BueqoAQNYNOln5HrE45lTE+M+Vk6tsBrGF/H8Pr/LJ5?= =?us-ascii?Q?sZJDrhEeGLMiyhI4E/XP9ihcviJ0g72xpdmyUmVgj3KM2qrZOoasAMa6ng8I?= =?us-ascii?Q?LuvtdXv/uBgE1mJ7MO6V08dNTk4MWKlu802Q7cSu9zppju75ZVoy8dp/n8kt?= =?us-ascii?Q?NJzPRZrWMfnhfhLBZ21yeYAlXhIqZA/2s/aoIJ/L/BV9ISSq6pX0pyr6evSu?= =?us-ascii?Q?T6ZzRztza9LWgNqBSJKE2LMF1RK3wEsOMTilAOf8HI5XmvAl6m/egYT/kEv4?= =?us-ascii?Q?9dnwvI0+2YVDl4X2G4ILu7k8WrVGXPBCfPgFPhvxhoUgxIhGES6SgUIiIyAt?= =?us-ascii?Q?JCrEZI2qWt/JXP9d6H6M7rupXijS182WsmaPruD/z/Ut9CDbOVHtGlpRQmK1?= =?us-ascii?Q?zBOduso3Bje9GfCEeKK2t4KQj998kjCU37QB8gkTOgfrLcc+bZaKvuAgZpnO?= =?us-ascii?Q?bH4DP6f81+Oz/oksYjBKF7jT3JgvjbJeRrH9nVhfJgMikKst6//yu0QwshI3?= =?us-ascii?Q?af9oSDCSnKGnbZ9GZ896/4l2F5yxOIDZ5G11n96+UOt/CB91oRsNdu0AXO24?= =?us-ascii?Q?mnTt6Fiwh9U9d/LZTpMlOFC7xdG8yg4xVna554LdTxZeRHnuHXO5rT4+V8L8?= =?us-ascii?Q?Savbedwqh6gewACUY3ijjONiOqyb9+IdVolspChnEyQrg3/3RhKHs6y+k9Gh?= =?us-ascii?Q?gHMy3pFfkORotr+40nyTIopwnz7Ui48mnx0ZiqWw2hqcuGAugtGmam1wl5AK?= =?us-ascii?Q?wAekPNZuIPBv0YdiBZtJXRTzsT3fuglDzpx/w6LBDt9yuzJduEwI9xsTqOkQ?= =?us-ascii?Q?pFNldGKcw0qMXGiM8eNAM8rOmRkT9YpcWa6/I4dqDNH8hTxl5I9Mz8KyvQPe?= =?us-ascii?Q?+6tLq7rzTSSKlAPYTsg/+r3NQAFqcK4nv8uuHZ0mR8Bcqq80lmGDQMvVY93u?= =?us-ascii?Q?pg=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: =?us-ascii?Q?5vbifZgLHqZezB10eFNCmOqma7kQtDu6wuaEkzLEc0vE/EQX3etV+UhwTg3y?= =?us-ascii?Q?7onr8DJqj+chrPgFKhUskS6fwBtu9hFd4d4poXJYs2V0/uO/GkgDf3BrUDa4?= =?us-ascii?Q?fU2IVph9Tr7dNaCrdnhKtHC5lVKg2jUXxHYU0c8E5ADF6chmlTSW+yIDZoWh?= =?us-ascii?Q?ZgE4MztMzQxj4v88xMAFrRmPMM84BIv8i/WzWZujRGrZA6JACaXEJd0XrviA?= =?us-ascii?Q?IIQPIvo4GpK2exI2aD/Se3oNFvrZY3ZmwgzICF2v9C0tzBmcwJ3GYMe80Cz+?= =?us-ascii?Q?JZ6TyRWbGiwYtdP/2dzXnhdJQGKFR2BOnT+22LYKxi2TGY+biuCTJGWNMoao?= =?us-ascii?Q?Q7upGaFza4N+BRbhvuWOloZjL66LpTUIXxK3KkhHFjOt2ncbA0DJSFLVODAu?= =?us-ascii?Q?TKQhqut8VgXJ3m7l7C3fky6G+h0moRkI5J3OXJEaSLJu3slwcBPs2SswZmSp?= =?us-ascii?Q?+uKrxXkY5uj4eE3wYzfDrzMvfDiZmoTWgJd1SCbVSn7hWQV8lpFA0J/uPqpx?= =?us-ascii?Q?ICSuEk3Tp3XHQ6Q14Bio75irY/40wdkIEJ5oQZOb/n/X52puecX29AJcm6Uj?= =?us-ascii?Q?Eqznue3Qf0i6agia+AmPOV0iqV5ta0GN6Me3gw7PgEJteCntBntphaX4qJmv?= =?us-ascii?Q?Ay7UoEWOJB+5fN2gOrh28YOYCb5Istw6M6xwn6AX3TB/eIOD7ys/3ZoB82yx?= =?us-ascii?Q?OCt3E86Hdp0oP6HF15VoEZCcdQk/SdFtReNbq1fGzbisvAYJbmnYOtMe/rjk?= =?us-ascii?Q?viXka+rOtXoGyqKDoHJgu8RClswfWxU/SCsFSSfDNtIA+ooCR1PeGC2CpjiR?= =?us-ascii?Q?rDCu3SyXpeQvzUmtE9a0F2Q4ryih3r/Dua8D9stWQH2XITmRyGULL68MQmmt?= =?us-ascii?Q?bbBeDOfLbEubJxLUDmniBTDSwIUkr02bA8TmJ51Ve96RsiXYAY1KMFuRiFHf?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: a45bbe5f-5396-4af5-f256-08db6b854657 X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Jun 2023 20:40:35.9074 (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: swcic7+my1i/H/AP7kot2vF0i3RNC5eN7gRDobxHWcETL/xsmLvVHykX3vmDECqwHGmcxQ15qseGtrd5VagD6w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR10MB5868 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.957,Hydra:6.0.573,FMLib:17.11.176.26 definitions=2023-06-12_16,2023-06-12_02,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 bulkscore=0 mlxscore=0 spamscore=0 malwarescore=0 adultscore=0 phishscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2305260000 definitions=main-2306120176 X-Proofpoint-GUID: T7FUYL7xApYuMbVNCww0nSA1vPmRLPyb X-Proofpoint-ORIG-GUID: T7FUYL7xApYuMbVNCww0nSA1vPmRLPyb Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Calculate the number of nodes based on the pending write action instead of assuming the worst case. This addresses a performance regression introduced in platforms that have longer allocation timing. Signed-off-by: Liam R. Howlett --- lib/maple_tree.c | 48 +++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 47 insertions(+), 1 deletion(-) diff --git a/lib/maple_tree.c b/lib/maple_tree.c index 048d6413a114..7ac5b5457603 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -5541,9 +5541,55 @@ EXPORT_SYMBOL_GPL(mas_store_prealloc); */ int mas_preallocate(struct ma_state *mas, void *entry, gfp_t gfp) { + MA_WR_STATE(wr_mas, mas, entry); + unsigned char node_size; + int request =3D 1; int ret; =20 - mas_node_count_gfp(mas, 1 + mas_mt_height(mas) * 3, gfp); + + if (unlikely(!mas->index && mas->last =3D=3D ULONG_MAX)) + goto ask_now; + + mas_wr_store_setup(&wr_mas); + wr_mas.content =3D mas_start(mas); + /* Root expand */ + if (unlikely(mas_is_none(mas) || mas_is_ptr(mas))) + goto ask_now; + + if (unlikely(!mas_wr_walk(&wr_mas))) { + /* Spanning store, use worst case for now */ + request =3D 1 + mas_mt_height(mas) * 3; + goto ask_now; + } + + /* At this point, we are at the leaf node that needs to be altered. */ + /* Exact fit, no nodes needed. */ + if (wr_mas.r_min =3D=3D mas->index && wr_mas.r_max =3D=3D mas->last) + return 0; + + mas_wr_end_piv(&wr_mas); + node_size =3D mas_wr_new_end(&wr_mas); + /* Slot store can avoid using any nodes */ + if (node_size =3D=3D wr_mas.node_end && wr_mas.offset_end - mas->offset = =3D=3D 1) + return 0; + + if (node_size >=3D mt_slots[wr_mas.type]) { + /* Split, worst case for now. */ + request =3D 1 + mas_mt_height(mas) * 2; + goto ask_now; + } + + /* Appending does not need any nodes */ + if (node_size =3D=3D wr_mas.node_end + 1 && mas->offset =3D=3D wr_mas.nod= e_end) + return 0; + + /* Potential spanning rebalance collapsing a node, use worst-case */ + if (node_size - 1 <=3D mt_min_slots[wr_mas.type]) + request =3D mas_mt_height(mas) * 2 - 1; + + /* node store needs one node */ +ask_now: + mas_node_count_gfp(mas, request, gfp); mas->mas_flags |=3D MA_STATE_PREALLOC; if (likely(!mas_is_err(mas))) return 0; --=20 2.39.2 From nobody Sun Feb 8 06:04:58 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5DB62C7EE2F for ; Mon, 12 Jun 2023 20:42:49 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234208AbjFLUmU (ORCPT ); Mon, 12 Jun 2023 16:42:20 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60422 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237708AbjFLUlf (ORCPT ); Mon, 12 Jun 2023 16:41:35 -0400 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 363641701 for ; Mon, 12 Jun 2023 13:41:10 -0700 (PDT) Received: from pps.filterd (m0246631.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 35CKNjIO016697; Mon, 12 Jun 2023 20:40:53 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2023-03-30; bh=snKjq27RM8dqWHzAhSVOgtEZhiI/iMNdvGiktQzMQd8=; b=c71P8umqopReDsc+/LEvNtY8JWN5T+GWMseD3F7YAXegccXzUepoOxyKdJmkbAbHwOUv JaiLtffm2A+6um27Yx51EC4PiZUln5suyCuNp9nsHYyhgp3BihYXXocLX+qBu8DQDTjT jYVANBc7y4TP6gslQJ9dUKUu+ipr3AH0+bNb2f6+oYsuEIykNHfc0cfIK95bjf3vyj5/ tCExRgBgjONzYTp6M1POQg1Dw2Qxo/cpxBYxwytku8FHpYg6zLQ5Cn3uBzlM1AuR0C9X Pxmpz5ZeIb+0ZVtzxeyZVky87YMKn326wTN1MID96qpSoDN+nPX2YC3MDwO3AWZElUWA Kg== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3r4fy3busw-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 12 Jun 2023 20:40:52 +0000 Received: from pps.filterd (phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 35CKR0p3021624; Mon, 12 Jun 2023 20:40:51 GMT Received: from nam02-bn1-obe.outbound.protection.outlook.com (mail-bn1nam02lp2044.outbound.protection.outlook.com [104.47.51.44]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3r4fm39c65-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 12 Jun 2023 20:40:51 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=GDUtXVlCUPla+VLTvWnNyHKoshBlPR0SeRFsVUrcCrK7GAyze+91oZamQ444sbG5E3DG1UYePw3W8zypiaVEpR0LTS6YgYbVaPACEIDKwXBDupuexI4uUpaK7JcHquqQsgj7Qzb+9kUW6AiIVX1D7YgVLqaZBgNaTRwYrex6QFusfpDLLmF8HjB7WjmurBQtbLCcbJrpnAgVQJo0IpYTSNfYPEldb7Syb7DT2ZDb4EN2oh9cIECPlCy53+Y94MvKwc/quDjDuUz21+i6HcTtHdhNembqRkfoOqMxtvegDusTv8MZXb35AEa9rRKat6VjAQHJrppZvC4sVDsijhNS8g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=snKjq27RM8dqWHzAhSVOgtEZhiI/iMNdvGiktQzMQd8=; b=bjkl8TO76Cu0NT1ZbbAOMJHVmt05QwTcVwMlRri2WqUS9nl3OMJC2g7MtqD4QdOaTZOQjF9n5/sGtvd5b5Svn2WMpron5x0+Q6Gl4D/++N4vtxFQG8Sf+usGPCXwuZvhDyKjcLKpLublT2cgMzaYkHk1iKS20gboM/0RQUDUndTnPl4g5TKhPp9JMB1F8ZlyO4FEhaEgdJsdAFA9ZvR4YqAPgZR74YZ52PSdgz5PYW3gdzwfFDL9+o7sTcVtAXHpQMjbZDygtwOnhbGKcIQ73YpuWoEnPKPn0phQUAmDTtauEbPKz3UWjQmYobXlDMGoY4nmLNooC+w2IRkHqVvs6Q== 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=snKjq27RM8dqWHzAhSVOgtEZhiI/iMNdvGiktQzMQd8=; b=vl7za7F04flOtzxN1/+Wr+dhkdOqPTKj7xlCwVguCEDbPrMMX3o/ONajnSbfx4l4n4k9eltVDTujjMuf7vMc54wDi/E3GtQmAwR1taOCUAr5uJGl6/3TURHKZIkrZor1udPDQ8vpuGmSCEYTUyruzpeVKqyI1a+hwTLOsvAs020= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by MW4PR10MB5812.namprd10.prod.outlook.com (2603:10b6:303:18e::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6455.44; Mon, 12 Jun 2023 20:40:39 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::998f:d221:5fb6:c67d]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::998f:d221:5fb6:c67d%7]) with mapi id 15.20.6455.045; Mon, 12 Jun 2023 20:40:38 +0000 From: "Liam R. Howlett" To: Andrew Morton Cc: maple-tree@lists.infradead.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Peng Zhang , "Liam R. Howlett" Subject: [PATCH v2 15/16] maple_tree: Reduce resets during store setup Date: Mon, 12 Jun 2023 16:39:52 -0400 Message-Id: <20230612203953.2093911-16-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230612203953.2093911-1-Liam.Howlett@oracle.com> References: <20230612203953.2093911-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4P288CA0032.CANP288.PROD.OUTLOOK.COM (2603:10b6:b01:d3::7) To SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN6PR10MB3022:EE_|MW4PR10MB5812:EE_ X-MS-Office365-Filtering-Correlation-Id: d2216350-4a94-41a1-61ee-08db6b8547f4 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: POvHcYbU4hxCYhlAUFaALZiOqaQvJZR1pugXSnNbvBlsGu2Ku+zuYG0X9T5g03j2icymXN6u+oiXF5nM8Vxu50rlmYZS3YfM0TdUl7UAPvz53TdbOwcZYYudqSHiqbZDhFI6Ds4vIr3p0u/rsR9cBDIi1tg8bZqa0G71s3wm0AFkPV94rVNqA7G6zZ71HxRiJD2xZKmS+YCu5Kz7Iry8eI/otQw44zm0m1+oMWc+YagapBKhu6mOXfW9nEIFTPc07SiX/5I8fux6ViPhyMn6MYjVNbcprX641jwhmhOPmMG2a8PuSwQlFnOKmqBK3mUNCX/O0TDLmmsLjx1MLS2gBg2+CmV/HUdV+5pPssyFsNN7hYa+n5WuAdDSVrrlzNJtc2MS0ij8QR6FI9ay8Knna/oaRCX5qtEa80y8XficYEl2d6QCd3rG/w00P8vL+85sZ+YiqkPxVbKQahox9m+g/JeKUylO1JFk3mQwgCeg3Y4k7M9s8jQljXCiawySYFDrEfIihh4FWWUXvobfz5oodLC7Gjw+/zYP4hcwJMXxlWBuQgUFz0YIXlYCo730aQ1J X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3022.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(136003)(39860400002)(396003)(376002)(346002)(366004)(451199021)(36756003)(2906002)(86362001)(107886003)(6666004)(186003)(6486002)(83380400001)(6506007)(1076003)(6512007)(5660300002)(26005)(478600001)(54906003)(66946007)(316002)(66556008)(2616005)(4326008)(6916009)(66476007)(41300700001)(38100700002)(8936002)(8676002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?o2mQ/oh7isaiFOkgw3Kxpz6BZ0zr9Eg0i53xGI5JUGoXbewbkxfTp+8W1J2v?= =?us-ascii?Q?j26a8vxClopaI5CkdhQHIao/Mz9DOAQa5buWYJ2JJUtvG6SYhiTrHkRY44EU?= =?us-ascii?Q?sE/ditpq1reIK5+Wz47FymFAbPd3SnNItVNHcx39f4Hzgfr0Qtu/AJNCkNXd?= =?us-ascii?Q?f/mJSyxCFb8mh5xCkBJDdBDs+gbY38M1L0+nvRnnySHqamWnt3SQIAsPBgnw?= =?us-ascii?Q?rw7hRMbdnrWlqGsLIlGMqKK9Cxjnnb2c3g2u8F8b/nR5jLLrsmwGC1mzYScv?= =?us-ascii?Q?Dx6jNyrVKFGGTsIy+V/kUnAM1//+/Unh77j4S/bJEy5V66ifHBrH21Hh6XaF?= =?us-ascii?Q?gfpgqPhye0wr1A3mdv25+sJ1VNfzDMTuyMYGHiJzhFruzgcbhFvh0VWvNNNK?= =?us-ascii?Q?qpse3lOqbCLGHovx98+qju4T55vnXcAT0QCNRLx+sHJ7fvNDboHC2AdxvZXP?= =?us-ascii?Q?48lC8c7Ht1FTfbsRYnC7DeqhxkrihSbOqOEIWiMf8RWe7fgTSnuD3iSKSb+T?= =?us-ascii?Q?8YeDqraDLnQyH5si+WD8Ux0fmCtk9gCcV0I0K5UzfNeD3ArRVkqkATI6xrue?= =?us-ascii?Q?5mTwJcdZ5tIASnPCk72/dKfxbtm52ko0jy7Kb/tPG2PpNYWbG+fmiJeo/j3s?= =?us-ascii?Q?t7+f8lnbTUbx5/Y0+Brlz0vq7KvyFjurKpflhS4ZDVJVm11paBX4KmAjZR6B?= =?us-ascii?Q?hATzOJC7dMhZwsppwDc6ikjkCBQldxBPSCy1dTuOrPUvXSMsRrVpzo0drH0+?= =?us-ascii?Q?YuG/QAlY704hAnyzC2VEPh3KMrClPGKPGYyjhrmoenb3ed37kyPpr6FDSPnJ?= =?us-ascii?Q?OAJi9G1z6PdUQAwVyYbGMJvwhoLa/9y+IMoQOFHXHRj9rENIx/qWFhnV+EBR?= =?us-ascii?Q?+VrBrtvSIbdC+S9+xHpzN1aZDZW3yrfPVR4QY4H6VVjoZJpkbs5Fg3zQ6gKV?= =?us-ascii?Q?AoFCI2niSoGtKM0iIXndfbP1gH3PlYcD99iTMTE1+DkIAQtpfsjgt9Erk9Us?= =?us-ascii?Q?NleSJrXjPB75sg0n1maBSqq9kgHMXwRtNDnxdipiFHUFnYmGHYEw663e5MHL?= =?us-ascii?Q?BPpzuCERbUWmPPjONTt+Sm0I2YDnN5G36Xx88kQYLHfqva2SC78zSu/UFydD?= =?us-ascii?Q?CB4ftAv/0ZnNuKg0K7GwkgP36UgrcSQxaJuJUKN5kEFPtTUfP73bXHmy2h/t?= =?us-ascii?Q?AfqTffReMSBigsEWkj3OpJIsuRnKk4+v3ziODDswihwbggVn/zgkYNhKxUvF?= =?us-ascii?Q?RMY82TbqDbTk+7Tqn8PBKfa1GUssIU1RjH28+enBK5A1Iaqb4WRzYjExYDyx?= =?us-ascii?Q?wWZluL38QsMeFm+N3GJt9ysVtbKFtJw8hOF1rVvynspdqI4syC234vWqaKab?= =?us-ascii?Q?nYpVYN9HCWXpCyHCzBEUv5IsbKraSnIXR9AfyKD0WbkL1+d0bPnMJ+uy/ra+?= =?us-ascii?Q?i/IfAcvR5n8Yekxl1OnhLHlM8f56XD9rCIle0dd8pj7YKHleag5f45/nQxT3?= =?us-ascii?Q?LDnCsXljfmpZf00Zi4vHm36ZLQQhmjG/F5WYfWsG2VBqDnB8jLZYaRkaxyc+?= =?us-ascii?Q?3TLMip+TDawYfckldZySFx03Q3K42zbeqBClglGLJAUDwRnpHqH3TUB1u7pZ?= =?us-ascii?Q?jQ=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: =?us-ascii?Q?dj7kFN4Qj8duFvRIjhC39/cGSlh2QFtnsFdJ3SXYVggtKnrgEE2X/4wmxjg6?= =?us-ascii?Q?oPj8a964qMz4pWS9A9O/RmWQz2nLyd1q2185OD6Jk7X4jDXMF78aUItQdV2P?= =?us-ascii?Q?8b9J2UAw7PNR+JNoIXuIEbb2EJOAFklmcJdiaX9u8Fi27BSMr+z5PLt+yCCS?= =?us-ascii?Q?TUpzb6+snEBpsBX7PNPvLXzVTjRMpvucnu7H4xidW2dYEZ+3Ap2MrfsRAxFQ?= =?us-ascii?Q?rNZ5fOzf3h7p9L8J0qWiqwO1hhHVdDKuqG84yzvb09AQztFA6m41SCh3tPp+?= =?us-ascii?Q?fCc4hcxsP/UAQL5/Dx3QRXuaMlO4i2ONti7HeXICojlglE111+bqxtb/YtVU?= =?us-ascii?Q?7nmprIvYjC34eDUCkdDdDmXJkl6c8ycsfE/tRrAJa4K6Ouxx8Xa+rJtOt+o4?= =?us-ascii?Q?0INLL2vqCNTgawVzpfhXKhTVy5a6bW7ELZ4+h35+lDQcUTRoB2fpF+gzW6e3?= =?us-ascii?Q?3wsRDk17SlqHTFPfPnGGQIn6tFxcswAOPWlXhHg3H+6n3twbU1yUBn1G+T4t?= =?us-ascii?Q?nZvW4mYBCZ63eBOpYgJRHNesGslsO/lik1sSYA+AHiq+KGUCW7v+v4CcRXK1?= =?us-ascii?Q?WBtOfU/VTEWAl4TgwlQxrFxG7wVAaosKYXw34ykhEa/rWYU8ApXPvZGMzt5G?= =?us-ascii?Q?qlhPophvM7RaFegRGKn8DLUCQ+pwyGKwQYqY1gNGULgf6EIuhjgBV4vNGvRf?= =?us-ascii?Q?jQ0rH00nwRDR8GijiSvCL/6J9QXXu1F4rFa/QIvOMoJ1f26/lpo7B0XhGKVz?= =?us-ascii?Q?HYyBUCtC9bOn1JX0165uqdw/yFh5Y/bIeEbjUgS7fLAhHJUJFVpPbFvbVRPM?= =?us-ascii?Q?SUywJtdDItBJDRbaV7g9UG/At7AKgcVvG/Pdex28brZ2wZJtMotuCLAhY7I8?= =?us-ascii?Q?RclVAfPi8oaeppUXh4doDXjycKrcG+69fHbtlCR2kx0zGVApzvISF+Au1iXk?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: d2216350-4a94-41a1-61ee-08db6b8547f4 X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Jun 2023 20:40:38.6060 (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: Jjrt8d5YXars3mbw77kUXC2EJ6g48eyns5ChcXQ+/6ryTKWZJp8y1s16xM4EV9RYghqMmJhQ/7z2UILCfblsDw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR10MB5812 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.957,Hydra:6.0.573,FMLib:17.11.176.26 definitions=2023-06-12_16,2023-06-12_02,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 mlxscore=0 phishscore=0 suspectscore=0 mlxlogscore=999 bulkscore=0 spamscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2305260000 definitions=main-2306120176 X-Proofpoint-GUID: 3zdPR061FxqAdGPxSzgaCSBSWE3Q8Lhn X-Proofpoint-ORIG-GUID: 3zdPR061FxqAdGPxSzgaCSBSWE3Q8Lhn Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" mas_prealloc() may walk partially down the tree before finding that a split or spanning store is needed. When the write occurs, relax the logic on resetting the walk so that partial walks will not restart, but walks that have gone too far (a store that affects beyond the current node) should be restarted. Signed-off-by: Liam R. Howlett --- lib/maple_tree.c | 37 ++++++++++++++++++++++++++----------- 1 file changed, 26 insertions(+), 11 deletions(-) diff --git a/lib/maple_tree.c b/lib/maple_tree.c index 7ac5b5457603..279b871f21a6 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -5430,19 +5430,34 @@ static inline void mte_destroy_walk(struct maple_en= ode *enode, =20 static void mas_wr_store_setup(struct ma_wr_state *wr_mas) { + if (mas_is_start(wr_mas->mas)) + return; + if (unlikely(mas_is_paused(wr_mas->mas))) - mas_reset(wr_mas->mas); + goto reset; =20 - if (!mas_is_start(wr_mas->mas)) { - if (mas_is_none(wr_mas->mas)) { - mas_reset(wr_mas->mas); - } else { - wr_mas->r_max =3D wr_mas->mas->max; - wr_mas->type =3D mte_node_type(wr_mas->mas->node); - if (mas_is_span_wr(wr_mas)) - mas_reset(wr_mas->mas); - } - } + if (unlikely(mas_is_none(wr_mas->mas))) + goto reset; + + /* + * A less strict version of mas_is_span_wr() where we allow spanning + * writes within this node. This is to stop partial walks in + * mas_prealloc() from being reset. + */ + if (wr_mas->mas->last > wr_mas->mas->max) + goto reset; + + if (wr_mas->entry) + return; + + if (mte_is_leaf(wr_mas->mas->node) && + wr_mas->mas->last =3D=3D wr_mas->mas->max) + goto reset; + + return; + +reset: + mas_reset(wr_mas->mas); } =20 /* Interface */ --=20 2.39.2 From nobody Sun Feb 8 06:04:58 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 75BA4C88CB5 for ; Mon, 12 Jun 2023 20:42:49 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236274AbjFLUmZ (ORCPT ); Mon, 12 Jun 2023 16:42:25 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59732 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237693AbjFLUlf (ORCPT ); Mon, 12 Jun 2023 16:41:35 -0400 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D328F1BDC for ; Mon, 12 Jun 2023 13:41:07 -0700 (PDT) Received: from pps.filterd (m0246630.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 35CKNsrk003017; Mon, 12 Jun 2023 20:40:53 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2023-03-30; bh=812rbvUohctb//QCwvvGnF0ZAjJWMAJsWaUHeAI/wzk=; b=qu22SbUYuWQbJHvbECpb/95O76fEQC/uEly3dhXBDuAjtSVxWTBGEBh2jd200k0Opplp KMbp1Z8ZI79H0LhrzmBP63ioxwSD/p9iH3p4JrF9ViTMJqihV6lEgV5l3mFLShKqOqDY czHkNh3ZQqSCHtDOE38u03g+mQlGHiueOQL8YpNpD04PVvv+jp4I1KVCV5ydZFmqwqau LNhHdJpaA2vJ9XkSeAcvyfF4WqlgdDY6QUPcUs1hUR18ZtL4XBSyJD1Gg4MVgVaswS0P 2TMkH1LwCnfqJYp48PWy+973+Q0tdigHSJmZyrP73cuuSnADy+Tr0QvorZHXN5QTtJKi /Q== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3r4fkdktpr-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 12 Jun 2023 20:40:53 +0000 Received: from pps.filterd (phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 35CKR0p4021624; Mon, 12 Jun 2023 20:40:52 GMT Received: from nam02-bn1-obe.outbound.protection.outlook.com (mail-bn1nam02lp2044.outbound.protection.outlook.com [104.47.51.44]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3r4fm39c65-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 12 Jun 2023 20:40:52 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=YKF6wY6ILXkMeTmyyaIeRFt4uwDmOpChldnHhNPODbbasXE9NAtNvHOCEPyLKn9ESteBLSwiLP7YhoKa1+nO6eBWyM76Y1A8sWxEkELRrBnl61T8dEhuQaPyd7cggxE8vzoLCdWjw/ld8zuoeaO0+g4zT1jmTwtCPsIxVqVMD2FT1RT6Wsb66uB1v7ndQ2bDDLFyweILPbnVdB4RGomiQ33USiatuLMMnv9E+fLvQKrUmxkF0xZfojyVqlmaUh3e8fGfvbgMUSiYy65Wmm1aQly9wHlY+QU4AJ/rTpIvJYL1JQa5umWD0H57wifE2MR91P9AMV9R12Tts/i8gPkzAQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=812rbvUohctb//QCwvvGnF0ZAjJWMAJsWaUHeAI/wzk=; b=VgjtiyCqSc8DIXK0EldBzPHYt4q29NvT4XQ3rtQmijusqOi4rYXBR/9vtKB4RGLREUnrSkxOUttrqkfnXxhz/7nyMN9iF1aqGTGTEPAGjzcbJo3F3r/f8Wkl5IlQPc0ONmlqwk539uEg/ldr/YXn1JrI8wlppxY22brnhnl1Dv5mO8iLdtT7tTZdtyuPnzOZWcqcTNOE+9DREy0sJXvtT3kYxN1fp2ywlGM42QhJIUJckJEpjczQUIpgfveiumJxVUpZwL70YtC/M6i06k+nvyJfCmw/MTgEkY2bTfHvtZ0AznSKDZd4YweohfOhtvwr9mNmmTUBe+T8aV+597pg5g== 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=812rbvUohctb//QCwvvGnF0ZAjJWMAJsWaUHeAI/wzk=; b=X7U0VqMyocJ6a+bcXxXYOdz0qx63aLqJiu9Yleeqtzj8sSDdF+spwVh6zhOlO+G/XhmeyNzoETK1+XrN56PIR8bIa3T1GgwQbzHXNVFC7Hji4gccKuxnWc9mGBLmymk/hW0sFgbUgBFaVSOwGYQ9FHrnJYdv6XXsIY8uuSL3Ibs= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by MW4PR10MB5812.namprd10.prod.outlook.com (2603:10b6:303:18e::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6455.44; Mon, 12 Jun 2023 20:40:42 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::998f:d221:5fb6:c67d]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::998f:d221:5fb6:c67d%7]) with mapi id 15.20.6455.045; Mon, 12 Jun 2023 20:40:42 +0000 From: "Liam R. Howlett" To: Andrew Morton Cc: maple-tree@lists.infradead.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Peng Zhang , "Liam R. Howlett" Subject: [PATCH v2 16/16] mm/mmap: Change vma iteration order in do_vmi_align_munmap() Date: Mon, 12 Jun 2023 16:39:53 -0400 Message-Id: <20230612203953.2093911-17-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230612203953.2093911-1-Liam.Howlett@oracle.com> References: <20230612203953.2093911-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4P288CA0028.CANP288.PROD.OUTLOOK.COM (2603:10b6:b01:d3::14) To SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN6PR10MB3022:EE_|MW4PR10MB5812:EE_ X-MS-Office365-Filtering-Correlation-Id: a22e2463-e62f-4ef2-f88b-08db6b854997 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: ajrkXY7ufebPtkPAEKfKk2q7fe+eKjeiMiBluaMJkqRwFg2/jHyFQEudgZnpiEsohX+a/RLjr6gZqBFdLds8o2a49GIMM/e7t2Pgot6yEBCHw4En0+Jf8i0IB+x67sc19CWwIOoOte0r6Bm+AXNnxPxcjpqZSpzXklm2qUY9vEziln9hFtQwch2BbcrquWa5wvvFYiPB0Uvd2OfDn2x9gc+B3UAeY8wiN6NutWKcF7R6VtUFoxjFD31w5kUVOJOkcdO7E5LjAW8qVFLQFY1gauY7i0fQhLb6ePRSfwOZ1gCqd9CUZy2NsoYEda8rqRYznHnr1lnVhxuy2cx330c69pCTtpagN8ahPComkPQQ6m3EVXgYKy1ukPhp2h6oGJWOe+Fh485H+1JNFhc7rK6La1PXhiHsAmFenWV/A+53zidCNGnpnL2EPWWSVhtCMxQtOe6hQ+6sdTGhJsaC6rkkzDom25bzHrKr6fm6jLVGzU0iLLJMOH2n326pF+rN78QGQ5rjUGM/V+4K6PgGYwn9ce4KQgsicTqyGnqLcm853R6dSmP0o9w8F/BVpzj3z08k X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3022.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(136003)(39860400002)(396003)(376002)(346002)(366004)(451199021)(36756003)(2906002)(86362001)(107886003)(6666004)(186003)(6486002)(83380400001)(6506007)(1076003)(6512007)(5660300002)(26005)(478600001)(54906003)(66946007)(316002)(66556008)(2616005)(4326008)(6916009)(66476007)(41300700001)(38100700002)(8936002)(8676002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?D5/K+elI/uoJuvGgIF53tKD+twjxB0jgcyIk/rnSLFBmEnLbkSWLHvB4FDLe?= =?us-ascii?Q?un5RaDFBejE338mudjVx6P9k0SheMktfOZkAzQTA8xBglQrA7VlPCF3VBhii?= =?us-ascii?Q?b3Q3gc6DqLt+pOiKEaXD4/5g3RA16vMrivSFUs8TfhMjMJ7ckTSLW1rqB1uJ?= =?us-ascii?Q?x9HN0tQThMyDJKy0i2vYleFxhEtu1G5o1fUM5qGu8NFx+5jAzPggfcPfXHo5?= =?us-ascii?Q?dPsDPSzRvRRU1NGv7SFHMO71N/7DzHm/oWkpepBBDnnrDf88t/PEpbG4A67Y?= =?us-ascii?Q?Wa9GdBNQnxZh/uAIZWGmQQLMyM4AP3jBIG5XR5Hes5phbiJTgohT0bWfR9CW?= =?us-ascii?Q?QjysPnS4SMmtjGvYqGVWqZYVK8wzjJZGs2W+iDx9Nmd0s0KsmAab2ZABxzHp?= =?us-ascii?Q?MXXK+Js6wIEVvf50xFb8v0zUS955UaV3NwHK7xBbGCqyuNg+sP09R4Sl/7Qn?= =?us-ascii?Q?aPJYxF/3MpDNuzDsrcG38hPfUBb6iIiBsItyfMG7DLAI1BXkTCNZSpZAzfXZ?= =?us-ascii?Q?WspBo1yndeCFA0R+6UPYsPse0YVZWM5P7PaPPzzgQscL4yOOFiT0StwMm2oO?= =?us-ascii?Q?Uv5Hrw5AQk6pmIk8bHFPSbiVl8ncJjgjsG4JMN5M5my3bd9gO6KwlW6Hsm6D?= =?us-ascii?Q?xK9yIUUl7ZjvDMDbDO+o8jz0wuflinqtVqP+USe18VkjL55m7cwbEgs0m3tO?= =?us-ascii?Q?kGtm9zQ8Y3WT3lNien/xU9dOq7E8NPGFwKAPSW6nwJ+k7hTGS/nssc0wUT6R?= =?us-ascii?Q?rGBnuTkLH5BT+kip/O+YAouB7MxspzA63fQPy/mg4yyLplEuYbdmun6zJaXE?= =?us-ascii?Q?4JK3QZ642fki7ot78dmeINOuazSMGbnEDaqGUeqRw0I5TfCZwe48LRxXqNUb?= =?us-ascii?Q?/qvyovNg9FChC++cWB0tmKJXSkLhp5YrX9dVLWcBfzpmSblFoNQZEBtKP8VC?= =?us-ascii?Q?Snj3vfXYYK4SgXyxPkacRVxRVpRAJm9JYBeIrv2Up+YmMuihKXyNtzpJ3Xqn?= =?us-ascii?Q?VMbBcBeTwNVAmXInm8NdMMSb3rwfEGbMKQAiz4h48bqlNq2Y+csAvI1WclwM?= =?us-ascii?Q?YUKJMiANW1Q5S8+CEOhwu5kdtsz+vk1l2TvGdFVdhmfQqJkKJE+/fkjZBzOH?= =?us-ascii?Q?HmibQF2wrwRD/Z5TNtfbELjMlvt5IgEAxg8UWo8p4vpsTqeq0RYmd7gwUBIz?= =?us-ascii?Q?ACRbYhD7lValJgpVlxpHc6x2jolpjgJzD1Hu8b6jlSGJVPKdDDFDK6ZxKECT?= =?us-ascii?Q?kscFqpFxBK+J3bG4x8Uu4qSyPBug3+xQFSiYmZscCBoPjiVYKOfES70ewy0m?= =?us-ascii?Q?GoYZQTCJFiMiporaNbpP64EV0q/JAF8HYGWlTn9KdVvTZcRmOuKrR4Orx+bK?= =?us-ascii?Q?iSVAT47xJn7mXCtmCICQ8BKXlvNzPlIQ+XA7xlI7XbJKKwvdXE6X2UA5u+0K?= =?us-ascii?Q?Fxf93AeWqc+TPj0dd27OtH8l4cRB+Xh50mWWb9+LnI01c1pmwCxNKkriDi6p?= =?us-ascii?Q?hOpo3E4nPGmiKqG7tVSZTeYvGQkIOtmALX43YhzWsL9VU1VP/AFwIZigJzbb?= =?us-ascii?Q?1tZqmMzBrclwwT/RC/MqePq1Q1FD1/ds34+cdjarVMqtThbAHZA+hDQcMUA5?= =?us-ascii?Q?/w=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: =?us-ascii?Q?vK84EYEmglryW+1HqIjEEolSN579k6foMT7nd9jCjqgJB9GPb0/CdwutGlc4?= =?us-ascii?Q?eJeUZPsMqIHXlgtzRiUPhv29p0ulsn7L7HMMwb6yumVKTV9xqvGjbgkz08EB?= =?us-ascii?Q?18Wg1M7CGWKQKFt0TPMt19h/eg++wZXVimuhQai+zd4tJqR0rvwyUuPDPiSE?= =?us-ascii?Q?FjlVSlZps+mLfa3aXweMVo/iY6yPRBS43Mma8yehcXFK1QGikw8uZp33wMJz?= =?us-ascii?Q?ClvFJmGuShomPQ+vorNqqQZVRr3tCOHCn/+XnHnNetU2eCJcri8WgA6iCvVI?= =?us-ascii?Q?8VBWfjTYqAQdcaR6KRGIHGZmeomHv4Xg8TbIWazaKxz6Qw+cgmu3NlDcdysx?= =?us-ascii?Q?sIVnK6bpYPGAPKacEK7kPQZ+PlsGXL1Ek9M1/XYlmrm0mIHyzZ9oEldzOZNM?= =?us-ascii?Q?Xaix5vV0LnyqrGYIU1vZekqMOy/lL0YSv8/XSwXcwFfYtSWtARbxOoRF31iC?= =?us-ascii?Q?YRMK2MXUU3CbD5io+FFhXBcZvj74C+vqCdwoBFUVwD/FWYXDTHSRB5+l7uJl?= =?us-ascii?Q?JyHPVN/U83z24m1ffh2L8scm46WG1jxLZKZo0emwKXcK2ZIdQ15zH8JtJMN8?= =?us-ascii?Q?g2JuDqi0Wp7Bmd+JIgaiq4GeIpnIg5gxpN9mQMPKHfOimVRCMNANRMGqYwTJ?= =?us-ascii?Q?dw0xob2ViLCi3vj3H0F0lWnf8mgoDGchBL0rZTwA1mwdMKbBJQ7ZGd+ETKkW?= =?us-ascii?Q?r16nFi/JWiQfmu+aJNhFdiYwNSNTin/TBseWTEIg7DQZWy3bGZVA7PDpeNbx?= =?us-ascii?Q?OVt8xjCnpBD4v/DxAygWDej2c/bLTZtb3VCOSqZoxa9/uSGPFo/jheSSEvnJ?= =?us-ascii?Q?+KGjDevJzOl0CttmumGayJnGuVvbSD+Bf/ZnJZ26WskLHwowWcZBULlRWKBz?= =?us-ascii?Q?5wZ3VfgE6SZAwLQKTRyqHTMqXoKfOuGXelDHVzZjOvoStaJHmqeAyig+Phac?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: a22e2463-e62f-4ef2-f88b-08db6b854997 X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Jun 2023 20:40:41.3261 (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: CLoFxd6rh+kklvruj3Dt3NVUMOV2tWLsgGfQSl0iA1Pan1LZlt5k5QO3UjD45KwODgwWiEp9hxC/RCP8w+4ZXg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR10MB5812 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.957,Hydra:6.0.573,FMLib:17.11.176.26 definitions=2023-06-12_16,2023-06-12_02,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 mlxscore=0 phishscore=0 suspectscore=0 mlxlogscore=999 bulkscore=0 spamscore=0 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2305260000 definitions=main-2306120176 X-Proofpoint-ORIG-GUID: -gCFoqguXGeI4YRTcMvAT156oovPWVtg X-Proofpoint-GUID: -gCFoqguXGeI4YRTcMvAT156oovPWVtg Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" By delaying the setting of prev/next VMA until after the write of NULL, the probability of the prev/next VMA already being in the CPU cache is significantly increased, especially for larger munmap operations. It also means that prev/next will be loaded closer to when they are used. This has the consequence of needing to change the for_each() to a do {} for_each() when writing to the side tree. Since prev will be set later in the function, it is better to reverse the splitting direction of the start VMA (modify the new_below argument to __split_vma). Using the vma_iter_prev_range() to walk back to the correct location in the tree will, on the most part, mean walking within the CPU cache. Usually, this is two steps vs a node reset and a tree re-walk. Signed-off-by: Liam R. Howlett --- mm/mmap.c | 27 ++++++++++++--------------- 1 file changed, 12 insertions(+), 15 deletions(-) diff --git a/mm/mmap.c b/mm/mmap.c index eaebcc8f60d2..429e314bd134 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -2395,20 +2395,17 @@ do_vmi_align_munmap(struct vma_iterator *vmi, struc= t vm_area_struct *vma, if (end < vma->vm_end && mm->map_count >=3D sysctl_max_map_count) goto map_count_exceeded; =20 - error =3D __split_vma(vmi, vma, start, 0); + error =3D __split_vma(vmi, vma, start, 1); if (error) goto start_split_failed; - - vma =3D vma_iter_load(vmi); } =20 - prev =3D vma_prev(vmi); - /* * Detach a range of VMAs from the mm. Using next as a temp variable as * it is always overwritten. */ - for_each_vma_range(*vmi, next, end) { + next =3D vma; + do { /* Does it split the end? */ if (next->vm_end > end) { error =3D __split_vma(vmi, next, end, 0); @@ -2440,13 +2437,7 @@ do_vmi_align_munmap(struct vma_iterator *vmi, struct= vm_area_struct *vma, BUG_ON(next->vm_start < start); BUG_ON(next->vm_start > end); #endif - } - - if (vma_iter_end(vmi) > end) - next =3D vma_iter_load(vmi); - - if (!next) - next =3D vma_next(vmi); + } for_each_vma_range(*vmi, next, end); =20 #if defined(CONFIG_DEBUG_VM_MAPLE_TREE) /* Make sure no VMAs are about to be lost. */ @@ -2467,12 +2458,18 @@ do_vmi_align_munmap(struct vma_iterator *vmi, struc= t vm_area_struct *vma, BUG_ON(count !=3D test_count); } #endif - /* Point of no return */ - vma_iter_set(vmi, start); + while (vma_iter_addr(vmi) > start) + vma_iter_prev_range(vmi); + if (vma_iter_clear_gfp(vmi, start, end, GFP_KERNEL)) return -ENOMEM; =20 mm->map_count -=3D count; + prev =3D vma_iter_prev_range(vmi); + next =3D vma_next(vmi); + if (next) + vma_iter_prev_range(vmi); + /* * Do not downgrade mmap_lock if we are next to VM_GROWSDOWN or * VM_GROWSUP VMA. Such VMAs can change their size under --=20 2.39.2