Message ID | 20220426150616.3937571-47-Liam.Howlett@oracle.com (mailing list archive) |
---|---|
State | New |
Headers | show
Return-Path: <owner-linux-mm@kvack.org> X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 740EBC433F5 for <linux-mm@archiver.kernel.org>; Tue, 26 Apr 2022 15:07:53 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 310586B00AE; Tue, 26 Apr 2022 11:07:33 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 2BE926B00AF; Tue, 26 Apr 2022 11:07:33 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 0775B6B00B0; Tue, 26 Apr 2022 11:07:33 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (relay.a.hostedemail.com [64.99.140.24]) by kanga.kvack.org (Postfix) with ESMTP id EA5EC6B00AE for <linux-mm@kvack.org>; Tue, 26 Apr 2022 11:07:32 -0400 (EDT) Received: from smtpin26.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 80FAD265FB for <linux-mm@kvack.org>; Tue, 26 Apr 2022 15:07:32 +0000 (UTC) X-FDA: 79399359144.26.704321C Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by imf29.hostedemail.com (Postfix) with ESMTP id 5240012005E for <linux-mm@kvack.org>; Tue, 26 Apr 2022 15:07:29 +0000 (UTC) Received: from pps.filterd (m0246631.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 23QDStxw018590; Tue, 26 Apr 2022 15:07:30 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=corp-2021-07-09; bh=47yOljL6/6aYkZ3kT4JADxwdilgAuazCf0w688kEYr4=; b=U7Rfd7WazVEwoPIRdO3F0nch5wfB790v2PU2x4TSkRATC3CL4YjsXdoIG25CWbHItbwk gIjm+or345WRvYSK/ftqV9I1HFAt1eV/nO225z7c88/Fg9Tc/4iuKUnJjn6B+7kwROX9 6/EypbL6Sp/0WDIByyg8fjWgu1dBjnf7sY6IsCCy81Ij1Px6rg86/n6GJtBOslpLGt+M 4HPTQ70xolb0sORo+GuXUuplcs1T6MQ6goZ0kbeOdO6ZWPp64Sjgp3kg11daBE0q2DMn T1lbbuJkenXUV4dHYXrZeTiTaE4LZjIdkqNHhDZngBeH1GjR+RGNnhr+6zQoPA/8mwE6 ow== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3fmb5jxej2-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 26 Apr 2022 15:07:30 +0000 Received: from pps.filterd (iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (8.16.1.2/8.16.1.2) with SMTP id 23QF5552019202; Tue, 26 Apr 2022 15:07:29 GMT Received: from nam11-dm6-obe.outbound.protection.outlook.com (mail-dm6nam11lp2168.outbound.protection.outlook.com [104.47.57.168]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com with ESMTP id 3fm7w3ff1x-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 26 Apr 2022 15:07:29 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=mOoy043vM1K1D61DmQcqjEpY5zKPBXB5zeepWa43O5bsrAzal+VwDP0/KRBcjh8ZrPqJnsEuFBUZ7BbgFOHP4aL/i4TirdnoR7CN0IVqG0To6jO5Xf14vCVXPyPXWr+TEKhKOmZKbjFdU2x2mlVghJzAgwjXBdmxEWH1oF4puT4P6wFB5lMu7ZHb8qoGXWUvUCBaOuXwZ5DqepJfyUwMDsIUWxZ1WO6RxS6uepCECTOhNfzOpIBEarA2qNElb9zsQ6vuvOZIC19cRljyFh77RN+Wsy77z9dv1OJCRTGi8YPRdQmZE9KEowD78Y8pGAfHKojCbN3kriuXUodUxjv5WQ== 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=47yOljL6/6aYkZ3kT4JADxwdilgAuazCf0w688kEYr4=; b=YravgQeHMZdFRElsayD01HyQb1NATe/dNE1DQL1XXtHGokelzH6NsErTMDyVLv5ck7rwVKIfqCKgMN7gBOqKmJo32xm3dDAuMzHAJwA/z46FUdcVlY11tQ1RznUVuebnZNjHIGRhQVc66131qP2z8FLGb4gNcbnBBdJ+VX17W+T7STKgjAFOdtS4bTuq0cYp+AaMmXEjLy9lXKkEVNKid0/0s2G+631wc3nae9HI+/gShWrWXEGEc6dQ/l0Tuv3eK3dPgWVtRksEq6nnW21bxG18XArzpbuKj/fl8BK+EfCugBJJQXkbaXQSens4fNnS4kkudE/A9MIcfYjsFPsWIA== 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=47yOljL6/6aYkZ3kT4JADxwdilgAuazCf0w688kEYr4=; b=xfuDydUxyfWg6rI6mV0HesCQWKazNaRENiefuQYuiwxg+wfcWkGY8igRkzxk1M83hWdJJBfhBL03kZv4bJfCs0/1k8ODXm6ynqSzDBccb40rE1RO/9xxsWB7rTeoBM4lIJ5qAcWe723NYkMZAoMGacJUhr3j7xmqaYhHB8dZqLs= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by BL0PR10MB2929.namprd10.prod.outlook.com (2603:10b6:208:7a::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5186.13; Tue, 26 Apr 2022 15:07:27 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::318c:d02:2280:c2c]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::318c:d02:2280:c2c%7]) with mapi id 15.20.5186.021; Tue, 26 Apr 2022 15:07:26 +0000 From: Liam Howlett <liam.howlett@oracle.com> To: "maple-tree@lists.infradead.org" <maple-tree@lists.infradead.org>, "linux-mm@kvack.org" <linux-mm@kvack.org>, "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>, Andrew Morton <akpm@linux-foundation.org>, Yu Zhao <yuzhao@google.com> Subject: [PATCH v8 46/70] ipc/shm: use VMA iterator instead of linked list Thread-Topic: [PATCH v8 46/70] ipc/shm: use VMA iterator instead of linked list Thread-Index: AQHYWX8+F/ixUJt3hEauCgP3yVGpHA== Date: Tue, 26 Apr 2022 15:06:45 +0000 Message-ID: <20220426150616.3937571-47-Liam.Howlett@oracle.com> References: <20220426150616.3937571-1-Liam.Howlett@oracle.com> In-Reply-To: <20220426150616.3937571-1-Liam.Howlett@oracle.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: git-send-email 2.35.1 x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 935a6a43-55a5-4187-93b6-08da279679de x-ms-traffictypediagnostic: BL0PR10MB2929:EE_ x-microsoft-antispam-prvs: <BL0PR10MB292912B332DCF747A7D6D5F9FDFB9@BL0PR10MB2929.namprd10.prod.outlook.com> x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: QLPkCNogX8ELTx/nTTOlestB9zqI9WHHAWd9kxO9y7UZC+z+iDLsTvQT3jeC+wz4nC0FjWm6xTb2fhVA+AjZBA7CMGcTuaKx5iDYPagJx09Y1pSsqMpNrtrXmbRGuCSuj4PDJKdowVxvidM+vpNvnjJIYBxujUI+UFuvyiCpXvxCZH+JL++T4weE/3nmevJGsQPhADq9CIDiwEubpd9rw89T7bdvw4au6FkvlWD4HzYF7a3Bmd5lO9eeZqBXkNm+l6Qa5Q01DAKf6F3hm1+aiJRJuDKSaIcJjro9vXWB+/QRyp7RxkcDb7D1JH2fY/CeKyku63S52xxHD8FdWXAUd2HAVGlQ0wdNHYhOMNfvnOT+x3NRnQOZzG6sTMuUqQ+Hh8HIIaelHHTt8Qoj3Ew6Z65fLYqFl4o5h1+/pB+3AMblXyzgTFB64CQUDb9/GhyofQsadKUyrpXIq60Q17B0G1Z/ytmSr0KFcXf/7555HPT5K2fnB0GRgvYHlL/WDPDd1A0LZdqzlmP8QPLP5ERSSj9HzbsWvWVQt49rkcsjVlrf77J3TtMJnwfM1e/sTNH+bAbMvYvG1YQIM9wasr6xOMLu8eHLYERuA9FEkggRsoN9p9tSiIGnWKWnqDPH07GcwaggXDL2gENYL7Oy2U3dO9dlSC3QazH/DgXI1JmyuW8FWU/ksvum7mrwo2u0d1yMUmzCJJ84m2ms8QstmWSQTA== 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:(13230001)(366004)(6506007)(86362001)(44832011)(6666004)(6512007)(2616005)(5660300002)(38070700005)(2906002)(122000001)(38100700002)(83380400001)(76116006)(91956017)(1076003)(110136005)(316002)(26005)(186003)(8936002)(64756008)(66556008)(66446008)(8676002)(66946007)(66476007)(6486002)(508600001)(36756003)(71200400001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?rNR6l252kfTrJf4pkP+ofVB?= =?iso-8859-1?q?kVS1nrNz+1LsI1SsRKwn+z/I2bh1q0smd52e4p+q4GXzwIzctsKSwHSwNyJP?= =?iso-8859-1?q?iPKUZgQs7J4bSjZXaCZe6LGQUPUaJMxeCVtIsj+NZwartWepCLr98Xc+6WqO?= =?iso-8859-1?q?kPQq8C+RDXuDj96akgpnnOL4ggwbXTNCxNRtqS8jOwxu/6GUh5ctIDcILBPe?= =?iso-8859-1?q?3XILRqGs5XvncuO6q8Y6zP2zD4RMlqZlFcnHWePF/r22hOpvv1lo6A5qiMeY?= =?iso-8859-1?q?YXfDZgmoxFBvA9aZx1E+4dGh4qUnts1M/VGDYsPhjdDoPj9/mQqODq8q3Bln?= =?iso-8859-1?q?fhuJiJACThokS/tdkprrhhjsd2G91uzy2wRvaLjyBb6h0urzuS6BoGR6J8A5?= =?iso-8859-1?q?JdWAwfsVH7FBd+f6SvWoZMaxqIAsNJJIo4phvYtwZlqYqVzMGjnAFbA4wGpY?= =?iso-8859-1?q?xcSknpm8ssPbE8gymZAg/LKGVW2JeYIyBL3+YOA51ZKZmi5ytF3mzWQ56fWX?= =?iso-8859-1?q?a1Xw59PveyXZYKJ4ZItvuYWn+16MwTbx5KfC//alS8YZ22SbZzIH609bcxum?= =?iso-8859-1?q?gCWubnfRDML4eWqxWJv+QE6Fyzqrhoje5eLDaNMrwmy414SBspuzPyLfrlGR?= =?iso-8859-1?q?8GpBQQ6nK6z7wcGccrslP07eRSVFnW04q4vbKmvS460LUsA4BGRAtJVuyei2?= =?iso-8859-1?q?n1AHS7D9YzMGAsakTquvd0XVOWuy6nt4oVZa2HJemOTkq87eayIZXh+mIK1Y?= =?iso-8859-1?q?Cv54r+i5Zdv8VXp+KbNGQikcilcgR3PD1OyJliONB0I3A+wrToNHAxMzANC+?= =?iso-8859-1?q?+50jp9yh90DAyHPwUokYKojo5EYJnxmiyc3zXA2h4Xw6tkpbqUVhwmTNDt08?= =?iso-8859-1?q?+KZGVch3wi9dSP9Ol1KEfrS+JsBKZvEOjzxpXd+cx2lvNxlDXSq/t/EfPJnS?= =?iso-8859-1?q?ZWgOy07Goxmewt0Tp0Wqs4r5yQt1fxaoBWTa/sFa5IoEiDBQi6P0LTTeGkTi?= =?iso-8859-1?q?vQfel1BCpSDQgYuYzVaogvcuCK0iSgsZY7EZWjy/jwSmgWp6r/Orvf66WKPq?= =?iso-8859-1?q?UcsB/TrmPWqSSUxz4tPcousO9UaG2K8w+KmmA2aUsryP6yZyd/YEpACrL6v+?= =?iso-8859-1?q?xPEie6bBBgpEBp+Mro6lDgB/PjLWeMrT5ohZRvfIhhUuXPX6zD8zo4y77290?= =?iso-8859-1?q?UKQMrifI/7ISlkaAVgczq8aaizW+oOYMf/B64nrEGKDt9FS1PDuFob7Dv1c3?= =?iso-8859-1?q?/DBXL2XY7iRex0k3WIG4qUzTDTUeHC7nVeQxJyTvJo5qkWkw81NfawdK4DV9?= =?iso-8859-1?q?7FU/rIYxMF3BR8lhUKc+5rBj8epeXEkZAaFAvCzo9LQjLAUlMtJkMpelKSEu?= =?iso-8859-1?q?SM2mqVWfdD1yG4cvew3lXGd7fx/EwhppZj+LKcQR7Q8bDkfhy99ASnDlVG4g?= =?iso-8859-1?q?TV8DUE8sxf6zdGvnhU80Uxrut8PBY6nb5/kzwXCTa6QqVXs+TAQoPHi+bB6F?= =?iso-8859-1?q?SidJeZ5HSyXEv8azObDZNX5aP7FXi9JQfL3JOjgf+ClQRVLMKI4db4P/MBoW?= =?iso-8859-1?q?Em+bLEOhSBrcFw5RLS2BdUTBtCPsp2ZkJPUwTkxI+lO7dxSJGJrYKgNc/hk1?= =?iso-8859-1?q?ZjZOgvc6WBs3rTjWkU4ue/LuEmktA6c6YTdW/2NM7S+TAHGfRgZgRtRFlHfR?= =?iso-8859-1?q?7XTgjhgNpW3TsfcSRINmgQiimuc1VWpEv1YVhUWEIksbfDSb+sEWtEtJfN5E?= =?iso-8859-1?q?0ZVWL2EA3RhKHSNi5nyzF9t3JdSdSrFvOTBZ3u+gcrqHTJpGWQpTl2orWun9?= =?iso-8859-1?q?lrczsLh0=3D?= Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 935a6a43-55a5-4187-93b6-08da279679de X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Apr 2022 15:06:45.0207 (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: G0y9ImZVv2uHANfomOZQ8T7NA6iw7Lfym2ApldVj2vcbuzbXL/kIviDAMIa4Jt8Yyd4ZfSiAoO0Fhbw+xvtKPg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL0PR10MB2929 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.486,18.0.858 definitions=2022-04-26_04:2022-04-26,2022-04-26 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 spamscore=0 adultscore=0 mlxscore=0 bulkscore=0 suspectscore=0 malwarescore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2204260096 X-Proofpoint-GUID: YdhNY8o_rdtAEbnlxfNjHuRghliZvsC1 X-Proofpoint-ORIG-GUID: YdhNY8o_rdtAEbnlxfNjHuRghliZvsC1 X-Stat-Signature: c3osp63zk6r91n8i3nxf3ox9yoamg878 Authentication-Results: imf29.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2021-07-09 header.b=U7Rfd7Wa; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=xfuDydUx; spf=none (imf29.hostedemail.com: domain of liam.howlett@oracle.com has no SPF policy when checking 205.220.177.32) smtp.mailfrom=liam.howlett@oracle.com; dmarc=pass (policy=none) header.from=oracle.com X-Rspam-User: X-Rspamd-Server: rspam01 X-Rspamd-Queue-Id: 5240012005E X-HE-Tag: 1650985649-740803 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: <linux-mm.kvack.org> |
Series |
Introducing the Maple Tree
|
expand
|
diff --git a/ipc/shm.c b/ipc/shm.c index b3048ebd5c31..7d86f058fb86 100644 --- a/ipc/shm.c +++ b/ipc/shm.c @@ -1721,7 +1721,7 @@ long ksys_shmdt(char __user *shmaddr) #ifdef CONFIG_MMU loff_t size = 0; struct file *file; - struct vm_area_struct *next; + VMA_ITERATOR(vmi, mm, addr); #endif if (addr & ~PAGE_MASK) @@ -1751,12 +1751,9 @@ long ksys_shmdt(char __user *shmaddr) * match the usual checks anyway. So assume all vma's are * above the starting address given. */ - vma = find_vma(mm, addr); #ifdef CONFIG_MMU - while (vma) { - next = vma->vm_next; - + for_each_vma(vmi, vma) { /* * Check if the starting address would match, i.e. it's * a fragment created by mprotect() and/or munmap(), or it @@ -1774,6 +1771,7 @@ long ksys_shmdt(char __user *shmaddr) file = vma->vm_file; size = i_size_read(file_inode(vma->vm_file)); do_munmap(mm, vma->vm_start, vma->vm_end - vma->vm_start, NULL); + mas_pause(&vmi.mas); /* * We discovered the size of the shm segment, so * break out of here and fall through to the next @@ -1781,10 +1779,9 @@ long ksys_shmdt(char __user *shmaddr) * searching for matching vma's. */ retval = 0; - vma = next; + vma = vma_next(&vmi); break; } - vma = next; } /* @@ -1794,17 +1791,19 @@ long ksys_shmdt(char __user *shmaddr) */ size = PAGE_ALIGN(size); while (vma && (loff_t)(vma->vm_end - addr) <= size) { - next = vma->vm_next; - /* finding a matching vma now does not alter retval */ if ((vma->vm_ops == &shm_vm_ops) && ((vma->vm_start - addr)/PAGE_SIZE == vma->vm_pgoff) && - (vma->vm_file == file)) + (vma->vm_file == file)) { do_munmap(mm, vma->vm_start, vma->vm_end - vma->vm_start, NULL); - vma = next; + mas_pause(&vmi.mas); + } + + vma = vma_next(&vmi); } #else /* CONFIG_MMU */ + vma = vma_lookup(mm, addr); /* under NOMMU conditions, the exact address to be destroyed must be * given */