Message ID | 20220202024137.2516438-59-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 CBB7BC433EF for <linux-mm@archiver.kernel.org>; Wed, 2 Feb 2022 03:26:57 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 52BB28D00DC; Tue, 1 Feb 2022 22:26:57 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 4A0068D0077; Tue, 1 Feb 2022 22:26:57 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 207CC8D00D9; Tue, 1 Feb 2022 22:26:57 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0193.hostedemail.com [216.40.44.193]) by kanga.kvack.org (Postfix) with ESMTP id 10CB48D0077 for <linux-mm@kvack.org>; Tue, 1 Feb 2022 22:26:57 -0500 (EST) Received: from smtpin30.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay01.hostedemail.com (Postfix) with ESMTP id C8AA918211CF6 for <linux-mm@kvack.org>; Wed, 2 Feb 2022 03:26:56 +0000 (UTC) X-FDA: 79096403232.30.8F9FF1B Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by imf19.hostedemail.com (Postfix) with ESMTP id 4A8341A0004 for <linux-mm@kvack.org>; Wed, 2 Feb 2022 03:26:56 +0000 (UTC) Received: from pps.filterd (m0246630.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 2120QIZm015788; Wed, 2 Feb 2022 02:43:00 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=tmGIdJkibtbU1A2f/iYrQfNi/bAe/Pn/qRenGK9KFF0=; b=kLrWwm1BEemihCzCljhOe+nbG2uX6F/5XWCdqjqwoZEw9on6Bl5IAIv2vBX9UGMB8HcQ mRfgES3g5N9SfRJgqvQSSf7LN6kn5G19WQgxmvR6kBVjDbtIyrwevwH7jc+vNtjOGXrm xKRylpTgc+CVizIfMBJJAJmbKr/8jPuHYIungBUss4Bx8WwWpGgtV443Oe7/6usRxA7S QmXZbfpSBX8pmprHH1gUCuw7sqLTUKHZfZ/xtGR/ewvVwVUXMG2OhVZVACn7JIkOySfx cCSD/XX+Ua+KzKENMlHv0toXfiQr1uj8py8H/+tggA1vWGQues45orcdoj3NvWb6jbpk tQ== Received: from aserp3030.oracle.com (aserp3030.oracle.com [141.146.126.71]) by mx0b-00069f02.pphosted.com with ESMTP id 3dxj9wcnwh-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 02 Feb 2022 02:43:00 +0000 Received: from pps.filterd (aserp3030.oracle.com [127.0.0.1]) by aserp3030.oracle.com (8.16.1.2/8.16.1.2) with SMTP id 2122ZvWn015147; Wed, 2 Feb 2022 02:42:59 GMT Received: from nam02-dm3-obe.outbound.protection.outlook.com (mail-dm3nam07lp2045.outbound.protection.outlook.com [104.47.56.45]) by aserp3030.oracle.com with ESMTP id 3dvumgguct-6 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 02 Feb 2022 02:42:59 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=JuqzS3rHLUQ4Ul36g1XEiasifm4qUmHFQ6R4knaw7RgsIctqXxC+9LOyjR8NaL7K/LZoIKoai/BKNND3svP25dEP5QixmZBgzeFD1pvffgEL73VxXKUMSzwp+fQlnQPKav2oriHGjiG/mx3miUYjvCw1DcVqADU/ZOyrI91pp0SedshlKZB5pPMcR43GwnPQZ0bx3lG+d7LjN192NvPpq6Ir4Mkan+hlbd2Sc9sOJu5KiaC9Bt9h8YBGlqH5nZNkQHtEkjlZFDY/NHm8WuiOGprySoZcMneEkYaCaO/7aqDEpGsHqgKACm5KN5TSpES+GxfMUQaKf7T+MF+qRBwHwA== 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=tmGIdJkibtbU1A2f/iYrQfNi/bAe/Pn/qRenGK9KFF0=; b=doucQdp/A8g8kDWpYIrgOb6onPfHwXifUUJWXl+r20LaY0UdqlTuE2ysnR0UyZe6NiOLreVKAPJnBpGDi1gj7OtEPOipdp0s0J30BeNLIF95ZuSfNNUb0LVbKMguWE1WvX+ore1vU0QkdurlBC3+3ZMHrsfdxJy1nbd3Lgyl2FIEJvJcQtwcvKQ4TM1B3+P0HdJKgnElB9lzbzoPKzv3uFKA7X+KzGbAWARxCtrRDMtDc/4v7mPJKmrD+L8tTGjGwPnkp+0bHdHNUyGTYd1vsNOuODW9/Td+dUfLE1c9oshgYr3j5gTnT6SjdrYlJ4LI3J8lZv30BTszDKxT9B2qsw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; 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=tmGIdJkibtbU1A2f/iYrQfNi/bAe/Pn/qRenGK9KFF0=; b=T6HEOrS9B7DeNKkyr9VSarPjs8Q/yq+N4g4BFTstxrSuCI3WyIKXtOdke1Noyab7R/ElsBZMqsbYOc7W5sh8xVZw24gxZQL4YBw8m1Bv+JB7idd2VYfpPktjt0vuBywni77Ai9MiuDWENc/z0l/PA+V/Sw1/07UIrs1fisORgK4= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by SA1PR10MB5865.namprd10.prod.outlook.com (2603:10b6:806:22b::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4909.7; Wed, 2 Feb 2022 02:42:57 +0000 Received: from SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::3857:3a25:3444:fdd3]) by SN6PR10MB3022.namprd10.prod.outlook.com ([fe80::3857:3a25:3444:fdd3%5]) with mapi id 15.20.4930.022; Wed, 2 Feb 2022 02:42:57 +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> Subject: [PATCH v5 58/70] mm/mlock: Use vma iterator and instead of vma linked list Thread-Topic: [PATCH v5 58/70] mm/mlock: Use vma iterator and instead of vma linked list Thread-Index: AQHYF96AQnzr5LY3D0KiA/5/4RSbVg== Date: Wed, 2 Feb 2022 02:42:22 +0000 Message-ID: <20220202024137.2516438-59-Liam.Howlett@oracle.com> References: <20220202024137.2516438-1-Liam.Howlett@oracle.com> In-Reply-To: <20220202024137.2516438-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.34.1 x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 501fd0b7-e5a4-42a6-f191-08d9e5f5b89a x-ms-traffictypediagnostic: SA1PR10MB5865:EE_ x-microsoft-antispam-prvs: <SA1PR10MB58653285C7B54CE61326BA2AFD279@SA1PR10MB5865.namprd10.prod.outlook.com> x-ms-oob-tlc-oobclassifiers: OLM:1417; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: sx92FGvsdfGBaL2fYU7CfEoE6/gu92FN4/ZwEFwGLLhHbBQMS/zFduLd+fCYF/0LaMbRbdLWJV8TM0eCoPdguSyRHFr98z2GRTRH/kItCsCNHzGEVijepiZTXVtLh5Pv5OdRJ7P/dGoIPrKrN2WOJqXEqczSEP17W6kahnpjvA5LC7NiKxZ87pb5xFVdtZkGYfAybYkZiAvFtSt65ktDVpEiwHHlWpbLzcxL1rSAPZJPU4qMY31u1nOATIUXIcqFUcvnmSWlD1dXf3y0daH8qYxSn/4j2QEAIWkVOReDCTfBF1eKsuffsDvDWWSPDayt7LxnwxAkRu7Zdmn2OD8VsHt3Svqoicoufpg2aEtUcQU1FViLe7sI39QzrFRDZAZNT1GTDtho95xwDeJqN5z9UYZqRxeG9RnHLN/rcUHbY5Y8bQDDxQ/ep38+CekZq9eeFTNp7KjJiLGbKjBkbaw80RaDGEVdlCur+c4wpqonMG7wC6Bb8jss3WwseRpcP5QHe/MAXrBVd0T5UduNY+Xeb+Ug+HulRMa0LgC+ym+wg2+3X4hI5p1auVBvLQVv6CjvX0w5RczFpzfGFgYEPWbktrmKDtnjeS+tclJwRf7b/0ufeamjrPg74ZO8c82gULoTGJq7evZyG4GCUibprWTkspSEPVn8IwyTPvrj8laKGF0oVz3zmKiZ7MzJ1MD4Omg8y2sOof8ucc0FVLzRBx+soA== 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:(366004)(66476007)(5660300002)(36756003)(83380400001)(6666004)(508600001)(110136005)(186003)(6486002)(66446008)(26005)(316002)(38070700005)(64756008)(76116006)(66946007)(86362001)(44832011)(8936002)(122000001)(1076003)(2906002)(91956017)(6506007)(2616005)(8676002)(71200400001)(6512007)(66556008)(38100700002);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?s4g3HJE3RMIkuh+v/MNhlLb?= =?iso-8859-1?q?7Nsbdha2O98wTlJqtNwX/Wo2+/Ip8TGgJ4oebr1LnUdwHHL+CYQtPH8MynSb?= =?iso-8859-1?q?y8jdRgTsTVt7MGn2CMbw96iCo3Q8swndsENr8bzAmVKrqJviCDQE1mjBM4Wo?= =?iso-8859-1?q?ROtsZbP4ZbNp4Y6NnjWbWtLw7zxG06NybXYJiQi/bCuSC9RMGJW2jjSFkcVw?= =?iso-8859-1?q?FDEfBYpYoPdq0CtyKgKyywpa+IZRcXXVH1Pop3MiW0qRlvQzT/0chTc5tjd2?= =?iso-8859-1?q?81C43G6+D9pwPCoVb0Q1Arm8o+1KMX9WnFGF81rhco+V1aZqCrZ2GHIv/u1M?= =?iso-8859-1?q?ttnFFljHH/X5MNqwuaWxZ5nDukfPeRj1Nr8axomJfoXKzHFJR3LOL74O2HZv?= =?iso-8859-1?q?IyumFV1IQZE5roJFnsD9Xm2upcZ7QjGl+EOYkAZIkQGhk4IjVdV6D8l7yoQs?= =?iso-8859-1?q?HVhb5/J3THk8ASmnaQPTi84xaETO1MW9hzZDStAFOY2dOvSPJ1C7CStZ1+Gv?= =?iso-8859-1?q?6/rRqMJak5GLHy2OxFNZfanBNp5xCnL4sKiYDa4rm8q7MAT8gLpC1SBhZI7d?= =?iso-8859-1?q?fppNtrScIJXQLn/vF7GX0YhMJ0uuhqsKrqqASWBN6yQvxOrkAdcyGcRF+7V5?= =?iso-8859-1?q?UdFGr3WzuMpZCVlhuUbdiO+Ado4Mr60h/FfmhnhjNg5JsG3MdZlvRqS2TrlF?= =?iso-8859-1?q?XSv5/O486y7stJBbl3oBoUI9kh9WK8Lr7Az4iuMZTawrrKdKonqSoAhnZtUl?= =?iso-8859-1?q?9QRqf3IKaXLaNn43famlHncVcerl1WpENBk5/fq7Q9T+NhJJ13iMpIkvlPZ1?= =?iso-8859-1?q?Rgm9iS1eln9d0N0S2DOKWmtqgm7VnRCygZSNLRhvbpr9fjSCsL7tCERTlVcK?= =?iso-8859-1?q?/8OAhNk8nXtYexgRRoIyJxwkvl0ROGRbXc0jx4bJfpe+BhvI7a3qpFEBWLT+?= =?iso-8859-1?q?Nx2OGhNB0WCPz+Xturo1h6TSSxZT9K4S3nEdlUE1IM4yOsFpX+0UaquwC+lx?= =?iso-8859-1?q?JVYNQgwSN28tKDh96jLiRY3WP2mB5rKNB/qH60zw+2VWBMcILdBchH0mAw73?= =?iso-8859-1?q?293UgiIZH2omVc2D8+N4h7e79N3EALzHp6xzHJsqOQcfvXhJzAHq7ZQXKGd7?= =?iso-8859-1?q?qQZACfs+YzdHQuucjOg5UeJKcjzhujt+gvseFjJ9M3SEYkHBPyOWvdoWdeeN?= =?iso-8859-1?q?53b6a0MH1gAwiFl9nt+K6G4ZLmjVyY7+tc+E92mFsDLE8yFIAhjz8vcb4p8W?= =?iso-8859-1?q?aXH+cmMnxcpq0vm5vrFh+4RSNzCFr26bZUHgSH3y+DRz/u1EoBi3N1HkBWLz?= =?iso-8859-1?q?8SRsFP8r6Ny4HvADtsgqwoZaLaAcS98J/pM04nIlQtwetF0FV4HZZ4tUMjlZ?= =?iso-8859-1?q?s+Lnkss7UH9ySlTqVIdOJ/ihRdfbMUrXAq5PcfpIlanLyWa1iq+VvFi1GwZt?= =?iso-8859-1?q?+mYCJEKIus6Oj3Z5mWPQ9B8epw2gBFbPnPxsV3tpLquWWBj3uPPfyAYV+MK0?= =?iso-8859-1?q?2ghVUzgBSFLb/aJBym5VyCrhvT7IQ/457E5SEpUkbyPGkxr5iQKMRGVBZE2Z?= =?iso-8859-1?q?jLMoI5yAVrkKKc9yyolU8k2WSZ5Md7RvxMIBwKTTCaDLC1Sc/9PnM8UuDEW4?= =?iso-8859-1?q?pW2DnXeFgL2egbv65vWAfH/iZB8gZtbt1cRdgP47uOUcIsXAfgXt3yEiX2ew?= =?iso-8859-1?q?=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: 501fd0b7-e5a4-42a6-f191-08d9e5f5b89a X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Feb 2022 02:42:22.1257 (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: yhSet0R4z8EHFvAKW82pPR/lT+dBwMMtqnyVDWSu1+QYHYMogFkP7AUa+bVkZ9zXYxsx1X3o30at0nJKvonmZQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR10MB5865 X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10245 signatures=673430 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 malwarescore=0 phishscore=0 mlxscore=0 adultscore=0 suspectscore=0 mlxlogscore=999 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2201110000 definitions=main-2202020010 X-Proofpoint-ORIG-GUID: RGOg-WCz_EGUA3CvTNp-NSgEhAmAXoOX X-Proofpoint-GUID: RGOg-WCz_EGUA3CvTNp-NSgEhAmAXoOX X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: 4A8341A0004 X-Rspam-User: nil Authentication-Results: imf19.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2021-07-09 header.b=kLrWwm1B; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=T6HEOrS9; dmarc=pass (policy=none) header.from=oracle.com; spf=none (imf19.hostedemail.com: domain of liam.howlett@oracle.com has no SPF policy when checking 205.220.177.32) smtp.mailfrom=liam.howlett@oracle.com X-Stat-Signature: 1msf6sknsim8nwxdyssx6aunfb7ze4h6 X-HE-Tag: 1643772416-771043 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/mm/mlock.c b/mm/mlock.c index 8f584eddd305..8d54f355080f 100644 --- a/mm/mlock.c +++ b/mm/mlock.c @@ -563,6 +563,7 @@ static int apply_vma_lock_flags(unsigned long start, size_t len, unsigned long nstart, end, tmp; struct vm_area_struct *vma, *prev; int error; + MA_STATE(mas, ¤t->mm->mm_mt, start, start); VM_BUG_ON(offset_in_page(start)); VM_BUG_ON(len != PAGE_ALIGN(len)); @@ -571,13 +572,14 @@ static int apply_vma_lock_flags(unsigned long start, size_t len, return -EINVAL; if (end == start) return 0; - vma = find_vma(current->mm, start); - if (!vma || vma->vm_start > start) + vma = mas_walk(&mas); + if (!vma) return -ENOMEM; - prev = vma->vm_prev; if (start > vma->vm_start) prev = vma; + else + prev = mas_prev(&mas, 0); for (nstart = start ; ; ) { vm_flags_t newflags = vma->vm_flags & VM_LOCKED_CLEAR_MASK; @@ -597,7 +599,7 @@ static int apply_vma_lock_flags(unsigned long start, size_t len, if (nstart >= end) break; - vma = prev->vm_next; + vma = find_vma(prev->vm_mm, prev->vm_end); if (!vma || vma->vm_start != nstart) { error = -ENOMEM; break; @@ -618,24 +620,23 @@ static unsigned long count_mm_mlocked_page_nr(struct mm_struct *mm, { struct vm_area_struct *vma; unsigned long count = 0; + unsigned long end; + VMA_ITERATOR(vmi, mm, start); if (mm == NULL) mm = current->mm; - vma = find_vma(mm, start); - if (vma == NULL) - return 0; - - for (; vma ; vma = vma->vm_next) { - if (start >= vma->vm_end) - continue; - if (start + len <= vma->vm_start) - break; + /* Don't overflow past ULONG_MAX */ + if (unlikely(ULONG_MAX - len < start)) + end = ULONG_MAX; + else + end = start + len; + for_each_vma_range(vmi, vma, end) { if (vma->vm_flags & VM_LOCKED) { if (start > vma->vm_start) count -= (start - vma->vm_start); - if (start + len < vma->vm_end) { - count += start + len - vma->vm_start; + if (end < vma->vm_end) { + count += end - vma->vm_start; break; } count += vma->vm_end - vma->vm_start; @@ -739,6 +740,7 @@ SYSCALL_DEFINE2(munlock, unsigned long, start, size_t, len) */ static int apply_mlockall_flags(int flags) { + VMA_ITERATOR(vmi, current->mm, 0); struct vm_area_struct *vma, *prev = NULL; vm_flags_t to_add = 0; @@ -759,7 +761,7 @@ static int apply_mlockall_flags(int flags) to_add |= VM_LOCKONFAULT; } - for (vma = current->mm->mmap; vma ; vma = prev->vm_next) { + for_each_vma(vmi, vma) { vm_flags_t newflags; newflags = vma->vm_flags & VM_LOCKED_CLEAR_MASK;