From nobody Sun Feb 8 05:29:27 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 BB4B9EB64DC for ; Fri, 14 Jul 2023 19:57:29 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236328AbjGNT51 (ORCPT ); Fri, 14 Jul 2023 15:57:27 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50260 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235698AbjGNT5Z (ORCPT ); Fri, 14 Jul 2023 15:57:25 -0400 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5477A3ABC for ; Fri, 14 Jul 2023 12:56:42 -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 36EDQexe029776; Fri, 14 Jul 2023 19:56:03 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=t5gb/T3w432joNG/2gI1QE1Bp6jtHJ86EE12igifPPA=; b=OFrs5lDp41gPQxhWpITgpfrYdOBC8G3kEnb3xBZKcEHiT0oTZL8ufwmD+XERCHnSskdT u9Ng8vr7Z817tAmNFr1D13w5AmH8mUzP2Cu301S5cbO1cSqNNC4tT99pt+eQLWFTWFDX tahm3mCiXBKJf6eGkPLL745OlUP9/A/gdzIR+r20xcJ5OO4W+CnT3y4Aft3LAAN/kvTt iN7tORAYNQYLsnMhci79gnuyfO9A2otlJk5ihKgIzCTOLNcDheftAeK4C+WhBBkoGnHZ 8obyxnso7bpT72SSXvPwFJEdsdUyVOTlKr2Wk6eSnzDxqs5B5pxMSOZbxCwsLMEd0C3T ZA== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3rtq9ta7w8-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 14 Jul 2023 19:56:03 +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 36EJnhnQ013820; Fri, 14 Jul 2023 19:56:02 GMT Received: from nam11-co1-obe.outbound.protection.outlook.com (mail-co1nam11lp2169.outbound.protection.outlook.com [104.47.56.169]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3rtpvs5c4v-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 14 Jul 2023 19:56:02 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=itDPUJ2qCPHK5ks9sCAwl6d9gimOdXDZ/m0POltgJefoEVws37ngTWHUfC/GNOUsyjkWW51f1rmym3U4261qro1XJu31pZ3ifT5XNudKkPAqL2gC9DJ37fBqZDI17uJlrMotlYyGgD7sLu0/xuQmrWnmEE8vmO+oYEHEZRfPvbLiscY5O0H2Ik2x6q3LEA64O2ndmxfrY57sP+04SKZkn6WXh826tsAg59aOmZQLtVn85DGF4hlCKGaEjY+eIMgFy/B5smKUgceKeX3TED3seYOZl5/M2L1Go5MqSubWTMtaXKieqcOzoI2tOvL7tVZ+RYTCkcJTnP2bP0EbmtBiwg== 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=t5gb/T3w432joNG/2gI1QE1Bp6jtHJ86EE12igifPPA=; b=lsEHITJNOoKVHPaaw+ig5odknVUGuEYUgZS+TXvVJsJh74J2jmos4v0BqLEUGSvl5zC64SKUHSPomGUe8e8lPAcRVS/dTNaVM28KIcmKVgdyhZ8ECwybrRSDz5TndfuiPKrFzYf+Srx9+LRFQ0lBMvNXJD3HOIorXoTgL+03zEZ3Nb8NEgWRVHadMMmPK6d4rPMyOgd7PoCnXEoT24huD7pzuUjUI2bfR1k5cXxiMgVD9G2/DFhvwr1GMz8WtI21T90HiJjS8TB2ZRaR/CplzL/nL0f9ABx/ZyBCWTznxOMBBfQsjiJohCOxSQq3khYyVJHXJ35Obee0qLX9hA7S+Q== 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=t5gb/T3w432joNG/2gI1QE1Bp6jtHJ86EE12igifPPA=; b=edwosIxv+KS6TWXltU5J1JQtk5DpqqSe7r9SK74YGI57bA/6xoSHYMR68MqncOjkwG2TukpW2AqO1A451MLbG0B2oMWWhghULRRnzAODe7h/2c+tlo4/CworvYrGZ0T2AQDUlq6QH1WSUGOr4153H8vXO8wAKI+Cx8am6OLS4ag= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by IA1PR10MB5922.namprd10.prod.outlook.com (2603:10b6:208:3d6::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6588.27; Fri, 14 Jul 2023 19:55:59 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::c370:eff7:9ddc:f188]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::c370:eff7:9ddc:f188%4]) with mapi id 15.20.6588.027; Fri, 14 Jul 2023 19:55:59 +0000 From: "Liam R. Howlett" To: Andrew Morton Cc: maple-tree@lists.infradead.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Linus Torvalds , "Liam R. Howlett" , Oliver Sang Subject: [PATCH v2 1/4] mm/mmap: Clean up validate_mm() calls Date: Fri, 14 Jul 2023 15:55:48 -0400 Message-Id: <20230714195551.894800-2-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230714195551.894800-1-Liam.Howlett@oracle.com> References: <20230714195551.894800-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: BL0PR02CA0031.namprd02.prod.outlook.com (2603:10b6:207:3c::44) To SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN6PR10MB3022:EE_|IA1PR10MB5922:EE_ X-MS-Office365-Filtering-Correlation-Id: b093ebc8-040b-4183-b662-08db84a45866 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: kMx1/ZX/tHMUpMRzohSMRIgxklAjOi7eKNFoxT20aUdzYEpRmUMnGBVpqo7HMehSRUafbQVNkj6ZSWqBHFW2APzbfByt+HYuiVTS3PFIiuzYut5J7ynXw2ZUK8GcN+eG2zDnC2sDK3+0umzjGS9EVMShNluWsTtqNBw3XwVm8mxlfkt+2dB7GW55zFZeG5ez3Q3p0llHJqCZnV/2jxPuoVsimzp/2TmD9yCX31AuKhDCIus8V/ZEqsA8q1F1kWQoaWxhPkO8VOKI0r+NjNrCdG4ZIKUFu5iCTAgi45T3wqDHE4PuZB5gaJvpyTrMw6BiCDrcGirna9b4gkmo3GHF5DGYU/FVIEhufVGqa0YF2XuguKHhDRkvtOFyEs03LBpRoY2rFLusvC7DMr0lmMcHeATkMJ/JVtGJr+DG/rxEe3YmrXW5H3Od9jL8KlMQg1qWaMvGXOmYY2g2dZ6y5SW0uuo3rvJ4dmczrIaQ2+9ELtBTW8OAoV1LI/8yD08nvmoYPxWDhpj7I790Xjpw5T3BgGfm57nSYq3MOBVHF7rSPlss+QYr8N+/vid5JAnqTDLm 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)(396003)(136003)(366004)(39860400002)(376002)(346002)(451199021)(83380400001)(2906002)(15650500001)(2616005)(6486002)(66476007)(66556008)(4326008)(6916009)(66946007)(316002)(6512007)(478600001)(1076003)(5660300002)(6666004)(54906003)(186003)(6506007)(41300700001)(26005)(8676002)(8936002)(86362001)(36756003)(38100700002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?14AKRdrBYrNKBpzYUHNrt4Sal3k2k1cPfHeVy4bcQGK37wxidessCqUPO/CC?= =?us-ascii?Q?9iJS4iD4yaF2uRdsm4Oa+QlufyX3aq4vXWeuyQLZWHCZuHEd5Va3ia7KXXDG?= =?us-ascii?Q?BsLju352tY+5pAYTx80QyB+DTM7vv5kl+vvvwcoYI/ALhBqV5LChkwywOQje?= =?us-ascii?Q?7xbvyEJwO/3ZdRg2b1DxbxK1DlSCI7grsixKqLfIq/CzexStTWFklNmbt2sg?= =?us-ascii?Q?zkazrAUwZqRuBI7zDTE5YtaJ8DYmIdEmQuJWs5GZv4q0cSFtxYc790OGLpHk?= =?us-ascii?Q?HuCoXrfembFrBuXX1oh92Kz0q5UuWNDFE5vUYnjVNADnb9hGDLKOnPGGKBRs?= =?us-ascii?Q?SvfGhxZvJ3CBkoGJjA/OmfbsmY66RBKYFlctyvAZUI2x6xEVL1Jy+R4BaJd8?= =?us-ascii?Q?IfOJQN9Nlvl1dpeiP+W2bx4dYBTdNUuazJd9jz5/AeEFHN8KypuJxIENAnjm?= =?us-ascii?Q?m+ZIhr5H3agoCi1IvxCGbRFxqsJadEcfjiXbX5SU8oBEjaYmlar5+jMPT+CF?= =?us-ascii?Q?hL4U0cvj+UElW5Smqpe2qsCp7w6E9fEY1UDRMqtXaohz6GXUd9gUmQvFdkU5?= =?us-ascii?Q?PSCmgVWDjSMeUyvTlBH1NT5EXVo4sruojjh18FPzp78MlsNPGY+lxKs+L4/z?= =?us-ascii?Q?SY+AWji6vFv+poaOV2xngFOUCp90+VOolcNwlkdb+N9s0M7W6gnTqb6+/SV4?= =?us-ascii?Q?nMSXGSrp0z4oPAo9uD/4eZYyMl/lN/SXCsQdBFkWRddiRDgKjiTBDg2CHIBQ?= =?us-ascii?Q?C8SerqiGW2rE+HYVoNgDAowuvvblNwgKvRt6qVKaXZSp470atQpzx3yMDl82?= =?us-ascii?Q?YfytK9K/WRuqacZezU9AzBOZ49dk5/VTeAXGHsWJHLMTzXsUY1ya53AKkE4q?= =?us-ascii?Q?Ql7aRDR2DjRy4iqXE5jMMVfGZnM+ezkpTwXc9Sb7GCKHVa8XiLTxzSlyiK+U?= =?us-ascii?Q?xaSbR4prv/eYHVb0gUFdTibkrDWObyIykohmi05wfBkWrBEi/vTkXzHeXhoS?= =?us-ascii?Q?mYULXsd8q1IyW0MVW8u+4oQaogWQMMqBu94RsFch8SB1xQ0pwAMGwXEW1mMW?= =?us-ascii?Q?3nNe48nHe9p+cigIX66+oa8LTdanfkH18nUruYiATFmXCCsfl5slM6PcfMUQ?= =?us-ascii?Q?wv7RNgk2VYFLjOdOrloeJoZ9wcs852uYfxvSq7MtfGJb+iJPxEw4DCuA8Zr6?= =?us-ascii?Q?8ht652pTVO2MjpOb7xk7UYUmX7c3Q9zcG34uocAEUp0/0YwWx00OztUhMZmu?= =?us-ascii?Q?A7MToNSHkLK7x7woId3eH1ss75pNumtVaYrfI998emJ5hbdmYSWyZIvRYG/t?= =?us-ascii?Q?I3q0IKqkUQbGxcHYwAHJT6wSMNlhjvxATAtEw613e6Lk8w6OV13ujUfB6Fl/?= =?us-ascii?Q?q1aJBYJydvG/73KwBei9UMRPez2v4kubP++gYSRGmJtyxxa1WNOVZIDm7uCK?= =?us-ascii?Q?HkGO8WggpRWiQc4mrmxmtOPbPKMkcx1GypL/3rd2TvB72u+kXguMcqZ2qbuc?= =?us-ascii?Q?Pm9ns/kNh7T9HOmC9ODHeyEhEe9a4V5kgyLLhSH8fZjvZGGkmFBvuDrimbSN?= =?us-ascii?Q?ZBCU/cUfsH79/TIb5URcU5lnefBoBzuIBART8lz7CRHmpywxAjOMVtNR/RKQ?= =?us-ascii?Q?ug=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: fP0W9FQrhAuPXGTP1eNjXq+TYGaLW5nZtxJ3zhhtCa2XRx+lrjuRDEFUsPxNVLlrwfTAFVtYlMEW4IdCjMZpAH6OMdnLsiiN4JEGKWtW/kkjzToZYAnV03y3hSViqp+leWdk6I6kr/q7PUa9Jhl3gLK+724AdoxX8s7HLogi2VNDU48LK3b9lSG1DeZDBymYo/yvZ/2TxfB8nqDFHX7Fgfil4s2AQvm+tObf5lLhX+F2P6M/yLXf2rVzOLInmXESYzhGeDKteEzTDSL+1geQHx64v168GFS8sT78hiJwVS52zFTJiDRvsIhDIyOFfGSPa/0giiRUG5eNsuoyOPPVDGRsfp+WHluhNvGP/DmX1RoFM0KWmqs0gFexIk8jXGkxmVMnfZVz7RDyjZlM7uERyRJfj1C1scXaK5P1YM4H5Qd9WPM8NdCQHYp+ZrBXyzxYIK0devVchxIFMCtxGPQ78PT0qd7rOzoVkfRyAZaZ3QVTM8E0XgAx4Dyl9GZt1hXybHYtoUsrWf4cR+Ol+lSkz9FhQgUEYbHW7vwTw7hoRuhJOlXlPetCTscxw4yLSvt895bS7rIKUb7scMFzy0lvUTl+8zHgK66Otv6MfXU4zUeaBc7llAao59VU9QrDrBiJr78XmFh9hGdi47kZjL/i5K/L5p3djOY2/wv9MWSo/Glkyd2b75gP0+m7I6dpkWyDpDe+uuNTrJPaBYYT4f2DNvD/reZWItsP7xAMQ410S+lJNNcV5EoBzDr9NdkXBl35InqusIZvzBGCRsjxm14njEE2B2y8Ax7kaJq26Bma73+t7mnqpMJ8T0srGmwDJil98zLnNQRgPL6irO8Uu+akqGXgl3m2ESmcTVXvm4ZqB27kDDAnOZpCiSsVe2hICRhLYUegvVFjkIB4mjPOPwhkfjq4p953Yy81QsFKnyu75dU= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: b093ebc8-040b-4183-b662-08db84a45866 X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Jul 2023 19:55:59.7888 (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: w+W7m2LgoP+7z8wpEhe1YFDTgyMNPdRYtVM8CdD7hyhnoxrqCafQtMwBHIrItdKM6TwAudQfIfSmWc+lMtUXBA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR10MB5922 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-14_10,2023-07-13_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 mlxscore=0 bulkscore=0 suspectscore=0 malwarescore=0 mlxlogscore=999 phishscore=0 spamscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2306200000 definitions=main-2307140182 X-Proofpoint-ORIG-GUID: MZT5doZm4xE9tiSDqPsZem_KvUM6ya-7 X-Proofpoint-GUID: MZT5doZm4xE9tiSDqPsZem_KvUM6ya-7 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" validate_mm() calls are too spread out and duplicated in numerous locations. Also, now that the stack write is done under the write lock, it is not necessary to validate the mm prior to write operations. Add a validate_mm() to the stack expansions, and to vma_complete() so that numerous others may be dropped. Note that vma_link() (and also insert_vm_struct() by call path) already call validate_mm(). vma_merge() also had an unnecessary call to vma_iter_free() since the logic change to abort earlier if no merging is necessary. Drop extra validate_mm() calls at the start of functions and error paths which won't write to the tree. Relocate the validate_mm() call in the do_brk_flags() to avoid re-running the same test when vma_complete() is used. The call within the error path of mmap_region() is left intentionally because of the complexity of the function and the potential of drivers modifying the tree. Cc: Linus Torvalds Cc: Oliver Sang Signed-off-by: Liam R. Howlett --- mm/mmap.c | 24 ++++-------------------- 1 file changed, 4 insertions(+), 20 deletions(-) diff --git a/mm/mmap.c b/mm/mmap.c index ce31aec82e82..7b70379a8b3e 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -594,6 +594,7 @@ static inline void vma_complete(struct vma_prepare *vp, } if (vp->insert && vp->file) uprobe_mmap(vp->insert); + validate_mm(mm); } =20 /* @@ -675,7 +676,6 @@ int vma_expand(struct vma_iterator *vmi, struct vm_area= _struct *vma, vma_iter_store(vmi, vma); =20 vma_complete(&vp, vmi, vma->vm_mm); - validate_mm(vma->vm_mm); return 0; =20 nomem: @@ -715,7 +715,6 @@ int vma_shrink(struct vma_iterator *vmi, struct vm_area= _struct *vma, vma->vm_end =3D end; vma->vm_pgoff =3D pgoff; vma_complete(&vp, vmi, vma->vm_mm); - validate_mm(vma->vm_mm); return 0; } =20 @@ -888,7 +887,6 @@ struct vm_area_struct *vma_merge(struct vma_iterator *v= mi, struct mm_struct *mm, pgoff_t pglen =3D (end - addr) >> PAGE_SHIFT; long adj_start =3D 0; =20 - validate_mm(mm); /* * We later require that vma->vm_flags =3D=3D vm_flags, * so this tests vma->vm_flags & VM_SPECIAL, too. @@ -1015,10 +1013,7 @@ struct vm_area_struct *vma_merge(struct vma_iterator= *vmi, struct mm_struct *mm, } =20 vma_complete(&vp, vmi, mm); - vma_iter_free(vmi); - validate_mm(mm); khugepaged_enter_vma(res, vm_flags); - return res; } =20 @@ -1193,7 +1188,6 @@ unsigned long do_mmap(struct file *file, unsigned lon= g addr, vm_flags_t vm_flags; int pkey =3D 0; =20 - validate_mm(mm); *populate =3D 0; =20 if (!len) @@ -2022,6 +2016,7 @@ static int expand_upwards(struct vm_area_struct *vma,= unsigned long address) anon_vma_unlock_write(vma->anon_vma); khugepaged_enter_vma(vma, vma->vm_flags); mas_destroy(&mas); + validate_mm(mm); return error; } #endif /* CONFIG_STACK_GROWSUP || CONFIG_IA64 */ @@ -2112,6 +2107,7 @@ int expand_downwards(struct vm_area_struct *vma, unsi= gned long address) anon_vma_unlock_write(vma->anon_vma); khugepaged_enter_vma(vma, vma->vm_flags); mas_destroy(&mas); + validate_mm(mm); return error; } =20 @@ -2289,7 +2285,6 @@ static inline void remove_mt(struct mm_struct *mm, st= ruct ma_state *mas) remove_vma(vma, false); } vm_unacct_memory(nr_accounted); - validate_mm(mm); } =20 /* @@ -2326,8 +2321,6 @@ int __split_vma(struct vma_iterator *vmi, struct vm_a= rea_struct *vma, struct vm_area_struct *new; int err; =20 - validate_mm(vma->vm_mm); - WARN_ON(vma->vm_start >=3D addr); WARN_ON(vma->vm_end <=3D addr); =20 @@ -2384,7 +2377,6 @@ int __split_vma(struct vma_iterator *vmi, struct vm_a= rea_struct *vma, /* Success. */ if (new_below) vma_next(vmi); - validate_mm(vma->vm_mm); return 0; =20 out_free_mpol: @@ -2393,7 +2385,6 @@ int __split_vma(struct vma_iterator *vmi, struct vm_a= rea_struct *vma, vma_iter_free(vmi); out_free_vma: vm_area_free(new); - validate_mm(vma->vm_mm); return err; } =20 @@ -3044,7 +3035,6 @@ static int do_brk_flags(struct vma_iterator *vmi, str= uct vm_area_struct *vma, struct mm_struct *mm =3D current->mm; struct vma_prepare vp; =20 - validate_mm(mm); /* * Check against address space limits by the changed size * Note: This happens *after* clearing old mappings in some code paths. @@ -3096,6 +3086,7 @@ static int do_brk_flags(struct vma_iterator *vmi, str= uct vm_area_struct *vma, goto mas_store_fail; =20 mm->map_count++; + validate_mm(mm); ksm_add_vma(vma); out: perf_event_mmap(vma); @@ -3104,7 +3095,6 @@ static int do_brk_flags(struct vma_iterator *vmi, str= uct vm_area_struct *vma, if (flags & VM_LOCKED) mm->locked_vm +=3D (len >> PAGE_SHIFT); vm_flags_set(vma, VM_SOFTDIRTY); - validate_mm(mm); return 0; =20 mas_store_fail: @@ -3285,7 +3275,6 @@ struct vm_area_struct *copy_vma(struct vm_area_struct= **vmap, bool faulted_in_anon_vma =3D true; VMA_ITERATOR(vmi, mm, addr); =20 - validate_mm(mm); /* * If anonymous vma has not yet been faulted, update new pgoff * to match new location, to increase its chance of merging. @@ -3344,7 +3333,6 @@ struct vm_area_struct *copy_vma(struct vm_area_struct= **vmap, goto out_vma_link; *need_rmap_locks =3D false; } - validate_mm(mm); return new_vma; =20 out_vma_link: @@ -3360,7 +3348,6 @@ struct vm_area_struct *copy_vma(struct vm_area_struct= **vmap, out_free_vma: vm_area_free(new_vma); out: - validate_mm(mm); return NULL; } =20 @@ -3497,7 +3484,6 @@ static struct vm_area_struct *__install_special_mappi= ng( int ret; struct vm_area_struct *vma; =20 - validate_mm(mm); vma =3D vm_area_alloc(mm); if (unlikely(vma =3D=3D NULL)) return ERR_PTR(-ENOMEM); @@ -3520,12 +3506,10 @@ static struct vm_area_struct *__install_special_map= ping( =20 perf_event_mmap(vma); =20 - validate_mm(mm); return vma; =20 out: vm_area_free(vma); - validate_mm(mm); return ERR_PTR(ret); } =20 --=20 2.39.2 From nobody Sun Feb 8 05:29:27 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 09EB9C001B0 for ; Fri, 14 Jul 2023 19:56:31 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235982AbjGNT43 (ORCPT ); Fri, 14 Jul 2023 15:56:29 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49226 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236113AbjGNT4S (ORCPT ); Fri, 14 Jul 2023 15:56:18 -0400 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5BB6830CB for ; Fri, 14 Jul 2023 12:56:16 -0700 (PDT) Received: from pps.filterd (m0246631.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 36EDQUwj013553; Fri, 14 Jul 2023 19:56:05 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : content-transfer-encoding : content-type : mime-version; s=corp-2023-03-30; bh=HW0GS/XWDsRWyS4uR8KoW+GN3DBOkGA3uX40nMNHdnU=; b=PLyIAvXYE/VPCrvrVp3Gir6Y13dyWLPegMKYAgDrlbGVVoi90U7v1hc09qP/375BNxaX xtTMxETF4C3E63SORkYPMD/rHnXIrJaGZHq5FLmDWeOijvyImNc0v3tNj0S6IJUdRnVu /MwcTM/m0jWL6x14bt4tDBXmiD0Csi9sOAJCNXBzppS0SoflyFNGcQDK2we4EkkYjDUF XeJG9dhnzZekXJlfm6JX5XOpnWIkp5gu6Fenkozb8lhB6aq2/a/bmNVJXevO6M/AX2Tw kabulkHaTKZ3heOVmnkA3m7xUkhJ32RtoyneZMgEPlcjn3CdSh8n1q3TQhlFdhL1e+H6 rg== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3rtqgr25t0-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 14 Jul 2023 19:56:05 +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 36EHxNTJ013788; Fri, 14 Jul 2023 19:56:04 GMT Received: from nam11-co1-obe.outbound.protection.outlook.com (mail-co1nam11lp2168.outbound.protection.outlook.com [104.47.56.168]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3rtpvs5c64-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 14 Jul 2023 19:56:04 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=VoJTP9QFuKEB/tyj99lCzXJGH66GzpHQTL6gNyJKuJK9koBEZhmkpLiLEzFftPTjF8DokiY/HNURNYLg3p7XAsWU+0gQ9Ka3ZN3JPY1yLFueqEsOrl/6sAhpr1s2gXfqF1d0DAJdrX2ykiT7BhPte681IKUzR62d3GJBnlEJhObK4CkVL5D1SrUsSUMGzGFxqGvx+ITooXol6/OhjriztvMErmI71SIKCFgxWk0eht/sZpWMyfwtvVurCnF9kQKE/sbrih+xB+ZQN54xuJtHTBLLjCyoEAJ050pXgkDoUxCiezCgNAxEGaAfJ3E+jKnWye9ozGN0nbT8Z/DScr0jYA== 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=HW0GS/XWDsRWyS4uR8KoW+GN3DBOkGA3uX40nMNHdnU=; b=i/Duo8g81uxTCOEie1xBWCVCEwFydfhAOeYa4K/S6KwVZ1TjbqoZ74OSexKDzqp8L/7xy7jxthTnBoy94JtoacnJr+/AAbHevZ53cVBFNHn9LrIKs621Nb8Tw/VxJQwLS1CX/t9IXlM7TBKbKQtdQZ8r56Q4xLNUBJOZoxe6+IIH0nMpO+bSfV7A7dIuDbmAqxEX4ctqroq7U3ocIlTIkDVM52ojVtxguk53sPWd3auzAQt2FV7eHNqN9lQsBzUvJXE61TMfJELy7hKaura95yaV+YwAhRm7r4wDWpa8+JX9w/VDURswUt2H2qOT6L6cTouBmG88bnAHH1aAuaMxPw== 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=HW0GS/XWDsRWyS4uR8KoW+GN3DBOkGA3uX40nMNHdnU=; b=XDWu6ydK8lDl550QyP8PlbNSxxVOjdHszdz+nYvYVpRzms9KWVk4Tj6+S1On6sQ9Zd8gD9jTsVO8eNmOVB6dL+SZy4MSCmMXotpJ9dqy5r8zhxsB8DJ9d19GlJpZzV1WkZkEe9AbRXIas6k4S2biL/uqmM47MSBWKe7KXKvaEFE= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by IA1PR10MB5922.namprd10.prod.outlook.com (2603:10b6:208:3d6::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6588.27; Fri, 14 Jul 2023 19:56:01 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::c370:eff7:9ddc:f188]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::c370:eff7:9ddc:f188%4]) with mapi id 15.20.6588.027; Fri, 14 Jul 2023 19:56:01 +0000 From: "Liam R. Howlett" To: Andrew Morton Cc: maple-tree@lists.infradead.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Linus Torvalds , "Liam R. Howlett" Subject: [PATCH v2 2/4] maple_tree: Relax lockdep checks for on-stack trees Date: Fri, 14 Jul 2023 15:55:49 -0400 Message-Id: <20230714195551.894800-3-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230714195551.894800-1-Liam.Howlett@oracle.com> References: <20230714195551.894800-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MN2PR08CA0028.namprd08.prod.outlook.com (2603:10b6:208:239::33) To SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN6PR10MB3022:EE_|IA1PR10MB5922:EE_ X-MS-Office365-Filtering-Correlation-Id: 7288b6ea-594f-4422-c9a0-08db84a459a3 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Zp08PH3E/VWJ3D4K5zl84Db0N4Mv67jKFsZ/EXiwoQ8iSASQnqq2sKANGyQe1hPyE6OeHlNPkyoctLChiNPRk6Ui5ZsuiRhw7BkBkY2KO33geweWGTgOVU6pnwIAdCyMt+FCyo7Ow6InfnoSoiYzaUAAa6feA+/pGY4kcqoutYkOotObdclxqiUFDFUMMzVl5vGBUX+VtZ1ef1XFLHtNCDG5NVYJMYiwzOdN5XDD8TqUbFdFZYFPYYmR7hYSFjjJenptbSu92szHxuHQW0r2n2hYCCgEi0b4roWOQqDTS9qCkdFI6GUg8+fmjkTLS/sfNrvXnv6O9wMbGipC06DlduSs1omCmC27VlIRhgSHDNopQqDCunW5ymfb6I05AqxlGWqTfNKgCNABBfcmCaSTtPNZ0A7hL2oc/KHg/w2whaVLf4IBCBlQi6NxMFeKXXQS5yd0MFlFsFkW/G6IyegQ6GMA2PSMS2Rii5AYwo9qRkx0wnI6q0YJWSzDhBaBI3vjjDj3VYhI4oC1D+tIqNIfGKuzuVVAf4ltj/NgFpyZkpLRR4f0FN+hnyJZHn5JLFZb 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)(396003)(136003)(366004)(39860400002)(376002)(346002)(451199021)(83380400001)(2906002)(4744005)(2616005)(6486002)(66476007)(66556008)(4326008)(6916009)(66946007)(316002)(6512007)(478600001)(1076003)(5660300002)(6666004)(54906003)(186003)(6506007)(41300700001)(26005)(107886003)(8676002)(8936002)(86362001)(36756003)(38100700002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?PVhyNtbmNTXhi+zuxtXn5YgPMWpnBibtKjr1U6M9ICmhoDPsv2RIt6cqh2k3?= =?us-ascii?Q?Piv0SHhpoTjPilACC6MAQ0+LnoagACPTpExL86geNepMFi7FuYAeH6xRtH60?= =?us-ascii?Q?0Z5yTXTF7/sKpa6DktsBFFqA0D86CDEb/1w/iOXX4FnJIbPxIZTEL8EGhfwD?= =?us-ascii?Q?Z4TmRtPJpdf7NXqeMJE3MoZTaZQAB342Pgvc+X60whSo3jrudF7iLxzrInma?= =?us-ascii?Q?BcHvJ27oEYTl8wB8aj2wuf0yu83bHUDvb3GpHRxRTOKARZsT1HIBdmpre2d4?= =?us-ascii?Q?hZ7udspoN5su/DsrRYLrrOzzX+cRuyGdZ/GrKL3PNUygkpuCkR6rGdk8gyQy?= =?us-ascii?Q?JiWoWsdoQLMZ+GtNKWR9Z2+DxRDmbZptq4bQhak4e57ThRcIE3J8K7uBp9L6?= =?us-ascii?Q?0yuYo61u98fBo4W1StjWoWn9GhwyF5ycD9SCME3I9+igOTXLYs5mwIM0gh6f?= =?us-ascii?Q?HxAW3/4BDnEx/soFXECuQOATcGIc8QTEbJ7Gns8eW1557oNxxqGNPqoXNoqP?= =?us-ascii?Q?X1hxNMlXPAaUH3rMk+hvqiNt8u9q4VTAx/Lg7pbPRQSsefTkvzde54Y3cALk?= =?us-ascii?Q?pD2cMZ64wuhUOazb1diLn8LEM9I/3wj71YgaQuqHy57ehCNHGXUYiCWx48nw?= =?us-ascii?Q?MKPcSeGxX10v0zfL2Ky8wNBcusx+3mDdDodjf2BQuInCpIxEf89yWXjBJaho?= =?us-ascii?Q?h/zX76VfkhqEFS4RZzFMgTfuEewUJy/jv+3BYRQ3yTVTFwi3hpCmwlPjsKSy?= =?us-ascii?Q?zcHKQRm0qQu1BxKg90y6zWYDaj9H6G/DN4u72lI37Z4bMqAqfVGvQ3/Nu5mx?= =?us-ascii?Q?QSuEUN1pmxdwaOX8O9F3Nn8LEewDOBA7WQpGKQKh26qKjA/t5pDIQNbb/fUE?= =?us-ascii?Q?6SRinR0y+mx1rEjRT7t0A8ua672yKvtKR+ermyFPpnWzvRW3iloRbfiDeNBM?= =?us-ascii?Q?dEENsc0/RGGWPomcHG3Da6gySeTY4xvBU37Cz/hJSJ0klAoEDJiAH1GnW5BZ?= =?us-ascii?Q?NpqObAlkJYKnCOli3tf6oF8JbpZTRTwkAPBhbsVAH+N/CBO4iiBoi9A0tY08?= =?us-ascii?Q?P7KH1omEYq9WxBTaP3U5vrwqMYsu1/q0ffChx2B4GArGH+SNs/KJkJzR+bJ0?= =?us-ascii?Q?vbPg9UKRotbadBY7zVhz5JWTcQ02oRk20vlYkZt+fJMrmgIzaMhVw3Rrxlob?= =?us-ascii?Q?I74+nxmTmwo09fOYYGEJogj/rxMCm4djvZTb8TqXRgBWJD3c7PvU/B3s1mOm?= =?us-ascii?Q?IeawoxsfgRS9ppc8hwy3IgDUVbRfKBNJJ0QeEPZpfJgoVMBixK0cXU9tl9rQ?= =?us-ascii?Q?dwdAKrLAPO3Mecpz1+rYrwwvqGG36BmZzjFevG6Hr+F06xfu/7BZLISuYlCH?= =?us-ascii?Q?fSaWYFSrJyIfsAVyonQsKzix8kf2e7OWGnXoYUgcUjIHeWZdrgpzfCcRjqm8?= =?us-ascii?Q?lv6FGzrxlHuiJG5AIEBBgUtWoX66iv9d2/40XsJD6aj2NlKkVb74Dg5yfCLR?= =?us-ascii?Q?IOyICQHKmHfmy1I4PyrtJCGWnF3KtbBGvYce5kQtqbzNC9m4BvCa4KMCjx4X?= =?us-ascii?Q?JsHHIrwv0ypvnERaXcQdME1NDe0/JLwxcX07ffd2V+S/CQCR/DpYXl8MiarJ?= =?us-ascii?Q?1w=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: bo1EX5UxdoKYcdIvxqywcOt5lFJqvD7tl7Zm6Ofguffw3wSVHd4O0NGo+PWprgCcB8lDCYwu41BQn97sKVRu8PYBRlweabMhfRS9foeqBEXSxlYLVE6XZmjLburuMvAV/1jvta1dSadO91faDxsECSDu7bi/BW/KzhkUyjV6Tdr9DBGS2iQNJSwQz0A1bjfh/Om6dsZ0o/XSJhDKmmVNVDSXjJbtabFJOarb+7sifSSdnXGODQGuzlL3nPDX4rdfa+oOU0f4GiZknPoJuwD9fx5wEuvhbLNzX5rL+GAmI/+fRgiAAECKWzCwphRq7+7PsCcbrdUfIgYRNGgtSshRoBFCZqAER5V3sG9CyEwf/GN3UR4s1zWV9woB4KAkKM5/OON+/45piq+8KLDlSdCxccA457lG/jNIkCJqk7sto7HCgHUR9CwDO4gC8tA5xg7AN511XcEvvTtuwAXputgKwr1eRKUZBuxIxyeHDGzHrRRj4I2LxFm0RJ/bXG0xo5fJtlpxyWDw0WLNOKYNAbkvlJYFNnZSWtL2hGGbIlfeb/xPfxnHHBMjj07FPza4Yc7x6ifrr6KJUPQaIT8cC+rzpcSkW870TgpzSrl518UpwAOOIwuQp0wVpC2i9yuaW9bUssSpfeVvJmo3MPV1c7qgdifla+c7Ohkaz6X/nSMvWhUFrLrN1DRpbEF7flKYYGWY4QvSnIo5jpwtqci61aXvhzJR7X8S+UBSQlfMEvGZLRZx/wkFZIKIzXLJ8f1SGoAbieaibXg8yXOPr1jbfXDT2YdHudC4Ercs3cDWLbjRRGVwbt0ooUeNPVqM3ViFWuuovfMV3wEcA3q2zZn9oWY3cXdLsaO5Ka0gtDj870Ziqt8Eus5+VXH9nKGC2INeMVFpcvgI0fKAaBPc507H7wMSgA== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7288b6ea-594f-4422-c9a0-08db84a459a3 X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Jul 2023 19:56:01.7576 (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: ud0BJkLYuTVz1W5EUjP2QKRC1hJ+QgZh99coeVl7GXVZa+2sEYCD0OZSje4TWPhMljbsvrkj34J/T2N9ylAQhg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR10MB5922 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-14_10,2023-07-13_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 mlxscore=0 bulkscore=0 suspectscore=0 malwarescore=0 mlxlogscore=999 phishscore=0 spamscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2306200000 definitions=main-2307140182 X-Proofpoint-ORIG-GUID: JWLOOZKZr3Ha4mt4m-O7W6o3L6uLhEWx X-Proofpoint-GUID: JWLOOZKZr3Ha4mt4m-O7W6o3L6uLhEWx Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" To support early release of the maple tree locks, do not lockdep check the lock if it is set to NULL. This is intended for the special case on-stack use of tracking entries and not for general use. Cc: Linus Torvalds Signed-off-by: Liam R. Howlett --- include/linux/maple_tree.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/include/linux/maple_tree.h b/include/linux/maple_tree.h index 7769270b85e8..6618c1512886 100644 --- a/include/linux/maple_tree.h +++ b/include/linux/maple_tree.h @@ -182,7 +182,9 @@ enum maple_type { =20 #ifdef CONFIG_LOCKDEP typedef struct lockdep_map *lockdep_map_p; -#define mt_lock_is_held(mt) lock_is_held(mt->ma_external_lock) +#define mt_lock_is_held(mt) \ + (!(mt)->ma_external_lock || lock_is_held((mt)->ma_external_lock)) + #define mt_set_external_lock(mt, lock) \ (mt)->ma_external_lock =3D &(lock)->dep_map #else --=20 2.39.2 From nobody Sun Feb 8 05:29:27 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 B627EEB64DC for ; Fri, 14 Jul 2023 19:56:26 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236588AbjGNT4Z (ORCPT ); Fri, 14 Jul 2023 15:56:25 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49228 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235982AbjGNT4S (ORCPT ); Fri, 14 Jul 2023 15:56:18 -0400 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6AF3E3A84 for ; Fri, 14 Jul 2023 12:56:16 -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 36EDYHh6018937; Fri, 14 Jul 2023 19:56:07 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=xm/+H+gq7iEoFQgqJq4P6qGurENe+48qBKgm1HBTaNQ=; b=fYXMWdA+JhSewkwaCg3YGeXws8lzj1aysE8edzDyyzN/mc30bt5Z28o2HqhJchrJ2MG7 abC83k7d9+bTMkTmaFXvxpxxqUf4FV1Ptox2V0LAAQykgZbRp76ufM7QozowrBW9P7cs VQdIB20RGO+y/Il0pis3Jj2UwFjb2kYcMxgfdTxksmMxS4tkwi06sYZhG+Ehzle2L+bX Avn8Gy5nknl/KGuzDj8ABnjUzu48KT0u9I71aeWyUhj2Fbki8TPy7/31xNt5AdECrmxZ +1mKh6eZpZSwoOFLrCEUifVmx5z1ab911ioZhrNIxKmvfqaua2hPlbInrS3wbkzTxpKs Dw== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3rtqnct51m-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 14 Jul 2023 19:56:06 +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 36EHwsJr013836; Fri, 14 Jul 2023 19:56:05 GMT Received: from nam11-co1-obe.outbound.protection.outlook.com (mail-co1nam11lp2168.outbound.protection.outlook.com [104.47.56.168]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3rtpvs5c78-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 14 Jul 2023 19:56:05 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=gWhZDCsMkF6BNzFbCoosiStUwl+iREaamKsjbL4b5fh3GllaojgImDeXFpq6nku1fB16ISCzEZz7i7KNUhKcTfpBeXv38rOg0J19F7pgcf1QJjTAXuztC4LwhM39F4IfJZs26YQNwwm9HBbkZycoOZzfz6YIPUfJWAhu9g4r9NnqckmmPs+HJPCprSpvZ5H7P0swZBO8oAy7m/Xe8GNk6VxaKgSx1qftuJvxoLa8rAWdW2W3GcIEFTyIjLfWrVdOdORU2Bzbkgq8PrSXuVAL/kou4CPx3qoGQ6mkjowEuPYiubJ6Gxb8CpAMEiYHgH0nky+9efcaSXIcQWnid4TgaQ== 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=xm/+H+gq7iEoFQgqJq4P6qGurENe+48qBKgm1HBTaNQ=; b=BBgVQhTTKnjZ7xchVAsR9ljGbAWr2Ju6KVY7gE5T0OlAnCw0OdLg9lLvaSTllEtx6wclkEdM5hWMBCBmrvhUHlnotEyIPw3asNbchZiuEkXeRvc8uwcg/A7L1yFBUn5Nw/83dXrFbm+ivHH6NOUrGT3D6vsDAaCqQnSUxW596jO7jC4xahQHW3kexLVtmlg1KdantUijGbgcNdSqZt3DqywMcXCzvnfqWzlwQs1Yc0136WFyLu5mJ9163LN6yGjTb3ScHab+FxqjtRcbQi4vRVlhc6oIazGGT2UI9f02xh2MZ6KPfHxnCJ1IkYbI3ccHp1I9/vYPQKndlnZxOz+Pjg== 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=xm/+H+gq7iEoFQgqJq4P6qGurENe+48qBKgm1HBTaNQ=; b=z9Vi5PJup3Wncb5H6poF/SuNKlijZOV2W6Curx7VYRj9pf3JThbF3m6XqncmIcGILGWhWku+iG2f8A2BeNxtjYkWKqgRORwpOUs8e3E0TakiGBBgOQUG89hzrtf8d/VvYU1z+kE/3eBRGjdA2Jh5BEMI4j+07xPJColG+uSWbFM= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by IA1PR10MB5922.namprd10.prod.outlook.com (2603:10b6:208:3d6::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6588.27; Fri, 14 Jul 2023 19:56:03 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::c370:eff7:9ddc:f188]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::c370:eff7:9ddc:f188%4]) with mapi id 15.20.6588.027; Fri, 14 Jul 2023 19:56:03 +0000 From: "Liam R. Howlett" To: Andrew Morton Cc: maple-tree@lists.infradead.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Linus Torvalds , "Liam R. Howlett" Subject: [PATCH v2 3/4] mm/mmap: Change detached vma locking scheme Date: Fri, 14 Jul 2023 15:55:50 -0400 Message-Id: <20230714195551.894800-4-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230714195551.894800-1-Liam.Howlett@oracle.com> References: <20230714195551.894800-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: BL0PR0102CA0014.prod.exchangelabs.com (2603:10b6:207:18::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_|IA1PR10MB5922:EE_ X-MS-Office365-Filtering-Correlation-Id: 69f7f86e-c73d-4a2d-6a1d-08db84a45aac X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: SH+W+IoVxsjMTooXtmOUOSE+xRedKaBjcxqtDReYwtG8Nyv44CVxUON7RmT9VVtfBqMnFsI35oEkD6nJPSanpfeQip4RY5uHWVGT0cfsVBWG2wXrXEppSR/fhi5Ia5v9IAHoXuaEb+r1SGlO1VcazeUg0Ba1EG3qasnYIIWrPFyeyjhOjdH+HgeTLyzIpc7EwQF0R5EdGGgpDwRbf3wEseyqC/fpQAkbWFk8CrUXd2nVOAc5zUm5Nyzha8WXgG7slBgQxc3By9rnlBJkw+ikXsp3auoJcOuAOGq5V3fVYa2tXRjnQ6Mqw3kwJvke9ttnN+j8pdJRlZUnlUBBnMjVPsuVIWfxhk/1+cRFxp8ph1YuliD+tU0LYCRfHyzF6Zx3E/5gTIno4E47VsR84HTS0Eq9wKjmZwIJwNNB5bqcqWmSNlqL+mIKQjh/STuWGb+sIx3phzOvyxZ38/bP2tZ/VLiAYdRmQ3dsC7XrrPmfAlC4JVW9poSNTUeuYcUJ7wA6W+siBeoHWLr/o6xCQddZlbdULTEgFCpbCPKcltcv0jPlS9hkVGvopXDdsdA0SzFo 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)(396003)(136003)(366004)(39860400002)(376002)(346002)(451199021)(83380400001)(2906002)(2616005)(6486002)(66476007)(66556008)(4326008)(6916009)(66946007)(316002)(6512007)(478600001)(1076003)(5660300002)(6666004)(54906003)(186003)(6506007)(41300700001)(26005)(107886003)(8676002)(8936002)(86362001)(36756003)(38100700002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?Yn3AQLtt/H5RN9MH2C7ied+PJHkce7aRmz29ubL8+ik4cn6eTriDITPjzhE/?= =?us-ascii?Q?t1OCeA90Y8KBIVIBAJa23uGlhY0hVlEl5BZtM9o/v91K5PPpmWz6SIXjNTC8?= =?us-ascii?Q?eIymneCI26fOOAeA/qQyoUrUIMI7frl8w8DYVgMVLJW8DlhK+UkLBVVHKFqF?= =?us-ascii?Q?+PNrI+V5uU5yEAzMreutfo/G6vMgle/WGdsD4lxdtDL/MzfzjKVMnxSuSFTY?= =?us-ascii?Q?noSakg0BfpfSB4hTs7Ksd0z3mWvZBiK37QCmJOey0Uy1SiN/qTkYCWoUra+J?= =?us-ascii?Q?pQUY9YANEvDSiZhzY/WisYPyT/4XQaVoqGf00CaqRhdLkXDgI8hGnE35pcMO?= =?us-ascii?Q?En9LiUpJBYkxnUVRk8sTOcEZ04HgiwhYdqFW0QOeELQWuf4Xv+otgKo0N8yo?= =?us-ascii?Q?3FkHO3wVcHNCAfINAZoNzP4V9tcvNsFHJiDnOFxj0X0iWGoVvJBq6cQKTBpk?= =?us-ascii?Q?452gWJC2lPiE7YxA8FgKRV+duqOM3dyZacgmAHEbXjj8JOnk9cT0BXkT7QL0?= =?us-ascii?Q?3VW7YQ9eGJg4nj2Z/drder7D9FYAov8yMeaIerikS+39LJo1bLMoiVlnf+0c?= =?us-ascii?Q?lSjsu4ASJeS+/qhh1wiUHx7I98aR5IaX1U2PneHVrkrg0GyDPK0JwUAoKnEE?= =?us-ascii?Q?4t8sBvLk7+6wShVZZc2SJ1LHPVHjx4a8qr8J9f3LC1cL98hOWrvHpq3nqP/J?= =?us-ascii?Q?Df2Y1OTT50kvvkZMf5hmcmQD1XWjB6pEl/PtzjXezBE+4xa4MMO/WYc+Tx59?= =?us-ascii?Q?lIf7UbFCkQN1b9tuBmZB3GBAwtG1L7o/FBvjkV1XxsRx/KNu+ZBFn1YjTzSy?= =?us-ascii?Q?2He/bzWFXEWo0UnoYUYMM5WQDz0nkSVjvuddZyzbxcAXECyCOe/0ctsiUCgL?= =?us-ascii?Q?/edi8OZ1jQsXtOy96kB+W7m/wJbP7YHFSUoEymmukkrBViAPCgggoO3gyMHs?= =?us-ascii?Q?8kIH8a+sXmnVsuZkriaKc+4k60Jjr2mvsu7WynvhMQ46tjSlvsXU55L0hME3?= =?us-ascii?Q?W063143/SQtj1LR48ugyGi4gK2MtcSvWrT4dPZ3Nyb3LJHzmG31SzjmQ9uZt?= =?us-ascii?Q?HL7wmDuBs6bUJdNv/LBGtrtNXZdcFl14XJWGvn0jQFsmB9HEgvR3R10p5M9/?= =?us-ascii?Q?9xHPbBLE/WaP3c4uYA30yYxZIzI4sDV/f7/sI3NOSau9RPag9L0EK5EC9rB/?= =?us-ascii?Q?dE+cDWT8cd4P8vUEwZjCGo/6npkgMokM5e6NCxkXq71RDJRv4R/Vvy+W4BRh?= =?us-ascii?Q?RzBJatX6+kkdCRHeZcMn/cEBl+Yldz80uGqsnqp9OY2qMwZT1f/oB8WU1aPp?= =?us-ascii?Q?yQ7wzn0ikQX9IrkJYN6nQd8MDSC1TBcfqfR2YZQh1VJA+kXFxRw/zvj0uxcU?= =?us-ascii?Q?wlYNZfQ0yj5XKNy8ObtX4COdu//JZfcO7aHBx4Q0z0/tlCXkh6E/Q4NHcoBr?= =?us-ascii?Q?SncVivE/d63zxrYDCecfY59kUi1rYgFzXZr2cs74bwec7kMN9s17RTdH9Wrm?= =?us-ascii?Q?TmMLY7CMbdWt7I7uGeeKaquMceD/AT1I5sym8X+m/j+rbbc0UPiAYC92Tg7f?= =?us-ascii?Q?B7JgKwqzzIdfX3cEyXl8hx7z+8LyjonBvZTjT+kbbZGWW73o+yZRPBd65Djy?= =?us-ascii?Q?QQ=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: PYllGzkFrE9so/0oHS4kyhJJyKReraDslRreozEOeafHl7Xfok51Xa6aikMlHsme0xGbVdQKXVqnNaK9ciUFC7587uoGYlB3ReZ0EwMdcYobCDaFSkF8YTA+gaoUY8bkD+Q8dy6lbMR6J3GrybxdM6KajzvQn6LZZqsnupaXRY6wQNbl4UdWnzXDh4qNeSn2WCZuwd1BrRYC0iwPEbRevdXMu0hmsrhZ5FE9ADzsQbdprBMBBkKpLgx4R54YcxZgMIRqfexgoY1+7w/3AQ+rsVL2hNduys1wL5VNWSTuWIOw4cOFoJvPOdHhWixZV0yVGQe5DmTmc1YYiSmHlm5fytAJeg8dQwrcENmp/ncAj5jc6PCqLXjZsza2igp173Mg7OsOggYbhZinQGGCX60Pv8p0Ha3gvAeX+xulKUeMOL1LE/Bfkn5lG7Q839oprrsTr+zEtv2MaKGzdp1ePNoh4t2PwOm0mLPi5hpBTb72C63P3R4uoznUmuNlq6+9z2j1Dh2p6QZymceAB8KAk+f5hEU6OGwvEvVgTiUXnUB992breKltVQivE3fG7ioWVg2ozOazFwddklj83xp90fnIrQC60b64iuwMu+cE3Rf+AKixC/qx7SKZwxfPqXLeZ2J6TM2KesWZPReruGq7vEvEvDq+8AEpKKdbxH7i8xaFHs18/cakOPqLginwHGoEuzAZ9WAuSkZZco0Ujc4Tmz7ELK6fQCTeQw5MK6cuhakwkUysAKmQfYpc/nc7b4W/vdYzFh7UtlCZFSxIXy319r5BjpHWTK3BAkyeLhHZE8aXCYAmV76Mo2LYsPADIc4IHy8tmv3VKGChP2hOw+Z1FIBwrU1bN85XaXMR7O/RWr9r7kdKGzFPCGR3s91O+wM0ojh2AZ/8WeFcZd2kJd2YRoBZTw== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 69f7f86e-c73d-4a2d-6a1d-08db84a45aac X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Jul 2023 19:56:03.5467 (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: OpeN3JEus21dxYE1BHvq0xYgOIzd++qRCKOw6CnqNjfN+JqVJAlUcVmn1wwc2l3I6ldzP8C9rF2/HfNUfT64bg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA1PR10MB5922 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-14_10,2023-07-13_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 mlxscore=0 bulkscore=0 suspectscore=0 malwarescore=0 mlxlogscore=999 phishscore=0 spamscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2306200000 definitions=main-2307140182 X-Proofpoint-GUID: ZDFcvA5kkpZgPM3MwRBRzlyM2VVPKz3T X-Proofpoint-ORIG-GUID: ZDFcvA5kkpZgPM3MwRBRzlyM2VVPKz3T Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Don't set the lock to the mm lock so that the detached VMA tree does not complain about being unlocked when the mmap_lock is dropped prior to freeing the tree. Move the destroying of the detached tree outside the mmap lock all together. Cc: Linus Torvalds Signed-off-by: Liam R. Howlett --- mm/mmap.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mm/mmap.c b/mm/mmap.c index 7b70379a8b3e..ab6cb00d377a 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -2427,7 +2427,7 @@ do_vmi_align_munmap(struct vma_iterator *vmi, struct = vm_area_struct *vma, unsigned long locked_vm =3D 0; MA_STATE(mas_detach, &mt_detach, 0, 0); mt_init_flags(&mt_detach, vmi->mas.tree->ma_flags & MT_FLAGS_LOCK_MASK); - mt_set_external_lock(&mt_detach, &mm->mmap_lock); + mt_detach.ma_external_lock =3D NULL; =20 /* * If we need to split any vma, do it now to save pain later. @@ -2545,11 +2545,11 @@ do_vmi_align_munmap(struct vma_iterator *vmi, struc= t vm_area_struct *vma, /* Statistics and freeing VMAs */ mas_set(&mas_detach, start); remove_mt(mm, &mas_detach); - __mt_destroy(&mt_detach); validate_mm(mm); if (unlock) mmap_read_unlock(mm); =20 + __mt_destroy(&mt_detach); return 0; =20 clear_tree_failed: --=20 2.39.2 From nobody Sun Feb 8 05:29:27 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 E5F5DEB64DC for ; Fri, 14 Jul 2023 19:56:23 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234916AbjGNT4W (ORCPT ); Fri, 14 Jul 2023 15:56:22 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49224 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229915AbjGNT4R (ORCPT ); Fri, 14 Jul 2023 15:56:17 -0400 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 74F4E30C4 for ; Fri, 14 Jul 2023 12:56:16 -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 36EDQoRY019492; Fri, 14 Jul 2023 19:56:09 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=Y2GhaCMP5kuOs0i8TR/0PGWaib2EC6bHHD4EtCt0MLI=; b=X6DynruP8gXJhzkUv4keOOpzeWe+yU3mVy4W9U+WDeA74DUCsDgRG+A48HkOwTToD+DP bzDUIOeYp9Pcn0c0vVcPpcNpYWdr0M5fXcQxdB39vJ6J0Wl1i+CnszGsMeyyrkEjYsKq +pEVIH7j1Va5paESKUwf58wY8dypZ4ADKAotYL4lkeguORfcJtAGuIRe2TSvkTXlrnrh TdIrw3gLJ9MUVPKPwwvOWMNbvs/lPQBw24RFxPyAejvyiZBBxqcnLMvcI/tH1/BE1dEc ixyzDhaRLNUy7nLWwZT9OZbVCrFkUpgT1VXXbaw8E9cCYWVMDc4p1y6MYtCEHG6B4nel 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 3rtq8at7qe-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 14 Jul 2023 19:56:09 +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 36EI0PpZ027115; Fri, 14 Jul 2023 19:56:07 GMT Received: from nam02-dm3-obe.outbound.protection.outlook.com (mail-dm3nam02lp2049.outbound.protection.outlook.com [104.47.56.49]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3rtpvydhdb-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 14 Jul 2023 19:56:07 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=grJw92d9VliZuqt9TPephDdkeHHKY5hu7ilXQxbwAZvFDSeF+zchqMd94YROrxCKxRxRxQfk0QM6Nb5xJdyFxRKUygBMaJonl3hTNdBgS2vWvILhiY/9lQ7XAJ9NWpmx5BTMG80VAU7pmDNJAJURZap7dsWPRIB0XllgtBA0YBlRAGdWUza2DzKb7tEAHhSMuhjqeDxkN46fki9rNljmZyOrBrzRRew0Vc+gxcPHH4HVgDVrXzfchnlECny7k3AeRRO9BhWfPM5GWFuB9kc2iI8aJE/PBqPtCX5JxGwzV/QKM3ADZ3KpD0IXwhwo/15nAEaox/X2aUZQT9N8yQvRNQ== 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=Y2GhaCMP5kuOs0i8TR/0PGWaib2EC6bHHD4EtCt0MLI=; b=Mrh6Oab+kSZ/1hAhQFokKsIh563qUQfRISm8mCJQvXvfSZUzQLh98d+ByO17wMe1dhwO4LdRAx6hq+r2S69TSW4w1XcjhwHl2a/lLzRbcOBBNnL2WM4FryYUkjzWTTc/ZuV9KYRS0kAKXAa+4/69lMaBhNIr1/atqNyaVlCOAsH75aXp7/YuXmiMRe3SAkfwSL0Z3Tg6X2PiOBCLe83nZb1RbrdL/AsU+eBb5EDq3AZjUCYWNdS9vFSn6iLdOjTmmUbwM+vEmUzE1TbyzMcA6o+mXfqPF28pH9yhfXmcgzlmHl84nRD1MqC6V87ZOxgwWA/L1dHPNdgdoK6nBmKMBA== 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=Y2GhaCMP5kuOs0i8TR/0PGWaib2EC6bHHD4EtCt0MLI=; b=UqFnZywdxdgHTjobinkDhY+9AMNrdmrBIEFbnm6U5h47vz5oOmUOcdaQLlnrmWghsHHG0+VQvQ53DRnBaZpiwSPFVkD/RVBkBAbd9mXTe1hOZfbP7uQlK38sDdSIlVUhweddNIsK/xn/xA6fttku7R8jw4YWXjdpgpAsEDi6cyI= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by DM4PR10MB6864.namprd10.prod.outlook.com (2603:10b6:8:103::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6565.39; Fri, 14 Jul 2023 19:56:05 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::c370:eff7:9ddc:f188]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::c370:eff7:9ddc:f188%4]) with mapi id 15.20.6588.027; Fri, 14 Jul 2023 19:56:05 +0000 From: "Liam R. Howlett" To: Andrew Morton Cc: maple-tree@lists.infradead.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Linus Torvalds , "Liam R. Howlett" Subject: [PATCH v2 4/4] maple_tree: Be more strict about locking Date: Fri, 14 Jul 2023 15:55:51 -0400 Message-Id: <20230714195551.894800-5-Liam.Howlett@oracle.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230714195551.894800-1-Liam.Howlett@oracle.com> References: <20230714195551.894800-1-Liam.Howlett@oracle.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MN2PR14CA0014.namprd14.prod.outlook.com (2603:10b6:208:23e::19) To SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SN6PR10MB3022:EE_|DM4PR10MB6864:EE_ X-MS-Office365-Filtering-Correlation-Id: 93719744-b80f-4313-2f82-08db84a45bdb X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: TJgPCEIeHwZOy3uYJfncp2WuCbTRJCJzlvLYEqvngRQrun97EotQ0PyedYrHDTiQHRMBEXC1u7OexydQRgvlitSUJXv9lyEvf+7r7jtGU5O6H3QMC54Usq06OkoeoPQEVNdnmqd8gCrCc17+xWe0UztiVXapiTfXLvPZNcEtUTF9hNWGQ7x5t/DQzzSKVWlvZQRIV+oH1oPjXssRKPG6uwVTYEAOV071o2mFkfo/eVdk6DF9xPtjn60rQuJYBmrS4glOXUueT68NG/JtuSsGSPpduQlUD/rJy6s+diXiQK/gB1c+hvFYxv5uk9dVhPlEP91x3IEaF2luwaV74iewXcicSqsH9U+cF6XIVAOg3hr1gaN9zvg0zFMxJrBS7eeV07VE6VUF1I1SuWHDfqETtN6jbGJVxyZW/xkVi6zm5fnBhSDa88LbV5XH3jheJaPxZkJPr82DA5xV/CyCv3W2qjWg7azeTDG6rrZ/EVG9Nb0wYXH3P3tnL3+J0MWV3bXO8Yk7jLmIzjGwDkSLR4MDg8Ay25T4G8Uf3DcmIDWTaliW3kRlwldjFPMYYR/3Mz07 X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SN6PR10MB3022.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(136003)(39860400002)(346002)(376002)(366004)(396003)(451199021)(316002)(5660300002)(41300700001)(38100700002)(8936002)(8676002)(86362001)(36756003)(2906002)(6486002)(6666004)(107886003)(6512007)(478600001)(2616005)(83380400001)(186003)(26005)(1076003)(6506007)(66556008)(66476007)(66946007)(6916009)(4326008)(54906003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?p6g2teEw4fTeJGsvo384M85wzf6tQqooYMCn2admz0n6Y7wOoDe+dNpVi9VB?= =?us-ascii?Q?t0KuDH/LMKG4EYbp0onQ3hOTwIUQy7XqpAo3ybokXw8bK8WCZBDXVdHC0U3x?= =?us-ascii?Q?jqIR7zlw8GP2iB8uymG5j4peDiSe81EoclJapZmzT4TSXvnG7wAVD9G/kb0U?= =?us-ascii?Q?T6fz5KUzj/A4AUwzruWODcN6xJnRnUa7qdS88PMj0y9GlfqS3e2b8kCEdy2u?= =?us-ascii?Q?ASWT52KJvsmfOaaUzce3TFYQ1J0v3JQASReIX4QASuxV0EFxcFE2CWJkUb5I?= =?us-ascii?Q?uBoz8C7Ha27INm1e/vTvFG/ElJBC8CqwpcJsTYEFTh4UVWbEkjDrLUevL275?= =?us-ascii?Q?WkClLj/ZtHYISRtOeaBUtgVcCzc9agigREoSqGjAKbAcnCHRyvRwrb7CDAm6?= =?us-ascii?Q?t6BJq+4r9JV0U4uPjbfFgpDp+bjMwKYdN4HKXlgrfqrY9Dri4hDqERXVeyqS?= =?us-ascii?Q?7d4hiJ39PYOb4PsdAXgkf8In5YuA/7BOyXjCzkoRCgQGOYa4VBEI2NurEyn1?= =?us-ascii?Q?lvvKmUe2bNxdOaw5IPkPikYMRYYPb2NgA7NuJMxVdZ27IBJHwlvR1zgpcHFj?= =?us-ascii?Q?qK7iI2QF/ahrsK8VbbMLaS6khKxqEwZs3J4Q/G26qci4O8NQcvFsu33JzGne?= =?us-ascii?Q?E/v2+dJgZLyKQr2uhF141Zb6veQJBQ3r97DYP6+bAvyEeVcj4DOlMA+ig3VV?= =?us-ascii?Q?rJaHill+nIW5FX3RlQMnwzPjPRC9O51wvZn7ZpoHfIJ4XuphaujixXeyyHqk?= =?us-ascii?Q?kqJxOkw7z8XRkUvTPTLEP9P9+tkCiGzPlcOl/N7Hh0hR4QRs71OIrJa5No4e?= =?us-ascii?Q?c4WBC4AyTsldKxWSejBLMDXvrttzGzWiwl0GToxZYGDI8xjf1srXIeNEteSR?= =?us-ascii?Q?UtUztKYT4YfwNXZEXQITLmFZjYbEVq/4qrfapinwbsXDCEgIwbaIACx+89b4?= =?us-ascii?Q?/Ny3ehSZ5g452GOA0dYgIWwOCVVMgw1OpQYBdFf1TrUfm8JSeI2RCW78gjXH?= =?us-ascii?Q?4IhRnIc+RY5h3lt5PBdz/5QJ2Zvm7lSNEIvZlppywqzEcNx6PK3FfbkeTe6U?= =?us-ascii?Q?oCiY0CT6535+MEGrsz+I/eHgdjL+GQh6XJaESJXGwu4zgwcexi9fvnrxYBvC?= =?us-ascii?Q?9rmnJDOvcpbPFmn6Qrd48DFtvvBG3rbtBqQ83ai0DVHgencTEVDmbC4+K9Cy?= =?us-ascii?Q?SnxrEcb3hJ5xcdnR5LE+C7IZFUs+PMI8qFFKlVowAjncipPLOh1wiO/MAYkq?= =?us-ascii?Q?fiCVYHB2hK4eoZbb+yqEQEO16ZDTk0GKJwQw02YvdYRFZh0dgCV50l2l7rbH?= =?us-ascii?Q?NzbYBFQD5lUjFhWTP0aATzYMLu2nb6Z9xCCJEfOAR/IpiLRGoHxcFQ3vCYor?= =?us-ascii?Q?kRf57NuXKco9FR2LBFxkQ8r8Oq9/JWYMf2yo0oJN8tZK7he3kCkiTjUz6Vq7?= =?us-ascii?Q?W2lDxM1csGm8LlIvlTdw/K+wrqcd5Ty9NXILuHdinhMcoVORZDYJ/FsgiHTo?= =?us-ascii?Q?Y7JRKrneo210njdYe7+YHXff2wHdOJlNSg082A+abfI4A65ctVaSRregKnDm?= =?us-ascii?Q?6XYBJ1YujZMXNQHfXooTkz1wPBOHBHFiBkqqoHi/BdmOStTzK/Jk0MCDWYYz?= =?us-ascii?Q?Fg=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: CU0mdSjjuQm7fjAVTpCutQvWRjH9b1+OvjLQ4MF/Fsteck/lZFHbTE2cJFizoyNENAYEP3+mtLDt6Fb7VWOwaXwVdp+//9DCJLnKYb6Mb/LKi2jOGLYokrcsMz88pvv9trL0nxTc5KVKV0YnYLK+hvsWEzTQ83UxO1hAUH3HqWkRgu9tD3022eNrxCvcGsOnOrAzWu2LXCModM4nqKRymr+NG751l19rB/6wiERPGjST8nYjlOt9ZkmGikgsIRJ1XrPqnvaUfJg9YhR4k95j9ApmMdXJPJ8p6utvSp5GZrox3gYrVdQaTdrynsKUXtPBE3EI0uEUqYU7kBtr2TxiyVGnv5NkZ3gGrYHZ/qly2ZkYdYbUW6yAHyNXjJl6V6s+upA5v9MK0I7ow5kftG16/nARM7QoAqxTw9qbAbPwbB1CNi/dKRLSoyPdb2TAHowJlwUt1CrO2I8rQtByB1U869tEDMKq3+qQ1PBrsfu/lHSdY6QyCIna6jkrLMqtnRxj5V4MvKeebaeTi8rSYfCfkF0qgP63chRdxSgPeurLVNvuQCa/X6F/+1kNvmuD28Z962r+N0Cf5NSGXF2lJjzpDQ0R4t6fcVOhk3bgsPtou00ovhE1gjLAwgH4ar8G+hvAhYcbhqZyPZMNvTEaWbUeepEkFP5prVd2r2LN1y5cICcRiBBTHkO2m74XUrDPJTB+VQaeWJJB6BtZ+/H2AfE8HdSTs1XkLoDHTrHAWtIKPjeUb19PjoyfmN1125xAGwy4dXKoSULGbkSmmd7ZmTuzREqvn3AEHueVQ5g8SnlwSTqaOR9DiZqIR4nH+2iTtJwbi/0KUPSxIH9GoXaoCWNBAHezhKxAGjh6Escj/WOsoeZRESCqMmOgfnlzUQB3e8IUfhKqJETOZcIF2gVCelXf7g== X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 93719744-b80f-4313-2f82-08db84a45bdb X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Jul 2023 19:56:05.4939 (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: Unmj57IakXWo8WR8HnnEuqWyT2BhL84t79QMRPWkey20hGmNhmlEDhEHs5ahINTablveZukDH51LnvOzKeLXUw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR10MB6864 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-14_10,2023-07-13_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 bulkscore=0 suspectscore=0 mlxscore=0 spamscore=0 malwarescore=0 phishscore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2306200000 definitions=main-2307140182 X-Proofpoint-GUID: aC_tBsQ-9dqElXJz315IV1zK3u9YpN4Z X-Proofpoint-ORIG-GUID: aC_tBsQ-9dqElXJz315IV1zK3u9YpN4Z Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Use lockdep to check the write path in the maple tree holds the lock in write mode. Introduce mt_write_lock_is_held() to check if the lock is held for writing. Update the necessary checks for rcu_dereference_protected() to use the new write lock check. Cc: Linus Torvalds Signed-off-by: Liam R. Howlett --- include/linux/maple_tree.h | 7 ++++++- lib/maple_tree.c | 10 ++++++++-- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/include/linux/maple_tree.h b/include/linux/maple_tree.h index 6618c1512886..43f18230cfa4 100644 --- a/include/linux/maple_tree.h +++ b/include/linux/maple_tree.h @@ -185,11 +185,16 @@ typedef struct lockdep_map *lockdep_map_p; #define mt_lock_is_held(mt) \ (!(mt)->ma_external_lock || lock_is_held((mt)->ma_external_lock)) =20 +#define mt_write_lock_is_held(mt) \ + (!(mt)->ma_external_lock || \ + lock_is_held_type((mt)->ma_external_lock, 0)) + #define mt_set_external_lock(mt, lock) \ (mt)->ma_external_lock =3D &(lock)->dep_map #else typedef struct { /* nothing */ } lockdep_map_p; -#define mt_lock_is_held(mt) 1 +#define mt_lock_is_held(mt) 1 +#define mt_write_lock_is_held(mt) 1 #define mt_set_external_lock(mt, lock) do { } while (0) #endif =20 diff --git a/lib/maple_tree.c b/lib/maple_tree.c index cef47ce8eddd..722c78077b25 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -777,6 +777,12 @@ static inline void __rcu **ma_slots(struct maple_node = *mn, enum maple_type mt) } } =20 +static inline bool mt_write_locked(const struct maple_tree *mt) +{ + return mt_external_lock(mt) ? mt_write_lock_is_held(mt) : + lockdep_is_held(&mt->ma_lock); +} + static inline bool mt_locked(const struct maple_tree *mt) { return mt_external_lock(mt) ? mt_lock_is_held(mt) : @@ -792,7 +798,7 @@ static inline void *mt_slot(const struct maple_tree *mt, static inline void *mt_slot_locked(struct maple_tree *mt, void __rcu **slo= ts, unsigned char offset) { - return rcu_dereference_protected(slots[offset], mt_locked(mt)); + return rcu_dereference_protected(slots[offset], mt_write_locked(mt)); } /* * mas_slot_locked() - Get the slot value when holding the maple tree lock. @@ -835,7 +841,7 @@ static inline void *mas_root(struct ma_state *mas) =20 static inline void *mt_root_locked(struct maple_tree *mt) { - return rcu_dereference_protected(mt->ma_root, mt_locked(mt)); + return rcu_dereference_protected(mt->ma_root, mt_write_locked(mt)); } =20 /* --=20 2.39.2