From nobody Sat Feb 7 18:20:17 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 8B08BEB64DD for ; Mon, 24 Jul 2023 18:32:41 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230370AbjGXSck (ORCPT ); Mon, 24 Jul 2023 14:32:40 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43866 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229567AbjGXScf (ORCPT ); Mon, 24 Jul 2023 14:32:35 -0400 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2F39E10D9 for ; Mon, 24 Jul 2023 11:32:34 -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 36OFOh1r022600; Mon, 24 Jul 2023 18:32:23 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=8zb46HmNu+Kr156lOYkl9NY9ZHNJ1ATbVnkVV/ckLRo=; b=M4POthLuPlvnqAqDliPkY13tme79K7noNJwYQX3E1tpWgmBZcTokXCu+0rUpZef/U07N 3zU7VieAlOFs01Il06bb7mHvW/2kXG/EhN4sayFp78fCMX4BnMYAJy3aSF1IPuSsaKg7 v1J3QEYGug7n/OGb7iPGF8ILXY18qB9juBgN/7UXxEP+9Gkhn4CxoqgUnhGwAQDIpt/5 2bCltKe8vijQOohGbkUJInmC61ZhwY2XM+5AWurBcgQ8oLqyFmA5/dasasHr5lEEDL3B pOB9OhNwo5BEQAIqx8Ffdf7JBox6SaH9YAmgseNb1OBIozIQ9Xe2eAA1mMBW64QTOnGr qg== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3s070audkg-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 24 Jul 2023 18:32:22 +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 36OGttYa035600; Mon, 24 Jul 2023 18:32:22 GMT Received: from nam10-dm6-obe.outbound.protection.outlook.com (mail-dm6nam10lp2105.outbound.protection.outlook.com [104.47.58.105]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3s05j3t3ax-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 24 Jul 2023 18:32:22 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=SghLx5wlEfmV1bTLV1350BPy2QEe7ysk2iMYZbyRtjheoFQFH5xy6aJf1oC5c2vfqi+A3Po7bP05C4AtWmTdqKi5nxaykRsZXBFQu7Zf6bKsXZlSu1RLMRLmT0zI/0e4wI03Rw2QHHOmTWp/cgbKw41pSVCAFT5XFfrK0p/PlIxIrmYkU7T4IfKt5Y8p9X5TB3ugy0ENziTcpAKIJggD+HFmWQpdYa91l2MlpfG2GXLKUP/CFbkmPR3wW2KZNhrOXmAyD9D/fBObADQVJoWSZWTQ0rGnqwM7sVjzwHmzGBMeIoekDE46kW7KSZWz90Hb3S4x24WXeBmXW1O6ZNgMbQ== 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=8zb46HmNu+Kr156lOYkl9NY9ZHNJ1ATbVnkVV/ckLRo=; b=cGSTMFmW7N5pPJN10xbXRMLTQynR3NvTKofDUqmNueScyOb5L7PkaWc6te5COsgB+agip84ItibZcXFbg6j2ep/zB0jkMocn9B8giCC/HKcG1wIxNcRd6e+ewIUpBMK1QtXpOaa0QDmWTXP3qHkGSElckmGt7IBezbihxgSZJyXnIaX6N2W6OA2v5WszBGcJOUMkuRGa0GrE+/eMbV20jOPKSDrXsI8riE4HOwSqHXOzjzGTw9XC/WjvX1pE4/EfGw3Q8Z7nhoHJjYqK8CwTOMpwXKHiW2KLY2WdXjjSZYkIwTsklAR1yBS/o3s3FKL5khxyKuVAuVHn4Tcxng7FBw== 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=8zb46HmNu+Kr156lOYkl9NY9ZHNJ1ATbVnkVV/ckLRo=; b=cao6Gg8mwJEiErsw4RN8bmWLRLiZCLoAq39thpoSKdyt6P+5ayjha/uJS5PYpV0SbsCsxwri8bGxSpqKQTQlMo1n/DYtQAZ7SZsVgyRb9hZi0QxOs/DvLig0q/n/LfySetwZrcUNAY/ndtUHsHemdArF+U2TaIF3pr4FOPe8Zus= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by DS7PR10MB5376.namprd10.prod.outlook.com (2603:10b6:5:3a9::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6609.32; Mon, 24 Jul 2023 18:32:20 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::26d3:6f41:6415:8c35]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::26d3:6f41:6415:8c35%3]) with mapi id 15.20.6609.031; Mon, 24 Jul 2023 18:32:20 +0000 From: "Liam R. Howlett" To: Andrew Morton Cc: maple-tree@lists.infradead.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Suren Baghdasaryan , "Liam R. Howlett" Subject: [PATCH v3 01/15] maple_tree: Add benchmarking for mas_for_each Date: Mon, 24 Jul 2023 14:31:43 -0400 Message-Id: <20230724183157.3939892-2-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230724183157.3939892-1-Liam.Howlett@oracle.com> References: <20230724183157.3939892-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0002.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:d1::15) To SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN6PR10MB3022:EE_|DS7PR10MB5376:EE_ X-MS-Office365-Filtering-Correlation-Id: 6132c62d-6b1e-49ed-3544-08db8c74509d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: L64tpCqgkoP2Jks6dVcgqRecoCMI1QovbuZk0Hjqf7Snu/02nOBa8mBWfxo995/5pQS6DU4ol/cJ7gMPolEDnG4WvUPkmH6Upb8pwY8hzu1DZDk+D0d83JTS0eOyGmsjd8uNyPica1JtP5P1V6hyyMTmii3DeEFA2nqvQ7qzR4UygvvMR8L9RaHkHExBU+JHnCN/Y9e1T+/EMazlH+egJYRCCQfsTdA5vZsymCF3cE155fKMUDofvGepMMcST6LbdUD8b64dVc40S3/224S5RGMyjUu8vOzX2UDsaLriIz+jCdeujE2p9yShWUiLH9TrCbJh9MCUPVH0oBAwYdOzcuI0vy04SkIg6JprKUX0NlfCStOUKYdvr6z3tr305nnjPX3fqSxRToIxOUq07qinUXO+tidztJv7V/lBw6qLTlZ76fPe3IHbGVSKxfRt4ooZ/TviCiETtM2U8UVF73ZTycfGOJ38MXDz8bSD00DWarImcTgr8mhVAZTXwYvPEHwK8HzpjGRAlVvN/CABCdcW1eub+ZduckP85qlGkx3fssBZo3XMUJ/icO4VsEIi24gL 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)(39860400002)(136003)(376002)(366004)(396003)(451199021)(6506007)(26005)(1076003)(186003)(36756003)(5660300002)(8936002)(8676002)(2906002)(38100700002)(107886003)(86362001)(6666004)(6486002)(66476007)(66556008)(6512007)(66946007)(83380400001)(54906003)(478600001)(41300700001)(2616005)(4326008)(6916009)(316002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?AKvq2kHhNCOgBvbliJw0noYh1mEjao2stMXUeEVDSZ1ceAXbiUc5hNCIBM7D?= =?us-ascii?Q?Zr+mehVQukMlOuQaw6n+UeKmdgjg92i9WXBb9SwKSQunPnELS+29CrH+ff2D?= =?us-ascii?Q?n53T1j+a5bCnUweDLJ3U1agsAVFUsyS8mP5zfkBicokXtJyeuo56Pm+Uyi47?= =?us-ascii?Q?srMAFHD0x9RsZOSUKeEorrar6f3Zu9NrZvBIxTMEW0VRjtEBrqny8KsZ0JR4?= =?us-ascii?Q?yPqTgVu//C/aPkH5uWGLN31l7zchLCX87faHvH1FBy6nkC1dZIs2ziJq1xQG?= =?us-ascii?Q?aiEbmFHs1Up9ANTbrk1jH53oss/h7du6cmIm6FujRpKlk9GHwlWKCTQM3onf?= =?us-ascii?Q?ujr3xDmonTqVSF3BS76+X5078/VSdPVofJeeJnZ16WhclaUK/MxBasQFkwvj?= =?us-ascii?Q?t6e/EFDEElxxowz9KTp8soEd/NbKGznb9kZh2h9LhTjj/2h2ZbitwNHMhK/2?= =?us-ascii?Q?xOsOFFgLrV9+6LuRRbf0ZE7K5UkxphPH4W8/oRPsv3ON29AeuxY8ymhhXTbR?= =?us-ascii?Q?bLLIGnn2z667zzu65TSNX4ykhmXWuEpoi0RsLqDhXT5CD/XxwW782GzvO0z8?= =?us-ascii?Q?4E1OXF66MpD2PZKs1PButb7c9+e+G+f3SaKgFBGHdWcqn1L+gcXJccyACMfG?= =?us-ascii?Q?pqxs8v3IqgKQWhUdxxtWnZHk5zQn6K08gSB34m6hMiXd2p/lcrETGtdV8gQq?= =?us-ascii?Q?uNUaVmPziTqzaSqSK4GlfF7AuX6/hhzkzttTQIbeOGY1rJHfbShLpZq5m+GC?= =?us-ascii?Q?w6ogwdaOSIx2q8/ZK7eVFxCun9Qmupb8WLI0DFQCG2oaKfhi8FuTApGIjM/f?= =?us-ascii?Q?VLyODs3Jn7jaGm9feVT2hJ1K12EJ0b4WhZOnw4m0orv2R5fZpec+bvTBuqxy?= =?us-ascii?Q?615qTOQd5vnPHDPNjXqZnds8Azq4pDBI2eiBTkW5NjQuRmXWDPaZ7Kc1iNJ3?= =?us-ascii?Q?LcRUGVq7a3CA8GVt4+Bv3+7cbNu7F14Blmuudu4SkjtFxWzhhf46f1ekt91Y?= =?us-ascii?Q?HpqBLNSMaMZv314dvVIiiINg4RoFkK6tKyTCG3nCCB1b45EzdDlH6/XQ6Nzp?= =?us-ascii?Q?L8auSRz+cUpXA41ql2XFvimKIV4woAtmTewtFQOZ2Y21QjevUyMFfKmQ76MI?= =?us-ascii?Q?fBPzM3fR/Z2B5XSCLuFYd9YudHTsKigj23p78Oqky3NibNwtKi7JK8ddKDzU?= =?us-ascii?Q?m6gARcYUSK7KJ7RuJJoKfHxwlE+J5eTmesGrBWQg02U+ZGhNBFq/00Ivp3X+?= =?us-ascii?Q?hlYfrPinrlVh+JPLlcdoqUKJyPuPavqQXH/SI5lzzRIJAz3rnvMhqSj4PDJN?= =?us-ascii?Q?GqxycSU1mVqLQ6vNbCaLBXA6diC/gijlMZNt5Pu2/SdqyuxEWNjyrLHSIIRt?= =?us-ascii?Q?8sZF87pDs+RT/W+fECQQLrQz3e4CIg5D/O/fT/sDpb7HWfF61OJCbW4FPa58?= =?us-ascii?Q?HpTHKx4RH8zHQVDMUas4fBstwp+fmjZ78mQcLsaRUoVf7fLD8bTgLhtcaY1L?= =?us-ascii?Q?WQmY3DQQQF1dBDFfWV9rngFU1d3x5ipVicIydOWSNkYjBJArpsD8ltAGZclr?= =?us-ascii?Q?swINmh2YfOkZ3pbZg+xdo1U/Mu4Hq9QUwFxQ9Ka/YlEtvIlwPRJ41eMmWM6M?= =?us-ascii?Q?2Q=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: Ae+41SInphsyyXbUNy1Pi4KxnvZ75fL3BnKYpK6Y4wqDQMLNlvvIHy39U2IWZMmqiqOD6YCce3tKTgQeUBBVNjYmqLoT0hunSt9FvSnTCEAxLM+3mTVaDEhfKHnBXYg0OKkp2Psi2NXomMmfJjVwhtubFRhTOVuiRNhdlDSL4crhcaKWVluxIENuafOEmgpIllZ67nGUrtnHE9Vnt0UUiTxx8IfV5DvVpYnxZZSfIw8jJOYaiGOuEQ5UvpnN+e5lG/rlbFj4eSjOaMHUAgCZeRKPOzU4dSW/PlXFnHhmmC7ku1tQ24MYGY1RVv6ZLCILQpbdEBwVwCrzZPLnUBd6Q7Okx7teqIk1oai4fXYqpW2VcE2NQydtvKty97yc/mJDVCB8IQkvTgAmhPI+dHxRPUHbslhj3cAgCbx7Qoo5o7edsr8T8kiJiB9ElmQgWZ6kwtDHXx7INck3lWQDBVpyFowlqwGadxEUtvFbxdkxau+W+JXOhx7d/iCKpiVOI/dSkiHmoe11AH+Mc4Nm5G/YmpSLFPb3guDOucjORcpjiK9jnuzyVxPW7HxUn77pQ3rX8iyIVq+zWRW4rOENnn68qIm8oWOha9Iy447TLp4ltjp43Amlp+1uit3MmERVM/Bg0afEd/E7pj4obYaFzauo6CoyNBziv7qNIXnpvI+D9V+lTNFW5CB/h2e9ETaFppdTU5VTF/+Cg9yJGqBFH0b/9saa7We2nvMbzwkbDd3j8wAgol4CN1iMW6BVZpLtaTGGdcNTw0xHG1hsrrn0GAqs61Ac9QMxRuJGy8k2ERW5GqkEAPUdLxIYIoXoySKh7kN1UggCDf0q7oGW7lLB2VsxgTdDjKWjxJIiRp4J6v43H7/vPFm9TJ06shkTd516Brg55xez8Kc//XJWPG7eqOCsMnX2wlLIeW2lhUkrxfi5agE= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6132c62d-6b1e-49ed-3544-08db8c74509d X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Jul 2023 18:32:20.1005 (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: hhC8IByMKawYLfnnYVQLy6CUcWgAuqmUe1SFQ+rDkKcjL1PvVUZPBefJBqz81IPWtqkW0m48KnqZB2S2Sy7ZzQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR10MB5376 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.957,Hydra:6.0.591,FMLib:17.11.176.26 definitions=2023-07-24_14,2023-07-24_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 spamscore=0 adultscore=0 phishscore=0 mlxlogscore=999 malwarescore=0 mlxscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2306200000 definitions=main-2307240164 X-Proofpoint-GUID: kkMJntR40tT7YVovkE37iUu0Q4JvqGr6 X-Proofpoint-ORIG-GUID: kkMJntR40tT7YVovkE37iUu0Q4JvqGr6 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 | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/lib/test_maple_tree.c b/lib/test_maple_tree.c index 3207c2107918..9c4cf5fb2b7f 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) @@ -1770,6 +1771,37 @@ 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) { @@ -3498,6 +3530,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 Sat Feb 7 18:20:17 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 4F469C0015E for ; Mon, 24 Jul 2023 18:32:45 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229826AbjGXScn (ORCPT ); Mon, 24 Jul 2023 14:32:43 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43870 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230040AbjGXScg (ORCPT ); Mon, 24 Jul 2023 14:32:36 -0400 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id F1B9F10E0 for ; Mon, 24 Jul 2023 11:32: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 36OFOIWQ005721; Mon, 24 Jul 2023 18:32: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=xzwL7C9F/ikW9y2u2TaUUhmNSNdpMJ6Rr6ICz4tQ5m4=; b=UYY4p8g3LWElABz6/IfntA0pm8TFPx7vhT7xUl+1gCBMRsLI+XliRIGh7ZxqYW61wSs2 DIkWc1ZqQqUpvlc62h2d2G3SlaA12cvw5gP+RptOe6fT1YuzssJdL3GTtcY8HoKaguEP nT85+hQA0IfEeDjkoeGoOjU8NLjowYSQQfKJfrztjEiwmDtHmlMkl1O20l+YL5AtGRwA H2rbcif5kFylGkiJNdMv6ojSytp0B5FcVv9qk58Ft/nZTIidec0EZ4YUs/3jp4kRM3Rr Qg/hezO+r7CEFnAbW2UlKkuw6hYi/bHypywzlSXqOO1eCOUTEGDN5ySOskKk8+yz1yX5 Mw== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3s061c3ftp-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 24 Jul 2023 18:32:26 +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 36OH08Gg027537; Mon, 24 Jul 2023 18:32:24 GMT Received: from nam12-bn8-obe.outbound.protection.outlook.com (mail-bn8nam12lp2169.outbound.protection.outlook.com [104.47.55.169]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3s05ja2554-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 24 Jul 2023 18:32:24 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=cuvW4ADrPyvzrMSvgRgbtrZw9bt66g7fDoWQsT+ch44sU2V6pHs4plmyoISIid3HM+4Hn6t4asBtAMSv/cCqUP5d1YhS4huEQbFnkuHPruPMqVyns4Rj6/zvYdfb+wOBaBbWxHMt40YsnIDFBV/4BbOfaohkRs3YjYFaWhjb1xcsIN8bMp6W0dmhD9jZPyakgOyNUvSjivXNnf5yNlnoJr8cKqGb+Ds8YCtylF4YGd3sS7yihihm061aH+f/afep4r/TtfNXXAVoTfpt0lZ2f5NFeV0hW26f/htjxAphDN92WjTgTG1Sf8EbQ2fi4VOmgqnLXeooO4UTOKKni3KnMg== 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=xzwL7C9F/ikW9y2u2TaUUhmNSNdpMJ6Rr6ICz4tQ5m4=; b=k03njCdZe6CR616e0E/308E0KbMt8UJ7312qwP6TlD6vsSg8plkGZQg6Cjzooq4W+s0jTit82dW5wyYmzAyW1jxxHgExaWCOtHXk9fcKurs6+EtdnHPdEl4XFQUVHxkK9E+GVbOIB8K1nvqFlkRqpsYaHVc8+1tBTB5p216sqCZAr4mRDVLBK5HICx5enUlxulu/AZH39j+7n2Eu+GkqUiy6RVmWdf+UNElpcl0JQJ4JAmF5XpTvuH/frLn3u/XPomzaM4x941biROwRzQvnf/RPpV1xiAcad1VMbzy5J31gjQZPmmb8tz+F723pVfsis9iyPhV6+tj7xPaO/w1DKA== 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=xzwL7C9F/ikW9y2u2TaUUhmNSNdpMJ6Rr6ICz4tQ5m4=; b=fEOaeYKl+2l9IPp95aPDe/8/GJ3AUBDQ48zCZuCAh4FLOtjclukT7HDxE4KUcmYQ0U9J7+0X+FXE8+BHX2cNLZh+jhy3PrMU8vAXswIfzvmn9pSNq50GT9phKOPsfRsg62yZfIvRoDlXCQxKS7BvKaZa2b/Qebgxm2PnboJxfS0= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by MW4PR10MB6654.namprd10.prod.outlook.com (2603:10b6:303:22f::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6609.30; Mon, 24 Jul 2023 18:32:22 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::26d3:6f41:6415:8c35]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::26d3:6f41:6415:8c35%3]) with mapi id 15.20.6609.031; Mon, 24 Jul 2023 18:32:22 +0000 From: "Liam R. Howlett" To: Andrew Morton Cc: maple-tree@lists.infradead.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Suren Baghdasaryan , "Liam R. Howlett" Subject: [PATCH v3 02/15] maple_tree: Add benchmarking for mas_prev() Date: Mon, 24 Jul 2023 14:31:44 -0400 Message-Id: <20230724183157.3939892-3-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230724183157.3939892-1-Liam.Howlett@oracle.com> References: <20230724183157.3939892-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT1PR01CA0096.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:2d::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_|MW4PR10MB6654:EE_ X-MS-Office365-Filtering-Correlation-Id: ad896ce2-2379-4646-a6fa-08db8c74521a X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 10eV4IvLZAJlesy3wSrFk9CNIymU1jddPLGRhKnHtBCSSWq93Ug1wmCDz3fpRCMYtmAIlDeJRY2ferINMU2ocSzaTkaFNeTYGzGqxHxWryKTCmfcO4T4cVBT+ctz6qGcDoYP1tQ6NoZFe1pVQeT9ZiDzdoIFYXWocJt6Q2czJUCxWv0DnqJk+voiQipCrAXfqqfrcQou1jLlnhfX9TvkQTwoC4Dk+wmsdHQJWdXEWjBkkaUoa7GYG6jSIrLX2CpJeuwp/E5p5Iz0Y13K7Cdn1ImjxgpUSB2JqV1IAFFCQ2BGlG3tXcXd9cai4kh3sIf0u+wNU1AmIB/cFRygQbcWxP6HURjpaCuf7cyw5vO+qfsHdRkZGHBZdbkyyyyCW8n5J/CLkqpozwZJUpgRD0DYKQqGVh9fJQesTrlcf9mZX3Xfu/3tfFI+ld95SECUk45vh18u4DmYYSd8hj7BKpYS01ugcLjY9cCBQLwO5xdZFgrHfLGYeZNJCmKbz7mkvXJo8f6cRTHELNs2NIxhsYnKBQKgep4oer4dM9ona4X0OE4wrDL1FI3jN2lNFPHhyzBt 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)(396003)(39860400002)(376002)(136003)(366004)(451199021)(2906002)(66946007)(66476007)(66556008)(6916009)(6666004)(478600001)(6486002)(6512007)(86362001)(54906003)(83380400001)(36756003)(186003)(2616005)(1076003)(107886003)(6506007)(38100700002)(26005)(4326008)(41300700001)(8936002)(8676002)(5660300002)(316002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?+7ks3pHfIlho1JdQvgx1aQQ2T/dg1bepDUR3PPUGMACTRSpckYGdvj0075fz?= =?us-ascii?Q?g/OY0XCIQqP/dnEHWe7HxfA5zXKtLBGjMSOUOmcZ2WtHH1oKJ5FQSNy7DyIi?= =?us-ascii?Q?iiQdTZuQeJdem0QPDvxzaF7u/YC/lD8BtcOXhavyubQgRcWtKo1PiIapuczq?= =?us-ascii?Q?2XCqQ7MCL4z2c290IuWNdgJPc/B3dzr6nRvdYIBg2rvxJG1lE8VmXUbix7Cr?= =?us-ascii?Q?u88v0E4ndc/YF65XAeXJelR+5y+ePllvt1Le9kBqsZF6TM2x6SGYQEmDb49d?= =?us-ascii?Q?5n/q1hPc02pPn0kTXHP/7DJOjAWxttk1iz5LXN/UcYYcmMlW6CZ1XLGv6Hec?= =?us-ascii?Q?lK+B++9CexzpfAJkf3hwm6Wlt53rzBIBbNbU33dFuKySaOM4FHzX3SgsmOIE?= =?us-ascii?Q?yMseAJqHeswiHD35nim3o3XKxNrOLWQD0xh36+q62vXaZW6qaTbgoAGRepIH?= =?us-ascii?Q?xQk5g2LaAavKdAXiK4kQIf/PonOjJax34rV/LfsEaU4/X2rCb8IF6dsPbz26?= =?us-ascii?Q?1qN3HC445sDPW4C0RBeWQJ7yg4J3m1WaKal2dMIruKbfR/0v7tPaWXNOP2M8?= =?us-ascii?Q?5dtuZkxOzlFoOIF/MjXdz8omItUiLydQFTYLrEHimGqVVD48lNiomNB2Tc1o?= =?us-ascii?Q?oF2r86iONpRd2AzinI6yRMKaPuHN2fbmC76A53Jsv+ArbTJPeLIJvHaF9cXu?= =?us-ascii?Q?aDyXslSzvZGlx/f1LnD00sZpSmgb1EUhjAOdLAb7HuYZaa0dQZgerfFCa+RP?= =?us-ascii?Q?kaHb+zqnNQwKzf4khFmfag7p4VYiYXaCSCpOl8LhXGZ7v4sk9vlJBDg3DA1p?= =?us-ascii?Q?KKjck8ZSStNH6VrzzJupx9n+h4jLdSkpZ6cmoaXZeQVyLv+x2oUb0lmQZAe7?= =?us-ascii?Q?Jmvo2kP7uXI3HhpHMwWQPIA8KUwpOHMeH+9lPtjb5sVs/pWsOR4jpeuVd8rW?= =?us-ascii?Q?FA4K+JOfBs8J08aRuJcVwWTkrZqKA/O8A7Xns8OVNIQwGMHgyciY42mC8wm9?= =?us-ascii?Q?XZ9wnKx8ONBwxfhf5nHlKJHgiqzaWtPao4caXz5QtB4L7DlyvKL7yO5hhHyg?= =?us-ascii?Q?VXtpnBxmUow4WPAFggskcR4rxtyrnnklekQUfTF+quw08Sii2hKnushi535l?= =?us-ascii?Q?OcfpVx5UYLBHzTOnhyu2M5y/8ccy/612N7/Tv5neW661RMrSgD+whY8I/hyd?= =?us-ascii?Q?Tu5USPbDYLm4FTC3SLii2wA3DqxdCTUpXqkTZwwpO86IGX3ZAbvN9y5Ixc7l?= =?us-ascii?Q?Qq9ScEzZbgCL08R6n+VUc9M/Z4Axn8W80gyYZsKLNcNDyZoFMkn/pUUQWFbN?= =?us-ascii?Q?rx3bp/VQM79tnasR4IvbbETMvAoWJkfC95gTSNoiVzvtBDLAF0/0oQQntQ2j?= =?us-ascii?Q?sEthuApyySVelHtI8BSGsfR74o3TKoYkAgc+POgNPfKLay71+7q69/rmv0go?= =?us-ascii?Q?fWLikIfiJTbOehAzA3UfpUrJNOHZWgbdogxrpTV8RSj94fkIrsiJBARzCT4T?= =?us-ascii?Q?0S/sJGVlRR1VkWYGf4y8MGjUDMEI3Yj7uf8usj7awPb1j2vnQ3tFtzGzxz+R?= =?us-ascii?Q?A2MW25DD1/5d3sKoaUaR4pKBbGmy11IgClfmJEqWA612qwlXIN3wDj+h8EYI?= =?us-ascii?Q?Yw=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: hKTAKEhyg6wOaY03De4J59hb46rOZcSa5ldH1cJ6i3x+utEWtXs9iwYko3Imu6rPDw2J3QHpc9vkJeD1jMU8J+SSinSM8DB/apysgWKizrMSyyS+U5rwupw9/dFVpoz8c7Fb0MuOHN0r488mqJ/dF2ueMc+7O5aVE+98b6ciDDDjvcfC+DzG3rLrmXvo6pQ4EHIJBkDxWCwl8b4hxW5xB2T666XIAUk79nRq6U5HeZvnhHAh3LYRYoocQUmbVGYj++UsHtOCXZutiJf2Wzc5n6faXdC351I4R86XosLkJMTOko2kF5zq1ybRuvYz4K64aUuVse6a66wGhxdSwdeMktBVgRCYLiR2NlHLkt8kRaZM6IiOGaKDDsGcK88RhwO/rgkgFqzLjzCyQPSRWhkdU7kqbCt4ztI77VKncC2NC/UfQUSNai027XKEtworXP2fjgcl9mjhEyhBs63vUn6DfVoJzuj5o7vJvLu12bMsJfu8pduHadh53bQNUENevkIC0t9Zw4QI8suDhDnme8NQnUV9zGCfeM5rgt84b+kSpeBE4B7vf0boviX4qpmn5MLbNzZedLEIgIBNWpVhS/94yCAdmXqMcTzLn52oCPVP0/jQi776K4kgotbhm1PBpqNpCG5QULTKvOp1fIPRCk5ciaIvGofNONUOfAtCXt3xz14l69JOex+ZhBeoacnsHclpiidXneHUfBBBdqq7JHGPPt/AMXzKuTcs6Tt/XaW0o2m61cW4OXy1G6kGXYVQ0ZNx2Rp0w2LxIHAIYEw/SyyvTq6jk+EajoAMqJouJ3isJZ8snoWeOR/K4vI3+Toeew74eubTsMGRtpLxMRKwNHF6/abwzlgAnfNAxGw9UPvtTGgiwPbnB3UDW18B8543GTuPzOcgQn2awAccITCHREGaCCEKJPkTvTGfS+xV9Vy+CAQ= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: ad896ce2-2379-4646-a6fa-08db8c74521a X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Jul 2023 18:32:22.5838 (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: skygMwmPJNDgDy4mCCaD/QzzvpI2evEH+nSW1dIKBxENj6HXNe93nt417ZttmKNuj7W6HgJvysrpZofmItc9Vg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR10MB6654 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.957,Hydra:6.0.591,FMLib:17.11.176.26 definitions=2023-07-24_14,2023-07-24_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 adultscore=0 bulkscore=0 mlxlogscore=999 suspectscore=0 phishscore=0 malwarescore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2306200000 definitions=main-2307240164 X-Proofpoint-ORIG-GUID: jlev4soIQByIryVWud4_ys-YzQe5ESZo X-Proofpoint-GUID: jlev4soIQByIryVWud4_ys-YzQe5ESZo Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Add some benchmarking functions in testing for mas_prev(). This is useful to ensure there are no regressions added during modifications. Signed-off-by: Liam R. Howlett --- lib/test_maple_tree.c | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/lib/test_maple_tree.c b/lib/test_maple_tree.c index 9c4cf5fb2b7f..0674aebd4423 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) @@ -1801,7 +1802,36 @@ 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); + } + + 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(); =20 +} +#endif /* check_forking - simulate the kernel forking sequence with the tree. */ static noinline void __init check_forking(struct maple_tree *mt) { @@ -3537,6 +3567,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 Sat Feb 7 18:20:17 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 316FFEB64DD for ; Mon, 24 Jul 2023 18:32:49 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230400AbjGXScr (ORCPT ); Mon, 24 Jul 2023 14:32:47 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43890 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229567AbjGXSck (ORCPT ); Mon, 24 Jul 2023 14:32:40 -0400 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 768D010E0 for ; Mon, 24 Jul 2023 11:32:39 -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 36OFOICk005703; Mon, 24 Jul 2023 18:32:30 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=vKI4jF0FtObHem0Hi41uzc+Zn3+lkEYthQhCGxO7fCk=; b=DzfjMj7fY/XYAVOhm+/B4UzPo0tPGUw+JF79lXe9NyZkR1B4aJUHxrqQk3wvBT9xaiHB juE8uOtpXA+1sWoXvo1GpBaCuwyrVmGtprNVtp3XTCcKkEhYBDgfjCtxVCHbBeaaa9va niW7SSs754FGl1TyoKVR4niVN9aXbfnBx5PaU7F2+FnJ1/DidMrGUQcRV1OoyGUrEI3y AwMEpOVtPT1CuCsIbeTArZmRT/V8LoLtrhbOnYcDAb6xUktbX7HLb3bN2wR7ZbZnmHOk hBK4WZKeIQxRubOZijOzjjVWiE4sdu6bWHXCDHVovIBeQS6sdpDihZTx0T+0JM/q3T0U YQ== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3s061c3fu1-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 24 Jul 2023 18:32:29 +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 36OI3jBo035471; Mon, 24 Jul 2023 18:32:29 GMT Received: from nam12-bn8-obe.outbound.protection.outlook.com (mail-bn8nam12lp2177.outbound.protection.outlook.com [104.47.55.177]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3s05j3t3f2-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 24 Jul 2023 18:32:29 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=SBpCB8fq6750d9bUG7igLzKqi1E7tfQDPsWGaRN9F/W7D3PG/++qAlzv1pMEA0IvdpQS3TTX9pcbJyymm7jm3V2IGMiv3jiBgBSZ77MZp68mAWCgRQ1tS1swQAugN9cLdxOsF96zhqCUougm+MyOvPoskw6aDKH9WxGf2ImXPxJI01zBbbKw/tWZf8SwTD5gMTOMyGwJGg0ypJZD0sw25f54kCA/JbOkMV/vHqbQEco61xp3V2uIc5imMxkT0GXp87wgJq7BsHwUA9VN3C7WgQw/AP7FCqURj0t5BESCL/Ic+XGPIG2xeexT8TYWo4PJJJZa+aop8c5X0B6ARqZZ/w== 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=vKI4jF0FtObHem0Hi41uzc+Zn3+lkEYthQhCGxO7fCk=; b=V6G0dl1kIOG0nmtpbZVqhSqBb+YNvbb18kpWt8SmIG81SQMEfevmfpZeadLGElotqFA986BYeRFB7nTN/V5xjEschlM8FNyGcca5u5x+QdarzqJBzVbljK5wrjKz8xlvsm51KfVW3HsduQI+ltTvhSdkwomk/CiXdxu2NAvcaRx87QIrHH0Nfjxz95QSW78Ilpbxtuo5mloTJ/AwsbLSM0kW60sJt9BeiqAQOkz6LogpofoLh6stz5X3K0VsnRL3e9QKrMxW2182M6iuNKDjtiFalr7f7lfpNlKCVLcYqlLHM9cFDVeOO1z0lECcfoEDQ9Lvf1IaXevpaaKkrczGkQ== 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=vKI4jF0FtObHem0Hi41uzc+Zn3+lkEYthQhCGxO7fCk=; b=agVLfm+mnqEb7Zu6Po2JmR/+ol1Vb2g72UlXw6sFNTEwb93nWQO1J0bAxmqDQHt9YF0sU0Kpi5Ub+oqUbeL1AFociDvwIpLB29SpPMn8CL6AYlWGKGWCWaM6YjmV7niwszezDx2AI+AcVm8IP8VVtN3bwxErn0fkgCo8BeUz+68= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by MW4PR10MB6654.namprd10.prod.outlook.com (2603:10b6:303:22f::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6609.30; Mon, 24 Jul 2023 18:32:25 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::26d3:6f41:6415:8c35]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::26d3:6f41:6415:8c35%3]) with mapi id 15.20.6609.031; Mon, 24 Jul 2023 18:32:25 +0000 From: "Liam R. Howlett" To: Andrew Morton Cc: maple-tree@lists.infradead.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Suren Baghdasaryan , "Liam R. Howlett" Subject: [PATCH v3 03/15] mm: Change do_vmi_align_munmap() tracking of VMAs to remove Date: Mon, 24 Jul 2023 14:31:45 -0400 Message-Id: <20230724183157.3939892-4-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230724183157.3939892-1-Liam.Howlett@oracle.com> References: <20230724183157.3939892-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT3PR01CA0121.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:83::27) To SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN6PR10MB3022:EE_|MW4PR10MB6654:EE_ X-MS-Office365-Filtering-Correlation-Id: f7443e4e-fbc4-4831-4c16-08db8c74540f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: sQ2980l/nUBrfLtHFz5rSvkbOnehsaLI0eH18XK3rPyWAlwM9WOLevZdhF1jcqBUa2RCPSOMfJyec/BtF3hw701DUiO3ZVCW34777tP5mbka8Egdnzf3C0R0APbdgCsCBeXXQdESeFuGwFXue37/OsgmD5cPF5W8mNuu0mAzL7Ktrdn/+FJRl/KfsQqRBnW9nIBNwTFtR8fRPN1TKIlW0RpxGnj5BCloK7qKPsWLfVnQHoGTlABEjMaVMJgSS6WuawhBOJOIXJx+f3/GuGQM2tJV30I6WpNkuZLJ/ZQvuCkkqePLNveN31YROPzW6g4tW+QN1Qehb6K//zP+Y7aDz7FqTokTBhnOYbqIgLO8W7iV8nR/VxOg2At27tFSOcmXAGfBFV6bm3bchMKcuki3ElA59MlDLP5IzL++N/79tHDyB+NgfgaVTaihDAUGoufkQaZEPPyzu3E12JnN4v76VcDg/vHZKqF5TL5ZIjDqu865IzVJq9H8xaqdGNDMW0hkRU7t6vOYRVIWeRqxjQdkPoTaSCCyiGayTmoc7/fC47d1OKqpisdaYmqzXDnYbPdq 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)(396003)(39860400002)(376002)(136003)(366004)(451199021)(2906002)(66946007)(66476007)(66556008)(6916009)(6666004)(478600001)(6486002)(6512007)(86362001)(54906003)(83380400001)(36756003)(186003)(2616005)(1076003)(107886003)(6506007)(38100700002)(26005)(4326008)(41300700001)(8936002)(8676002)(5660300002)(316002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?ByI23vQNSfATDok913S1WYNMKIsxwZLt1ul143F0FxzT0T//MyEUWpWnsSqo?= =?us-ascii?Q?1fz0NijL5U4Vs+oqTGqK0LwYzi4K6D2LDS5jW8P98XGNwxF6jtWnkNGlLha2?= =?us-ascii?Q?kD8ZZxJmWEsbbXPpdPoHicYWkdsqvaJdFu9WDcln49Qd4V0Hd3b4YGJAxtF4?= =?us-ascii?Q?eIqsgAC+2hpr48BeR+rcsqlKm6YgdM8CypjMVAih9Xk3W3Jdp4YVzaoVuYmZ?= =?us-ascii?Q?hUegAioJI755Fk93H1n6eJOvn2eusQwbpe6y6gX8QXmn6CHmpmQ3FGZu/Pfq?= =?us-ascii?Q?nKEqurhKt8FFjfsHs+pAyLwh+NNjjcGWxJEGu+awIFPjLVVrIYjJh/Msagex?= =?us-ascii?Q?H/QuYPzJBdsWjFHiYQmgxmxipZa0TvH3w9me+49O7hCsnFM9NwCzkRe5J09U?= =?us-ascii?Q?5Go67X3USKVjy4LhxG7OUVwCudH2BzKzuKz772wtTHpTd+DDZQIhWrcz8npc?= =?us-ascii?Q?jV+clUxJDP44KdEze+1oi+SyIIjZdFBIRgSkNxhqS05MY4Qu22DriArG71Lj?= =?us-ascii?Q?olanIJXI3r+igB1EcVc3g5SGc4jXv0cFB8bkEESnUGWrb4ui9w8VZsTTQmNE?= =?us-ascii?Q?RVKWa0TOcfJqoa2uZvJC9/BZByz0bq1bLPMIvDfD/YwsKGxAARFeiB+kV0K4?= =?us-ascii?Q?SNKC/E2Zs/JvqszM6dsq2401XitqpmJ3pb9i+vjaLZgpXmCIBYRFMYIxUM1r?= =?us-ascii?Q?6i7sDzBQWTZrlHjx8HjdeKG5Wp4w/pyQePfRJdV1CtNMcwKrSwWY+Sl6zX/q?= =?us-ascii?Q?9/m91jUhz62I7RmxF3COLnt5eIZF5Ysfx1gYeGf9oS5ohjOJpTm6zAn1gbP2?= =?us-ascii?Q?jKDnXyzgqMqmOArtBd+CaNpWv+Dhbv5IBsz0c23a8FQysqFJR2Q4GSgiwdU1?= =?us-ascii?Q?AajQFvzRIk1A6iZvo154OLf0uRU1Hy4trRZMIAtKKij2tg0/coy5gX+8nkXS?= =?us-ascii?Q?MZA6W32E+KpvwsU6+d7REMBGxaLZi3RQwFkOtDDd0nYKHqp8Vhbjq/5YkQQP?= =?us-ascii?Q?aO+6H4XGngW35a0L3syJ7JJKTuwoyjJdmp4uS1t/vTJc7VSlyYGgt71QgieR?= =?us-ascii?Q?jTFYfccFgsUYBIa4JB1TQKYOiEJ0BLzgeiZM9bkacugXkd/JyhuLYK0NB9pz?= =?us-ascii?Q?t21bYbbgrcOAhN0FZ4sCZ2k1o0Gd7QLDqUnAe1QR7fiwIoMlbuFX9qIwNFAC?= =?us-ascii?Q?OFNRAM0esNH0D2gzVq6XuA0ZsVGDHW+vpWb2jbYMRTe/l+ZuYipgctrlkoM7?= =?us-ascii?Q?BUQN0c1jtB6AnkP8/874+NEPQT8biQizR0r6yCNcPl3pdd7r5zMlB8h0qhH8?= =?us-ascii?Q?62Cl1dVZgcHHlVQx6OVwcGv0ZbIbyje3h7pmRmxJmiyltQC2w0xBg/OzeVhZ?= =?us-ascii?Q?5AO606oZquRnTJRtLtHjzURba/ndYxC+r5Dmi25tEaNFghW2NK45L5Q6UIMj?= =?us-ascii?Q?WEdCD6usSyMLy60bYqzhbMdNocxUgCBJK3ToQMJC+A3sqo+m25CRTehdvrmO?= =?us-ascii?Q?2jZE6VjoKjZHIqgz3pbCK6ZJvuzbb70tsYayAk4ysRhmk23y5vEL5fpbvZRH?= =?us-ascii?Q?GEWFALe96+/cRdEsRMN2jKBUryKm5H36z6YU8s0scRPjOTgQ6yiVekrUUYua?= =?us-ascii?Q?FA=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: FbwWKRY6aKJzIAOo46ggoToQSNKctdqMrx6y6701Gb5Rnd6LfiSx9MMUekPqnCA7oJAd4xknvcRfXkhVGssgM8LvaZfGnhy8hoTH9P+25cIehwzr84ruI7DfjxU0w3fCTqbAOYgjfTrXs1U5auJoiX+whwoxk6tabSJoRHR6TwyQHA2T8qgeSCenvOiVeGuSbeM+wydYObjZDF7vnph+Q7Sa9NfwKSqE9CiPYQfnfR/KytzExj7hOOgysDbzxBg4R0nY9qffeB7741PfaPCNT0GoJipfuCUOFyL+kjp5wGL9sglYFWIa1pzam9pyHiedik9bXoQthTQnA2HxhVGbozR7EpYjKCAYU7p69lwUZSyY5dWeXOwRu2/9WInFBE5zT2OlaNfOoT/q4qb9pkp023TP+cDyUhGdwfZ+1r90/mVpi3djGUkGYspqUPQ2QzQTuVb9nXgZNnTXZaqPvN4nKY39amAjdn7wJ6O0i7ZQeBQkhdRqng2UBPiU+l5jHeyjb3rBidiY6bvlOqbGC9goygzKPfPQyz7OJZRSk7S8jt1Uth9Bh9CQnQj5aTsE9vSTDIUWHj8QqRbT8II3l1aEOK8EuiVShW/yckZRzEIzlhlRpYgOgE47GzUdQv15UWZ+M7S5WKm/HEnYGmmscBWAgeN2JXv2xgtUGHwe1pgT0dqs5cuwMBkfDWKEebgUfuplLDY5VBOIqpy8tGFO+Goc69oHmwGbuLjm3MocEDkFNSPZTZ8N5cffBpn/Q+sGuB7xEF0zy1kc4KHqVNTcouquNLmOwLsvQQkY3s/XBjgIhMpC1cUuHZ/w1Rar3PCa8a+rngdgreYWVfIrmLbYqjbwW61lzih2G+Npqh+NeeZeppKTNSA7Vg2N5Xkzy23KZnmjKUXsJIkdfVaKPzDqpLMrjcU/doniZzd+Y1X55CYVl2s= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: f7443e4e-fbc4-4831-4c16-08db8c74540f X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Jul 2023 18:32:25.8689 (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: ACJnt/G9kr4Wt8S6jg7wLXqj8XJF3yPsV9iafoK8w1Cx0YmHBW5YG460uJl3eiRwkcBChYBwIkWhKnQg9K5Vfw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR10MB6654 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.957,Hydra:6.0.591,FMLib:17.11.176.26 definitions=2023-07-24_14,2023-07-24_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 spamscore=0 adultscore=0 phishscore=0 mlxlogscore=999 malwarescore=0 mlxscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2306200000 definitions=main-2307240164 X-Proofpoint-ORIG-GUID: YSsSbsConz-RKE0TL3_UbDWCRBfe-KHw X-Proofpoint-GUID: YSsSbsConz-RKE0TL3_UbDWCRBfe-KHw 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 vm range is within 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 --- include/linux/mm.h | 4 ++-- mm/internal.h | 2 +- mm/memory.c | 16 +++++++--------- mm/mmap.c | 41 ++++++++++++++++++++++++----------------- 4 files changed, 34 insertions(+), 29 deletions(-) diff --git a/include/linux/mm.h b/include/linux/mm.h index 5b866c07be42..65292eae0fda 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -2310,9 +2310,9 @@ static inline void zap_vma_pages(struct vm_area_struc= t *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, +void unmap_vmas(struct mmu_gather *tlb, struct ma_state *mas, struct vm_area_struct *start_vma, unsigned long start, - unsigned long end, bool mm_wr_locked); + unsigned long end, unsigned long tree_end, bool mm_wr_locked); =20 struct mmu_notifier_range; =20 diff --git a/mm/internal.h b/mm/internal.h index 483add0bfb28..7d11ebe5d11c 100644 --- a/mm/internal.h +++ b/mm/internal.h @@ -109,7 +109,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); diff --git a/mm/memory.c b/mm/memory.c index 8dca54461567..a7b31f9efcc0 100644 --- a/mm/memory.c +++ b/mm/memory.c @@ -361,12 +361,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; @@ -375,7 +373,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 @@ -396,7 +394,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); @@ -1713,9 +1711,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 { @@ -1723,7 +1722,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); @@ -1731,7 +1729,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 18971ab91633..fa388eab8074 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) { @@ -2292,18 +2292,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); @@ -2471,7 +2473,7 @@ do_vmi_align_munmap(struct vma_iterator *vmi, struct = vm_area_struct *vma, goto end_split_failed; } vma_start_write(next); - mas_set_range(&mas_detach, next->vm_start, next->vm_end - 1); + mas_set(&mas_detach, count); error =3D mas_store_gfp(&mas_detach, next, GFP_KERNEL); if (error) goto munmap_gather_failed; @@ -2510,17 +2512,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); @@ -2541,9 +2543,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, !unlock); + mas_set(&mas_detach, 1); + unmap_region(mm, &mas_detach, vma, prev, next, start, end, count, + !unlock); /* Statistics and freeing VMAs */ - mas_set(&mas_detach, start); + mas_set(&mas_detach, 0); remove_mt(mm, &mas_detach); validate_mm(mm); if (unlock) @@ -2863,9 +2867,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); @@ -3184,7 +3189,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 /* @@ -3194,7 +3199,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 @@ -3203,6 +3209,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 Sat Feb 7 18:20:17 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 F28E8C001DF for ; Mon, 24 Jul 2023 18:32:54 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231207AbjGXScv (ORCPT ); Mon, 24 Jul 2023 14:32:51 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43904 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230403AbjGXScl (ORCPT ); Mon, 24 Jul 2023 14:32:41 -0400 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8F64510F4 for ; Mon, 24 Jul 2023 11:32:40 -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 36OFOGR8028670; Mon, 24 Jul 2023 18:32:30 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=QJ/wh9XxLuYUXhIhj/5p7uOZwrX+JqWhlqmK3ikmStQ=; b=K3EjfPfNYy7HYZSTzx/9rL+uvVXS3jL0vV5DHLVNkc58XnP4hPKRHag8pKwyCi914N/O k3QKgBDg2ly/WuYPo3/CGAifNkFacK2aO5ph+CGQ46ab5CSQg3xWG7sQEWRFJYAgQj7P BcZcb5fHVsJ1PT+aGmxVgYv0NNeN1KNYtEsGpTbSXZ/mNgc8RPopVnmr+n8vxMGKtYIv fxv6YnKWs9SyCyXVyM2p7xhCAUMJusSdSC0/hdgqL9F6Msymtne1DbuCZjhjiczFyJ14 TwGc47od+loRq9YZcYLK8xxzXtfmMORwFZVJGsmNuf/lIYI3mMKjOENO+mjLLdXoY3/9 Qw== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3s05q1ufas-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 24 Jul 2023 18:32:30 +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 36OHNmgS003911; Mon, 24 Jul 2023 18:32:29 GMT Received: from nam10-dm6-obe.outbound.protection.outlook.com (mail-dm6nam10lp2104.outbound.protection.outlook.com [104.47.58.104]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3s05j3ss31-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 24 Jul 2023 18:32:29 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=UfBqMl6IG7rKHp8mBAjLV7wBcJPNl5DAApPPGZMpUePh0nceX856bamUWG6j9V4Ca4/5dHgs0qawVnxzFPh9xVphLNL0ot5KlD2jZ8ffuHz9chkqlRdIGu5jp2A7C2ZlUT6DWb9Y51ciamjtGudTj4cJipKGJ4/gmQEIALuBOb3Dz4GcQmzBbZ4+iAM4VhV5NXzlIIBk4QwdfGDnfoa5R/JJB2AZxQnq3VhnerBmnvgjlvya8PWKS+HnBi/WJBHmqCUe0cQGtzYPNxB8zsqiyabHpMEUtcBdvGFdahKMb/b9GT5PNkQXDy8UroA7ryjO2ogjwFj8FBUWE+Su42z3og== 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=QJ/wh9XxLuYUXhIhj/5p7uOZwrX+JqWhlqmK3ikmStQ=; b=UmmX9A24FhHHPqQIRyci02nYUsrXJuzwX1VCCUyeJObOsx8vNslg2pk7Bz2++YFZpHnJ862rJH4iNeWxax4XdkiegEobtsgm90zy/DdyO1/wWq4J5AYMtBcNWkvJmuKHQpoc1sAeqJO8Gof8cwWeCbG3xfZ9UAlr03nREmNe8wIdkCmHUozoDvaF8pBhcsVqhrnH+OD2XrEHkHdeEfuvd7xa3phIQWol3edIlFSPtbT6nNdprRUiWj05Jj4TVipztVUDdFv2lWFPX0PMhcbtfijVa4PKevF0EdGq5MrIOtA/6Hv0VuxLEJSbjPDF2NUGkT3OMdcVZ9yVpzdBaxhXXA== 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=QJ/wh9XxLuYUXhIhj/5p7uOZwrX+JqWhlqmK3ikmStQ=; b=zxxPSF3Za1/mSKm1G5KgKZ+Wf2VIqGfD82cF0QANDdzFTrJICygbNYOXINyqrelJqIa1qkNvznzoYszLjKv1Vi/a0A8kS7RZtnnVAcTlYWYGHO31oyWgWj4uIR7mZ02oy7WAnZOhfH09gQnzr/8Cu2zBAgw1evMPbT/hfaCHDI8= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by DS7PR10MB5376.namprd10.prod.outlook.com (2603:10b6:5:3a9::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6609.32; Mon, 24 Jul 2023 18:32:27 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::26d3:6f41:6415:8c35]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::26d3:6f41:6415:8c35%3]) with mapi id 15.20.6609.031; Mon, 24 Jul 2023 18:32:27 +0000 From: "Liam R. Howlett" To: Andrew Morton Cc: maple-tree@lists.infradead.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Suren Baghdasaryan , "Liam R. Howlett" Subject: [PATCH v3 04/15] mm: Remove prev check from do_vmi_align_munmap() Date: Mon, 24 Jul 2023 14:31:46 -0400 Message-Id: <20230724183157.3939892-5-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230724183157.3939892-1-Liam.Howlett@oracle.com> References: <20230724183157.3939892-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT3PR01CA0036.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:82::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_|DS7PR10MB5376:EE_ X-MS-Office365-Filtering-Correlation-Id: 189598c9-01b3-4e06-af34-08db8c74553b X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: zjQnAfq1MWe6+nxUTAHsJSjIEz+Eiesc0548WK/jwSk3/3CQoROUmE3YMEkQV+uv6hJ4oaIyJiq8ytCaiUuK4fQ60J752UXQ+fLPr9DMHuNOOX3hXpAeI6RjY6plJq7vpljkzx8X5LIIVsqBqYGfD7SaYMMfDln+lLtnZuYjnt0RAz5r4aeQ5hY8EEsqhR7c0vyyEoy7eWR8cQUr2cBdLw3x9C+BZjnjKOMmieS4v+3ikKMvpzncDfzi/yxAm+Gv0MupL67o1Ok/oIknthVm0ZyybQX3pB2cCjHyArc28cW+CusXrmyOrSe89g0jsuXc31vSMKTe58zGcqB6Qi5DPW8/OButjVDn8TjjHRZBeheC6ZLnTh8WLQpaaTzmlvQa+0vD7u7luvGkH+hirmL8Q3Ead/Y0vyR8BCmXrZg7ltsuvFLHwDdB1r/4X+E6ZG+Umb7Q4AFS9dO668DMPgi1gl2FQU6NljWfOApxF5QjzRozThyohLKwp2kMkG4c0GLvMWC/h5mVGDQKBWRVBrLp25+KSOyLJx8Al9JLGL99ZBk6pig4PUWx6MHcJEkMIbNo 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)(39860400002)(136003)(376002)(366004)(396003)(451199021)(6506007)(26005)(1076003)(186003)(36756003)(5660300002)(8936002)(8676002)(4744005)(2906002)(38100700002)(107886003)(86362001)(6666004)(6486002)(66476007)(66556008)(6512007)(66946007)(83380400001)(54906003)(478600001)(41300700001)(2616005)(4326008)(6916009)(316002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?DYCvg3uEXxO40XZ/pJBSTPdOdVByKknCZCqCvvot9zYey1o0KpiLE9dtWvg6?= =?us-ascii?Q?HqPQPtSZ4v0iz2QC3053zTOjfaZpafBeaFgjzvYyect/FzDixugDY2cKP0Vn?= =?us-ascii?Q?oSReucP99daspPa8KQWrhOCoubfXlFNtrTL8ViZxeo/SCabq5FDAPO+GRic1?= =?us-ascii?Q?QH9m6owJtoteMFnghEw3IwZnB1Jg6J7GwUStzCf+YV2T/HF1DkWmiyRJSgbG?= =?us-ascii?Q?xFtnfbz9hWeJ3XyyUlqfaRpl6qu9smpZ/v1rwbwfZdcmNhQjd9YWAie2lJ1y?= =?us-ascii?Q?YZ6AO3jgE7xbYaMl+BY6SSkxFIGTJba8mtSVqc49rwQIK/9Uzt5NfZGgaF//?= =?us-ascii?Q?EofNw8tMfVE+3k8hoVnLeWAJ5ygOfVbCcs2IYmdmhhAtoKAmMhNxQny4B1T7?= =?us-ascii?Q?x8n3zhCg+j6rHHNjhYPntFdHMEDMVL/KOIYFLuVmiHJ5SoQ1m0VLH3MJ5mzt?= =?us-ascii?Q?STc+26CGc4ZdH0jmNd2J/ZbNd7pI85UPVJ0wQH5SVBAUmIRzZdbyp62ZWSw/?= =?us-ascii?Q?i2Gs2wjB6+t0VHHW5iIslLlnicNC+R14jphrxAma0lN7dCVm3KhXR+E2+fs6?= =?us-ascii?Q?GsAQudu7iLmrzonuPEok0r0I8e0A9NENcbPbVyjbWgN5eq1y8xYTieAxNCJ9?= =?us-ascii?Q?0BhdNwWAPxQNbkl9hR8Xl/R6hkGr38RIEUo6D+nsWpW8AnON+lUZ80TIBQro?= =?us-ascii?Q?6z8qEhYuf+gMzfrodV/G4e90Pr6UapVp7aWTzvrV5rf/ZrjiLWZ6jevDntdf?= =?us-ascii?Q?P4VX7FD72QYeqomgn4+YiaUTFxz89xdRYBeJccZXa5tyM2kjIxT8D7OlLQT7?= =?us-ascii?Q?dueyfUSTxfVLBQqPLDycYN2wukhrmwY0yLcSLNW+lSkbQxvSgP6ki3RukxH1?= =?us-ascii?Q?ziAQVjz2OUsABex+LCuJ6wS/RB0ynT/uF29fgikRV5VDPNMC1pE68natWAOg?= =?us-ascii?Q?n3a+cIKZN8jeRDoxpTM21iOC7iROb7qOyWqeymGjOckRQk/IGUvuhrwtXkp9?= =?us-ascii?Q?vVUmmEAC/ZIzqmxwqH5EKLuQpV+znch66iJagvJ/JbqfSueb9TvpEdLz+Hnq?= =?us-ascii?Q?mWIZNclrcidg+5Yx5hhzpTIDWh80yHPjOa3oTGhtVb3F7OoL8rXWJL9R61s5?= =?us-ascii?Q?FShTGHuspcGXBNhroF3SO/kqFIiKQ/EDxk0ML2PG3Ldn8f73w7DQ9ioeGHRE?= =?us-ascii?Q?5vCg3+lSIAkZswWDr2NpxjeycHn78zVi/93b4vNkLTdgDj0sgXHdwrso3VAe?= =?us-ascii?Q?B6171YHxghb2wpzQu30ith0YSJkTJw4pmBU+P2fGU6CnTyYfl0ExEmkjNtZO?= =?us-ascii?Q?tXnXAtwcCtM+FyJVhkD8+9xe0363lvBub9Ra8pQX96gIhLEXWageahdrSWoA?= =?us-ascii?Q?meInmQPfYcHpWyMpSm7U1SQ4zFeLKah1vdgKdYhjeBQM4px6oHI70l0uyPTI?= =?us-ascii?Q?cgt8pZFieUn8mCvuWFrF6VW2u05TSy58hztq1j/GkxoSF0nRWBlHbFRV10rM?= =?us-ascii?Q?aFUJHYrIFsbUBhBHyZBU1WKAJEv2aTc2yO2Yp8lHWUXBZahOLt+ScPigJVVb?= =?us-ascii?Q?qDabvCFF9Uwfv/n7VCjIjcYhwPWZp8LCa1s7vhkNL4kn6RWxiZG5eC74j6vc?= =?us-ascii?Q?LQ=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: kyNxLnYp+oaegKlV/zldtfKvI9DqBU/ZZS2L44QamqrDGQdJtRTHkcC81cmaO5Ev0+GQGyg2j3OpQXaqm5/iPtlcOrN0eY2uzGZPnPnUIzjFNLeMwBHaztU2jMDcEkD+U9daErED+0RtcJElE9MgV6nBu0IkXSCocazdGiamsnUixxBvREWOqnhrWVXK2na93tYnYqjfxXgpmUIso4VUysYbHW12p587xebWHk5Zqp9VdA6KLEJ57eYqXsjCD8awr1obNHnfexp81LBrnl+OASOLSOmb+b7r3rzsESD5DOEOxw+m4yTnQg1E4ssJh9Byf6aq+sox0/9fn6wOdhwchldJkrp+WSUvvnB8djEAM2REi4VYN1kXxtgo32PoApqhC+Dt9b6QgEEGlZPhtRkjvG1epFnDi/MtR8mtqAxD5ipHaXYzYo6xPXvteI5M1SJ82cBA4WupP+rBXfFfBIFW4GhPwJAndMVOBVWHa444GeEU7Jq1fSTcoPUadf78yqWYvVTlp2BxLt1fg0dC0n6QPSqX4+JG/QNkbG/0fCjrbXulA23TWS7d1QaQ3v/M6fdiaTJ49WWxAQblOL4TdYVli3owE6kqgpv+XEoR6BrUab/Fjkqd9tE4KtYytq1hKjc27n9f9FgE59Am1srjqEdK0MIytBhe+1S5szpYU9QhEYVD5I46cwt16T08eUrOanK6d60B9sgz84TFJ1GiE3pV3d3t7fEUiqbBgZOjG6z2fZbxNq+Kr55HCfO9ERZ4l3pgcL94xisdJzfsU7u3Mkb9x/Xh5yTRTOFT+uDOEoC2UisXzvZ6JsuRTIHzoEs1AnrIe5jPyCHtXBfS7E8pUZ13Z3AaynSz0V9fU5p0jwbZLuGwBYjuiq30bpZhPW5EA8zk/G/w2dQeq66A3oYycGm1evmqmgWYe1m3XaqhEUKNgJ4= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 189598c9-01b3-4e06-af34-08db8c74553b X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Jul 2023 18:32:27.8250 (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: E8lwNTpgv+6X/5RpewHNe12+/TPiXPg2b3hHP2Xa9dFlP8NorYPHhQAaWH+6z3+xClf6U6rOiwPyJFe+0ofCjg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS7PR10MB5376 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.957,Hydra:6.0.591,FMLib:17.11.176.26 definitions=2023-07-24_14,2023-07-24_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 spamscore=0 adultscore=0 phishscore=0 bulkscore=0 malwarescore=0 mlxscore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2306200000 definitions=main-2307240164 X-Proofpoint-GUID: g4tisq40P4vHYtaworXoWym7MvP4Yr5u X-Proofpoint-ORIG-GUID: g4tisq40P4vHYtaworXoWym7MvP4Yr5u 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 fa388eab8074..d4056d1de7fa 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -2458,8 +2458,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 Sat Feb 7 18:20:17 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 EB892EB64DD for ; Mon, 24 Jul 2023 18:32:59 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229926AbjGXSc5 (ORCPT ); Mon, 24 Jul 2023 14:32:57 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44030 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230472AbjGXScq (ORCPT ); Mon, 24 Jul 2023 14:32:46 -0400 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C2AE610F0 for ; Mon, 24 Jul 2023 11:32:42 -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 36OFOKWI006034; Mon, 24 Jul 2023 18:32: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=+b/IhjAnSSBGrrvE7yOCPKQj4CvXkErXLZvpKp+qoRw=; b=qkOwK1v6J1GDHLaKLuHrIetVl+CBnG7s4F3XRreRyO4vgUzBJ12i62RHNvs1Fi9PfXjs VN41zJBR4IVBDx4BTlqKEebWqraGHMkwdBjwbG2Nv3gFORHobDbhR/YcZJKD20gOK2pJ 8PGZ+xs4q9qaDheml4XJqth3ZY+7rZ3bIM+fmU9Ffr+KN6gOWntH9Nfd4nqNa/Leycyt jIz29uUPhjGiYgD6VWuGT4Jj31oO+OiNpIFOVIvs3olO5WHRhzQEASpt5HR/JiVWMD1g amJb8A5xhXflufMGiLBBnLzvrTWb/NyMQRrV6LYCFXB2vuzfowbpiaOcrwjU1b9zMwg+ Rw== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3s061c3fu9-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 24 Jul 2023 18:32:33 +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 36OH10qe003802; Mon, 24 Jul 2023 18:32:32 GMT Received: from nam12-bn8-obe.outbound.protection.outlook.com (mail-bn8nam12lp2174.outbound.protection.outlook.com [104.47.55.174]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3s05j3ss50-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 24 Jul 2023 18:32:32 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=mjtU0MJV3srunVFj9jiwuZ+yG7XIfBey/V8ZR1RdTwHTJafQ44oDuk8SGAMk/WraW1qg6dyRHA0vYi5YfCNs9Zz1e3UaNAm6yBxSwMWCBwoLdUWDBwBvHWt/WLhILax4RA69kZn55hdm6n499J8JyLgGrXxLsZSvtt68+YiTS44naYx/VwnmGmzeytaegglNkKCy1aD9nKEVTvI15stLyOOMpxkFRuun4X2n4KKEB7r1O0z9G0SiaOmLLnt+0qYKMSSSoyNe9fHAOJtyCEd9C/mdTl0FiMcrJ7jLHA12QWorKtiY/NKWQQOqLfZap8iEn3MQblC8sXTfeEEk0eGTJw== 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=+b/IhjAnSSBGrrvE7yOCPKQj4CvXkErXLZvpKp+qoRw=; b=GEeFXwXGOKbV1OVxvSSM09smmqjkhCWcaXy/K9hz9eEzzUt/xyFoLjtPgjye6fmAWMJS9Mvc/qIkg7AOveWwHpTzcCnwtWKmJr3XkOk5eLWcz/lhmAy9X+GHjW2Nwpk9iPKWW5Mdw2qABt/MiAMkGrgZdp79SGypI595fsewjPiPk6FQS4+5YdJeMEwb4QdTzpWfuv1ZondcFWDAuBwcepjIqiyd2JuFp9r3Ld+Q2XuvOAR7O73XpJSnZlAJAKOxmnK1/gU57BLCALzEuY05K65gCop24I0+es2DCRCW9N2o2VhTMpZGEe3zqz7c8wOfxl/Vdws3Jn31l9sraoVbSw== 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=+b/IhjAnSSBGrrvE7yOCPKQj4CvXkErXLZvpKp+qoRw=; b=CuYaP8/38yBxWuqGcgnKVo+oeiJZZbbWQ1hFJuy+q2bDjl4PIaU5mLkz++1PY5jhe+HZQmCldnJ1BnRxkZpoJ5gPQFK6CcMVPdzkSdvcGqxSxwM1uwL2PTcfhOWQOZ6UQCLpP2y5urF5pwFMDx9kYMnEO9S4T3ehZEeMldNIkl8= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by MW4PR10MB6654.namprd10.prod.outlook.com (2603:10b6:303:22f::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6609.30; Mon, 24 Jul 2023 18:32:30 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::26d3:6f41:6415:8c35]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::26d3:6f41:6415:8c35%3]) with mapi id 15.20.6609.031; Mon, 24 Jul 2023 18:32:30 +0000 From: "Liam R. Howlett" To: Andrew Morton Cc: maple-tree@lists.infradead.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Suren Baghdasaryan , "Liam R. Howlett" Subject: [PATCH v3 05/15] maple_tree: Introduce __mas_set_range() Date: Mon, 24 Jul 2023 14:31:47 -0400 Message-Id: <20230724183157.3939892-6-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230724183157.3939892-1-Liam.Howlett@oracle.com> References: <20230724183157.3939892-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT3PR01CA0045.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:82::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_|MW4PR10MB6654:EE_ X-MS-Office365-Filtering-Correlation-Id: 59226cbc-9eba-47e3-852d-08db8c74569c X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: T2GY8HtboCxe+F6sV2wWof8DzkbrW5/kOZOaW1+n9zw7aO1T/nmpKYmKMDfW9ZACl6WmwW5p0NDPz6RSH8Z4oaYdWkHpUdtcoT0fB6fdH/IV9jx/j/ovqiWGqD4vJ/3vhJYbOYz5c0Sspipgv7pPTe/Ilk2ozMH/PuLEP+aCude2tzXIXDiN18Dc5SEk8L7D7bsY8qAn0kO58UVclnUCAyw4bTffCbTkcQk7U/oSUhm7ldZ9fdLkZc1To1whAU+6gxIL+NIun6Cmt80YxLRRdEvC6hCk9gUxtQfSvwZf+1q8+GPjAlL+2PjLz9uaeqyR+ZlC8fJ1Q8cDq36SCdQ0a/MAwjfgd20mMzyhtnKxEbidEiZx3sZo+cCcYeIJ8sqoU6UTpXDhmeIdQr04229cy5tbHqsaU22ssBya5H1cDUtidrsvexjRQc9WBJHNbIVnK3IWEaUaCu+S/vDHBeLOL1XzUsjyKKQBYYc+0YfXlBVInRJDvv71CBWmOkm5S/6rHeqtfJqdInbVxIW4fyWClVblLw4/49stJoGORDUcu9rCWACjRELUZw3gZR9VZLvF 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)(396003)(39860400002)(376002)(136003)(366004)(451199021)(2906002)(66946007)(66476007)(66556008)(6916009)(6666004)(478600001)(6486002)(6512007)(86362001)(54906003)(83380400001)(36756003)(186003)(2616005)(1076003)(107886003)(6506007)(38100700002)(26005)(4326008)(41300700001)(8936002)(8676002)(5660300002)(316002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?54bv0ZpqulL8lPt8nR4t84VySGOiEFs/TZv30x9h5JZyhHzG8I2exk35X3dK?= =?us-ascii?Q?75SKdpGov6Y81pA60aEakzl+BwVl+/c3vbqPplVXOOB4m+gZ2pJUZDakFiXE?= =?us-ascii?Q?qS4dHAlLhRlIjs9aMdeZ+tHEs1nDi+iCQXJ08e1CD6vldcihD4mwbPPminHq?= =?us-ascii?Q?CQg6ecOZwA8JAV04GNn4EyfGYuNP7ocbT3cWJiQL0o/GwwHzX9E1+Uu9/JeT?= =?us-ascii?Q?sbw8ibVtoi3JK+cIKZcmM0ru87MQ/KlgRjWXGySrh9ndFCXhl7//lUkatYrY?= =?us-ascii?Q?JF0QUiadC7XnkJdLvQJmNzJk3Vc9MOJLdw7xZMNf8C4RMZrF574ZxihgS9ao?= =?us-ascii?Q?GCjL8bpAKKXHJ0JHl/yrhBYt/6A2D2O8nHdSEtDBGYhUk3dfHKWqmIXTTi4V?= =?us-ascii?Q?nY+r4AwnpLW7RyTHkXxkOeLn+mxdShU5E7xS1FG+McnXEVgg9p8TvNZKyPZX?= =?us-ascii?Q?idzjkuJ846w2wMHZD9vUm02pilvp6GcvkJprziaucueC0/OImlf/Exn+K2aY?= =?us-ascii?Q?s+Xm6KkylPbUMjjUUvimGyqSv3/jZblWRw7T9GA1BiH6AkpfntMQWtX9Hxj8?= =?us-ascii?Q?YWKH4a7ATsLzb7jGHXpFdqAweQrlUQp/3Qmb7f4hPGZThQoPqGIYDyMdlmOB?= =?us-ascii?Q?qr6yaNaHnBaP1D2GV94G+3ZeXwv210yBgOYU3JkGGRurPMuvQnyMUDbbhveh?= =?us-ascii?Q?ueTOfEWWv1K5QzTkv3gh+UMr4EF44ggJMoamEnVV4XLxdCh13/3s0DfyZV+3?= =?us-ascii?Q?YLV83UF02oFTjqGv+2CXnysH6kSmpcFFaUt7tRCWu2Q64lRwYPvA/3y48WB8?= =?us-ascii?Q?0CFisD9K8erC145qAUjNVedHslS9VTGz830OjAPq6WtPoovPQbBImipkgs0Z?= =?us-ascii?Q?XAt44fTyDj25z63fXsHgJHM66ekNLk/8BfeC9Os7sbJpc3nRAs3QqxMVpyU4?= =?us-ascii?Q?qf65HjEhZHjmB80KfGI5VTopK7foNUaOyRSbHGV1iX2zeSv7XsZzZWhW7pSv?= =?us-ascii?Q?uVXiEOAuKBV7rJGCF4E1Pho5jg/KK43mWjcSdLOAVf2iW2VvkqJDW1DE7YTe?= =?us-ascii?Q?jkhPDfVuzAeM207jv1to7giziOb/5NNUh3OB/utpqf0fTe/TfMizZTeZUREw?= =?us-ascii?Q?+b8kfSGFzHzgNlOX3L/Bb5CNVpfkvcoC92LdoaSGB/Ud6PnWrewfPF/3h4oh?= =?us-ascii?Q?u6TgRKT9KSDs3DZ3NgnC3nOYyYSBPBA1PoNyyzeQeBlqkZctjVDNkcNwfW0/?= =?us-ascii?Q?SHUl8jpZT8pLLaOmpm27bt7UTaDzDspGqF2x4lNwb5r27mIb3ynK4e+jyRDs?= =?us-ascii?Q?hK6LaqcK1bg6dHArjiU2Qu0fyz7dOAkhYYg5TBzJ74OjAOyk8eSAYTc9PmcI?= =?us-ascii?Q?vf491aOz8TqbR3pZ6hqLHMsIw1SzEZswlfhH2m8lSz+hJWzIy/vMA2vPG8tS?= =?us-ascii?Q?X7eXXuiQzwpPu3qpMMmEc23vOXQFqFHIZ7Aca1mlNez/ryI4X4nzkiQ7DeJH?= =?us-ascii?Q?Zd4+t5rWrH6tQHC22QBgCxyWc/A9KMkJaPtdQRbZXXOS5sQpVb41VshUkAuv?= =?us-ascii?Q?PqaFX21sfIHyPJa96VeCaclNdrzbo5bLUfofrFe2Eixp0xPXhFFx5ED/KW14?= =?us-ascii?Q?9Q=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: Rwy06YRcQqlxjsx6XYcai3rjXwnTT4pj6ut7UYiPEPTDbb6C26ilR0G2s96zT79DhLzWacIwPULGXcmurMt9C8O6QvrE/LVjP4HpXWFE0chaBnjBpuh2ZG2Q6Edj738iC5irt7RMA7nHRYcJgCChSLfV0H86inuS+++eB3TzGyj2993U/sPpRAeoiyP7yFPmKm+WpQu8V4N3blhTFFhPQj4ktoZm8GknKl5Od8dLHOmkJh3kff9P3U8f6ezMsbTCQpSj+elWMDnGdAim1X49QTJ1YAMvch5WjiIPXMzTm23awqmYzPYZtLPBXovV5QN1ZMICMfElLtZg+Siac11+zqD2ttiIDPkw3l3irm8dJmfB39/x7fEf3xbt9A5UjvBXY56FlxlxcSCpVEJp/Jrs6AAqazHzk1ahi8Jl+hJqB5HfQw8V48c77A1g/r/jC67LZXTEh4sl9SKddbt1NkparUvhJXtgakzqUeUiHfiPqmpDsYWkG469daV9C2RKdw0spSCdoG0MVXw4Rs4X7YqLqjaI9PK0t9Ub9/0tYgrC7ZQxm4ajvBqFU24S4LQv314Ei9TM9vVDab/3ZIyHp16RbZ831alc3on9CxN6xhBXXDDFJ2pCq55zzrNS3BrOKG3L3wNxeGR4lwnJXaMXSqdcbO4MsUsZteOrLwCYyvN33xggi0D3tcKBi5uQQNSxj1n/RivdfuA/kr+J4GOkaIX6LcKmVoi18dIfAWYa5UZBz7WjU4ZL/x5eV03azE0dJfic2FGDcgHSepFn0CqDSQLANHbIGgGgANOVAjPYgKAul8nkKgKCU0VBB9BHEwUdI/bfb5Gxp+sTSkHurI3EFvPhZksm+iCIBbe93xfPpnkxArS/FdIosyICYBJb80R299PcPDeJb38nLfcSsUA7cfQupp/4I1NCFG8KvXNvM73RUq4= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 59226cbc-9eba-47e3-852d-08db8c74569c X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Jul 2023 18:32:30.1506 (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: fBXPSdJ31dzEjTMa3gTbeR9PFXmoG8WRaXGBRuTr25wt/sOor8RSDb481SjoPumg0U/qXOPRSpE5KNIkI1gWbg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR10MB6654 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.957,Hydra:6.0.591,FMLib:17.11.176.26 definitions=2023-07-24_14,2023-07-24_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 spamscore=0 adultscore=0 phishscore=0 bulkscore=0 malwarescore=0 mlxscore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2306200000 definitions=main-2307240164 X-Proofpoint-ORIG-GUID: 7pHkk0TJFlYs_Ilq3oHAXM4N5C7IBUVY X-Proofpoint-GUID: 7pHkk0TJFlYs_Ilq3oHAXM4N5C7IBUVY 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 949f911bf955..e10db656e31c 100644 --- a/include/linux/maple_tree.h +++ b/include/linux/maple_tree.h @@ -539,6 +539,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. @@ -553,9 +569,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 Sat Feb 7 18:20:17 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 D41D6EB64DD for ; Mon, 24 Jul 2023 18:33:04 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231213AbjGXSdD (ORCPT ); Mon, 24 Jul 2023 14:33:03 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44142 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231152AbjGXScu (ORCPT ); Mon, 24 Jul 2023 14:32:50 -0400 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 32BA41712 for ; Mon, 24 Jul 2023 11:32:45 -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 36OFO8TM011878; Mon, 24 Jul 2023 18:32:36 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=9J/Td+3AHwaHr2JXIHHZLSKTigrpnJ4n7Wkr5132wIs=; b=3XPi5R94cmrREWsB4+of38p99DGVlIBQ9HShdSFiQSVnfXqugyRgK7YK6SFr1+iD7O4b QLIrBRMsBO/dWLVa+ADo8RDdiTa9vkEfx2flmhrftUnVIu9P0sHr4AkqG/ZX2TrYGu6X 1u71hyrcYBukLvGQUymp4nIuRggH5qUvaHhvrTCD40EieQd7WLUutXKBVWnijgNPbYx1 7Zle6B8o7HY3NFwCsaxeQAQIUz9YvJLNfeS/FbpIa1a4tS09R3MFiSU437tvzpFgZLVQ f64dZnvtBbgmLM/k2k4kuOG8MY7Aj/ZlSe/3WJdgzQBUQgdkk2dg5OmU1mnhCkt0TYei KQ== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3s07nukcsg-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 24 Jul 2023 18:32:36 +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 36OIDuuf029061; Mon, 24 Jul 2023 18:32:34 GMT Received: from nam12-bn8-obe.outbound.protection.outlook.com (mail-bn8nam12lp2172.outbound.protection.outlook.com [104.47.55.172]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3s05ja2a2x-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 24 Jul 2023 18:32:34 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=L87b1/eKSRX1WrnOY5vId3qaOj7AnnYCL5mYEAp4CDUeKsUFGCzPVR6h83ExRswqA1oE8hsKZfwKvF1/gvbOhiLKvbU6GYAl/NvNtvDnx9T7yiuyQSjLekGvRMBznNQBTXZIn6lbvwSPtjIGDMsaZY5cYmtI1FnScF15g5GtITa5di3/UscOfvExIm2ECnwzMHHKfp5tVN9xixdf/sGoKDWcteIzNLz8zfS/2tBcavAYRNRRXau/xWJSIo4f6nSL7OSjkM9NWcF1yzBytngAZuhykLuD7MvamgdFcLpw1TDOI1LvhKC7NPIicRjamP0ty+8dpanZYmsqD9SEIsTIhg== 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=9J/Td+3AHwaHr2JXIHHZLSKTigrpnJ4n7Wkr5132wIs=; b=ii/hsRlA0QpTa9/dG8UF4QgFVReXxD3oM2R4a2ZgCM9D6O82zdIkEcUAywwmCcTe4SbRXkXyFFEiotv2LoN8Xa8gFchxStB63g5WN5AfxYDqDK/nSYggmmegw0lZ2dBBx5tUr0pJigMg6bpwYWvrIPm16+MkImyD1nHtYEcmh6mXDFbpVg/ciB2uFF1XbG4Lga4jBuNJa2L4H+kq8h45By1R6zsRT/1p7Rt+eech8YcU6OlRNy3dfen0qXLBpcJYpVuVPti8ChovdxIz649tPmr5lLFzCREn1ouOSdWG72DFkv2kOsSEFyqbvt45ilAInmebXjnVP3l6bRp363A0Yw== 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=9J/Td+3AHwaHr2JXIHHZLSKTigrpnJ4n7Wkr5132wIs=; b=hqaF3YuI2kccDftnRK9FhCpEyd8NA9sRxpZojsbxWsHlXH/R161i8fQpzgW1wL/y3ZNHImiNR5Z15cPm3uQuGBH89wwCxS/ZNfC+jW4FvTIvWfWlHjGEhIykb8ODoyKN088Kzh9OMmuLrGmZibcVdQSQYM+vq3u1jLlSm2+bCZE= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by MW4PR10MB6654.namprd10.prod.outlook.com (2603:10b6:303:22f::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6609.30; Mon, 24 Jul 2023 18:32:33 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::26d3:6f41:6415:8c35]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::26d3:6f41:6415:8c35%3]) with mapi id 15.20.6609.031; Mon, 24 Jul 2023 18:32:32 +0000 From: "Liam R. Howlett" To: Andrew Morton Cc: maple-tree@lists.infradead.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Suren Baghdasaryan , "Liam R. Howlett" Subject: [PATCH v3 06/15] mm: Remove re-walk from mmap_region() Date: Mon, 24 Jul 2023 14:31:48 -0400 Message-Id: <20230724183157.3939892-7-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230724183157.3939892-1-Liam.Howlett@oracle.com> References: <20230724183157.3939892-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0004.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:d1::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_|MW4PR10MB6654:EE_ X-MS-Office365-Filtering-Correlation-Id: fce2ecc1-76bf-4f54-e061-08db8c745844 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: BZrzR6iMPNFOvjlACw4Hu5KFAQYqMo2H8dXaIhG5OnL5d+vU82QkHHz2BKnuvl2WXmfy6mfuMMT6TV0eCAzRAIPqrmNP2HaJvPlXBjT7O8WEVJXblkHq+mXII3P9VT4rlP5e+T0eJDO24eeGjfvDZ5lG1Y56P9oAKk/tVeK/OSn2h8Cbn092UTguTax/7iYLvrLKDNrmQ5louyTvId1x/gLkJJuD0K+2OuLUkO+Yf8/n20j1a+eAnA3z2tkCaCU2y3piesIQW5eViPdszNwWWe1Y7KWW2hA7zbyoF/lXlCLHNZBi6L6OcpLqyvZpMbojUXTpXa5hHflztCz146Lj1eSMXspipwFFTbkLHdFR2GjzlSK9cCmD5xGP4SfwPMF6u2zVsqeoWBhC14ycwY/T1eABAtCZI7UvDuuIo6fKY42WvE6QaJ2/wp1qmxJVM1te2Mhyx9I6p76/HCaI4q8qvJA5DFbR7nK3NldAEYFAGud/VjpkMGbzlfICA9XLpc6nRPiBb8Jqa6cs9KRLNdtmrOs6tD+q5ebULMN6BrDqWs6Bu/Mm9m5SeTH5pgcocUDb 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)(396003)(39860400002)(376002)(136003)(366004)(451199021)(2906002)(66946007)(66476007)(66556008)(6916009)(6666004)(478600001)(6486002)(6512007)(86362001)(54906003)(83380400001)(36756003)(186003)(2616005)(1076003)(107886003)(6506007)(38100700002)(26005)(4326008)(41300700001)(8936002)(8676002)(5660300002)(316002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?05ZhsJ///WjSNO9nG96OLCXen0j+Fd8teA//TiewmtQ+gWpu1BGVxtui4nsM?= =?us-ascii?Q?NJkUSrQokFPhlpVKCEdDFGF2ViflVB/C6OD5HU9EhYQEXHUf5+uqIudjIjLx?= =?us-ascii?Q?RghMJ/DduxlKH6RltbgyBjowh0oo2EXHs7QxwF11eXI30/gPIyRTnfXcrY+L?= =?us-ascii?Q?ORqvVpoakX1xNX0TXoWwpJZ466vyAWGwE2/1nKnlOcdZXixXy3Gx6oi95JLp?= =?us-ascii?Q?nGuc3gtg3dFdvCbOMd3+CeOgdsdSDuN6q6TYgu4i2FcXrY4A6Ye0bCa8F9Lk?= =?us-ascii?Q?sjWWSMkN96WTkMyeY5yKOtLkv3Suuu0HMw61h4lAE9qGwPVA+CE73v6j6J/A?= =?us-ascii?Q?g+Mnf4vwFEj+ASpjSx+pUTrDTjZh4nSpIw6nfM7szdvGGXeeGpNE8l4MyQMp?= =?us-ascii?Q?bhg+8lQQ9vOUHeS6R4/eTtgawXS9d+akHysjMtjxrL5i7QdFpis3gCzSp3sg?= =?us-ascii?Q?XN6RdCgoLbjeAD7n1/uc8MtE/UM/vPVljPYEsa1YO0HfzbLRWJVAXpahRHfx?= =?us-ascii?Q?CmIeqIBe20+z6or9jq6eJ8fQ0C4P4e4Te3axOGFXnMzViRf5LBqLAl1RzPKs?= =?us-ascii?Q?Nsm9wrYMIyw0GdC0fu5xpA4BAIv2Y54ASko1vxde2fgO7etJCS3AOT9MnJ++?= =?us-ascii?Q?FsWDgSRCPuCxjeZS9kPAmno0xv5P3hZdniWb8VagYixxOe8Q9umpUW5OVtPx?= =?us-ascii?Q?7X87f8EdXjAuQvp1LnYwfn9JGXLahntC/EK2h+moAcz6h6qFJo4hTknmIGAB?= =?us-ascii?Q?6Pd+Nvqj6ip/q0EEWvNRr+3oq7myUoIzzU0pDRTHdwDUtLD9SqeKPDZ7kRaY?= =?us-ascii?Q?YBB+eVlmPEW2/wu9birBmQEqRf5UNN8Z5KRlLhHvu329F3XUaVgQKHqG9wyA?= =?us-ascii?Q?VzD/e4nMsDKvs88fg3E9Hh4HBXwYxo07RUdd4Qj28gI6lb8t4gkplzvFW917?= =?us-ascii?Q?ByxBU5Ys0ItVBgd26jKX4lhdimSOChOeCGzrZzZu7HTmuR1xnNEl+aZgRy8/?= =?us-ascii?Q?DujXxyPyq3uXQyONCvhvSignkw92olIbjeIRhD0teLL2NJ/PsdUP3QtHKIpo?= =?us-ascii?Q?9imOVXRgrHzTHmZsmay0A1xJafnptVTVOf0DacH9GNdHVbJjHZBKvdzKlUXo?= =?us-ascii?Q?vpSqCXhzVpSvKS7B35kefSJk349Q0IDybvogtzQDW8gnH50v88wKgVlRfm90?= =?us-ascii?Q?3MnOcKaBOeD2wKYdK3ZB1ZDLAmTYDPZSZJSz8fcR2ZA5ADcKsEGAf+190RVl?= =?us-ascii?Q?bkZ5SP0WtYy7mD3ZXHSCW3xgYIZmx4en3fhKZBOr7FoaJn4mhtOw5WtXQ+/Y?= =?us-ascii?Q?+KRzYKNxan7h6O/Ud7GT78WOEwN1zUs0lruTKq1Fdsv5+FmOjC5PrOrs9M80?= =?us-ascii?Q?6wg38UM0w3ah4VM/Xk/4VkN1kcErLuMojTldSil+d597BQ4kMt7tv7yXhpL5?= =?us-ascii?Q?DBXV4tlWA5M+iuhEzg7h9ppgbgjATTDbqb9oq6B/mBDYAVS3qog3plQonU5W?= =?us-ascii?Q?QovF+Yd3ixaimw4gkio6jmj+P0EGtoEX4wT50cOXarF/LYA2iTiubWCXiaIT?= =?us-ascii?Q?4r7zR8zAQmAG7i5DQpe0c/H9K2d7VEFNbjYTg3xxpDltZOISm1XOUNGPoI99?= =?us-ascii?Q?Ow=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 21zcPxOjX79NZmObLq64DtEeQ8HjFLO4MnHu+RDR6JEPlOckpQvU/KdtmRFrQbGviHUfyBQoO3n4HYQXNqM4dJNCzCJKawQqEDjnGjYnR50PfKpJvMMVqX0LU1M9LsVXO7SY4oUHEQxwIKDh/dsqTBRqEBWmOEihhXADrP96u+XLY8eDaHC/TmNn4KgbZfGHfbb/mo2YHGSeRNb820am3gpp3MmsgDIFV0gYbuv/5hSIS6+n9NGMp6eRGUNWf9TmyPyrns1v1qKADHfSbKai1/7LcgYQf78zvSCQvopzvFMkVLc5/ZqUdMarmuyKMcWOu9i+3yLt05p+PuRxTelnXre4LiZiFmMQsHBPFSFbZ8n2cgt3I2/PDAd5h6JlyZhcODf7hdwv7rBDF18ftN6bO733K+Mu8jwpnCXRahg4gvr5bb8aytgTrlGfUnHilMhnsUuPiThcyRKA/6qyH8zGwnz2wZDWMujOPIPZRM8ChfK7zGWk+V7FcL0mSg/MHYIfZKHClpYfZ8MpEDutCHVxt5ab+uSix6pArS1txsVzyocYFXdbXxTBFYPwpVqFOdNw7jgTNZ6WqW3WM2zQVHDMSDmj80IN+ms3W0E24eRjbO87hkjoQ2o3B0YgJ4PLfgFs6m03zFA0Rdc2FkuzbMfpZeMRfxpbuIhvI2Mg5WsEVIS9pbPCIy7TACRFwSci8KCdDTd5euErUQRgPLA5Eio8N7lja4ounN/g47uiyfhNX49spExEpdAYk6obxUvzpGbEwjTYlgTMDgO0RMWEIGR9r9PBt3OH1PJaxHxccpn+w8pK4/mMeCc0g1Yc/QG056N5OxMyKvpgIOp5GEGQSq5Z3XbJNM1IPPv4qjzFm0uivL52XO84EHVLB1WqOUwrH9ipD1xya4YGL1s3mUmjwnC3qi1N2ZPafv5RBVpr+TjVBws= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: fce2ecc1-76bf-4f54-e061-08db8c745844 X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Jul 2023 18:32:32.9278 (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: NZaY7Djj72H81GNyDt5/A+aOVK6EEiTordFTNYfWBfmOzN1Yi+Hu0RnW7fRKqn93Xy1fL832pXS+fXxYInNMig== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR10MB6654 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.957,Hydra:6.0.591,FMLib:17.11.176.26 definitions=2023-07-24_14,2023-07-24_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=923 spamscore=0 adultscore=0 suspectscore=0 phishscore=0 malwarescore=0 mlxscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2306200000 definitions=main-2307240164 X-Proofpoint-ORIG-GUID: Gn6WRtjlRztsA1Rvwo5w5zpgi06NZJYB X-Proofpoint-GUID: Gn6WRtjlRztsA1Rvwo5w5zpgi06NZJYB 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 | 15 ++++++++++----- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/mm/internal.h b/mm/internal.h index 7d11ebe5d11c..c5ba08f55deb 100644 --- a/mm/internal.h +++ b/mm/internal.h @@ -1041,6 +1041,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 d4056d1de7fa..f518e4c70a7b 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -2675,8 +2675,11 @@ 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 */ @@ -2697,6 +2700,8 @@ unsigned long mmap_region(struct file *file, unsigned= 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 =20 @@ -2707,9 +2712,9 @@ unsigned long mmap_region(struct file *file, unsigned= long addr, goto expanded; } =20 + if (vma =3D=3D prev) + vma_iter_set(&vmi, addr); cannot_expand: - if (prev) - vma_iter_next_range(&vmi); =20 /* * Determine the object being mapped and call the appropriate @@ -2722,7 +2727,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); @@ -2749,7 +2754,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 Sat Feb 7 18:20:17 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 3D358EB64DD for ; Mon, 24 Jul 2023 18:33:24 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230433AbjGXSdX (ORCPT ); Mon, 24 Jul 2023 14:33:23 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44190 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231243AbjGXSdO (ORCPT ); Mon, 24 Jul 2023 14:33:14 -0400 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id CDEE410EF for ; Mon, 24 Jul 2023 11:32:50 -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 36OFOGX5028655; Mon, 24 Jul 2023 18:32:41 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=jb7Q4wFykVRBPqbXxG77tiTVnbM5aOsSsuwyyo25DaE=; b=NG6LMv6hAKWZqjy8K/YLx830bQvl9lsre7DlP8caUbR3fBjejn+A1MXUFYSZcAYsJzE2 QZAHsnHI38hmLn6zoJrXk5VGZZ2mhYtJUhJ5fYEng9NrzBDx1ivxSdSPjcvKZOT2IUko DbtbJEDCbRbFPAvyl7jGhIMiExWjpidFMGW6RXK0LxAapzBpTE07JBV2DB57C+iP+4xE jO7w5huqy67yfNWfTavgWb3gHggqJWMJm9QIGAofqJ0S1gdJadKfaj55uY5Ai78u5YDk Z7cjF8UOjh4lYyda+WNROb+rq2Z+ij7n6t2dOkr2g16papuNgBkl31zjRs6ErAZoXtBN UQ== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3s05q1ufb7-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 24 Jul 2023 18:32:40 +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 36OH3MQ1028215; Mon, 24 Jul 2023 18:32:39 GMT Received: from nam12-bn8-obe.outbound.protection.outlook.com (mail-bn8nam12lp2173.outbound.protection.outlook.com [104.47.55.173]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3s05ja25e7-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 24 Jul 2023 18:32:38 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Xyj0K/3MGOXhROXZG9HapnhP38pvaeoE9QkzBaKoylCiUY8Hsrdu3kGDhVeAELmRSCWJb8C/7IR1xN1GnvEmLtH3erftSdNnx2x6vPxH8qGVhBcXVZy+H894RiPrswQWmCQnHYvRYZDSzVX/b6Vu+93h2m2WJ97vg4SzA5ncxdNrzgzARBamWqsMjxrORYT52vyWJnTYePmLHfBpSsRDQ4eftVoo9lVm/ZAgB4JeCeAODFq5kyB+MrqhSw+r601krLugnO5LEwBPq3rLdsjKlo4UV/5gYx+/ETLIJbLol6CS5/VKBVDfL831tz5yp/gD7oWEdTHPfKIeqQMjpCCKeQ== 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=jb7Q4wFykVRBPqbXxG77tiTVnbM5aOsSsuwyyo25DaE=; b=fL++KLMfRnXB3+GYgD3xa7dGWfsmF7OZwu9o15T2eyhI0fAp7uAU3i9anGuJ3EOxGk6ibt6JzWwsHxYCf3Iw0LpadEBFlWfchNLAaCtCiS1f3LyJtTh1mmNf4rp3Bb697Fb8o8xMR3taIWFmXKXu0B3cW/Px78stNt5SikZpIxB/M9vam3BIxUsJmt+YLvPLchGQDqCExuNBNEEboQEYHV4jXi3p17+FTW6gA/J8OEHp4RA2sCytPk4RN+nPvreUHvQZafTmguDg1AWUbVDSNc7cx33aBRrbnlG2jY7as9BWkTNBM05tUdYXHJD8m4NfJ2xzSK4DmKl1gTscYcMeQw== 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=jb7Q4wFykVRBPqbXxG77tiTVnbM5aOsSsuwyyo25DaE=; b=t+N4rKSjih++wyTSdMswejyKqgooJs6zXnFmPTjfJcPDWSni7AooBMdSxmU62uCGdQcxxPmf6KrfSbi5bqELCGdBilQqQhqPgOKBf/5PWXfVhXOEi2Mzd9fr8mHmtMwGyS2D0cTVOnh/YKeR0+1H67XoUHFPROLlak09IDbKnoM= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by MW4PR10MB6654.namprd10.prod.outlook.com (2603:10b6:303:22f::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6609.30; Mon, 24 Jul 2023 18:32:36 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::26d3:6f41:6415:8c35]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::26d3:6f41:6415:8c35%3]) with mapi id 15.20.6609.031; Mon, 24 Jul 2023 18:32:35 +0000 From: "Liam R. Howlett" To: Andrew Morton Cc: maple-tree@lists.infradead.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Suren Baghdasaryan , "Liam R. Howlett" Subject: [PATCH v3 07/15] maple_tree: Re-introduce entry to mas_preallocate() arguments Date: Mon, 24 Jul 2023 14:31:49 -0400 Message-Id: <20230724183157.3939892-8-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230724183157.3939892-1-Liam.Howlett@oracle.com> References: <20230724183157.3939892-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT2PR01CA0012.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:38::17) To SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN6PR10MB3022:EE_|MW4PR10MB6654:EE_ X-MS-Office365-Filtering-Correlation-Id: 086cda87-fa17-4652-399c-08db8c745a0c X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: MB6xKQ8K8jQ4UfVmvQ85N+1JvY9BnshqJcz2x65ihHZuqD476pS5nMJaRmLeStHdo4COxawx69Ugyf7iKAlcFeAFhdeC3wg8kerWyFexKd4Jqr2IDCBwx7SzbRS0WlbyjTFAJtxY/XzmpmZXjgvClHw6bO3TUG/mhKAamFH4KZ+ZaaeYU3f7Aw4CY5TcqVGsC+FSAQbcS9kOvT5DALU9pXKf5/z7+WzfI8QRz/wv6pi+yhuHTrOmy5LfF4fh2R0Zonje+5Ch+H/EgqqZr2pwwbgM8fMCbFSxjSUumDnw/P2HM/YgId1fF3ZhpELHE5u+iPaaaScql/N6OT+i2OCIQ3FwFOI6CaH+bkPu4QSVx83V7PyCVwX0HwqzkXzQd3C5rysa3DEWGE5xA3zLKi/jPtvOKJEdPZYYFpb4wmIg3Opl9sSamx+ZrQh9IsmLitZoT5wV/H9oVjvXLC3b3FIvns4oGUA2gfvyWljS1fbgkR0mJy+7nz73NWNc5BDgTmLXKxnD/Iw7aBud48owzm17wyiyoH7aucKPAliw07srmCkMinj114+vyM86OMbJTIhP 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)(396003)(39860400002)(376002)(136003)(366004)(451199021)(2906002)(66946007)(66476007)(66556008)(6916009)(6666004)(478600001)(6486002)(6512007)(86362001)(54906003)(83380400001)(36756003)(186003)(2616005)(1076003)(107886003)(6506007)(38100700002)(26005)(4326008)(41300700001)(8936002)(8676002)(5660300002)(316002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?PDjQW1vyw7rTjusEixlyzE6CTphi9cbisCDyCDda7vFZW/duGBJkfi8mchzz?= =?us-ascii?Q?715LDGsT3mC8+aWeIBuyXC2y+H73c/A14cUJvuge0sVMsYlI/3mnQHEkcahw?= =?us-ascii?Q?ZvnvmcDYKtF9iER94hptTWWJYs4eCuLpVVrbHXgsfZeMySDRwdzaytU5M8SJ?= =?us-ascii?Q?e87GMPXzzxehYJubZZVvLj4E08QfezXAZ2fX1N2dC44iD6CuC3UNX1SDfMk8?= =?us-ascii?Q?LbOJHI9AY3VfQ1RjgQQoprlksAqVep4jjl0Ch+9axX/V02SPK2eAVG1IvGJz?= =?us-ascii?Q?EWEfXsY713lympwXDijF6y8R4l0zDz+uSsf8dUTVHdD/y1anc8pLn+3tdDNM?= =?us-ascii?Q?tu0Qwsp61E+ei6nsjenx7Zv2vu+nk8JqLTCLfKoPLhIY64X/RY85RP0m2Z9K?= =?us-ascii?Q?z2rjlm5lX8IbRqzGqzTIX2Vph3f4WO5MEpbKVCvoiHPe7jck8/+ZeCZ27AEJ?= =?us-ascii?Q?Sr8RbZfhg0nQJNG7FL3dMXsS1KJQXWGm7uTRScAhZ0nHJLeK2iC2Uh1w8XEk?= =?us-ascii?Q?SoQtAy8JR5pXnSx9BGstZAlDKOmX1DP91LQypN4KSTDFyp1xMK5zS0T5mNex?= =?us-ascii?Q?09RhtmLG5Ku0tadlKGu9/8UnCxiDO+ZeicFtmjmIZIizIF1zYzv8tdmI443H?= =?us-ascii?Q?Rmx0MoXyE/+KEjp0Q+3s2BdQ28OBIJMuK7YdaGJLHSCv3eM/P4nfQz/n5Olv?= =?us-ascii?Q?LWJEyMM/1iRDWAlgWAhbBSZzzKAZWNqNKyWAActs8jqOdv+Uo/JlWSPQi8PU?= =?us-ascii?Q?EVLLSGopg09PXw6R3mdAHcNc0D0HZJBSsCjHqbYooIwjaOE4y6tLIqNjoXSi?= =?us-ascii?Q?/cd95zvdAmsz7mXYGcfBonINfDYl2J9/pw0qZklCBx2NYw4TY+/g6bnwxsU0?= =?us-ascii?Q?aLqmOYAhYMtH18pD1Z8KYY9BSRiSLKwu96UV5n/TGtlb7E95jp/UMfEywSKI?= =?us-ascii?Q?9BUiWf2/k8qGNMouH2D4T612t+EyrIw7wQ2CVIlWK/uB5MiA72grOFxvdvIC?= =?us-ascii?Q?kqSG1hmKeg6Dv6dMkHhq9cgZEGyiYqaQ26XvuWCWhB3aqrgDCB/PkH9SusLD?= =?us-ascii?Q?rrIXk/Tm0x4c1ksOi4XlpcKfmbmZAv9060hhTa7wKvSSxiIzWp9t4CuvAbA9?= =?us-ascii?Q?4Xpb6F5rHPKP0y2YuoZ2xuFbXrCJYLZiXTgRlQOpb/lBGyAbj5h2Liyp2SIw?= =?us-ascii?Q?/1FoHBmkJF078tiOJccTRzdkD2mc5wDkMeWeQHhJPhJblk9S0FhBlc5vUMc8?= =?us-ascii?Q?9ihaIiugSJu6UQdefbvsiv6LosQur4t+qis0wZZWeyg2XayfInjT3+XKGlbF?= =?us-ascii?Q?IxxiNiWy1TTVzlZYJFlaA0MfZQQ6ygOqZGaNjmso7hQAePn5zrvv6Po94Mp2?= =?us-ascii?Q?FqKwfzMkgpIuSrDG3BErw6Jp1GYztZHWnvnj6HoRvsGBMHmxnDmElQzJvT+7?= =?us-ascii?Q?GlksrHDQRwY/uZAOt2y8q0gQJ2ibSg+ylBtSgwJtrfWzPe7qtmSgp+b6s9Qq?= =?us-ascii?Q?4NIM3PaqVyTc2cgYomG3qlWl8hGcPPbCez+1HHJXtboaiuVxeWd8Ms4+H7/n?= =?us-ascii?Q?MJGq1AzPMLRM6qIl2fuAdYgx9isFKUGg1/MhPw7+Td7+fAo9flpKS6iZNlEW?= =?us-ascii?Q?xQ=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: wAbXptzWeIjQNBjffhvss4Csq6mJCF6RaV4Xz1nynZSEiPIeuv9UM4dYcPT9JqI1USecI78KB2xV4N6yQmP1/fyONXmublMkWK5x2R/LU0zqYlWPXElLjX6R7mdJe9bTJfV8Zm5CHXGqpyeYz8rje6mKQwPXX9CHi8VZSB10V9HUl3enP9KaVyZBv2LK1exgj6v2wqjkNzTmdw6w2IwFJ26pfhLaGJygbqmRIBjocq4lhquX36C2effiH7mRobWH51NpC3smoWdBZKA0aqndWAnUyDNB/mpSZ/Cy0jIJ/6cYculXxVbbOA+o7HUsL6he9ZSN8Pl4s5IUa4MpiHQqvCpWd7WLjCcIeWUoQ6kU8xTsKr7IZ9vg7wZFB6+2vfpG8x3SW4IbHZrs2ztajhKClRPzNdkc2uhCmOIAA0DHyRswj118epFjW980g9WHKKa+ADd3GV3DVAk0+hxUIAljm+ooxHrbx2eeDdiIinpclgqqwsAK26UZoE8V1S8HlW4tZtz523aSP9KaQ8S5D0HMdd6nzLDzaDjIZyvFbna8Qr7J5MFhGF29TvSQMdB1Sk29AIBSyxvMvRV0WtbbYu0KgnXc9uf0lphDAbLY7IAp57IQqqPcVZGxVGhIjU27fX/RZ6cV1ge8Rw9hbwvppB1Ag+ubIc74VEpBHXlLFrivKWrj5uokKJ06L6Hyy/v2dNzlD1T1osxSDqE7D1bRghOVMYbpc7/LVa2Qq5s4A9R+oZYrROg+ODfvPCrdhpns57C4yqGOzT/NiZyUFn1wulwfDshbBZRzBTOuJW+fO1UyyJXcBg10LdVI7Gg8GjKJnnD6AEMb4bU9rqWdlqZs0ax3dqVgRz5F05KaLG8NOAgec/GctBS+li5DpZkFY0nX3Br3GCtHRO7y687Y5tjyU4ttbdgipdaYiZ8uIeaSglIYCko= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 086cda87-fa17-4652-399c-08db8c745a0c X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Jul 2023 18:32:35.9103 (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: ncj7xurxNrkkKpKFgRkw0wjUaMeOU7n4dwfyxJZ38PbDKCcwWXT11VmLO9hr9VezTTMX4x99Y5Qs1OdYjSrvtQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR10MB6654 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.957,Hydra:6.0.591,FMLib:17.11.176.26 definitions=2023-07-24_14,2023-07-24_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 adultscore=0 bulkscore=0 mlxlogscore=999 suspectscore=0 phishscore=0 malwarescore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2306200000 definitions=main-2307240164 X-Proofpoint-GUID: czvLbS_d8E8j2A2D_wfDbTfyB8fgUIJR X-Proofpoint-ORIG-GUID: czvLbS_d8E8j2A2D_wfDbTfyB8fgUIJR 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 e10db656e31c..c962af188681 100644 --- a/include/linux/maple_tree.h +++ b/include/linux/maple_tree.h @@ -466,7 +466,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 3b6f8c8dac65..0d7e30c7d999 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -5529,11 +5529,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 c5ba08f55deb..65f646c2ccf3 100644 --- a/mm/internal.h +++ b/mm/internal.h @@ -1054,7 +1054,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 f518e4c70a7b..625d7411d5a0 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -1959,7 +1959,7 @@ static int expand_upwards(struct vm_area_struct *vma,= unsigned 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. */ @@ -2049,7 +2049,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 9901ae821911..c6c1c5109deb 100644 --- a/tools/testing/radix-tree/maple.c +++ b/tools/testing/radix-tree/maple.c @@ -35458,7 +35458,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); @@ -35467,18 +35467,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); @@ -35487,26 +35487,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); @@ -35515,12 +35515,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); @@ -35528,21 +35528,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); @@ -35550,14 +35550,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); @@ -35565,7 +35565,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 Sat Feb 7 18:20:17 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 136A8EB64DD for ; Mon, 24 Jul 2023 18:33:28 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231260AbjGXSd0 (ORCPT ); Mon, 24 Jul 2023 14:33:26 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44106 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231249AbjGXSdP (ORCPT ); Mon, 24 Jul 2023 14:33:15 -0400 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id DCCDA10E5 for ; Mon, 24 Jul 2023 11:32:51 -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 36OFO8RE011881; Mon, 24 Jul 2023 18:32:42 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=tZPY3DQGdPjFGxPNCaqQGGq8h+diFa5oiI6IQbHQjj0=; b=JIpmgvsvcYfsXn/5+ZSxD84L5ec+/LdsaEhMduwk6k7hAGaGxFcbuALg0n4clc1UkqAw /yc9+PdEMp7g9Kh8vxpTsIneMfHBaaSfeK5dRjoa6kTJ5pqsuJ33YtMGIKOmRKiWOF8J 9BNzCxl1lOMuqDelUGHSu0DjDFWBupriT1J25D3O7DiwuXen8xg7awWbDU81E9Y2rqZX /ju8YRmPlrM2aLtRf2Dpa5W1VjG0hGCJM58Zilekvrlv0AdbnqS3OSYWThDzAv39kVD2 9zlZrU9JZIspTXC3LLW0NrygnRyjV/UltKo7AWu3pYPwuNarhHQj+AcRqS1ZhZHH2O4R QQ== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3s07nukcsr-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 24 Jul 2023 18:32:42 +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 36OH08Gu027537; Mon, 24 Jul 2023 18:32:40 GMT Received: from nam04-mw2-obe.outbound.protection.outlook.com (mail-mw2nam04lp2174.outbound.protection.outlook.com [104.47.73.174]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3s05ja25gg-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 24 Jul 2023 18:32:40 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=XG86+WmvgNpW5pxzkXk/wz8otDGHG0znC/5HudhqsYBmadNoUhs08ezMdegDzb7ASWlkjEekHDZJTYsgBhg+xKdzDQgzYQ8AMUjvW7FunOGQgUyiVTMXQkhAmV5uWzYW3B2VrCsjmnz2yfQJnxs1GWdJ02bye1ZTjXDgfHFs3jYLF0hznRYkOY2zaMjdOX393i0BWL7sxhvMQCGBEqJu3kYUMv43BNO7i4u/lPLZrSQimlFvb2nEWdT/kmE9aCTy/A39FNpIZOZf+o4gWvq0Z9ZkOtxzPAiQLgoCkWWVoGPIO3B95sqJtFqP+Ah9J7HNQOfaACQg+nbFWZJw0X2/hw== 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=tZPY3DQGdPjFGxPNCaqQGGq8h+diFa5oiI6IQbHQjj0=; b=hmre9BivzLnzT4GEyzk42E9zcZdFwgKYLC0kCF0xN5V9lsi3oXavdwZKKMrnw4T4g21gnz1i65I95KvOrodlnoV/Pi7Y/BPKua4GXJDQVVMuY52ZNKKLWMSRDnJDyIpAcfhEGMkRk+Sq3jsj1/pvZcbsZl1EYvsqFBxQEiMeEIdefFnJEFBFpRRjKXidHUH4CpuQoyIArYYPN8/zMS9a3MDScWDJwepy2fnavoDV2tBjOVPmTjaiHIP5cRWr8Rc4JIUU+P9CQrIJdYYcXQfONkNMRG/AMYV56i/kAmytlVSuiO8zk/cBAujP599XccOs518uhUkBYR53XdGzbUSpow== 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=tZPY3DQGdPjFGxPNCaqQGGq8h+diFa5oiI6IQbHQjj0=; b=LlKpi7y8Xjrv4TCqNjK5IU5aL5M9EsQQm2Qq2DHIQrced1RiNlBVNFzUjiisjupbEzXcZXcNL6bQf9NLTYNJUmLpFcigUh4+IrxXEmAFY71rz+yRWGmNerZDp4Eke7YvOijNJ/i9APkYv/bwdqsSTAu0pGC35j6ezsQst0Ndaio= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by CY8PR10MB6609.namprd10.prod.outlook.com (2603:10b6:930:57::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6609.32; Mon, 24 Jul 2023 18:32:38 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::26d3:6f41:6415:8c35]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::26d3:6f41:6415:8c35%3]) with mapi id 15.20.6609.031; Mon, 24 Jul 2023 18:32:37 +0000 From: "Liam R. Howlett" To: Andrew Morton Cc: maple-tree@lists.infradead.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Suren Baghdasaryan , "Liam R. Howlett" Subject: [PATCH v3 08/15] maple_tree: Adjust node allocation on mas_rebalance() Date: Mon, 24 Jul 2023 14:31:50 -0400 Message-Id: <20230724183157.3939892-9-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230724183157.3939892-1-Liam.Howlett@oracle.com> References: <20230724183157.3939892-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: BL1PR13CA0192.namprd13.prod.outlook.com (2603:10b6:208:2be::17) To SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN6PR10MB3022:EE_|CY8PR10MB6609:EE_ X-MS-Office365-Filtering-Correlation-Id: ec318f7e-0731-4d0f-ff06-08db8c745b3a X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: teWsAAxjQUS6ztw7jCSCETzqRmebu1KELsLI5P20Njp3qqS54TKzQdhk+2lnzrRQIfLtBn3aBG//01xjpS0m1Gp2SHJdfXNIm2pUUmGHrirof2E9iYtyobB384gfXBFaPoHMWZmDdNAnDhGuKER0iEgSKPXwCbV8VzAfj1AeZRLPV+wfulPpUxdvcryIpcf5LaHtICLUczowx4M3LJ6Y7E5L6RnhkRwHOuXxl1LUK2hTZObUmmpcIYDcS5WdXy54NPmkc5lV6BVXpV0dtI7C2uuMhMNk7/AiJsLOwtihJUY4LdkN1CHQeaaXIUTKciS3o6dFjB7/Vtwe6Yus98w80L1EhhuuK6rpcqZOneB0Nb9g7IN6wWKv0QuuzWomBxsMFcTkGWLs+Y9BxhUGebRFLH0j/ZNm1GLwlySvDSgemueU0U32QrLYlNRDgMA8V0nCmjjje6d0cVCuAipDHoaMuQghvduhD2LO0bQNeoZ5iR3obOd3GpnFW+Qhtw9IWck2QbInnaq1fd2lT8DDJKHb7wg97JpSGkV/tDoTDEvgE7GMxBT3IEgx+xtvQBsa0Gz3 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)(366004)(136003)(396003)(39860400002)(376002)(451199021)(38100700002)(107886003)(2616005)(36756003)(83380400001)(8936002)(8676002)(5660300002)(478600001)(54906003)(66556008)(316002)(6916009)(4326008)(66946007)(41300700001)(1076003)(26005)(186003)(6506007)(4744005)(6486002)(66476007)(6512007)(6666004)(2906002)(86362001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?Us6TmIE45rD3BJsFYuZT2gs6zHL+Phy8Jc2Js8cIa+HWUAFmoyRkGggpkTS7?= =?us-ascii?Q?rAfxHkTZjf1XjapqLQkgLXHlDh63zRqJ0gQLeMR6UrJRjyr8I8EHfSVRuFlC?= =?us-ascii?Q?NXrn07a1gdj5PsjYWoeKRk4c6Nzu4DP666iU3/8SKCjVgA5g810eduxy5SIu?= =?us-ascii?Q?v5YI2TasHE6vmpgAL9at3ioHbKwTlrXrmYqu50NQZbzCPoKxIWnolLSjslqb?= =?us-ascii?Q?+Um79BdCNFlV2V2qsJpww8ob6kk2mnK7a1O5OoYaP7qJvGhmPNY5hqoZAmWu?= =?us-ascii?Q?bIjQPTIlZ3/7a+pBF61LJ1kjNu8JgNrFmkm2is/9lqu23KA+xcpyI7u6LaGE?= =?us-ascii?Q?Ecc52Ge/NEZ1u8FJ8PJRwbEE6srXOrnX14JZpU8NGypuo5rnpFJS56T95KE7?= =?us-ascii?Q?dsG08YduHwBFSzAyQU+XyKGcFG08h1Xp80d7W0dpHvHaTShL9KI1Ocw3MpPn?= =?us-ascii?Q?2rt1cdxmkPsDezTrkellDFhL3zrgQVWmodgdA2y/HdGtHpCPDqFQaKwLVll3?= =?us-ascii?Q?XS3oz+8nT2PhojIQPuuxhgCk/pHo+zYFF6QzTKtiaaElip+vsU6hs6P41Gc5?= =?us-ascii?Q?HyZgKBwSqS3n3twLq1EEgD0fdehYPNCDsQhh8E+C5LSHR5D7gjGE7PhN9MsL?= =?us-ascii?Q?X87cs9iDoGxmcRXRBFPwqX/wqWa+eNMjDbuWMDhqmgJdJ2GOpsDOJMcqWTyM?= =?us-ascii?Q?BLKRRkgANcLqjnj4R8tLJ4i25DkJOpAnw84ePheKI224DB4dl7FmLUGYC+ud?= =?us-ascii?Q?kohfvs2CP9XCZCXymBFH/k5Epu9UbOOWCjt7RyWX7jHbttcjHMW2q+ApnJ+F?= =?us-ascii?Q?NWMZBkehGIMz3348C5mnETvml0ayts8fYlCXDa1yOv4HFe3FmZ268beUEzas?= =?us-ascii?Q?45P18BoXAZSjFRI9Q8Lqs2QD808JqDL2dq9IuJolLY30Gswk2I+W9wZwO1bY?= =?us-ascii?Q?gEcE5LxCMdMm242SvYJgG7bqjt3zDdrHMwolumApX+YV5XXXaSzKzlWakbdm?= =?us-ascii?Q?jfbu4hIT+XjySO1/zw4ZMwdY0st8kOd1hJyUDWi/pUCKcCdTTfQhZ+Q9SCsU?= =?us-ascii?Q?qc0lqe25bvg1accJZ0R963d+epfEaBVrzzdnW4UdYiz62BiVWOnJZBYMQcRS?= =?us-ascii?Q?N5pewoMyoQeGS88sC7X0geTahQcEkPqVZHYsTPqHg+Q+ETO2d/ePh4k7q73r?= =?us-ascii?Q?RC/kQCw1zlFpyxIXhY1nFms9TlRTfUhf//dcD+q8WA4ttOEfKg1FR08X3bDf?= =?us-ascii?Q?IrWIspoc6D61uglEdDTAoocRVQL460+EN+zeHicv5VIxn4kMM37d0li87oZE?= =?us-ascii?Q?qf8rDLU++FzkWV0K9E4HQEhg+5XM8wYy8U34LyxNeAPIAsWHpTTA7ytlmczR?= =?us-ascii?Q?NHxuQ6lyLc3NpiLiexN+rEQVP922tdYkXRV+/3n3dorTFtxpth+LeRZRfdVn?= =?us-ascii?Q?GQ8kSIHXdYxvlLHJ2q1QK0tCevgio4L1HkiDtuq8OvbvK765tmgJhjfA0xT0?= =?us-ascii?Q?rrAEeJQh5Vii2ffcGmELGJKNeLmol1BFQ2c01xjAn1zhCmQLC7cHd1ULDYyj?= =?us-ascii?Q?LEw1BtJSHCxoEhQWvU7P+WiF+J/6qDvpSADjVLCtfIQAhHSKpM0PtoMoYOsS?= =?us-ascii?Q?5A=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: AyMUcEoAHz2PlLzgIvLuFSZX1VYmmOZ9EqDQ65Avq+YkQQRL13c9d++TAnOpB8TJJEJci62tw6wd6mf2TcH1wDmg9lr0hEJ8AN80sivQ41QD8Xzfp2xuiEn054cXn4m1NVvnUt9aa+mHP59RNPHMVKh8+1S7s9CzuflDQBy/8bh8LjGDpekP6bSA5j+yLhAGdica78USg7TSYTpN5K31q4D/Pu2EVuYC0W6OJoucfC+Lj6iZKA7Nw0QAoaygrl40FWQFJVOfC8SbHQz6q3GlHqbbiQEpWfleQKvLgPb244ReOYYsqx9D8EmryDvyNfSepf+0Y7jkEE/2rCDH31+bg1SYBgyhMAibHLrA+zOeWQHPUGP9ERl26y4b6J6N1k2bKhP8mzNBlbK7yThixj0/IN6Ca7PtiCrAt3+TXnAZml6vJl1uNi2QZehHBIE5TvaCZmo4PYj6bINPJQIMtUPN/NWy00OOhkkewynMrD5CcwEIRniHxcetSc3T431IJ9PU7ZFvNa4VYYsh50Lz8qdDBQrHDI5RZnn0T/prHlUE7+YjU+1IoqRg3FCPlpY0+shVKvt8W9DB3J3tlBoqTanKIcKhvqytby+zQDcieTyLdvxMKuKxHVssBftEDtV4lNkjoMYVCP4c5PWXEaXq6agL0ROU3vbsU28hNMfYcrxIxNd1SF2zF7dPKGQwd7ZSngnAsgQqION7YcLz+GBf3w3ligfBqu26A0b4L3ak38FSMgcfjxfQIkemQjoyWSGL8rvFdmP9ihokVpEQ3lPPu5KQ9pdHmqsTRDsBj5QC6787a4rMZcj/9P8anqbA5CXuig/jdfQ1KOY0f1fN3nMQvIYTC4h22Jnvx3f2VTCTjolBF543zhF+thl7AN+91ILPHG6dgDziEKxFjsH1F5pyWyptD0x3sqj/SY5lHkghhUQAN5Q= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: ec318f7e-0731-4d0f-ff06-08db8c745b3a X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Jul 2023 18:32:37.8749 (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: w1F38hVfbaFzQL1GtM/QmsW0VVlnhfEK6gaKmx4BDg0KpU7qoh8dENoIKCeMmH5QzR+T71oKTtNb7/Ipqb26aw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR10MB6609 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.957,Hydra:6.0.591,FMLib:17.11.176.26 definitions=2023-07-24_14,2023-07-24_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 adultscore=0 bulkscore=0 mlxlogscore=999 suspectscore=0 phishscore=0 malwarescore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2306200000 definitions=main-2307240164 X-Proofpoint-ORIG-GUID: ipSFBzDmJuraftStDvliH6UAQ2D1VDKz X-Proofpoint-GUID: ipSFBzDmJuraftStDvliH6UAQ2D1VDKz 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 0d7e30c7d999..494f884ef17f 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -3136,7 +3136,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 Sat Feb 7 18:20:17 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 98966EB64DD for ; Mon, 24 Jul 2023 18:33:32 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230139AbjGXSda (ORCPT ); Mon, 24 Jul 2023 14:33:30 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44204 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230439AbjGXSdP (ORCPT ); Mon, 24 Jul 2023 14:33:15 -0400 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4C16E19AB for ; Mon, 24 Jul 2023 11:32:51 -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 36OFO8FL011886; Mon, 24 Jul 2023 18:32:43 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=GE2s3lmFfqPSKflVW5Y+GVJM/8mYdXBolYbovOkyrDI=; b=Kkp8ux8X1lPpAAfMN8J7uk8ZFaDtpN8GtJHgP1A1Y5qFm69T9BLUUybmb766dQJnGAUF Mn4BPuZbZTGqoqwElHOlkav3kG1721OI59b/2L+xgPEwApgicBWuqyLwHXFqaGJTSIWc AddOtsvhC1l/21dbsD9TEv5G0usArnfS+jOmvnMPdz+YV4YWG8UCC1mQTXX0ft/lFClv AVSWDnA4WtppJXwLZAcyt4utXahIbJP477+3QAn7BwMMqW06OcGiqd0xk/AjPCJsUtX9 FAcE78KOHSHR1CH3cKI1Iz9fkCg+uaCptnKiiF2YkOavuauqEtMsJiBHc8DMm1qTJC9v yQ== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3s07nukcst-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 24 Jul 2023 18:32:42 +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 36OH08Gv027537; Mon, 24 Jul 2023 18:32:41 GMT Received: from nam04-mw2-obe.outbound.protection.outlook.com (mail-mw2nam04lp2174.outbound.protection.outlook.com [104.47.73.174]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3s05ja25gg-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 24 Jul 2023 18:32:41 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=BtuWj+bTt2leVmWzTkqey7kII6LYCLpKf8GFyUlkK5ce4kFbhuJV1ufajkd4UI8rplMg6EaxQ3fMjcUQBBopDTZr32jpOUSakieTTQTasKO5RCPxKeOrTdVQFCseCnLugbZRR7yLUsk4JLO+ZCx9Brnh1Gh083rYFBFVlQN7h1gq0lgAA/C5JfpRS0RqxyenXEUqlaSUzbui5qq1FPFvvCxIiTsFX9Gi1jQVWF7HHW1jzQb0pwS8VRMANiNI/1kjCSJG1NKkrwP1RMAvSrUc0j/OCkCfHYUyXFCY8LzXh744DT1vAhHJ8KiOzD+xiuKOPX7PnCScdhyx/g9kunkoKg== 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=GE2s3lmFfqPSKflVW5Y+GVJM/8mYdXBolYbovOkyrDI=; b=SNueWafy3OEbK+Wf0+x152Hmv6YNDFq/DWqilZYso+IfF9d1t77hOpgZj9Obh4NhPzlmLVfoe3LNA87qsG4IX4c6DQrw19Fx2LS5WTQZHbaB56XgnuB6635o0C88tRaTCmkJF16OvIgD0WkjC24vmG/XB0bDTJqyb1N80+osIImwifT4+2SNaYgSTnAWLJKePVo+8hFTEifNRS7ZTaWkuO7y3+kpop/b9TkmvKygpgVWJg/VHNn2wijip8JVJVsrNzScNhBOApOZBYoJXcNGv4DNxs3XMHHdAUfZJ25qYOqE+djOKagbPx28TccXfZPVWKYoqgRPebixzp0k/pG3zw== 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=GE2s3lmFfqPSKflVW5Y+GVJM/8mYdXBolYbovOkyrDI=; b=AwM3B/2d63bHQ71tg6fo8tgp7nLMbkOjYDQrompT3cllKTsT/23WxpEcJjxntYEA5WeeO3DocNUZ7iLmicYlyKNvD8GJgDk7yBFze0hglKzKeVl25EFPIuZ7GVm0BP9jqBEHZ16TJEtflTxkpFJR/WFGJBskQKIJOW1DW30RRuA= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by CY8PR10MB6609.namprd10.prod.outlook.com (2603:10b6:930:57::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6609.32; Mon, 24 Jul 2023 18:32:39 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::26d3:6f41:6415:8c35]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::26d3:6f41:6415:8c35%3]) with mapi id 15.20.6609.031; Mon, 24 Jul 2023 18:32:39 +0000 From: "Liam R. Howlett" To: Andrew Morton Cc: maple-tree@lists.infradead.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Suren Baghdasaryan , "Liam R. Howlett" Subject: [PATCH v3 09/15] mm: Use vma_iter_clear_gfp() in nommu Date: Mon, 24 Jul 2023 14:31:51 -0400 Message-Id: <20230724183157.3939892-10-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230724183157.3939892-1-Liam.Howlett@oracle.com> References: <20230724183157.3939892-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: BL1PR13CA0187.namprd13.prod.outlook.com (2603:10b6:208:2be::12) To SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN6PR10MB3022:EE_|CY8PR10MB6609:EE_ X-MS-Office365-Filtering-Correlation-Id: 0af05131-b7c4-4b32-b1eb-08db8c745c56 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: NBD6ccZcliDW/+Hzj19utkL49FJ28/WijNP8fZELeO7im5FLoCTF4u/xl7s5I+DKhFznhDQWhGuLnlv98GZQR86l+AErZJuBuILIdIITUZjxlw6qMbwrotVZmrcOcJgbHQj/41CF1NqZ13sA4Ch5MrLkxBQguD/n2By8MofU1Z9PkrMMTKINXVk6n3q9f82kenqXcHb5RRiKlyUDNvPb/JUIUYWMNGuNUfuRdUtAEMvnVZ6YIefLzXZyhvdqr6j0QF9H+iOfW2X+ZJsCNdrkJhR+LBycuKuhYfIfEuW7se+geB9pnf5Jq86lWvMdEotqZbuANIWsS6HXfTIPqoSC1XveUDZvjct3Irm9gBx378VigZD7aRgGgYm1jE6Fc4zj3Hq1Zkeukrh4plcjdiIxL2C+1NSfkWzSEnFXlPcq8ij7Us0nNu1ABALoylOVLRL0HwPoeyKBuABj7ZhslMRYlpkqj7iNGhRbicd/O1qzFljYuCs3timPmv/6BE5rCr5JMyj9BVoM/jivRUNjgZST10yR/qmuYh9sI0aFPuTq8rpTfIbpF4GOcV1wmS+OLS3P 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)(366004)(136003)(396003)(39860400002)(376002)(451199021)(38100700002)(107886003)(2616005)(36756003)(83380400001)(8936002)(8676002)(5660300002)(478600001)(54906003)(66556008)(316002)(6916009)(4326008)(66946007)(41300700001)(1076003)(26005)(186003)(6506007)(6486002)(66476007)(6512007)(6666004)(2906002)(86362001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?3kiDznrgR1eArGIuoofkMZiVoiAXpGIBgsAPRP0U2DmUY+WRzepPQkjkqhhu?= =?us-ascii?Q?cAXo+Ho4fv3WYGTD63R+KOPSreLnE/CpUSK1v+88NMXo7rEfafpLfROw95wW?= =?us-ascii?Q?3RUduBTQvFRHyEh2nZM/VDw9qCOSWdOBFIBHTvjQ3XYMfnBHpJxOHFFwcked?= =?us-ascii?Q?KWULW4n4p4VyX42rXGQDWPs0C62YRZzfIzONXqGx2ZrQ502w6ju/1ifZTs1C?= =?us-ascii?Q?X5Crr9qDXMoK8a/lrfOLyIJ4xJU5l8LzEQIhypuUtlwhnAMoh2KoZPPXEP0w?= =?us-ascii?Q?QtqWxKOPcNZFZc6VDCftQ81iywuRS7rFQymhoyYwO4LCYXOY93J6ul/o/Kx4?= =?us-ascii?Q?+b99cgIeehx3Mgqh9xChn7FLWrQURZOb1tjN0CP9n8dC2+y8fJIkL2bzl/wZ?= =?us-ascii?Q?xU8tH1F1TtK8dzuhj3EFUk/IpBNjo/SqNuNdATB+VI9uYDexSc/pWnZCEnkH?= =?us-ascii?Q?0BIn0YMcex5QuDNDYaCgIsiO6gPCzW/WdKsZt5jnIYyslL2Zj+wAzjGnCuM6?= =?us-ascii?Q?z0bmsDH7ZiAE6UaSJhxD3yxkVRPvmJ76sr1vjY+bcMOZ5SByPzZd8atDAQDQ?= =?us-ascii?Q?l0uMO9mt1ocZgy+CIFuzz+loR7PDImPd9jX/clQ2sBvzWb7LrHy8eC+7R3Mt?= =?us-ascii?Q?f+K47xlqQp0LY2oz500Z3mQCy+H4M1Wfsn6UPg456RfmpTIZMC8keie2+U98?= =?us-ascii?Q?r8ImRZpVGGJJeL3FJ/d9J8/x1TL+DhtN4jK3+JpJnyZv6oDYVKUP/IESZlfa?= =?us-ascii?Q?J2BRQ4xr5YDTcomT10DszvGNXhs4pLB/56UhJc7xDV0abn7C7MzNEsiZDPQ6?= =?us-ascii?Q?P+PhKgGrbN89JP1Lj7xo0yoe9aFYDOhYn+3kfYw1vN+5uZ7MAhCoseKSJjIQ?= =?us-ascii?Q?zqELP4A31jlqZzQ/NOnQb5qKFjkD9FeZPNzOiwT6ltccxILFykwkQjrlTgoG?= =?us-ascii?Q?NyCyasRqySaKZUrTEFV1DPLS5rwx9O5awhI64WhCAgKFOj9DuIG6notltws3?= =?us-ascii?Q?TUkvWp+wEni+BZ4ffUnR4HOeccwXxsy3B7DP3kWpQRf5ZGtY2KY5CFKJ9W6C?= =?us-ascii?Q?xsiMe8/113w3Sic2kRtpspqc19CVuB+csAmdJOx/RDRMbd+bfGTegbFGjhvK?= =?us-ascii?Q?rQzgBQbPDEn40XuiJS5woQMH3o0PTkkzx/gSbtsUhxFLQHlTmlrhKtbUmXp7?= =?us-ascii?Q?VqpbQpWGVoq2B/By4e9zwOrNX1fT+k2sNbvN53286LJfZL+W5lp1iNGxtG6M?= =?us-ascii?Q?WSwwAKdgXMoEpox8Q9REbTPmUc7IuECwKZb+Yfld5Ah4IeiS1FlLevyAmeo/?= =?us-ascii?Q?fIbrchxT3mernaxFAPORvUx02KWVxpO7gWlpDK6VyeL6EHUkRtoDWlIcdMk8?= =?us-ascii?Q?LUZaNR7eitqnJT4hYeb8KupCsYJfgA+BSeuWiULv5xxyfTpXQanW/qqF65iU?= =?us-ascii?Q?bw5BChfYCHcBjrJ3mbUDdKud8yengdwe6iWOBOTHhLiEKVd1d/duuVXTkHxN?= =?us-ascii?Q?/IHACuioqTdCkaPDTkZ1Uzhu6ns05YE9it5jmMJFJzPjIXQN/g4OTEUwlIx7?= =?us-ascii?Q?cZovQY3d2sm/W3jF21uox4drJ/XAoif5fDjRkipbRzcJHCVNdRqURMGeWUVA?= =?us-ascii?Q?yQ=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: bbZhfsaReDBh5YZgmeZ9vNA+IUbetRoxXJsyTd26GImrL4VKtGloXQh9H7iV38blq0xOaWKBfk3X+q9OhnKVy4Vfp7R8SmRhjyCSSXqkr9z1hxj4pXy8rgD5wjZ/Eo1ibnoa6vjp/Dd19ZrBrCgQjiY1PkyTHnyhXQQVojw44ExB5fr9SD1xAIlyMnQNuDRBMG/5RAelAgDp592NjfmdVOmiNRhuyEjinZXEyeUyLM2lukt/dhEhidAAw12S3IXBHxzi1Ke2A9ZYdUIp+Yhd/MqPjqjvQoC3vc5mLG73PvAGihNeC+sDiLbXowcK2zPs1SNXRq7Gh0rRogxBv0Owae3+VKkXldiTX3yCosISO/e4WW7BdYK5QYjzXxVF9ZZ5NudKKUjNOSckY4ZvBtt+p0cO5iN5zldaSjVvFK3t+tkesl7NBB/3bl25/4gDWHLxF8snOzcgjhO3qOad5CfW2rCU8rd5bCjnlnWD/mvGNPcnRj56YuXRa26qDVw1ZI/aBPjCcjgV/95Shfx2kuFrCjzSJYVPtSWFWNShoe5iXHlCdov0k+FJdBPT67VDvk7MYacdt72idtFE0O7dXnTOFxTECFgNDnndftfhY5+3OsnEFa1miduQ7mmt5JBQIEGwrlg9KODjC7ZO5TamT9D3PBJoWn/dNFTRSP1F5eLFd0VQR+TEJ6t0IkEZMa7fzouAx8hYd8TUJ0JZriuD9eAFKrtLlagXx+Xczz4Zr2HyOJZYsdqlOyyXWFy9WbvnMbyFtXPht1pHdCk806vGMFem7BUgIdOd8oP77D96H6/KmJzRROy3K8I8BxSBhC2YP3H0bMbOWxQtlmeDTF5YBBPKlU9ukSWX+6AprvxygO3wBBinjQLGa/rfHUpRpt7n3Sn9Rl9f+Jk+AKZS2G2q7tgrCQPKHUcnRC8iTPzu5j6FDfk= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0af05131-b7c4-4b32-b1eb-08db8c745c56 X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Jul 2023 18:32:39.7325 (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: eqCptlumz+RJv+loFufi+zHcMSPRLGZ/3Ww59q79Wk3MUgL3WEG13DYarhmXqVAanjYHZm3lZ30CwLcHXNvy+Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR10MB6609 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.957,Hydra:6.0.591,FMLib:17.11.176.26 definitions=2023-07-24_14,2023-07-24_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 adultscore=0 bulkscore=0 mlxlogscore=977 suspectscore=0 phishscore=0 malwarescore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2306200000 definitions=main-2307240164 X-Proofpoint-ORIG-GUID: IgcTSrN3O8tnsnrEJ47nfyIqF40EnByr X-Proofpoint-GUID: IgcTSrN3O8tnsnrEJ47nfyIqF40EnByr 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 65f646c2ccf3..2f35c0ef7b7f 100644 --- a/mm/internal.h +++ b/mm/internal.h @@ -1064,6 +1064,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 625d7411d5a0..d09f11a9ad85 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 9826f6101a05..418cc0669c1f 100644 --- a/mm/nommu.c +++ b/mm/nommu.c @@ -1396,17 +1396,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 Sat Feb 7 18:20:17 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 A09DFEB64DD for ; Mon, 24 Jul 2023 18:33:42 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231152AbjGXSdl (ORCPT ); Mon, 24 Jul 2023 14:33:41 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44444 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229767AbjGXSdS (ORCPT ); Mon, 24 Jul 2023 14:33:18 -0400 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0F23D170F for ; Mon, 24 Jul 2023 11:32:55 -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 36OFOVlw006783; Mon, 24 Jul 2023 18:32:45 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=hrDmPpaMKx0ZmJlNZflnSRH9wchNm2l1B+6Yyris8W4=; b=0+XIjUj0OuyGdc29lc87dDzpcIF1NUsb6akJJcq2MkcjnHU8yg7VxT3Is9OaiEMHZLQ5 feishh6wqRCnaqj8Vn9ti8rnOw9XlKsyeKj/wP8cHb++c3kOgaGCD3sBoJ1axWvX8bUn hJU3wAmwlB3ZncxkEdWajuhUqgB4Fz7KazukFhlwdtYaEJqifhpGfjnJeD+RPhKuhmAf B362ReRvO339knQoWuD3IYE+Hx8gMtJR7/ILJrkQFg1NAA/tzhaVKqPwDJUHt8ouEYCe dvbxYQbo1VtDZKBu8rsLiU5BSpQglaWvudp3s0pgFU4bH8fVHYnKJMWAB4VUiw7vmCK7 kg== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3s061c3fut-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 24 Jul 2023 18:32:45 +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 36OGuCBt035387; Mon, 24 Jul 2023 18:32:44 GMT Received: from nam04-mw2-obe.outbound.protection.outlook.com (mail-mw2nam04lp2169.outbound.protection.outlook.com [104.47.73.169]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3s05j3t3t4-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 24 Jul 2023 18:32:44 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=S6pLww8I2wZjOjUEoFW5PPBus9/lW1HwD+0jXg4sUHkuHkBJIX20uuuVbXhyouEuEobystVrxI19JW/93LZxgytMe/Ksp1fuIcoKd010w7gKEux8Df80rsQTCt5LX1klK1hg68UXlL1ySozU8XlBYFatxIXMTDLPYlg4nPvsVOZqtsV4a5f47ws85QF+xpkktLOSObsZ6OqjGuhTbqN+QWWNwqteEsIGHbv6e7aoQ7yabnEztI9fNOmeOrhUeV+mQOAMgmLE/yEEgBh9w9/UqG8pjUi91AksAUDe532KW+ienHrgawshF7wNB7iP82//sanR26sLkFwpDRxPZxUySw== 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=hrDmPpaMKx0ZmJlNZflnSRH9wchNm2l1B+6Yyris8W4=; b=X0MFo4hmHUyIL6+OvlnrazFLiumDia7QlQkazwahe5V0biPd45wWU71nLdWN+UtrGA5bn59qOKXa5RkfUEkM9EQ83Y6NzF9uep5igGIozqwYgwXWd8I9a9o0zN0jktq81fBaouWvElp0yCa5sHfTbkF27eGH2mv7E2wbhCTYafNpiownGU7IS3GODLE9tEz+G8VPYL2Gob0EWGRgjg7/maZYQG85znbScTdGe3Fs5UeooBtJq5Qtkec5lmwYISicWScPz5zVZ0bYJHsyzyLNdtlRo9oEVXxGl2t/2TqoU3tzsC2mlF7gWltv3rWBtxIcxio3DKCjYAz/cXzBuXnTfg== 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=hrDmPpaMKx0ZmJlNZflnSRH9wchNm2l1B+6Yyris8W4=; b=HLbYd8VMnjJpOTr9AZncqaP90VY+TzDdPy4QO8s0HRFPWtE5CSLO2zL1XQMrATuSzmj+mkgMPrAdhS04xk9NxSffKY19pcodPeCGAUNoHmIR6q5KCxB5K6bO4WBOp3uxuxVZj3sPiw8NS004eIkblb76pc+PJw3KgAGrOYsOI9Q= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by CY8PR10MB6609.namprd10.prod.outlook.com (2603:10b6:930:57::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6609.32; Mon, 24 Jul 2023 18:32:42 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::26d3:6f41:6415:8c35]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::26d3:6f41:6415:8c35%3]) with mapi id 15.20.6609.031; Mon, 24 Jul 2023 18:32:42 +0000 From: "Liam R. Howlett" To: Andrew Morton Cc: maple-tree@lists.infradead.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Suren Baghdasaryan , "Liam R. Howlett" Subject: [PATCH v3 10/15] mm: Set up vma iterator for vma_iter_prealloc() calls Date: Mon, 24 Jul 2023 14:31:52 -0400 Message-Id: <20230724183157.3939892-11-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230724183157.3939892-1-Liam.Howlett@oracle.com> References: <20230724183157.3939892-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MN2PR06CA0005.namprd06.prod.outlook.com (2603:10b6:208:23d::10) To SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN6PR10MB3022:EE_|CY8PR10MB6609:EE_ X-MS-Office365-Filtering-Correlation-Id: f2b3e78f-c814-40b8-87e5-08db8c745db7 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 6JLpdxjVZYXmn4/7Lbg5i70sLy1VXH39iGBPhCiY/7QwQytOsTkgu2V60eg3Ayc9OzLnpc7i045iEUavMazjFWu6bsOiyALMIpndbijPpVDQZMCTaUDLNqi5J8oHHEpFrCzv5NTDahjAtQkC+f19I/q4UQxyPCcZIQ3DHwcPfOzUGAtvAxT7ePqXRh90TXTwENShrB7ntUrpu5vTDWtzAbEGICeOnqHdrgtd/+VVRqGvXEKUTLknHEzJmcpURGckApWKlH34jdCX2I4SkCfHCaKmkTF6/w6L+halnigDPrwtYUjtMCDxU10uCXP4NvhQ0ouqrmSopgz0RPYckW4ZN+bTNNDyFFcyxCQQ6jlwpCGOjAzqfCHkOi+caRdtGeCwSyrzS7Th0rsioH402zPutgTuOd02+Bfh8C/sIiulsXzOegl7mx9Y54WMHS8/+kU5MMexG9/di2oig+ZWxanEALeb+O/uigOz5O+RGrE4VCxmPcD36AGemilLKrs2mwqM7MMxzyxLrCzoM3TJMp9+BoCEUy2NxNjJsyKn867Dkl1hkhh5Ar27ssS+Y9U77dwE 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)(366004)(136003)(396003)(39860400002)(376002)(451199021)(38100700002)(107886003)(2616005)(36756003)(83380400001)(8936002)(8676002)(5660300002)(478600001)(54906003)(66556008)(316002)(6916009)(4326008)(66946007)(41300700001)(1076003)(26005)(186003)(6506007)(6486002)(66476007)(6512007)(6666004)(2906002)(30864003)(86362001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?ahYxKku74OTnA1iZQOGhs6bq1VKr9HfwXki6ikKAvark44sscJ+70yUq35H3?= =?us-ascii?Q?xmGVLHGkk4gDQfRXSoKYxiH8r+buqC9QkODoTsKIjA/rzjpawQOU//rlyuEc?= =?us-ascii?Q?24K6ALWD0ucYaTorpVur9Sen8iny5yjK3qO4b+OQD4yPhIIUBzxNezNdqAsq?= =?us-ascii?Q?gOl9u3efEzk2AvDRYcXW7t6ayTXhuZ3B7fhrQndwPQSofyX6Mes1RTnNVBhE?= =?us-ascii?Q?e6dMhHn+B04ayyMBUUhgMAVq74e/HRh9RdKH/aB6c5XIr5D+y9Rhd9wllz2R?= =?us-ascii?Q?k4cgqHkW0TflIDs6drvWvBd0WbxInzYr3BUMqDIyrS3yX/bI4n/l4hkNq3tL?= =?us-ascii?Q?oet7RpqQNA6d1reD33ES1SOgmgMgMkicgRc3OkRAsCUQnv++yXtgKuwFuMDb?= =?us-ascii?Q?0YTvDdJKYVSjYTeOzHHW7MkkjtaYqImOb4oy/9+RX7bTSKEov1klfGFhyoAc?= =?us-ascii?Q?LecfhWPlsYKQdHJhIYSWlhhDOHqjemDIf29+KW3ux0VWv1JGj5bK9GUyV3XG?= =?us-ascii?Q?7YScZYVpCEd54hyZiBVQKqgt7mS+wC/QfhzPk6yUjpE4VbtbZf2gqAarcu3i?= =?us-ascii?Q?FJUKSy/TalUfQ/U2ABLL6xnLV51aRVD95C0VstdQq6s5b5hI4NSy2NwaAnZs?= =?us-ascii?Q?hAm+ATWVki/asyFpT5OW5L687irWdEQPiGyB7UDfR/ycf1qai3D71E7wDIhi?= =?us-ascii?Q?zSRy7KkuBhov1SzjbLPNm4PKWp4B4cidfIH6qhUIvxT+AQyA7azQ3pkfhszk?= =?us-ascii?Q?ApQpK5EjV/oj7OF8QenY+l5AzLZX5d9ruR++oeKghe79ilGZ0CG/9oLyMJVj?= =?us-ascii?Q?MwbXw+HDU0JJlqU6uyaotceqCKI2N9HD5MAndGeJDalPmnXbp61zoOdZ2d+S?= =?us-ascii?Q?3QT6U6jEmX0Y+XXeyVZ03c9SW4HR/gRDj6qLXGr085U4PydvQJHHnOwG3HK0?= =?us-ascii?Q?4ejDPHEOuzvFBHMOglzpvPfmeL5L/VRNiY0Q45sAr/Fzd/Z0DzAo9nA/cjRg?= =?us-ascii?Q?Or/6OE5zvxdOWSKevlsmYe2uC/WMeOHG6BvSPXw6bzicw2qCLBo2QxbGMw+h?= =?us-ascii?Q?LR6Q8ueHQux0VO6CJH4+aPsG0pG1D3CBgFeWfW74Mh1e84yACBuv5CyXgPWg?= =?us-ascii?Q?i1hOvTuLXm3MXNzYoriDng7gDJktAuvOhvtgJbHHx36utV2f2HVSoO7EXnOT?= =?us-ascii?Q?1Br8NJ/zTPZr4CxJFBDHaPrj1JFtgvBjWVl6nM6wtjSccTJ2PTmQF2Ry6oGo?= =?us-ascii?Q?8s69gaVv1jY5BwAha65qswIF8TdSsSRKi3O0TYOitjBOvbaWYJjg/IaLJlsa?= =?us-ascii?Q?SQti9wxwLR2Ptvua8PDiJv6upAo6H80Ca+7gCXzlZ09wWpEZ/9uGqv2DKAcA?= =?us-ascii?Q?SFG0RrPlVM+mz3Q1XoRm+SSU4jvD8E4Dpeo9nXygulYBssjwABaM6Bjbh45K?= =?us-ascii?Q?V4FzWgxjx79mLsPj4ksRfjrDWpo6W4QCIBmaFBUD238htIIO3FmRArn5b/DV?= =?us-ascii?Q?36NaXObdM+I3EbyRVHKGHssev4FKBZrswiOCB38Alf37t9kmlz+NGZTb4/X3?= =?us-ascii?Q?RaUFjqtR3WHkEfyPBvyGl0btO5LpAH0VEFnaHqkk78ZGN8qXLr4moSovR00F?= =?us-ascii?Q?8A=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: NDw89Hxiy5gYezYOsnkZWl3aA4KDyGyXOSghlgRMEfHE1fc+FOe/ecxF8XtZ/1hG1MEC8Z9HHlXyojcGCzou5uuyi+bMNOLFQNzuqy7OnhreItzdkbOOGlOjzcJrm9wI/ox6IGr/914tPPNM0gsgUEmY3nSs3/ch/6wJDGcjkNCvCaj8pIMgff2zM3fvT0r9JpsvuazSi49YLiNyAZdDPDtQmIZ/hgEsAj4FyCjBvaoStFFXVeqQ1dVCo10z7GEyk6rGAk5xIEUUicSMDTJ3XAut/O1+W1P6V+CzEmA6k2jeJtoVrev00/1J2vSJ2ABqPuywxddESocCeLqcNDtXx7AIymdZ+guryLWw8AYO04eXrj6dr6ImWk2Xkc18/h79nXa3IHyT/ZSvjLn9OJfnqAd/NOqIbkmQX9PczxaU86X7ua6xnfh6QhmQlOtq6+IhdGeEoxzJNEzdmChoMoxNLCBaYIhnvTZrFx5UFoMVDBme33FTaxVlZuovBlhg9qSR1ocJUBdVdkQ4SfZc+Nv5h9TYf3niB+NV8da1JK6j5ecDcPaveV7kJqcw8WKwuMrRWW3HnpZLtS1rMGfbuy40EgHQ1KGXZF+qPp9hw3sCBYeh7sL6753kkSvkrSWUCamee6sH5S8Eq5cyroLvDxI1QaGFHMOSJdpDdDX+bYPD1fteHfSgjsooBWaue3vQEOtDRaN+WhH46OaaCBo7B7rjf9WQRmkHYuuWzPaWz1A5El6JVXTLVOiA7YJ4794p+X46FNE7OISDNgcGs+CbcVQxT5gyrWcVnhpZMpGcaMSoJzWWEnaODM1pcFUef3fNMDumoJHCV+1mlSyHFiXBoEUWrUIkppf/AGOzj/hcMfaCQjzEBwvhr/Ny3K+fA3i0HzHcDir+vVS/MPEk3w2zf1mypbqVBPMYUvzCL84gPeCc5EQ= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: f2b3e78f-c814-40b8-87e5-08db8c745db7 X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Jul 2023 18:32:42.1838 (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: /7DHeoqjFlMQeeCM3tCx7wLdfFodvIrEFtbboHM+96f3ClLHvT92IKyNKGD6PdNl4j0HD/wVThuPApcMAhYcgw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR10MB6609 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.957,Hydra:6.0.591,FMLib:17.11.176.26 definitions=2023-07-24_14,2023-07-24_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 spamscore=0 adultscore=0 phishscore=0 mlxlogscore=999 malwarescore=0 mlxscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2306200000 definitions=main-2307240164 X-Proofpoint-ORIG-GUID: ipKwNxEytsIutRdz4NfKB9e0kWKBkEpY X-Proofpoint-GUID: ipKwNxEytsIutRdz4NfKB9e0kWKBkEpY 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 | 69 +++++++++++++++++++++++++++++++-------------------- mm/nommu.c | 33 +++++++++++------------- 4 files changed, 64 insertions(+), 57 deletions(-) diff --git a/fs/exec.c b/fs/exec.c index 1a827d55ba94..0b9484358a49 100644 --- a/fs/exec.c +++ b/fs/exec.c @@ -701,6 +701,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 2f35c0ef7b7f..5a03bc4782a2 100644 --- a/mm/internal.h +++ b/mm/internal.h @@ -1052,23 +1052,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; @@ -1105,8 +1103,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 @@ -1117,8 +1114,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 d09f11a9ad85..58f7b7038e4c 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -397,7 +397,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 vma_iter_store(&vmi, vma); @@ -648,19 +649,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); @@ -686,19 +684,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; @@ -972,7 +970,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); @@ -981,8 +989,6 @@ struct vm_area_struct *vma_merge(struct vma_iterator *v= mi, 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; @@ -1922,7 +1928,7 @@ static int expand_upwards(struct vm_area_struct *vma,= unsigned 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; @@ -1947,6 +1953,10 @@ static int expand_upwards(struct vm_area_struct *vma= , unsigned 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 @@ -1992,7 +2002,6 @@ static int expand_upwards(struct vm_area_struct *vma,= unsigned 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); @@ -2037,6 +2046,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 @@ -2083,7 +2096,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); @@ -2324,10 +2336,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 { @@ -2335,6 +2343,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; @@ -2692,7 +2705,6 @@ unsigned long mmap_region(struct file *file, unsigned= long addr, vma_iter_next_range(&vmi); } =20 - /* Actually expand, if possible */ if (vma && !vma_expand(&vmi, vma, merge_start, merge_end, vm_pgoff, next)) { @@ -2789,7 +2801,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 /* Lock the VMA since it is modified after insertion into VMA tree */ @@ -3052,7 +3064,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); @@ -3067,6 +3080,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 418cc0669c1f..1fe0ee239860 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; } /* @@ -1054,9 +1055,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; @@ -1198,6 +1196,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 */ @@ -1244,14 +1246,6 @@ unsigned long do_mmap(struct file *file, len, current->pid); show_mem(); 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_mem(); - return -ENOMEM; - } =20 unsigned long ksys_mmap_pgoff(unsigned long addr, unsigned long len, @@ -1336,12 +1330,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; @@ -1355,6 +1343,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 Sat Feb 7 18:20:17 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 B6E7AEB64DD for ; Mon, 24 Jul 2023 18:33:48 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231382AbjGXSdr (ORCPT ); Mon, 24 Jul 2023 14:33:47 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44606 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231179AbjGXSdV (ORCPT ); Mon, 24 Jul 2023 14:33:21 -0400 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6A33F172B for ; Mon, 24 Jul 2023 11:32:56 -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 36OFOGRE028670; Mon, 24 Jul 2023 18:32:46 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=XTH/dSWqwNjH4V3zbDCxHYHLl7PeV/roFStvPqIuINA=; b=mGRP/rp997NFO8nlavv1oYKmssAGpqQlNmcS+ezZoN0DqTb999lPAJQLKsrqPaeKEyGc mrhfBYgj8sJh3w+T804K3zRbWu+PffIgOxk5uEHNyfZNEWjqfYMwRSOHNir9GZUImKNE +ZarHahl8hm2mdA/oVa6lQjJeHcUjDhmpNEXUFT6dcKBUICLEVS5Cvi6+mQJVfVr04sN X43Q3eMuM3kMRjoJpwz1ICYDW0sgjdE7WDUKFm4VK43lZXLXVFegigelNwonQUzbgWra q+mvEa7u5+CUqtJL5JDqWjLETP8ArJyAVya3O00PMVK4oNOKDqXRkoUM8dMHP3rShWXm YQ== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3s05q1ufbn-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 24 Jul 2023 18:32:46 +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 36OHEhX8040858; Mon, 24 Jul 2023 18:32:46 GMT Received: from nam04-mw2-obe.outbound.protection.outlook.com (mail-mw2nam04lp2176.outbound.protection.outlook.com [104.47.73.176]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3s05j4a08j-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 24 Jul 2023 18:32:45 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=SboFzxV+epUWIEt/Ho47QObjn22pA5iDwOPeMcFYwkQZ3Rq8gfz9bOljfzBr3ys1E9UZGYzWMOU1YAJqI35mkvJ/9cZx4UY7RdwFC9RoV76wpVglSkZ+wdajeYr6Jonnx4ZLw5MQeygTFkrJTLsp0JYKXtsqqIux5FrG/vogv7Hmii+IOc/FoukFHxUA1l7XlCPWUCXjxiZgwTcOSoGtHcXwOazAyzTXI29h1F9wOEtihFB/1cON8DYOkV+GqtvxXliigiBLQiesA60kLjwEcFcppTswvRKP4z3uG6y2Q3W+qiS335Mrt7eV8O0/DYgbx1gVQ6nhnwA14OVRIIdn7g== 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=XTH/dSWqwNjH4V3zbDCxHYHLl7PeV/roFStvPqIuINA=; b=j/8bkZhFuOlmTbpX+3q+GmkoiZ1JXgG3Y+QyoAw3+U+S6aZnDfhzIMIntx1HckfLvvDnL1AUif2Avfc3Vkve0H4J/4Ar8XNpTaWo25ldqHT7e4DHc96S7IE+KhjW8u0am0yOzf+2ndXSEdYAKzPeYQ+TtpA/dNtAHmYiC0KNGSBUEaUAVLBB2v2sztzEc+eL8TNci/ZLK2n7BbnMrJXaC4KX5otROcAx5ihARNcunBzbxSpwJf48d5OFWidsgrmEwkMPHKFADtFjAIcELcQo28Xwi+Tf1OjHs0TpYO1TGHw7J1QQ+bctOQPaGcGi8WqP1ra6qn0gYukc5LUnzAZbSQ== 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=XTH/dSWqwNjH4V3zbDCxHYHLl7PeV/roFStvPqIuINA=; b=qoaK64/aqannxSA84jucbfOuQISl13d5O6dDXDzMKrV9IOEGN6mh2CVW/ycJpFYBNc+uqb8YOJJExWLlHxNF+Ew0KkU9T+NiBLAQF4IHTHo4qDy+tfUkAaFK4tqb0MhRivd+tvUk00S60Cx3BISWSZY0a+geF9mvCO+wQsORWdQ= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by CY8PR10MB6609.namprd10.prod.outlook.com (2603:10b6:930:57::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6609.32; Mon, 24 Jul 2023 18:32:44 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::26d3:6f41:6415:8c35]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::26d3:6f41:6415:8c35%3]) with mapi id 15.20.6609.031; Mon, 24 Jul 2023 18:32:44 +0000 From: "Liam R. Howlett" To: Andrew Morton Cc: maple-tree@lists.infradead.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Suren Baghdasaryan , "Liam R. Howlett" Subject: [PATCH v3 11/15] maple_tree: Move mas_wr_end_piv() below mas_wr_extend_null() Date: Mon, 24 Jul 2023 14:31:53 -0400 Message-Id: <20230724183157.3939892-12-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230724183157.3939892-1-Liam.Howlett@oracle.com> References: <20230724183157.3939892-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MN2PR13CA0003.namprd13.prod.outlook.com (2603:10b6:208:160::16) To SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN6PR10MB3022:EE_|CY8PR10MB6609:EE_ X-MS-Office365-Filtering-Correlation-Id: afa2eff4-bc7c-44ce-88a2-08db8c745ee1 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: uo0McTK7Hzt9UlF8gcG6FJZsckT4cZg6/OVjkwq5jcWfmxHAluOPk8llk1pnY/pSspRBrQ3odNk11h9GqNbksx4QP9DH8RPcchRH2ztT4edkIaKE4wP5UEPiwcmFUdocfqvQeL+A4Dg6kxxWU8XZMcl/K03rBbCbPvdQn69fXJdZvrvOzgaoe+Snu4s0NW+jH9Sg4bCpfhaJGQObW2pNHaJgozuFIVKXyrv2DOrI3Qu7LCcYp6HR1JIuN/QyJsjz7MEFs+nnAA3XPxoHV0fEDLrq4u+mB+XsSLjvD4RNZSbYNbn0/6+Q18qQ/TieSCKDVcxYk1qA7lc1qIBY4HuJQrwpNmojRy7Y9bmtfou0pCrUcdF8LnJJrCvjpzw3qB5DZXiWafuNy+9ySR5Zo5r/0IuBOzxw2PruvGDIYjep1V97PPCfq7Ud1iBRxVM+Klda3pq0V+WbA4/TyqPoOo2fWKvULYtKbqfW9sXaWwTqOXHSh4u0jjdYBn9ZIVqkFHakxo/TENZHeG13NXm/TMcDP0Q9ei7I+ISjNFIuRxJcmWobXkc6IkEDVVN4mG/nNTmv 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)(366004)(136003)(396003)(39860400002)(376002)(451199021)(38100700002)(107886003)(2616005)(36756003)(83380400001)(8936002)(8676002)(5660300002)(478600001)(54906003)(66556008)(316002)(6916009)(4326008)(66946007)(41300700001)(1076003)(26005)(186003)(6506007)(6486002)(66476007)(6512007)(6666004)(2906002)(86362001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?ggfVmLqor91hHu/w8VQWz/zQX8lvn552rBaH5tl0TxudDapN2uWgHhVLioxY?= =?us-ascii?Q?kBRDbWSdEgT+ysC53aYTbfA7FVsXBJQGXt1ghBzfL2xmVZJmx4Y77F1/Ck0e?= =?us-ascii?Q?hgPUtjW+kPQO5jhXzLQAE8zvfDDqQoNXSt7EihvwCGRpaQ8uSmiN5F36h9jX?= =?us-ascii?Q?6U/mvMkW8wl1oM/jrFiaXGsH1qt3hKm/RQN3DpceC9mRN6LpqJAiiQ+Sq1gz?= =?us-ascii?Q?OKSkn4nZGXjNQRAXvQnrNLdZQ9Fz01x+dcawYX4AGTUCsIKrO3LFVzabP+Q6?= =?us-ascii?Q?IiXV4Hg2j+/tfaP+MD94EiBIfo9BV7EQhGM8f7BvOukb8iAI6e1Ff0pzjvfj?= =?us-ascii?Q?1+5JzgHFgZDQH/levF7ZSHJZSi/5bFa/ScBfyJ6sKzktSssS0/+fspMXMzQv?= =?us-ascii?Q?tyCDhDa/LIcAn9eN368ty+kHXPhYXOOX2lsRMk6Q60TXuDYW0AupjR/Nd74F?= =?us-ascii?Q?FjWw0tgCM7VkUL1qCfO8eSPP+4c181KgR1Pq3Z2nyQjhKRtMMnWpxwXb3KYe?= =?us-ascii?Q?y1SfBXpFMfa7L/eS6kt2FKC0eXZyTEWq/l8mjppJb6wdTdggn8rPtRzwGjfG?= =?us-ascii?Q?Q2A2K7FkppYyOOx05k0sok5Qg5hRmRHq7mB/So8crDIpfAkAoQcKeWnZl4om?= =?us-ascii?Q?9lyQ50WM2odaHqS61DihFkXXRDP6Q+rGUIghZdSimnIbb6i8WFHgKr95j8hy?= =?us-ascii?Q?mGBl3RgHIr7oR+hHKisT3+MN+jWvYqB2K5puemarKgJsrx52mjqrv1sfnfve?= =?us-ascii?Q?OaKtNkYYSTbu5N2ZHhJLJsQZzVuCUsXuIV/FLOkD8yDFrapyGPfqHT7f4SsT?= =?us-ascii?Q?g4LNjNId0+vUF7V/WMkV264uS+PDMGTVSQKYG9Ascp8v2Xzn4Pr1OnxXvIyd?= =?us-ascii?Q?dmykVdGqaAyoVur79HDW/XZr7qxh13uaU9++ciaDoDmCbRz7msZct+yD+odk?= =?us-ascii?Q?gcZQvhXIBEcAGXhDk+7UlxVW2Scr0+LOw7wqWvBVU0kmnx70vIUYyFb00yog?= =?us-ascii?Q?KWfI16KstDtMVndSF3+P8pPirtKaF+qAdAoWNt/VNvtJRfl88rT0VpFEXoVe?= =?us-ascii?Q?mj4XFa9joLl//sdPX5BZ5ajPmOvxaiYxq0VzbSSZLVoyvbQwgr7aY386Ugds?= =?us-ascii?Q?LBdDbdkjakiX4U5svkTsaSfXknO/V/pTrWUVv8PfMy1qVRH7XqOdfD85HEfi?= =?us-ascii?Q?C2m3vWwOc7VOwawlsxU92tO7KQEEfLxTH1YPXrxoIfWklGspOGGUf+kj1H1n?= =?us-ascii?Q?RCllFs8N4W9V+Nr/6PHPdPhOHlhsP0fuEdsinQOt99/3vPqdJjXWPg2uiBH6?= =?us-ascii?Q?Qxkb3Ag/SJu9Mv/DcmnWVeC/A3q9nQA3wcO09L/xnTzceSoTdKqeoBkQKB2k?= =?us-ascii?Q?seqZK22jG4JdsirhiSq6Iish0vMjXGXyJOxgeShph2hFtzr9NaICzrh1Smlg?= =?us-ascii?Q?H69SGJ334Q5o09nuKQsk7Fzj8lRDpBg/0GrP0xlPZFSJpUR64a5SRFYAkkPC?= =?us-ascii?Q?ZEHJBQn7b5UNBYeuezoK6Ymdzrik593A4WlxnicR+Ly7uR+FWUemdzqIb6Gb?= =?us-ascii?Q?EObvYWiERFXEJSZYFAy+llXlAgKVREd/AZ+Dwx4A0wBfipDge+IY4Bsf2TKL?= =?us-ascii?Q?wA=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: Hzt5vhd8Vzl6/Iw3qrxazerz2hamjLyn2bKEaDnoBnDcjr/9hNSfEYt8vVu7ooAjqN0YItsn8edNq52uyFBkqcbhroXgfrWVpMD4SAsLunbx6SMoKQ+Dr18B9p6ACRQ/6uWP1jfRWZ51lnW6h40Qv5yDWfAGZku8Rii2TFuJ0NAVfaE09ZGOQQQ8QPFK7q6aWRrAywzyau1ci6WodUnlLRBqNo16cuzbkypzyIb21EfYtyMrmV+dGPvH7KFRlUJeal7Aw8WNhnZ7Zen0yYkSZrsMk1jTd0xaveqICdJnYRoT9ORErU1ZWF3/sjll0m+x9RPH8hbqz5pK9alQbD+xvuQctHuh48kCOmPP/Lb+fIlEnxwaHOaw6WA/DPV0vtF0fyHReTZDX04513y1/YpppQS3M6kVhWmrkTmFsR0BpQewqmKJLBScxNXshcPA/IS+o0er7Q27wrPdxoUX0h5/xwTeYMgU4HT878bJseNbzuadKKhL7YVuG8t8PyvXgDsVyckyATsEgtDaKdkP1OT77dE1wURO8hbnxfl7kJRJ6QnfGgxkJRFF7tZfCiqH3cx6wlWBWPUexU8+E8O/d0Y1yTIhE00sqQOz9T7m/VPNHTje54ZWhmhXeuacIZsEfemOiBic1FIB2GcBjl9p/hLGEvtMfjSXmLsAkX+QWpL5yq7znYbPblF7H//gEV+Xy74zcRpTqoSbvGXINo2x/j3N/9TyEem0qVMb1ufrE4YalO7rX+lfvjQKDsBYPdj5HPHrXigIhhWBrSVjcfttLLD+p8cz6F2q05oxA5IyLHbc2j5bhbs0bUdbEdB8pQHtSPiqJOH8ApkkDgww9wl6Po/1X9GK60UPtNBhbmJnnwQG+YBK+7WxwyQlpeMdfxCDZ5zwUtGe0037B09PdOV5B3ryftGUW+Xs4YlIIkvPd3mv9do= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: afa2eff4-bc7c-44ce-88a2-08db8c745ee1 X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Jul 2023 18:32:44.0852 (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: jSICYdm+guhhgK0UG8t6ftfPbETKD/RLqeIREr0ugY0uvuOWihvv2klfKBrPywjZ+/iS3ViuWe9wftLwMRuQ4Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR10MB6609 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.957,Hydra:6.0.591,FMLib:17.11.176.26 definitions=2023-07-24_14,2023-07-24_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 mlxlogscore=999 adultscore=0 mlxscore=0 phishscore=0 suspectscore=0 bulkscore=0 spamscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2306200000 definitions=main-2307240164 X-Proofpoint-GUID: IRmmvWP2BJYYg-4JJ7DoWtnmA7uqr1Z7 X-Proofpoint-ORIG-GUID: IRmmvWP2BJYYg-4JJ7DoWtnmA7uqr1Z7 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 494f884ef17f..db61cdd8a649 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -4180,18 +4180,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; @@ -4228,6 +4216,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; @@ -4371,10 +4374,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 Sat Feb 7 18:20:17 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 D831BC0015E for ; Mon, 24 Jul 2023 18:34:00 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230472AbjGXSeA (ORCPT ); Mon, 24 Jul 2023 14:34:00 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44644 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231334AbjGXSdg (ORCPT ); Mon, 24 Jul 2023 14:33:36 -0400 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D4DDD1BDF for ; Mon, 24 Jul 2023 11:32:59 -0700 (PDT) Received: from pps.filterd (m0333520.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 36OFNp6m027010; Mon, 24 Jul 2023 18:32:49 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=gASc2k9myOR5GwusdG5JW/5KRuhuyxQLmMm89M04DtA=; b=Pf3EkMHyaXhkw3q7zWZfHPVT7iMo8bubnJJ0w1gjaW33I5Mdd0V/unukQcYYnerOucQK f/0jLwvfGLwAUnfx88In/Ej8Eg2Ki+H+7zqbb4bRBWN7UcF/cOoNU5xIQQGS1fkH5v+U dE3nJ0SPkA96qJr8X/0SUCpOWnVpIcC+PSDQlp4HWFLnIyydzjW+jtTJMG+QM8huwPlf bN31EVN+OMsaH/LQAoXbZ7zWEdYWLm6utAqNUvTd6R1BjH9UQpoxyzZQCTTsN6NfdwCE DJe+bgjboLfGdeZyb8QKLc8aqPT/7SLXsmDvN4mUgsYGt3GtEQ9KIWro7G81NBSCYgYw rQ== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3s075d3fac-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 24 Jul 2023 18:32:49 +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 36OH2CpY003886; Mon, 24 Jul 2023 18:32:48 GMT Received: from nam04-mw2-obe.outbound.protection.outlook.com (mail-mw2nam04lp2168.outbound.protection.outlook.com [104.47.73.168]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3s05j3ssh6-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 24 Jul 2023 18:32:48 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=MS40XSecKEqCu4AXjdfICBOoaKarbPqKnbpWfEjMty2160ZJsOG7N6ruWCBqRZVjeou8HX6RVpmGpaJazTKENPMBfPulhqWIZi9xZRHO5mY6XPWLpDCL3Q9OmbDx0j5BwvMUxN6QUjxPU/cUazJC0kXZBkvyFXjF4T1VOFBhburjxWHW8NRhmzq/IK9yymakXFtgUAQ8m/Qpp5ATKb0bFiTZ3yYvKKF+j6S+xScCnH73Wmzsl1mfeVKNxsOAY4O+TR973/GZuJNZjwUEBx4oOgKHoy0fIkai8fDZFwSc9Xb1ZZ2te3pU37/oWF0G3xqAEvW31n0rmuDW/2GrkAqg4g== 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=gASc2k9myOR5GwusdG5JW/5KRuhuyxQLmMm89M04DtA=; b=mjZVz9Db3j1RU/QV+g9WI6gn6pv2i7ALC9sTbNOnDsLSViSOSZLcc97P6kn02eTvtx1rWyC4IEa9snbIHHlDVVawatwdjaWgRPeDGCdT6b96griy+k9j+swOBXWaM1ftg+UyENYXXVZLliCTOqxi0jgbd7RnjWg3B/RKm9aeYlOcGE3GiIQIzQdsQv+zDXfdzVoN8vMPeqMIwjctdN9HOGSnuOXBBOecNe6Xh3u+UqSxf16uDRIuN1Q2oSEmxldgDd3c+Rvo19CDoNeQEnYybA7bHhVMxfe+LexWQZFlOqXvn/fLXTiWCGWxVmTBCIemkJWxVsUKFmBM9WOjMOgDGg== 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=gASc2k9myOR5GwusdG5JW/5KRuhuyxQLmMm89M04DtA=; b=t0QS1gzyHhpBbVWQwDOWM6ns9T94Svoc2hctJsjFEBCOrIxf5jAZaxhFYzWT8+pi0Okm8TM6tqwtZ2YlrfDdUskq3f3HISvPFK11K60oYnZhKy0g4FMA+BFDqLkr/YPa9tRIpmc98FbTldjpB3PUn8GmNzbtFspl/0G0II0j9CY= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by CY8PR10MB6609.namprd10.prod.outlook.com (2603:10b6:930:57::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6609.32; Mon, 24 Jul 2023 18:32:46 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::26d3:6f41:6415:8c35]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::26d3:6f41:6415:8c35%3]) with mapi id 15.20.6609.031; Mon, 24 Jul 2023 18:32:46 +0000 From: "Liam R. Howlett" To: Andrew Morton Cc: maple-tree@lists.infradead.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Suren Baghdasaryan , "Liam R. Howlett" Subject: [PATCH v3 12/15] maple_tree: Update mas_preallocate() testing Date: Mon, 24 Jul 2023 14:31:54 -0400 Message-Id: <20230724183157.3939892-13-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230724183157.3939892-1-Liam.Howlett@oracle.com> References: <20230724183157.3939892-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: BL0PR0102CA0016.prod.exchangelabs.com (2603:10b6:207:18::29) To SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN6PR10MB3022:EE_|CY8PR10MB6609:EE_ X-MS-Office365-Filtering-Correlation-Id: 6e89d217-44ce-4cc4-c0d3-08db8c746044 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: s/wrSbkN3Id4QwPYjg+PljRHIYw2+m58qziUTIY+aJCZiz6xVDtwbgcExCP/v10qKFpkubFiEI6buL1B54/mys63WSqjlLa4LhKC4c1/gRDMdHbQrAGI+9Pya1cTRk1nSYj9haarwQIY8YRTUm5PL4zzLYZOnmrOHixGUCPeGwQYeSenCEpWJKwJNjbKN3OGKuBKabZaRVk7gs6zpwsjCP1yRybRFyNSbkE8526lDNmT6/evfF9YWwP+YY7xsUJZb+c2HSAyFGfrO+KbD3xvBtSfZXuZeuCX5ZUEmamoQOYubGU8s7S7gl5+tKs2Za+VCjx5riPzsqRAP4uEBVxTStS0pzND2y0aYEKcHPmOsCzveyHevPNSiPQ64oOna/eZ5y/U76n0k6LlTsQDu+HoIHheUukZlB1+Fuswz2w6q9rtHrg4NYjcCHrxSDIqC5V5unQe5DxOcUbH/Y/ZY6VOKMCCenWur6C7UxwFVNNBvOiz4mt+yg0UKwvi/3MTx3WFzZuDobKRWEJUj39uqiUNv5/KN4p6f3MlaX8amvIFlg06zF//gc2d5b2Wzfr1OD42 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)(366004)(136003)(396003)(39860400002)(376002)(451199021)(38100700002)(107886003)(2616005)(36756003)(83380400001)(8936002)(8676002)(5660300002)(478600001)(54906003)(66556008)(316002)(6916009)(4326008)(66946007)(41300700001)(1076003)(26005)(186003)(6506007)(15650500001)(6486002)(66476007)(6512007)(6666004)(2906002)(86362001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?7CKbdWgHMhVjs//HgDj1qvkyhazeJ80wMnE4U8YCuZjWfMB0VnFnxWc22XQV?= =?us-ascii?Q?3hLKhAX3xlDSbuLyZw2hwk7zb+mSBbhp/4W/i2Z1eeC4nudLtmzZXzHPSoHn?= =?us-ascii?Q?9c1KSpbWb0VnT5JDpXvQFckDJWeRyi74U6tdHgArWZRftewE4qZZXCstkufS?= =?us-ascii?Q?j1j2y9BIwcHSg6oMoyGeGOGymj3tKpJWBP6sldg1Rs0Kr8WMB2ZNvZJ4ZLOA?= =?us-ascii?Q?YbdsSsHkgl4yqLNzGD3e7uIj7IkNL9o33JONOK+c20bVGoxdHnYmUjgiGfm5?= =?us-ascii?Q?1Vd8uay4rbQtflfkDhgCatukpJLfolKEISD8TK3iNFPOAMSk3ZZn+0oc+bvY?= =?us-ascii?Q?BgSIMS5ZRW2aBKABGhXAYWsdunjnJcbXKthB94ViAZRBSw925bENu5qKHWYl?= =?us-ascii?Q?3eKIc0a/iBEiVnVZdGKvAHQA5ng740VbwvlFMWa//FuXiU2at9/gzfxu3BAp?= =?us-ascii?Q?gANAEkES7wrxe2svpEKtui4RAM8Lyx7yKf0ac5TBODbAxVY0FKp8pbiyJpcY?= =?us-ascii?Q?iBu5Rsc9NOVamaYCcpD1MDT8MyjQSTNwTkvgBRtcfXlIJlBdGwMLElJ69Ka1?= =?us-ascii?Q?hNOwJwTqU9yJEE6O1d0vFKtu3XeqTQOFmkOZBznipvSK08DqvnujU+35dDYv?= =?us-ascii?Q?NoaqU9HEEqsfXbfa7//8Chf+pGXWZ7NKMvd4tQ8eER2d8wBayCGJJ6mTw4de?= =?us-ascii?Q?LDhb+yWN2ZhJkAB9ySocfH90hW137y/h+qac+aJTvp2Q7jQI6d3Da3TpBaSu?= =?us-ascii?Q?0X86aGCjPBUS6tNSybBXuCSkMjRVDVCWP/ytwd3ze31Lm7CRRZusGPUNHUNk?= =?us-ascii?Q?AOH4mClbYBuHkMyXrTkSiuc+eYP5v19h0spEZESgT00z1uPwH6/YV1MR4gfX?= =?us-ascii?Q?H8/1hWTWlAdmjoeodRaehn7hIST0q8sfHDHwmNL/5pjHC8NpDEQm5oHpQLYJ?= =?us-ascii?Q?SS4jw6Eaiq/h+X1bpZ2A/Zfm9KmRtxYYxczS4DHoM8ExJrePd6HH79UnY0J1?= =?us-ascii?Q?Rw1c89A/R3LddrLbs1U0AbHlLdBAu2gEajttxzfMADqrq/8SNaCcY9qff1SU?= =?us-ascii?Q?Ta7Fw5MlPdDQVfdRn2sw0WXSbwgeMy9tVjGUR0fxtg9q9CeqmjCACH9Qiqox?= =?us-ascii?Q?ZSZhCCLp+AjYGIV2OmcIeRY1b93ncNjLe00xf+XM2ay2m4gpl8P6pgEpB58W?= =?us-ascii?Q?Jk55CI3okxTgxRo+UWetGjZvWyymLN5UHwyosERL1SqraqG8QPclUgWDAoup?= =?us-ascii?Q?vLoBDrvit/g5wWEs5rHSaNYKr6Oz56pyMbUQu++N1YG6xyShs5GfDEXQ5k3x?= =?us-ascii?Q?syiKDo19sdbmtLdDGagUwOf4lMa90QLOLMTbH34GD4l/Zu8scY1nT+U7KB2/?= =?us-ascii?Q?A+Jz6QdT906XY+DVfZaMORaSyjwux3BeREnxowCKMUvcKLoVq5ub3E31XaOt?= =?us-ascii?Q?rhJL3jC5F89rbYxZKxbVfQE9dFNJ102QuPimGqcecf5c2dMRNTEeeDv0dKt8?= =?us-ascii?Q?K0y/Gq5vVqHBjEb5U74NRg3yC5AzCoZ2XSR/7VuF5rn+GschVudwWo0erUAz?= =?us-ascii?Q?JMmmJhi/XX/1KouigUQH/af4I6mnO6a0JP4/TJhRGKM8szTQsUwE+/1stIFB?= =?us-ascii?Q?IQ=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: uk71LjPvycxlkowjeF02z0VIk24oTBfaj987FHASpT6yfYvt/eQtyRvTlBQjrs08zIWDC8LaOzHZzV8i7Do2uElz87XOlupH+gdsJGwb3uueZtaMqJrQQrdXR3q8y0uGGP7JQW79tcnZJk2T881kKOkuKoZgU2TIo7/okSNFWdVIkZ5tYcoxz0ppph9Kcnmq5tz7txGBYMi09/MJt2rPMDTELY6NeVYjMCVhTrmA1QAPSbUTJYJ05ZVQEFluBirLt4tiS8Gqv2gb6576nkZu06YHMEOgcb8/0yMsvXvkdKtWGdkfjAnUfNEWVaRvj3eO9LGTKJkri6Jw1AvoRi4sX3nC37xRMsj65bHd/zzuHMeSeuDINSG0BXRThFlYCSOLVfMXWuu1asd3es59Ed1n+HG/qyVIcdg6EqGvAaTL0sfEEgoTko4JqR21vVwosmidpMxK/ispGeY1hi02gEC4Cucj/7eCNjI9lN5Xr4BSc7H08HBKVLfQFUPZB75NKaPg/ga07Ks1BU/UchYUwVeZDngNjGvkTkKuCYs2Lpt1Ybjbo3o5osRgVUlhYApapuzgkNA2wcJ02Y+uzftsKddcPD3NwxSpn9fqFzPYCfuX6op6zSQqZ6CsnEIGX3EWEt5jAKaxZQAT7ewmU3xcpM8YIO6TSvBhBtA9v5PjX50LcyMErV285YocZtziuc8yloWCYjPs/jwdqCRASFGVEwPKPl3ebimYs6FND2d0aO3+JegeJNxokRYqDc3DyHJ+A1zxibeaFMnCuN+JZEyaV1PT74mhYGhtfGbIm9tplvG9I3ykXbt9BP+cgl1F8bE32I0kMLfoBZOlp32FGoGocCDxNaF+eig4ZBNCIHC8h44DPUh1916qNhmWEUvdgCjoKCKJn5S4EJRkdJFtZErXm59o0oXiBN9EhslJYal5oUC6t7E= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6e89d217-44ce-4cc4-c0d3-08db8c746044 X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Jul 2023 18:32:46.3354 (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: KcXMeKWhgN4NyoqQwVuN25bfmRv7rnoJZ+totijFRqC28HRN2qesysrjbk5AuZyOdvpbqXkHAxtfwqmQcODPQg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR10MB6609 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.957,Hydra:6.0.591,FMLib:17.11.176.26 definitions=2023-07-24_14,2023-07-24_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 spamscore=0 adultscore=0 phishscore=0 bulkscore=0 malwarescore=0 mlxscore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2306200000 definitions=main-2307240164 X-Proofpoint-ORIG-GUID: uec6J5yuS6NTB_FBsKlP8pHa1b0G236h X-Proofpoint-GUID: uec6J5yuS6NTB_FBsKlP8pHa1b0G236h Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Since the mas_preallocate() calculation has been updated to be more precise, the testing must also be updated to check for what is expected. 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 c6c1c5109deb..e5da1cad70ba 100644 --- a/tools/testing/radix-tree/maple.c +++ b/tools/testing/radix-tree/maple.c @@ -35458,6 +35458,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); @@ -35481,7 +35483,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); @@ -35495,7 +35496,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); @@ -35509,7 +35509,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); @@ -35523,33 +35522,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 1); 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); @@ -35557,6 +35560,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); @@ -35564,6 +35568,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 Sat Feb 7 18:20:17 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 EDA25EB64DD for ; Mon, 24 Jul 2023 18:34:04 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231339AbjGXSeC (ORCPT ); Mon, 24 Jul 2023 14:34:02 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44418 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231348AbjGXSdh (ORCPT ); Mon, 24 Jul 2023 14:33:37 -0400 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0B5191BF5 for ; Mon, 24 Jul 2023 11:33:02 -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 36OFOIV8005716; Mon, 24 Jul 2023 18:32:51 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=WdM8co3kDOxUJgEOeWvcgW/1d6ZlELG+fKQAf/n1M8E=; b=UBV0DR8av+8JzHoJzqxLqeSDdo38JZKIT83esAipiJ7Zh6Fzgi1EqwMSHEPCMwfE+tvU jJk9a+r59at8QLmcp1IIhp+0l+mXGfPyuYEDHifYrUfR1ixtfCKPwI0I2dhll/zOcwAg eTjmyM4j0jO75+SzsNHVDOQ1Chb+6JOvGCGP7LfXs8xDOrMIxeOggm/KxvCYwKS+VsVF ei3rKcS+BMG/jYfWS1AGeLiAxI3rV7rbKr7P5pR4cWbvJrejvaRcT4fbAgG0t7N0VWVu GxV6xOoL7O7/JgL2foQFGPYKgpjDCycocnhnzdI6/bZzCtCqK0Mem0xNd2USgPjKozR7 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 3s061c3fv9-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 24 Jul 2023 18:32:51 +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 36OIIoM6035409; Mon, 24 Jul 2023 18:32:50 GMT Received: from nam04-mw2-obe.outbound.protection.outlook.com (mail-mw2nam04lp2173.outbound.protection.outlook.com [104.47.73.173]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3s05j3t3wq-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 24 Jul 2023 18:32:50 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=CCK8waiuRmfzqeTPJSoVOXXE+A81wBqXfqOytqkuMh28Har1kMvILG/1cTFa3EY4CuXGP1P+Y0WF8PnEIs9RF9j8e8JI6bNwfX2+TSUMX4VlWYv1cDXZ3Lf4kk3uLZYQTT6idk+eGFTIBBbgDd6tM/H/T/YCxGrtlPMRNa4SdLVYDV/68tVazCSPa0QbWr8hoXYu+noIYuNCu/yQLHk/0w0VOdaQIjNxQ1ySeOitwqA1OwIkb2Pl3k6uhg2RJrKMkxH5RZ4uc7XzBztSFq5oV/tFnhKqiaV7ap48o6Ji64gDPXjnM+YCpnwzXr0qxD4cyaKa1eD41ZtC6SASFBeaPw== 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=WdM8co3kDOxUJgEOeWvcgW/1d6ZlELG+fKQAf/n1M8E=; b=dv5/3JNOP/SYlw/gPf/uNBiJUQsva29AC7J3sI7+sghxZncqjFxbDtO32a6K57oyIDa7ZWalQrojz/eMHlgMsvS9eL9F2CVCnB7FEfHFE7xSTUYYIF/Ka8JpsqpFxldmEr3HitiBc/1kJmzxSQjkcr657J01NnQmsIozezs6agTOYeHx3IuRtGXJqcAHMc0Y9fW+oE35p0OhFJeCQr2SAO18RKz510felJHU/qg4BzU0KVkWj7BCuUFDSyqydSOmfyb94+iU5TNHI1rCmQhRXujUc1su1KlqXSqSCCpL7hBOd5pJaGUO7YAEQRA2L8Hw4DRi7P9ehizgiS7S+pOE/A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=WdM8co3kDOxUJgEOeWvcgW/1d6ZlELG+fKQAf/n1M8E=; b=ZqLzMq1dfhD2qO1IkWgAiKLN8lIQTyO8rKACEKIzzOQyKSgmQAVUSACFqMUfhxxYGI5D87c0z3ozoI5ZWoyY4eMFgds7ADZF2nRS7tD0BirXkv+Q6/0z14fR3SV17OJYvSkOLXsx7OgyV1E43l3C67CKYZwdVuLZQbb2LQO0dNs= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by CY8PR10MB6609.namprd10.prod.outlook.com (2603:10b6:930:57::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6609.32; Mon, 24 Jul 2023 18:32:48 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::26d3:6f41:6415:8c35]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::26d3:6f41:6415:8c35%3]) with mapi id 15.20.6609.031; Mon, 24 Jul 2023 18:32:48 +0000 From: "Liam R. Howlett" To: Andrew Morton Cc: maple-tree@lists.infradead.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Suren Baghdasaryan , "Liam R. Howlett" Subject: [PATCH v3 13/15] maple_tree: Refine mas_preallocate() node calculations Date: Mon, 24 Jul 2023 14:31:55 -0400 Message-Id: <20230724183157.3939892-14-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230724183157.3939892-1-Liam.Howlett@oracle.com> References: <20230724183157.3939892-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0027.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:fe::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_|CY8PR10MB6609:EE_ X-MS-Office365-Filtering-Correlation-Id: 83c48392-5c3f-4534-96ca-08db8c7461a5 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: gOZlbmEVVsGlK+qBMaBmgtBbq25UYGuBrb93aAckhlQpaHyxb0PEMG8OaT0eiYBnLx+UMnW3si2r2uNhyp7/IXri7Jpa2vOtlqsrNZ0+SZoEDx74qpK2enCjRn5G5Eooi0u2MZTqxZ5b9Y2xEhde1BQPWNSGHe9XUrsde6aW28bfTBts0NvWbuw0pNZnv6w0JKj0+OepuL+12WQjOfJN9J0/j+TJbP3ML+wQ1gCKy3jPu2orevdDCDfZ/4oAIiEQUhHJ0YmoV7zlY2+OIJOP5M2TuCPyC2VnvWJS/D/dMMOOGAkspkh8TzSW44XmCke3jxX/qE2+W8+OZF3+PsUTMZ7YC9zIaFX9R519STc1DPjK+f43Tx3FY5SINc1dXxnqZD3HzqHNlgI/0HVuV+HT0jmevRFCEDh78grkn8KfrwxrHHJ9kAls/XIAi6Ff/FwdlI/FbzCJUA4UyxLysgV8jwlomRy8375ZspxCRhsEUGc/ykGq733Bu2AugwTqb3Me/N/tz5D2K6+g9d3l0HGJIoJE/jnbnt1+2ACBAvybJALMgMXStMm/ERU2GsifB+8r 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)(366004)(136003)(396003)(39860400002)(376002)(451199021)(38100700002)(107886003)(2616005)(36756003)(83380400001)(8936002)(8676002)(5660300002)(478600001)(54906003)(66556008)(316002)(6916009)(4326008)(66946007)(41300700001)(1076003)(26005)(186003)(6506007)(6486002)(66476007)(6512007)(6666004)(2906002)(86362001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?T90gBg4639CFy8dOg565EdLbt4QJdPYxDmJM6b14IpurJ2VHej9TE1qkgUk7?= =?us-ascii?Q?OrDQselZ5SjbTWKekLbU50zSL2qc8soZ3FTdTgGX1W0PxhZjxiFtfqljKC8n?= =?us-ascii?Q?gQqwgvbxuPPame3IRLdHRPG2ClWgU7negzSMys9kxZ+77KTFe2EX0Rpd6mNU?= =?us-ascii?Q?SGNka8fGEtSx+JZyFwBhqOZcI74SlwKebQoQghUxB7yRIziAPH2LtPBK3fKT?= =?us-ascii?Q?dyS6L2ca5Z2YRCcFX4JN+QQHiprOzSnQ2QQ4SpXMMVMtftEpUy8Qdg0BoFl7?= =?us-ascii?Q?ZJpLBd4ZKgnICEI2lKoe7thV8tUCB9LgI0J0fhCoHJ4U9/CLYs3ld5JhnKvz?= =?us-ascii?Q?clb0SF9Mlqbz5kTahz3diSw6uBAgGiaYITaTuUAEFFXhwujGMg488o4yhf15?= =?us-ascii?Q?R7oGe7IB8cTpNA2aYF6/+YJiR7dK2NOnTRmJvoX4VPMmRkiFjL/UwA+32MsX?= =?us-ascii?Q?d4XF5NI7XpR9hgmmfRLcRt3/DbRSzgv8M9CPbyg6rFRKsduNrfrClK/Ls6pp?= =?us-ascii?Q?SzMpxwsl+SPzu4zHS268EUtYGN4j9f/Gq/6Xtn8vTyLlHtSdw+vXd+ENfQDx?= =?us-ascii?Q?NN+U9XshGWaXkeVhYi7PE8DBN/chjogeE8Ke5hB6EhLcu0Ussua6qEWk71cO?= =?us-ascii?Q?zGDrNqDuXRet6HkFwfn1Br0OIYSnT9GKtHftWzIP7V57PFUGq0UCzD9mJ8D6?= =?us-ascii?Q?7zA756BmLytwb6R+APXrK4FC3BEytmOMkefqvOlijrQk42XJflan6Tu8blm9?= =?us-ascii?Q?+QPnAbB7CzVCGe4as8THOHENsn2VXIgmR0zDX9P0lpsyi9Dqs5UJ1RWyK7i7?= =?us-ascii?Q?Bi1u7U48doSY5Cfq2Apl3FNhLvnyYqdW/KurBGDIOJ90MJ0GL/g3GFFMSYx2?= =?us-ascii?Q?czWIhIvCh0LFVODyK/fMm3WMXNIu47EE8/yFWYKIee0yX5p5rIJwNpD44uPe?= =?us-ascii?Q?nHJ4+SPZ4Tkl4oPnt45yOLpldeIdG7XoXKGuqCXgAxzlAuUFHNP6d1YlawMz?= =?us-ascii?Q?4P7tFNWtpEKo4zQMVfuPI4Btpr2YqQ9g6ZlkTDKARSsfAT1fLa9d4MV92Jvm?= =?us-ascii?Q?ynJvI4GRSR2w15boqQ/0qViqq4lm4KA0a2pHGNDcEabexDFMwyU9S56Ec6Vg?= =?us-ascii?Q?HfjnL+ZQ0QwKCk+KMOrblMdoT6EFmKV45bWs0luo4E9+yFRjirZj50etCn/9?= =?us-ascii?Q?ST8RmaM1TyOqpd1FxP7hXX0lR0eb6DtzZP4Qkebeybqheqi8zOBddVNMp+Kl?= =?us-ascii?Q?8mF+4yZluXegiYSHfEvSsrT05YYM12eEGAGbKMDWjzG0sN3J0mdEYakx4YGw?= =?us-ascii?Q?dw9R9ZuSEqeSorOhMgaR+IqVKJQm2Z80VBdyCzCs6//2Vm8LkO2fxEJ/6iI/?= =?us-ascii?Q?kkVjUV1FtGzKuKmSUMvyEXTo5K4xmuYJigXuN2wbV2u2Cf6GALIDaDrIuXlj?= =?us-ascii?Q?4asXVsNXxS+sUzAcfHvSmzuH+l2GgJNOAHaBAl4tyPZ0yuRlk5dO+SqtDAOX?= =?us-ascii?Q?UaxB34II8TKBi4RWuzG/ukxBv3hLXEa6Hi5L1LZbXELoGDoEMZLJXwLtJX5L?= =?us-ascii?Q?mcvWgW+FetqpRFBVfnqmccwKwbFBuQCGp/mqc+cKQP887RwH5zuFSYTs+85Q?= =?us-ascii?Q?fQ=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: LBaiUyY7DyuI50smHmVmkd+1njtyvSdkvyU/rbqO0Yv0YYa4aavOboekteKXgRnb+cT7e1Da0v//5vSr+e7Tj2qEXMEWZJmO6BT5ye/DgR/ckD0wnpyWXja8z7uBfapTPLI3wEWOtS7En8Z4EoleUlfpgX7P30NXNXAK2rBvIR70XJmxpelvzmhfXJ/DxwIIJ0j3IPlpMZ2kXI+1WCKYrftDg0asAZW/mdNRm0dUiOTAPjMdjSo+PQ6nzB5+P4XyIkwI9m9LJ0NKvqEexhKYa5n8eSRhQEVsrXxBw/JJERD05ZjTv6MzN+b7es5cLaQqyy6KPPVyaZDqOjH4xROFaO+dOS5kFgsIeKIz4PuEl4idqYZt2KGFWnPP4H6tGhL+xc+yDoZnPfJPCIe5M3lbtVoQYd/P0BXp5PLVh8izJQBIXFMCc/cgU4BewtcpOGkXtfxrF9EwdHcDweY2KhE5U5Mex3CLVNK2lqcPwn7d4D78npK5VVRiRu7VhgxmF9+lNVf5hsipyxhN9elzTUs+D9pV2szkTur8+UgDgH0DF2FrXUyBkVs2Jj/BZxuQmWVYt4QyeZNYZp+tIvJARjNyoj4r1LWI7JveA5VX31zdTeSUey1kC/c3KCAlDcqfilLCHrHLuSOvnFh+2T+60QYJ/jKXxPn8GjwEUoxuA+9b93L/RDR7I3avWYfl7kQDYwR9SDVaEUeSM+vTORhiXpaMvSGZDexoIS7TskM0e36hXr0wNFwtKRKggopSvITNL5HZ5bQu4/Yg4AQBE4YjC/pHZUEdGudgZRgZRklza7KLc6SyFbXAxbLnFeLKISsOT01kRVg9FzIu1TynU0fOblb8k7NdQWzKaLzxtKnOS+Zmm4TlwN+8lyaF+dj26zqVfyUrtXeU5EDAJA+H162X2YSMxOmk0nnH+phJTi+sFVPGkUs= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 83c48392-5c3f-4534-96ca-08db8c7461a5 X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Jul 2023 18:32:48.6321 (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: Odkz+ZAw2fnZIWuEYO1U5ivq1xuW1tSx3oWCtE0pmaCx0V0Cg13H2kIP4ceP8kPKkbkcZ9cTm5lF3W9xB1DgXw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR10MB6609 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.957,Hydra:6.0.591,FMLib:17.11.176.26 definitions=2023-07-24_14,2023-07-24_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 spamscore=0 adultscore=0 phishscore=0 mlxlogscore=999 malwarescore=0 mlxscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2306200000 definitions=main-2307240164 X-Proofpoint-ORIG-GUID: q5ki6t7Cy2K0A7iGgJZ1e6mhapWSMt34 X-Proofpoint-GUID: q5ki6t7Cy2K0A7iGgJZ1e6mhapWSMt34 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 | 44 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 43 insertions(+), 1 deletion(-) diff --git a/lib/maple_tree.c b/lib/maple_tree.c index db61cdd8a649..4a111785360f 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -5535,9 +5535,51 @@ 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); + 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; + } + + /* New root needs a singe node */ + if (unlikely(mte_is_root(mas->node))) + goto ask_now; + + /* 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, slot 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 Sat Feb 7 18:20:17 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 1A2ABEB64DD for ; Mon, 24 Jul 2023 18:34:13 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231238AbjGXSeL (ORCPT ); Mon, 24 Jul 2023 14:34:11 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45046 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231371AbjGXSdp (ORCPT ); Mon, 24 Jul 2023 14:33:45 -0400 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6CA4A1FDE for ; Mon, 24 Jul 2023 11:33:10 -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 36OFNxi0009810; Mon, 24 Jul 2023 18:32:54 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=xQJoMgoSWuoE1d/KIP+d/A+97DWByakHDeKsSva1Xvo=; b=CvXRE1cssKFolEP7d+4oyBzcVV80X5Fg3aBc5EMhesGVjKg039I1VJRkTE5wcnGzMYcQ nW5Gea5ksB3L5ufhN8ZxW2iJS6jcqpdOeFQi0l8rWd2sDpO5ntLI6Fu7uHy9c5rXOp95 HT7LMWmMN4iTwpWN/JqeY7Smig0hpLY4YcSZ3TkQ4HSGLaiKfXXm94GRRE/OsC92u7a0 9lcVUp+Wo31zNrnIqp28nowDu+mEl/NRukE7nwoy7qrt9zMsVg5GmuociSFQu1oFOgn2 yBJjr1hwuCxt+yibSr+WYudXVPB5PJm6U+dk5ZMa6bj79IHzzlvN69BI+yNjrQnwTJQ6 vA== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3s06qtue77-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 24 Jul 2023 18:32: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 36OIIiB2000339; Mon, 24 Jul 2023 18:32:52 GMT Received: from nam04-mw2-obe.outbound.protection.outlook.com (mail-mw2nam04lp2169.outbound.protection.outlook.com [104.47.73.169]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3s05j4a0cq-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 24 Jul 2023 18:32:52 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=GhnabyaYtBMbJCWovRvUD6ksp1hzw5ymCPZ+VP1F6mIMno6L+1SF2lQZLxr1ge/LmH3DC0kSPyrMD6MZk14Kjslbfg/XlWgCsdNbN5V9QebEJUpynFtA4BjfmIiNqTjgmwU7Uxl0ClfivAA4eIxtDT6BPVFyIAEha9mdtc25HM344Cvx87695kQNZAaqEY5i0oswcmhXdwBqQcWYMNR7jfw7OSo8B3+HggyrOMNc3mtjt8m+qwSumRwhvOtk8Yl+8qsBPyEryD6EJE9Rp0daGDqsGDRNr2AVddMkwr64XUTbQUwfQNvWYYG8m6xh2molw5OO9DrboBLthiDuxN9Jvg== 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=xQJoMgoSWuoE1d/KIP+d/A+97DWByakHDeKsSva1Xvo=; b=oWO0eF5iK7tinlviXgxzkEoInX3Mm/x4RnhfE/ZVpyFsMrtwoShtS/PLRp/dnLGzzZTQMiRKP+142j6O4+I8ldUNoc+fSBP7paIjKed8d0s/qUa9fxip59H8J/KdE8PB8NqG3ivKwPfSBwbn5UNOzmaPoEwBXsRDMq4azKvqVF0n7YCeAY1Pzc5TmJMELLJhOYczJrDWXLg+NuIBB4MqADogvIoLenjVYNrkGJx98eYzWRzIhQ45Jnl7u//o7twNdu3sw+dTnZ3nOqwrrwyr1Zd/3NIjZjHSHCPRG6pmFXVvyxn7bL0G6vDjwEZ0Xtbx8C43ZMB9SlCttVw3IfQtoQ== 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=xQJoMgoSWuoE1d/KIP+d/A+97DWByakHDeKsSva1Xvo=; b=TjVd04I9+aY4Qm4FI7X+O+YpMRu5wojUAkkzcqUOJQbwxyW/mnIJim81++wuAyRb68owE/cAsRVAMNZuMK3swgGTYaCNIymCQZ81VuIwT9DYbGRive6CCsEOn/aeTCBWJjRPP9fc/3oLJyLCLq4POU2En3XCYbCHiOqsjuW3Wk0= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by CY8PR10MB6609.namprd10.prod.outlook.com (2603:10b6:930:57::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6609.32; Mon, 24 Jul 2023 18:32:51 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::26d3:6f41:6415:8c35]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::26d3:6f41:6415:8c35%3]) with mapi id 15.20.6609.031; Mon, 24 Jul 2023 18:32:51 +0000 From: "Liam R. Howlett" To: Andrew Morton Cc: maple-tree@lists.infradead.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Suren Baghdasaryan , "Liam R. Howlett" Subject: [PATCH v3 14/15] maple_tree: Reduce resets during store setup Date: Mon, 24 Jul 2023 14:31:56 -0400 Message-Id: <20230724183157.3939892-15-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230724183157.3939892-1-Liam.Howlett@oracle.com> References: <20230724183157.3939892-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0033.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:fe::12) To SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN6PR10MB3022:EE_|CY8PR10MB6609:EE_ X-MS-Office365-Filtering-Correlation-Id: 23f5e988-5a6b-4980-93ac-08db8c74630d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Wl/tsSZWlVRishQmZYWSfLHIN2SjARo3xUA+Q5yBwapdBliLjww6oiLKcP2BNil0kSXYDKvtvRvV7hpkOV12/64bXE0GY2OSeyMfG41yWX9tvHNF3w0THL/YwXY/aTqua2W3oBLH+KDvyUz0z30xNERtzzWmSF91r8n3QSQYAu9PedpFGoicIuvFfVjl5mzZy6k+NxKa1TR+hGuivZahbmEwkwTlNFXDukbmggYAuoJE/hWA3eHUZYzv/kvz3SbaKO3YuQ2FbGLHCiOA2j07aW5JJn57iSiCAJvafoM1oJTnDndHZm1KRuAnKDOPLxvgn4+0yuPCuw6fb1N5rFRvJWqEDBL4gtwLYKvGveJ9lkAvNaRGLURm+C4IvLDBb4FmCdKN0g9tNt/2ENyj6fCIpJklS8TeBvTPSwTdJmR5ljJHkOmyBGyVZOTQYUiQ5rq9MUbd6AvJ4X7j6+mOW/3W2fKQHPN5/cT09YGEk7LeVtYjw+dU4iUhg9NvoB82wicN29uzcjMmmlpMyW0HW5YMZDlU2dBGVJs0fMUrcGQeI2u0s7KBC5GRsc8AlXF7jC2+ 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)(366004)(136003)(396003)(39860400002)(376002)(451199021)(38100700002)(107886003)(2616005)(36756003)(83380400001)(8936002)(8676002)(5660300002)(478600001)(54906003)(66556008)(316002)(6916009)(4326008)(66946007)(41300700001)(1076003)(26005)(186003)(6506007)(6486002)(66476007)(6512007)(2906002)(86362001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?jmD2E6jyyKgNtGZBPpAq2C91jy1ixkqL74ZDpLzXWPfus4+XwYgEJLEUt92U?= =?us-ascii?Q?YscalFDj0TAlXL006Sfm+fAOzpL0ek0GXwvwoz9F8rcx/4FYJcTOayfyqEGa?= =?us-ascii?Q?TO0/7/2h/MRHAWIb1RcGyBuS5M17vGMXu0k4le86kr+VXEDXaJZIQBvTt7vA?= =?us-ascii?Q?6WgD4kvx8KsDbkFEqOdbo21gDYZbL83xzqIwDZRb4Uxjs2Rg7Xp4MnQeTO9v?= =?us-ascii?Q?4uhRK/ZcHUG4Fq91zniXUVrzgmvtFLN+vL/vwiQiuZkcOfXAnywrWdHFN7i0?= =?us-ascii?Q?2Gi1WGOBq+i8hx3CR/IDO2kdiTaRvU8+0TWu4+tpylGMAw7U/aiKv3cLGpPi?= =?us-ascii?Q?86ujdofnw2EjJxU5xsF1Ex98Pz6Yvru+dhwvGiVfGszpWrQqVad7+MBN5Web?= =?us-ascii?Q?SccutFCqIdy/gt+Rccdt1hj4/zTvuC2l4ThOdkenaTfPksOG6tkflxN+0Hg5?= =?us-ascii?Q?XzO4El6fLewqINedM+fddPNg6MAFU7h+hNJqfNV75DfLTU8UgJCy88oeTyWe?= =?us-ascii?Q?Y7YMy0ZotKtmZ8ocMgJP0Gg0Qin3UobYziThzyGNIIUQ6PM4JfvpmNdn6En4?= =?us-ascii?Q?uJjGatW3+AMkvCTn3lsv4+sxAsnpm5xQaoYK8C0x3xuhWHALp5lRDijSDkcM?= =?us-ascii?Q?DGbEc5cflSc5DATpxB+0v32+GylAd9Zt16aDbUjMzbr5DWwgEf6y9BNkS8q1?= =?us-ascii?Q?j4Na70YqRfrPtbSnQZE2KmCTBFsVz/cJCOupXr8vs6Bk73F14DdaVml4krMq?= =?us-ascii?Q?44TqdBVTl+X8yFNDuKMztD9vwvU6LVbQob4IUqTKSwMuaXrMVX6FKCtjNhFi?= =?us-ascii?Q?OPu5HJXdZpvqKl3LJg5vs9VNDrM0otQ75YftoK28qwbD3OlOpEP7F8xL2SmM?= =?us-ascii?Q?wP5/cWpT/Zm1Mq+LXh0Yla0pzg/16EQmMVq3KNi8f4KhScEEjWze4XtiQqmx?= =?us-ascii?Q?iSim6rxm9ru8V9hzZo62NJthVyH5KANsNEq6pzFgbYw1VeJHTZcSYaYygIQI?= =?us-ascii?Q?voY4GFA7XS5xHxJB3PWkcuBpkTW4iTHnqt4CU8hwA68H997wpYTYtI5ga8BX?= =?us-ascii?Q?SoPDhmaz7HBsF/Bd4H2Q1Qa7sfsW9QLWuxPC4rTrDd12Loifk+LKPXYULZV4?= =?us-ascii?Q?pjVDeCqrJWeYwtrJNjgXyD+Nlmu9XwDmyLH9kqhW51suOhYG47Oo/7xHk9NK?= =?us-ascii?Q?k5QyYph/WfCD6DtVhf4iLiJ0rz3iSX5znw6llSW+KLFDDetmsKcII0XhLdM8?= =?us-ascii?Q?6Gl0ZiRnRDosFDBFijXFM8nzt64wSQgSo+C30+JEfAksokoSUOQIS5DsOMtA?= =?us-ascii?Q?+0D7RIPj3MwsyyKYG/O0z/0QE6pnIHRGrFWaHDVdAuyvLyfkehiR+zJuEOZe?= =?us-ascii?Q?dnOh6y6Xfc3oR/o+tReLFaPk02JIOeeLTM39LILECerW925EzolnbUM3t24Q?= =?us-ascii?Q?lwf7X7rkRzgoyIY7OQ2JQJ2Jgfi4W2Kf+75io9G/AorUo0l66VOv11oU5IJe?= =?us-ascii?Q?VDM3NchFDurzbsAq+tgiX5bdXHsMYLTBeRivvXHsfa0m0qmgrEFjcU2ThyyX?= =?us-ascii?Q?iEjuPZjRd/bsexXSc2KhP7f1lAd7CIs0ar1eLe9Wv1Q+bUQaC6XmRGjeFdOc?= =?us-ascii?Q?2A=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: nk/Z+NYGJ+deeXyaFcvEXktt6XPYfGBazBXsIhkg3TwUV73TxukGtbAQrSc7PDq9svR3YSM8AVQhZhwUH8kM1PcS6OsdLOCxTmxUYZPyY5yXMSeWdcXggNZLvzHBHH3S9M3fmQ0wYRraPagsGwAAJYTZca9JGgQ2s6sNU6fXimN+qZEchqkQIOes8FCocd+EqnhWQSb2dY93MXh1vtYJw4o9jjU0G/0BUQQIfTurjYrkxbq0Wd+1z0++1I22058YFNESCu48ww3KPD1BGZ4Up1CuOPIDjLbQM21HkKPGQOSkw75BfUc1gJjX7VUnDBWFfaADQH1dW1b6Qan4ftQg108wvEOeg3g5wanCNEgjmcQfVCLv+OSYr4tmHbCu/dsLCUgKsxqYje41qo1HnSMJcw0Phgf2oEum0p6SW9lRys35p/LrTxXMF1YJDT9x9fWyTYQVuRKKfj/T0cWS8lCV6385wG6NQQOEufbf7SGeyRZpjJohl7yOniPhRD0aFJAq/wYSXMEWZn3/rmYQc0MJq7u91bO8l5o7CuQ2klM4336HXhY66WejIqAOB/NVdJIuQBk6YsEzpIIb9MOiPWAOKzE2LKYHDgDy1wcFxHIrPh9XzuPXnMbDpKoztxKa4S3m6bp1XOK70aFVyS/msZKMeQ4nipA8EIgoSbGxUwiAc/vcnUbQdlfwvFbMm/nKSUHxne6RDw0dUoCQCBlU6oJjMjirQZhYtqhdfBS7zkiZR/OtUj1Kjt9gaZ+gafjgTPUUKWLdT1Pzc2ovuisxw4kcIkoAyY//ET5VL25I+P4WDkdLyxjtv6+YNQw0+rHpX/wba6tSluTLxhixHbjfpeAcyE4wwqmmYUBIuv+4U5Yfc6hSSnhexlOdAnPeuq4aQCkUBxCiGPvttALT6J8oRp1gA59igZYggz7yke+m6SQjt2Q= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 23f5e988-5a6b-4980-93ac-08db8c74630d X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Jul 2023 18:32:51.0099 (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: Zj+WtY2r4xMuyhbWvpo3kcyt/mxzwLBJX7HRYFcCAJKNmfX8+UVAjfd/m4W/N5Idzc2O7RNNW35D8TTAV4heQg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR10MB6609 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.957,Hydra:6.0.591,FMLib:17.11.176.26 definitions=2023-07-24_14,2023-07-24_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 mlxlogscore=999 adultscore=0 mlxscore=0 phishscore=0 suspectscore=0 bulkscore=0 spamscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2306200000 definitions=main-2307240164 X-Proofpoint-ORIG-GUID: QeVSkXStqPUr25MpyJt72DlGxVDssZVS X-Proofpoint-GUID: QeVSkXStqPUr25MpyJt72DlGxVDssZVS 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 4a111785360f..a3d602cfd030 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -5424,19 +5424,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 Sat Feb 7 18:20:17 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 83B9BEB64DD for ; Mon, 24 Jul 2023 18:34:21 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231310AbjGXSeU (ORCPT ); Mon, 24 Jul 2023 14:34:20 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44808 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231270AbjGXSdz (ORCPT ); Mon, 24 Jul 2023 14:33:55 -0400 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2C76210F6 for ; Mon, 24 Jul 2023 11:33:24 -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 36OFOGFg028728; Mon, 24 Jul 2023 18:32:58 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=x+a9Nbr9CR2E13FzgbMEAZv5FyPJC3+b+d5pW/tdXJQ=; b=IN7Dbxw6nKCCxhg+RwruwD7wReTNnq3dIFmDUOKMjhOkChOmEABNhPgqC9F3EuK1kfHs xTURYsg9wO8S/GzqZBiuei3/GZ/o80IvX/o/GtmnsHRTxApWlZgxsd2ThbBt0isswJXC oy8ePTU16/V2we4B1mz1kA3nwEwhtuDWJzbtXWEocMl+QLG3UjJJe/ggPA+Q2+JpEn4I b5rn9bowW625jmuR9WGODmJtl0aqlVwZw5R5zWEMRRIujH+zAO0F8/fI5vm6wfzojqZ8 3hFhvcWkgzv+wpU+B7vB2jfnQ182m26pwKKXOGYM6VGfiPqchYPHheddvDCHumd+QK9w mw== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3s05q1ufc4-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 24 Jul 2023 18:32:57 +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 36OINfUB029192; Mon, 24 Jul 2023 18:32:56 GMT Received: from nam04-mw2-obe.outbound.protection.outlook.com (mail-mw2nam04lp2171.outbound.protection.outlook.com [104.47.73.171]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3s05ja2agd-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 24 Jul 2023 18:32:56 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Go3ndBY5lfhjPJb5gb3DsCFcv8NQkoTVdJNAzHUN7JZhFa8DMW7W/FNSc0XZ649JKaPcUT25/QJg2Vl4B3/sZF0Y5otuT4H6kkbvE/DsQa5A3SF8xdwak+JezdqKj7z/OPueQkoFi2BpA2WONfRDodl0WJ6nQhJgpMaeQpjgh4TiruHlZer+Su0ldokSv6AHTD3PDpxLFWONelyIBdvnMdtwBrKipRlVw3TQxDr7iG3BU1Djxzy0puU9sIKvV0zH9uamx1hkNlx7q87UA1oreaFj1z8Dhk2+y2kbYXiyw+E9Mr0qMGd/Hqaw3NVCyggj8lxkEI7YoN8LM0nFsjFuaQ== 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=x+a9Nbr9CR2E13FzgbMEAZv5FyPJC3+b+d5pW/tdXJQ=; b=T1cqfJ4QZ3PPpGUz7PMYQTHOytr9xZ6SPpeoJrJ66ng3mDCpQLyL/uA3xcRytM7j2QaPl7WVZNK517UmW7G3LbI7zj4ra/dIKVyHxMFE0daWiqaU+ubkzqYMTYdbaTWbneqrUI9HNjPE68HP2okIkLQ8KKZO8AvhEz+OwpZBGtqKpuumZ9m/LZI5uD9TsRcf89Jvb7Ufaja4pB/ukDQ80GmAtqdCk2b66wkXpY9es43TlwhAEGVlhpo8xtC0RH5ZyrdJHN0L5Kh7B2JlUoVksrjcXFBbPMRJKWz+UKE2U8JWivWPPe3n2UydD85JMaji/3q9xn1h+EUTq9h0SYzprg== 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=x+a9Nbr9CR2E13FzgbMEAZv5FyPJC3+b+d5pW/tdXJQ=; b=V68GwdSrUjoMHW7iVPClFsf+wo8t6wb4xn8SJ8sL+wDG+SznJUvHutjggOjmqkT82ZwGxCjXVV3qzjRu65+xeRTEwHl0wqb+qFoou61Dgc4bJieVv0KAzCGagbRQ5/tq/sKpqSJuF1KXQTOQZsstz9GYgMYZ33hKk3/FOifFYo4= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by CY8PR10MB6609.namprd10.prod.outlook.com (2603:10b6:930:57::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6609.32; Mon, 24 Jul 2023 18:32:53 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::26d3:6f41:6415:8c35]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::26d3:6f41:6415:8c35%3]) with mapi id 15.20.6609.031; Mon, 24 Jul 2023 18:32:53 +0000 From: "Liam R. Howlett" To: Andrew Morton Cc: maple-tree@lists.infradead.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Suren Baghdasaryan , "Liam R. Howlett" Subject: [PATCH v3 15/15] mm/mmap: Change vma iteration order in do_vmi_align_munmap() Date: Mon, 24 Jul 2023 14:31:57 -0400 Message-Id: <20230724183157.3939892-16-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230724183157.3939892-1-Liam.Howlett@oracle.com> References: <20230724183157.3939892-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: YT4PR01CA0042.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:fe::22) To SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN6PR10MB3022:EE_|CY8PR10MB6609:EE_ X-MS-Office365-Filtering-Correlation-Id: 8f75949b-a828-4d1c-b37b-08db8c7464ba X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: uVIGIzYCbjkRPCfOsq8hD7D+ZQ0FFdaGI8z0qWkJjreZ2GDJOWDX417MPd/N8QTBAQlMx6ZclEI0RFPzNTZklOk73hUy5F+HoZI6UkgAM4CDhNOHcUmb8hBvSHj9kc6abd8AJaAqUXFSlZyoGTV0VZ4XXO1oLbVfShMiJ+v4L6CS5VRU+g//6LxDnB8BPVK2hoK8jZtzHYRlSWbobBUsaFtWDJU917Jp5B9FvpwAtg1a/c8Eo1OxKGT70pWz0SZ53Kn4G9ad6TR9sqw+PDxe82Zl5LUg3dKYdudtR+FpnDosFm6uRYqBOjkXGbDh3OU58zQj4I1AVgbRjn2Lul3s/uOilrjaqC/GMuwa7SxBqFiAubXJpcDFHAMvtxXM8vk7rKClnLmYyjfyti7RmVQp/pB5dzgRfWzcI/qXinvk5KzyLxXuXc6yxS4c9srLHSHjkU66ay/ajL3o93eySe2eusloF1ZQ0CP/CJLR7rEBP4D899gC8pSXoosPbvsN3qJafEwaY8AdKJ7NrcB4b+BjM2nYnuxN1hB9S2PMYnSgG2ECwqSyqmMj0cqSazYoWWOD 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)(366004)(136003)(396003)(39860400002)(376002)(451199021)(38100700002)(107886003)(2616005)(36756003)(83380400001)(8936002)(8676002)(5660300002)(478600001)(54906003)(66556008)(316002)(6916009)(4326008)(66946007)(41300700001)(1076003)(26005)(186003)(6506007)(6486002)(66476007)(6512007)(2906002)(86362001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?7xowYHcq3wwq6aCBMJ+yXuI/dWc3gue3PgQ8DjOVivVTTgKRTvUZ2kBg71Gq?= =?us-ascii?Q?3TKufla+iO1ef1TTXFY8nE5RZ39QhWt4dFKcrP0eqRnaJJIkPyZEbskmnEqa?= =?us-ascii?Q?iPoko4FlrMzbI9CHWZ5uKfjDoPNxQZJeAw1+oBM9cdxNATsom+EFUwU85gha?= =?us-ascii?Q?lI/DJbaNUfZBRR6xY8PDADTtZBCD+Kyct9n0NKUmckFuy5et66NnHhn+PHj5?= =?us-ascii?Q?EdVSPhwQVcGNv+HRCqmXmSiONh+znpBi02yEjYLcERr1ltmJWmRZ0tsQUYA+?= =?us-ascii?Q?d2EIOAQvR6fmong618oB9pq0JWP1EsntIhYr3QQhD6F/2ysW/sbQkM+FUSF2?= =?us-ascii?Q?8yYshF9mv5vHqpuRB4mdxgwHZgHkY1v/Z73RVLgVuwsQrgtMhpog8ZPxE9Cy?= =?us-ascii?Q?8NBxUGvmw17CZXqIL2kb2NFO8v68ofXIQ4/UD00uoHYTJPJB6/lG5bOsvZsh?= =?us-ascii?Q?iPhBE9BMUNxrGaMpEk/2L8o0LAXKFwPrXD0L8OOeK4d0yh7kaSwZVhCaju00?= =?us-ascii?Q?fOUJrVu5rj+tstvgtzpfdc3KJ7cJ1CTRBjxYdINHhUDTQfXbEcqzEmQYTgwX?= =?us-ascii?Q?T/vJKYrPvnbpnXRrUm//g1eHxyCQolfc3GVqTXwrr6Ovmy+ki0lT8t8b/gdw?= =?us-ascii?Q?+uaEgOntcfW14D3UmLriTkiAESGL9/AZyKakJHEuV0N/oT2EnEGmMyXgQSon?= =?us-ascii?Q?WOWQnk9TEyC+/R2Mhx2WDqCboiHD18AFbNQvv1yYXIL2jytomyCnRlWVmp1X?= =?us-ascii?Q?nNbVhqkzT9O66XNF48F0I9EMZtcfjubpPNslM4mx3llJvxYSGb/Gn26Q2uMN?= =?us-ascii?Q?Vp7Uj0c0Rbm2jV+WZo0WcmY7vbrV0rkXQ3gleSUQg8bb3JuUST+disj1S/jW?= =?us-ascii?Q?A2ZNTdWhy7aGFn0XTdkz0s7UNNAjAEjYhpPMPjJoZL31PzpHg72Dc8pgqH4O?= =?us-ascii?Q?/Z60BkyYrfYAkSfP3beq5oHw86WX2kIE0zhcH6mayerg1rvRLsKWgke+rAhr?= =?us-ascii?Q?JLurRqru3yQdfEUn3TddAHR8KC4scxDq/FTBPsAyikjusJ8cV66LHER0iciJ?= =?us-ascii?Q?mvV07xtlf0N4OQD0HBrYP1Fm4+To3uIkMfQnPohn65BPx86zQnTLC6gWNrm+?= =?us-ascii?Q?bUpGtNec+F13Tsj02eMDlKEaWGdtsFPiSvtaxdxzJ4mPyvLaFvh3kNa3xlEk?= =?us-ascii?Q?Vy8UzKpRRIxsdTwKIN9Mvu1P7C2mOs6dZULQ0lCXltgapY13HXAgg+s0NxRM?= =?us-ascii?Q?Oa62h01yLn7b8yEs5dPxMiBqduBilrqeVpS1HV3KVKnN9MsorW1gXHh7v3uz?= =?us-ascii?Q?rBaqQojiIwP6BnRvtP4pBlg5kT5M/xXtDGRTbjkp8mMO0ja2iBHeYxdsqlzk?= =?us-ascii?Q?ac7N/1ssu4U6PKPohh6dWzstanh1uVEzAhs2oHe/bqxKyoTRTm5jopqUbOFu?= =?us-ascii?Q?vn5UPm4Ep8RVsPpIp3qhpnYGm52PI1OekKXi5kvS9TxR6X6fQLjsU0A5b6Y3?= =?us-ascii?Q?0zYvwSqukRIUTfoO+VAH6DXSUmlBp4G6qLodDTu5UtS7uNfn6h87LS4vCBYF?= =?us-ascii?Q?3fe+2uMD/GIAcGGGL/tD9pKAY9n5oxoUfrSFqoEHPJEFxSDXoZj+Jspltokl?= =?us-ascii?Q?wA=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: i/h681NxnEOqMLDD6IoWCBET2jjt1t+aDsvGGeigLak3mmmD5EkK1Jqcz1GL1axFscbeAufoU4RB3KdMU+hfvVagxsX5mO0I2forFIczVg/sbEzTHkDZhtxMkJwBmMjQ68NtfrTByhw3ZXEPVD0ZcRwYJ6u4ANZla1Dtu5adXO+iaCDs4PCZY6wlkz5A3ywlc4m25CipJ1c6t49K8DADe47fzR6acbtNouIHglfVKljO5iCSClaPrpLWm34xat/3NaqojvRtbylCrDu231LEdEpmEjlJSuv96+uRsiX4YdLB1+Miw8luDFQPKTEVy+8Z12QIaJ2d1xX/mj8xoLXIthV19jqRYz4zX+9jAYU5b90DvNjI7yIgXIb+JV4zudOI0Y1fEsX+30ao9jlMRfu53SWt67y6Oalq1SiFZR0DNmCM9vFb0TAB/eeenCeHmpMZG2DrPtu/amuDvMUWJIC65RI2Ap7CLLkeCLemCS4d3QxQp6bRtMdVWqJB1hxRaEuK55ax3lZiQJDD34DP/NsnRS2fqez5rBAdsAAnYu9dY15bBbQKP3tj6bX6hPadwx521bRPYiUh+WRIGG6tozKD4qq19YRHkgEQPWbHUyrp9lrQDPZmjbz3Tto8KuraCk5SX9aHO2X3rxOjy0WhyPKVAg9dEx2CCmBq4mdPqSI9Jyq0tiMyCw/TVTO8yaqB5UA0NvH8zHmDSGeOJRN/nxdl4MbdBHjfbjm6T9ZGS+H5qoKNoTPBMOhdKk6OuxeSq1tA1YdHObrdD06tkW9ev+Uoq1ts3iAO/Q5X4zz3cOrZUTlFTybDUJCS2gEaYegtVfxdsvbuNy8c2YnpK7JaWymD2YsdnVD8nr/ajHCMe45RuJO11cWswheJV3pLC7DTwz+dn5s6kYS7v59GYTPrhug+R/xIgzzLbd3fOa2u+8EeJAI= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8f75949b-a828-4d1c-b37b-08db8c7464ba X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Jul 2023 18:32:53.8253 (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: 4Tn1MX6NoQ/PaDJ6/Z7El475W2JQw7ZTKnF/B4vfi7QYnokwvgtF4dPKNJ7B2LWxGYUAGwfgQKulCFZfasu0Lg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR10MB6609 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.957,Hydra:6.0.591,FMLib:17.11.176.26 definitions=2023-07-24_14,2023-07-24_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 spamscore=0 adultscore=0 suspectscore=0 phishscore=0 malwarescore=0 mlxscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2306200000 definitions=main-2307240164 X-Proofpoint-GUID: RRwY_R1WWK4KNr0ggUCRQyNoxoWEsgsa X-Proofpoint-ORIG-GUID: RRwY_R1WWK4KNr0ggUCRQyNoxoWEsgsa 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 requires changing the loop type when gathering the VMAs that will be freed. 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, 13 insertions(+), 14 deletions(-) diff --git a/mm/mmap.c b/mm/mmap.c index 58f7b7038e4c..f11c0d663deb 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -2451,20 +2451,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); @@ -2500,13 +2497,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. */ @@ -2527,7 +2518,10 @@ do_vmi_align_munmap(struct vma_iterator *vmi, struct= vm_area_struct *vma, BUG_ON(count !=3D test_count); } #endif - vma_iter_set(vmi, start); + + while (vma_iter_addr(vmi) > start) + vma_iter_prev_range(vmi); + error =3D vma_iter_clear_gfp(vmi, start, end, GFP_KERNEL); if (error) goto clear_tree_failed; @@ -2538,6 +2532,11 @@ do_vmi_align_munmap(struct vma_iterator *vmi, struct= vm_area_struct *vma, if (unlock) mmap_write_downgrade(mm); =20 + prev =3D vma_iter_prev_range(vmi); + next =3D vma_next(vmi); + if (next) + vma_iter_prev_range(vmi); + /* * We can free page tables without write-locking mmap_lock because VMAs * were isolated before we downgraded mmap_lock. --=20 2.39.2