From patchwork Wed May 4 00:26:26 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 12836600 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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 00D6DC433EF for ; Wed, 4 May 2022 00:26:32 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 93E808D0001; Tue, 3 May 2022 20:26:32 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 89E346B0074; Tue, 3 May 2022 20:26:32 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 6CA618D0001; Tue, 3 May 2022 20:26:32 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 5BCA06B0073 for ; Tue, 3 May 2022 20:26:32 -0400 (EDT) Received: from smtpin12.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay13.hostedemail.com (Postfix) with ESMTP id 38FB06012B for ; Wed, 4 May 2022 00:26:32 +0000 (UTC) X-FDA: 79426169424.12.6735786 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by imf29.hostedemail.com (Postfix) with ESMTP id D2884120094 for ; Wed, 4 May 2022 00:26:26 +0000 (UTC) Received: from pps.filterd (m0246617.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 243KsJW6018676; Wed, 4 May 2022 00:26: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=UMVtfXJ0Dlf1aeg6H3yWSnihQ4t5SMLU/QgHB0zb7ck=; b=nNvq1G67dkMayRjWXetfV34oIYkJD2KF/2G3khY5CJwViDmipr+0vLPqcMlSCIHsu8St u3V9wqXuEVykWREh3cuGqf1ED4NtFU9f6G3phC169pUaUp0Eer90jojUfyKnxTyP20wq Ym39/Htu3jJ4zwUQqP0Se1k8WehnS5/3W/CnfwfK+bY2uGQwsetslpKaYOe81RQtpeUL q3SPjloOCOIavGgaL7M3CgFWC0xJghXAcZCp6TjvY5kIZFqRo6CLo0RaC8+JaT+8LlPS vwMJusfgtrwt4Ih1sPKMocNDYxQkY483q0osUXAa/OZX8MgkBweiNMESP0OiLFh8qMid Ew== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3frwnt733e-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 00:26: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 2440FRZP031746; Wed, 4 May 2022 00:26:28 GMT Received: from nam04-mw2-obe.outbound.protection.outlook.com (mail-mw2nam08lp2169.outbound.protection.outlook.com [104.47.73.169]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com with ESMTP id 3fsvbmu7qk-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 00:26:28 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=lWD5nF1I6K2gcGZzsjDD9QXrzYgP4Sh99wMVTxPpwlA6z1HmwhfZ1/kwnpumNKie+7/LU0berp3havi964ra4u4Sv/DIr30Tyj1kmn9xDH6zGUl1/d2U0xCJ1kmMlXsiTxClnPrGiAj3Lkn6hSz/WkVrd9tC5n7Rnb057zyWeGyP5rGY4NywCQDbJb74dynvJCawRJph47tSS8iYvVE032vlXiONektXskjhdcHDH12T59QBCryAxH8ir1SKw71dq/D1jpExouP4vtdnSzVuo2xZ8DdCqi6xYFjWKSqYhDLh0MSrIwH8EHX/MZGotrcrAoOtQ5DUFm+qikvA9apPug== 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=UMVtfXJ0Dlf1aeg6H3yWSnihQ4t5SMLU/QgHB0zb7ck=; b=S6Fz6keQf5E0opDFJMYEhENicsCneTyybXJ1GOEK1uxg7ly+R1A2kjYp0OnChPgvZ/uz/yTH54QTdWtxKyTbkOEgpxKRyTRG6pg4LoYYVn4H/wJV0TVJdF9ZUyv2Da2lBHYlD+oN8y3Eo3xKnDjLXU0gjIJgxnCzMNN4PAwa1bNWH0a9JYpQPl1QUoxcB1hYZphE0s0hlhwBgx0eZ0nWaBEIPjLSWrtf90vW8TW1N+il2YJNVfNxdFNHuNm3J2KcGCA0x6mBAR9c4Z3AO45RGm/wY+34pVT7ZZtvtbVWAuieClGDhCZVXWkwn4H8dOu44h5BxxGxkIlLGMKH+KF2Hw== 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=UMVtfXJ0Dlf1aeg6H3yWSnihQ4t5SMLU/QgHB0zb7ck=; b=Uvjy3kI3HCvKUBRxkTrda0PMQcmaNXjbcx7+e6YorIPPZaZRvlSxMKmvKh+GycNmbnQTFaaCMa7WrWX6Lbia1dsOp1Oiuwz3fPdlvsNswXHNacxq0VOfKQ+8TbWk9G7y6tCRmOcS2KXU3MvggPSlQRkyIQ6/WZGD6gCpJnbZtNg= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by DM6PR10MB3081.namprd10.prod.outlook.com (2603:10b6:5:62::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5186.17; Wed, 4 May 2022 00:26:26 +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.5206.024; Wed, 4 May 2022 00:26:26 +0000 From: Liam Howlett To: "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton Subject: [PATCH 1/1] mips: rename mt_init to mips_mt_init Thread-Topic: [PATCH 1/1] mips: rename mt_init to mips_mt_init Thread-Index: AQHYX02XagZmmFBYlUCIETC2LE4BNg== Date: Wed, 4 May 2022 00:26:26 +0000 Message-ID: <20220504002554.654642-2-Liam.Howlett@oracle.com> References: <20220504002554.654642-1-Liam.Howlett@oracle.com> In-Reply-To: <20220504002554.654642-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: d3a02a32-211c-4c8a-7bb1-08da2d64ba04 x-ms-traffictypediagnostic: DM6PR10MB3081:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: B7Vjii1t59xNddnDJ3W8hufJR1VOq6BiB+uVKC0ukOmVL9eZ1ePl826ADPMoA6lXg2phMT7c0OARM0yO8fdI/SzOl8ZuAOnxjwB/WFoy/PDZYtpASmv32/x5JpzSy6wqha2kGuwZJejfm+yio1yxW0hdKEYTHLQWZcI8Gxpsju96oEvoe9EgSFjC1Recj5S1G9x4InaK2A+Oe1FU86tcCqOn+LKC+B22xdQqP0VFDXFUuYDJJBYS6FJwgGp6XttKmbWVY0VQQTFgD2LsC3jPaoru60uLCOEs8ThVy7s/AFeVHJR3NrcPt80Des8Ryy6D4cLA/lVhJlrOgXC0+Qq5unVRrNdhirz7T4T658pNG8vuk/ibnJT+RpKHZBY5RkPTZr2tSIj0dBQKtp00wCotnFsux9rFeScti1eDcB00OetbwuQarl/zko00SpHgmq409aHJOCDvsSdZ8iVvYuB4kr0ZPHKCJACUmG34ZzRyi6f0Mm8Goh1icZtCnu7moRAR/e1cBBT5i6BiHrpjxvGDX3YkRvhWO7/Stt50AF+Pv7EPkFLTa6FVESIOZBVwnP2k7etsTAfFNike2CyCuapD5ZNV3xvgsdqMLQ/DHBLFRgYSyZ8aVW5FGLsNsNgQnAuTH5eGOOIZitpUirmgLZPv6vU7gVLQ/5y76yBfppIgaFLP8DuFf+BOnTq3G2a/1rl/KAAiAc0FiztKXx5I0UMUvg== 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)(36756003)(6486002)(83380400001)(508600001)(66446008)(66946007)(66556008)(66476007)(8676002)(110136005)(71200400001)(76116006)(8936002)(44832011)(4744005)(316002)(5660300002)(64756008)(2616005)(186003)(1076003)(26005)(6512007)(6506007)(2906002)(86362001)(38070700005)(122000001)(38100700002);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?tnliE9osGAhUlcNvX27Xbbn?= =?iso-8859-1?q?gsY5utv3vCqlkNPAjtl/+ywZ4X+YYYj2U64BBI+nAAdqJSLwMXfklIWI5AVQ?= =?iso-8859-1?q?6z6HFdwPkDV5wBO7I31cMKpEbGyJt9c7E0SRBEIpbery52FPwQfvaskdE6YB?= =?iso-8859-1?q?KHRVRMyVFHw5wAak1l/LotqVeTw1CW0l1GTQ3S9630Z5v4hDQ7MG3femuA/n?= =?iso-8859-1?q?RpMKM/7PKF6FQEu2zDT2rwFQEqLxgB/qDshbJpa3+/a8t72CITSVqdxDQPr+?= =?iso-8859-1?q?Voa6oZ/kkIwzOQiucemACXO1UsGv4idQ+4iP++9dW22S9nPFiNw19z6zuWbE?= =?iso-8859-1?q?cAB4brJ+ZphhkB7djD/Mb+sVlC0jswKcMJ+F1kajy02yVD35BJteg+rWXFtK?= =?iso-8859-1?q?YEGcj0E460DHRy43S5laB6H+RzfhYZlouTCMC/nWG0FgMeBs0BCjJ51jgdh8?= =?iso-8859-1?q?U8QeQyjRDeav1Bih5g6y028QsjhxTmTjS/gVtuY8ZG0JcJInrvRlzzCv5vC+?= =?iso-8859-1?q?aMTmhW4+PUNj7LYAE/3aLN8Guxr2JfYC/H9Z9S/JrmvV7dxyfIpNSd7/10pD?= =?iso-8859-1?q?U8q3Wvdg+hYHifslqVk6VbXUMYDGfYXC88KkGcFzbAGGlbq/cWv9Ry4COq30?= =?iso-8859-1?q?UC0NyFD7tRt8g4lgQgLZYDSGZxpi0kNigECJXsN/f+IRYSbt8QKLdrgQIJ7M?= =?iso-8859-1?q?0oXNqg0n+W7VC6OfX4KBKD41njnPEFoTog16Gs1GiZ8HHPQwUXEF7LBtzJLK?= =?iso-8859-1?q?hsplkTc/fqn7C2+rwNzD+XCjuz4rlkJ7hockqa5SmKk6FsqbKccKPiuqUOpd?= =?iso-8859-1?q?Lo518CJ8j3tX+JIH4CZDPs13wiFUGfMxunzALNrrtjvwBvYBJCk+2jtYk85L?= =?iso-8859-1?q?rlKgAl9g7DEOIZybvOf6wmmh2TAlMQHBguHjMvSq+lgGx8bbUwbfw5r9AeE8?= =?iso-8859-1?q?pMj28Vlhe8gVaOcotGI4VfSI4+H3mN6gzH1ZqGzv9CAqKtCNg5IYRRCl9eHZ?= =?iso-8859-1?q?Ug/mhYzF5uHCf/pHYXEeMFhgO2deRTsUYC7RNC2kXJxpyrNtNZZOCe1HYGg6?= =?iso-8859-1?q?TWSu75kf9PM9m2golmiF4UqLvJoyO6NQYPgttMShdXqlm+SDbokeuM0ioDaJ?= =?iso-8859-1?q?QpICigNjGPriRiqBIh1O7MDhAYy7huJv7IULIpPBARH2+yqPl1dn1MYJqVax?= =?iso-8859-1?q?bO0KRwtymrxWPR/nmubH2vxqkGh+PeEX1eEn9TFIsbK6judnYImxqdHB/A9H?= =?iso-8859-1?q?PGKX26IOkRu1vfFdpGq2XRxdqAINBvTQ3IuSpd4RnwREhepXZ8NVdFCBCSqe?= =?iso-8859-1?q?f8PR97HqAEPFTfHKnw5Lue/5XvShIfwaE6OIogwDZsvRehpM6/UuGAZ8LZjL?= =?iso-8859-1?q?j4ejaQ7V2FDFNpJJpOoe8IWEPpN7Ij9pcsNQQEWcZVU/Cn61r0Xw8Cju7OPZ?= =?iso-8859-1?q?OWfn/d3mgxk13bLO4OWLxu8IUvUl0Yvmn3xMjSqRCXT0ugBVXEwyqXSa6ETc?= =?iso-8859-1?q?uNJYrf6qtGXKBpKe9KnoEKwbrymzO6IydLJRJz84rpGYE0hHx27LvXXsi+b1?= =?iso-8859-1?q?cGqR6yGLpJWHZXpt1do+Ziy9b0PsiBxr4zOWXH43WP0qpwUFZiIfP5gE8yVr?= =?iso-8859-1?q?YqgBllWwkDdDJ3fs5g8Y7pc7ugaXuRMEBxqFnKnVX0PkPOo3dh7q7ngzCere?= =?iso-8859-1?q?URKq0EBWVDrgqlZ2G3L5MX/3SJIaY1gTcyWbNNyrNc+99RjIUtJRwucKEqNy?= =?iso-8859-1?q?OtJc85/yMGszMu7aH/mnD0IthedBGmyK4+AoC8XyyVK/L0+vqnlxwVinMBb+?= =?iso-8859-1?q?Ws5LnISM=3D?= 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: d3a02a32-211c-4c8a-7bb1-08da2d64ba04 X-MS-Exchange-CrossTenant-originalarrivaltime: 04 May 2022 00:26:26.6869 (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: +270mVuxwDk1myJ65J+9h9wSRCN3X5Rc8qZoPGLk+4454GzN18qHrlvGKQW83LagGXFJdWz1QWQA03Vi8+/xGQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR10MB3081 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.486,18.0.858 definitions=2022-05-03_10:2022-05-02,2022-05-03 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 bulkscore=0 spamscore=0 malwarescore=0 adultscore=0 suspectscore=0 mlxscore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2205040000 X-Proofpoint-ORIG-GUID: UuztD96C5fF1AlTU4I8ecxDUOKQ6VHOU X-Proofpoint-GUID: UuztD96C5fF1AlTU4I8ecxDUOKQ6VHOU X-Rspam-User: X-Rspamd-Server: rspam11 X-Rspamd-Queue-Id: D2884120094 X-Stat-Signature: fb4b9ic18qkwtaib9ita7aehb6gyu8kb Authentication-Results: imf29.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2021-07-09 header.b=nNvq1G67; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=Uvjy3kI3; spf=none (imf29.hostedemail.com: domain of liam.howlett@oracle.com has no SPF policy when checking 205.220.165.32) smtp.mailfrom=liam.howlett@oracle.com; dmarc=pass (policy=none) header.from=oracle.com X-HE-Tag: 1651623986-308981 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: From: "Liam R. Howlett" Move mt_init out of the way for the maple tree. Use mips_mt prefix to match the rest of the functions in the file. Signed-off-by: Liam R. Howlett Reviewed-by: David Hildenbrand --- arch/mips/kernel/mips-mt.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/mips/kernel/mips-mt.c b/arch/mips/kernel/mips-mt.c index d5f7362e8c24..dc023a979803 100644 --- a/arch/mips/kernel/mips-mt.c +++ b/arch/mips/kernel/mips-mt.c @@ -230,7 +230,7 @@ void mips_mt_set_cpuoptions(void) struct class *mt_class; -static int __init mt_init(void) +static int __init mips_mt_init(void) { struct class *mtc; @@ -243,4 +243,4 @@ static int __init mt_init(void) return 0; } -subsys_initcall(mt_init); +subsys_initcall(mips_mt_init); From patchwork Wed May 4 01:12:26 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 12836629 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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id E84DFC433EF for ; Wed, 4 May 2022 01:12:35 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 50F3A6B0071; Tue, 3 May 2022 21:12:35 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 4BE506B0075; Tue, 3 May 2022 21:12:35 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 2E9CF6B0078; Tue, 3 May 2022 21:12:35 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 1F36C6B0071 for ; Tue, 3 May 2022 21:12:35 -0400 (EDT) Received: from smtpin31.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id DB2F020499 for ; Wed, 4 May 2022 01:12:33 +0000 (UTC) X-FDA: 79426285386.31.19EDDF9 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by imf20.hostedemail.com (Postfix) with ESMTP id 8B0681C0094 for ; Wed, 4 May 2022 01:12:26 +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 243KctEm024988; Wed, 4 May 2022 01:12:28 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=wMnXYZ6ilXCCmNJwmRifegQ+iz/dSmHFhbRUOQ2lNXg=; b=BFSRW9wEgqnVVu/t0IDQWGUBa0GmdZTfO7Ev0j0ng+bdcJiAyQX7seAv1zlIPxzW1aVn Vt5SogMtCFrrP3nvfzZszBDynIipblkxtXYyx4Z7O7PhuDxzLv0R4+eu4lBYFHkLUFi9 +978JFc+Q9RIaDvszeExWSrVVbTBZE0uHtbSZZV5TP4pvP1UgUHTc4o+oH5yyhje1A0l txMQMUjnXFOOZ8jM02o3W6S0AQ/DmvNubi6Ctm/8kCtUf4oKm5Bgev01cz16ahxZFLuT LsR+CNLGDetUgSEXsb3SMc53EHQWOp/0nSinHgnxlhHGhGJFVlcTZ4x/QFSmrbOff2OC Uw== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3fruw2f6a9-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:12:28 +0000 Received: from pps.filterd (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.16.1.2/8.16.1.2) with SMTP id 2441As5n020085; Wed, 4 May 2022 01:12:28 GMT Received: from nam10-bn7-obe.outbound.protection.outlook.com (mail-bn7nam10lp2107.outbound.protection.outlook.com [104.47.70.107]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com with ESMTP id 3fruj9223a-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:12:27 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=FV02A98bHCXj/GCk331MgxzerwEX9mltNwHxyEC1XOP+wZbbq1l86KRBHmEivjqAKyRWElv2sNsrb0lDNHcwtPny7h3CecKjEoufZE3LH0CHo5WdQbI741/aKYu/65PEJAU0zhXBOmaqjvVSXDPtYgAC+X1yqyHTUyhGpIYcyKAGTCpwMWHSC8RL4E8v6c0ey9p5HfEYbQgMHrbRJgLUqFXg0GOWE5Q6V2DUh379MNGLA33O6mBHOgwiCpq3UhhA9DTqfq1b9TFXGyeZQXhQM4yn14CK5jrkneabUdZL5Wcsq4Csb1UhNZkap/Ry5xmcLeLcgtK/sClZWgBPo8/bfQ== 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=wMnXYZ6ilXCCmNJwmRifegQ+iz/dSmHFhbRUOQ2lNXg=; b=bc5j457y4jYDmSG7XhdCPHjEU9h5Zb02+4ADjJXVIhDhfS0h4FjmIYM5gvHpJ8v7duMMS+7Mnx7aphtfC/2ktCw3Z3EW2jZMFTbBYbrwsDitA+gJhTYkvvIcKIyy55P2/aStFLt6jX/zpugOO0tTXNeUeJ5ZIpXHHuPrSHlDCzUn9v5M8UOjQMkEcXPAo9TeFb+sqeOYpm1QqtyJbpHHeHHm0jUshBtg3tW3WrbUDB863lrzVaKEuT+C7POsmS9SLCXbYkQDW/u9Jm/6wCxxKJbs4DyNZELQziKaAATRSqmQCdvWbTiINuzS9DwwnOPmwVxqdQsPtFSuIr6RnHTPYA== 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=wMnXYZ6ilXCCmNJwmRifegQ+iz/dSmHFhbRUOQ2lNXg=; b=MVEMXXHaCjw9iayVJ5TTtXfCOPya5DiJTjs7Q3DBagG3Xl5EoSWIa4kEs36KNskcTabJeJ1hXzv3AZFWCfJX//JT/2ue/v1vzYWQeYT87XGO5qxdUG4ZSDXDGxLPT1+Wigw5O6C83EJaHV87FbTvSl4DzX49/mTpaeQq9SJLLkA= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by PH7PR10MB5830.namprd10.prod.outlook.com (2603:10b6:510:127::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5206.24; Wed, 4 May 2022 01:12:26 +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.5206.024; Wed, 4 May 2022 01:12:26 +0000 From: Liam Howlett To: "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton , "damon@lists.linux.dev" , SeongJae Park Subject: [PATCH v9 15/69] damon: Convert __damon_va_three_regions to use the VMA iterator Thread-Topic: [PATCH v9 15/69] damon: Convert __damon_va_three_regions to use the VMA iterator Thread-Index: AQHYX1QE+HvcVvuhWk2ltHXx1nzXSg== Date: Wed, 4 May 2022 01:12:26 +0000 Message-ID: <20220504011215.661968-1-Liam.Howlett@oracle.com> References: <20220504002554.654642-1-Liam.Howlett@oracle.com> In-Reply-To: <20220504002554.654642-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: 3a9024bf-e8a2-4fa4-a46c-08da2d6b26cd x-ms-traffictypediagnostic: PH7PR10MB5830:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: pgg1b/Sag2KxliTD+rmYG0L/GONovo2z9V7yZCz8ngyoORAO7UHktGsxA8g7J4pglnDLCyZpG4V1WWvdDSzZrv1tA+4l9PNyu7z82de9dCR9qigBc9ha6y7EAIdtHAHJoeu/QliJO3RlGU+ad+S1UJyehN4qtJMBovklcE1xttw2j8ymWhc0Xh4HU5k8lNk11oJ801RZ1Z4W/ucbbIXFM+UAvJMbMsf9HgPO5qLF1VIrSwjz87zJOpyn9oeIhLglYdm0LsV7hBS+QQaLzbgPTT2ck5GLCYTojXjoBU0NRj/IKmS3Lez1yOau3QK3xM1SAeZGJUDQEtGBg+E7IVr148dvsGFV43ff4B5LoPAYMoDGsG0KAwdoTOS6fEJgwJJNt8S4U/7clRbJJRion0yQqoXomOeWmaC6RobJU7m7bbVh3d6k3L4WgHoYNSwljXzffsMxi8NEaDWBaRg3MBQs6rSytmlC1pBTQlut4WQ+vwJ1AauQ6n9vP4HHbiP4RxMWMAu+hqx7lRKHs3c6eCYPcst6KMM8J38Dqa2U+m6q09/8kCql9L3wPt21FNTT+IPuzQOtrSNdCnn16xABqJLS53Qek2XLCzKtkFh2e6IptWgeS+YO1HVGGhTtP9XVjb1XWCxiabQ0DiCX1HFKcO7wN4TlrEnBSR4bpXZc1SlbnyOxFh/eWogsQy8uOWGszJfwZ0u9XDBoyMQ18OOxOgncSw== 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)(86362001)(71200400001)(83380400001)(38100700002)(38070700005)(122000001)(316002)(110136005)(44832011)(2906002)(8676002)(5660300002)(64756008)(66476007)(36756003)(8936002)(91956017)(66556008)(2616005)(66446008)(66946007)(76116006)(1076003)(186003)(6512007)(6486002)(508600001)(26005)(6506007);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?/mD2xn3N0kFKerH7RPBlVX6?= =?iso-8859-1?q?XtmIn7IRqpXB3JPP/P8s0w0A+D8/73mHZlSZ+L9oE9jERdAXMRmQ12jbZjTK?= =?iso-8859-1?q?H8ma92Ac9J7cMpU/bLaQIbSi0tyubuMxj+QFJ2PH0xgamKHy/IGEGT3mY6a5?= =?iso-8859-1?q?aGi1M6kPixM5mFtGG6Wu9+TuTBXImOMG3h9DINdqreh8SZRHV8jeByprd8+h?= =?iso-8859-1?q?cdSo9pScqUieWZvIAafAmR3Ykxjo7iSHCLINYppkr4kwhGz2TRVgdUk/ESL4?= =?iso-8859-1?q?4HX0eqcRm6Fah+9OwDkO6sw93BYFm94UORdOOZvKruRvibYrCcJMODVZoExa?= =?iso-8859-1?q?fgd5dyOARPx+OBJGskKu1Gvk9zrVMkMUcUFUM/c0cqQF3jSVlaXYcOTEzkmY?= =?iso-8859-1?q?Dr1DW6+q/h+4XZwa4kDkMEHkx5h53QvzXFdUpFLtUNPdas4ToDGw8z+GhxzF?= =?iso-8859-1?q?U50+JmhL9ngRDEEQsfYzRuJDk71oxqBQm7XseLfQn9Vh0CVjIH4ieWkW7UoH?= =?iso-8859-1?q?jNzHBkLMxWRp4RkyQF5EfrQGyoVCrTyNoLHTPezw+wX9pTqvkMnEKgok6iGQ?= =?iso-8859-1?q?4UDUPCMbere3LQazD8QCbzoMof4OOsKF5xwsE+b1CB+cECLORP/vzqu7O0lG?= =?iso-8859-1?q?Mg0bzxZ+tTcHKTWgv0AKbHLz7dajRugoFoNX3+eehuZAMlDftAMQJkBT6vUg?= =?iso-8859-1?q?HyfDDBnXuMYWzdSV3kzPZ2ike9z88yTqsxf4g0992INBEmCNCrHQ9rW8GVE7?= =?iso-8859-1?q?QtZDgTzuo629FRuoU9JL9A0NmzAEuPE/6n7gJ6d/TdzNtNrzHmLegPbfVEm4?= =?iso-8859-1?q?RPTgu+fCZeYjSAZd70HZtJhyaHwcO3fmxzsxND+B87t9glzMVIGwjfZ+trX3?= =?iso-8859-1?q?3GfDq9f7JuX5qb41RxuwXnitmQyiCoKIrnMme/EQFEURQL06a7ru3COCLd7N?= =?iso-8859-1?q?iHG4vF3iHFtUHd88Offksb6HBsiTraGPJiD7Y4QbA43n1GRfZs3QOvgAMQW+?= =?iso-8859-1?q?+KIVuZF1kkM76GztRVAQKm99Ku3TrAPik/gGAizC360+i1EemioN1l36WASg?= =?iso-8859-1?q?Ps4BJNZEqAdZVZyQQW8edLC8SDjipWob2UpOSKEMYzlnIwoNAIfQ9VIZ0dbX?= =?iso-8859-1?q?5crqMEAB6QnelOzv8Z/r9jm/GO6d/HrnBaUhZpjoaWb11rPjEa9kaBoL4bqm?= =?iso-8859-1?q?aPSAAYzPsJ/VfT3ykLFAG2bNHFzbFLyGjNP8D39rcc+kcDPkTvDIKOJyNM9k?= =?iso-8859-1?q?tAw3417JPFuakXjKSAiiPtAFexS4q9+/GzYkOV8Jl7NxVO13NOvpTgKZzKUC?= =?iso-8859-1?q?JXor8se73KriKn8YxirrIIjDfhhWItfgL0qkDRHp9wtBXFBQhsQpZf6pb0t6?= =?iso-8859-1?q?keAj2Aa7tX5aX/pJOdvrMqn8S07RZaBWQfzpkit+42kZal1mDFQTfOfB59Pw?= =?iso-8859-1?q?XO6j09XxzVehqrPwfRHE2ZX61e7hN1DqpQ9SR+ny1Rb6a4NGM/C/BMUixJPw?= =?iso-8859-1?q?Pz53psPmpGeP6aYkk1rBghUVaP2a4zI/TFWryCL2rir2ikpHHeSkSd3cTfEH?= =?iso-8859-1?q?fk9pHnOeRUyMQIY6ZHCvjgJjZt5dySnuNHG/QnHkl/A6NcmCt3Bt7ev1IECw?= =?iso-8859-1?q?eUUotSxK6214hK10KfQsF6dSFdW4fjBUfTgYxrze08smGFyUvIiRsr1y9ZMK?= =?iso-8859-1?q?0XuCoMtGWtWa1XGaSovguokV/nrKqh9gOn8DQVKE/JVtxKN6MINILJg9caU9?= =?iso-8859-1?q?qWV6zQ7bWP+oR/UQN9MOQfP4557QsluwoJM2L362Ppq+belpvFqKcfIB1iU+?= =?iso-8859-1?q?I7SxtWUQ=3D?= 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: 3a9024bf-e8a2-4fa4-a46c-08da2d6b26cd X-MS-Exchange-CrossTenant-originalarrivaltime: 04 May 2022 01:12:26.1795 (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: mdjtnHRLR4OkPoHsMzDNz5DqKLmeJKxAOL7mlWlx3LQKCW69MfthjJoOCrjt+TJI+QxOnJVHfSrSOZmSuh7+sw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR10MB5830 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.486,18.0.858 definitions=2022-05-03_10:2022-05-02,2022-05-03 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 mlxscore=0 adultscore=0 bulkscore=0 suspectscore=0 mlxlogscore=798 malwarescore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2205040006 X-Proofpoint-GUID: xM11dKXUrMJiEHMfD0cRDmHNUGg5mIge X-Proofpoint-ORIG-GUID: xM11dKXUrMJiEHMfD0cRDmHNUGg5mIge X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: 8B0681C0094 Authentication-Results: imf20.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2021-07-09 header.b=BFSRW9wE; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=MVEMXXHa; spf=none (imf20.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-Stat-Signature: rkyjdkuzeh6t4wet1r9hhhrcaoz3be5f X-HE-Tag: 1651626746-816235 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: From: "Liam R. Howlett" This rather specialised walk can use the VMA iterator. If this proves to be too slow, we can write a custom routine to find the two largest gaps, but it will be somewhat complicated, so let's see if we need it first. Update the kunit test case to use the maple tree. This also fixes an issue with the kunit testcase not adding the last VMA to the list. Fixes: 17ccae8bb5c9 (mm/damon: add kunit tests) Signed-off-by: Liam R. Howlett Signed-off-by: Matthew Wilcox (Oracle) Reviewed-by: SeongJae Park --- mm/damon/vaddr-test.h | 37 +++++++++++------------------- mm/damon/vaddr.c | 53 ++++++++++++++++++++++--------------------- 2 files changed, 40 insertions(+), 50 deletions(-) diff --git a/mm/damon/vaddr-test.h b/mm/damon/vaddr-test.h index 5431da4fe9d4..dbf2b8759607 100644 --- a/mm/damon/vaddr-test.h +++ b/mm/damon/vaddr-test.h @@ -13,34 +13,21 @@ #define _DAMON_VADDR_TEST_H #include +#include "../../mm/internal.h" -static void __link_vmas(struct vm_area_struct *vmas, ssize_t nr_vmas) +static void __link_vmas(struct maple_tree *mt, struct vm_area_struct *vmas, + ssize_t nr_vmas) { - int i, j; - unsigned long largest_gap, gap; + int i; + MA_STATE(mas, mt, 0, 0); if (!nr_vmas) return; - for (i = 0; i < nr_vmas - 1; i++) { - vmas[i].vm_next = &vmas[i + 1]; - - vmas[i].vm_rb.rb_left = NULL; - vmas[i].vm_rb.rb_right = &vmas[i + 1].vm_rb; - - largest_gap = 0; - for (j = i; j < nr_vmas; j++) { - if (j == 0) - continue; - gap = vmas[j].vm_start - vmas[j - 1].vm_end; - if (gap > largest_gap) - largest_gap = gap; - } - vmas[i].rb_subtree_gap = largest_gap; - } - vmas[i].vm_next = NULL; - vmas[i].vm_rb.rb_right = NULL; - vmas[i].rb_subtree_gap = 0; + mas_lock(&mas); + for (i = 0; i < nr_vmas; i++) + vma_mas_store(&vmas[i], &mas); + mas_unlock(&mas); } /* @@ -72,6 +59,7 @@ static void __link_vmas(struct vm_area_struct *vmas, ssize_t nr_vmas) */ static void damon_test_three_regions_in_vmas(struct kunit *test) { + static struct mm_struct mm; struct damon_addr_range regions[3] = {0,}; /* 10-20-25, 200-210-220, 300-305, 307-330 */ struct vm_area_struct vmas[] = { @@ -83,9 +71,10 @@ static void damon_test_three_regions_in_vmas(struct kunit *test) (struct vm_area_struct) {.vm_start = 307, .vm_end = 330}, }; - __link_vmas(vmas, 6); + mt_init_flags(&mm.mm_mt, MM_MT_FLAGS); + __link_vmas(&mm.mm_mt, vmas, ARRAY_SIZE(vmas)); - __damon_va_three_regions(&vmas[0], regions); + __damon_va_three_regions(&mm, regions); KUNIT_EXPECT_EQ(test, 10ul, regions[0].start); KUNIT_EXPECT_EQ(test, 25ul, regions[0].end); diff --git a/mm/damon/vaddr.c b/mm/damon/vaddr.c index b2ec0aa1ff45..9a7c52982c35 100644 --- a/mm/damon/vaddr.c +++ b/mm/damon/vaddr.c @@ -113,37 +113,38 @@ static unsigned long sz_range(struct damon_addr_range *r) * * Returns 0 if success, or negative error code otherwise. */ -static int __damon_va_three_regions(struct vm_area_struct *vma, +static int __damon_va_three_regions(struct mm_struct *mm, struct damon_addr_range regions[3]) { - struct damon_addr_range gap = {0}, first_gap = {0}, second_gap = {0}; - struct vm_area_struct *last_vma = NULL; - unsigned long start = 0; - struct rb_root rbroot; - - /* Find two biggest gaps so that first_gap > second_gap > others */ - for (; vma; vma = vma->vm_next) { - if (!last_vma) { - start = vma->vm_start; - goto next; - } + struct damon_addr_range first_gap = {0}, second_gap = {0}; + VMA_ITERATOR(vmi, mm, 0); + struct vm_area_struct *vma, *prev = NULL; + unsigned long start; - if (vma->rb_subtree_gap <= sz_range(&second_gap)) { - rbroot.rb_node = &vma->vm_rb; - vma = rb_entry(rb_last(&rbroot), - struct vm_area_struct, vm_rb); + /* + * Find the two biggest gaps so that first_gap > second_gap > others. + * If this is too slow, it can be optimised to examine the maple + * tree gaps. + */ + for_each_vma(vmi, vma) { + unsigned long gap; + + if (!prev) { + start = vma->vm_start; goto next; } - - gap.start = last_vma->vm_end; - gap.end = vma->vm_start; - if (sz_range(&gap) > sz_range(&second_gap)) { - swap(gap, second_gap); - if (sz_range(&second_gap) > sz_range(&first_gap)) - swap(second_gap, first_gap); + gap = vma->vm_start - prev->vm_end; + + if (gap > sz_range(&first_gap)) { + second_gap = first_gap; + first_gap.start = prev->vm_end; + first_gap.end = vma->vm_start; + } else if (gap > sz_range(&second_gap)) { + second_gap.start = prev->vm_end; + second_gap.end = vma->vm_start; } next: - last_vma = vma; + prev = vma; } if (!sz_range(&second_gap) || !sz_range(&first_gap)) @@ -159,7 +160,7 @@ static int __damon_va_three_regions(struct vm_area_struct *vma, regions[1].start = ALIGN(first_gap.end, DAMON_MIN_REGION); regions[1].end = ALIGN(second_gap.start, DAMON_MIN_REGION); regions[2].start = ALIGN(second_gap.end, DAMON_MIN_REGION); - regions[2].end = ALIGN(last_vma->vm_end, DAMON_MIN_REGION); + regions[2].end = ALIGN(prev->vm_end, DAMON_MIN_REGION); return 0; } @@ -180,7 +181,7 @@ static int damon_va_three_regions(struct damon_target *t, return -EINVAL; mmap_read_lock(mm); - rc = __damon_va_three_regions(mm->mmap, regions); + rc = __damon_va_three_regions(mm, regions); mmap_read_unlock(mm); mmput(mm); From patchwork Wed May 4 01:13:49 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 12836630 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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 60982C433EF for ; Wed, 4 May 2022 01:13:55 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E848E6B0071; Tue, 3 May 2022 21:13:54 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id E32EF6B0075; Tue, 3 May 2022 21:13:54 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C86876B0078; Tue, 3 May 2022 21:13:54 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id BABFB6B0071 for ; Tue, 3 May 2022 21:13:54 -0400 (EDT) Received: from smtpin30.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 91B4B204FC for ; Wed, 4 May 2022 01:13:54 +0000 (UTC) X-FDA: 79426288788.30.372F0E5 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by imf10.hostedemail.com (Postfix) with ESMTP id 895D8C007E for ; Wed, 4 May 2022 01:13:38 +0000 (UTC) Received: from pps.filterd (m0246617.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 243L4Hl0018680; Wed, 4 May 2022 01:13:53 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=K+PxLWd+b/ySh0+LKvwuaq1AXYixHSY9W4j7RUhjs+Q=; b=ABgmNuG1ZoymVkkpjdIgBJFVKKE1NJspn9ag3Q26Ep4lXe1cLVd/3SbIbJ293O1uXNWn w110FkWinyAHBCQZ86eYGmLEWCD5ejE9AvsFwE7yL/6l/ln2I5PtnrAevmHbxEjxG1wT awARnDKq33On9FesiHOqbx2FxFo6Vzwevn+fwEliHD75im8MgmxqQWdQKcY/EBBonUff Rr0i3TsaqAErwfIix+h+hzkFcl51Yo3114eWqeVjfyNUa/UjiOAde42gGm38KaNEPLm4 GJfVqx+7pJRaOXAlcVHhnCUBh0+ROpvk53+fca6QnNIFqy5s7OwDyaasjhCyTZZGGOZb gw== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3frwnt74ge-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:13:52 +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 2441BRJP013094; Wed, 4 May 2022 01:13:51 GMT Received: from nam10-dm6-obe.outbound.protection.outlook.com (mail-dm6nam10lp2105.outbound.protection.outlook.com [104.47.58.105]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com with ESMTP id 3fsvbmv3ke-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:13:51 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=H7tFDccd57MIq+t2TNopnvuTQFkbQtfZ0bZnmX8DQ2uBZfxyCbr3suSmNpHqLAvkpUTBFNl4C0nyjZd+0XU+Z8Z5w1Ta2iqwyIr/OcwmgzTJtv8vdf0wYTCHJSdqulJO1riTdnvxjwHQCAnNFmBvWyoo2B4H6JA7hVj7kevaT7qH6rYl72irwaa5SWoh1P9u76fxReSHFP+NGaMHDaDtuKDs3pmcxjfcrH7Asa1aMffZoQ/ILH38xp33ltc2nk4OgFQ7B5kCm28vlz7Wu3Lt2S2g1Yl1MdWhUHYqZtghExcUgAaLBSMYGPEL/udT+OkJAKyvTlyp2Fzz6NvQnaI1+Q== 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=K+PxLWd+b/ySh0+LKvwuaq1AXYixHSY9W4j7RUhjs+Q=; b=W0ACyDE83AASQsSwEIyPs+t8mAi85POgO5oshV0G5vQbT9VTN9G7HXSGik/l7+7uX+Hb15ugbSEp0UdmqWn6ZZCFWSxCbm7rUdikjHia0S8kh3FfSiwhajU4IiaVKoTWTKS4zXK+JyG28ThYr6SbmOW8GrMxxZreaU5Yx3Wsyne+cVMLn4zRmJKd4wFrwC4SA1+jh9D32UTBwSDitr82SjZRvRDd6DlSCRuA88wi1cfzRnDlhvec93GdFOwmlIXXHG7QvoAO783EsAQpDxilyHEBewq9TcuqmmAv0T0yVIBtey6nVh4SG7zJgXfahX8s13rrNqBh3fhWvvLm25Ii7g== 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=K+PxLWd+b/ySh0+LKvwuaq1AXYixHSY9W4j7RUhjs+Q=; b=mj4LqT3R9oLWZQXXmoZOKGqyhF4zglRMB9nLndSkGFaxppOvSr1K3d41A4LdiK3f5zIXr9cA0dTvLp3HS/iHbO3V8NPsQNZUEOdEq6JXOIHeU7fnLRxUaJ0kMDkPUDa1hEk+uQn+u35qbEom3kXZkHm88ICiTYJaP7FW9TkX0Rs= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by PH7PR10MB5830.namprd10.prod.outlook.com (2603:10b6:510:127::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5206.24; Wed, 4 May 2022 01:13:49 +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.5206.024; Wed, 4 May 2022 01:13:49 +0000 From: Liam Howlett To: "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton Subject: [PATCH v9 16/69] proc: remove VMA rbtree use from nommu Thread-Topic: [PATCH v9 16/69] proc: remove VMA rbtree use from nommu Thread-Index: AQHYX1Q11b3lP4PU/0O+Ik1X3e8Ukw== Date: Wed, 4 May 2022 01:13:49 +0000 Message-ID: <20220504011345.662299-1-Liam.Howlett@oracle.com> References: <20220504002554.654642-1-Liam.Howlett@oracle.com> In-Reply-To: <20220504002554.654642-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: 31c3b192-91bc-4826-d2ad-08da2d6b585f x-ms-traffictypediagnostic: PH7PR10MB5830:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: Oj3yumaeWRlZdyUztu8z7bYLKkGZf3O0L6As4yS8FcANAbT/gzZmfPMpYTFZXvwAgvOu61Iqr7IURMmvlXnZL07Cop3Tp3s5j7azBtOxjZy7YeJ92+dENZdcMq5gDqGY2QWnKZ6Tho0eXwHs4C4AGx8eVKSnL/nmMiLFcaJuPrbjvvTng1BOs6yl/LpDpRcntCa2P6ekZ30xauviG47C8lt7WAIP8b4mHptS5yGHkv2GDJjUCTeMdeDqyEaFiqhTWLQVXJ54d33Eq5Ln+aU2VdVqScWpSxHaQcjGN82uA2Pk/fbEY1eSjXvL4Wbg7RbZ2kBU8VFN2NymvPG0UA2MUMWvCUvHB264LBlrXLe1Vu3pgGNLg24THX8sKxrDTpcUOrl6wjYu3ySlPBfEdTFSjpBzqfHVcYDl1+1qY4EdTWtMSgD6PM1ZboGz8E+rTokiVnY0oEmfOksx00AE255apBfOlbm5rz44rEvNpgQC2h8HnmK0dukeI/9LbM2U9KUwEoq3Kp7Z74V5tL0tkJc/GlH803cj6InD8E3XqYFF5vs2YmZCv+w4G7tEX59T8Un7d/kedBYeXaQ/lOVNxoj7p58gz9jgt79FsbwzmHYwLQ84pV01K4qca0IzkcsA8Q8MIIeCCemtkL9GgugDInGenoe6LnALTCh2QeZxJLSLrMLC1ZxV9KKM/SG2x5OpAPTYqNhWFUunfBetZJYolLqaUg== 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)(86362001)(71200400001)(83380400001)(38100700002)(38070700005)(122000001)(316002)(110136005)(44832011)(2906002)(8676002)(5660300002)(64756008)(66476007)(36756003)(8936002)(91956017)(66556008)(2616005)(66446008)(66946007)(76116006)(1076003)(186003)(6512007)(6486002)(508600001)(26005)(6506007);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?XNPQ/dDDQPlgmh8A88P8jjc?= =?iso-8859-1?q?3ki4CNhwpBCXjxq78flNUJhsAkpkeLnHTOLTSBl3+MZ3bp9mbsfD3SLQZHkW?= =?iso-8859-1?q?b5d/9JGHQkwV3GwHHNdJwHUB5RdUuMPk7SJHzjE0iydzymq101P/EzObDsKs?= =?iso-8859-1?q?G+2g1xpCYJgdXVVFqNBFQY5Z9/vDjrP3suAAlM+VGS5DDPk3KbfIqPX9uRLb?= =?iso-8859-1?q?rTmwVXvJA65VK+RvNP5YCdLnPRVU/EPFDFTBjDdmb5Zv/kkGquUC6k31qPPp?= =?iso-8859-1?q?ykySUsAkuT/EcmsL1gRz4kKSEFTbPuCo85LuKtKqadK9u18m9c8RrncbKaBk?= =?iso-8859-1?q?h+0CR16GKId2yQ/8o926Y1/LhpJFp7QQqFaAmKAL15wFPuXMiXJeMxS7AAYT?= =?iso-8859-1?q?F70CJGqp90EYRdqYL8LEpLjDoin9FQd3UVXRYWKkyGqy0MbyqyJhicnBecYX?= =?iso-8859-1?q?9RB5EIa/XmQIz0XF3Ck1t+ma0eB+qEgocXkOpExDT2YkP2C78qHgQIDoIFhP?= =?iso-8859-1?q?Adi2D2XbKqyX/FyZvMHB1En3HzHWfRDZS6wHgMi/egcDt0vTkFKl2kaYyccb?= =?iso-8859-1?q?l78HuocZQX/pw9RpL5/XhGhp58eKU76tGK7L/BoUiCjnRtWC1FGYQ33Z3/aH?= =?iso-8859-1?q?cepL1+6hvbpTRVO3n/HYsdldeDZy4KKqdWTJvZhn29Kz0fXFOnnjItXq6q7h?= =?iso-8859-1?q?kfqmZQr9dCwcGyTv89CfDNisljAdHhS7X3sgU/rcZ794SN4VlmjaWdSiCa83?= =?iso-8859-1?q?/fs3IyOSrBD/C1MCFITZdmuAaVy95Is677Asj9qdYmCYElJs/5VTELZLqkkd?= =?iso-8859-1?q?LAGA2BUOWhqBykKD3bwB02Ro5lUdn2euIgW1g0T/4cjJK7M8DCFWnquW+dwk?= =?iso-8859-1?q?T0VYOz4mK2OrFJ8OSsOZbvthWqm9fbCSx7r3AMeQmrbY4On7qWxp6kDhs8VB?= =?iso-8859-1?q?eK+5XJQHNNPh6pYYmZAQq62HQ/1a7X2eDusvkNJ48SHrS3IVXpsA7OyVocWp?= =?iso-8859-1?q?q2WQS9fvk5ewy1yho86hYRygauk1nP+msq5ZZstdCZirvXIFxQCR9KiVA+Qv?= =?iso-8859-1?q?0CdFMJWmRbZG8kN+UpGjKjv+MuC66+kUCyqRtwJbKn4hI4GMUbsZP1Wke6m9?= =?iso-8859-1?q?7bCcUCck1y5kMe4L9kcSu0Y9ql4Y+3FiP/q/hk1yWdTNkzCGonBZBxQNFUNc?= =?iso-8859-1?q?ak+2hSKDA5GQZbkK9sZ7wWLtQQpjVpEhf0ytZeDWv2HYFBIBAZ509WpR7mly?= =?iso-8859-1?q?USk1H7SWskRnhGaZdJ714N7UAQ/eknPf1PG/aA/hK5fNn31jmLQNv+H3Wmju?= =?iso-8859-1?q?Z5RIN48QGJJTt46y2MPkYvaxICxCGPKoDQN5ogHihDsXXEPQbqeNwhTd4ohl?= =?iso-8859-1?q?Tsgq8WVmaBW4F+DjQyaHVfADB4ANtrzEziU+5Cl5HZr44e8s7j9CJf1pGf9Q?= =?iso-8859-1?q?Paytt25PJcGdp+LxqA2O5KSj30yCMe0aJtuvjkgQ338Wz+BD1TbseE9VsulI?= =?iso-8859-1?q?tAkvl0vti+unG8MswFCBDLus5rGsSu6BrgjlmDw6+btt7Q7x3abJYz3SREmZ?= =?iso-8859-1?q?TCmiNqszGDKFWE5VIvEnZpwUaEXz6pKNykPH3VXnJeQioQEzDdGy9LllUIja?= =?iso-8859-1?q?OpAo9C0Ew1SeUN8qJ15nTt13oR+AC+MqKL6nyihGKsQ1TIq9URDB8+mmx6Cn?= =?iso-8859-1?q?N0r1bMyqfoh3uc8e/yBCnzIaq4mJZxwJWFoowvh6+fDsmYs/PnaJ+e8N7XaY?= =?iso-8859-1?q?r7MYPQOjs354RNnl5dQSwA+WRfAXkaW3n/5J87aaQtNxVBJxACjyJACXTKVg?= =?iso-8859-1?q?jhB7GB2I=3D?= 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: 31c3b192-91bc-4826-d2ad-08da2d6b585f X-MS-Exchange-CrossTenant-originalarrivaltime: 04 May 2022 01:13:49.3303 (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: WfrUDSofeG6IYlSjhrM0LofklkBWbdWP0AfiOQz4S5MaDRHSh/B92zRZseu0P6JdgxcU7qKctehgwjnjCyk4lw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR10MB5830 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.486,18.0.858 definitions=2022-05-03_10:2022-05-02,2022-05-03 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 bulkscore=0 spamscore=0 malwarescore=0 adultscore=0 suspectscore=0 mlxscore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2205040006 X-Proofpoint-ORIG-GUID: JO50EmVZCEcuTqXhJ4qbnLmIh5mfEw7H X-Proofpoint-GUID: JO50EmVZCEcuTqXhJ4qbnLmIh5mfEw7H X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: 895D8C007E Authentication-Results: imf10.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2021-07-09 header.b=ABgmNuG1; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=mj4LqT3R; spf=none (imf10.hostedemail.com: domain of liam.howlett@oracle.com has no SPF policy when checking 205.220.165.32) smtp.mailfrom=liam.howlett@oracle.com; dmarc=pass (policy=none) header.from=oracle.com X-Rspam-User: X-Stat-Signature: k193osqadef8rubibtn7yah5mc9jbhqf X-HE-Tag: 1651626818-463657 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: From: "Matthew Wilcox (Oracle)" These users of the rbtree should probably have been walks of the linked list, but convert them to use walks of the maple tree. Signed-off-by: Matthew Wilcox (Oracle) Signed-off-by: Liam R. Howlett Acked-by: Vlastimil Babka --- fs/proc/task_nommu.c | 45 +++++++++++++++++++++----------------------- 1 file changed, 21 insertions(+), 24 deletions(-) diff --git a/fs/proc/task_nommu.c b/fs/proc/task_nommu.c index a6d21fc0033c..2fd06f52b6a4 100644 --- a/fs/proc/task_nommu.c +++ b/fs/proc/task_nommu.c @@ -20,15 +20,13 @@ */ void task_mem(struct seq_file *m, struct mm_struct *mm) { + VMA_ITERATOR(vmi, mm, 0); struct vm_area_struct *vma; struct vm_region *region; - struct rb_node *p; unsigned long bytes = 0, sbytes = 0, slack = 0, size; - - mmap_read_lock(mm); - for (p = rb_first(&mm->mm_rb); p; p = rb_next(p)) { - vma = rb_entry(p, struct vm_area_struct, vm_rb); + mmap_read_lock(mm); + for_each_vma(vmi, vma) { bytes += kobjsize(vma); region = vma->vm_region; @@ -82,15 +80,13 @@ void task_mem(struct seq_file *m, struct mm_struct *mm) unsigned long task_vsize(struct mm_struct *mm) { + VMA_ITERATOR(vmi, mm, 0); struct vm_area_struct *vma; - struct rb_node *p; unsigned long vsize = 0; mmap_read_lock(mm); - for (p = rb_first(&mm->mm_rb); p; p = rb_next(p)) { - vma = rb_entry(p, struct vm_area_struct, vm_rb); + for_each_vma(vmi, vma) vsize += vma->vm_end - vma->vm_start; - } mmap_read_unlock(mm); return vsize; } @@ -99,14 +95,13 @@ unsigned long task_statm(struct mm_struct *mm, unsigned long *shared, unsigned long *text, unsigned long *data, unsigned long *resident) { + VMA_ITERATOR(vmi, mm, 0); struct vm_area_struct *vma; struct vm_region *region; - struct rb_node *p; unsigned long size = kobjsize(mm); mmap_read_lock(mm); - for (p = rb_first(&mm->mm_rb); p; p = rb_next(p)) { - vma = rb_entry(p, struct vm_area_struct, vm_rb); + for_each_vma(vmi, vma) { size += kobjsize(vma); region = vma->vm_region; if (region) { @@ -190,17 +185,19 @@ static int nommu_vma_show(struct seq_file *m, struct vm_area_struct *vma) */ static int show_map(struct seq_file *m, void *_p) { - struct rb_node *p = _p; - - return nommu_vma_show(m, rb_entry(p, struct vm_area_struct, vm_rb)); + return nommu_vma_show(m, _p); } static void *m_start(struct seq_file *m, loff_t *pos) { struct proc_maps_private *priv = m->private; struct mm_struct *mm; - struct rb_node *p; - loff_t n = *pos; + struct vm_area_struct *vma; + unsigned long addr = *pos; + + /* See m_next(). Zero at the start or after lseek. */ + if (addr == -1UL) + return NULL; /* pin the task and mm whilst we play with them */ priv->task = get_proc_task(priv->inode); @@ -216,10 +213,10 @@ static void *m_start(struct seq_file *m, loff_t *pos) return ERR_PTR(-EINTR); } - /* start from the Nth VMA */ - for (p = rb_first(&mm->mm_rb); p; p = rb_next(p)) - if (n-- == 0) - return p; + /* start the next element from addr */ + vma = find_vma(mm, addr); + if (vma) + return vma; mmap_read_unlock(mm); mmput(mm); @@ -242,10 +239,10 @@ static void m_stop(struct seq_file *m, void *_vml) static void *m_next(struct seq_file *m, void *_p, loff_t *pos) { - struct rb_node *p = _p; + struct vm_area_struct *vma = _p; - (*pos)++; - return p ? rb_next(p) : NULL; + *pos = vma->vm_end; + return find_vma(vma->vm_mm, vma->vm_end); } static const struct seq_operations proc_pid_maps_ops = { From patchwork Wed May 4 01:13:49 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 12836632 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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 081A1C4332F for ; Wed, 4 May 2022 01:13:57 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 905A68D0001; Tue, 3 May 2022 21:13:56 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 877798D0002; Tue, 3 May 2022 21:13:56 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 5D0A78D0001; Tue, 3 May 2022 21:13:56 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 4AC296B0075 for ; Tue, 3 May 2022 21:13:56 -0400 (EDT) Received: from smtpin28.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay12.hostedemail.com (Postfix) with ESMTP id 15783120343 for ; Wed, 4 May 2022 01:13:56 +0000 (UTC) X-FDA: 79426288872.28.BA1D802 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by imf19.hostedemail.com (Postfix) with ESMTP id 1B4D31A0075 for ; Wed, 4 May 2022 01:13:48 +0000 (UTC) Received: from pps.filterd (m0246617.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 243LFfws018740; Wed, 4 May 2022 01:13:54 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=eFbww4WCQ6vhmu9GLYR/uvcDIIVe5ofbcmqQ+FW24Qk=; b=ROoWVgjojk6vDTJgzjWZV7Ny/iV3OGJpImZb8BibtN0kWPvK98ctzZUs+DFs7r5UOrbA XzLO/sRjsdK8F8Dax5Ro44lFogPeXn0jrfiyhgshftGnv74P8uyvmgXN1uartrxli7Q6 JNKJKPjNB+3L4s7n5Cj7YSpfhaeIjGm82jnY4euTfyXzvAjk2AZNPaLIHz8q8o67zA0w svspKZ6sV1YMwTUrswWLTYAH6t4iYE1hGSnzZ/+Yo/mHQJLpBvQ/t2o9bOR6qhm7dpej PBZkRXEVe29mwLg7KCkwqv+Oh6R1kit/FEUJuYbQ9AvIf0Sg67xFeqQ5Opm3utFdRP0n fA== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3frwnt74gf-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:13:53 +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 2441BRJR013094; Wed, 4 May 2022 01:13:52 GMT Received: from nam10-dm6-obe.outbound.protection.outlook.com (mail-dm6nam10lp2105.outbound.protection.outlook.com [104.47.58.105]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com with ESMTP id 3fsvbmv3ke-3 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:13:51 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=T60q5YCUxUinWTn8FKPrj7qrnw1O1cU9ofwPXSBHZxWuaTwlAEMXbeRHwO60hFXQlOnZdk9viRvOYj/NuBcfA8adz0jntkxU3qXkSJEJAw7RZaQKauOrNzKMdn3rJ77/SthjDGB3eEyp5/eU1acVFd7jTUNEfZ0cx5Hme5olaJJdioIdwGMusULYWcUOBbI0cw9IHSIXKb0XyXBSMOqBWdaiEm4UKjTc6K7XFg1Bu5kwz3Q8mbjrGeBHc63fDg5uNe7oXOetlnMPU5REJPnPTO1TzTt8QwpjNiOgM3BC3FO9L8CkzbA/UCb/VHDVHObmH9VCzn+uUOoonoxpwGZgeA== 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=eFbww4WCQ6vhmu9GLYR/uvcDIIVe5ofbcmqQ+FW24Qk=; b=kUHWpSieT1SsH5aqIK5L1qj7ODKavDM4TLHhvfHm7TFSekU8WZBcQ7pvqDrDL1k3J8kUHkYiLeIB4WabLIwF/A4Sf80BSwG49ZkNeTNLW6nzTOpZQ8JqU6wThJUjG/pGmRiGVWiqQoJFm1TvNZ4K2IPjLbxkKStErqu4wVRMmLs4KHK+8Tzb/45FvMk7KgKjQeT8vKIW4NJsbv1Qr0Bu1VlcMcwJnyMGxwCSo4UnthptIN9hVVnm2bkpu5+y7Wsyl4aNoU2DST2sSAhOIxhlJfEamCeeOKfwO9Ikrgh+z4kFj4BwP5+4OUnL3g9IdgJIzt0JA5Qb/Z5akGHXijlPMQ== 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=eFbww4WCQ6vhmu9GLYR/uvcDIIVe5ofbcmqQ+FW24Qk=; b=SB/6hiJw0c+/zz3kTTZurjfwjtQ2Fk0niuPowm9Bszv/UzZfu1knKm0by1NC98HelmD58ZYKnuQTvmxp3cezX3ENs2f+8ABqmEtaWp+BCw1yiPDfjj7ikJ36Yy6fNBIv/TpCz57TkfB9rmv4oWiEMd1l5h/cgCYYJGG94ATLt24= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by PH7PR10MB5830.namprd10.prod.outlook.com (2603:10b6:510:127::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5206.24; Wed, 4 May 2022 01:13:49 +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.5206.024; Wed, 4 May 2022 01:13:49 +0000 From: Liam Howlett To: "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton Subject: [PATCH v9 17/69] mm: remove rb tree. Thread-Topic: [PATCH v9 17/69] mm: remove rb tree. Thread-Index: AQHYX1Q26BIRuzBKLUmyulChwAo+Lg== Date: Wed, 4 May 2022 01:13:49 +0000 Message-ID: <20220504011345.662299-2-Liam.Howlett@oracle.com> References: <20220504002554.654642-1-Liam.Howlett@oracle.com> <20220504011345.662299-1-Liam.Howlett@oracle.com> In-Reply-To: <20220504011345.662299-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: e6778296-16f4-4936-cec5-08da2d6b589d x-ms-traffictypediagnostic: PH7PR10MB5830:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: g3DhD8YJjCi/iOKV5IALQy3jhEIAEZ+yvwwjvuz27CC/Dd81gcS6gEr/41QTan18Xd3I4Y7En3ye5o49FM3p5mGnwCeCXa8Djg48pshd1kHhEe9VaobKBxvGvEMvmJ6wsMqsMi2tvcDCKenujLOqqaxpAwS15dJiK6nAjx26iQqHnl5m7ZHerYI492Au/HulLn5qN49IYGu2VjrgRZQR9oKcyi9ciGuNdtOzBUPBVh64RuKEV6z6kUC9BrrQf2EqYUealXhWOO08gxxvZ1yJvdK+CVWLEvC0nINBSD7sbl/euJcJhL8AFF6HAKOqxQGKao5b8jJMZcwsGxkXtHPkjx3zQjzRcRnvV6S2+ETCcjVIHbQoEl8ekNMoH6FkrYk77KuNBxWZJiYlnsKa/VBgot16DEOgyRL0uRe7nlo291HWR+5h/uLp/KDZ3KMJSHj7G5Nc5dyNoB6NJbLrKTNqLlLcNqFR6OhIOyjrut5H2Wx4wyM36CZWLWh4wV5W3arXRtBkOS78YIq/c1JL8P9AdxJ09I3uhglfg5C6kd79/nT3ajfXBo/6hdgPpWpAVfRLHrkMmXrIQDBQjNuCmT5o2R9z0GiHXBrHt1v/umkgLjzT7RJficbQTjAFFWpU8aDZkjnECzceOpxRfG29VxsDlcyPjtqOasf98SrxeXgSlx3MuE1uEeYM7zAyC8Ju/TI4CO3OZxbBk/UKO8wqg3YHqA== 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)(86362001)(71200400001)(83380400001)(38100700002)(38070700005)(122000001)(316002)(110136005)(44832011)(2906002)(8676002)(5660300002)(64756008)(66476007)(36756003)(8936002)(91956017)(30864003)(66556008)(2616005)(66446008)(66946007)(76116006)(1076003)(186003)(6512007)(6486002)(508600001)(26005)(6506007)(579004)(559001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?1Yhhn4RZGfe3j6JiqFoeogv?= =?iso-8859-1?q?ZrWVSM4NidaUOe7qLXgQ634dVP1Ym3v7O3rQVCI8yO1XQUcRBkq91IAA4JuJ?= =?iso-8859-1?q?hTNc0b3LcdsKqnNDRfWhqJfKDUv3Tyw/hBLht3UdsubL8DAlH+mZeepbMbWG?= =?iso-8859-1?q?Mw3TfWedmajbfbyqeXJuEVahj+Fdrb9nDNsle5C3lgqMtdccvM3gcPGRjAg1?= =?iso-8859-1?q?5Ia0iNYyPXZemEQUT2CgrnF3I854SL575yXUyfZ7KcOgT4m9J+zA1+zJwROj?= =?iso-8859-1?q?DFBkW6TgBuUKqLtKBMhwklOgaUflGk0ZzttSsbx+geY3rlJ06L5esqQMWhre?= =?iso-8859-1?q?PFcvM/fldn1Rlp93us9OC8TJsy4JCrD8oCbgFYojVahE7W1+qOs2IUsrwVmM?= =?iso-8859-1?q?KaU3UzRip6jL9QhVB+sBIYhDL8sgw8Q548aUe9RYUphAWuUGeSrwFwkSOFc5?= =?iso-8859-1?q?1ElmK1BNH4W78+4jOvL8ghMk3T9clCS/Lz09j8N5exZVjqXfqLIBvYe/ackd?= =?iso-8859-1?q?chqzHt/s9znN9T8epthT4g8vRcG8W+oE+DTpRotGmB9ltTiZnIkH6+X6lWt2?= =?iso-8859-1?q?VOXFqSZo8HJUm0NcmlRW7yfSF1LrqLTXHi+kwMAOuiQKvMc3J4tDrJ84TEo9?= =?iso-8859-1?q?1NR9YomfLSGfOBWDKLi6D7tnTtE3YPpSVx3KZguP7czYoEKlT+2UNctltzhl?= =?iso-8859-1?q?rEv0SF5l/jcbPlMXxRFap0vbYPyCkWODn53m0yElB4YfDTQ+jl8wAxfJLHPj?= =?iso-8859-1?q?ig04szBoqyMpth5HGIhxy/O1HTQyzOglGwaFoK2d2HcLOrzNf3MqBa24ZgFb?= =?iso-8859-1?q?gxz2alXgrGFiNnI48YkExZtLUonH3VwKbF0l7qLWFW3S+aQS9SqDkrA3x2FE?= =?iso-8859-1?q?2bsN/Crlj25LY4nRHLuN7tlHfVsAC+1p96a4SGxEf//lbiTO15xa16DyeRnm?= =?iso-8859-1?q?2PVk6RwjXGE291LQcnJdCzmxbG9RNoaqGVT9qYo3lb5eGOQhlTKwUrcPe7NR?= =?iso-8859-1?q?cvI8v733LVaDtPfzlFCffyKYV/6W6MnZqXI8/1gherzKGyy3gw44jMBwO1wM?= =?iso-8859-1?q?RPhEV9b4qtjw+k0PvyU/gsLUjqM6Xcbw4MwhFrcuURmlyrNONQS7ipwiV1W6?= =?iso-8859-1?q?NSwI0bG2LdHq2demQguRF3MjivfmWkwNeRR0znEwBQm28MNNVZnxLAaGQeHS?= =?iso-8859-1?q?pDpmkbCPsKkGqvwoR1Ojn4T/2Dyrs9V9AUZcTt7V/el39h5FAyi8azq+Epm5?= =?iso-8859-1?q?BudE3nqFrOoHvaWHVRWRTemVRgZf6nW4lrwAowvNQHqg9TnexU0vP9he1oWQ?= =?iso-8859-1?q?jWNIp3vhg70k3ScGnwkwfKGAttgzUIvFSEL2DUmr6YyskBVBiYxVPN8IQ5Un?= =?iso-8859-1?q?Oxl7cXohkq0i7No1Dq1PWHdZ8xYyO0/CA1ZZzaegpS7oUJo064lGPBHFrQ9v?= =?iso-8859-1?q?UBfKC+iA9pzW/6WgVHenLQ9rEP7cK8wazgWdgka8QUzROoXp9zePHd4S2afC?= =?iso-8859-1?q?/w11DyuPJcLSpp741lIOTLHyhO3udy4VGj28CLNfdNRj0ymFnNRTVPR8osno?= =?iso-8859-1?q?QLlVGzVnAdJCD10YrNgo6VfN8nNY5kUWFF1Lm1CyreusBusd8JA46GRTmI7D?= =?iso-8859-1?q?NNvYsQssO6WClGhcCm4/vn5HtVVs1KJBK8erBq75kKj9NjMiLaDSzQnCWlg4?= =?iso-8859-1?q?0I4EaSMpq5UjdSe7xQ2LJqYPCUkR97G3fschfQMZ008Smhuj4h4ppnjA4l6e?= =?iso-8859-1?q?4qSYaEL9zNUl4GUQe8bGaCAARcIrfA9NiKe56bfEWlSqQNG9udY55ztEbstc?= =?iso-8859-1?q?tuRjBAek=3D?= 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: e6778296-16f4-4936-cec5-08da2d6b589d X-MS-Exchange-CrossTenant-originalarrivaltime: 04 May 2022 01:13:49.7365 (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: QG3LdrVBZDFs3SA12hr9IK0v4P/qK7F7vPp0YqMySR8sR8EAHBLcciJ+w305HipRE+1IbF1d8oa1/n3QYtgjyA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR10MB5830 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.486,18.0.858 definitions=2022-05-03_10:2022-05-02,2022-05-03 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 bulkscore=0 spamscore=0 malwarescore=0 adultscore=0 suspectscore=0 mlxscore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2205040006 X-Proofpoint-ORIG-GUID: J5Rd3woP7iOS2MobzUmHrCdrgELC_WzM X-Proofpoint-GUID: J5Rd3woP7iOS2MobzUmHrCdrgELC_WzM X-Rspamd-Queue-Id: 1B4D31A0075 X-Stat-Signature: cbch3jd71fjkqpozpxcyrpu9zx1t9g1p Authentication-Results: imf19.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2021-07-09 header.b=ROoWVgjo; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b="SB/6hiJw"; 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.165.32) smtp.mailfrom=liam.howlett@oracle.com X-Rspam-User: X-Rspamd-Server: rspam08 X-HE-Tag: 1651626828-35866 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: From: "Liam R. Howlett" Remove the RB tree and start using the maple tree for vm_area_struct tracking. Drop validate_mm() calls in expand_upwards() and expand_downwards() as the lock is not held. Signed-off-by: Liam R. Howlett --- arch/x86/kernel/tboot.c | 1 - drivers/firmware/efi/efi.c | 1 - include/linux/mm.h | 2 - include/linux/mm_types.h | 14 - kernel/fork.c | 8 - mm/init-mm.c | 2 - mm/mmap.c | 509 ++++++++----------------------------- mm/nommu.c | 87 ++----- mm/util.c | 10 +- 9 files changed, 144 insertions(+), 490 deletions(-) diff --git a/arch/x86/kernel/tboot.c b/arch/x86/kernel/tboot.c index 859e8d2ea070..a8e3130890ea 100644 --- a/arch/x86/kernel/tboot.c +++ b/arch/x86/kernel/tboot.c @@ -97,7 +97,6 @@ void __init tboot_probe(void) static pgd_t *tboot_pg_dir; static struct mm_struct tboot_mm = { - .mm_rb = RB_ROOT, .mm_mt = MTREE_INIT_EXT(mm_mt, MM_MT_FLAGS, tboot_mm.mmap_lock), .pgd = swapper_pg_dir, .mm_users = ATOMIC_INIT(2), diff --git a/drivers/firmware/efi/efi.c b/drivers/firmware/efi/efi.c index 92a765d8d3b6..f18c256bbf89 100644 --- a/drivers/firmware/efi/efi.c +++ b/drivers/firmware/efi/efi.c @@ -54,7 +54,6 @@ static unsigned long __initdata mem_reserve = EFI_INVALID_TABLE_ADDR; static unsigned long __initdata rt_prop = EFI_INVALID_TABLE_ADDR; struct mm_struct efi_mm = { - .mm_rb = RB_ROOT, .mm_mt = MTREE_INIT_EXT(mm_mt, MM_MT_FLAGS, efi_mm.mmap_lock), .mm_users = ATOMIC_INIT(2), .mm_count = ATOMIC_INIT(1), diff --git a/include/linux/mm.h b/include/linux/mm.h index c259f15c58ac..d11673080c33 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -2660,8 +2660,6 @@ extern int __split_vma(struct mm_struct *, struct vm_area_struct *, extern int split_vma(struct mm_struct *, struct vm_area_struct *, unsigned long addr, int new_below); extern int insert_vm_struct(struct mm_struct *, struct vm_area_struct *); -extern void __vma_link_rb(struct mm_struct *, struct vm_area_struct *, - struct rb_node **, struct rb_node *); extern void unlink_file_vma(struct vm_area_struct *); extern struct vm_area_struct *copy_vma(struct vm_area_struct **, unsigned long addr, unsigned long len, pgoff_t pgoff, diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h index e3c7855fc622..50c53f370bf6 100644 --- a/include/linux/mm_types.h +++ b/include/linux/mm_types.h @@ -400,19 +400,6 @@ struct vm_area_struct { /* linked list of VM areas per task, sorted by address */ struct vm_area_struct *vm_next, *vm_prev; - - struct rb_node vm_rb; - - /* - * Largest free memory gap in bytes to the left of this VMA. - * Either between this VMA and vma->vm_prev, or between one of the - * VMAs below us in the VMA rbtree and its ->vm_prev. This helps - * get_unmapped_area find a free area of the right size. - */ - unsigned long rb_subtree_gap; - - /* Second cache line starts here. */ - struct mm_struct *vm_mm; /* The address space we belong to. */ /* @@ -478,7 +465,6 @@ struct mm_struct { struct { struct vm_area_struct *mmap; /* list of VMAs */ struct maple_tree mm_mt; - struct rb_root mm_rb; u64 vmacache_seqnum; /* per-thread vmacache */ #ifdef CONFIG_MMU unsigned long (*get_unmapped_area) (struct file *filp, diff --git a/kernel/fork.c b/kernel/fork.c index 79af6e908539..60783abc21c8 100644 --- a/kernel/fork.c +++ b/kernel/fork.c @@ -581,7 +581,6 @@ static __latent_entropy int dup_mmap(struct mm_struct *mm, struct mm_struct *oldmm) { struct vm_area_struct *mpnt, *tmp, *prev, **pprev; - struct rb_node **rb_link, *rb_parent; int retval; unsigned long charge = 0; MA_STATE(old_mas, &oldmm->mm_mt, 0, 0); @@ -608,8 +607,6 @@ static __latent_entropy int dup_mmap(struct mm_struct *mm, mm->exec_vm = oldmm->exec_vm; mm->stack_vm = oldmm->stack_vm; - rb_link = &mm->mm_rb.rb_node; - rb_parent = NULL; pprev = &mm->mmap; retval = ksm_fork(mm, oldmm); if (retval) @@ -703,10 +700,6 @@ static __latent_entropy int dup_mmap(struct mm_struct *mm, tmp->vm_prev = prev; prev = tmp; - __vma_link_rb(mm, tmp, rb_link, rb_parent); - rb_link = &tmp->vm_rb.rb_right; - rb_parent = &tmp->vm_rb; - /* Link the vma into the MT */ mas.index = tmp->vm_start; mas.last = tmp->vm_end - 1; @@ -1124,7 +1117,6 @@ static struct mm_struct *mm_init(struct mm_struct *mm, struct task_struct *p, struct user_namespace *user_ns) { mm->mmap = NULL; - mm->mm_rb = RB_ROOT; mt_init_flags(&mm->mm_mt, MM_MT_FLAGS); mt_set_external_lock(&mm->mm_mt, &mm->mmap_lock); mm->vmacache_seqnum = 0; diff --git a/mm/init-mm.c b/mm/init-mm.c index b912b0f2eced..c9327abb771c 100644 --- a/mm/init-mm.c +++ b/mm/init-mm.c @@ -1,6 +1,5 @@ // SPDX-License-Identifier: GPL-2.0 #include -#include #include #include #include @@ -29,7 +28,6 @@ * and size this cpu_bitmask to NR_CPUS. */ struct mm_struct init_mm = { - .mm_rb = RB_ROOT, .mm_mt = MTREE_INIT_EXT(mm_mt, MM_MT_FLAGS, init_mm.mmap_lock), .pgd = swapper_pg_dir, .mm_users = ATOMIC_INIT(2), diff --git a/mm/mmap.c b/mm/mmap.c index ecdedf5191c0..44f9f4b5411e 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -39,7 +39,6 @@ #include #include #include -#include #include #include #include @@ -294,93 +293,6 @@ SYSCALL_DEFINE1(brk, unsigned long, brk) return origbrk; } -static inline unsigned long vma_compute_gap(struct vm_area_struct *vma) -{ - unsigned long gap, prev_end; - - /* - * Note: in the rare case of a VM_GROWSDOWN above a VM_GROWSUP, we - * allow two stack_guard_gaps between them here, and when choosing - * an unmapped area; whereas when expanding we only require one. - * That's a little inconsistent, but keeps the code here simpler. - */ - gap = vm_start_gap(vma); - if (vma->vm_prev) { - prev_end = vm_end_gap(vma->vm_prev); - if (gap > prev_end) - gap -= prev_end; - else - gap = 0; - } - return gap; -} - -#ifdef CONFIG_DEBUG_VM_RB -static unsigned long vma_compute_subtree_gap(struct vm_area_struct *vma) -{ - unsigned long max = vma_compute_gap(vma), subtree_gap; - if (vma->vm_rb.rb_left) { - subtree_gap = rb_entry(vma->vm_rb.rb_left, - struct vm_area_struct, vm_rb)->rb_subtree_gap; - if (subtree_gap > max) - max = subtree_gap; - } - if (vma->vm_rb.rb_right) { - subtree_gap = rb_entry(vma->vm_rb.rb_right, - struct vm_area_struct, vm_rb)->rb_subtree_gap; - if (subtree_gap > max) - max = subtree_gap; - } - return max; -} - -static int browse_rb(struct mm_struct *mm) -{ - struct rb_root *root = &mm->mm_rb; - int i = 0, j, bug = 0; - struct rb_node *nd, *pn = NULL; - unsigned long prev = 0, pend = 0; - - for (nd = rb_first(root); nd; nd = rb_next(nd)) { - struct vm_area_struct *vma; - vma = rb_entry(nd, struct vm_area_struct, vm_rb); - if (vma->vm_start < prev) { - pr_emerg("vm_start %lx < prev %lx\n", - vma->vm_start, prev); - bug = 1; - } - if (vma->vm_start < pend) { - pr_emerg("vm_start %lx < pend %lx\n", - vma->vm_start, pend); - bug = 1; - } - if (vma->vm_start > vma->vm_end) { - pr_emerg("vm_start %lx > vm_end %lx\n", - vma->vm_start, vma->vm_end); - bug = 1; - } - spin_lock(&mm->page_table_lock); - if (vma->rb_subtree_gap != vma_compute_subtree_gap(vma)) { - pr_emerg("free gap %lx, correct %lx\n", - vma->rb_subtree_gap, - vma_compute_subtree_gap(vma)); - bug = 1; - } - spin_unlock(&mm->page_table_lock); - i++; - pn = nd; - prev = vma->vm_start; - pend = vma->vm_end; - } - j = 0; - for (nd = pn; nd; nd = rb_prev(nd)) - j++; - if (i != j) { - pr_emerg("backwards %d, forwards %d\n", j, i); - bug = 1; - } - return bug ? -1 : i; -} #if defined(CONFIG_DEBUG_VM_MAPLE_TREE) extern void mt_validate(struct maple_tree *mt); extern void mt_dump(const struct maple_tree *mt); @@ -406,19 +318,25 @@ static void validate_mm_mt(struct mm_struct *mm) (vma->vm_end - 1 != mas.last)) { pr_emerg("issue in %s\n", current->comm); dump_stack(); -#ifdef CONFIG_DEBUG_VM dump_vma(vma_mt); - pr_emerg("and next in rb\n"); + pr_emerg("and vm_next\n"); dump_vma(vma->vm_next); -#endif pr_emerg("mt piv: %px %lu - %lu\n", vma_mt, mas.index, mas.last); pr_emerg("mt vma: %px %lu - %lu\n", vma_mt, vma_mt->vm_start, vma_mt->vm_end); - pr_emerg("rb vma: %px %lu - %lu\n", vma, + if (vma->vm_prev) { + pr_emerg("ll prev: %px %lu - %lu\n", + vma->vm_prev, vma->vm_prev->vm_start, + vma->vm_prev->vm_end); + } + pr_emerg("ll vma: %px %lu - %lu\n", vma, vma->vm_start, vma->vm_end); - pr_emerg("rb->next = %px %lu - %lu\n", vma->vm_next, - vma->vm_next->vm_start, vma->vm_next->vm_end); + if (vma->vm_next) { + pr_emerg("ll next: %px %lu - %lu\n", + vma->vm_next, vma->vm_next->vm_start, + vma->vm_next->vm_end); + } mt_dump(mas.tree); if (vma_mt->vm_end != mas.last + 1) { @@ -442,21 +360,6 @@ static void validate_mm_mt(struct mm_struct *mm) VM_BUG_ON(vma); mt_validate(&mm->mm_mt); } -#else -#define validate_mm_mt(root) do { } while (0) -#endif -static void validate_mm_rb(struct rb_root *root, struct vm_area_struct *ignore) -{ - struct rb_node *nd; - - for (nd = rb_first(root); nd; nd = rb_next(nd)) { - struct vm_area_struct *vma; - vma = rb_entry(nd, struct vm_area_struct, vm_rb); - VM_BUG_ON_VMA(vma != ignore && - vma->rb_subtree_gap != vma_compute_subtree_gap(vma), - vma); - } -} static void validate_mm(struct mm_struct *mm) { @@ -465,7 +368,10 @@ static void validate_mm(struct mm_struct *mm) unsigned long highest_address = 0; struct vm_area_struct *vma = mm->mmap; + validate_mm_mt(mm); + while (vma) { +#ifdef CONFIG_DEBUG_VM_RB struct anon_vma *anon_vma = vma->anon_vma; struct anon_vma_chain *avc; @@ -475,6 +381,7 @@ static void validate_mm(struct mm_struct *mm) anon_vma_interval_tree_verify(avc); anon_vma_unlock_read(anon_vma); } +#endif highest_address = vm_end_gap(vma); vma = vma->vm_next; @@ -489,80 +396,13 @@ static void validate_mm(struct mm_struct *mm) mm->highest_vm_end, highest_address); bug = 1; } - i = browse_rb(mm); - if (i != mm->map_count) { - if (i != -1) - pr_emerg("map_count %d rb %d\n", mm->map_count, i); - bug = 1; - } VM_BUG_ON_MM(bug, mm); } -#else -#define validate_mm_rb(root, ignore) do { } while (0) + +#else /* !CONFIG_DEBUG_VM_MAPLE_TREE */ #define validate_mm_mt(root) do { } while (0) #define validate_mm(mm) do { } while (0) -#endif - -RB_DECLARE_CALLBACKS_MAX(static, vma_gap_callbacks, - struct vm_area_struct, vm_rb, - unsigned long, rb_subtree_gap, vma_compute_gap) - -/* - * Update augmented rbtree rb_subtree_gap values after vma->vm_start or - * vma->vm_prev->vm_end values changed, without modifying the vma's position - * in the rbtree. - */ -static void vma_gap_update(struct vm_area_struct *vma) -{ - /* - * As it turns out, RB_DECLARE_CALLBACKS_MAX() already created - * a callback function that does exactly what we want. - */ - vma_gap_callbacks_propagate(&vma->vm_rb, NULL); -} - -static inline void vma_rb_insert(struct vm_area_struct *vma, - struct rb_root *root) -{ - /* All rb_subtree_gap values must be consistent prior to insertion */ - validate_mm_rb(root, NULL); - - rb_insert_augmented(&vma->vm_rb, root, &vma_gap_callbacks); -} - -static void __vma_rb_erase(struct vm_area_struct *vma, struct rb_root *root) -{ - /* - * Note rb_erase_augmented is a fairly large inline function, - * so make sure we instantiate it only once with our desired - * augmented rbtree callbacks. - */ - rb_erase_augmented(&vma->vm_rb, root, &vma_gap_callbacks); -} - -static __always_inline void vma_rb_erase_ignore(struct vm_area_struct *vma, - struct rb_root *root, - struct vm_area_struct *ignore) -{ - /* - * All rb_subtree_gap values must be consistent prior to erase, - * with the possible exception of - * - * a. the "next" vma being erased if next->vm_start was reduced in - * __vma_adjust() -> __vma_unlink() - * b. the vma being erased in detach_vmas_to_be_unmapped() -> - * vma_rb_erase() - */ - validate_mm_rb(root, ignore); - - __vma_rb_erase(vma, root); -} - -static __always_inline void vma_rb_erase(struct vm_area_struct *vma, - struct rb_root *root) -{ - vma_rb_erase_ignore(vma, root, vma); -} +#endif /* CONFIG_DEBUG_VM_MAPLE_TREE */ /* * vma has some anon_vma assigned, and is already inserted on that @@ -596,39 +436,26 @@ anon_vma_interval_tree_post_update_vma(struct vm_area_struct *vma) anon_vma_interval_tree_insert(avc, &avc->anon_vma->rb_root); } -static int find_vma_links(struct mm_struct *mm, unsigned long addr, - unsigned long end, struct vm_area_struct **pprev, - struct rb_node ***rb_link, struct rb_node **rb_parent) +/* + * range_has_overlap() - Check the @start - @end range for overlapping VMAs and + * sets up a pointer to the previous VMA + * @mm: the mm struct + * @start: the start address of the range + * @end: the end address of the range + * @pprev: the pointer to the pointer of the previous VMA + * + * Returns: True if there is an overlapping VMA, false otherwise + */ +static inline +bool range_has_overlap(struct mm_struct *mm, unsigned long start, + unsigned long end, struct vm_area_struct **pprev) { - struct rb_node **__rb_link, *__rb_parent, *rb_prev; - - mmap_assert_locked(mm); - __rb_link = &mm->mm_rb.rb_node; - rb_prev = __rb_parent = NULL; - - while (*__rb_link) { - struct vm_area_struct *vma_tmp; + struct vm_area_struct *existing; - __rb_parent = *__rb_link; - vma_tmp = rb_entry(__rb_parent, struct vm_area_struct, vm_rb); - - if (vma_tmp->vm_end > addr) { - /* Fail if an existing vma overlaps the area */ - if (vma_tmp->vm_start < end) - return -ENOMEM; - __rb_link = &__rb_parent->rb_left; - } else { - rb_prev = __rb_parent; - __rb_link = &__rb_parent->rb_right; - } - } - - *pprev = NULL; - if (rb_prev) - *pprev = rb_entry(rb_prev, struct vm_area_struct, vm_rb); - *rb_link = __rb_link; - *rb_parent = __rb_parent; - return 0; + MA_STATE(mas, &mm->mm_mt, start, start); + existing = mas_find(&mas, end - 1); + *pprev = mas_prev(&mas, 0); + return existing ? true : false; } /* @@ -655,8 +482,6 @@ static inline struct vm_area_struct *__vma_next(struct mm_struct *mm, * @start: The start of the range. * @len: The length of the range. * @pprev: pointer to the pointer that will be set to previous vm_area_struct - * @rb_link: the rb_node - * @rb_parent: the parent rb_node * * Find all the vm_area_struct that overlap from @start to * @end and munmap them. Set @pprev to the previous vm_area_struct. @@ -665,14 +490,11 @@ static inline struct vm_area_struct *__vma_next(struct mm_struct *mm, */ static inline int munmap_vma_range(struct mm_struct *mm, unsigned long start, unsigned long len, - struct vm_area_struct **pprev, struct rb_node ***link, - struct rb_node **parent, struct list_head *uf) + struct vm_area_struct **pprev, struct list_head *uf) { - - while (find_vma_links(mm, start, start + len, pprev, link, parent)) + while (range_has_overlap(mm, start, start + len, pprev)) if (do_munmap(mm, start, len, uf)) return -ENOMEM; - return 0; } @@ -693,30 +515,6 @@ static unsigned long count_vma_pages_range(struct mm_struct *mm, return nr_pages; } -void __vma_link_rb(struct mm_struct *mm, struct vm_area_struct *vma, - struct rb_node **rb_link, struct rb_node *rb_parent) -{ - /* Update tracking information for the gap following the new vma. */ - if (vma->vm_next) - vma_gap_update(vma->vm_next); - else - mm->highest_vm_end = vm_end_gap(vma); - - /* - * vma->vm_prev wasn't known when we followed the rbtree to find the - * correct insertion point for that vma. As a result, we could not - * update the vma vm_rb parents rb_subtree_gap values on the way down. - * So, we first insert the vma with a zero rb_subtree_gap value - * (to be consistent with what we did on the way down), and then - * immediately update the gap to the correct value. Finally we - * rebalance the rbtree after all augmented values have been set. - */ - rb_link_node(&vma->vm_rb, rb_parent, rb_link); - vma->rb_subtree_gap = 0; - vma_gap_update(vma); - vma_rb_insert(vma, &mm->mm_rb); -} - static void __vma_link_file(struct vm_area_struct *vma) { struct file *file; @@ -784,18 +582,8 @@ static inline void vma_mas_szero(struct ma_state *mas, unsigned long start, mas_store_prealloc(mas, NULL); } -static void -__vma_link(struct mm_struct *mm, struct vm_area_struct *vma, - struct vm_area_struct *prev, struct rb_node **rb_link, - struct rb_node *rb_parent) -{ - __vma_link_list(mm, vma, prev); - __vma_link_rb(mm, vma, rb_link, rb_parent); -} - static int vma_link(struct mm_struct *mm, struct vm_area_struct *vma, - struct vm_area_struct *prev, struct rb_node **rb_link, - struct rb_node *rb_parent) + struct vm_area_struct *prev) { MA_STATE(mas, &mm->mm_mt, 0, 0); struct address_space *mapping = NULL; @@ -809,7 +597,7 @@ static int vma_link(struct mm_struct *mm, struct vm_area_struct *vma, } vma_mas_store(vma, &mas); - __vma_link(mm, vma, prev, rb_link, rb_parent); + __vma_link_list(mm, vma, prev); __vma_link_file(vma); if (mapping) @@ -822,34 +610,20 @@ static int vma_link(struct mm_struct *mm, struct vm_area_struct *vma, /* * Helper for vma_adjust() in the split_vma insert case: insert a vma into the - * mm's list and rbtree. It has already been inserted into the interval tree. + * mm's list and the mm tree. It has already been inserted into the interval tree. */ static void __insert_vm_struct(struct mm_struct *mm, struct ma_state *mas, struct vm_area_struct *vma) { struct vm_area_struct *prev; - struct rb_node **rb_link, *rb_parent; - - if (find_vma_links(mm, vma->vm_start, vma->vm_end, - &prev, &rb_link, &rb_parent)) - BUG(); + mas_set(mas, vma->vm_start); + prev = mas_prev(mas, 0); vma_mas_store(vma, mas); __vma_link_list(mm, vma, prev); - __vma_link_rb(mm, vma, rb_link, rb_parent); mm->map_count++; } -static __always_inline void __vma_unlink(struct mm_struct *mm, - struct vm_area_struct *vma, - struct vm_area_struct *ignore) -{ - vma_rb_erase_ignore(vma, &mm->mm_rb, ignore); - __vma_unlink_list(mm, vma); - /* Kill the cache */ - vmacache_invalidate(mm); -} - /* * We cannot adjust vm_start, vm_end, vm_pgoff fields of a vma that * is already present in an i_mmap tree without adjusting the tree. @@ -862,20 +636,18 @@ int __vma_adjust(struct vm_area_struct *vma, unsigned long start, struct vm_area_struct *expand) { struct mm_struct *mm = vma->vm_mm; - struct vm_area_struct *next = vma->vm_next, *orig_vma = vma; + struct vm_area_struct *next_next, *next = find_vma(mm, vma->vm_end); + struct vm_area_struct *orig_vma = vma; struct address_space *mapping = NULL; struct rb_root_cached *root = NULL; struct anon_vma *anon_vma = NULL; struct file *file = vma->vm_file; - bool start_changed = false, end_changed = false; + bool vma_changed = false; long adjust_next = 0; int remove_next = 0; MA_STATE(mas, &mm->mm_mt, 0, 0); struct vm_area_struct *exporter = NULL, *importer = NULL; - validate_mm(mm); - validate_mm_mt(mm); - if (next && !insert) { if (end >= next->vm_end) { /* @@ -905,8 +677,9 @@ int __vma_adjust(struct vm_area_struct *vma, unsigned long start, * remove_next == 1 is case 1 or 7. */ remove_next = 1 + (end > next->vm_end); + next_next = find_vma(mm, next->vm_end); VM_WARN_ON(remove_next == 2 && - end != next->vm_next->vm_end); + end != next_next->vm_end); /* trim end to next, for case 6 first pass */ end = next->vm_end; } @@ -1005,21 +778,21 @@ int __vma_adjust(struct vm_area_struct *vma, unsigned long start, } if (start != vma->vm_start) { - unsigned long old_start = vma->vm_start; + if (vma->vm_start < start) + vma_mas_szero(&mas, vma->vm_start, start); + vma_changed = true; vma->vm_start = start; - if (old_start < start) - vma_mas_szero(&mas, old_start, start); - start_changed = true; } if (end != vma->vm_end) { - unsigned long old_end = vma->vm_end; + if (vma->vm_end > end) + vma_mas_szero(&mas, end, vma->vm_end); + vma_changed = true; vma->vm_end = end; - if (old_end > end) - vma_mas_szero(&mas, end, old_end); - end_changed = true; + if (!next) + mm->highest_vm_end = vm_end_gap(vma); } - if (end_changed || start_changed) + if (vma_changed) vma_mas_store(vma, &mas); vma->vm_pgoff = pgoff; @@ -1037,25 +810,9 @@ int __vma_adjust(struct vm_area_struct *vma, unsigned long start, } if (remove_next) { - /* - * vma_merge has merged next into vma, and needs - * us to remove next before dropping the locks. - * Since we have expanded over this vma, the maple tree will - * have overwritten by storing the value - */ - if (remove_next != 3) - __vma_unlink(mm, next, next); - else - /* - * vma is not before next if they've been - * swapped. - * - * pre-swap() next->vm_start was reduced so - * tell validate_mm_rb to ignore pre-swap() - * "next" (which is stored in post-swap() - * "vma"). - */ - __vma_unlink(mm, next, vma); + __vma_unlink_list(mm, next); + /* Kill the cache */ + vmacache_invalidate(mm); if (file) __remove_shared_vm_struct(next, file, mapping); } else if (insert) { @@ -1065,15 +822,6 @@ int __vma_adjust(struct vm_area_struct *vma, unsigned long start, * (it may either follow vma or precede it). */ __insert_vm_struct(mm, &mas, insert); - } else { - if (start_changed) - vma_gap_update(vma); - if (end_changed) { - if (!next) - mm->highest_vm_end = vm_end_gap(vma); - else if (!adjust_next) - vma_gap_update(next); - } } if (anon_vma) { @@ -1100,7 +848,9 @@ int __vma_adjust(struct vm_area_struct *vma, unsigned long start, anon_vma_merge(vma, next); mm->map_count--; mpol_put(vma_policy(next)); + BUG_ON(vma->vm_end < next->vm_end); vm_area_free(next); + /* * In mprotect's case 6 (see comments on vma_merge), * we must remove another next too. It would clutter @@ -1113,7 +863,7 @@ int __vma_adjust(struct vm_area_struct *vma, unsigned long start, * "next->vm_prev->vm_end" changed and the * "vma->vm_next" gap must be updated. */ - next = vma->vm_next; + next = next_next; } else { /* * For the scope of the comment "next" and @@ -1128,13 +878,11 @@ int __vma_adjust(struct vm_area_struct *vma, unsigned long start, next = vma; } if (remove_next == 2) { + mas_reset(&mas); remove_next = 1; end = next->vm_end; goto again; - } - else if (next) - vma_gap_update(next); - else { + } else if (!next) { /* * If remove_next == 2 we obviously can't * reach this path. @@ -1161,8 +909,6 @@ int __vma_adjust(struct vm_area_struct *vma, unsigned long start, uprobe_mmap(insert); validate_mm(mm); - validate_mm_mt(mm); - return 0; } @@ -1315,7 +1061,6 @@ struct vm_area_struct *vma_merge(struct mm_struct *mm, struct vm_area_struct *area, *next; int err; - validate_mm_mt(mm); /* * We later require that vma->vm_flags == vm_flags, * so this tests vma->vm_flags & VM_SPECIAL, too. @@ -1391,7 +1136,6 @@ struct vm_area_struct *vma_merge(struct mm_struct *mm, khugepaged_enter_vma_merge(area, vm_flags); return area; } - validate_mm_mt(mm); return NULL; } @@ -1561,6 +1305,7 @@ unsigned long do_mmap(struct file *file, unsigned long addr, vm_flags_t vm_flags; int pkey = 0; + validate_mm(mm); *populate = 0; if (!len) @@ -1868,10 +1613,8 @@ unsigned long mmap_region(struct file *file, unsigned long addr, struct mm_struct *mm = current->mm; struct vm_area_struct *vma, *prev, *merge; int error; - struct rb_node **rb_link, *rb_parent; unsigned long charged = 0; - validate_mm_mt(mm); /* Check against address space limit. */ if (!may_expand_vm(mm, vm_flags, len >> PAGE_SHIFT)) { unsigned long nr_pages; @@ -1887,8 +1630,8 @@ unsigned long mmap_region(struct file *file, unsigned long addr, return -ENOMEM; } - /* Clear old maps, set up prev, rb_link, rb_parent, and uf */ - if (munmap_vma_range(mm, addr, len, &prev, &rb_link, &rb_parent, uf)) + /* Clear old maps, set up prev and uf */ + if (munmap_vma_range(mm, addr, len, &prev, uf)) return -ENOMEM; /* * Private writable mapping: check memory availability @@ -1986,7 +1729,7 @@ unsigned long mmap_region(struct file *file, unsigned long addr, goto free_vma; } - if (vma_link(mm, vma, prev, rb_link, rb_parent)) { + if (vma_link(mm, vma, prev)) { error = -ENOMEM; if (file) goto unmap_and_free_vma; @@ -2026,7 +1769,6 @@ unsigned long mmap_region(struct file *file, unsigned long addr, vma_set_page_prot(vma); - validate_mm_mt(mm); return addr; unmap_and_free_vma: @@ -2043,7 +1785,6 @@ unsigned long mmap_region(struct file *file, unsigned long addr, unacct_error: if (charged) vm_unacct_memory(charged); - validate_mm_mt(mm); return error; } @@ -2379,7 +2120,6 @@ int expand_upwards(struct vm_area_struct *vma, unsigned long address) int error = 0; MA_STATE(mas, &mm->mm_mt, 0, 0); - validate_mm_mt(mm); if (!(vma->vm_flags & VM_GROWSUP)) return -EFAULT; @@ -2431,15 +2171,13 @@ int expand_upwards(struct vm_area_struct *vma, unsigned long address) error = acct_stack_growth(vma, size, grow); if (!error) { /* - * vma_gap_update() doesn't support concurrent - * updates, but we only hold a shared mmap_lock - * lock here, so we need to protect against - * concurrent vma expansions. - * anon_vma_lock_write() doesn't help here, as - * we don't guarantee that all growable vmas - * in a mm share the same root anon vma. - * So, we reuse mm->page_table_lock to guard - * against concurrent vma expansions. + * We only hold a shared mmap_lock lock here, so + * we need to protect against concurrent vma + * expansions. anon_vma_lock_write() doesn't + * help here, as we don't guarantee that all + * growable vmas in a mm share the same root + * anon vma. So, we reuse mm->page_table_lock + * to guard against concurrent vma expansions. */ spin_lock(&mm->page_table_lock); if (vma->vm_flags & VM_LOCKED) @@ -2450,9 +2188,7 @@ int expand_upwards(struct vm_area_struct *vma, unsigned long address) /* Overwrite old entry in mtree. */ vma_mas_store(vma, &mas); anon_vma_interval_tree_post_update_vma(vma); - if (vma->vm_next) - vma_gap_update(vma->vm_next); - else + if (!vma->vm_next) mm->highest_vm_end = vm_end_gap(vma); spin_unlock(&mm->page_table_lock); @@ -2462,8 +2198,6 @@ int expand_upwards(struct vm_area_struct *vma, unsigned long address) } anon_vma_unlock_write(vma->anon_vma); khugepaged_enter_vma_merge(vma, vma->vm_flags); - validate_mm(mm); - validate_mm_mt(mm); return error; } #endif /* CONFIG_STACK_GROWSUP || CONFIG_IA64 */ @@ -2471,15 +2205,13 @@ int expand_upwards(struct vm_area_struct *vma, unsigned long address) /* * vma is the first one with address < vma->vm_start. Have to extend vma. */ -int expand_downwards(struct vm_area_struct *vma, - unsigned long address) +int expand_downwards(struct vm_area_struct *vma, unsigned long address) { struct mm_struct *mm = vma->vm_mm; struct vm_area_struct *prev; int error = 0; MA_STATE(mas, &mm->mm_mt, 0, 0); - validate_mm(mm); address &= PAGE_MASK; if (address < mmap_min_addr) return -EPERM; @@ -2521,15 +2253,13 @@ int expand_downwards(struct vm_area_struct *vma, error = acct_stack_growth(vma, size, grow); if (!error) { /* - * vma_gap_update() doesn't support concurrent - * updates, but we only hold a shared mmap_lock - * lock here, so we need to protect against - * concurrent vma expansions. - * anon_vma_lock_write() doesn't help here, as - * we don't guarantee that all growable vmas - * in a mm share the same root anon vma. - * So, we reuse mm->page_table_lock to guard - * against concurrent vma expansions. + * We only hold a shared mmap_lock lock here, so + * we need to protect against concurrent vma + * expansions. anon_vma_lock_write() doesn't + * help here, as we don't guarantee that all + * growable vmas in a mm share the same root + * anon vma. So, we reuse mm->page_table_lock + * to guard against concurrent vma expansions. */ spin_lock(&mm->page_table_lock); if (vma->vm_flags & VM_LOCKED) @@ -2541,7 +2271,6 @@ int expand_downwards(struct vm_area_struct *vma, /* Overwrite old entry in mtree. */ vma_mas_store(vma, &mas); anon_vma_interval_tree_post_update_vma(vma); - vma_gap_update(vma); spin_unlock(&mm->page_table_lock); perf_event_mmap(vma); @@ -2550,7 +2279,6 @@ int expand_downwards(struct vm_area_struct *vma, } anon_vma_unlock_write(vma->anon_vma); khugepaged_enter_vma_merge(vma, vma->vm_flags); - validate_mm(mm); return error; } @@ -2682,10 +2410,8 @@ detach_vmas_to_be_unmapped(struct mm_struct *mm, struct ma_state *mas, insertion_point = (prev ? &prev->vm_next : &mm->mmap); vma->vm_prev = NULL; - mas_set_range(mas, vma->vm_start, end - 1); - mas_store_prealloc(mas, NULL); + vma_mas_szero(mas, vma->vm_start, end); do { - vma_rb_erase(vma, &mm->mm_rb); if (vma->vm_flags & VM_LOCKED) mm->locked_vm -= vma_pages(vma); mm->map_count--; @@ -2693,10 +2419,9 @@ detach_vmas_to_be_unmapped(struct mm_struct *mm, struct ma_state *mas, vma = vma->vm_next; } while (vma && vma->vm_start < end); *insertion_point = vma; - if (vma) { + if (vma) vma->vm_prev = prev; - vma_gap_update(vma); - } else + else mm->highest_vm_end = prev ? vm_end_gap(prev) : 0; tail_vma->vm_next = NULL; @@ -2815,11 +2540,7 @@ int __do_munmap(struct mm_struct *mm, unsigned long start, size_t len, if (len == 0) return -EINVAL; - /* - * arch_unmap() might do unmaps itself. It must be called - * and finish any rbtree manipulation before this code - * runs and also starts to manipulate the rbtree. - */ + /* arch_unmap() might do unmaps itself. */ arch_unmap(mm, start, end); /* Find the first overlapping VMA where start < vma->vm_end */ @@ -2830,6 +2551,11 @@ int __do_munmap(struct mm_struct *mm, unsigned long start, size_t len, if (mas_preallocate(&mas, vma, GFP_KERNEL)) return -ENOMEM; prev = vma->vm_prev; + /* we have start < vma->vm_end */ + + /* if it doesn't overlap, we have nothing.. */ + if (vma->vm_start >= end) + return 0; /* * If we need to split any vma, do it now to save pain later. @@ -2890,6 +2616,8 @@ int __do_munmap(struct mm_struct *mm, unsigned long start, size_t len, /* Fix up all other VM information */ remove_vma_list(mm, vma); + + validate_mm(mm); return downgrade ? 1 : 0; map_count_exceeded: @@ -3028,11 +2756,11 @@ SYSCALL_DEFINE5(remap_file_pages, unsigned long, start, unsigned long, size, * anonymous maps. eventually we may be able to do some * brk-specific accounting here. */ -static int do_brk_flags(unsigned long addr, unsigned long len, unsigned long flags, struct list_head *uf) +static int do_brk_flags(unsigned long addr, unsigned long len, + unsigned long flags, struct list_head *uf) { struct mm_struct *mm = current->mm; struct vm_area_struct *vma, *prev; - struct rb_node **rb_link, *rb_parent; pgoff_t pgoff = addr >> PAGE_SHIFT; int error; unsigned long mapped_addr; @@ -3051,8 +2779,8 @@ static int do_brk_flags(unsigned long addr, unsigned long len, unsigned long fla if (error) return error; - /* Clear old maps, set up prev, rb_link, rb_parent, and uf */ - if (munmap_vma_range(mm, addr, len, &prev, &rb_link, &rb_parent, uf)) + /* Clear old maps, set up prev and uf */ + if (munmap_vma_range(mm, addr, len, &prev, uf)) return -ENOMEM; /* Check against address space limits *after* clearing old maps... */ @@ -3086,7 +2814,7 @@ static int do_brk_flags(unsigned long addr, unsigned long len, unsigned long fla vma->vm_pgoff = pgoff; vma->vm_flags = flags; vma->vm_page_prot = vm_get_page_prot(flags); - if(vma_link(mm, vma, prev, rb_link, rb_parent)) + if(vma_link(mm, vma, prev)) goto no_vma_link; out: @@ -3203,26 +2931,10 @@ void exit_mmap(struct mm_struct *mm) int insert_vm_struct(struct mm_struct *mm, struct vm_area_struct *vma) { struct vm_area_struct *prev; - struct rb_node **rb_link, *rb_parent; - unsigned long start = vma->vm_start; - struct vm_area_struct *overlap = NULL; - if (find_vma_links(mm, vma->vm_start, vma->vm_end, - &prev, &rb_link, &rb_parent)) + if (range_has_overlap(mm, vma->vm_start, vma->vm_end, &prev)) return -ENOMEM; - overlap = mt_find(&mm->mm_mt, &start, vma->vm_end - 1); - if (overlap) { - - pr_err("Found vma ending at %lu\n", start - 1); - pr_err("vma : %lu => %lu-%lu\n", (unsigned long)overlap, - overlap->vm_start, overlap->vm_end - 1); -#if defined(CONFIG_DEBUG_VM_MAPLE_TREE) - mt_dump(&mm->mm_mt); -#endif - BUG(); - } - if ((vma->vm_flags & VM_ACCOUNT) && security_vm_enough_memory_mm(mm, vma_pages(vma))) return -ENOMEM; @@ -3244,7 +2956,7 @@ int insert_vm_struct(struct mm_struct *mm, struct vm_area_struct *vma) vma->vm_pgoff = vma->vm_start >> PAGE_SHIFT; } - if (vma_link(mm, vma, prev, rb_link, rb_parent)) + if (vma_link(mm, vma, prev)) return -ENOMEM; return 0; @@ -3262,9 +2974,7 @@ struct vm_area_struct *copy_vma(struct vm_area_struct **vmap, unsigned long vma_start = vma->vm_start; struct mm_struct *mm = vma->vm_mm; struct vm_area_struct *new_vma, *prev; - struct rb_node **rb_link, *rb_parent; bool faulted_in_anon_vma = true; - unsigned long index = addr; validate_mm_mt(mm); /* @@ -3276,10 +2986,9 @@ struct vm_area_struct *copy_vma(struct vm_area_struct **vmap, faulted_in_anon_vma = false; } - if (find_vma_links(mm, addr, addr + len, &prev, &rb_link, &rb_parent)) + if (range_has_overlap(mm, addr, addr + len, &prev)) return NULL; /* should never get here */ - if (mt_find(&mm->mm_mt, &index, addr+len - 1)) - BUG(); + new_vma = vma_merge(mm, prev, addr, addr + len, vma->vm_flags, vma->anon_vma, vma->vm_file, pgoff, vma_policy(vma), vma->vm_userfaultfd_ctx, anon_vma_name(vma)); @@ -3320,12 +3029,16 @@ struct vm_area_struct *copy_vma(struct vm_area_struct **vmap, get_file(new_vma->vm_file); if (new_vma->vm_ops && new_vma->vm_ops->open) new_vma->vm_ops->open(new_vma); - vma_link(mm, new_vma, prev, rb_link, rb_parent); + if (vma_link(mm, new_vma, prev)) + goto out_vma_link; *need_rmap_locks = false; } validate_mm_mt(mm); return new_vma; +out_vma_link: + if (new_vma->vm_ops && new_vma->vm_ops->close) + new_vma->vm_ops->close(new_vma); out_free_mempol: mpol_put(vma_policy(new_vma)); out_free_vma: diff --git a/mm/nommu.c b/mm/nommu.c index 9d7afc2d959e..81408d20024f 100644 --- a/mm/nommu.c +++ b/mm/nommu.c @@ -553,9 +553,9 @@ static void put_nommu_region(struct vm_region *region) */ static void add_vma_to_mm(struct mm_struct *mm, struct vm_area_struct *vma) { - struct vm_area_struct *pvma, *prev; struct address_space *mapping; - struct rb_node **p, *parent, *rb_prev; + struct vm_area_struct *prev; + MA_STATE(mas, &mm->mm_mt, vma->vm_start, vma->vm_end); BUG_ON(!vma->vm_region); @@ -573,42 +573,10 @@ static void add_vma_to_mm(struct mm_struct *mm, struct vm_area_struct *vma) i_mmap_unlock_write(mapping); } + prev = mas_prev(&mas, 0); + mas_reset(&mas); /* add the VMA to the tree */ - parent = rb_prev = NULL; - p = &mm->mm_rb.rb_node; - while (*p) { - parent = *p; - pvma = rb_entry(parent, struct vm_area_struct, vm_rb); - - /* sort by: start addr, end addr, VMA struct addr in that order - * (the latter is necessary as we may get identical VMAs) */ - if (vma->vm_start < pvma->vm_start) - p = &(*p)->rb_left; - else if (vma->vm_start > pvma->vm_start) { - rb_prev = parent; - p = &(*p)->rb_right; - } else if (vma->vm_end < pvma->vm_end) - p = &(*p)->rb_left; - else if (vma->vm_end > pvma->vm_end) { - rb_prev = parent; - p = &(*p)->rb_right; - } else if (vma < pvma) - p = &(*p)->rb_left; - else if (vma > pvma) { - rb_prev = parent; - p = &(*p)->rb_right; - } else - BUG(); - } - - rb_link_node(&vma->vm_rb, parent, p); - rb_insert_color(&vma->vm_rb, &mm->mm_rb); - - /* add VMA to the VMA list also */ - prev = NULL; - if (rb_prev) - prev = rb_entry(rb_prev, struct vm_area_struct, vm_rb); - + vma_mas_store(vma, &mas); __vma_link_list(mm, vma, prev); } @@ -621,6 +589,7 @@ static void delete_vma_from_mm(struct vm_area_struct *vma) struct address_space *mapping; struct mm_struct *mm = vma->vm_mm; struct task_struct *curr = current; + MA_STATE(mas, &vma->vm_mm->mm_mt, 0, 0); mm->map_count--; for (i = 0; i < VMACACHE_SIZE; i++) { @@ -643,8 +612,7 @@ static void delete_vma_from_mm(struct vm_area_struct *vma) } /* remove from the MM's tree and list */ - rb_erase(&vma->vm_rb, &mm->mm_rb); - + vma_mas_remove(vma, &mas); __vma_unlink_list(mm, vma); } @@ -668,24 +636,19 @@ static void delete_vma(struct mm_struct *mm, struct vm_area_struct *vma) struct vm_area_struct *find_vma(struct mm_struct *mm, unsigned long addr) { struct vm_area_struct *vma; + MA_STATE(mas, &mm->mm_mt, addr, addr); /* check the cache first */ vma = vmacache_find(mm, addr); if (likely(vma)) return vma; - /* trawl the list (there may be multiple mappings in which addr - * resides) */ - for (vma = mm->mmap; vma; vma = vma->vm_next) { - if (vma->vm_start > addr) - return NULL; - if (vma->vm_end > addr) { - vmacache_update(addr, vma); - return vma; - } - } + vma = mas_walk(&mas); - return NULL; + if (vma) + vmacache_update(addr, vma); + + return vma; } EXPORT_SYMBOL(find_vma); @@ -717,26 +680,23 @@ static struct vm_area_struct *find_vma_exact(struct mm_struct *mm, { struct vm_area_struct *vma; unsigned long end = addr + len; + MA_STATE(mas, &mm->mm_mt, addr, addr); /* check the cache first */ vma = vmacache_find_exact(mm, addr, end); if (vma) return vma; - /* trawl the list (there may be multiple mappings in which addr - * resides) */ - for (vma = mm->mmap; vma; vma = vma->vm_next) { - if (vma->vm_start < addr) - continue; - if (vma->vm_start > addr) - return NULL; - if (vma->vm_end == end) { - vmacache_update(addr, vma); - return vma; - } - } + vma = mas_walk(&mas); + if (!vma) + return NULL; + if (vma->vm_start != addr) + return NULL; + if (vma->vm_end != end) + return NULL; - return NULL; + vmacache_update(addr, vma); + return vma; } /* @@ -1533,6 +1493,7 @@ void exit_mmap(struct mm_struct *mm) delete_vma(mm, vma); cond_resched(); } + __mt_destroy(&mm->mm_mt); } int vm_brk(unsigned long addr, unsigned long len) diff --git a/mm/util.c b/mm/util.c index 3492a9e81aa3..3e97807c353b 100644 --- a/mm/util.c +++ b/mm/util.c @@ -287,6 +287,8 @@ void __vma_link_list(struct mm_struct *mm, struct vm_area_struct *vma, vma->vm_next = next; if (next) next->vm_prev = vma; + else + mm->highest_vm_end = vm_end_gap(vma); } void __vma_unlink_list(struct mm_struct *mm, struct vm_area_struct *vma) @@ -299,8 +301,14 @@ void __vma_unlink_list(struct mm_struct *mm, struct vm_area_struct *vma) prev->vm_next = next; else mm->mmap = next; - if (next) + if (next) { next->vm_prev = prev; + } else { + if (prev) + mm->highest_vm_end = vm_end_gap(prev); + else + mm->highest_vm_end = 0; + } } /* Check if the vma is being used as a stack by this task */ From patchwork Wed May 4 01:13:50 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 12840762 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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id C8E02C433F5 for ; Fri, 6 May 2022 08:36:38 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id EE6416B0071; Fri, 6 May 2022 04:36:37 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id E952B6B0073; Fri, 6 May 2022 04:36:37 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D0DE66B0074; Fri, 6 May 2022 04:36:37 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id BE7786B0071 for ; Fri, 6 May 2022 04:36:37 -0400 (EDT) Received: from smtpin12.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay11.hostedemail.com (Postfix) with ESMTP id 8C08C80A44 for ; Fri, 6 May 2022 08:36:37 +0000 (UTC) X-FDA: 79434662034.12.5AD34ED Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by imf26.hostedemail.com (Postfix) with ESMTP id 752EF140006 for ; Fri, 6 May 2022 08:36:34 +0000 (UTC) Received: from pps.filterd (m0246629.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 243NIL3H004092; Wed, 4 May 2022 01:13:53 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=OSTa9kaHYK2ZqH1nXuy4YN0cTqCfCvNxmCWDsGTmK/w=; b=DCckkX+RBGLikzVMS0SrnzidKuESLe6viC70e1TMdJxrIhgCoKSkbodKVmJkEMXeFwR6 G78+6cYi43WL9m1yRXPns5fK5Xo5W1/4+zBDo6SLaqMUX2TDZBZ2h6gd32Q67gIxOjKB e33gVVhEXu9sTGy2dQqyI5PmRYco4TmXL5V7HaJR9h8rhI74CBhQgisRFHbOfR7FN8kC M/j7WgA4Ksn4ygvKB/NXH6TNF2ZibXvEJdI7F0B7d98XffHjhu6YIIO2CY0JZEt0yjDG Yl1PW81FY53DsxJw+vBJaPn+NU1lFfR0dSPYpn2a0n2tSPCEkDjFrL640jYlrwVnQUOx Kg== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3frw0apxyf-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:13:53 +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 2441BRJQ013094; Wed, 4 May 2022 01:13:51 GMT Received: from nam10-dm6-obe.outbound.protection.outlook.com (mail-dm6nam10lp2105.outbound.protection.outlook.com [104.47.58.105]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com with ESMTP id 3fsvbmv3ke-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:13:51 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=JKXpgBTAxUf+nx/tbdHriDPwE6ld16+79Zhds857m3eJAkVXXZ3HouT3xaL5OwfTm+A9N+bK2RzHYpC5tACsZ89rwJvy5wRG7xaCui8RqKlLsi6sdSRPRZDlec707Y3uzDn6Qf7ra7bogTYggdpaPfBL8jtfespSRdHgZ0hQRrxElvbbz2RlZWnrkf5JdGWV9VsP1mhPz6uRi8bm5iTWKcB4wR7eEhx8cZK9WvbffZpdA7m+hakF+vyr96cM2JeomdoEVJdX1m9t1n1OwCaiWYmV+LwmTpIM07RGLI7wSH84MQySSycHG3rimT4HoVat0kgZBLGG8bMnBwrZqGBIFQ== 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=OSTa9kaHYK2ZqH1nXuy4YN0cTqCfCvNxmCWDsGTmK/w=; b=EEy6mGD/r+UUsP29cpwITGimAoFtx3KRbf5ecyUX45aNrRRNj9sGChUzuM9lNX2Cb/1RhDMkGpXCoxZj64RWAxQYfybieRrIZsZJdaNnPKTzKb6Zs+oZzeuU04RNGAQ6NU7Fh91rw741zRmSWcyXAHh+yPqTNGOtJ3rkt2tjylueCr+mpg6kzktQhQvrMwtSsOeWIVMRzK7ax6pgQAEvEag8HF8DsPa+fKerP0vHaUIKLG5VM42bYQuFJ4dhkHpaTWupFSMXLTRGYaXmgLXTeMN67uCziIXdVV1Jb1sTzflwG3c05Dz3aOYJ7aL0Hg3JSJZfNnT8mtp3RPoNrndKxA== 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=OSTa9kaHYK2ZqH1nXuy4YN0cTqCfCvNxmCWDsGTmK/w=; b=cUCS/bYCr/yHIuaA111E6mT8aBFC9HJ8lK47q6FrdpZw9Z0/DAz6ofFweD5IQ95IiT1QcypHyqUs8/zTG/99JDE9lUqfhRJNzXDin9VvCy8GTSshfWwQ2JD/aPgWAXtVqZhYplcXMuL8+z5bmmOsCJEIKU7uo5PNeVkUzKnIcig= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by PH7PR10MB5830.namprd10.prod.outlook.com (2603:10b6:510:127::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5206.24; Wed, 4 May 2022 01:13:50 +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.5206.024; Wed, 4 May 2022 01:13:50 +0000 From: Liam Howlett To: "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton Subject: [PATCH v9 18/69] mmap: change zeroing of maple tree in __vma_adjust() Thread-Topic: [PATCH v9 18/69] mmap: change zeroing of maple tree in __vma_adjust() Thread-Index: AQHYX1Q2zOYtx7lWNEypQfVNSHXowg== Date: Wed, 4 May 2022 01:13:50 +0000 Message-ID: <20220504011345.662299-3-Liam.Howlett@oracle.com> References: <20220504002554.654642-1-Liam.Howlett@oracle.com> <20220504011345.662299-1-Liam.Howlett@oracle.com> In-Reply-To: <20220504011345.662299-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: 12cb40c4-2c4d-4e50-cad1-08da2d6b58db x-ms-traffictypediagnostic: PH7PR10MB5830:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: wPlpHJDev6qnCH/Cy2EophXKV6sQ3tF+rGSFytKvr7+Y19Dhvrf3sXSB5rZ9pt3tmmiGvR4qkU4Wx/UPcydN9TrbT+v5LmOfW9eJR1zxO1Y9UDqwkibXqVi6V7eouJFCKl3ypUDr7xtkdCkQugUlyi+vjb+DuRsfOrGOZk20fiIlzYYu6Gl9OKx+Fd8MDwD8HiQ6WikFRdJARnkY2HdfmR6Yrf2fiZhANysV8SAsiTGpauNedpBrFXz+02xzLZ9yPVaJ6NWc8nnbAaLmJbU40fdRyHlTCfmCEIpdphZPzW+/zTdql1WEIg45XHIixDOaKScJGIUpAL9ptQGt80VIITacVNoxacpFtAi3AlptYXTHo4n1GPgJRV4fWeOK7L5mtpQbyMAe/PtnhG2i4xyPhZTi6pl+JGC6Br6agL/Dnvp/zXzHZYYKhbSOmAQDDrrqC50I0240bNSnHduQ96hnB/LJgjoIsalkOOymLr2hCA3VGTCLQsN/bLrisGVt8ZKzYpbRY/8/I1Kcqg2SbevwaJTqjYgPOTp/vR0dSHOKdQt06X2aaWfgyjPI2vFBizCtPqQGp05N0c8IU4tteXeQPF33txCSBskVnoyMz7+74xFDoZn2LEm0AScgB+0Rtn+qlnGQv2q8aXRcicaSZz1feGwv3XS80FeEmZOnAQlIWr0W7o0zdj7FY69TS1jujSzTQ41QoajR9W58/imeJzw4cA== 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)(86362001)(71200400001)(83380400001)(38100700002)(38070700005)(122000001)(316002)(110136005)(44832011)(2906002)(8676002)(5660300002)(64756008)(66476007)(36756003)(8936002)(91956017)(66556008)(2616005)(66446008)(66946007)(76116006)(1076003)(186003)(6512007)(6486002)(508600001)(26005)(6506007);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?/CI9kQHKZye9YcxWACWtjik?= =?iso-8859-1?q?s1wcs9Wrn4h/xlOX/gRYuWKm4VsCuRm7mkBgAATjx5vtM0X0Yo8SibrPrt1U?= =?iso-8859-1?q?OOagrf5dU9bWvWPI63znneYXN0jeBnf8GksUFAQbxBAT0lZzXZV5gWxItTam?= =?iso-8859-1?q?tDZZRdWEIuZN9Wbag9Xq3q0pJEpy1Avr3YwAD4W7bTUSyS2qJ2a2wchKk5gc?= =?iso-8859-1?q?rZDa7UVFQWqh5c8rbDLOxdX2rLaOiO6AxJEdmNrpGrrN/dDTxdqRYq3Q2Vs1?= =?iso-8859-1?q?E3631/E9ap03vMy5XFbWwbLFri9QWT8zbOC/IAiDn6ntX0IcY5dHaKbvVqtz?= =?iso-8859-1?q?jqrHEiOF8HKc/4Kmdmq/ncxgghZSPKUUG4RoMs4cZ3IhTCbSww+e3YVvPgsd?= =?iso-8859-1?q?FjXxYVLq23UpdghpmltRzekauVwcIxatX6Pwx0hjDM9v2qIYf+81jBBNYr/Q?= =?iso-8859-1?q?8jOZrolfhv04Xla2Fu9BfYvuuBpi/9Kokz2FzNrLdNDd6rUcly4ET00C8pIV?= =?iso-8859-1?q?2kAEllNjwrvSfLzLYtj9uJpKTo9XB98F1J/xAmWHHXGCWKnlT5+RefzkDtA1?= =?iso-8859-1?q?icVCHKGPQM3iNZjsLVKoNmCHJUtbtkTv6bllwwRK3csUme+PWodAghkrIWdN?= =?iso-8859-1?q?UqlllVoaQMSkxknjyPXSDiLW9OZ7Q3Sm7/Bal3+7+grJHmoNoFXHQ/6ndUmo?= =?iso-8859-1?q?vbUpbkLN5xpERp9Ht1rOkfiVFaB3+L2HMLhjyQmqxeeQZOZjJ5lrlotphxBM?= =?iso-8859-1?q?RmjkCfWcEMctG/4gNpfsy1jaIEJymPaJNlScNzqCq2xScrKelCGa3ym9imHv?= =?iso-8859-1?q?Hl/bWHFy9wLPFpOmUPJW13X/S6XQpRYCowd+WluIXfiXOHO/OdAkaKc/O35c?= =?iso-8859-1?q?XX3UIkdoYwuCoh1YOdvW/9QTaGeFkRboNR6T7M7VtkMMlOKrug8Hc95JrIGy?= =?iso-8859-1?q?eIDkOctCjUkal6cRvos4l6km6JQdwrrA+4oIf7HMuRN+5lJaoECKZ3+8BKW+?= =?iso-8859-1?q?cVyEnJXHuu4P9cE2uqrMY3iB38nnCBa3XvEniqnb7Nk2oYEQwT3oNqmW4uiY?= =?iso-8859-1?q?I52rJiuJqMw9wT1nxKNyPjFtU6mGUXjv2txgLXm7GcnzMdCvQFZac4XknpsN?= =?iso-8859-1?q?VFc/fkbU2PDPXgPXp+ilvBW1kNNEWEiKZbWY89u3AZdkrA6ErWDbDkAvTzbC?= =?iso-8859-1?q?tZr2geSRbLX02iuaIYOtfxVNnwhslvOKcJLXQBxJD6FDiVG33L2zrbx0jp12?= =?iso-8859-1?q?P8PzoSJzmDunpWdsAB85ZK5btA93iO1vCh/9xuUGPzRqTzCVB8XUVIjMTHCB?= =?iso-8859-1?q?0SuLRnbU2Abr00kIx7Ng028gzki3ODLlXWmALme8hN8hLfoxaTSEubLNdcKe?= =?iso-8859-1?q?oN9hhlKaxToTdDCcVrIOd6m0mcMJIw8U6wlg/vjkbxY9d4BtWP1zGC6MAKn6?= =?iso-8859-1?q?gVf7AjCKlFx95gEIwhFLq24RREi5A8kSWsdhTn+SZiQ9yZZVduGNCXb50Edj?= =?iso-8859-1?q?D/kgKonX7P0f6FNVBS8bGKApw0e0rRoCXw8m/+5EIjL28U4hSYH++S7bEwZv?= =?iso-8859-1?q?xi3Y0TKf2HvT+9+Sj4s4gXewssO/Fj+dbmwxatY2JDMxYlc75UJLrTFFB387?= =?iso-8859-1?q?rl4wiOt1MiUgH0S0BSVlY60ulnyn4OcAVjAjatkZO6f6/sRwDCusf6F/HXTZ?= =?iso-8859-1?q?puahx4T7yUybbvpbqY3KDPKIirHbyAMD6SbThThLa+smPOSxKz4fTRFXYjA6?= =?iso-8859-1?q?fJyYQ+NsJ8TW49Jqv5YbeU7WA9KUSH5GwNktKuBP4sZd4nJWnpuimeDHeAF0?= =?iso-8859-1?q?5gr/CKGs=3D?= 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: 12cb40c4-2c4d-4e50-cad1-08da2d6b58db X-MS-Exchange-CrossTenant-originalarrivaltime: 04 May 2022 01:13:50.1271 (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: rnUpz+4dGpslNU3O6HrLzdYexHUeOUsuXslGBwF1AffTZmYaGfb1FeoLFCx+klcSUKlt2qYfeGnK5LJ2n9wTmg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR10MB5830 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.486,18.0.858 definitions=2022-05-03_10:2022-05-02,2022-05-03 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 bulkscore=0 spamscore=0 malwarescore=0 adultscore=0 suspectscore=0 mlxscore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2205040006 X-Proofpoint-GUID: InAmIyOke9iiIifciXoAXPRJkxgzKFdE X-Proofpoint-ORIG-GUID: InAmIyOke9iiIifciXoAXPRJkxgzKFdE X-Rspamd-Queue-Id: 752EF140006 X-Stat-Signature: nnsgcmncn9g41n96cxa8ddimmh4zahso X-Rspam-User: Authentication-Results: imf26.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2021-07-09 header.b=DCckkX+R; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b="cUCS/bYC"; spf=none (imf26.hostedemail.com: domain of liam.howlett@oracle.com has no SPF policy when checking 205.220.165.32) smtp.mailfrom=liam.howlett@oracle.com; dmarc=pass (policy=none) header.from=oracle.com X-Rspamd-Server: rspam09 X-HE-Tag: 1651826194-333339 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: From: "Liam R. Howlett" Only write to the maple tree if we are not inserting or the insert isn't going to overwrite the area to clear. This avoids spanning writes and node coealescing when unnecessary. The change requires a custom search for the linked list addition to find the correct VMA for the prev link. Signed-off-by: Liam R. Howlett --- mm/mmap.c | 30 ++++++++++++++++++++++-------- 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/mm/mmap.c b/mm/mmap.c index 44f9f4b5411e..6f1d72172ef6 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -613,11 +613,11 @@ static int vma_link(struct mm_struct *mm, struct vm_area_struct *vma, * mm's list and the mm tree. It has already been inserted into the interval tree. */ static void __insert_vm_struct(struct mm_struct *mm, struct ma_state *mas, - struct vm_area_struct *vma) + struct vm_area_struct *vma, unsigned long location) { struct vm_area_struct *prev; - mas_set(mas, vma->vm_start); + mas_set(mas, location); prev = mas_prev(mas, 0); vma_mas_store(vma, mas); __vma_link_list(mm, vma, prev); @@ -647,6 +647,7 @@ int __vma_adjust(struct vm_area_struct *vma, unsigned long start, int remove_next = 0; MA_STATE(mas, &mm->mm_mt, 0, 0); struct vm_area_struct *exporter = NULL, *importer = NULL; + unsigned long ll_prev = vma->vm_start; /* linked list prev. */ if (next && !insert) { if (end >= next->vm_end) { @@ -778,15 +779,27 @@ int __vma_adjust(struct vm_area_struct *vma, unsigned long start, } if (start != vma->vm_start) { - if (vma->vm_start < start) + if ((vma->vm_start < start) && + (!insert || (insert->vm_end != start))) { vma_mas_szero(&mas, vma->vm_start, start); - vma_changed = true; + VM_WARN_ON(insert && insert->vm_start > vma->vm_start); + } else { + vma_changed = true; + } vma->vm_start = start; } if (end != vma->vm_end) { - if (vma->vm_end > end) - vma_mas_szero(&mas, end, vma->vm_end); - vma_changed = true; + if (vma->vm_end > end) { + if (!insert || (insert->vm_start != end)) { + vma_mas_szero(&mas, end, vma->vm_end); + VM_WARN_ON(insert && + insert->vm_end < vma->vm_end); + } else if (insert->vm_start == end) { + ll_prev = vma->vm_end; + } + } else { + vma_changed = true; + } vma->vm_end = end; if (!next) mm->highest_vm_end = vm_end_gap(vma); @@ -821,7 +834,7 @@ int __vma_adjust(struct vm_area_struct *vma, unsigned long start, * us to insert it before dropping the locks * (it may either follow vma or precede it). */ - __insert_vm_struct(mm, &mas, insert); + __insert_vm_struct(mm, &mas, insert, ll_prev); } if (anon_vma) { @@ -908,6 +921,7 @@ int __vma_adjust(struct vm_area_struct *vma, unsigned long start, if (insert && file) uprobe_mmap(insert); + mas_destroy(&mas); validate_mm(mm); return 0; } From patchwork Wed May 4 01:13:50 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 12839802 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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id B0F67C433EF for ; Thu, 5 May 2022 16:41:14 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 1D08E6B0080; Thu, 5 May 2022 12:41:14 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 1816E6B0081; Thu, 5 May 2022 12:41:14 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id EEEC56B0082; Thu, 5 May 2022 12:41:13 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id E041B6B0080 for ; Thu, 5 May 2022 12:41:13 -0400 (EDT) Received: from smtpin16.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay12.hostedemail.com (Postfix) with ESMTP id B73341218CA for ; Thu, 5 May 2022 16:41:13 +0000 (UTC) X-FDA: 79432254426.16.06E8B03 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by imf26.hostedemail.com (Postfix) with ESMTP id A9DEC140080 for ; Thu, 5 May 2022 16:41:09 +0000 (UTC) Received: from pps.filterd (m0246629.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 243LNHV6032436; Wed, 4 May 2022 01:13:54 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=1w5yrm3MQROUeplyTDHfdB7riWJZI1g05guZF5U5nig=; b=shJfpSXSWL6jqD9oqTLc8CmO6sDnzEnQe7VbIvuAtC8q/6yeat8zjv3DCM0mhznfGSjX aN2aEfnTZw+7y6iwEkWKnPhLSdliJNCng4whxW+/krOk2BZFm5DC2jYzHX/ihnasgTzp jzSfhHKYYvt3mSuYUrwoR4kkjasINM08dNfrWYa8msqSQwWy92PcNPdLB9CRxC3ZrZVK yxPRNr4iU2ICqRo9t8HMGaZbh69K+tWw1DT0T6/kiE2lKG+yc8XSCPWbUAxr9Bhc6i1x hgs6SjaYaiUcELCulqvScJ6+wXYjmYzBNbF33DgGl5e0Vtz4a24wmEYTEuF08vmyrtF6 gQ== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3frw0apxyg-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:13:53 +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 2441BRJS013094; Wed, 4 May 2022 01:13:52 GMT Received: from nam10-dm6-obe.outbound.protection.outlook.com (mail-dm6nam10lp2105.outbound.protection.outlook.com [104.47.58.105]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com with ESMTP id 3fsvbmv3ke-4 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:13:52 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=bldunigIl9wR27O0J4+mwDpMU9jwVGQKcOk2YTW8KzCcE7U75xIkGTG3FTBbNntijb5BW6pRPash2AZRowSOHkRZhHP1KnoiGKNhq5/Mlsa+f224mSlH6YOxcWU3636WcFc5HRlg16a69lzc5bK8E098aRxRn71sQaZWgfaYmlpMjcwx5tQ8F0xhfNgBe7vrvCkohT5wertdss6oXj6l5333bpfnEbn6s1Bzn+4nQd30Mn5NlXytVrAyH5LKWMCEz7gztNp7CEjjuKLMi5r8Zrh7E5+5LTh7YfhzvpRJ8ZGjZP+W/Aw7MnMLNXcrXQwIkCPNG7oLQ1m27sCtHf5OPQ== 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=1w5yrm3MQROUeplyTDHfdB7riWJZI1g05guZF5U5nig=; b=AuQCKg128XUkJOC7yYr8E01MlTSJvdcc0JrpsK/ywQhS7+do2GgSTxezf2lopN0LD2nNCaBHMAcpPK/hmSR86lq9fij3l4LPNJoypcsrGNC0m4uFYYFlBrum1zs2sdaYLzgJhPIYWoHoJ/wwWboqbsp+xI4SjWcT7IIqiH53kZDZu1JnFp9bVAq/0REeIwH1Aw9qioFeMqwKxdfx0RsUWHKsIIchJBO3ERrd3cCNA2ELql5LgtPw5KwL8oHdy2/rCIuaT9189gK2mdUc3mzjqGGjkoDHQDOTyxYuf3izGcsR2Un0BgUa4vHd7PUxyzd3SxzNoNvtX5FXfssHJWqu4A== 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=1w5yrm3MQROUeplyTDHfdB7riWJZI1g05guZF5U5nig=; b=A26CYJpfmvsaXEKa8l9ChEN9fFuAPv6EwODxhUtIxpEyHb26Br396bljGqd/MqSb+yCUsJXzKFHhhS3Yd5Hw4ZUs5mZel3A/1CDhKizpGu/wdvm/EJT5hZ+O0GXwbDDFKXr4cF/Cc5Px78AxNjJpKTlbUn4VeyV7IdiTGNadQOk= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by PH7PR10MB5830.namprd10.prod.outlook.com (2603:10b6:510:127::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5206.24; Wed, 4 May 2022 01:13:50 +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.5206.024; Wed, 4 May 2022 01:13:50 +0000 From: Liam Howlett To: "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton Subject: [PATCH v9 19/69] xen: use vma_lookup() in privcmd_ioctl_mmap() Thread-Topic: [PATCH v9 19/69] xen: use vma_lookup() in privcmd_ioctl_mmap() Thread-Index: AQHYX1Q2u/+dP5PV+UuO5Z0G/LDZvw== Date: Wed, 4 May 2022 01:13:50 +0000 Message-ID: <20220504011345.662299-4-Liam.Howlett@oracle.com> References: <20220504002554.654642-1-Liam.Howlett@oracle.com> <20220504011345.662299-1-Liam.Howlett@oracle.com> In-Reply-To: <20220504011345.662299-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: d4b7b220-0c04-4a34-2935-08da2d6b591c x-ms-traffictypediagnostic: PH7PR10MB5830:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: CfaM095PH0tltiDQeiO9Vlc7g4N5BpQEEjjut5vea0Ia08aYdD5YjEMp8+VfnIgoapHuyWojiMdxn93UPIzMq92/Bl6pfW/AEBz/SZCTPMvM4CAEAgvA0RLXE0gJa/WenWGXolvca6uuDXWTpBRAz674A879D4/b3wF3R91rB/uOovy/1gTSC8peLVWrqSmXnXic3mXVSzWgfdwNu6ayhF1WiUNNFYhX4gXQEOCogmwfjqBLlBTG8/vvxQa78ElZifDQ6XQFD9aN5uHYNI+CqKj7kgpvQQeFKpIboM/EAkCXS1OSxKxXBIvmUkjPrMr4zH2CPwezLeEFspmjJuvAT6joOrY/KnOLjs4bbDzzrooxBpvOpmimA2UWxVvnKVCIGryf75MoFcxHBntfXuuN04F6lY+MXxrjC1iZikvR/uIlGYTg82JGxuykR4oobcZw7e8ZReQsos0p/pz9kmJL49BogZUGjlLBaEp/TdiErzL5ePT07WOBPhwTKCfIT0KfIFkSWKdP4I4aa1Rs/2UeJ7y132ZjyVR9dSvJYX4/ny5uQ7WAAo+R2fbVJ4B9E4czYay/z9jdV7qMuaFaDBijY8TYNQ7YRQ9ieEWGLNIXZo+bIAwyglLNPUMUiNzpBGkLb658i5FtcAeVLihsNy0gOcXfFOukmetSCU9rqxLfhTnr26z+hP4Bxr4jwSQFyGl9Mel46ITmd9fS13e4lwvR3Q== 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)(86362001)(71200400001)(83380400001)(38100700002)(38070700005)(122000001)(316002)(110136005)(4744005)(44832011)(2906002)(8676002)(5660300002)(64756008)(66476007)(36756003)(8936002)(91956017)(66556008)(2616005)(66446008)(66946007)(76116006)(1076003)(186003)(6512007)(6486002)(508600001)(26005)(6506007);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?bqdOpFacJKjuQW+JxXksabF?= =?iso-8859-1?q?Lo9ulLRUohXG0FBXzDeZRh9kIvrKPiL2LJO2DcQmW6PfeKj6j/gpogeNSXYn?= =?iso-8859-1?q?0C4ZLlKNjAsfVwsRPJMGE9wC87Tme1/NDDx8y0XUFhN9Y5eduewWI7euuGh7?= =?iso-8859-1?q?tOVxpS1NTAHsvDT2Z7sHhWe31kNUN40H/zJ4YKEI2Y2Pp8irWbxL0yhdnCKw?= =?iso-8859-1?q?gmb3jJO1xd0dr1pJCMWQHQsshNfeJxquiWuMnrqDZVb037xIFEmiNBk0wTCZ?= =?iso-8859-1?q?bg30C8R9lNhGjz56SnTPxDBaS0QDXABVzwWNY3vb0fBlmYD+38Dzn+YK1RwM?= =?iso-8859-1?q?+Ba1JZI2iEz2etlAT/uYIyZKWgA6R1TvVQQJIzSJcI26KIkuYfWz52oxlb31?= =?iso-8859-1?q?2fyLgbIKJAL7r4OTOeGARRsMsmPFvTx4XemfnQSWaIeUAwJMwAa62eOQe++u?= =?iso-8859-1?q?bOddOAwAqPrJynFQMh64LWxSW/l9hJ2VWRS9Yc0s0u9EZPDaO0Z1837X2nD/?= =?iso-8859-1?q?TDEWOObJ6XjuFdDmfRPF61V8wxa/o6I9WDIQxMi2D7BhI/nbp985LOcQxzhL?= =?iso-8859-1?q?utiomGB1d1Al3FuqkYKRjCDsDDd1Gy10EWxBmCoC+w+Nuth1B7Fow7bElqYA?= =?iso-8859-1?q?5jzKGFFl66I7I0ZBt53fwaIQuWT1l4NsCw8gxGn/NXnXLF6g/FjXwuv7dbni?= =?iso-8859-1?q?sioFXeZukXIqoGi1CKXaB67TBw+Pyl1Qb4LAW3lJ1SyXrBUU0aqIQClw+ijU?= =?iso-8859-1?q?gfUvl6L/QsTrszMro4eSEvgKNykKNQCxOHdgmHXaL8AElPW5kSO3SO3axQV4?= =?iso-8859-1?q?WQeEa8F9Nc2PwmqNahoSOs8ztIkKgMgLchAYI2AqzUzp1rS0fm/6Dihd8ck9?= =?iso-8859-1?q?VyiRWPcbguOiclIHwzC2fIjL94YjjX1Y8q94pXbB2JyCeR/5kKvvEo5poWeW?= =?iso-8859-1?q?8+UNk1cFI4V55CyV5aQL288uzdy3zX/v2HJBvXV+E2nbVqLDKwdow6WgpeJ6?= =?iso-8859-1?q?slTrS+a2bBYGlhkt2+7DblDSSKqeSuwGh/PrEPxJTKxL5ZTtSavIzp/y0kW3?= =?iso-8859-1?q?H8X6NB+3EPkgT1TnkFal0OgkOCfOeTNEFqHrIB1s5CGxA0877Lsk1vZhRozu?= =?iso-8859-1?q?G15xvBBwkFLaQwnvGb2dGXLD3pnUHUXCLdCpNekJzXxAqq40wTbTHANTOnuh?= =?iso-8859-1?q?ZPM1PI8Q3at6Zn/FNipmn2vy9zxWu1vtR4Iy2OlBGYL8o+RZtdm14BeAb20k?= =?iso-8859-1?q?0AFylrnIRp+ZFNg3ePvX5VKWMyyGxqEDlzpb7XrYwsL9H2kNNiy6jVEta0I5?= =?iso-8859-1?q?CidgYo9kGRNA6MmgAvBKkaBOJUHEvcwEClSCYvCwWn+t5pYVp8LNtG7pGyj6?= =?iso-8859-1?q?d7SmmcqBOY5sVvlLzNdlnnrOljMTB3iGSfvSmZ70nccFqholZGNVfAT8dOuY?= =?iso-8859-1?q?HpDCQnD06qQXZfYIQdnCcclqiMBiDZTQb+Oq0y10124j00u42MteWW3GgfXZ?= =?iso-8859-1?q?fI48XZUWal0HFw7FkOeswuoBmr18jzgXCTOcWxP/51wlKroQdH05h/jYsxR6?= =?iso-8859-1?q?5mnLUSxBfOoynSNkRp6jdUroAmIKpoM1auOYQp2S8Dgd9p8bv4KpGs5uqv9j?= =?iso-8859-1?q?iLBZCFzW/Qq/l4xrNc4p9B84m+c9JzbAMVxRscTcTZnES4AkfNxSHaUN7Oo6?= =?iso-8859-1?q?zHZtekhETw1aFC2ISyoQ5yqLDvXOgSmC1c8IDkz1eFlb+NO7symkNxvFRTwr?= =?iso-8859-1?q?lW6W5iHHRGSb9Gd1tJq01lV7E6zUTwLtmd79E+OTkMDjg6/limVmXoFOnfLQ?= =?iso-8859-1?q?ixDY4XU8=3D?= 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: d4b7b220-0c04-4a34-2935-08da2d6b591c X-MS-Exchange-CrossTenant-originalarrivaltime: 04 May 2022 01:13:50.4864 (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: kvbm6WMTO/EuMiqTKBKVf/JUhRn4cIoJYZHMHEuTP1PWQHLPPRV3bdPd1BdLfkOaUaLebJ3ZRuOygUSlTH9dUA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR10MB5830 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.486,18.0.858 definitions=2022-05-03_10:2022-05-02,2022-05-03 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 bulkscore=0 spamscore=0 malwarescore=0 adultscore=0 suspectscore=0 mlxscore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2205040006 X-Proofpoint-GUID: XkEAs-dySM-Tyt-uhmvvAnuI07FdoS5T X-Proofpoint-ORIG-GUID: XkEAs-dySM-Tyt-uhmvvAnuI07FdoS5T Authentication-Results: imf26.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2021-07-09 header.b=shJfpSXS; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=A26CYJpf; dmarc=pass (policy=none) header.from=oracle.com; spf=none (imf26.hostedemail.com: domain of liam.howlett@oracle.com has no SPF policy when checking 205.220.165.32) smtp.mailfrom=liam.howlett@oracle.com X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: A9DEC140080 X-Rspam-User: X-Stat-Signature: qy3i5d9xfjnmsxd3uzbqf7zqa6dhx4g7 X-HE-Tag: 1651768869-709733 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: From: "Liam R. Howlett" vma_lookup() walks the VMA tree for a specific value, find_vma() will search the tree after walking to a specific value. It is more efficient to only walk to the requested value since privcmd_ioctl_mmap() will exit the loop if vm_start != msg->va. Signed-off-by: Liam R. Howlett Acked-by: Vlastimil Babka --- drivers/xen/privcmd.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/xen/privcmd.c b/drivers/xen/privcmd.c index 3369734108af..ad17166b0ef6 100644 --- a/drivers/xen/privcmd.c +++ b/drivers/xen/privcmd.c @@ -282,7 +282,7 @@ static long privcmd_ioctl_mmap(struct file *file, void __user *udata) struct page, lru); struct privcmd_mmap_entry *msg = page_address(page); - vma = find_vma(mm, msg->va); + vma = vma_lookup(mm, msg->va); rc = -EINVAL; if (!vma || (msg->va != vma->vm_start) || vma->vm_private_data) From patchwork Wed May 4 01:13:50 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 12836631 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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 7026EC433F5 for ; Wed, 4 May 2022 01:13:58 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id B66A16B0075; Tue, 3 May 2022 21:13:56 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id AB7988D0003; Tue, 3 May 2022 21:13:56 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 7CC136B007E; Tue, 3 May 2022 21:13:56 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 68F646B0075 for ; Tue, 3 May 2022 21:13:56 -0400 (EDT) Received: from smtpin15.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 411442926A for ; Wed, 4 May 2022 01:13:56 +0000 (UTC) X-FDA: 79426288872.15.38E7CF8 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by imf11.hostedemail.com (Postfix) with ESMTP id BEB7F4007D for ; Wed, 4 May 2022 01:13:51 +0000 (UTC) Received: from pps.filterd (m0246627.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 243Kx7fd030616; Wed, 4 May 2022 01:13:54 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=f6aabrnmzO49lBVOmHQvV8Y8+WcnB9vAHpe26pQcMwo=; b=o9pNEgCSwerMzFpdVm4k8INbHYs9KtYARH7DHK3Phuqh+s1Nt9WPdvom71PbuyQGPgQm neyhmgBUnu6mktdJPZlwxpIPZMCeEzjdDl0bPj/vgLh14zqwKOv3vzdk0qU+kggFh2a7 Z3ct7e6gCfNma6qmSu5GlaUlLB4c4VdLt08OPJQp3OmU8Ld2JodzNyW4YG/itsKYHmbO BwvTvmd1/cc8usmipUHi7A+34K3wOWoLuVdGYQUNXbMy1AYL/Gpx9GU3sytgj+kQLSWM DmUDo62xYPAhu0np3f3tIGCA/lU/82nA7f4sQMvPxW36d509KVSmY4fKrWIQpeMJL43O 6g== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3fruq0f60p-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:13:54 +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 2441BRJT013094; Wed, 4 May 2022 01:13:53 GMT Received: from nam10-dm6-obe.outbound.protection.outlook.com (mail-dm6nam10lp2105.outbound.protection.outlook.com [104.47.58.105]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com with ESMTP id 3fsvbmv3ke-5 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:13:52 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ednxRqIaSMci8HABa5HNIDzk+2jwfn16yrZCy9bexVbuWM6OuipmVkLNXogIUPsRnuEuv5cjK7qjXM7I2u+ihM2u6abvlLU6NDMkPzyJMEKOJ/LKaBcx3CsF6u1S/8o0DwKZ1msgVuoccu0g3uxYsK/jofrbZ0ay+AQV26YmOIE7mbcSGm1AwYPZP6cbm1Df/7ra0ByuyJpa0L0z0U2Ud+b5niwxw+HoDQxYCC2ayPB46VX27xMO5DlFxrsGAPS0J+PGWE7I84zjcCKkfqzFAH5pGSaOFYRMNl5fAb03WyO/w8lMpbT0Xb0YwSW9RnZMUqjtjOKg2P3w4EaZeFGb8A== 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=f6aabrnmzO49lBVOmHQvV8Y8+WcnB9vAHpe26pQcMwo=; b=HS5T5NqJVpNnsSrgnhZ6obYt09LvFUd+6l2G/vrU8/PWh9kLm4mFkIXu9zmwb+faOpbRrnuzRYGuGT8S4Oj2072v7ShZkhMaCHcjACqqYQed+BjHAWdQubl6pzZy3TE9HpUBcXz47UTvam9hixygQz2RO87Uckd702uTtzXE7rUedhG3dDtbd/ZeKEAV5yaFmF/BpeXHpZ4YU4t5oYxHbpHwGsKoh52m6s+wasi5L8VyA14hJpdJ0c/wdxXXK1LoDgkvMOoN/+a1Wg0+tThPVJfczBQLzumyDVDP/g521kMa9N1tCXS25m6XCVzVz2+2PtICV6reaQ0bwK1z3xqLJg== 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=f6aabrnmzO49lBVOmHQvV8Y8+WcnB9vAHpe26pQcMwo=; b=lTCaPiQw6BeoO8vgzQeCVDIHufEjrp4JioffDa2D2YTr/lGnTSsoIoTjUrc92Zf6U06BgkxkCr4BlaEQKwuDgdAL/BwZV6cKuLEImlXjES9XoTnuv24oTZ+gDkmaANJcoXnBzR1Jd6PD822f+HE+UXhRqYfrrZS21nkQVtie9ug= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by PH7PR10MB5830.namprd10.prod.outlook.com (2603:10b6:510:127::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5206.24; Wed, 4 May 2022 01:13:51 +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.5206.024; Wed, 4 May 2022 01:13:51 +0000 From: Liam Howlett To: "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton Subject: [PATCH v9 20/69] mm: optimize find_exact_vma() to use vma_lookup() Thread-Topic: [PATCH v9 20/69] mm: optimize find_exact_vma() to use vma_lookup() Thread-Index: AQHYX1Q22PIpMi3WUE+umQfM3ciPKA== Date: Wed, 4 May 2022 01:13:50 +0000 Message-ID: <20220504011345.662299-5-Liam.Howlett@oracle.com> References: <20220504002554.654642-1-Liam.Howlett@oracle.com> <20220504011345.662299-1-Liam.Howlett@oracle.com> In-Reply-To: <20220504011345.662299-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: da50d69c-f65d-4c20-2554-08da2d6b595a x-ms-traffictypediagnostic: PH7PR10MB5830:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: vPr7pqgvGEQWvZC12Jfswd3SPOByYvZNLe82uzyKx+qDbYmxntMZW96/ZhzCi49KzKfF2IzYEvwdJO3s195/skWH9fmnQlwU4FEqQZBDLujbjMQ5hWtzM7VNRS2yWrAZ5KAIX2wAzcVWR5hcNC90v2PoNfssQc6pvl3a1yE5UagPsh5tOSmrkzpE8xiXcObhNmRFyKpwVZ2qOWzDPnjqeOYy11H7GvD/LeuZ9DJrSFQsijC34RN/iQdn5nwPTkhTRcdzDlu2hnY2hN4kyRAW3Ag+cuQ4fP/EEn8pR8Por3C3lzuU6wmgSH2ZI5apfizUe1GT2xuvHGGXCyjA1z945FNLEXLI8fGyYJC5AkPpZiA1E2L93hmxrurU2jrPs5/KCnr/SZ8LBHD6T5d7EoEKJoFgUBivILZiAjUgJpcUAYxAIfxjFsuYsmPQdoc1G2OW8vJj9bMCZZOdQl8muaoDp9BS3R2z42Q6SR7b9ggW2c6ctDskQgPcVeG4BvfUeZcCplVeBOyF+K2NRA/xYaPUpSfiWlsRFJIn7VN7l54O/U/BwgIFSzE7WjIke3loREWGT0bxOcpSFsWpwG2k1riaru0Y6dHYTAXKMGffjA8mPyWcn6w45OepnTtR3CWfFs/yt+CnQYfu1iVTT3WGi0Dtn6MXTa+6HfEf/hIcVsxxotvZn8q7yhxkCxe0ng4O0HW4oCMhMFvWetihTnDvWD82vw== 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)(86362001)(71200400001)(83380400001)(38100700002)(38070700005)(122000001)(316002)(110136005)(4744005)(44832011)(2906002)(8676002)(5660300002)(64756008)(66476007)(36756003)(8936002)(91956017)(66556008)(2616005)(66446008)(66946007)(76116006)(1076003)(186003)(6512007)(6486002)(508600001)(26005)(6506007);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?br84OcQXVMBZrxQa8qfz1R4?= =?iso-8859-1?q?hnXcf/3QRYcFxOXEB37ZlY2mFT7YIhN9gAlc3RtnA5cxO8eB9kUe2ZSVqsLz?= =?iso-8859-1?q?USDRgK2xqEYEeX+4symsBVpOUd9u5NYX7H0ZB9Uy6nmmVMfYDa93KMWYj6Tk?= =?iso-8859-1?q?M3zPZEJpu589hPeDS3+tnWeHAMpvxFt+kOoC+n6xzNFtjeLsXP6h04kOS5Bw?= =?iso-8859-1?q?tXCFFPZhb9zCXLraOTnS02lusAOq2n+PIvdraqyW634gVimIOQ+BZ73uYwpE?= =?iso-8859-1?q?HmTLhgcACoJhfIQfQxYB2HHLKbiNjmWWcA/bnIwrmj06QMxGXZRAXoudYspD?= =?iso-8859-1?q?36peNACVtbrNOFQDM4G01qbMMQ67SXq0t2FO5LloqsramyJrkExgydZnrUpr?= =?iso-8859-1?q?2lkx9OdOIHpugGBMxXMruokWmn8g4/n2XxZEOd13pYtI6ny+DNgD1IiDSLCP?= =?iso-8859-1?q?nWH+jjmKLEXT4GOE3crxKWisJVo7L/RwHOyE8ONgiCvGvYRCdWqsJZO0EBpw?= =?iso-8859-1?q?vQGDUdOTzPtzhaVSIlSj/jvQHeCyC/YGJfPHCKht5WYssAldqFr9wEchzePj?= =?iso-8859-1?q?8cng6TPyYhR50NA7cjrbAMt3ypNR2h4gpGOfckCeWw8BzdK2sZ0yLrNjPUg2?= =?iso-8859-1?q?uDLRPDong9kMpZw96aEU5GG+y88bcSFHYfxOHLqn6P3lAKPvljvPQV95DYi8?= =?iso-8859-1?q?xH6HOErVNzJ5igfkMXHwoBAL1UWfZaXY4N3QD1xYV/GfW4G1O6yj46icWjdr?= =?iso-8859-1?q?fIlK6xJi+Vl1YzyP++rYNSYc6lmwViFTVaFoYLvkVhwmeGIrFw0ce16dFPZe?= =?iso-8859-1?q?oM1YVn4TCq93+yRkD8Gp7S/yvOrKql4v5T53A2o4lbi03BAhJISd7pOwEIW1?= =?iso-8859-1?q?G3db4lZnkVlL7ajH4rNR9Q9hEpG0dpTKAt+1cDFGcISMixBHcfVa1oXb0T82?= =?iso-8859-1?q?BvCYi5+BgHp/mHAzmbber+86xS/EAp6VQPPqSxYqpyXeC4TeUP1gIi2XGQeW?= =?iso-8859-1?q?nHhKU7Xmi2mt9V+gyoXim8svQ/KZ1aYZlydvex1nNG3dvKXvuX3absJc0unL?= =?iso-8859-1?q?X7DChKKg8HJWXOo6DWp5ZSqUkdrdQaoK939+HcgUsvnO6PreEivoY/ZYmYLP?= =?iso-8859-1?q?JHDeWb36IMzx+CB3FQv8Bo61d6b5wWhJsUvwABU3lPepoJ+OHYi+/yv7c9W8?= =?iso-8859-1?q?IuqYvjfvi/LmokwTQ+PbaFlGgIuzwUZYHcF5BclNz24Zlq32lt7C22cFQUgf?= =?iso-8859-1?q?CABDIaJESfYOntEV9vHUO6agkir4HVLat18xq7L7GMMYPd2Sllr6ewMsgi/N?= =?iso-8859-1?q?DUgZaD9i2I7RCWSnF2knvyaF/63W5hBRVJSWRxbAFYueEnIgPrEekcGEh1Nx?= =?iso-8859-1?q?9DOOjFVOYRFkNEFoSQB0sNxU2yF2IFYdpUNHcld1kmyD1xCLPl/gzYZSyZeX?= =?iso-8859-1?q?vzjf1XQhowdK0ksdq9fqitGME6I08v+WRzPUPL5YJ5Auyu+Ix5piQuYAJAdn?= =?iso-8859-1?q?Hp2ZJcQCzZgiTllWtpwE/7XLE5Jtx0tRnpZMTRQIEbFI7XkABTwy2Q9DMYVa?= =?iso-8859-1?q?xa4Dg0osagPsHuS8Z+gguwzFliakevs022WEkqEACKwc0cJBN9YCfDHYKBnW?= =?iso-8859-1?q?81P8AKRlL1hKZwgl3C8/BabpcCr27b+YEMSWG+g3IN/ryZoNHNe+Uf/pExDT?= =?iso-8859-1?q?U4z3l0CpcPCoiZvFfksO+lJeJSrWIq3pH6sKpcNHzpGgz5iEHV/4S+2ZLPJd?= =?iso-8859-1?q?0yOKK5rQDW7Aa5uxY2M8liV4LXMDF17ZQj1rbSmGxpwrpyjJjSoo29OxaqWc?= =?iso-8859-1?q?o2WfBq5U=3D?= 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: da50d69c-f65d-4c20-2554-08da2d6b595a X-MS-Exchange-CrossTenant-originalarrivaltime: 04 May 2022 01:13:50.9708 (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: bfaLCoVigsCy1Ge8ogjoow5F5eu9Kp/7Pq5FDRr0UDrbs5pTdbOvF2Xfb6WjANRsZ0al03eGMqHIfZULtAJKbQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR10MB5830 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.486,18.0.858 definitions=2022-05-03_10:2022-05-02,2022-05-03 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 bulkscore=0 spamscore=0 malwarescore=0 adultscore=0 suspectscore=0 mlxscore=0 mlxlogscore=618 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2205040006 X-Proofpoint-ORIG-GUID: InahW_MdG_7maYl6mr0nPill0sQYit4V X-Proofpoint-GUID: InahW_MdG_7maYl6mr0nPill0sQYit4V X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: BEB7F4007D X-Stat-Signature: j953c9unijmetifh9i5ugfoubka5peha X-Rspam-User: Authentication-Results: imf11.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2021-07-09 header.b=o9pNEgCS; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=lTCaPiQw; spf=none (imf11.hostedemail.com: domain of liam.howlett@oracle.com has no SPF policy when checking 205.220.165.32) smtp.mailfrom=liam.howlett@oracle.com; dmarc=pass (policy=none) header.from=oracle.com X-HE-Tag: 1651626831-278441 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: From: "Liam R. Howlett" Use vma_lookup() to walk the tree to the start value requested. If the vma at the start does not match, then the answer is NULL and there is no need to look at the next vma the way that find_vma() would. Signed-off-by: Liam R. Howlett Reviewed-by: Vlastimil Babka --- include/linux/mm.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/linux/mm.h b/include/linux/mm.h index d11673080c33..0fdb19d1b48b 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -2852,7 +2852,7 @@ static inline unsigned long vma_pages(struct vm_area_struct *vma) static inline struct vm_area_struct *find_exact_vma(struct mm_struct *mm, unsigned long vm_start, unsigned long vm_end) { - struct vm_area_struct *vma = find_vma(mm, vm_start); + struct vm_area_struct *vma = vma_lookup(mm, vm_start); if (vma && (vma->vm_start != vm_start || vma->vm_end != vm_end)) vma = NULL; From patchwork Wed May 4 01:13:51 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 12840763 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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id B29ADC433F5 for ; Fri, 6 May 2022 08:36:43 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 460956B0073; Fri, 6 May 2022 04:36:43 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 40E066B0074; Fri, 6 May 2022 04:36:43 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 260E76B0075; Fri, 6 May 2022 04:36:43 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 1822D6B0073 for ; Fri, 6 May 2022 04:36:43 -0400 (EDT) Received: from smtpin18.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay12.hostedemail.com (Postfix) with ESMTP id E443E120A6D for ; Fri, 6 May 2022 08:36:42 +0000 (UTC) X-FDA: 79434662244.18.F3D895E Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by imf09.hostedemail.com (Postfix) with ESMTP id DED2E14000D for ; Fri, 6 May 2022 08:36:35 +0000 (UTC) Received: from pps.filterd (m0246629.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 243NIL3I004092; Wed, 4 May 2022 01:13:55 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=AsrOvEw+rNqDojiVyg1nxdaglDBANXREzfq5N79ptoc=; b=GoUi6YhAMWffD7jPmqcwujavKImUDOcW1reKRfsAkt2iIcNzBvgOsHzVCx4CgEFtGdwT wdSd1GegETP/ha1RA161fM/EHFwweC9iF1AKtxDPPlQsTmxz+U/0oSR9nuLWTK3K1t9/ 7X6rdteRmozo/Aixn7CTAUA+1TouP62XrAN4u5Jyyb9lGuOyxYFcoQlgZdtW18leO3vs 9oFKIFr1HlLW8xcoelkh4TpPRHXPlljXUgiCGk3ZHMioQZkhVxn/5Aj49GZga0sF1wZJ BVOKsqQDseZuqgO5ozs08RTBX10jUvsyl7Yh8mXWWMNRBZAr5X5JbLUlxKNUPMBh8vyI Gg== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3frw0apxyh-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:13:54 +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 2441BRJU013094; Wed, 4 May 2022 01:13:53 GMT Received: from nam10-dm6-obe.outbound.protection.outlook.com (mail-dm6nam10lp2105.outbound.protection.outlook.com [104.47.58.105]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com with ESMTP id 3fsvbmv3ke-6 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:13:53 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=kqK3UOGbWboTQCe4yC+iGWH6Y1BE3xSMfUSbU/DpvJEEJIeczfOT55DupdKRhZr6mr58ULurgsgYsa8qxdOKnTgMInjQJIGa6TyhS6h35ACH6N7hA6LTBJ80ExqyvKMoLWNPLDu52WBxlCCLS7FstTuQufaotFzL4CGneYtdc2AGP6tisf0AtiyEQ2O78dob5GciNSweIVqUY6uxKxtsIC512ITpkFj4KLOYtwK5BB2Innjju+QagHdzBNOAjrSRGzzwpAbQkIDH3WQC0l2xTob+7sSg1+qgC41ybDO/wumjA5DKS8zLv6PVDbJCVizwfHM8+fQrV1g1qkAWGXrMKw== 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=AsrOvEw+rNqDojiVyg1nxdaglDBANXREzfq5N79ptoc=; b=oRfV1tHbmteeTg7SssV/MRewedUMhTXwZQlfFuDxBMMQ/3VGG04b9WGHyluq1pqanmbYF9ATqCzlyhVftLD7nUAYxVItvqIxo447BDWjIm0VnPIH3NNPGIGPVJYo1X7PrYNhJ2qmpTXvPYnDj3kUVq6HQfI7dQKYWRpSEmzdpXCm5s0+aJZjACoWzM4fk6UOtNWVQX6VffzMyCeXoCEtZbJRLaz89+hFf22uDyPiqzOqOZZzosstrGEo80R6fGq+hPz1d3QZj+8ioy9K7GeV5aoYKmDgdRUtd6OfzbpkYYjJwNwuHBXlbUrBTq3v4eIK551qTTGqjL11Jh+DubuRsQ== 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=AsrOvEw+rNqDojiVyg1nxdaglDBANXREzfq5N79ptoc=; b=gXAOLiXHan6E0CuOIVTZbPaQMud8RtCMC8IiRqYUm9ZI/atYC9oudSEThi2xQy1SV0mGmmxS4kyjfBLFQ2blP8VPFyumKseGjJphJULxUvkVXx1D7rkFQlUavEMHMcH/6T4X5pvtxqgImlwX6D8NYHfTObrcRNrfjIw3avCPgOs= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by PH7PR10MB5830.namprd10.prod.outlook.com (2603:10b6:510:127::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5206.24; Wed, 4 May 2022 01:13:51 +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.5206.024; Wed, 4 May 2022 01:13:51 +0000 From: Liam Howlett To: "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton Subject: [PATCH v9 21/69] mm/khugepaged: optimize collapse_pte_mapped_thp() by using vma_lookup() Thread-Topic: [PATCH v9 21/69] mm/khugepaged: optimize collapse_pte_mapped_thp() by using vma_lookup() Thread-Index: AQHYX1Q37scr3TuLAUawfkN47cITRQ== Date: Wed, 4 May 2022 01:13:51 +0000 Message-ID: <20220504011345.662299-6-Liam.Howlett@oracle.com> References: <20220504002554.654642-1-Liam.Howlett@oracle.com> <20220504011345.662299-1-Liam.Howlett@oracle.com> In-Reply-To: <20220504011345.662299-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: 7950e136-9575-4cb7-2167-08da2d6b5998 x-ms-traffictypediagnostic: PH7PR10MB5830:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: RB3YNzNXr3azIQc87zY2WeQASiQOvMTmJI6Q+Sy+LMXHScUfI0NZK+AdwToWIujJ0Y6D4oDsVILWKggtjG5hESQWLiowY77xvrMNcCrlVNttzhimJGeBooWMrxPLtNlvIq3Fsdzo1KwSJHC3VhRtz5dIlXaFIW71GSHr5aWiShVky6b8NhWEB3lZaPifn2ucGpQ59tJHnIP5IVYsT7887qVnxnaVRCgRYKVew98wgThv0tR9/3w9Ez+ZfknOjDISUQoAoCdrkrbUfUftCwfsWKn/PrTGsqiDNvchGjWaEvMEbmp/nRctB201W8Agn+cgLAL85IEX4zUeiFTD43OiMkZsKv7Tul3TbcFl69+AbJf/3B9jtxEf+tfRT6Ej62kuPismRCKHxKyfuAVPtzUMezOn8B8BgLoQBt7FHFv9IDn7+6XEoF5BS3oY+hwl0A2OO8amh6VRCGshjC2CmKXgFn/WZ/oVMqbMz8ug4YXn3fQ5/0HB8yYpRg4oO8lZRfOadYJ0oUV1M0A7uJsoDipEE35y7wIREQPaherjrjuPGs+m8iwINO5LNzDm6Uzy9FAOfeIhG42V+1zDrJx28TNt4fAlSXXFq8YR6X6jLbb9SkKuade47lopqQ75Aik36n5WXSOdx1+5kvB+gv8R0liqUj6Gjv/EGPhBb0YYfesr5G16n92XPmvUI8BtCKoFP6ihq7SzkO2QBNB4CZaN2xSFDQ== 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)(86362001)(71200400001)(83380400001)(38100700002)(38070700005)(122000001)(316002)(110136005)(4744005)(44832011)(2906002)(8676002)(5660300002)(64756008)(66476007)(36756003)(8936002)(91956017)(66556008)(2616005)(66446008)(66946007)(76116006)(1076003)(186003)(6512007)(6486002)(508600001)(26005)(6506007);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?cWphXOyi0TNuyCGfCljXJaq?= =?iso-8859-1?q?FnNn10rxWetZUgUcE5i4hJlzzjbF3wN6e0Sj6Mh1TmnP1oQllDE1ndoJFcjz?= =?iso-8859-1?q?F4bdGG9h6LdzejmX1ZQJIykWsFHKtooHzmB4LmZ/Ptm+cAs18DgiCIt53GBJ?= =?iso-8859-1?q?K9kmSoh2cn48Ek6Ej44oA+fudqj9SB5fhqaHa9z97Yee0aTbh6O3i9l4PbxO?= =?iso-8859-1?q?/YH1Jpyvc6EdfkxwUMZcCaH5Jlbh5aT57bAzfBifx2XwWHbKVGOKIRs808N5?= =?iso-8859-1?q?WRDFZ4220l74xE1RSf3GWrEZnROyTcp8ZRoM1jVMNcV7Q52SHFKbr06cNFzZ?= =?iso-8859-1?q?9IIotAOxcq1XiaTWaIwXTx1JS1E/j2j1SDhSdKMz1TpD+oHM8yxwCfeG6QSB?= =?iso-8859-1?q?PFer/34dkYv9WmupGg0PcFN+/zOpMFCC4giS2++LpApJgBKGuR2oeACaae7J?= =?iso-8859-1?q?D7HmTfVsKNXJ2uS+Lub3exSfpaBXb98EDp7HP7yPM8OHfqb3nuB8V3xzbweu?= =?iso-8859-1?q?+AECVc9V6hUTtBoKA7nSgOsB30Er6FKqBLZH2KOB8KZDsPM8GDUKuMxbm0OP?= =?iso-8859-1?q?2+cPEtLvmruQfzdzyvMzks9i7NSZRz2rO99XBLNkVRSKS22B9VXvDvHxAW3b?= =?iso-8859-1?q?yrjFgMKou3P2PkZ9P84rSbdXmGAOLcHcjfuLkUPNIu+aueoGu3IBvd65rybG?= =?iso-8859-1?q?uSCNyqng8HNLIbRmEE7ne8pdA2SIAFp9RNurVaIEjCMvGBhiBpBZIubwbupg?= =?iso-8859-1?q?YTTfDTEB7T23WE7paPaute1CNFdo9kbd+W6H/M0OyBUF5/zHlDPjfxQAyZA0?= =?iso-8859-1?q?SAU0+/l8Gzq5TINYlwVmez+OWNTW01exgCeH9mYjpa1Omcdyyd0HQl2ZaUOl?= =?iso-8859-1?q?PX6QkworzG/8qrrO+HAx+aS3Mtiw87pIeCkkS8ZYBREZJp4I8MhAJluZudXm?= =?iso-8859-1?q?kZIMdr6HeWte61rCuTl654Xwi7m+MN66x3jIhweOQybFjGzqa3Rxev+49KPH?= =?iso-8859-1?q?tKOD+Efx6XnyqSwriKs4sZhdNzOc8MXVZHyurPLz9+s04voC8GbjcKdqQcG5?= =?iso-8859-1?q?JRIEBiIU71Ysfb+PPb1+3H50gFcKkc5zJInfNnURKgfedpUCzxWKrZ2Ja6V6?= =?iso-8859-1?q?Cp9nGnpBegUkyvX0jJQyepaLs7dOYsY5MvjBQl2L3D13Reg7+ASvL4235/aU?= =?iso-8859-1?q?2KglpxVlUW3VsaIm4rKdyVoRntS4lj6QOiFMg7x44MGj4n57HGdC2kXVWVka?= =?iso-8859-1?q?zKf83dFGzYqQx4h7W8Ez0IiCp/ykKc7976Dx6Mm3MTq2SSJkSoHZS7xUWr7w?= =?iso-8859-1?q?+4WFGGXg5a8jeZegVb4r+YVkRRoaJqsH1W14CRk/RJcfZcdqeZriaEUM4A7q?= =?iso-8859-1?q?ClPFJWH6HngU1KzopXBmSXo+uR9Aj+oOLqfCWRq7g4eWghMTOKdLUjLun5Nj?= =?iso-8859-1?q?D3+NTqab281zKfOfJigM8d7sYvzyR/sqYtgCetzE+tC0VChOcPuo4Mpq4Qmr?= =?iso-8859-1?q?gW39kwD+9ksyKvBpH6YvyYCNUMg85aocU18pFTIArrDWqS+LH0EmiGtd6Xfj?= =?iso-8859-1?q?C4AYA7CMURJpIqbZ0QiS2VqPh3PKR7N7rZJNgIMgnmppD+jJjTdFFVAm/QRw?= =?iso-8859-1?q?36S37eK5wDIvn6EuQtZSobDoPcoO1hQn8z2Io8M0yQhByICjyzDxs5XZYPIM?= =?iso-8859-1?q?rzwuJW41nUClnC8qw3Ft1zAm9DPV1yGJfYig1nt1GbgVuOko9fvrrTwJx0uv?= =?iso-8859-1?q?D3AgTBYXPoUqzf1rl7p5bFgoBw4IE4vNYUxldZwP6t6jxFfUKYh+mRXRuOOa?= =?iso-8859-1?q?hjak/US8=3D?= 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: 7950e136-9575-4cb7-2167-08da2d6b5998 X-MS-Exchange-CrossTenant-originalarrivaltime: 04 May 2022 01:13:51.2364 (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: 27fate5T9g4hfaWwV6XGBY2fr+DelmBkV/QpeQ6v6tZSbT2FTdcHNIMTuxoZXv+aHidzs42Vd9Wfjw5CEUmInQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR10MB5830 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.486,18.0.858 definitions=2022-05-03_10:2022-05-02,2022-05-03 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 bulkscore=0 spamscore=0 malwarescore=0 adultscore=0 suspectscore=0 mlxscore=0 mlxlogscore=865 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2205040006 X-Proofpoint-GUID: t4Tg2u5qXGycMDLgLu_nChMYO5L42VF6 X-Proofpoint-ORIG-GUID: t4Tg2u5qXGycMDLgLu_nChMYO5L42VF6 X-Stat-Signature: x7casgbe3ti4eno5susn846eftw37jhq X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: DED2E14000D X-Rspam-User: Authentication-Results: imf09.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2021-07-09 header.b=GoUi6YhA; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=gXAOLiXH; dmarc=pass (policy=none) header.from=oracle.com; spf=none (imf09.hostedemail.com: domain of liam.howlett@oracle.com has no SPF policy when checking 205.220.165.32) smtp.mailfrom=liam.howlett@oracle.com X-HE-Tag: 1651826195-655730 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: From: "Liam R. Howlett" vma_lookup() will walk the vma tree once and not continue to look for the next vma. Since the exact vma is checked below, this is a more optimal way of searching. Signed-off-by: Liam R. Howlett Reviewed-by: Vlastimil Babka --- mm/khugepaged.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mm/khugepaged.c b/mm/khugepaged.c index ac53ad2c9bb1..03fda93ade3e 100644 --- a/mm/khugepaged.c +++ b/mm/khugepaged.c @@ -1435,7 +1435,7 @@ static void collapse_and_free_pmd(struct mm_struct *mm, struct vm_area_struct *v void collapse_pte_mapped_thp(struct mm_struct *mm, unsigned long addr) { unsigned long haddr = addr & HPAGE_PMD_MASK; - struct vm_area_struct *vma = find_vma(mm, haddr); + struct vm_area_struct *vma = vma_lookup(mm, haddr); struct page *hpage; pte_t *start_pte, *pte; pmd_t *pmd; From patchwork Wed May 4 01:13:51 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 12836633 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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id DD983C433EF for ; Wed, 4 May 2022 01:13:59 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E72EA8D0002; Tue, 3 May 2022 21:13:57 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id E11988D0003; Tue, 3 May 2022 21:13:57 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id B9C1E8D0002; Tue, 3 May 2022 21:13:57 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id A56A26B0078 for ; Tue, 3 May 2022 21:13:57 -0400 (EDT) Received: from smtpin21.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay13.hostedemail.com (Postfix) with ESMTP id 849426015B for ; Wed, 4 May 2022 01:13:57 +0000 (UTC) X-FDA: 79426288914.21.B792292 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by imf21.hostedemail.com (Postfix) with ESMTP id 5ABBF1C0093 for ; Wed, 4 May 2022 01:13:51 +0000 (UTC) Received: from pps.filterd (m0246627.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 243Kx7fe030616; Wed, 4 May 2022 01:13:55 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=D8VHAXCDBNr0RFlC0KBVEEX+3S3/yCzOBs8oidqFoJA=; b=RkMoQBbIwtBu0X1JOZqtZwY5geVmjGzVQROqtoh4f3N0aMG1dwn0BbG1ZzOBLf3W9s2k a3Yk9zVjMX6J50dYyGhWLQBmLaiUQnure0MPVOnp2QihmlRxVOyNZAL6dE1/+f6ooj+b w0ebt/6DoZTr51CZWffZsrjjf14UqPQZJtVZS2OhtjQiEhtJrjzr6JSbtqxNNwwrxk2h 8UZaKVtvRkqobgaDAyeB62AfNyXNlprMNfw9qcOTDm8yNk0F2MM+GTIx0G22+KQb5dk4 hthOXg1v9cn0p/Ry+OMVnguW0H/Xp19km7GXSYCyJ/uDzlEl843pePPEvSTboQk1A6px fQ== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3fruq0f60q-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:13:55 +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 2441BRJV013094; Wed, 4 May 2022 01:13:53 GMT Received: from nam10-dm6-obe.outbound.protection.outlook.com (mail-dm6nam10lp2105.outbound.protection.outlook.com [104.47.58.105]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com with ESMTP id 3fsvbmv3ke-7 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:13:53 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=g6YYiZzz31c2N1JKIte+CZZnvaNxBJrc+NeBBKxyPzmw0+c+4KMew9kn5U2Cim240Hdw4mNaV+bT4w9ZKnJuS2fXxkf4GTMdfmrGOF0sCUcvuzMyPE6akXzxknUsandexM1o5/ndkJyQhe8am2VQ+RVB8Vaj8v6SkYdiAJc89JFVSN0BhZwCs2JeqPHsaIh6ROGlXNwEdtgPeBfB6KZiEEfuEhO+ZaksxXFZ8mm00JL8yCFFAfGWBSzyy44BlHJ5FSU2eoM0MuR/tLxaHRAybOdHmep2J9sILgEHsyOjGvjLWH2Qv2pJQ6PnRx0H6HN5c7LwE9cb8LdHq+5Zg9Rm0w== 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=D8VHAXCDBNr0RFlC0KBVEEX+3S3/yCzOBs8oidqFoJA=; b=a7dRB28uub7JFtg9rXvcXmlg3bpjsJbTAFUcdxfwAsUcPQ1KaBaPvmFAV8MYXjyNbgB5KamLiILJfRjmOzAsc63FpJqw6D8IOn9dJi+FtUjZVtQb62Ty/Kek68lUTpJZvjBJMXyxBkpqWEoekLLDsg9y4gqIQQU6xMcKjl3ijAC/3rIBfHFNClTBu3OUqwyi8BROzX5KQbCri6WjCc6tA4owPPg30/Fobz5TCkIVcoY1AlTpx4gd9WMYx+CciW4kka5Ps2nAET+4bsSYEydu+r+W/A/zgd47x5KwsYpPn+zI1IGMDSkObs3S0GA/3Ho0W6zkT4WAUbj4NleK6osVJw== 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=D8VHAXCDBNr0RFlC0KBVEEX+3S3/yCzOBs8oidqFoJA=; b=XZnwxQ13Z8HI/Lehpwerjt5osH5zjoBI1VMs3qNS1wfXOLujaG5gLzLJskqmYT0TFcBs6BneBQyd1DmLaWzW3h77par5y6h7MiMM0v72y3GM36NQQU05aK+H1aReDr7/XshABFjkG3JrZd0Ogc2kObqK9ZXlYCq7lqAG6JEKjpU= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by PH7PR10MB5830.namprd10.prod.outlook.com (2603:10b6:510:127::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5206.24; Wed, 4 May 2022 01:13:51 +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.5206.024; Wed, 4 May 2022 01:13:51 +0000 From: Liam Howlett To: "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton Subject: [PATCH v9 22/69] mm/mmap: change do_brk_flags() to expand existing VMA and add do_brk_munmap() Thread-Topic: [PATCH v9 22/69] mm/mmap: change do_brk_flags() to expand existing VMA and add do_brk_munmap() Thread-Index: AQHYX1Q3qHW9WWgfokCG7Iu1AYFFBg== Date: Wed, 4 May 2022 01:13:51 +0000 Message-ID: <20220504011345.662299-7-Liam.Howlett@oracle.com> References: <20220504002554.654642-1-Liam.Howlett@oracle.com> <20220504011345.662299-1-Liam.Howlett@oracle.com> In-Reply-To: <20220504011345.662299-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: 9e82e1f4-d4cb-4ec2-1d8a-08da2d6b59d6 x-ms-traffictypediagnostic: PH7PR10MB5830:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: MxHMvBFhGqdo8pWRJm2G7D421akMr8nwgiFxg3BtfjXygoMdvFhWynlY3F02GmibRDy86vPuUv2WKQ/p3zmabV/zpN8RVYyHqn3ZPMs+aOQJA3O7W57z6/EfDhC5JilaydowU3zhhuWJU2ytg6uithrb+EG1qD7cUgHOHA8OHYjEYRHWEtijtxKLPPnt0KZRoxlaMXYp6WZoIvzg8JG/qHObTwi7LdpwlK8x+KZ6MAb+OqlQ3AcO9mDtviDdL9h1WbT9306nXnGmVsEwGT0yVk0tu3UrZg+QNe74LiY5BcsO/PAoYnA0mj7u84K0j3zL1VKlTP2xYRux7J4xwlBmgK6wEwHMEzXwvoF23EYVGy7h9hY6B+DvPqTGbq1FbvBGv0Oi4CqqrZprU8T/v4HnWF0DdQa1ypqdKco3+pROL3T0QpjhvOu2jvLLledGLC8LgxQBn5lChuS3kIor3UViXyVP+c9sOVHH/a/vH/QNNCg8ytT/O8655nSLpCftVfXvofHzcPGHTNgoQ/k3qAcUiGq7fyqoC2rv6t1KhD0f6ja1nbbT9Hi/8bUeuCo7DWXnSXbPy6pFIgxIhbSenXitkG+fTkQUN3O0p3jG9ZRnfMABRw+kMhx38tm4T9Kckg4NbC2pne/Ybx0J9Xj4aS6lV1PtdeIRjIaFVxI23wvd5veLqBfxjBrdJ4fDrFt0FnK5E+MfYik3dVHcWiSyCINxvA== 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)(86362001)(71200400001)(83380400001)(38100700002)(38070700005)(122000001)(316002)(110136005)(44832011)(2906002)(8676002)(5660300002)(64756008)(66476007)(36756003)(8936002)(91956017)(30864003)(66556008)(2616005)(66446008)(66946007)(76116006)(1076003)(186003)(6512007)(6486002)(508600001)(26005)(6506007);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?+Bgyx2dqen3LrJr64kQE9Ak?= =?iso-8859-1?q?TnGdJ0k1VB4/n5E7JeaMdv5PUXSo+Yyq+5U2SiLGXu+xDQB0xSh4WQh3epOB?= =?iso-8859-1?q?Ij6pQibQQszleEKakZH/m6lL71Gnp3IG6dK8zxVCId4S1w3N1g/B5AgrEkPU?= =?iso-8859-1?q?jOZeA+0+1OTfoBntoHlU/YNRC1E1HT4atss/hXxD9zsqRU6KtS0EUHKIU0j6?= =?iso-8859-1?q?T1iwT9gh++5vujoCSombIKgHbM4mcvt65dfhyaXwJr/SH0WfyuSL90niXUwE?= =?iso-8859-1?q?gU1xXZ37ZaNY4JtzucN2shixbUWXoYG2innHW7bELWGHjIi/B/5/ulozkex/?= =?iso-8859-1?q?lvnYDW2GQBOjPlzw44CWXtd1DArc2CiIzbnJLzjLqgqoK12VnIwlO19BYsW0?= =?iso-8859-1?q?pNcGeG6tEqlVrwx5ostyCa9YCvZS0y6y93aVBj/nGoi3QyE5xI/e+NEaGrJj?= =?iso-8859-1?q?zrvHttq9PdEL9poPbUa7n4IYRrjNO+AyOAEqt3J2X8wTpvKTT0z/yvP+r+FH?= =?iso-8859-1?q?jO8Y3kFjDPFPcNBo2wDr093KCBTL9dmem7VZsLNBLUHF/nHvLRan+1FisHkl?= =?iso-8859-1?q?3SSzwNSmEwqLjUSiTAoi2LfheApD/6KVpwD0fQlGwjkO9qmhlih2JVYumAWs?= =?iso-8859-1?q?tbcB23sVqWY4EJ92ddSiAKz07FoSqxQkD1ANbnLIOk4acG0XkHVOTRmV9BJ/?= =?iso-8859-1?q?dzb/feuxYw5MPuES8tBkiqcT3gIHn3Lp9FkqzZ21CUorQKb37uZUfDLHKdsa?= =?iso-8859-1?q?QTHcDekY1amw9QD+AK0/TAITfNZzjzjJtT0sgtf2I+fblN+Rwf5oC6Q/nS0w?= =?iso-8859-1?q?YTDL6kCH+ycL/FVucidgQrD8oq8HmSlGDC/f0+3AZxhSXx37e2JprktLCnuw?= =?iso-8859-1?q?ON3rWMdJ6W1HHdYBlvohaIAxp3m9Ga7Kw+gmea79cTJ8TwiG+ncZRRVRiRd5?= =?iso-8859-1?q?hRIK36JKuM2U5QzxwcCY3emz50XWOoYTXPxRWnxewXvjpkzklmqWaOdp9NHC?= =?iso-8859-1?q?8a2Nuydv3JwpxvoiWUUjb4h43WLgfQq3jcIMyNGB0QUN7ahCkqko/6PlX/h/?= =?iso-8859-1?q?f/xRoxe+gKsF+59NSf+Z0rIg2/F7K56xdEHJAs/bWp5N5XwPX0DqzZTebC6Q?= =?iso-8859-1?q?d8relbloXwzcIJ3VM6dVvxqyeuYAnJXwkdsYujGlaYqNCM9QQmVr9OxrTcqx?= =?iso-8859-1?q?IhE/gttjX0SxQJEhW3hNQKZZzQ/hgv0NXGeD8yHROOhoMPLGfdToUu+CU/4T?= =?iso-8859-1?q?MGch3ydoEridN9YMa0JAazH8XaWVvzf26dPU6+QsHaTfngcgxHXScO18cZwM?= =?iso-8859-1?q?2xXN/nFHl95n39YXdk+vj6ipNt4EVc/3P4nTqT8l56hRsH5JQm4w0rs/ipOi?= =?iso-8859-1?q?W4q3JpYU1U5bTlfDeaFsOIn9uUvVeXhrV/2fiL/H8FLhbZfFFkK8MLbc1z/s?= =?iso-8859-1?q?ezOjCempElGqqUN/AnjR0khCbL5SR6CUleWgpaLc4bW1RRUHBLMQ5EDL0ALH?= =?iso-8859-1?q?ULHZue1hS/jPEg7+0CVK5SkveEVKi8hulPDkbeB1A+u0U6KZlTRMLWM9OqrF?= =?iso-8859-1?q?kNNkQmCPi81VfF4SdHMjRc0XHgSIn5r4KaJUUTri1ZGS+4uJBpe/Jol2rhe8?= =?iso-8859-1?q?MoUQt/Qb0r+5CO3tiMZHMm1xal9PSHW9YtZWZGe8wM3eSg93lX0g1W0H07+y?= =?iso-8859-1?q?GrA8ze38ByYMT/uPeuvQLmciCkLmtARR62pMTM/pfLRh7NdYKRpcIY+2MGNt?= =?iso-8859-1?q?8lQSjC4tBRRym6HsW+OFtZfteKJNn6yWCYYnd7pOzFHZUrSABt+cagpCyMSe?= =?iso-8859-1?q?uoZvCjbk=3D?= 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: 9e82e1f4-d4cb-4ec2-1d8a-08da2d6b59d6 X-MS-Exchange-CrossTenant-originalarrivaltime: 04 May 2022 01:13:51.6895 (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: xewVWnJ9z5/Jh4y+x/VcdFZyZdC/oowermHYlZlvxJdlX/z1bAlCYdEdQ7Hwo5FZNGjU3xQGu63lgohiYWSwVw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR10MB5830 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.486,18.0.858 definitions=2022-05-03_10:2022-05-02,2022-05-03 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 bulkscore=0 spamscore=0 malwarescore=0 adultscore=0 suspectscore=0 mlxscore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2205040006 X-Proofpoint-ORIG-GUID: pJOQA47OO0ci-HO2Yn6kJpm4znwHQUEi X-Proofpoint-GUID: pJOQA47OO0ci-HO2Yn6kJpm4znwHQUEi X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: 5ABBF1C0093 Authentication-Results: imf21.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2021-07-09 header.b=RkMoQBbI; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=XZnwxQ13; spf=none (imf21.hostedemail.com: domain of liam.howlett@oracle.com has no SPF policy when checking 205.220.165.32) smtp.mailfrom=liam.howlett@oracle.com; dmarc=pass (policy=none) header.from=oracle.com X-Rspam-User: X-Stat-Signature: 74ho9w1kmm7o1s6b7gxfigpiwt559r1x X-HE-Tag: 1651626831-562089 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: From: "Liam R. Howlett" Avoid allocating a new VMA when it a vma modification can occur. When a brk() can expand or contract a VMA, then the single store operation will only modify one index of the maple tree instead of causing a node to split or coalesce. This avoids unnecessary allocations/frees of maple tree nodes and VMAs. Move some limit & flag verifications out of the do_brk_flags() function to use only relevant checks in the code path of bkr() and vm_brk_flags(). Set the vma to check if it can expand in vm_brk_flags() if extra criteria are met. Drop userfaultfd from do_brk_flags() path and only use it in vm_brk_flags() path since that is the only place a munmap will happen. Signed-off-by: Liam R. Howlett --- mm/mmap.c | 286 +++++++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 228 insertions(+), 58 deletions(-) diff --git a/mm/mmap.c b/mm/mmap.c index 6f1d72172ef6..ec4ce76f02dc 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -194,17 +194,40 @@ static struct vm_area_struct *remove_vma(struct vm_area_struct *vma) return next; } -static int do_brk_flags(unsigned long addr, unsigned long request, unsigned long flags, - struct list_head *uf); +/* + * check_brk_limits() - Use platform specific check of range & verify mlock + * limits. + * @addr: The address to check + * @len: The size of increase. + * + * Return: 0 on success. + */ +static int check_brk_limits(unsigned long addr, unsigned long len) +{ + unsigned long mapped_addr; + + mapped_addr = get_unmapped_area(NULL, addr, len, 0, MAP_FIXED); + if (IS_ERR_VALUE(mapped_addr)) + return mapped_addr; + + return mlock_future_check(current->mm, current->mm->def_flags, len); +} +static int do_brk_munmap(struct ma_state *mas, struct vm_area_struct *vma, + unsigned long newbrk, unsigned long oldbrk, + struct list_head *uf); +static int do_brk_flags(struct ma_state *mas, struct vm_area_struct *brkvma, + unsigned long addr, unsigned long request, + unsigned long flags); SYSCALL_DEFINE1(brk, unsigned long, brk) { unsigned long newbrk, oldbrk, origbrk; struct mm_struct *mm = current->mm; - struct vm_area_struct *next; + struct vm_area_struct *brkvma, *next = NULL; unsigned long min_brk; bool populate; bool downgraded = false; LIST_HEAD(uf); + MA_STATE(mas, &mm->mm_mt, 0, 0); if (mmap_write_lock_killable(mm)) return -EINTR; @@ -246,35 +269,52 @@ SYSCALL_DEFINE1(brk, unsigned long, brk) /* * Always allow shrinking brk. - * __do_munmap() may downgrade mmap_lock to read. + * do_brk_munmap() may downgrade mmap_lock to read. */ if (brk <= mm->brk) { int ret; + /* Search one past newbrk */ + mas_set(&mas, newbrk); + brkvma = mas_find(&mas, oldbrk); + BUG_ON(brkvma == NULL); + if (brkvma->vm_start >= oldbrk) + goto out; /* mapping intersects with an existing non-brk vma. */ /* - * mm->brk must to be protected by write mmap_lock so update it - * before downgrading mmap_lock. When __do_munmap() fails, - * mm->brk will be restored from origbrk. + * mm->brk must be protected by write mmap_lock. + * do_brk_munmap() may downgrade the lock, so update it + * before calling do_brk_munmap(). */ mm->brk = brk; - ret = __do_munmap(mm, newbrk, oldbrk-newbrk, &uf, true); - if (ret < 0) { - mm->brk = origbrk; - goto out; - } else if (ret == 1) { + mas.last = oldbrk - 1; + ret = do_brk_munmap(&mas, brkvma, newbrk, oldbrk, &uf); + if (ret == 1) { downgraded = true; - } - goto success; + goto success; + } else if (!ret) + goto success; + + mm->brk = origbrk; + goto out; } - /* Check against existing mmap mappings. */ - next = find_vma(mm, oldbrk); + if (check_brk_limits(oldbrk, newbrk - oldbrk)) + goto out; + + /* + * Only check if the next VMA is within the stack_guard_gap of the + * expansion area + */ + mas_set(&mas, oldbrk); + next = mas_find(&mas, newbrk - 1 + PAGE_SIZE + stack_guard_gap); if (next && newbrk + PAGE_SIZE > vm_start_gap(next)) goto out; + brkvma = mas_prev(&mas, mm->start_brk); /* Ok, looks good - let it rip. */ - if (do_brk_flags(oldbrk, newbrk-oldbrk, 0, &uf) < 0) + if (do_brk_flags(&mas, brkvma, oldbrk, newbrk - oldbrk, 0) < 0) goto out; + mm->brk = brk; success: @@ -2766,38 +2806,113 @@ SYSCALL_DEFINE5(remap_file_pages, unsigned long, start, unsigned long, size, } /* - * this is really a simplified "do_mmap". it only handles - * anonymous maps. eventually we may be able to do some - * brk-specific accounting here. + * brk_munmap() - Unmap a parital vma. + * @mas: The maple tree state. + * @vma: The vma to be modified + * @newbrk: the start of the address to unmap + * @oldbrk: The end of the address to unmap + * @uf: The userfaultfd list_head + * + * Returns: 1 on success. + * unmaps a partial VMA mapping. Does not handle alignment, downgrades lock if + * possible. */ -static int do_brk_flags(unsigned long addr, unsigned long len, - unsigned long flags, struct list_head *uf) +static int do_brk_munmap(struct ma_state *mas, struct vm_area_struct *vma, + unsigned long newbrk, unsigned long oldbrk, + struct list_head *uf) { - struct mm_struct *mm = current->mm; - struct vm_area_struct *vma, *prev; - pgoff_t pgoff = addr >> PAGE_SHIFT; - int error; - unsigned long mapped_addr; - validate_mm_mt(mm); + struct mm_struct *mm = vma->vm_mm; + struct vm_area_struct unmap; + unsigned long unmap_pages; + int ret = 1; + + arch_unmap(mm, newbrk, oldbrk); + + if (likely((vma->vm_end < oldbrk) || + ((vma->vm_start == newbrk) && (vma->vm_end == oldbrk)))) { + /* remove entire mapping(s) */ + mas_set(mas, newbrk); + if (vma->vm_start != newbrk) + mas_reset(mas); /* cause a re-walk for the first overlap. */ + ret = __do_munmap(mm, newbrk, oldbrk - newbrk, uf, true); + goto munmap_full_vma; + } + + vma_init(&unmap, mm); + unmap.vm_start = newbrk; + unmap.vm_end = oldbrk; + ret = userfaultfd_unmap_prep(&unmap, newbrk, oldbrk, uf); + if (ret) + return ret; + ret = 1; - /* Until we need other flags, refuse anything except VM_EXEC. */ - if ((flags & (~VM_EXEC)) != 0) - return -EINVAL; - flags |= VM_DATA_DEFAULT_FLAGS | VM_ACCOUNT | mm->def_flags; + /* Change the oldbrk of vma to the newbrk of the munmap area */ + vma_adjust_trans_huge(vma, vma->vm_start, newbrk, 0); + if (mas_preallocate(mas, vma, GFP_KERNEL)) + return -ENOMEM; - mapped_addr = get_unmapped_area(NULL, addr, len, 0, MAP_FIXED); - if (IS_ERR_VALUE(mapped_addr)) - return mapped_addr; + if (vma->anon_vma) { + anon_vma_lock_write(vma->anon_vma); + anon_vma_interval_tree_pre_update_vma(vma); + } - error = mlock_future_check(mm, mm->def_flags, len); - if (error) - return error; + vma->vm_end = newbrk; + vma_init(&unmap, mm); + unmap.vm_start = newbrk; + unmap.vm_end = oldbrk; + if (vma->anon_vma) + vma_set_anonymous(&unmap); - /* Clear old maps, set up prev and uf */ - if (munmap_vma_range(mm, addr, len, &prev, uf)) - return -ENOMEM; + vma_mas_remove(&unmap, mas); + + vmacache_invalidate(vma->vm_mm); + if (vma->anon_vma) { + anon_vma_interval_tree_post_update_vma(vma); + anon_vma_unlock_write(vma->anon_vma); + } + + unmap_pages = vma_pages(&unmap); + if (vma->vm_flags & VM_LOCKED) + mm->locked_vm -= unmap_pages; + + mmap_write_downgrade(mm); + unmap_region(mm, &unmap, vma, newbrk, oldbrk); + /* Statistics */ + vm_stat_account(mm, vma->vm_flags, -unmap_pages); + if (vma->vm_flags & VM_ACCOUNT) + vm_unacct_memory(unmap_pages); + +munmap_full_vma: + validate_mm_mt(mm); + return ret; +} + +/* + * do_brk_flags() - Increase the brk vma if the flags match. + * @mas: The maple tree state. + * @addr: The start address + * @len: The length of the increase + * @vma: The vma, + * @flags: The VMA Flags + * + * Extend the brk VMA from addr to addr + len. If the VMA is NULL or the flags + * do not match then create a new anonymous VMA. Eventually we may be able to + * do some brk-specific accounting here. + */ +static int do_brk_flags(struct ma_state *mas, struct vm_area_struct *vma, + unsigned long addr, unsigned long len, + unsigned long flags) +{ + struct mm_struct *mm = current->mm; + struct vm_area_struct *prev = NULL; + validate_mm_mt(mm); - /* Check against address space limits *after* clearing old maps... */ + + /* + * Check against address space limits by the changed size + * Note: This happens *after* clearing old mappings in some code paths. + */ + flags |= VM_DATA_DEFAULT_FLAGS | VM_ACCOUNT | mm->def_flags; if (!may_expand_vm(mm, flags, len >> PAGE_SHIFT)) return -ENOMEM; @@ -2807,30 +2922,56 @@ static int do_brk_flags(unsigned long addr, unsigned long len, if (security_vm_enough_memory_mm(mm, len >> PAGE_SHIFT)) return -ENOMEM; - /* Can we just expand an old private anonymous mapping? */ - vma = vma_merge(mm, prev, addr, addr + len, flags, - NULL, NULL, pgoff, NULL, NULL_VM_UFFD_CTX, NULL); - if (vma) - goto out; - /* - * create a vma struct for an anonymous mapping + * Expand the existing vma if possible; Note that singular lists do not + * occur after forking, so the expand will only happen on new VMAs. */ - vma = vm_area_alloc(mm); - if (!vma) { - vm_unacct_memory(len >> PAGE_SHIFT); - return -ENOMEM; + if (vma && + (!vma->anon_vma || list_is_singular(&vma->anon_vma_chain)) && + ((vma->vm_flags & ~VM_SOFTDIRTY) == flags)) { + mas->index = vma->vm_start; + mas->last = addr + len - 1; + vma_adjust_trans_huge(vma, addr, addr + len, 0); + if (vma->anon_vma) { + anon_vma_lock_write(vma->anon_vma); + anon_vma_interval_tree_pre_update_vma(vma); + } + vma->vm_end = addr + len; + vma->vm_flags |= VM_SOFTDIRTY; + if (mas_store_gfp(mas, vma, GFP_KERNEL)) + return -ENOMEM; + + if (vma->anon_vma) { + anon_vma_interval_tree_post_update_vma(vma); + anon_vma_unlock_write(vma->anon_vma); + } + khugepaged_enter_vma_merge(vma, flags); + goto out; } + prev = vma; + + /* create a vma struct for an anonymous mapping */ + vma = vm_area_alloc(mm); + if (!vma) + goto vma_alloc_fail; vma_set_anonymous(vma); vma->vm_start = addr; vma->vm_end = addr + len; - vma->vm_pgoff = pgoff; + vma->vm_pgoff = addr >> PAGE_SHIFT; vma->vm_flags = flags; vma->vm_page_prot = vm_get_page_prot(flags); - if(vma_link(mm, vma, prev)) - goto no_vma_link; + mas_set_range(mas, vma->vm_start, addr + len - 1); + if ( mas_store_gfp(mas, vma, GFP_KERNEL)) + goto mas_store_fail; + mm->map_count++; + + if (!prev) + prev = mas_prev(mas, 0); + + __vma_link_list(mm, vma, prev); + mm->map_count++; out: perf_event_mmap(vma); mm->total_vm += len >> PAGE_SHIFT; @@ -2841,18 +2982,22 @@ static int do_brk_flags(unsigned long addr, unsigned long len, validate_mm_mt(mm); return 0; -no_vma_link: +mas_store_fail: vm_area_free(vma); +vma_alloc_fail: + vm_unacct_memory(len >> PAGE_SHIFT); return -ENOMEM; } int vm_brk_flags(unsigned long addr, unsigned long request, unsigned long flags) { struct mm_struct *mm = current->mm; + struct vm_area_struct *vma = NULL; unsigned long len; int ret; bool populate; LIST_HEAD(uf); + MA_STATE(mas, &mm->mm_mt, addr, addr); len = PAGE_ALIGN(request); if (len < request) @@ -2863,13 +3008,38 @@ int vm_brk_flags(unsigned long addr, unsigned long request, unsigned long flags) if (mmap_write_lock_killable(mm)) return -EINTR; - ret = do_brk_flags(addr, len, flags, &uf); + /* Until we need other flags, refuse anything except VM_EXEC. */ + if ((flags & (~VM_EXEC)) != 0) + return -EINVAL; + + ret = check_brk_limits(addr, len); + if (ret) + goto limits_failed; + + if (find_vma_intersection(mm, addr, addr + len)) + ret = do_munmap(mm, addr, len, &uf); + + if (ret) + goto munmap_failed; + + vma = mas_prev(&mas, 0); + if (!vma || vma->vm_end != addr || vma_policy(vma) || + !can_vma_merge_after(vma, flags, NULL, NULL, + addr >> PAGE_SHIFT,NULL_VM_UFFD_CTX, NULL)) + vma = NULL; + + ret = do_brk_flags(&mas, vma, addr, len, flags); populate = ((mm->def_flags & VM_LOCKED) != 0); mmap_write_unlock(mm); userfaultfd_unmap_complete(mm, &uf); if (populate && !ret) mm_populate(addr, len); return ret; + +munmap_failed: +limits_failed: + mmap_write_unlock(mm); + return ret; } EXPORT_SYMBOL(vm_brk_flags); From patchwork Wed May 4 01:13:51 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 12836634 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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 827B5C433FE for ; Wed, 4 May 2022 01:14:01 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 4EDD56B0078; Tue, 3 May 2022 21:13:58 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 3AD998D0003; Tue, 3 May 2022 21:13:58 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 08A368D0005; Tue, 3 May 2022 21:13:57 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id D31256B0078 for ; Tue, 3 May 2022 21:13:57 -0400 (EDT) Received: from smtpin10.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id B83C03CE for ; Wed, 4 May 2022 01:13:57 +0000 (UTC) X-FDA: 79426288914.10.09E5538 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by imf25.hostedemail.com (Postfix) with ESMTP id 80B78A008B for ; Wed, 4 May 2022 01:13:44 +0000 (UTC) Received: from pps.filterd (m0246627.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 243Kx7ff030616; Wed, 4 May 2022 01:13:56 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=yl9Gax7ZI4n0/oVxjNW4LW5//V5Da7Al5qqXAKDIc9Q=; b=o4yLX3MksYpO9TkgWb6oEbW9JLO6Y4GsS9KgC/CdW418VKff28dbtw1Q4GJHi21fpTdI Smj1eg4uMs7wEIHKd914hrHXzLWK7r6qM3btAjWRK0VzKTFmN7Y03kOq4D6rd59ZDKxo yzNCyc0jn1kkCdGQdgv/c0RoJD4gDt3e6shR0wqcXyLEXJIzW8tUIqNQVOixBoaWty2n CrH3Owa+0BwYpyb/XFKValcTovmrNmHWNHG22IZCrSYqycRkkB/Nr1E581T5Myl9st+e GS9Hhbh3nhsOtBhXIYIaLX7aH/NNKFIIzsqFFivvWPf7lfUPc82wdL6d1vweL5BZ+4wc zg== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3fruq0f60r-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:13:55 +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 2441BRJW013094; Wed, 4 May 2022 01:13:54 GMT Received: from nam10-dm6-obe.outbound.protection.outlook.com (mail-dm6nam10lp2105.outbound.protection.outlook.com [104.47.58.105]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com with ESMTP id 3fsvbmv3ke-8 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:13:54 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Ue/8q1IwT7oN2cVF7LdGrZHapSjNV34eB/JfVbUi0Vtwc4hcS3G/sPFBD/GvNjoIomRX88X2FnMlVOOod7UOjWt+rKPR2vhDPF73bna68zZHNlY7l2XxB15Th9gtL5SQsG5HlAQdqkvp/sK8DvZH+dExbgU/KIRjTZtFmMIiQkJnWVu3NcB/O0aGeYWyulnIlDfqPkAeQEHLwOzxqFI9SxeiAorejG20lNNHVpvbpocrvAHAVdg2T20w4X1g9NEgrukvzkOohnih9zHvrcKCwvBOEkqBKJH5Bu6GjCrCwkANTaLpiy7JILvTgyJkIAABHwL5GzYGQ3MQXcZC4oc01g== 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=yl9Gax7ZI4n0/oVxjNW4LW5//V5Da7Al5qqXAKDIc9Q=; b=IZf7CGpF3Asb1oWidGJF7HbMtD44K1FMP7Mmrs6/1fiJWp+CVz2Hi7iTP0His9RVbndx4AP5pcyCsSollcFFol6QliSeV/86U6lC84jrXVImWoh3vb6rK3n2eh/zG9DPP+WWADEelY3TA2LlkwHl5qjhuoiMSQiwQPH9KSPbsZHBSnOxQ67+4yj2EiCwxlcq+FGjiz3lcvbSRCm3BHrxeh9OyQ5It7UBSxn+fri/grbQmEETY6mXgh3DwPGTqhVFIF3HDY1+wuYG1xeBsROHC4HExSGhAxPYQ7Ih3me/T82rhdbqfKLEN8d3BTGQfNxpBy1ob86wS1UqxMQx24PYiw== 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=yl9Gax7ZI4n0/oVxjNW4LW5//V5Da7Al5qqXAKDIc9Q=; b=miR72fq+HufaJ1EoTZh4kPoDdIsj2M/oxWcRkILveN3B1VTIi9lz75f1VDZKsYu4aJurpyHR3zYGN4StmRj7nKab/jgUC7S2+EEmJWqkj4cMxbiH1QidzdGzD8mWm1vvOOjOXDV+Bh0nwOmUP8ZEHVe+4G9MXx+MI9B1qsxD3NU= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by PH7PR10MB5830.namprd10.prod.outlook.com (2603:10b6:510:127::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5206.24; Wed, 4 May 2022 01:13:52 +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.5206.024; Wed, 4 May 2022 01:13:52 +0000 From: Liam Howlett To: "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton Subject: [PATCH v9 23/69] mm: use maple tree operations for find_vma_intersection() Thread-Topic: [PATCH v9 23/69] mm: use maple tree operations for find_vma_intersection() Thread-Index: AQHYX1Q3mlFRYcoQUEaWWiN5amr27g== Date: Wed, 4 May 2022 01:13:51 +0000 Message-ID: <20220504011345.662299-8-Liam.Howlett@oracle.com> References: <20220504002554.654642-1-Liam.Howlett@oracle.com> <20220504011345.662299-1-Liam.Howlett@oracle.com> In-Reply-To: <20220504011345.662299-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: 4a1516bf-5e6e-491e-198f-08da2d6b5a14 x-ms-traffictypediagnostic: PH7PR10MB5830:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: VunZu37gr6U4MW2ZoaeJIUVxFfMWNBLy+R788xz+w0tBQeKhBclH71YPFs2Zi+/YkZrJjf7fhBcQ9dCSxVbG7kENJu47y4eEaMLghvgywrcnGxU6CY8z2sRK8tissmZxIBxfqUyJGbgTFLF1hHjd8nfRAn4uu4xDs+aM/i8N3UQsCMBl+VbM9ALfK/zuf1yO3JC218kfgyI4souUECB1Yxi86Lg7ZfiLlyxb7tTU4jN0N+dqKdqbhBvIXeUuvx5K2pS1m/Gki+0PGIgDjbB97mA8F82cQgvsttuYTJdp8EqQtWr8k7Ky9woDdi75PfGmgjTzM5+NsB4QWotQOiXPKFM5a695eXyWHUNT3OJJe617TWXvuEdLPSJJKLSmDNEFRzRq8iuE29QUTGm3Gv7VvGiyuaRtx6jW/4tNpuixQPvEMzAea+pBmlCU93TsF1CIFEYIAsMk1Ujf8somMWWnjoeKShqC6SPfwnv/UUpDRqJNbYr1PfvDEamvzgYb2pFEJFL3LFlk8RIt+NiLCrj/y1GtbJsBFujipNBG5ZiJ33RC4OBKZoacg4Kwo2rRieHbllbSaXMhNLH52uyikC0+wJUC7/vrWM5WWUztiJu7LB8FnjV7nNwRz7Y8SdGhx0XT9v6XQayJOAgEDYZ4EYI7tu3RcCzJKAg02rEqFhwuj4IwxdAOAsli0j5L7BHQHNQtO1FC4JRoI4tnTMUDtYw2KQ== 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)(86362001)(71200400001)(83380400001)(38100700002)(38070700005)(122000001)(316002)(110136005)(44832011)(2906002)(8676002)(5660300002)(64756008)(66476007)(36756003)(8936002)(91956017)(66556008)(2616005)(66446008)(66946007)(76116006)(1076003)(186003)(6512007)(6486002)(508600001)(26005)(6506007);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?Db+hNN1bm1PN6NAuNhZsXFc?= =?iso-8859-1?q?J2ktCHLdxN8QmvCkotta0NoPSG6qH00d49VFPfOVWZam6vo6nxDRGfl4w/o9?= =?iso-8859-1?q?QE0Tgkvdr+tw6MCJut+owdiTcg9uwWjRUcZZkLDqGq2s25+yY0KZdIuoFJ5/?= =?iso-8859-1?q?NCsnJ+6RbQ37k/FDw5B79ItuCgAcVgBOBIqmuodJFRDcxnypz5hm4nPcJZL8?= =?iso-8859-1?q?ssHWeDkXr2aQv4/fylgL7swS7EB5yO3redzejFm+I4LNH+HlVL3DWmZd8bBO?= =?iso-8859-1?q?xpr6/cXUOsInQEkRckXNyCgOZxHxgjOWae2Q5AW131xQ3SzGDCCD9R+QZTl2?= =?iso-8859-1?q?SFyrJJrhm9FcE/4vPAOt4V0a+Q97gSSuVC+Prj8HmeoH9y4vNxBVZEyBgoeC?= =?iso-8859-1?q?fikwoU2rfLcuq0bFlecGC/4SRhG501Ah9PfUPddynO4ScmYUuWzbI/rB0Xzs?= =?iso-8859-1?q?ULSdzIrZGZ5cHt+p0LOIH7m0CTb89vH4IDnGPGG5G0Iy3R0gqgAzFcmqrk4r?= =?iso-8859-1?q?bmB1fFodhs9dwMLI+EIcXV7PzeQBxFG1+GNmcwIsxzGdcE5Q8YkgPZ5sTbE2?= =?iso-8859-1?q?6Mlrs1eecSy/m2YWzFnEY+YeedVP9996K5zGw11GgCF8JovgPXhZd04mJNPu?= =?iso-8859-1?q?s5d6xly1iA5prcMI1xXz7C2RLpxT+h/8j/1i7WyRpXyontnNBNmqrjnR3Y3h?= =?iso-8859-1?q?IaJiCRSkbplptOZppmrUHfbErz4aAtx+tuIuBl+hOBBUMbq5yhCsWQ2aiobT?= =?iso-8859-1?q?AvXVJVm4hOF19V1vT9Ht04dfdAYmiMYg1pR7C/lAuUO1OVPcKGTJiJW7rK61?= =?iso-8859-1?q?HibmSAut5B55TA8FVky79+k8s5R3I90XvpzLRh5n33SMntlQmRlHWvxaS5Ea?= =?iso-8859-1?q?0IQ5iHh3oTE6gHnR8vYWU9eCCsivsnddqwadSzGg7g3H9hGhJJBcDoJNQyZb?= =?iso-8859-1?q?wOSAL2ju830O15qhvKnnlcnMZQO1Silno+8lZq2JesboBe0aX2efCGauy4il?= =?iso-8859-1?q?iheim61w53Nch3nesNyMLVrrqOUXirN0kN4NfWRJoxD7OTmgq3HimZ+fURa8?= =?iso-8859-1?q?WwtNsIOoFjzWmYDfE38grHSAeW8R18MTECmSkuRGUlSTZW73NTqICslr/uIQ?= =?iso-8859-1?q?oqZrkQDuTyIVPftI5EZd4sWprbczOmOfaFiAkAsg3HKoNKaQSyQPfKtRUpb4?= =?iso-8859-1?q?jJFkPaTGec9h4YKyNQG6Bf9jdyVeMU+QUg7Erbw4CYfjTOfLdmrZekf5ymf5?= =?iso-8859-1?q?DLL5PA4xlADl+NKFSCRVwovJGWBuia3ROH8oH/mO3mE9J2h7UhhWh27YONqp?= =?iso-8859-1?q?z1s2+3wTH3+cEMVL8kpa7PncIT4eTl1zfqswUuyEq3RIY8l+FrD0/79d+V1u?= =?iso-8859-1?q?qYmC5leqOLBI+6R8R4/pJLbCQBW6qVJ9Ru6snYoMSsVu3oOAYjhbzpec32cF?= =?iso-8859-1?q?wMAyce5trQSq9PisTE/2qEur1USK1DEkpOP+plyc7qxzHneeDO1v5FB2HguC?= =?iso-8859-1?q?buQSQMVugvji4OKhypZGkoKK+IcF0PKO6JmAJAZyc+84xW+FBkb9AYXLUmYd?= =?iso-8859-1?q?4zFyO8a55A3GIPfqMS44sl3LuZii32PFGh7oD3xq4gst+HzZ4pKMoI2W+4Al?= =?iso-8859-1?q?klMEkJlmykxm30IGHrOpvo9ASyeo8TdBOuta8LMzov83BYItVrUWTuPxBDvL?= =?iso-8859-1?q?L/EiSZsH2NoFZiFyc0sKMv+Y0u5oFUtnjNkVeQjL29M8WGyjVJBFs66Kpq8G?= =?iso-8859-1?q?QijMqGv4r2XfvcwKZvb75m1qaeV/xTa+xWUW5VfHrc0FUXFgE+zTvkJtGRfN?= =?iso-8859-1?q?Tp0nqbDU=3D?= 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: 4a1516bf-5e6e-491e-198f-08da2d6b5a14 X-MS-Exchange-CrossTenant-originalarrivaltime: 04 May 2022 01:13:51.9707 (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: ke4Z9OwFQdhkQgd6M0JR74akFIwVBBdqfPCL9XWsR5gUpnoKrOL3Rr87Idu6nxf4yswPwJV2pS/Xr5t7IWitAg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR10MB5830 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.486,18.0.858 definitions=2022-05-03_10:2022-05-02,2022-05-03 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 bulkscore=0 spamscore=0 malwarescore=0 adultscore=0 suspectscore=0 mlxscore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2205040006 X-Proofpoint-ORIG-GUID: VWO3OS50xBdTFgbPBkDwaA1kWGmsqBcO X-Proofpoint-GUID: VWO3OS50xBdTFgbPBkDwaA1kWGmsqBcO X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: 80B78A008B Authentication-Results: imf25.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2021-07-09 header.b=o4yLX3Mk; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=miR72fq+; spf=none (imf25.hostedemail.com: domain of liam.howlett@oracle.com has no SPF policy when checking 205.220.165.32) smtp.mailfrom=liam.howlett@oracle.com; dmarc=pass (policy=none) header.from=oracle.com X-Rspam-User: X-Stat-Signature: jrhhbz7cdtstfo9r7373zdfn9y9isx81 X-HE-Tag: 1651626824-861933 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: From: "Liam R. Howlett" Move find_vma_intersection() to mmap.c and change implementation to maple tree. When searching for a vma within a range, it is easier to use the maple tree interface. Exported find_vma_intersection() for kvm module. Signed-off-by: Liam R. Howlett --- include/linux/mm.h | 22 ++++------------------ mm/mmap.c | 29 +++++++++++++++++++++++++++++ mm/nommu.c | 11 +++++++++++ 3 files changed, 44 insertions(+), 18 deletions(-) diff --git a/include/linux/mm.h b/include/linux/mm.h index 0fdb19d1b48b..6db9face6f84 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -2780,26 +2780,12 @@ extern struct vm_area_struct * find_vma(struct mm_struct * mm, unsigned long add extern struct vm_area_struct * find_vma_prev(struct mm_struct * mm, unsigned long addr, struct vm_area_struct **pprev); -/** - * find_vma_intersection() - Look up the first VMA which intersects the interval - * @mm: The process address space. - * @start_addr: The inclusive start user address. - * @end_addr: The exclusive end user address. - * - * Returns: The first VMA within the provided range, %NULL otherwise. Assumes - * start_addr < end_addr. +/* + * Look up the first VMA which intersects the interval [start_addr, end_addr) + * NULL if none. Assume start_addr < end_addr. */ -static inline struct vm_area_struct *find_vma_intersection(struct mm_struct *mm, - unsigned long start_addr, - unsigned long end_addr) -{ - struct vm_area_struct *vma = find_vma(mm, start_addr); - - if (vma && end_addr <= vma->vm_start) - vma = NULL; - return vma; -} + unsigned long start_addr, unsigned long end_addr); /** * vma_lookup() - Find a VMA at a specific address diff --git a/mm/mmap.c b/mm/mmap.c index ec4ce76f02dc..5f948f353376 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -2069,6 +2069,35 @@ get_unmapped_area(struct file *file, unsigned long addr, unsigned long len, EXPORT_SYMBOL(get_unmapped_area); +/** + * find_vma_intersection() - Look up the first VMA which intersects the interval + * @mm: The process address space. + * @start_addr: The inclusive start user address. + * @end_addr: The exclusive end user address. + * + * Returns: The first VMA within the provided range, %NULL otherwise. Assumes + * start_addr < end_addr. + */ +struct vm_area_struct *find_vma_intersection(struct mm_struct *mm, + unsigned long start_addr, + unsigned long end_addr) +{ + struct vm_area_struct *vma; + unsigned long index = start_addr; + + mmap_assert_locked(mm); + /* Check the cache first. */ + vma = vmacache_find(mm, start_addr); + if (likely(vma)) + return vma; + + vma = mt_find(&mm->mm_mt, &index, end_addr - 1); + if (vma) + vmacache_update(start_addr, vma); + return vma; +} +EXPORT_SYMBOL(find_vma_intersection); + /** * find_vma() - Find the VMA for a given address, or the next vma. * @mm: The mm_struct to check diff --git a/mm/nommu.c b/mm/nommu.c index 81408d20024f..2870edfad8ed 100644 --- a/mm/nommu.c +++ b/mm/nommu.c @@ -629,6 +629,17 @@ static void delete_vma(struct mm_struct *mm, struct vm_area_struct *vma) vm_area_free(vma); } +struct vm_area_struct *find_vma_intersection(struct mm_struct *mm, + unsigned long start_addr, + unsigned long end_addr) +{ + unsigned long index = start_addr; + + mmap_assert_locked(mm); + return mt_find(&mm->mm_mt, &index, end_addr - 1); +} +EXPORT_SYMBOL(find_vma_intersection); + /* * look up the first VMA in which addr resides, NULL if none * - should be called with mm->mmap_lock at least held readlocked From patchwork Wed May 4 01:13:52 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 12836635 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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4E808C433EF for ; Wed, 4 May 2022 01:14:03 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id B9FC46B007E; Tue, 3 May 2022 21:13:58 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id AFFB08D0003; Tue, 3 May 2022 21:13:58 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 88DF16B0081; Tue, 3 May 2022 21:13:58 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 668FC6B007E for ; Tue, 3 May 2022 21:13:58 -0400 (EDT) Received: from smtpin10.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay13.hostedemail.com (Postfix) with ESMTP id 4B2FF6015B for ; Wed, 4 May 2022 01:13:58 +0000 (UTC) X-FDA: 79426288956.10.69E3C7B Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by imf04.hostedemail.com (Postfix) with ESMTP id 7A4D440091 for ; Wed, 4 May 2022 01:13:50 +0000 (UTC) Received: from pps.filterd (m0246617.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 243LFfwt018740; Wed, 4 May 2022 01:13:56 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=X6qGeI2TKZ8tGbYX+Q741pAHhwxnP4fVxkRtKIu3QGQ=; b=NZWV6E8hd4yqwq1AQGwO6qN63JC1ZAglUJRMuN0SS88iw2UAHQHmqv6qACn8wdB/bsTa 2ervmh/zpGX/T5JFlmeLuMW1HPTrUQUkMzmEXbs8yoSllXue+6iEIFNMihYpXUa067ru lL/cWhk17KTlmGwOSAhe7RLvbWMRzdbAM0z6Qtf0L8vqy+eySNEvNfwjbqJhsw7KTGpr gicNMaTub+mwAtpXWNAkTBTA7nFgCCnPWwsLx1aURb+bSq0eQwj2dIm3rhfLQF8j3Q+k QGA3uqwLCp+4j5mrs4IFHim2vS/fn+L1KuKq7Ph7P7XvNHKTnzEB6GJumdF/UAStpVS2 hg== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3frwnt74gh-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:13:56 +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 2441BRJX013094; Wed, 4 May 2022 01:13:54 GMT Received: from nam10-dm6-obe.outbound.protection.outlook.com (mail-dm6nam10lp2105.outbound.protection.outlook.com [104.47.58.105]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com with ESMTP id 3fsvbmv3ke-9 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:13:54 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=F0yY2wmPUnOafdneFwmCwsIcJrm5FoCCF3KWOAu+HQZWkWAn6+Qk4tsOgw7VTzjTl7WUIJ4dKvIU5uEie2pU9fHQeYEePJd9pds66h5TesKcx17McaCFaZ/yOJVKA2UsQA0Kj1jTwYrLOGuKkUdse6xqi6Ax1ffOS5wYR7Ovcq8yzimUWmxbBqOTzwwPqzSXIR4NvIv/1fW+Ofhpej4ZaQPwORepzep3iGyAl8qacCJyQJ0OFxs6Np11eJvJQX9KwVJeHsQ7TbZLHewgcaTn3BafT/uv/9TvMZxXXB55aj+HQSu/Lo5M3jYfPsJgx0Kb9RPwVt5rIt8hjNK4mLgcKw== 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=X6qGeI2TKZ8tGbYX+Q741pAHhwxnP4fVxkRtKIu3QGQ=; b=lqinb4JdgwKM+Ro9PlZxVjEO1gjlY8KpvKIBMHmaXBmReFCVUNoXm82CbiRZsf/GKYRVJpTmL8l0MkI56xLrdIxQZNOZDKH7kH8ins/pduHQsC/WzVXpBabWK6puQlVaqIcOQp15DCtcd6u6WyFlJmRUcJF8yZ6NegAb2OhAo2b2y7EwYJQ2R6fMSXU8+mma5qDscA2l6Hm8vYt+fHO2I6Qzy9MvM1tTJGLUGtn0LM3k844eKi4PLeQ7x6uJ9Y6+MnoorIRMQa7eVnlQAxjdM2gw/8s5LY3hmlTAscCk6VUI+dIwwXxQjPmgbtdDdv2soRTiMOO5UlSJk996hm/gDw== 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=X6qGeI2TKZ8tGbYX+Q741pAHhwxnP4fVxkRtKIu3QGQ=; b=p4lOs5N5UDBiJcc+cI2S47m8gokZfGDr1fZlMihR6Di8NZ5PzGZtNA26Yw4oES7W4wcNCZHGmdtfjKqqnQg5MWyvuGDPPmT4/2x7hZyTE/T0JCmPiPVqFnC2VtBq29e5nDkSpcYTc2JJJshEkxtPxa8dt70URv/Z9f/mMntq2Jg= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by PH7PR10MB5830.namprd10.prod.outlook.com (2603:10b6:510:127::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5206.24; Wed, 4 May 2022 01:13:52 +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.5206.024; Wed, 4 May 2022 01:13:52 +0000 From: Liam Howlett To: "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton Subject: [PATCH v9 24/69] mm/mmap: use advanced maple tree API for mmap_region() Thread-Topic: [PATCH v9 24/69] mm/mmap: use advanced maple tree API for mmap_region() Thread-Index: AQHYX1Q3aD9uSrK4x0WsZnSWu9xT+A== Date: Wed, 4 May 2022 01:13:52 +0000 Message-ID: <20220504011345.662299-9-Liam.Howlett@oracle.com> References: <20220504002554.654642-1-Liam.Howlett@oracle.com> <20220504011345.662299-1-Liam.Howlett@oracle.com> In-Reply-To: <20220504011345.662299-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: 11c42c2b-aa93-46ff-15b2-08da2d6b5a52 x-ms-traffictypediagnostic: PH7PR10MB5830:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: RYwlCstj18rF8zIwVLQl6VBBNAATtM2D1/pnsmgF0F1g5EfFatWls0q8OMSgrixRV/a4KCLQ2iF30XdjgThTLfldtWAM5xT+ztAbp2nQfxg58e4MI7+ofDyy2jF3mDaXkpo8TrO30C2xN5HIikCgbGEse48LW1Nnv+FwcmF1b8NDwgqGTd5Nqr/XT0s8kxIm5XNi5xLE3GXG0ByAWyDUxEx5iT9P4MVeavnInik/8sA/VTz2brrLZ3HeZSoApQn1Zyl5b/syLY8yW7hZrwQvuKGkTsar33tCL3yH3WZG31l7lryL4DG7ZgK64Cw4+bX78WLx/Mci0o9gqYglTJJ0bo7HS2NWui1xJUzGBILo1n2xHOguMk903Eox/dXeZAiOHTTNDMi5jbE0xxODLv2nLNbQTXuBt8jt7dyFASMyuqnVnB1ZU1le6AgNFRPimrawyZhZ1mTiThmtzkD622OCBI6OqyDg0ZVvQqU+dY9ELmuDORdqjwQoSFXwjFx918yQ4xvqbIzXmF6FqQllGSWlPiuv0mDuxizN7yGtJBrr4luwlZDhFm7JmcassL9V9DuncCJVy2peFDEjP88aO+/vq2mS1bF20CZ+QYYqRCMrsCotW5fKzQd7mfgy99P8gINmJeiri0m4BVpQU2v5hzviNnGooBJ8iZw1V3YtSIqXlhdC2jQcovz/eNqEr6fKfEpilobCJYRoIeW912sSQRgQNQ== 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)(86362001)(71200400001)(83380400001)(38100700002)(38070700005)(122000001)(316002)(110136005)(44832011)(2906002)(8676002)(5660300002)(64756008)(66476007)(36756003)(8936002)(91956017)(30864003)(66556008)(2616005)(66446008)(66946007)(76116006)(1076003)(186003)(6512007)(6486002)(508600001)(26005)(6506007);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?v4+I4d0XUBbAy3yU3jbCkFY?= =?iso-8859-1?q?Sw2JOPyK1lSglKPJv+vNVKPK8ELpVIVvhfbOFMPtrlqh7po91AbsQxF4GJhf?= =?iso-8859-1?q?T+yWxl1Qpj/MYBHYzAb2JL9W7kvSO/QSfXBJkaRHJao4KpkfkjWpciLc0b1b?= =?iso-8859-1?q?5NQRVuClpnytG86Nz4IoStqeu2iwzAjXAGiPHovYRzw5peRBC0Nt3MuUCrjZ?= =?iso-8859-1?q?jZZk6j/CW3VFv41C2gM7n+hx3vlvKZIzgOgUSZYFGftDVZPtXvBYQB0zHEvR?= =?iso-8859-1?q?fAAWVuLID4wmt4TP01+u/w7LBctvDM3eaB7oKudKJaLMmHBa7J7CkKMIcoL5?= =?iso-8859-1?q?mMIEL3feKdcJaxaF720a5PfanlHskPPFcvt6wnRxuhgktF/m9SQd82YsGm+X?= =?iso-8859-1?q?JtlrUYDReQtLn/FKMM1qJg9wkutsUXWwJlRLUHHMHQYvI8iMcuZ7JgkcMDjJ?= =?iso-8859-1?q?m7AGoT/0C5Ojf65f9U1HvLRKD3NLtmO8+55uR6B+PaEXcuBuxi8HwTyn9SIf?= =?iso-8859-1?q?+bU8gakY/SV4I3QL9CnZuypepZcXos2I+rqcyNclMfTPZRUJfuB1jb72yyHC?= =?iso-8859-1?q?RIDnl341HP0NZCM6Y0E6fOS4DbM9pmGLek4+R438pSIwTll6B1D2Zzck49SS?= =?iso-8859-1?q?+Y6mZkPTAUSpnDk9kY2BySv6vH9tOV+KMkveof2ccRk794Ws/ND7mF3XSIin?= =?iso-8859-1?q?C4I0y844YDqAhzEsyBVFABTresbT02K9SOAoean+x+ru9fFl3dUwHB2EuAVF?= =?iso-8859-1?q?/uJYy2za77m5VaHlfTHA152dghdEw2oPY7/JroJTEW+TTL+amuPw1RQ8eESc?= =?iso-8859-1?q?3Hqc45N3zxhtz3BmDE3gOIzd63TUrW3CduTcgaiSD0leke+akkeH5/Mm4wFs?= =?iso-8859-1?q?oOACI5QBT8p8IztoqH4nM4thZUV/U1RdwZIn+nKJRNfi7iBs5sLZh+15EGn+?= =?iso-8859-1?q?daz2ozAQyrkBAYpyG/lbo+g1d/qNEnXdRvpR0kzfFxsA6Ule9UZS82/Bcar0?= =?iso-8859-1?q?vsbfLIsIdioKk25Iho40yAF1O67QMCo/YwAnQZqbGz9cFVhz7lGkL1hDYr92?= =?iso-8859-1?q?YMHwN5Dp9CgC/La130pSkThLZOBMeKMO4G3+jyVlXyYx2aWRlwZj/ewB/L+f?= =?iso-8859-1?q?1wdkdE7idu9F66DkukG5xekYNs/81puwXSxm6ihwK8vkDF2dW/hjH2+FqgJc?= =?iso-8859-1?q?eukUVuVu2pGZdRm1DFaLtDOBJ4Nr2/Q0cH0qH4ksxgKML+LYlvIB+s0kA3bL?= =?iso-8859-1?q?PBr8dbh+K5HJ+79+6Sis6yG5547JuXoCuiSDJG8nyCgOshOYtBon3lJcU0ey?= =?iso-8859-1?q?52BGoAm8Y+A5zhw7qKm8vr2gg01WGmH/Iy0Q3q0YVr86kxhJ+T7heNLJmvUP?= =?iso-8859-1?q?r+X4zTPKofhZQX4sdwRZGeGzljrXNiEqooOxsby6kg2EYo6ZSCoN/Zx3S0rV?= =?iso-8859-1?q?Fodr2i7ACkOVUKnbq0LIRWGLZa/uG2dEdGkXMgZ4cuBAE/BpWvGviiQ36wl0?= =?iso-8859-1?q?9IJ1sOuUCzRIXfXdT8QGpPudBRMBR56ITKvDHHs10iZXvo2HbDU0TPmM3s3f?= =?iso-8859-1?q?6YsIgCGvpd1eLRvQwvTOjw/aS25Zchk+tNBCZZssNh4cFKJe+2yMfRD3M/nV?= =?iso-8859-1?q?RosT75yt6AH2zpI0CIVka2HHii9zlC3D5ivOjrXMk9cVAqD7IElwUfvUCNiK?= =?iso-8859-1?q?M9om7f+eUs2AIuaGNvwyouCIIF+Hb+wFKB1pH1jTHZyYCuOhxOJ5FFdoX5JT?= =?iso-8859-1?q?FnMpP5QIucmMQV4bkyZpKuyUbTU2IpquTCPiF4rKLGYNA0fZbcFVxgg9u+vR?= =?iso-8859-1?q?fNQElKac=3D?= 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: 11c42c2b-aa93-46ff-15b2-08da2d6b5a52 X-MS-Exchange-CrossTenant-originalarrivaltime: 04 May 2022 01:13:52.3769 (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: nBNW17e7rnvXmK5kQMpUamzGIOM14jIZRUcm95sM0OPUisaEie0BjNP0zgUfX2nc6KO03TtD2RuGuXe32a0QbA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR10MB5830 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.486,18.0.858 definitions=2022-05-03_10:2022-05-02,2022-05-03 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 bulkscore=0 spamscore=0 malwarescore=0 adultscore=0 suspectscore=0 mlxscore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2205040006 X-Proofpoint-ORIG-GUID: tVAB3G9LE3btbBiyaVGYcq9zetMIHrVT X-Proofpoint-GUID: tVAB3G9LE3btbBiyaVGYcq9zetMIHrVT X-Stat-Signature: 47i99twig9tx3qmwfaneh4xd1585er8w X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: 7A4D440091 X-Rspam-User: Authentication-Results: imf04.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2021-07-09 header.b=NZWV6E8h; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=p4lOs5N5; dmarc=pass (policy=none) header.from=oracle.com; spf=none (imf04.hostedemail.com: domain of liam.howlett@oracle.com has no SPF policy when checking 205.220.165.32) smtp.mailfrom=liam.howlett@oracle.com X-HE-Tag: 1651626830-934008 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: From: "Liam R. Howlett" Changing mmap_region() to use the maple tree state and the advanced maple tree interface allows for a lot less tree walking. This change removes the last caller of munmap_vma_range(), so drop this unused function. Add vma_expand() to expand a VMA if possible by doing the necessary hugepage check, uprobe_munmap of files, dcache flush, modifications then undoing the detaches, etc. Signed-off-by: Liam R. Howlett --- mm/mmap.c | 245 +++++++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 198 insertions(+), 47 deletions(-) diff --git a/mm/mmap.c b/mm/mmap.c index 5f948f353376..baf608975f99 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -516,28 +516,6 @@ static inline struct vm_area_struct *__vma_next(struct mm_struct *mm, return vma->vm_next; } -/* - * munmap_vma_range() - munmap VMAs that overlap a range. - * @mm: The mm struct - * @start: The start of the range. - * @len: The length of the range. - * @pprev: pointer to the pointer that will be set to previous vm_area_struct - * - * Find all the vm_area_struct that overlap from @start to - * @end and munmap them. Set @pprev to the previous vm_area_struct. - * - * Returns: -ENOMEM on munmap failure or 0 on success. - */ -static inline int -munmap_vma_range(struct mm_struct *mm, unsigned long start, unsigned long len, - struct vm_area_struct **pprev, struct list_head *uf) -{ - while (range_has_overlap(mm, start, start + len, pprev)) - if (do_munmap(mm, start, len, uf)) - return -ENOMEM; - return 0; -} - static unsigned long count_vma_pages_range(struct mm_struct *mm, unsigned long addr, unsigned long end) { @@ -664,6 +642,127 @@ static void __insert_vm_struct(struct mm_struct *mm, struct ma_state *mas, mm->map_count++; } +/* + * vma_expand - Expand an existing VMA + * + * @mas: The maple state + * @vma: The vma to expand + * @start: The start of the vma + * @end: The exclusive end of the vma + * @pgoff: The page offset of vma + * @next: The current of next vma. + * + * Expand @vma to @start and @end. Can expand off the start and end. Will + * expand over @next if it's different from @vma and @end == @next->vm_end. + * Checking if the @vma can expand and merge with @next needs to be handled by + * the caller. + * + * Returns: 0 on success + */ +inline int vma_expand(struct ma_state *mas, struct vm_area_struct *vma, + unsigned long start, unsigned long end, pgoff_t pgoff, + struct vm_area_struct *next) +{ + struct mm_struct *mm = vma->vm_mm; + struct address_space *mapping = NULL; + struct rb_root_cached *root = NULL; + struct anon_vma *anon_vma = vma->anon_vma; + struct file *file = vma->vm_file; + bool remove_next = false; + bool anon_cloned = false; + + if (next && (vma != next) && (end == next->vm_end)) { + remove_next = true; + if (next->anon_vma && !vma->anon_vma) { + int error; + + vma->anon_vma = next->anon_vma; + error = anon_vma_clone(vma, next); + if (error) + return error; + anon_cloned = true; + } + } + + /* Not merging but overwriting any part of next is not handled. */ + VM_BUG_ON(!remove_next && next != vma && end > next->vm_start); + /* Only handles expanding */ + VM_BUG_ON(vma->vm_start < start || vma->vm_end > end); + + if (mas_preallocate(mas, vma, GFP_KERNEL)) + goto nomem; + + vma_adjust_trans_huge(vma, start, end, 0); + + if (file) { + mapping = file->f_mapping; + root = &mapping->i_mmap; + uprobe_munmap(vma, vma->vm_start, vma->vm_end); + i_mmap_lock_write(mapping); + flush_dcache_mmap_lock(mapping); + vma_interval_tree_remove(vma, root); + } else if (anon_vma) { + anon_vma_lock_write(anon_vma); + anon_vma_interval_tree_pre_update_vma(vma); + } + + vma->vm_start = start; + vma->vm_end = end; + vma->vm_pgoff = pgoff; + /* Note: mas must be pointing to the expanding VMA */ + vma_mas_store(vma, mas); + + if (file) { + vma_interval_tree_insert(vma, root); + flush_dcache_mmap_unlock(mapping); + } + + /* Expanding over the next vma */ + if (remove_next) { + /* Remove from mm linked list - also updates highest_vm_end */ + __vma_unlink_list(mm, next); + + /* Kill the cache */ + vmacache_invalidate(mm); + + if (file) + __remove_shared_vm_struct(next, file, mapping); + + } else if (!next) { + mm->highest_vm_end = vm_end_gap(vma); + } + + if (anon_vma) { + anon_vma_interval_tree_post_update_vma(vma); + anon_vma_unlock_write(anon_vma); + } + + if (file) { + i_mmap_unlock_write(mapping); + uprobe_mmap(vma); + } + + if (remove_next) { + if (file) { + uprobe_munmap(next, next->vm_start, next->vm_end); + fput(file); + } + if (next->anon_vma) + anon_vma_merge(vma, next); + mm->map_count--; + mpol_put(vma_policy(next)); + vm_area_free(next); + } + + validate_mm(mm); + return 0; + +nomem: + if (anon_cloned) + unlink_anon_vmas(vma); + return -ENOMEM; +} + /* * We cannot adjust vm_start, vm_end, vm_pgoff fields of a vma that * is already present in an i_mmap tree without adjusting the tree. @@ -1665,9 +1764,15 @@ unsigned long mmap_region(struct file *file, unsigned long addr, struct list_head *uf) { struct mm_struct *mm = current->mm; - struct vm_area_struct *vma, *prev, *merge; - int error; + struct vm_area_struct *vma = NULL; + struct vm_area_struct *prev, *next; + pgoff_t pglen = len >> PAGE_SHIFT; unsigned long charged = 0; + unsigned long end = addr + len; + unsigned long merge_start = addr, merge_end = end; + pgoff_t vm_pgoff; + int error; + MA_STATE(mas, &mm->mm_mt, addr, end - 1); /* Check against address space limit. */ if (!may_expand_vm(mm, vm_flags, len >> PAGE_SHIFT)) { @@ -1677,16 +1782,17 @@ unsigned long mmap_region(struct file *file, unsigned long addr, * MAP_FIXED may remove pages of mappings that intersects with * requested mapping. Account for the pages it would unmap. */ - nr_pages = count_vma_pages_range(mm, addr, addr + len); + nr_pages = count_vma_pages_range(mm, addr, end); if (!may_expand_vm(mm, vm_flags, (len >> PAGE_SHIFT) - nr_pages)) return -ENOMEM; } - /* Clear old maps, set up prev and uf */ - if (munmap_vma_range(mm, addr, len, &prev, uf)) + /* Unmap any existing mapping in the area */ + if (do_munmap(mm, addr, len, uf)) return -ENOMEM; + /* * Private writable mapping: check memory availability */ @@ -1697,14 +1803,43 @@ unsigned long mmap_region(struct file *file, unsigned long addr, vm_flags |= VM_ACCOUNT; } - /* - * Can we just expand an old mapping? - */ - vma = vma_merge(mm, prev, addr, addr + len, vm_flags, - NULL, file, pgoff, NULL, NULL_VM_UFFD_CTX, NULL); - if (vma) - goto out; + next = mas_next(&mas, ULONG_MAX); + prev = mas_prev(&mas, 0); + if (vm_flags & VM_SPECIAL) + goto cannot_expand; + + /* Attempt to expand an old mapping */ + /* Check next */ + if (next && next->vm_start == end && !vma_policy(next) && + can_vma_merge_before(next, vm_flags, NULL, file, pgoff+pglen, + NULL_VM_UFFD_CTX, NULL)) { + merge_end = next->vm_end; + vma = next; + vm_pgoff = next->vm_pgoff - pglen; + } + + /* Check prev */ + if (prev && prev->vm_end == addr && !vma_policy(prev) && + (vma ? can_vma_merge_after(prev, vm_flags, vma->anon_vma, file, + pgoff, vma->vm_userfaultfd_ctx, NULL) : + can_vma_merge_after(prev, vm_flags, NULL, file, pgoff, + NULL_VM_UFFD_CTX , NULL))) { + merge_start = prev->vm_start; + vma = prev; + vm_pgoff = prev->vm_pgoff; + } + + + /* Actually expand, if possible */ + if (vma && + !vma_expand(&mas, vma, merge_start, merge_end, vm_pgoff, next)) { + khugepaged_enter_vma_merge(vma, vm_flags); + goto expanded; + } + mas.index = addr; + mas.last = end - 1; +cannot_expand: /* * Determine the object being mapped and call the appropriate * specific mapper. the address has already been validated, but @@ -1717,7 +1852,7 @@ unsigned long mmap_region(struct file *file, unsigned long addr, } vma->vm_start = addr; - vma->vm_end = addr + len; + vma->vm_end = end; vma->vm_flags = vm_flags; vma->vm_page_prot = vm_get_page_prot(vm_flags); vma->vm_pgoff = pgoff; @@ -1738,28 +1873,30 @@ unsigned long mmap_region(struct file *file, unsigned long addr, * * Answer: Yes, several device drivers can do it in their * f_op->mmap method. -DaveM - * Bug: If addr is changed, prev, rb_link, rb_parent should - * be updated for vma_link() */ WARN_ON_ONCE(addr != vma->vm_start); addr = vma->vm_start; + mas_reset(&mas); /* If vm_flags changed after call_mmap(), we should try merge vma again * as we may succeed this time. */ if (unlikely(vm_flags != vma->vm_flags && prev)) { - merge = vma_merge(mm, prev, vma->vm_start, vma->vm_end, vma->vm_flags, + next = vma_merge(mm, prev, vma->vm_start, vma->vm_end, vma->vm_flags, NULL, vma->vm_file, vma->vm_pgoff, NULL, NULL_VM_UFFD_CTX, NULL); - if (merge) { + if (next) { /* ->mmap() can change vma->vm_file and fput the original file. So * fput the vma->vm_file here or we would add an extra fput for file * and cause general protection fault ultimately. */ fput(vma->vm_file); vm_area_free(vma); - vma = merge; - /* Update vm_flags to pick up the change. */ + vma = prev; + /* Update vm_flags and possible addr to pick up the change. We don't + * warn here if addr changed as the vma is not linked by vma_link(). + */ + addr = vma->vm_start; vm_flags = vma->vm_flags; goto unmap_writable; } @@ -1783,7 +1920,7 @@ unsigned long mmap_region(struct file *file, unsigned long addr, goto free_vma; } - if (vma_link(mm, vma, prev)) { + if (mas_preallocate(&mas, vma, GFP_KERNEL)) { error = -ENOMEM; if (file) goto unmap_and_free_vma; @@ -1791,12 +1928,28 @@ unsigned long mmap_region(struct file *file, unsigned long addr, goto free_vma; } + if (vma->vm_file) + i_mmap_lock_write(vma->vm_file->f_mapping); + + vma_mas_store(vma, &mas); + __vma_link_list(mm, vma, prev); + mm->map_count++; + if (vma->vm_file) { + if (vma->vm_flags & VM_SHARED) + mapping_allow_writable(vma->vm_file->f_mapping); + + flush_dcache_mmap_lock(vma->vm_file->f_mapping); + vma_interval_tree_insert(vma, &vma->vm_file->f_mapping->i_mmap); + flush_dcache_mmap_unlock(vma->vm_file->f_mapping); + i_mmap_unlock_write(vma->vm_file->f_mapping); + } + /* Once vma denies write, undo our temporary denial count */ unmap_writable: if (file && vm_flags & VM_SHARED) mapping_unmap_writable(file->f_mapping); file = vma->vm_file; -out: +expanded: perf_event_mmap(vma); vm_stat_account(mm, vm_flags, len >> PAGE_SHIFT); @@ -1823,6 +1976,7 @@ unsigned long mmap_region(struct file *file, unsigned long addr, vma_set_page_prot(vma); + validate_mm(mm); return addr; unmap_and_free_vma: @@ -1839,6 +1993,7 @@ unsigned long mmap_region(struct file *file, unsigned long addr, unacct_error: if (charged) vm_unacct_memory(charged); + validate_mm(mm); return error; } @@ -2636,10 +2791,6 @@ int __do_munmap(struct mm_struct *mm, unsigned long start, size_t len, prev = vma->vm_prev; /* we have start < vma->vm_end */ - /* if it doesn't overlap, we have nothing.. */ - if (vma->vm_start >= end) - return 0; - /* * If we need to split any vma, do it now to save pain later. * From patchwork Wed May 4 01:13:52 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 12836636 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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0B89BC433FE for ; Wed, 4 May 2022 01:14:05 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 8E7CE8D0005; Tue, 3 May 2022 21:13:59 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 868598D0003; Tue, 3 May 2022 21:13:59 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 581C28D0005; Tue, 3 May 2022 21:13:59 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 45A028D0003 for ; Tue, 3 May 2022 21:13:59 -0400 (EDT) Received: from smtpin23.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 2360D204FC for ; Wed, 4 May 2022 01:13:59 +0000 (UTC) X-FDA: 79426288998.23.BF1A2D8 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by imf09.hostedemail.com (Postfix) with ESMTP id DAD9114006E for ; Wed, 4 May 2022 01:13:52 +0000 (UTC) Received: from pps.filterd (m0246617.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 243MdDbT019339; Wed, 4 May 2022 01:13:57 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=P31wKZAxGt5Hyz6T2c0DsqKf621iHzkaaJJkn8g1yTU=; b=qmgJrfnJXPRKdCI2vDz8lplwvhxIpbmzeYEoTHSJgWPfzb3r3feRVagpKoqKZbZCN6QD y5PLwIB24G1OQ7NFQKzTtEcnABlxfmn3UyCjbD4k/VWV1UTcUcYqFlbCNkxadCn+eKT2 MUcgGBnwPUxmSdY9f39ynATF/p5AmHyO/tNOXbiBK8bLW2ICgb1R/FTO+5eTHFghgDQU eozCdTKjS2DYfNbwCxhSvYZVNRGfRaol2zGS0C9dFzl8Ciya/Z5fblNYLumDZLutED8c l8WECjPqaS8iDUbpp22xanGHXJtthF+eGdZ/+1JsIxJIbYT3N8B9Nr22dxzCT8LY1/WE 5w== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3frwnt74gj-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:13:56 +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 2441BRJZ013094; Wed, 4 May 2022 01:13:55 GMT Received: from nam10-dm6-obe.outbound.protection.outlook.com (mail-dm6nam10lp2105.outbound.protection.outlook.com [104.47.58.105]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com with ESMTP id 3fsvbmv3ke-11 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:13:55 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=MTFi6vRyt0tkGZPjkCVgIv7VNwHgtYywoNL81oDAItRyxfQg/tMLeNs8i7CrvjM5gZV/xF/x0XBidMBhn39UUykE86VOLlslo0VFQl1HB0G30hdgizkhdW1AD2LvF8yTVnk474Yu+eUTrI8qb4oC4TZMYGZz+j2s9fpB8joLzAUxcnuAVnMq5VYG9M00DOxIPgKiy/iMQPlblcY2UY3KPXaSrMn4TcpQJDxtD68ZPrwCWYVGCM+dWE619kuRf9lEe8gbNH3nju4Apz/1REdH0MEF2WarKP+zAtRxCG+5mr8eReQD/AIJ+pFJtttA3rHZlYMYm6E0FYBEp4D15cJ9cQ== 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=P31wKZAxGt5Hyz6T2c0DsqKf621iHzkaaJJkn8g1yTU=; b=j1qh+OBhf5VacuZwCkp06iFnkxAdoRuVzaCaIwQGMlLmTjXXS7nolsU2RrkGJpBbqzVX1cJt61uLlzDjbcT8TFeZ2ASlgPE54yojS5dZGMLrWf2lsG8ZA2EmgHU2l2+Wg+e3qghkiI3M57E6VfVkdNWkTcE+mxgUP6ScVoCzimiFtL+32fQvCnPZqUs/fvCDFvLtCOQhOs57jC5id2BnH7UqbPbMlaLjnwt4glTBHO/Ct1CL/id7j+sSGKxJL8cvQFUIQwg+WPzgLzfrGt3URz1xwZ0Cj/mBSwN80PTyvrV81y9D8r897FRATwa+EwPgV2dhhfzWo2gFUx+jZwgFzg== 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=P31wKZAxGt5Hyz6T2c0DsqKf621iHzkaaJJkn8g1yTU=; b=p/iMcydpSGIBVf5i73LcueKzLtwmAlo0BTOm33R9ODWyVsOOuBSoHqgYu6U0HamxYn4cczhVZlSEudT+H4UhS4ohqBY3LMdfZv/YOm4wwUlx0QXsCdoZy+w8bqIU6x09/hvJHnWohBRR8iMTMEmxjTPbMO7a1c/EMqNyqyks/TM= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by PH7PR10MB5830.namprd10.prod.outlook.com (2603:10b6:510:127::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5206.24; Wed, 4 May 2022 01:13:53 +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.5206.024; Wed, 4 May 2022 01:13:53 +0000 From: Liam Howlett To: "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton Subject: [PATCH v9 25/69] mm: remove vmacache Thread-Topic: [PATCH v9 25/69] mm: remove vmacache Thread-Index: AQHYX1Q3k5d/NGnKy0a6Z2p3Vdrj/g== Date: Wed, 4 May 2022 01:13:52 +0000 Message-ID: <20220504011345.662299-10-Liam.Howlett@oracle.com> References: <20220504002554.654642-1-Liam.Howlett@oracle.com> <20220504011345.662299-1-Liam.Howlett@oracle.com> In-Reply-To: <20220504011345.662299-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: 0ffef555-5656-4cab-9af8-08da2d6b5a99 x-ms-traffictypediagnostic: PH7PR10MB5830:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: /d2nFUNmRi3xl82ir+wWfltgAUz5fBEWotbbMs0c4CbZZfotjSRLFWrstkgg0fWEjpOYYXQLxrjcWxgmueTnMzzk5TqsRC8lQrSXr9RgpDoLa7kF+gLuAgM8/gVu2k4RJSZDcYH7Ot2WQQeFYk88RRMcJpHaYOtnGCibTGa9hf+9SMoBJM8rJXVgFWeUQSwSD4BP6P5yymQOF6UCI0/agZZQbdzE2ySsjXQZx7o73EFbTSw6T23r7QlzOWwLX97oMX8h3WtOwmnjyzNyd1K+MR79Ua0zUSMZA9fBxpxVTAtFUVq5lf2+kJtIbkbUoW2N2uxTGmFqa02X8Tuy07XvwIt4brUCSeFUBzLGrKj+runSY2vYxaPoTe1170gmAFdtmjflIaSWKzXR5x6htNriedvX44k14WoE0nqIhZVaHogjorfpxiFGihfYMJ8WFmuF2xKDz38PlvJYUdyFyM8jNxvdMxRbEQYYZYJ41IGYONLjUb7qSnhS2zu3T2dsDDDUmsKw3EWin8VXNZdbinCpGbQv+78r3SXGfh+hCqWb7WwHxp/qhuk/4anQZIdZOQHwj9ixKRbL81NmhJLYgeWbAnAmLuTIM/+t7Pk0G43x5D2US5QfJ8V6nCDGQwqYboDXcvMd8DKrMvFV6DbTFG9E/3QCGo0c2YvZD8sWBrB8Uw3uQWCmQLPhTwMDvau5NGG0fVsYj8x5wZtx1t6JSafBJQ== 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)(86362001)(71200400001)(83380400001)(38100700002)(38070700005)(122000001)(316002)(110136005)(44832011)(2906002)(8676002)(5660300002)(64756008)(66476007)(36756003)(8936002)(91956017)(30864003)(66556008)(2616005)(66446008)(66946007)(76116006)(1076003)(186003)(6512007)(6486002)(508600001)(26005)(6506007)(579004);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?ZJqfmH9+uq4U8L8hi/bRmmx?= =?iso-8859-1?q?Ob955RgTddphg7nKvD3TsXFg821+pdj4EeOiwN3ci2t6l+g2q/kkT/GlGeAv?= =?iso-8859-1?q?gIEl4wOztdjjeraZjlA9BWmX8sI5rXe+iUorLBIRYv0gr4jKbcWw9D+Qbth/?= =?iso-8859-1?q?62VTg8k1bvY1vmWAriyAq930ovkpJUYg4UsT1/3q7J5pBYfC51uB/z1DCZLj?= =?iso-8859-1?q?IYEfOWNasYF1H+C+uJHmVZ//ueybxqSeL/tsyYUxZO4Wwofa2b5GTgo8WzSf?= =?iso-8859-1?q?WBUz9NnSn5PTIW+pg5b0jPp/RfLRTZuDRIHMGNKVTIvUrM0CaUfPb5RVrEH2?= =?iso-8859-1?q?06QnnB2VsDy2c/NuVW1by/WqttLXalfVSBMdqz6VBxC61GTRkZEQ/6/7ExvO?= =?iso-8859-1?q?SwwwJxGkCMOCZ6kuhsr1Nyl49AoP5Sos+86HaUK02IZv4sJIh6W30fGX25DT?= =?iso-8859-1?q?H2TnNNdXGVqw3r+R+xmlK5WnhOzxmUiW5FyORq15Wq0VxCUYAwpfrBnay4Fi?= =?iso-8859-1?q?Ki1rcdoObtDWBRoNhSVYKfITXt/1je/q0k7d9QgErqX+R3SRKKRCorjux/Db?= =?iso-8859-1?q?K5iCcCudT9B/DPb9XCCuA1daBhJj5hNZSKvh83FZIF+I0w+CW07czUN7mr/b?= =?iso-8859-1?q?w/doFkF3Z8G2jU9uMwJ8xnbQcMNrN7EABgUmwYv+5P9szP4TEPSOBCxkQjKk?= =?iso-8859-1?q?gzZ75FOLMUxcDPZZ6Nsh0rvfuHhL+XwNI/m+GRHUcWydTUrvnjkL0TBniwry?= =?iso-8859-1?q?FBIpNASUUlRkNMqcP+B16dq0RdLCnhdL/jjpqELpFerMNa8+FNp7jiS1cUyh?= =?iso-8859-1?q?Unxt5/QLm2hPS4TspOAut4allR7AcM2WmWoe8iuapHEbJD31fDPE73vvRFsE?= =?iso-8859-1?q?Rf6L/IW0CyoLidgZEP7ogrvMpeZiAnla1+zPvkZCdkGGIjG6zzyLLNqS/cwW?= =?iso-8859-1?q?eC3pDb2DCyRFAppdnE7AjzNURcWwSnjWEoTsCm4RYl0u0MXp8KGNd6IIctDP?= =?iso-8859-1?q?p7haGD+1HyZfj/aYkeVXD7SMiNQ9Nektan1ZT3hL6Ll6fbTSXSdEs7KQfb91?= =?iso-8859-1?q?tcKqTZn6ls3Fot9GZI6DBDvTmDmqFvUOTwRtO2vzfEnWz6WKOL7G/zB6ttzO?= =?iso-8859-1?q?zGS/6QmsG6SZqqwP7Wh3WB8DC0ij1mrN0sf/Z870HukNn3smF1AGRUDuImS9?= =?iso-8859-1?q?cFCP/YgJYDN0JoptC03kCJSPopZYhaSDodtcjqQGWvFGBWD/aCQwSLl7npS9?= =?iso-8859-1?q?f4RUg/OOCoW1j61fd/RD6HcCTZj9BLCTBk2haijbv5Esk3SULx0GV14/SKou?= =?iso-8859-1?q?NpQHtRmHMSSYa0e99ZBMgvLEpPZWHJC8PAt1+eY+j48efbtGX28pt4m2Rbis?= =?iso-8859-1?q?s7O6D21UT6vFI2V47rHFpujlbIMrJ38peW/m14+lCAd0VUdGRY12pTjBntZq?= =?iso-8859-1?q?0fgsUp7NaSRNut4NszryKcwjuO63C+2RVc1Fy2nngMPqIQMTVkcJCG/Kc+Zw?= =?iso-8859-1?q?Mgq5wE6q9f2vZkEWSVA1oE69x5TuaQ8WcD/kx56rbuMNfAwW68Av7wZz/800?= =?iso-8859-1?q?uRUvSE6yVVBLs72s/0880UgviJpceOo1zksWBRn+TsjIVU3UGy86GBMW+bgT?= =?iso-8859-1?q?fuXJOyySCPb/fz5f7FT9JUI4A8DAbqSxwHb0WSzRGX/DXDu8Xm78PDoWhWlZ?= =?iso-8859-1?q?udTypAZtsyqCqHxEV2R6BdtQ5EmSP7J8LrMPmPcYGkFOwrVIntrB+Xw6+TVX?= =?iso-8859-1?q?LTR9CY+6qcR56jzMIpfgQBByYdxrRbUZyixY7txjkpxRJfExJEByo4z6h1tD?= =?iso-8859-1?q?YU2GrnL4=3D?= 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: 0ffef555-5656-4cab-9af8-08da2d6b5a99 X-MS-Exchange-CrossTenant-originalarrivaltime: 04 May 2022 01:13:52.7519 (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: y8zPEaImHuXq5mop8tMcZdi3EaJqPkaIIqVWWLGjfWiKWXewwwGlpPoQVogKsNCaRKABPTKM2IObf+gt0ET2LQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR10MB5830 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.486,18.0.858 definitions=2022-05-03_10:2022-05-02,2022-05-03 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 bulkscore=0 spamscore=0 malwarescore=0 adultscore=0 suspectscore=0 mlxscore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2205040006 X-Proofpoint-ORIG-GUID: o-Wzt1XFEFckJgyyi3vO-ORdpfKaUYvD X-Proofpoint-GUID: o-Wzt1XFEFckJgyyi3vO-ORdpfKaUYvD X-Rspamd-Server: rspam03 X-Rspamd-Queue-Id: DAD9114006E X-Stat-Signature: yzwznz6nw77rdnpghqreoe1ji38iyggg Authentication-Results: imf09.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2021-07-09 header.b=qmgJrfnJ; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b="p/iMcydp"; dmarc=pass (policy=none) header.from=oracle.com; spf=none (imf09.hostedemail.com: domain of liam.howlett@oracle.com has no SPF policy when checking 205.220.165.32) smtp.mailfrom=liam.howlett@oracle.com X-Rspam-User: X-HE-Tag: 1651626832-993295 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: From: "Liam R. Howlett" By using the maple tree and the maple tree state, the vmacache is no longer beneficial and is complicating the VMA code. Remove the vmacache to reduce the work in keeping it up to date and code complexity. Signed-off-by: Liam R. Howlett Acked-by: Vlastimil Babka --- fs/exec.c | 3 - fs/proc/task_mmu.c | 1 - include/linux/mm_types.h | 1 - include/linux/mm_types_task.h | 12 ---- include/linux/sched.h | 1 - include/linux/vm_event_item.h | 4 -- include/linux/vmacache.h | 28 -------- include/linux/vmstat.h | 6 -- kernel/debug/debug_core.c | 12 ---- kernel/fork.c | 5 -- lib/Kconfig.debug | 8 --- mm/Makefile | 2 +- mm/debug.c | 4 +- mm/mmap.c | 32 +--------- mm/nommu.c | 37 ++--------- mm/vmacache.c | 117 ---------------------------------- mm/vmstat.c | 4 -- 17 files changed, 9 insertions(+), 268 deletions(-) delete mode 100644 include/linux/vmacache.h delete mode 100644 mm/vmacache.c diff --git a/fs/exec.c b/fs/exec.c index e3e55d5e0be1..14e7278a1ab8 100644 --- a/fs/exec.c +++ b/fs/exec.c @@ -28,7 +28,6 @@ #include #include #include -#include #include #include #include @@ -1023,8 +1022,6 @@ static int exec_mmap(struct mm_struct *mm) activate_mm(active_mm, mm); if (IS_ENABLED(CONFIG_ARCH_WANT_IRQS_OFF_ACTIVATE_MM)) local_irq_enable(); - tsk->mm->vmacache_seqnum = 0; - vmacache_flush(tsk); task_unlock(tsk); if (old_mm) { mmap_read_unlock(old_mm); diff --git a/fs/proc/task_mmu.c b/fs/proc/task_mmu.c index a843d13e2e1a..b940b969b000 100644 --- a/fs/proc/task_mmu.c +++ b/fs/proc/task_mmu.c @@ -1,6 +1,5 @@ // SPDX-License-Identifier: GPL-2.0 #include -#include #include #include #include diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h index 50c53f370bf6..b844119387a3 100644 --- a/include/linux/mm_types.h +++ b/include/linux/mm_types.h @@ -465,7 +465,6 @@ struct mm_struct { struct { struct vm_area_struct *mmap; /* list of VMAs */ struct maple_tree mm_mt; - u64 vmacache_seqnum; /* per-thread vmacache */ #ifdef CONFIG_MMU unsigned long (*get_unmapped_area) (struct file *filp, unsigned long addr, unsigned long len, diff --git a/include/linux/mm_types_task.h b/include/linux/mm_types_task.h index c1bc6731125c..0bb4b6da9993 100644 --- a/include/linux/mm_types_task.h +++ b/include/linux/mm_types_task.h @@ -24,18 +24,6 @@ IS_ENABLED(CONFIG_ARCH_ENABLE_SPLIT_PMD_PTLOCK)) #define ALLOC_SPLIT_PTLOCKS (SPINLOCK_SIZE > BITS_PER_LONG/8) -/* - * The per task VMA cache array: - */ -#define VMACACHE_BITS 2 -#define VMACACHE_SIZE (1U << VMACACHE_BITS) -#define VMACACHE_MASK (VMACACHE_SIZE - 1) - -struct vmacache { - u64 seqnum; - struct vm_area_struct *vmas[VMACACHE_SIZE]; -}; - /* * When updating this, please also update struct resident_page_types[] in * kernel/fork.c diff --git a/include/linux/sched.h b/include/linux/sched.h index a8911b1f35aa..c58392abc663 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -861,7 +861,6 @@ struct task_struct { struct mm_struct *active_mm; /* Per-thread vma caching: */ - struct vmacache vmacache; #ifdef SPLIT_RSS_COUNTING struct task_rss_stat rss_stat; diff --git a/include/linux/vm_event_item.h b/include/linux/vm_event_item.h index e83967e4c20e..5e80138ce624 100644 --- a/include/linux/vm_event_item.h +++ b/include/linux/vm_event_item.h @@ -122,10 +122,6 @@ enum vm_event_item { PGPGIN, PGPGOUT, PSWPIN, PSWPOUT, NR_TLB_LOCAL_FLUSH_ALL, NR_TLB_LOCAL_FLUSH_ONE, #endif /* CONFIG_DEBUG_TLBFLUSH */ -#ifdef CONFIG_DEBUG_VM_VMACACHE - VMACACHE_FIND_CALLS, - VMACACHE_FIND_HITS, -#endif #ifdef CONFIG_SWAP SWAP_RA, SWAP_RA_HIT, diff --git a/include/linux/vmacache.h b/include/linux/vmacache.h deleted file mode 100644 index 6fce268a4588..000000000000 --- a/include/linux/vmacache.h +++ /dev/null @@ -1,28 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0 */ -#ifndef __LINUX_VMACACHE_H -#define __LINUX_VMACACHE_H - -#include -#include - -static inline void vmacache_flush(struct task_struct *tsk) -{ - memset(tsk->vmacache.vmas, 0, sizeof(tsk->vmacache.vmas)); -} - -extern void vmacache_update(unsigned long addr, struct vm_area_struct *newvma); -extern struct vm_area_struct *vmacache_find(struct mm_struct *mm, - unsigned long addr); - -#ifndef CONFIG_MMU -extern struct vm_area_struct *vmacache_find_exact(struct mm_struct *mm, - unsigned long start, - unsigned long end); -#endif - -static inline void vmacache_invalidate(struct mm_struct *mm) -{ - mm->vmacache_seqnum++; -} - -#endif /* __LINUX_VMACACHE_H */ diff --git a/include/linux/vmstat.h b/include/linux/vmstat.h index bfe38869498d..19cf5b6892ce 100644 --- a/include/linux/vmstat.h +++ b/include/linux/vmstat.h @@ -125,12 +125,6 @@ static inline void vm_events_fold_cpu(int cpu) #define count_vm_tlb_events(x, y) do { (void)(y); } while (0) #endif -#ifdef CONFIG_DEBUG_VM_VMACACHE -#define count_vm_vmacache_event(x) count_vm_event(x) -#else -#define count_vm_vmacache_event(x) do {} while (0) -#endif - #define __count_zid_vm_events(item, zid, delta) \ __count_vm_events(item##_NORMAL - ZONE_NORMAL + zid, delta) diff --git a/kernel/debug/debug_core.c b/kernel/debug/debug_core.c index da06a5553835..c4e6f5159bed 100644 --- a/kernel/debug/debug_core.c +++ b/kernel/debug/debug_core.c @@ -50,7 +50,6 @@ #include #include #include -#include #include #include @@ -282,17 +281,6 @@ static void kgdb_flush_swbreak_addr(unsigned long addr) if (!CACHE_FLUSH_IS_SAFE) return; - if (current->mm) { - int i; - - for (i = 0; i < VMACACHE_SIZE; i++) { - if (!current->vmacache.vmas[i]) - continue; - flush_cache_range(current->vmacache.vmas[i], - addr, addr + BREAK_INSTR_SIZE); - } - } - /* Force flush instruction cache if it was outside the mm */ flush_icache_range(addr, addr + BREAK_INSTR_SIZE); } diff --git a/kernel/fork.c b/kernel/fork.c index 60783abc21c8..4af22dd65fc6 100644 --- a/kernel/fork.c +++ b/kernel/fork.c @@ -43,7 +43,6 @@ #include #include #include -#include #include #include #include @@ -1119,7 +1118,6 @@ static struct mm_struct *mm_init(struct mm_struct *mm, struct task_struct *p, mm->mmap = NULL; mt_init_flags(&mm->mm_mt, MM_MT_FLAGS); mt_set_external_lock(&mm->mm_mt, &mm->mmap_lock); - mm->vmacache_seqnum = 0; atomic_set(&mm->mm_users, 1); atomic_set(&mm->mm_count, 1); seqcount_init(&mm->write_protect_seq); @@ -1575,9 +1573,6 @@ static int copy_mm(unsigned long clone_flags, struct task_struct *tsk) if (!oldmm) return 0; - /* initialize the new vmacache entries */ - vmacache_flush(tsk); - if (clone_flags & CLONE_VM) { mmget(oldmm); mm = oldmm; diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug index 3d9366075153..8a0567046e9e 100644 --- a/lib/Kconfig.debug +++ b/lib/Kconfig.debug @@ -837,14 +837,6 @@ config DEBUG_VM If unsure, say N. -config DEBUG_VM_VMACACHE - bool "Debug VMA caching" - depends on DEBUG_VM - help - Enable this to turn on VMA caching debug information. Doing so - can cause significant overhead, so only enable it in non-production - environments. - config DEBUG_VM_MAPLE_TREE bool "Debug VM maple trees" depends on DEBUG_VM diff --git a/mm/Makefile b/mm/Makefile index 6f9ffa968a1a..298c9991ab75 100644 --- a/mm/Makefile +++ b/mm/Makefile @@ -52,7 +52,7 @@ obj-y := filemap.o mempool.o oom_kill.o fadvise.o \ readahead.o swap.o truncate.o vmscan.o shmem.o \ util.o mmzone.o vmstat.o backing-dev.o \ mm_init.o percpu.o slab_common.o \ - compaction.o vmacache.o \ + compaction.o \ interval_tree.o list_lru.o workingset.o \ debug.o gup.o mmap_lock.o $(mmu-y) diff --git a/mm/debug.c b/mm/debug.c index bef329bf28f0..2d625ca0e326 100644 --- a/mm/debug.c +++ b/mm/debug.c @@ -155,7 +155,7 @@ EXPORT_SYMBOL(dump_vma); void dump_mm(const struct mm_struct *mm) { - pr_emerg("mm %px mmap %px seqnum %llu task_size %lu\n" + pr_emerg("mm %px mmap %px task_size %lu\n" #ifdef CONFIG_MMU "get_unmapped_area %px\n" #endif @@ -183,7 +183,7 @@ void dump_mm(const struct mm_struct *mm) "tlb_flush_pending %d\n" "def_flags: %#lx(%pGv)\n", - mm, mm->mmap, (long long) mm->vmacache_seqnum, mm->task_size, + mm, mm->mmap, mm->task_size, #ifdef CONFIG_MMU mm->get_unmapped_area, #endif diff --git a/mm/mmap.c b/mm/mmap.c index baf608975f99..9b4192130814 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -14,7 +14,6 @@ #include #include #include -#include #include #include #include @@ -722,9 +721,6 @@ inline int vma_expand(struct ma_state *mas, struct vm_area_struct *vma, /* Remove from mm linked list - also updates highest_vm_end */ __vma_unlink_list(mm, next); - /* Kill the cache */ - vmacache_invalidate(mm); - if (file) __remove_shared_vm_struct(next, file, mapping); @@ -963,8 +959,6 @@ int __vma_adjust(struct vm_area_struct *vma, unsigned long start, if (remove_next) { __vma_unlink_list(mm, next); - /* Kill the cache */ - vmacache_invalidate(mm); if (file) __remove_shared_vm_struct(next, file, mapping); } else if (insert) { @@ -2237,19 +2231,10 @@ struct vm_area_struct *find_vma_intersection(struct mm_struct *mm, unsigned long start_addr, unsigned long end_addr) { - struct vm_area_struct *vma; unsigned long index = start_addr; mmap_assert_locked(mm); - /* Check the cache first. */ - vma = vmacache_find(mm, start_addr); - if (likely(vma)) - return vma; - - vma = mt_find(&mm->mm_mt, &index, end_addr - 1); - if (vma) - vmacache_update(start_addr, vma); - return vma; + return mt_find(&mm->mm_mt, &index, end_addr - 1); } EXPORT_SYMBOL(find_vma_intersection); @@ -2263,19 +2248,10 @@ EXPORT_SYMBOL(find_vma_intersection); */ struct vm_area_struct *find_vma(struct mm_struct *mm, unsigned long addr) { - struct vm_area_struct *vma; unsigned long index = addr; mmap_assert_locked(mm); - /* Check the cache first. */ - vma = vmacache_find(mm, addr); - if (likely(vma)) - return vma; - - vma = mt_find(&mm->mm_mt, &index, ULONG_MAX); - if (vma) - vmacache_update(addr, vma); - return vma; + return mt_find(&mm->mm_mt, &index, ULONG_MAX); } EXPORT_SYMBOL(find_vma); @@ -2663,9 +2639,6 @@ detach_vmas_to_be_unmapped(struct mm_struct *mm, struct ma_state *mas, mm->highest_vm_end = prev ? vm_end_gap(prev) : 0; tail_vma->vm_next = NULL; - /* Kill the cache */ - vmacache_invalidate(mm); - /* * Do not downgrade mmap_lock if we are next to VM_GROWSDOWN or * VM_GROWSUP VMA. Such VMAs can change their size under @@ -3045,7 +3018,6 @@ static int do_brk_munmap(struct ma_state *mas, struct vm_area_struct *vma, vma_mas_remove(&unmap, mas); - vmacache_invalidate(vma->vm_mm); if (vma->anon_vma) { anon_vma_interval_tree_post_update_vma(vma); anon_vma_unlock_write(vma->anon_vma); diff --git a/mm/nommu.c b/mm/nommu.c index 2870edfad8ed..1c9b4e8c4d5c 100644 --- a/mm/nommu.c +++ b/mm/nommu.c @@ -19,7 +19,6 @@ #include #include #include -#include #include #include #include @@ -585,23 +584,12 @@ static void add_vma_to_mm(struct mm_struct *mm, struct vm_area_struct *vma) */ static void delete_vma_from_mm(struct vm_area_struct *vma) { - int i; - struct address_space *mapping; - struct mm_struct *mm = vma->vm_mm; - struct task_struct *curr = current; MA_STATE(mas, &vma->vm_mm->mm_mt, 0, 0); - mm->map_count--; - for (i = 0; i < VMACACHE_SIZE; i++) { - /* if the vma is cached, invalidate the entire cache */ - if (curr->vmacache.vmas[i] == vma) { - vmacache_invalidate(mm); - break; - } - } - + vma->vm_mm->map_count--; /* remove the VMA from the mapping */ if (vma->vm_file) { + struct address_space *mapping; mapping = vma->vm_file->f_mapping; i_mmap_lock_write(mapping); @@ -613,7 +601,7 @@ static void delete_vma_from_mm(struct vm_area_struct *vma) /* remove from the MM's tree and list */ vma_mas_remove(vma, &mas); - __vma_unlink_list(mm, vma); + __vma_unlink_list(vma->vm_mm, vma); } /* @@ -646,20 +634,9 @@ EXPORT_SYMBOL(find_vma_intersection); */ struct vm_area_struct *find_vma(struct mm_struct *mm, unsigned long addr) { - struct vm_area_struct *vma; MA_STATE(mas, &mm->mm_mt, addr, addr); - /* check the cache first */ - vma = vmacache_find(mm, addr); - if (likely(vma)) - return vma; - - vma = mas_walk(&mas); - - if (vma) - vmacache_update(addr, vma); - - return vma; + return mas_walk(&mas); } EXPORT_SYMBOL(find_vma); @@ -693,11 +670,6 @@ static struct vm_area_struct *find_vma_exact(struct mm_struct *mm, unsigned long end = addr + len; MA_STATE(mas, &mm->mm_mt, addr, addr); - /* check the cache first */ - vma = vmacache_find_exact(mm, addr, end); - if (vma) - return vma; - vma = mas_walk(&mas); if (!vma) return NULL; @@ -706,7 +678,6 @@ static struct vm_area_struct *find_vma_exact(struct mm_struct *mm, if (vma->vm_end != end) return NULL; - vmacache_update(addr, vma); return vma; } diff --git a/mm/vmacache.c b/mm/vmacache.c deleted file mode 100644 index 01a6e6688ec1..000000000000 --- a/mm/vmacache.c +++ /dev/null @@ -1,117 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0 -/* - * Copyright (C) 2014 Davidlohr Bueso. - */ -#include -#include -#include -#include - -/* - * Hash based on the pmd of addr if configured with MMU, which provides a good - * hit rate for workloads with spatial locality. Otherwise, use pages. - */ -#ifdef CONFIG_MMU -#define VMACACHE_SHIFT PMD_SHIFT -#else -#define VMACACHE_SHIFT PAGE_SHIFT -#endif -#define VMACACHE_HASH(addr) ((addr >> VMACACHE_SHIFT) & VMACACHE_MASK) - -/* - * This task may be accessing a foreign mm via (for example) - * get_user_pages()->find_vma(). The vmacache is task-local and this - * task's vmacache pertains to a different mm (ie, its own). There is - * nothing we can do here. - * - * Also handle the case where a kernel thread has adopted this mm via - * kthread_use_mm(). That kernel thread's vmacache is not applicable to this mm. - */ -static inline bool vmacache_valid_mm(struct mm_struct *mm) -{ - return current->mm == mm && !(current->flags & PF_KTHREAD); -} - -void vmacache_update(unsigned long addr, struct vm_area_struct *newvma) -{ - if (vmacache_valid_mm(newvma->vm_mm)) - current->vmacache.vmas[VMACACHE_HASH(addr)] = newvma; -} - -static bool vmacache_valid(struct mm_struct *mm) -{ - struct task_struct *curr; - - if (!vmacache_valid_mm(mm)) - return false; - - curr = current; - if (mm->vmacache_seqnum != curr->vmacache.seqnum) { - /* - * First attempt will always be invalid, initialize - * the new cache for this task here. - */ - curr->vmacache.seqnum = mm->vmacache_seqnum; - vmacache_flush(curr); - return false; - } - return true; -} - -struct vm_area_struct *vmacache_find(struct mm_struct *mm, unsigned long addr) -{ - int idx = VMACACHE_HASH(addr); - int i; - - count_vm_vmacache_event(VMACACHE_FIND_CALLS); - - if (!vmacache_valid(mm)) - return NULL; - - for (i = 0; i < VMACACHE_SIZE; i++) { - struct vm_area_struct *vma = current->vmacache.vmas[idx]; - - if (vma) { -#ifdef CONFIG_DEBUG_VM_VMACACHE - if (WARN_ON_ONCE(vma->vm_mm != mm)) - break; -#endif - if (vma->vm_start <= addr && vma->vm_end > addr) { - count_vm_vmacache_event(VMACACHE_FIND_HITS); - return vma; - } - } - if (++idx == VMACACHE_SIZE) - idx = 0; - } - - return NULL; -} - -#ifndef CONFIG_MMU -struct vm_area_struct *vmacache_find_exact(struct mm_struct *mm, - unsigned long start, - unsigned long end) -{ - int idx = VMACACHE_HASH(start); - int i; - - count_vm_vmacache_event(VMACACHE_FIND_CALLS); - - if (!vmacache_valid(mm)) - return NULL; - - for (i = 0; i < VMACACHE_SIZE; i++) { - struct vm_area_struct *vma = current->vmacache.vmas[idx]; - - if (vma && vma->vm_start == start && vma->vm_end == end) { - count_vm_vmacache_event(VMACACHE_FIND_HITS); - return vma; - } - if (++idx == VMACACHE_SIZE) - idx = 0; - } - - return NULL; -} -#endif diff --git a/mm/vmstat.c b/mm/vmstat.c index b94a2e4723ff..4e76537aadcf 100644 --- a/mm/vmstat.c +++ b/mm/vmstat.c @@ -1382,10 +1382,6 @@ const char * const vmstat_text[] = { "nr_tlb_local_flush_one", #endif /* CONFIG_DEBUG_TLBFLUSH */ -#ifdef CONFIG_DEBUG_VM_VMACACHE - "vmacache_find_calls", - "vmacache_find_hits", -#endif #ifdef CONFIG_SWAP "swap_ra", "swap_ra_hit", From patchwork Wed May 4 01:13:53 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 12839502 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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6DE15C433F5 for ; Thu, 5 May 2022 12:19:44 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 968206B0071; Thu, 5 May 2022 08:19:43 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 917EE6B0073; Thu, 5 May 2022 08:19:43 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 742E46B0074; Thu, 5 May 2022 08:19:43 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 5FD1E6B0071 for ; Thu, 5 May 2022 08:19:43 -0400 (EDT) Received: from smtpin27.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 33D052E4FD for ; Thu, 5 May 2022 12:19:43 +0000 (UTC) X-FDA: 79431595446.27.4748182 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by imf10.hostedemail.com (Postfix) with ESMTP id B2024C008D for ; Thu, 5 May 2022 12:19:25 +0000 (UTC) Received: from pps.filterd (m0246629.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 243N1sIq003197; Wed, 4 May 2022 01:13:56 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=TKI9eNCa51gzmFm7RPpxkwdSqX1KojWPWooQ1PT2cSo=; b=AeshOZHQZgx3KaivqCm8UTz9khvv5fyWsodbIZgXXnlcn+wenKApjg939tVNn2MCC3cG du5jjUJzGFN86wzoEWyK3Ui3WeYKTaMelIksEJ1jdB94PHZ9+QGe3GQxIawns5Bk4V6B qefkDcmLGh5bojJIzcR47GYCNPuIUWENR38pMnOFbtaGZwW7Kci7qtZDWX7aZ/4h6qzq 2JGNmcmE0ciBCOzHbCbGAuM+tLIKHttZ3Ok4v1bTl8Ho8QXDRXEW8Lz6VMlXvtZsfWqi MK68RmJx+uJz0wPsGtjvl8/2Ph2fxwOaeSYYzmZ6h6gk3ZnlQbUv9VIRU82xlIoQqy7n kw== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3frw0apxyj-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:13:56 +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 2441BRJY013094; Wed, 4 May 2022 01:13:55 GMT Received: from nam10-dm6-obe.outbound.protection.outlook.com (mail-dm6nam10lp2105.outbound.protection.outlook.com [104.47.58.105]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com with ESMTP id 3fsvbmv3ke-10 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:13:55 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=iCPHmiDNJPZV/n64de7XrMnnkm+NSr2vFSZkMer2tyh8+l3wl01ikUhfwo10NBPIg9avJjfUIXU0I0dGgXhiS+VgivVd+oc1NcZlgP8zvsEjMa/M736Ku6QLK6I5AKJAmSixYzAjQtr9Pi8sCLFXabFD4USL9KTXIMWE0WHsQbtDkQqT7mvrH2A4SoxAiRmzpmJoOJ593zT/2z+ZjA0J+jns287qWMwOmj7gx6wk3X/ZnFSRa1F+PrKXPBv63RfIDN9Z30t4wstyObREK6EUpcncRYv5Qy9axSxJKS1mbm4v+bRcMJ4fhKHa+RGdzQ1slqjSKRE12dbilV9RN8n4IQ== 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=TKI9eNCa51gzmFm7RPpxkwdSqX1KojWPWooQ1PT2cSo=; b=ZvWnnjMCbXeVDjPMq0QmVPZO4xfBH1HubMYU3uC4ecf2tZMyY3P/8ZWTenr9sqUL1JLoCPiUcsY2YfVVJNw+3L2r55h2JPzA6sGLBrBWarePgCDXl6a2ij9zhV44xxhfek0Sd9OWJu8D8UfMjukW0MnN2XyAbpoEYhlDx0Q6OKbmLBvofkpcKKXItvSLfT1Vwgs9WDM7rN5AVNHyTs1P8btKrasoBj0MMW6avn9OOF/qBfFHWiv1M2qHFG9im7FbNt0XtQ9UI2BZ8qY6JXElEV30RHs9j6qkMW68opGXjAp3k1KXt3vK+f4X6LgwK5Zb79DDOdCxZeeZkRCZ4+DJ0g== 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=TKI9eNCa51gzmFm7RPpxkwdSqX1KojWPWooQ1PT2cSo=; b=ZK6DWzK4IxV+znzujbw1xc34ZkrihidUyIi8Ws+cOo5uuqD0xjSQ3NLUdvw0naAyHu3hef+dhwvIeC1wSKBVb6nAIhIVU6RAu8f/k5Y0JpOEpMl6ygZ1+87feKm8bZ61JziIApypCFuRoNjINUf5sgGMpDgjae32PFDvOLMNuzo= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by PH7PR10MB5830.namprd10.prod.outlook.com (2603:10b6:510:127::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5206.24; Wed, 4 May 2022 01:13:53 +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.5206.024; Wed, 4 May 2022 01:13:53 +0000 From: Liam Howlett To: "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton Subject: [PATCH v9 26/69] mm: convert vma_lookup() to use mtree_load() Thread-Topic: [PATCH v9 26/69] mm: convert vma_lookup() to use mtree_load() Thread-Index: AQHYX1Q4rrpHgD4S50iCTnVPTBKD9A== Date: Wed, 4 May 2022 01:13:53 +0000 Message-ID: <20220504011345.662299-11-Liam.Howlett@oracle.com> References: <20220504002554.654642-1-Liam.Howlett@oracle.com> <20220504011345.662299-1-Liam.Howlett@oracle.com> In-Reply-To: <20220504011345.662299-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: aad753da-20b7-46f2-d280-08da2d6b5ad2 x-ms-traffictypediagnostic: PH7PR10MB5830:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: mHHvlm39NNfrL/6poL858bZYHYhHdnbI8mddHVYpdO/DYIEYXoj8WxoNYSdXjy7mCrno4EM/B1u+ALXVLW0DLPfU80pn0eSwsgdFg0yR1YCASO/meCe1wFE7QMK5Wu4D6mBcKzNiP0uzzrmcbUDC92vzNFxUyNgnY+b6iEuMikN3Z5nokVM6s8ygFzvqRKy1yWGLcmOD8eqzgUvjLo/FpdfKAFB6Ntvdv2+W6lV1lANLfN3eXUG2HlgMHTxvdeGdEiLXaFo3yfE7SIEgqfIqfzz/4REEL0u8ezaH+DT16Kz5ZTqrEtsfVcHQEuFY2PbEEHKTK1pB+KYJyn3uvf4WKcKBylmOigmxqpG9GOGULZG47l887y4irdzFlbRwtVl7dWT9CyNwdCj/Ed2peP3tlSemy/Bck/8fm36k9PfPBJIvMRjZM/4RX52FtwkDyL/1AQIiAavgYswP7gkbgfW3ytk0lzOjNYlq/NFiP2xfyVV5raRUNARfJQNSxoMlOyzT8k+NzMhzXpcACUeO66Cz2j6jf+Vsxk7/MuyqtXtNVN8hIlbzUJDk95ophHVb6I1LBpfEibXdmNKN1xZiKdHdspOSuEi1hX+a31MNyvF4Ktn72+ssZtT0DIpadjP6WzDLjfYdue6ZfTMRmYMaDGd8miQAnYuIOKTLwny3guaw54MJYmpSy9tSps8jYhrIEGws30Ra360/m9rhObPIdph0OA== 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)(86362001)(71200400001)(83380400001)(38100700002)(38070700005)(122000001)(316002)(110136005)(4744005)(44832011)(2906002)(8676002)(5660300002)(64756008)(66476007)(36756003)(8936002)(91956017)(66556008)(2616005)(66446008)(66946007)(76116006)(1076003)(186003)(6512007)(6486002)(508600001)(26005)(6506007);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?SjG/B7X9lM+trA+cJLR2MhZ?= =?iso-8859-1?q?5Zyfspu54r/bQ376pUJYxKOlAMN1w03Cg9zr3G8mlW3NNDBthIiB2a2mJY26?= =?iso-8859-1?q?3XHrDAQLFPMridUP7fON03S4hWMqE0+jYJ6ri2xXJutNBjvaPUtw/RMbYJbg?= =?iso-8859-1?q?z93z0grDHdtiVW03xjAJIS++oB8o2jC9nTIVc97bZf5MBjRoKcylkSxHnp9D?= =?iso-8859-1?q?zISeUqN14ee7RAcNBlg36GzOgkCsvNFp+YvkmcVC1/3hcMXXjwiuoJAzHyLn?= =?iso-8859-1?q?2unxfyvvv5ZMm3sg88qeCgTisazgH9SCIag5HNMt4UUE7bCTFkwMQrqoRpNV?= =?iso-8859-1?q?LZeiQIVXyy1k1lKeFsmj5DseNnqOgu7W1kK+4dC/6Oa9/gvm9f/Nd43m5tzb?= =?iso-8859-1?q?Wcr8KKiTPg0lvZm4b8h6oVWPkoBFxhFpbrtK1B9N8VR5p6GH5IM2/qD8trUE?= =?iso-8859-1?q?F0QSxDigs9krX6WSOsSS9NviposFxpi6g09wsWiU0+1e0u1JZcLOOQAvMEhL?= =?iso-8859-1?q?gxtR7ck0YyMPvtqV6w92xR6b5YUzXrfbi+uyM1WImZyoVnHQIDfa2d3/MUpF?= =?iso-8859-1?q?EaSVJb09OuK67dQvH5QWkXfZ3hMWzbA/2h0mrtnIKMhOldnPRpdTQcOHrwea?= =?iso-8859-1?q?gj20OAMu+7+R1IRLAOqRD3jRUszSlJaJUEJ0R2SxKMw0QzszycOjfbOIxLwu?= =?iso-8859-1?q?UW/MpBjuKVwt9AyLUv4TGpvx1DWzgJLPrm7UD4dgeFaBwmrmjG9RddV3gLg+?= =?iso-8859-1?q?6nm1ZJGdaPBfkMQXAfta2K29LODs4hv4rno0ije5udNaCGORIzb9MHDO/DKD?= =?iso-8859-1?q?3zwFYJHjStw/GoTh0v4bQOBjHdfmOvP3wO38jQYJ1vVogbd5o2k489mFOOhB?= =?iso-8859-1?q?G14garqUo1XAzeYntSxtFOSftj8IHcQ6Fsrv9goFaCP32ZfA9DjYkmyOhYwX?= =?iso-8859-1?q?4xI6yvUs9n55lTfxtZiC+efbDzoAtsqXyI2VZIBjMUJyU7Ht/jeAsjWVANXE?= =?iso-8859-1?q?DUv8rfmAo2Z5RIn3GXevmUBl1hKVfhxRBGVmVZCHPdvvEcVx86MyYsXb15P4?= =?iso-8859-1?q?km+hReFMiL/koLASOXgw322sBrxRtDVx6fchmweaFv4lU1y+wcuFsZ+ucRw0?= =?iso-8859-1?q?dv6G/QH/TRBblOeKr+TCJ8fsgekf6N9PjErWL4d9ww1PD/pDYTdTwa8akkaz?= =?iso-8859-1?q?nP4DTeOKIJR2RNkg5QjgKfuNHfEJhqwLiLheTR6b9s6s2cER6IBP1/wXTxFR?= =?iso-8859-1?q?tu/RvAsKLji2JyzuUbx0BmVDZ9gCy5/REuKCXtSh/w36zU816RSo3g4uN+pa?= =?iso-8859-1?q?ALsA9yd6q707mAr0zC2P6cuO5BXYcjRPDoYFKMkWJ0SD0mmNm26LLbTQBWFK?= =?iso-8859-1?q?YDhbz/JyWtTh01kbC0F2RNhvzwDNkULzHT+zME0dt+gewjKtB7JJ7ASeoj6w?= =?iso-8859-1?q?rCGj7qLkhdUV/WERw7ydzxaNfwbL7onUzWCh1DErD3htiDAEe2iJKgkdoC1E?= =?iso-8859-1?q?BpoTykuO11Kb8YeHRU/ASnYflB63qwAfwISsbaUt5/fqpKcPV+m4Zg2mmBYR?= =?iso-8859-1?q?MXpd5hvnpSM5W352sE1wajbz5JL3xtzQhCcSH2R5Xwfzs1kquLWV24MYbtpA?= =?iso-8859-1?q?//sbybLCWIy/lFQkatlZUEojtKPiK4MLy21RfKpqiRrvJ6rI6TJCbau6GM+S?= =?iso-8859-1?q?wr23ZdaMdsTzEZhx6bSWv77ifQht4hlCNC6AjiPy8ovTUg4TtqDCXN+5qvGB?= =?iso-8859-1?q?rQ0HvDr2jhru+qeScg3f9rv2Eepb6yeGEoVEY2l43GK2JDfy4cNM+jYEjAfX?= =?iso-8859-1?q?klZO5H24=3D?= 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: aad753da-20b7-46f2-d280-08da2d6b5ad2 X-MS-Exchange-CrossTenant-originalarrivaltime: 04 May 2022 01:13:53.0644 (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: i/Nf5vfy1OunP3GUv0HBtQJuOH57kNKbpvgLwGpjO0piup6i2fPUc50oHYxnCdhxar4HZrKPCRBz+knjTuqxiQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR10MB5830 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.486,18.0.858 definitions=2022-05-03_10:2022-05-02,2022-05-03 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 bulkscore=0 spamscore=0 malwarescore=0 adultscore=0 suspectscore=0 mlxscore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2205040006 X-Proofpoint-GUID: VXxul9ZiFkWIq6glvbAxQJMTSYtgBIfB X-Proofpoint-ORIG-GUID: VXxul9ZiFkWIq6glvbAxQJMTSYtgBIfB X-Rspamd-Server: rspam03 X-Rspamd-Queue-Id: B2024C008D X-Stat-Signature: idj44k7koj4xuerg3g7kq1j4k6p9q9q1 Authentication-Results: imf10.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2021-07-09 header.b=AeshOZHQ; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=ZK6DWzK4; dmarc=pass (policy=none) header.from=oracle.com; spf=none (imf10.hostedemail.com: domain of liam.howlett@oracle.com has no SPF policy when checking 205.220.165.32) smtp.mailfrom=liam.howlett@oracle.com X-Rspam-User: X-HE-Tag: 1651753165-739876 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: From: "Liam R. Howlett" Unlike the rbtree, the Maple Tree will return a NULL if there's nothing at a particular address. Since the previous commit dropped the vmacache, it is now possible to consult the tree directly. Signed-off-by: Liam R. Howlett Signed-off-by: Matthew Wilcox (Oracle) Acked-by: Vlastimil Babka --- include/linux/mm.h | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/include/linux/mm.h b/include/linux/mm.h index 6db9face6f84..f6d633f04a64 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -2797,12 +2797,7 @@ struct vm_area_struct *find_vma_intersection(struct mm_struct *mm, static inline struct vm_area_struct *vma_lookup(struct mm_struct *mm, unsigned long addr) { - struct vm_area_struct *vma = find_vma(mm, addr); - - if (vma && addr < vma->vm_start) - vma = NULL; - - return vma; + return mtree_load(&mm->mm_mt, addr); } static inline unsigned long vm_start_gap(struct vm_area_struct *vma) From patchwork Wed May 4 01:13:53 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 12840020 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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 078F1C433FE for ; Thu, 5 May 2022 18:43:17 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 1535A6B0071; Thu, 5 May 2022 14:43:17 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 0DA066B0073; Thu, 5 May 2022 14:43:17 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id DD18A6B0074; Thu, 5 May 2022 14:43:16 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id CB3CA6B0071 for ; Thu, 5 May 2022 14:43:16 -0400 (EDT) Received: from smtpin10.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay12.hostedemail.com (Postfix) with ESMTP id AC8A7122B76 for ; Thu, 5 May 2022 18:43:16 +0000 (UTC) X-FDA: 79432561992.10.168DDBB Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by imf27.hostedemail.com (Postfix) with ESMTP id 020324008A for ; Thu, 5 May 2022 18:43:13 +0000 (UTC) Received: from pps.filterd (m0246629.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 243LNHV7032436; Wed, 4 May 2022 01:13:58 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=7OAEEL3OYoHefyKKACVjJqgQHDMGF1DECMzvzEd0HEU=; b=V6xKOAv/gILpJhJNnzMDp71nJ35o+z99uZWOma/BUl7c7gsHBcASPvCpBkkCLrLQhK39 KVu+wnJqch+QEHdvyYvvhAOU5Wx6+EhCQto8Ofe/PQBWUEGLvd9a15xxEWZN0eflTahC amFt1BGNwkqKCcLKs/Z618LBdGOCJAt1r07FQorY0WlgOnOWCRHo5YyMXGYqEm3AwVA5 68+nT4Y+a2Dhqcy83XLI2dCuK10eAGKPZsAJDjBhMEYOb8/3lLmS90rsMjTmALc8VUzj 6k2tfb/BrG3DlW5xc78owuoZT25qTZc+8gnib8S4qSbvoGgvHi4QcqiQSeER6Ckf77R8 BQ== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3frw0apxyk-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:13:57 +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 2441BRJa013094; Wed, 4 May 2022 01:13:56 GMT Received: from nam10-dm6-obe.outbound.protection.outlook.com (mail-dm6nam10lp2105.outbound.protection.outlook.com [104.47.58.105]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com with ESMTP id 3fsvbmv3ke-12 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:13:55 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=RX37wjAi71YVSKl8HevngwY0EFVBvq0Nz4L78UMsdUm4Tg4azbubVsLbwlxsJdhi1xg2kxkE4+aLwx0bD7RxvGCerazSMHiAlQ1dANZ5fwWq5UFQlYT8C4Yt07qz7xPWCblcK0KWACH6p2+NYRJw9TDdf1MoNixXz67EcZ1NgpfPJXGTXvE6N/cRRUIblMVlGJw8LMQCoibp6a2sNpR35xMXP5QAkpc60B2G4w5OoSlm98CcHr0cZM8HlKzgBEHiF21DzLeTeiTIX0sRqVN2lk/hIdxz/NsvwpUK0tPkvq3ZhkuvoWzKf0XiHCdwCICDhuXF30jdXR0iwXYRfMde/g== 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=7OAEEL3OYoHefyKKACVjJqgQHDMGF1DECMzvzEd0HEU=; b=MTm5c43HCBL+vnQNINVf8IcQdFZ0gQbvsVgyBZbwZufnO522/41BDkyu4W2KzCI5j+iGq5L7dqOKW7/p0BZhndef5mYsS8nqNrQJ7/+40O4mJIAuqShjjhjVK6soFpTRrlIxavNcgVbyYkgaBmramGIakj+2ZRhQsxr2d5H4noTQ8ii3Vajg4co/A5R+QdKj3yVGvX7kmv/pLMHdAzu7i4lStxb5r9GebXjbksVl3jOeVgsLIyQuAZVhaWpgDw6M9RgBVSuJa2MNo+XYSTAlDsihMap+igyS7XOri4GR7ySCDBNJKU7uKbehJHvGl0YQMMqndA0KeGG0fHDyeVxtbg== 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=7OAEEL3OYoHefyKKACVjJqgQHDMGF1DECMzvzEd0HEU=; b=wZW4e3nDUA6yAOhNGpemvdnsBuBJSf6PHOvJ1L5bixqH69JW/acGhvz+1qdD6jyob6HE1yITIZaIOXWn0ZS0jS+loE6KnnYvwWkU/KFmBI5Va0tr276WsBYZE0HxwGf9Jrvs0b5Q2gJsM5p2x5hDy3W19G1dFTzrmgtkAh1jWtA= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by PH7PR10MB5830.namprd10.prod.outlook.com (2603:10b6:510:127::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5206.24; Wed, 4 May 2022 01:13:53 +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.5206.024; Wed, 4 May 2022 01:13:53 +0000 From: Liam Howlett To: "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton Subject: [PATCH v9 27/69] mm/mmap: move mmap_region() below do_munmap() Thread-Topic: [PATCH v9 27/69] mm/mmap: move mmap_region() below do_munmap() Thread-Index: AQHYX1Q4P8bI/Ipbr0Wv7tISdS1qJw== Date: Wed, 4 May 2022 01:13:53 +0000 Message-ID: <20220504011345.662299-12-Liam.Howlett@oracle.com> References: <20220504002554.654642-1-Liam.Howlett@oracle.com> <20220504011345.662299-1-Liam.Howlett@oracle.com> In-Reply-To: <20220504011345.662299-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: 8a036382-aedb-4d7b-4548-08da2d6b5b07 x-ms-traffictypediagnostic: PH7PR10MB5830:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 8fQhR8ppdUS9otHxZ3aoV1o/jT7sJG6n8YHaweX+xQyBia3A2Nz4iH5FrPvsTYQhbk7ARCbMHNviAbTTEl7LHehiTgLxFUKkFgwHrTep0YTs/DQY3VIk6U28mGd3y3gzw04R4+HxPmpq4BLl9Yt71zjW5rwFU0wQDVmWuz/owv0/ONLfnFAe4vxmm3NHy4F5TPqBAssIp4Do5vSGtkDdB41lMb4wVkbAclwwswdQyXGxQD6Mk+/hxfCsPZwdhwvvwMcEhUj7vStA3yM3Tlppriau1GMqpoLWFb4kNBeS/eF9LOkxyZpXlqE8SrUrwILLNiiDss9wsLyea3LEvNuGKOsIHaFCSyBl+qJ5pL660ifbd5m8sWnntpsfijgFo7epPJeX6G/6ATuld+sRFKhCgoWwQit1fFSGWos61hDQVDwu808JVNioR7GoFTwDordumvy7i+YidDikuTDx0TkLX0lSp5pCgrFdTuj4FUBCFGb3c49P3NTsrtzoeBkjbt4+bPAO7ZOSl9hr2isuRvgXFC/rILPQfr038FSBvUaxt4zzhtHNCwiAAlXoN+g5vk2wzWHRWqcP+BjDiOhsydnjfO4Jsu4IlomjKeHCEHMa7W3/1tnYzFzuIJihdcJcXyo++OVqxcj1507EyJzflsWCa1TpVibiacjTB/QGzMVlSRemJdnzKUNeXaPa1Xe60eua6XjIcPq2CNX2wL3tZBhUpg== 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)(86362001)(71200400001)(83380400001)(38100700002)(38070700005)(122000001)(316002)(110136005)(44832011)(2906002)(8676002)(5660300002)(64756008)(66476007)(36756003)(8936002)(91956017)(30864003)(66556008)(2616005)(66446008)(66946007)(76116006)(1076003)(186003)(6512007)(6486002)(508600001)(26005)(6506007);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?XSewGhxIYl012+FRMDTrzjb?= =?iso-8859-1?q?J+OOCyv+vd9089ZS8JuzapL9Bzquuo881Wo1jdppxtYdKwOlD5NXSdH+l6Jw?= =?iso-8859-1?q?r4jdKWMG74u870/a07uWwEm1evwpGOYbl1ieNzFTeF3gfCSIiSfkHb6odqMp?= =?iso-8859-1?q?LbgLVNm8lwCgz9ULmFG3fyIjqEAt+k6EGIou4CrUz77AWxTmYVdxRGFezVWm?= =?iso-8859-1?q?5AYpJSuFpMEq8L2mPKxsbOae/93uVpxV1rtW7ReCZpXz/VFftkLfZb4jqgYi?= =?iso-8859-1?q?owx1nLXn7atbplq3kXggKxLVi/TKCMztFi8qsNEeoR9Uir0IaszdQ/0P16oe?= =?iso-8859-1?q?Vfc5vkBpHJ7iEr7PmFokoe21NOW2GBL/t5Lpiouc2XgbyY436NJTfQmQW6wG?= =?iso-8859-1?q?MXUbUI+O5gesYpePsNEUfuUxDJskHtT4kKAaET6ej85su0jEx08+qaIU29Ib?= =?iso-8859-1?q?8hEZEIsNS0gvygQ7bhJnNeNSN8E4hgt23bhxs/gePei10kaSV7u3vpHrl7O1?= =?iso-8859-1?q?CpjpHzSrvZu6aZsg+rIXenGy8FAEdPHA65HH0ayNiaSPseSur1qq+MW2BEE2?= =?iso-8859-1?q?npZiQtL1nk+p63H0SP6UV0Oym/4dHl+Qchde4h98kiGPUvwLM9huSJOy/HCM?= =?iso-8859-1?q?v4Z5uMj+TWhi+qBsU0nr2NZ7MS7pTq/HArq4uDO01jECgQ3PuqUPT8Okb9bB?= =?iso-8859-1?q?F335/wCX++ntJV+wU5CTwbwDMzEeaWvKmpKNErdrEFnXv0qDL2QsZoVgmMZt?= =?iso-8859-1?q?gB+m6wBDZz4fDzO20lRVGfupxBYXw08HI/l72wdhqAHMVbCSuiVTFdUBfr0j?= =?iso-8859-1?q?sdFYkXM0V0AnFa1utPuwvug3eG0Wn8DtgmSAzpe83GKmFx/giup1H5b0DKev?= =?iso-8859-1?q?QUQYkaDrVibyiKUdGRbQQRVGWsS/ghDDsMiK/lPNUGK3Lr/F7mdIc/4C6eE4?= =?iso-8859-1?q?Iy08b3YsBQG0EpTF53TfrDMinsXGO5kU6vgoZ6Rjpzm5wvETvoFaZOYWdaEE?= =?iso-8859-1?q?Fb9BMAPysMW2sRpyPr6hf/JyIDC7wjuwU8/XdKKVENrKZhHxTof8mUXhg98b?= =?iso-8859-1?q?7YT71qT08ubOlxUkubCPuc1AJmCoSxcCd4kTYYu2x0HWzmQFqbox1TXDeVqT?= =?iso-8859-1?q?MVFbKSbeMSsQnXziTFIKV2j9dqlXJEPl64Rzmh7GV24OHWkGbOZlTuDsS2Mn?= =?iso-8859-1?q?P0i+JZdZYrQEw86xpmSiHOhGNg+OsfoOlgjt45JBpv+I2uxGGhed/rvcXH7P?= =?iso-8859-1?q?kQxy1XaVjd1hEzo3pZp2MCmdvN0LEqZqlrfFAcLh/FpSkMDgAEpgZNbSDI8m?= =?iso-8859-1?q?Ca8u3CATgsHej2+2ENDOd6igfh/ka47euGOY925uKxr23vfTmW+k2Mq3pVSk?= =?iso-8859-1?q?t1rRQPKjhqlkX/LMeqArcD2oDPLYpB+lyoEXWOsO2VROolRHsrWyJjSAnpS+?= =?iso-8859-1?q?l/WoMp/0Orbt8i/8xaMN0ZRUkaQnBi/2K1pEmWCTC653QEQcuWS74aFAcu7I?= =?iso-8859-1?q?TEp3sT3NOdjojpdjzXLFKk5HYcapZcipZ83cLJQBLAbNUbr+MDoq97PM88Vc?= =?iso-8859-1?q?qvgh4uD65YirdiT3nZ6YHYRV9zqHI3+LwEtLzbtA6/W/eoKtrBWhFxHEbKhO?= =?iso-8859-1?q?moxhtsIQhAWo5hhCgcu3f4AcgBkJo76h4Uk1puwXQWulfaTUF8t4YycN4epQ?= =?iso-8859-1?q?6dPkRc+5ZTbY9V1ZLbYdStFFepdFCxUV7RbvyNA2mieq8gyL3ihYODf/VNt7?= =?iso-8859-1?q?uNhxqQKuZhZQM7DdEkLYBCVmZfP+XX3OQckyWZGd1T/dIHhXIyX4A/3X5KcF?= =?iso-8859-1?q?PqNOn1QA=3D?= 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: 8a036382-aedb-4d7b-4548-08da2d6b5b07 X-MS-Exchange-CrossTenant-originalarrivaltime: 04 May 2022 01:13:53.4394 (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: ivAmx5uQhCcEs5DK7/TA/4sLrYR/Rqf0jDMZQxPDSvNIBSHv7+bN/z3kCuESiGBzFWaL5hldxTmyHOhUyfdkAw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR10MB5830 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.486,18.0.858 definitions=2022-05-03_10:2022-05-02,2022-05-03 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 bulkscore=0 spamscore=0 malwarescore=0 adultscore=0 suspectscore=0 mlxscore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2205040006 X-Proofpoint-GUID: 0m7qeWt_F-cRrzwCYoPo6qXjdvEFCjWd X-Proofpoint-ORIG-GUID: 0m7qeWt_F-cRrzwCYoPo6qXjdvEFCjWd X-Stat-Signature: cog89a7jreg7oj6dedrroccsw4fa3aai X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: 020324008A Authentication-Results: imf27.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2021-07-09 header.b="V6xKOAv/"; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=wZW4e3nD; spf=none (imf27.hostedemail.com: domain of liam.howlett@oracle.com has no SPF policy when checking 205.220.165.32) smtp.mailfrom=liam.howlett@oracle.com; dmarc=pass (policy=none) header.from=oracle.com X-Rspam-User: X-HE-Tag: 1651776193-905639 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: From: "Liam R. Howlett" Relocation of code for the next commit. There should be no changes here. Signed-off-by: Liam R. Howlett --- mm/mmap.c | 476 +++++++++++++++++++++++++++--------------------------- 1 file changed, 238 insertions(+), 238 deletions(-) diff --git a/mm/mmap.c b/mm/mmap.c index 9b4192130814..d49dca8fecd5 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -1753,244 +1753,6 @@ static inline int accountable_mapping(struct file *file, vm_flags_t vm_flags) return (vm_flags & (VM_NORESERVE | VM_SHARED | VM_WRITE)) == VM_WRITE; } -unsigned long mmap_region(struct file *file, unsigned long addr, - unsigned long len, vm_flags_t vm_flags, unsigned long pgoff, - struct list_head *uf) -{ - struct mm_struct *mm = current->mm; - struct vm_area_struct *vma = NULL; - struct vm_area_struct *prev, *next; - pgoff_t pglen = len >> PAGE_SHIFT; - unsigned long charged = 0; - unsigned long end = addr + len; - unsigned long merge_start = addr, merge_end = end; - pgoff_t vm_pgoff; - int error; - MA_STATE(mas, &mm->mm_mt, addr, end - 1); - - /* Check against address space limit. */ - if (!may_expand_vm(mm, vm_flags, len >> PAGE_SHIFT)) { - unsigned long nr_pages; - - /* - * MAP_FIXED may remove pages of mappings that intersects with - * requested mapping. Account for the pages it would unmap. - */ - nr_pages = count_vma_pages_range(mm, addr, end); - - if (!may_expand_vm(mm, vm_flags, - (len >> PAGE_SHIFT) - nr_pages)) - return -ENOMEM; - } - - /* Unmap any existing mapping in the area */ - if (do_munmap(mm, addr, len, uf)) - return -ENOMEM; - - /* - * Private writable mapping: check memory availability - */ - if (accountable_mapping(file, vm_flags)) { - charged = len >> PAGE_SHIFT; - if (security_vm_enough_memory_mm(mm, charged)) - return -ENOMEM; - vm_flags |= VM_ACCOUNT; - } - - next = mas_next(&mas, ULONG_MAX); - prev = mas_prev(&mas, 0); - if (vm_flags & VM_SPECIAL) - goto cannot_expand; - - /* Attempt to expand an old mapping */ - /* Check next */ - if (next && next->vm_start == end && !vma_policy(next) && - can_vma_merge_before(next, vm_flags, NULL, file, pgoff+pglen, - NULL_VM_UFFD_CTX, NULL)) { - merge_end = next->vm_end; - vma = next; - vm_pgoff = next->vm_pgoff - pglen; - } - - /* Check prev */ - if (prev && prev->vm_end == addr && !vma_policy(prev) && - (vma ? can_vma_merge_after(prev, vm_flags, vma->anon_vma, file, - pgoff, vma->vm_userfaultfd_ctx, NULL) : - can_vma_merge_after(prev, vm_flags, NULL, file, pgoff, - NULL_VM_UFFD_CTX , NULL))) { - merge_start = prev->vm_start; - vma = prev; - vm_pgoff = prev->vm_pgoff; - } - - - /* Actually expand, if possible */ - if (vma && - !vma_expand(&mas, vma, merge_start, merge_end, vm_pgoff, next)) { - khugepaged_enter_vma_merge(vma, vm_flags); - goto expanded; - } - - mas.index = addr; - mas.last = end - 1; -cannot_expand: - /* - * Determine the object being mapped and call the appropriate - * specific mapper. the address has already been validated, but - * not unmapped, but the maps are removed from the list. - */ - vma = vm_area_alloc(mm); - if (!vma) { - error = -ENOMEM; - goto unacct_error; - } - - vma->vm_start = addr; - vma->vm_end = end; - vma->vm_flags = vm_flags; - vma->vm_page_prot = vm_get_page_prot(vm_flags); - vma->vm_pgoff = pgoff; - - if (file) { - if (vm_flags & VM_SHARED) { - error = mapping_map_writable(file->f_mapping); - if (error) - goto free_vma; - } - - vma->vm_file = get_file(file); - error = call_mmap(file, vma); - if (error) - goto unmap_and_free_vma; - - /* Can addr have changed?? - * - * Answer: Yes, several device drivers can do it in their - * f_op->mmap method. -DaveM - */ - WARN_ON_ONCE(addr != vma->vm_start); - - addr = vma->vm_start; - mas_reset(&mas); - - /* If vm_flags changed after call_mmap(), we should try merge vma again - * as we may succeed this time. - */ - if (unlikely(vm_flags != vma->vm_flags && prev)) { - next = vma_merge(mm, prev, vma->vm_start, vma->vm_end, vma->vm_flags, - NULL, vma->vm_file, vma->vm_pgoff, NULL, NULL_VM_UFFD_CTX, NULL); - if (next) { - /* ->mmap() can change vma->vm_file and fput the original file. So - * fput the vma->vm_file here or we would add an extra fput for file - * and cause general protection fault ultimately. - */ - fput(vma->vm_file); - vm_area_free(vma); - vma = prev; - /* Update vm_flags and possible addr to pick up the change. We don't - * warn here if addr changed as the vma is not linked by vma_link(). - */ - addr = vma->vm_start; - vm_flags = vma->vm_flags; - goto unmap_writable; - } - } - - vm_flags = vma->vm_flags; - } else if (vm_flags & VM_SHARED) { - error = shmem_zero_setup(vma); - if (error) - goto free_vma; - } else { - vma_set_anonymous(vma); - } - - /* Allow architectures to sanity-check the vm_flags */ - if (!arch_validate_flags(vma->vm_flags)) { - error = -EINVAL; - if (file) - goto unmap_and_free_vma; - else - goto free_vma; - } - - if (mas_preallocate(&mas, vma, GFP_KERNEL)) { - error = -ENOMEM; - if (file) - goto unmap_and_free_vma; - else - goto free_vma; - } - - if (vma->vm_file) - i_mmap_lock_write(vma->vm_file->f_mapping); - - vma_mas_store(vma, &mas); - __vma_link_list(mm, vma, prev); - mm->map_count++; - if (vma->vm_file) { - if (vma->vm_flags & VM_SHARED) - mapping_allow_writable(vma->vm_file->f_mapping); - - flush_dcache_mmap_lock(vma->vm_file->f_mapping); - vma_interval_tree_insert(vma, &vma->vm_file->f_mapping->i_mmap); - flush_dcache_mmap_unlock(vma->vm_file->f_mapping); - i_mmap_unlock_write(vma->vm_file->f_mapping); - } - - /* Once vma denies write, undo our temporary denial count */ -unmap_writable: - if (file && vm_flags & VM_SHARED) - mapping_unmap_writable(file->f_mapping); - file = vma->vm_file; -expanded: - perf_event_mmap(vma); - - vm_stat_account(mm, vm_flags, len >> PAGE_SHIFT); - if (vm_flags & VM_LOCKED) { - if ((vm_flags & VM_SPECIAL) || vma_is_dax(vma) || - is_vm_hugetlb_page(vma) || - vma == get_gate_vma(current->mm)) - vma->vm_flags &= VM_LOCKED_CLEAR_MASK; - else - mm->locked_vm += (len >> PAGE_SHIFT); - } - - if (file) - uprobe_mmap(vma); - - /* - * New (or expanded) vma always get soft dirty status. - * Otherwise user-space soft-dirty page tracker won't - * be able to distinguish situation when vma area unmapped, - * then new mapped in-place (which must be aimed as - * a completely new data area). - */ - vma->vm_flags |= VM_SOFTDIRTY; - - vma_set_page_prot(vma); - - validate_mm(mm); - return addr; - -unmap_and_free_vma: - fput(vma->vm_file); - vma->vm_file = NULL; - - /* Undo any partial mapping done by a device driver. */ - unmap_region(mm, vma, prev, vma->vm_start, vma->vm_end); - charged = 0; - if (vm_flags & VM_SHARED) - mapping_unmap_writable(file->f_mapping); -free_vma: - vm_area_free(vma); -unacct_error: - if (charged) - vm_unacct_memory(charged); - validate_mm(mm); - return error; -} - /* unmapped_area() Find an area between the low_limit and the high_limit with * the correct alignment and offset, all from @info. Note: current->mm is used * for the search. @@ -2840,6 +2602,244 @@ int do_munmap(struct mm_struct *mm, unsigned long start, size_t len, return __do_munmap(mm, start, len, uf, false); } +unsigned long mmap_region(struct file *file, unsigned long addr, + unsigned long len, vm_flags_t vm_flags, unsigned long pgoff, + struct list_head *uf) +{ + struct mm_struct *mm = current->mm; + struct vm_area_struct *vma = NULL; + struct vm_area_struct *prev, *next; + pgoff_t pglen = len >> PAGE_SHIFT; + unsigned long charged = 0; + unsigned long end = addr + len; + unsigned long merge_start = addr, merge_end = end; + pgoff_t vm_pgoff; + int error; + MA_STATE(mas, &mm->mm_mt, addr, end - 1); + + /* Check against address space limit. */ + if (!may_expand_vm(mm, vm_flags, len >> PAGE_SHIFT)) { + unsigned long nr_pages; + + /* + * MAP_FIXED may remove pages of mappings that intersects with + * requested mapping. Account for the pages it would unmap. + */ + nr_pages = count_vma_pages_range(mm, addr, end); + + if (!may_expand_vm(mm, vm_flags, + (len >> PAGE_SHIFT) - nr_pages)) + return -ENOMEM; + } + + /* Unmap any existing mapping in the area */ + if (do_munmap(mm, addr, len, uf)) + return -ENOMEM; + + /* + * Private writable mapping: check memory availability + */ + if (accountable_mapping(file, vm_flags)) { + charged = len >> PAGE_SHIFT; + if (security_vm_enough_memory_mm(mm, charged)) + return -ENOMEM; + vm_flags |= VM_ACCOUNT; + } + + next = mas_next(&mas, ULONG_MAX); + prev = mas_prev(&mas, 0); + if (vm_flags & VM_SPECIAL) + goto cannot_expand; + + /* Attempt to expand an old mapping */ + /* Check next */ + if (next && next->vm_start == end && !vma_policy(next) && + can_vma_merge_before(next, vm_flags, NULL, file, pgoff+pglen, + NULL_VM_UFFD_CTX, NULL)) { + merge_end = next->vm_end; + vma = next; + vm_pgoff = next->vm_pgoff - pglen; + } + + /* Check prev */ + if (prev && prev->vm_end == addr && !vma_policy(prev) && + (vma ? can_vma_merge_after(prev, vm_flags, vma->anon_vma, file, + pgoff, vma->vm_userfaultfd_ctx, NULL) : + can_vma_merge_after(prev, vm_flags, NULL, file, pgoff, + NULL_VM_UFFD_CTX , NULL))) { + merge_start = prev->vm_start; + vma = prev; + vm_pgoff = prev->vm_pgoff; + } + + + /* Actually expand, if possible */ + if (vma && + !vma_expand(&mas, vma, merge_start, merge_end, vm_pgoff, next)) { + khugepaged_enter_vma_merge(vma, vm_flags); + goto expanded; + } + + mas.index = addr; + mas.last = end - 1; +cannot_expand: + /* + * Determine the object being mapped and call the appropriate + * specific mapper. the address has already been validated, but + * not unmapped, but the maps are removed from the list. + */ + vma = vm_area_alloc(mm); + if (!vma) { + error = -ENOMEM; + goto unacct_error; + } + + vma->vm_start = addr; + vma->vm_end = end; + vma->vm_flags = vm_flags; + vma->vm_page_prot = vm_get_page_prot(vm_flags); + vma->vm_pgoff = pgoff; + + if (file) { + if (vm_flags & VM_SHARED) { + error = mapping_map_writable(file->f_mapping); + if (error) + goto free_vma; + } + + vma->vm_file = get_file(file); + error = call_mmap(file, vma); + if (error) + goto unmap_and_free_vma; + + /* Can addr have changed?? + * + * Answer: Yes, several device drivers can do it in their + * f_op->mmap method. -DaveM + */ + WARN_ON_ONCE(addr != vma->vm_start); + + addr = vma->vm_start; + mas_reset(&mas); + + /* If vm_flags changed after call_mmap(), we should try merge vma again + * as we may succeed this time. + */ + if (unlikely(vm_flags != vma->vm_flags && prev)) { + next = vma_merge(mm, prev, vma->vm_start, vma->vm_end, vma->vm_flags, + NULL, vma->vm_file, vma->vm_pgoff, NULL, NULL_VM_UFFD_CTX, NULL); + if (next) { + /* ->mmap() can change vma->vm_file and fput the original file. So + * fput the vma->vm_file here or we would add an extra fput for file + * and cause general protection fault ultimately. + */ + fput(vma->vm_file); + vm_area_free(vma); + vma = prev; + /* Update vm_flags and possible addr to pick up the change. We don't + * warn here if addr changed as the vma is not linked by vma_link(). + */ + addr = vma->vm_start; + vm_flags = vma->vm_flags; + goto unmap_writable; + } + } + + vm_flags = vma->vm_flags; + } else if (vm_flags & VM_SHARED) { + error = shmem_zero_setup(vma); + if (error) + goto free_vma; + } else { + vma_set_anonymous(vma); + } + + /* Allow architectures to sanity-check the vm_flags */ + if (!arch_validate_flags(vma->vm_flags)) { + error = -EINVAL; + if (file) + goto unmap_and_free_vma; + else + goto free_vma; + } + + if (mas_preallocate(&mas, vma, GFP_KERNEL)) { + error = -ENOMEM; + if (file) + goto unmap_and_free_vma; + else + goto free_vma; + } + + if (vma->vm_file) + i_mmap_lock_write(vma->vm_file->f_mapping); + + vma_mas_store(vma, &mas); + __vma_link_list(mm, vma, prev); + mm->map_count++; + if (vma->vm_file) { + if (vma->vm_flags & VM_SHARED) + mapping_allow_writable(vma->vm_file->f_mapping); + + flush_dcache_mmap_lock(vma->vm_file->f_mapping); + vma_interval_tree_insert(vma, &vma->vm_file->f_mapping->i_mmap); + flush_dcache_mmap_unlock(vma->vm_file->f_mapping); + i_mmap_unlock_write(vma->vm_file->f_mapping); + } + + /* Once vma denies write, undo our temporary denial count */ +unmap_writable: + if (file && vm_flags & VM_SHARED) + mapping_unmap_writable(file->f_mapping); + file = vma->vm_file; +expanded: + perf_event_mmap(vma); + + vm_stat_account(mm, vm_flags, len >> PAGE_SHIFT); + if (vm_flags & VM_LOCKED) { + if ((vm_flags & VM_SPECIAL) || vma_is_dax(vma) || + is_vm_hugetlb_page(vma) || + vma == get_gate_vma(current->mm)) + vma->vm_flags &= VM_LOCKED_CLEAR_MASK; + else + mm->locked_vm += (len >> PAGE_SHIFT); + } + + if (file) + uprobe_mmap(vma); + + /* + * New (or expanded) vma always get soft dirty status. + * Otherwise user-space soft-dirty page tracker won't + * be able to distinguish situation when vma area unmapped, + * then new mapped in-place (which must be aimed as + * a completely new data area). + */ + vma->vm_flags |= VM_SOFTDIRTY; + + vma_set_page_prot(vma); + + validate_mm(mm); + return addr; + +unmap_and_free_vma: + fput(vma->vm_file); + vma->vm_file = NULL; + + /* Undo any partial mapping done by a device driver. */ + unmap_region(mm, vma, prev, vma->vm_start, vma->vm_end); + charged = 0; + if (vm_flags & VM_SHARED) + mapping_unmap_writable(file->f_mapping); +free_vma: + vm_area_free(vma); +unacct_error: + if (charged) + vm_unacct_memory(charged); + validate_mm(mm); + return error; +} + static int __vm_munmap(unsigned long start, size_t len, bool downgrade) { int ret; From patchwork Wed May 4 01:13:53 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 12836638 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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 8144CC433EF for ; Wed, 4 May 2022 01:14:08 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id C17598D0007; Tue, 3 May 2022 21:14:00 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id B7A528D0003; Tue, 3 May 2022 21:14:00 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 9790D8D0007; Tue, 3 May 2022 21:14:00 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 80D408D0003 for ; Tue, 3 May 2022 21:14:00 -0400 (EDT) Received: from smtpin17.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay13.hostedemail.com (Postfix) with ESMTP id 561976015B for ; Wed, 4 May 2022 01:14:00 +0000 (UTC) X-FDA: 79426289040.17.583ED4B Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by imf29.hostedemail.com (Postfix) with ESMTP id F00BC120095 for ; Wed, 4 May 2022 01:13:54 +0000 (UTC) Received: from pps.filterd (m0246627.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 243Kx7fg030616; Wed, 4 May 2022 01:13:58 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=gQniI23ich+K9gUubCMXhFBVNLmrDGKnecHOvjIFreM=; b=CED7CsG+z9RyhDqOTAGOFckrsaQ4yapdn1XlKp6W0mHng1WlziPgiXauoEmaF7rZ9vV8 FbFuycMl+TWmxVSLecNtRFp5/1/zRT3GmavjSHWJTL91KmbM5IrWIR/UU/zk2AvicT8E 6T9RzYbs2YbA7ZPaorKz6xPEQqQNMZ/dlULG/oYho88tIbXloMYG3Z2GkOS321cXOHy1 UgLWBOL+UHB9mD7cb2Clbok9sDmJm0UngRHH69Qwhe3INYF3rIWNR/Be6HA5ATklAmsd pvK+cexg42M/O5qYBKo9+/n8/1DojgJlhJVyvM/W+9X2bVKqvtnKsICPugniA/Y879IJ xg== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3fruq0f60t-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:13:57 +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 2441BRJb013094; Wed, 4 May 2022 01:13:56 GMT Received: from nam10-dm6-obe.outbound.protection.outlook.com (mail-dm6nam10lp2105.outbound.protection.outlook.com [104.47.58.105]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com with ESMTP id 3fsvbmv3ke-13 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:13:56 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ls/YPYgItjYRLG+nfFuHsZ4Qxm8wAmJ5HBrI1bTRdhje2/Vfk/qOFpWZJSjYwy/A2Vk0xkScXnX37Eb0GWqhN8necsGf5aJOWewzglYYZUcL5e8ToFgGKQcc+TyFMWnf+g1zXD4OITHT6vpExTf0ZNf7BqjYV4arTEca6lgMJCT9Wz4VYghj8kKgfReARl8LlGJwof9eY8maZsxlx0YLMMuthyP2gpRewh8+x6jN471UpOAj7EDonqMItYjp8LyQpxHCGspfrqLCcQahpdS3WUvIMSQLxQm4rYLHp968l4Nb6dap9TMND060kRD/z/amr7OwQYTNaI7lIHUk7SH7Bg== 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=gQniI23ich+K9gUubCMXhFBVNLmrDGKnecHOvjIFreM=; b=O7rJh/+0sU8smuHNW8/QlXufsZORLTot8GzOP5d1R39eg5NVEzvALtjt3GwISfm9BFxOoWr3bm0AUw2lbDqiF4ZsZqIXHUrPZ5fufL8LFBDQ0tx5d1bHrsR+Ut63oiNQYVgvJUCueExetUFpKPVbg2OrOh65yJAPcrmqzCPDOwSybqWmQSapzEPrR0+4V1VtzrpFT3b6AFOoJZZdV11hxmIbOMH+6/CHW4iOhiHipp67BbKYw48OpALfrpQe5dugoDEogwR64OI5ych4Xyrq5msamZRCMq0o7OtVlBbaG5+z9RcV4iCM8UyiTma9irFrKAHrgUJJtF+Qm0jjD70MjA== 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=gQniI23ich+K9gUubCMXhFBVNLmrDGKnecHOvjIFreM=; b=OiJniWRWQ7uDunJLaPg8Mo/My4UWDZRm6RZK0lsuNv0SsrxnRstXShYjXr0o203L1x99HZ+5djyAFahH6V0QZHNQCQgzbYIt3NckaoRD7jvTPAswq/CqmBPUT2RoiLzwpQtO6UF1smasKGkeucWCdx6Q9t2AcsaAiwQH4a9X9Fc= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by PH7PR10MB5830.namprd10.prod.outlook.com (2603:10b6:510:127::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5206.24; Wed, 4 May 2022 01:13:54 +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.5206.024; Wed, 4 May 2022 01:13:54 +0000 From: Liam Howlett To: "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton Subject: [PATCH v9 28/69] mm/mmap: reorganize munmap to use maple states Thread-Topic: [PATCH v9 28/69] mm/mmap: reorganize munmap to use maple states Thread-Index: AQHYX1Q4yL8DgAmWa0qTBFcC80Rd+g== Date: Wed, 4 May 2022 01:13:53 +0000 Message-ID: <20220504011345.662299-13-Liam.Howlett@oracle.com> References: <20220504002554.654642-1-Liam.Howlett@oracle.com> <20220504011345.662299-1-Liam.Howlett@oracle.com> In-Reply-To: <20220504011345.662299-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: 5ee352c6-c3db-4d21-4171-08da2d6b5b45 x-ms-traffictypediagnostic: PH7PR10MB5830:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: YFcuMiCCxa7It8JRW4DgX0AeTXclzcmZqbwedkAYCndAo68PW4vizSNB8o8wA5Z43CyDOGvVISA3FECWzzyGTGiZymLQMoorNKVRsq3oytwV/tQT3l76za30/cQXPxxF3VeeNCWup0yvpNhBEXDtfmzuuDwyHGWcHbOn+kvjYBFgO70owN53oZD99Gh37ADGsIYzOPgVL7Nyw+OKg919t/vOWrbMTdDD3VIxPEUkHFtFj0G1bMpbQJLfjXfkOWDH5j37NmH9PmEGbwmOLr0Ma0wQIDuejFfM167htS6JzesM0fwo8r9WOGniv+k6e3TyypNp4gy2u+jiukKEGDKCdl37TX4Bz1tppHMdunLI0M4yWdAJodGT8tA/hDzD8THpaDD44A80ff2dZQ6QU4wvSTGUgR2JxBS7qCh5MMxfPsGgmmda4+YeOf/+GX5MfW8hcEbeUflxRgSIZKjb3Fz4OZviORX7cLaxTung1ITWCnYrtdfpjP1xVY0w1H/CvKQateEduQgeeyUqa8VTnvB+llmNjmrzEStcdv++LnLV22dWxiWHt3BiMei1vRjaid/Uq39FZwi1hGgnUY4Zh3/cU3y00S6scAR335N41iRAsWjt1a7YqRamUHxS8HmiKAwWb8TJILzEycotjGKkq4DT/h3v6HtfCxnojP8zo8kiN9K77zJnxVOOeZEcchMX1KMSxtosjFGLty16kJZKgpubQg== 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)(86362001)(71200400001)(83380400001)(38100700002)(38070700005)(122000001)(316002)(110136005)(44832011)(2906002)(8676002)(5660300002)(64756008)(66476007)(36756003)(8936002)(91956017)(30864003)(66556008)(2616005)(66446008)(66946007)(76116006)(1076003)(186003)(6512007)(6486002)(508600001)(26005)(6506007);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?uLCfAVBErxLKunVYdfGSiHv?= =?iso-8859-1?q?lHZvckW96zlxHMa7GTObDWRMTKt37PKwCJ/Io1fduUOQkUAHkZLfTfZOrbLm?= =?iso-8859-1?q?zhT2Rhaf0EvTqccPe9t3IA1DHQdrai8Zsof6D+8PICoi6qiKJacySwDfL9aS?= =?iso-8859-1?q?SEm9qPx8igPwZf4WFG4YQ2zIYcJh8/49MbH9oA+g7VrAEx6C7u1aRZtcagjB?= =?iso-8859-1?q?7+FI1h90mHWJIkwSinLQqwJxuyB0NsbzAOqhxBsFxzrps056abEc6BfC/G0w?= =?iso-8859-1?q?LZuAQoLnT0DxPKNOC34f0hRlGDgaew4lxJfeArHon5r8DAV6aA18/GfrW1/s?= =?iso-8859-1?q?S9/ygUrRmLGDgguWKWjGOZR8y5WBwAkilDT50zqHw+qPZet7FNke2pEX9iAG?= =?iso-8859-1?q?+NRnTJUdEaq9My3dPWG/SyFNntrD8q7O+WjvAvY+e+Bi6xqv5fN1Ri+2DNwj?= =?iso-8859-1?q?WhXE16Lw34f0nbaWmxd5FW+/a1Xg48rnGy8+XNMzqJl6r1oarbZW6d/oKcpo?= =?iso-8859-1?q?7Kc1BkllkXQtV4MgiGJjw/xM7qz8TCEmQGCWw33JNwixaZlvH2hxGfmFY/O1?= =?iso-8859-1?q?y28qy3eUcCfpCD7zJuLstnsaM+l34EsZE+3LF5kvZFMj/aR/Dz3cxf2Tpqmg?= =?iso-8859-1?q?+7dHwEb110inCesLPViKdObO11ZLy8K6GoOonsImyQVDkQEgaE76aJoF7vE/?= =?iso-8859-1?q?OG5J4yafFee7Ci10vJ2j489YNYitH5JJicBuYdq5JgncCp/p9Iloex1BriOz?= =?iso-8859-1?q?y7FXS3sBPICpew0oo9Ld8rjm/K3U0rG+iG0v4d11qZJ0wLD7Q6o7Wh1/XtUA?= =?iso-8859-1?q?38bHlMD4kiQZj28VmFQUQnIdTQRxPiBtN7i1Gs/tejohXvVngBx5ln2rKurq?= =?iso-8859-1?q?IE1S4tosHlUh2aS/SnvqKwH89rPayZJSkB8gwT9RlVGLmRdruxKSRhzZFpzd?= =?iso-8859-1?q?m5Rj00uyNgiMr6WOIU3ma3RRb+nMogYWtb1Hmz/bB1j2o/5GqY4CaAoqP43j?= =?iso-8859-1?q?339dqpIWYVWKgGzH+0U+jzDYnjxuHf5VlOXYkqBbvkAAXDddzIdltVshvCpI?= =?iso-8859-1?q?AbJOHeE6velG9JPeaq/lOMrkT6iBaxSeZSYYPuYYAY64c6GUX6d5cbL+4i9H?= =?iso-8859-1?q?5a+Fgo2KXmOM/AP11iONlXCtkrVeXa+kPGf3w0L8ARtIOgU7wLxAbgKzWe9z?= =?iso-8859-1?q?4TfxOlv8Ky4KTxJcBcKO8hm8e3XglRM/KgErAoPsybAmrQfiAslBCTgHH89U?= =?iso-8859-1?q?EdH7DD46useN5VGML/flmxLgZ1ZxoMeNgAfWpTu64Hg/CubevzxwG7kMs1bC?= =?iso-8859-1?q?B2C093vBMlkFneslpFRcES1n9nfzymnGgbLvXwtzknIR1EByfzFy/J/XB4h9?= =?iso-8859-1?q?a6k8otRQglbO3yJBulAl85KiUVzlUyXdNspeP3PZTnNVoRX+BNrO0HIS5UNb?= =?iso-8859-1?q?+D2SKBY2ls0HXb2j1pnBIxWZHCIu+nv58ZvUpsdTdC3Lrtb/vthDTuQTRw84?= =?iso-8859-1?q?3AlbLDjafbcJAKB1Alw2KOGCR4fFa/OGBM3lpxCZ66FpC8LfY0rSYEeuFTus?= =?iso-8859-1?q?22+peA3bbicN2qndNNUIRWI6gX64pcBcz0HUTB+IvXwMuPXP4i34ujB7PsMX?= =?iso-8859-1?q?njONXRKbma4MlFQCMaAFCFWzcTqB8sUSlnn5xLOTCSn/AmqrzcID070GKKu9?= =?iso-8859-1?q?8DbvxpsxbetF6TS0LPcBXHjx6crMsjR2calIMVmp8JqLSmbbTwMjJHIsTeTW?= =?iso-8859-1?q?hjxS6SwuAVNhPuKZv/IF7fZO0+rAt71LMhBdLaF7tkBFJPdgG20pGM2Bw43m?= =?iso-8859-1?q?phKweE0M=3D?= 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: 5ee352c6-c3db-4d21-4171-08da2d6b5b45 X-MS-Exchange-CrossTenant-originalarrivaltime: 04 May 2022 01:13:53.7987 (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: 2asgxlgitOpx2LvhPsZNvQHBKtZCZPJN7MASa4GqZERYofx81SD+q+3iOcN78DOqpJweUWZCKeoFxY4I7jEo3A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR10MB5830 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.486,18.0.858 definitions=2022-05-03_10:2022-05-02,2022-05-03 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 bulkscore=0 spamscore=0 malwarescore=0 adultscore=0 suspectscore=0 mlxscore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2205040006 X-Proofpoint-ORIG-GUID: 2-vqKYgSLJFx33skNmQRLXJut0UDtRpR X-Proofpoint-GUID: 2-vqKYgSLJFx33skNmQRLXJut0UDtRpR X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: F00BC120095 X-Stat-Signature: bbkjyfcigq1hzbpe4fzsei8zuncs5ana X-Rspam-User: Authentication-Results: imf29.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2021-07-09 header.b=CED7CsG+; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=OiJniWRW; spf=none (imf29.hostedemail.com: domain of liam.howlett@oracle.com has no SPF policy when checking 205.220.165.32) smtp.mailfrom=liam.howlett@oracle.com; dmarc=pass (policy=none) header.from=oracle.com X-HE-Tag: 1651626834-694602 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: From: "Liam R. Howlett" Remove __do_munmap() in favour of do_munmap(), do_mas_munmap(), and do_mas_align_munmap(). do_munmap() is a wrapper to create a maple state for any callers that have not been converted to the maple tree. do_mas_munmap() takes a maple state to mumap a range. This is just a small function which checks for error conditions and aligns the end of the range. do_mas_align_munmap() uses the aligned range to mumap a range. do_mas_align_munmap() starts with the first VMA in the range, then finds the last VMA in the range. Both start and end are split if necessary. Then the VMAs are removed from the linked list and the mm mlock count is updated at the same time. Followed by a single tree operation of overwriting the area in with a NULL. Finally, the detached list is unmapped and freed. By reorganizing the munmap calls as outlined, it is now possible to avoid extra work of aligning pre-aligned callers which are known to be safe, avoid extra VMA lookups or tree walks for modifications. detach_vmas_to_be_unmapped() is no longer used, so drop this code. vm_brk_flags() can just call the do_mas_munmap() as it checks for intersecting VMAs directly. Signed-off-by: Liam R. Howlett --- include/linux/mm.h | 5 +- mm/mmap.c | 231 ++++++++++++++++++++++++++++----------------- mm/mremap.c | 17 ++-- 3 files changed, 158 insertions(+), 95 deletions(-) diff --git a/include/linux/mm.h b/include/linux/mm.h index f6d633f04a64..0cc2cb692a78 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -2712,8 +2712,9 @@ extern unsigned long mmap_region(struct file *file, unsigned long addr, extern unsigned long do_mmap(struct file *file, unsigned long addr, unsigned long len, unsigned long prot, unsigned long flags, unsigned long pgoff, unsigned long *populate, struct list_head *uf); -extern int __do_munmap(struct mm_struct *, unsigned long, size_t, - struct list_head *uf, bool downgrade); +extern int do_mas_munmap(struct ma_state *mas, struct mm_struct *mm, + unsigned long start, size_t len, struct list_head *uf, + bool downgrade); extern int do_munmap(struct mm_struct *, unsigned long, size_t, struct list_head *uf); extern int do_madvise(struct mm_struct *mm, unsigned long start, size_t len_in, int behavior); diff --git a/mm/mmap.c b/mm/mmap.c index d49dca8fecd5..dd21f0a3f236 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -2372,47 +2372,6 @@ static void unmap_region(struct mm_struct *mm, tlb_finish_mmu(&tlb); } -/* - * Create a list of vma's touched by the unmap, removing them from the mm's - * vma list as we go.. - */ -static bool -detach_vmas_to_be_unmapped(struct mm_struct *mm, struct ma_state *mas, - struct vm_area_struct *vma, struct vm_area_struct *prev, - unsigned long end) -{ - struct vm_area_struct **insertion_point; - struct vm_area_struct *tail_vma = NULL; - - insertion_point = (prev ? &prev->vm_next : &mm->mmap); - vma->vm_prev = NULL; - vma_mas_szero(mas, vma->vm_start, end); - do { - if (vma->vm_flags & VM_LOCKED) - mm->locked_vm -= vma_pages(vma); - mm->map_count--; - tail_vma = vma; - vma = vma->vm_next; - } while (vma && vma->vm_start < end); - *insertion_point = vma; - if (vma) - vma->vm_prev = prev; - else - mm->highest_vm_end = prev ? vm_end_gap(prev) : 0; - tail_vma->vm_next = NULL; - - /* - * Do not downgrade mmap_lock if we are next to VM_GROWSDOWN or - * VM_GROWSUP VMA. Such VMAs can change their size under - * down_read(mmap_lock) and collide with the VMA we are about to unmap. - */ - if (vma && (vma->vm_flags & VM_GROWSDOWN)) - return false; - if (prev && (prev->vm_flags & VM_GROWSUP)) - return false; - return true; -} - /* * __split_vma() bypasses sysctl_max_map_count checking. We use this where it * has already been checked or doesn't make sense to fail. @@ -2492,40 +2451,51 @@ int split_vma(struct mm_struct *mm, struct vm_area_struct *vma, return __split_vma(mm, vma, addr, new_below); } -/* Munmap is split into 2 main parts -- this part which finds - * what needs doing, and the areas themselves, which do the - * work. This now handles partial unmappings. - * Jeremy Fitzhardinge - */ -int __do_munmap(struct mm_struct *mm, unsigned long start, size_t len, - struct list_head *uf, bool downgrade) +static inline int +unlock_range(struct vm_area_struct *start, struct vm_area_struct **tail, + unsigned long limit) { - unsigned long end; - struct vm_area_struct *vma, *prev, *last; - int error = -ENOMEM; - MA_STATE(mas, &mm->mm_mt, 0, 0); + struct mm_struct *mm = start->vm_mm; + struct vm_area_struct *tmp = start; + int count = 0; - if ((offset_in_page(start)) || start > TASK_SIZE || len > TASK_SIZE-start) - return -EINVAL; + while (tmp && tmp->vm_start < limit) { + *tail = tmp; + count++; + if (tmp->vm_flags & VM_LOCKED) + mm->locked_vm -= vma_pages(tmp); - len = PAGE_ALIGN(len); - end = start + len; - if (len == 0) - return -EINVAL; + tmp = tmp->vm_next; + } - /* arch_unmap() might do unmaps itself. */ - arch_unmap(mm, start, end); + return count; +} - /* Find the first overlapping VMA where start < vma->vm_end */ - vma = find_vma_intersection(mm, start, end); - if (!vma) - return 0; +/* + * do_mas_align_munmap() - munmap the aligned region from @start to @end. + * @mas: The maple_state, ideally set up to alter the correct tree location. + * @vma: The starting vm_area_struct + * @mm: The mm_struct + * @start: The aligned start address to munmap. + * @end: The aligned end address to munmap. + * @uf: The userfaultfd list_head + * @downgrade: Set to true to attempt a write downgrade of the mmap_sem + * + * If @downgrade is true, check return code for potential release of the lock. + */ +static int +do_mas_align_munmap(struct ma_state *mas, struct vm_area_struct *vma, + struct mm_struct *mm, unsigned long start, + unsigned long end, struct list_head *uf, bool downgrade) +{ + struct vm_area_struct *prev, *last; + int error = -ENOMEM; + /* we have start < vma->vm_end */ - if (mas_preallocate(&mas, vma, GFP_KERNEL)) + if (mas_preallocate(mas, vma, GFP_KERNEL)) return -ENOMEM; - prev = vma->vm_prev; - /* we have start < vma->vm_end */ + mas->last = end - 1; /* * If we need to split any vma, do it now to save pain later. * @@ -2546,17 +2516,31 @@ int __do_munmap(struct mm_struct *mm, unsigned long start, size_t len, error = __split_vma(mm, vma, start, 0); if (error) goto split_failed; + prev = vma; + vma = __vma_next(mm, prev); + mas->index = start; + mas_reset(mas); + } else { + prev = vma->vm_prev; } + if (vma->vm_end >= end) + last = vma; + else + last = find_vma_intersection(mm, end - 1, end); + /* Does it split the last one? */ - last = find_vma(mm, end); - if (last && end > last->vm_start) { + if (last && end < last->vm_end) { error = __split_vma(mm, last, end, 1); + if (error) goto split_failed; + + if (vma == last) + vma = __vma_next(mm, prev); + mas_reset(mas); } - vma = __vma_next(mm, prev); if (unlikely(uf)) { /* @@ -2569,16 +2553,46 @@ int __do_munmap(struct mm_struct *mm, unsigned long start, size_t len, * failure that it's not worth optimizing it for. */ error = userfaultfd_unmap_prep(vma, start, end, uf); + if (error) goto userfaultfd_error; } - /* Detach vmas from rbtree */ - if (!detach_vmas_to_be_unmapped(mm, &mas, vma, prev, end)) - downgrade = false; + /* + * unlock any mlock()ed ranges before detaching vmas, count the number + * of VMAs to be dropped, and return the tail entry of the affected + * area. + */ + mm->map_count -= unlock_range(vma, &last, end); + /* Drop removed area from the tree */ + mas_store_prealloc(mas, NULL); - if (downgrade) - mmap_write_downgrade(mm); + /* Detach vmas from the MM linked list */ + vma->vm_prev = NULL; + if (prev) + prev->vm_next = last->vm_next; + else + mm->mmap = last->vm_next; + + if (last->vm_next) { + last->vm_next->vm_prev = prev; + last->vm_next = NULL; + } else + mm->highest_vm_end = prev ? vm_end_gap(prev) : 0; + + /* + * Do not downgrade mmap_lock if we are next to VM_GROWSDOWN or + * VM_GROWSUP VMA. Such VMAs can change their size under + * down_read(mmap_lock) and collide with the VMA we are about to unmap. + */ + if (downgrade) { + if (last && (last->vm_flags & VM_GROWSDOWN)) + downgrade = false; + else if (prev && (prev->vm_flags & VM_GROWSUP)) + downgrade = false; + else + mmap_write_downgrade(mm); + } unmap_region(mm, vma, prev, start, end); @@ -2592,14 +2606,63 @@ int __do_munmap(struct mm_struct *mm, unsigned long start, size_t len, map_count_exceeded: split_failed: userfaultfd_error: - mas_destroy(&mas); + mas_destroy(mas); return error; } +/* + * do_mas_munmap() - munmap a given range. + * @mas: The maple state + * @mm: The mm_struct + * @start: The start address to munmap + * @len: The length of the range to munmap + * @uf: The userfaultfd list_head + * @downgrade: set to true if the user wants to attempt to write_downgrade the + * mmap_sem + * + * This function takes a @mas that is either pointing to the previous VMA or set + * to MA_START and sets it up to remove the mapping(s). The @len will be + * aligned and any arch_unmap work will be preformed. + * + * Returns: -EINVAL on failure, 1 on success and unlock, 0 otherwise. + */ +int do_mas_munmap(struct ma_state *mas, struct mm_struct *mm, + unsigned long start, size_t len, struct list_head *uf, + bool downgrade) +{ + unsigned long end; + struct vm_area_struct *vma; + + if ((offset_in_page(start)) || start > TASK_SIZE || len > TASK_SIZE-start) + return -EINVAL; + + end = start + PAGE_ALIGN(len); + if (end == start) + return -EINVAL; + + /* arch_unmap() might do unmaps itself. */ + arch_unmap(mm, start, end); + + /* Find the first overlapping VMA */ + vma = mas_find(mas, end - 1); + if (!vma) + return 0; + + return do_mas_align_munmap(mas, vma, mm, start, end, uf, downgrade); +} + +/* do_munmap() - Wrapper function for non-maple tree aware do_munmap() calls. + * @mm: The mm_struct + * @start: The start address to munmap + * @len: The length to be munmapped. + * @uf: The userfaultfd list_head + */ int do_munmap(struct mm_struct *mm, unsigned long start, size_t len, struct list_head *uf) { - return __do_munmap(mm, start, len, uf, false); + MA_STATE(mas, &mm->mm_mt, start, start); + + return do_mas_munmap(&mas, mm, start, len, uf, false); } unsigned long mmap_region(struct file *file, unsigned long addr, @@ -2633,7 +2696,7 @@ unsigned long mmap_region(struct file *file, unsigned long addr, } /* Unmap any existing mapping in the area */ - if (do_munmap(mm, addr, len, uf)) + if (do_mas_munmap(&mas, mm, addr, len, uf, false)) return -ENOMEM; /* @@ -2845,11 +2908,12 @@ static int __vm_munmap(unsigned long start, size_t len, bool downgrade) int ret; struct mm_struct *mm = current->mm; LIST_HEAD(uf); + MA_STATE(mas, &mm->mm_mt, start, start); if (mmap_write_lock_killable(mm)) return -EINTR; - ret = __do_munmap(mm, start, len, &uf, downgrade); + ret = do_mas_munmap(&mas, mm, start, len, &uf, downgrade); /* * Returning 1 indicates mmap_lock is downgraded. * But 1 is not legal return value of vm_munmap() and munmap(), reset @@ -2984,10 +3048,7 @@ static int do_brk_munmap(struct ma_state *mas, struct vm_area_struct *vma, if (likely((vma->vm_end < oldbrk) || ((vma->vm_start == newbrk) && (vma->vm_end == oldbrk)))) { /* remove entire mapping(s) */ - mas_set(mas, newbrk); - if (vma->vm_start != newbrk) - mas_reset(mas); /* cause a re-walk for the first overlap. */ - ret = __do_munmap(mm, newbrk, oldbrk - newbrk, uf, true); + ret = do_mas_munmap(mas, mm, newbrk, oldbrk-newbrk, uf, true); goto munmap_full_vma; } @@ -3168,9 +3229,7 @@ int vm_brk_flags(unsigned long addr, unsigned long request, unsigned long flags) if (ret) goto limits_failed; - if (find_vma_intersection(mm, addr, addr + len)) - ret = do_munmap(mm, addr, len, &uf); - + ret = do_mas_munmap(&mas, mm, addr, len, &uf, 0); if (ret) goto munmap_failed; diff --git a/mm/mremap.c b/mm/mremap.c index 98f50e633009..4495f69eccbe 100644 --- a/mm/mremap.c +++ b/mm/mremap.c @@ -975,20 +975,23 @@ SYSCALL_DEFINE5(mremap, unsigned long, addr, unsigned long, old_len, /* * Always allow a shrinking remap: that just unmaps * the unnecessary pages.. - * __do_munmap does all the needed commit accounting, and + * do_mas_munmap does all the needed commit accounting, and * downgrades mmap_lock to read if so directed. */ if (old_len >= new_len) { int retval; + MA_STATE(mas, &mm->mm_mt, addr + new_len, addr + new_len); - retval = __do_munmap(mm, addr+new_len, old_len - new_len, - &uf_unmap, true); - if (retval < 0 && old_len != new_len) { - ret = retval; - goto out; + retval = do_mas_munmap(&mas, mm, addr + new_len, + old_len - new_len, &uf_unmap, true); /* Returning 1 indicates mmap_lock is downgraded to read. */ - } else if (retval == 1) + if (retval == 1) { downgraded = true; + } else if (retval < 0 && old_len != new_len) { + ret = retval; + goto out; + } + ret = addr; goto out; } From patchwork Wed May 4 01:13:54 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 12836637 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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id AB1DCC4332F for ; Wed, 4 May 2022 01:14:06 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id C3D6F8D0006; Tue, 3 May 2022 21:13:59 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id BC4328D0003; Tue, 3 May 2022 21:13:59 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 77BC58D0006; Tue, 3 May 2022 21:13:59 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 5906D8D0003 for ; Tue, 3 May 2022 21:13:59 -0400 (EDT) Received: from smtpin22.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 2F2F92925B for ; Wed, 4 May 2022 01:13:59 +0000 (UTC) X-FDA: 79426288998.22.DC1E9A1 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by imf06.hostedemail.com (Postfix) with ESMTP id C9834180085 for ; Wed, 4 May 2022 01:13:56 +0000 (UTC) Received: from pps.filterd (m0246630.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 243MIwYM026114; Wed, 4 May 2022 01:13:57 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=EiolpuTturdroffWGoqMZ+psv//C5G23qSxUPNKeq3M=; b=WA279rx/bKIEHJhNEK8/jB4EIcbvrdQyj8bqnAuvg058OcE8Q/3EUA6U022IBlpJHvVu VcNPw3x8scz5LQfekPc8iM9LVM0ElgSNmoDBUYG1nH7kPXvnR6aPh00l2cPdNy++2TlH K+A8h0K4tZuBgW6dGk3H7HqZ8Cd4jqJXwDYuXGx8qM1/O1Lom9D7W5dpOCmgN/se0WfK fLtCUe+QtrltaD0V4RSrIxnp3d3oMho3q9qN5Ia5rWSDY9gHkOVr9oQpQJA75snC/tbZ Ic1K2reoM35878I5ccBCEyZXQXyg3It2gbSX9cRDvlxkALXFudu6l8kuqjck7vfScpo/ FA== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3fruhc72pg-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:13:57 +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 2441BRJc013094; Wed, 4 May 2022 01:13:57 GMT Received: from nam10-dm6-obe.outbound.protection.outlook.com (mail-dm6nam10lp2105.outbound.protection.outlook.com [104.47.58.105]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com with ESMTP id 3fsvbmv3ke-14 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:13:56 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=e0p9UCQtHFOSAdymbmLLzQQELMPM3Ue6r+8sd4sbdezdBDEL1841TaPVY0J7AcmqPX32g12nnFYDxwjG+PGx0biKEKc2J7JDBtDv+ukxXcEOPfvHvS7OT2AfNidc8aG0y985AE+4M3FMP1K2ms6Xt4E3s/IkoKWgktNeX3THhvJzDnCYFgHoBwDFd9e8r3BWFMFddoA3TPGCrmWhmJj224U7qm77GxbCm13AUUO9j4aGdTmkxCRZcOgjbDCMYiG/QBLjssHlVabbgCeyHqMlP3E+SOZC0ly2dBbIwtA+LJH59PcI73MbCb2+n86h2AIYYpmS+nA3vsbNUSGYEQLWEg== 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=EiolpuTturdroffWGoqMZ+psv//C5G23qSxUPNKeq3M=; b=oUfZrGVxGX56GK8klFbwOBxVPDH4U3SFKMOmL3ahWKv8AHZVV6AhCHGPTyrvQSfMTfe/zg+iLxVWxpvWwcLF+okY9+wC6NtlEOUTrbBcfGo1qCNCFYPT6VtUVlvShsnQiSN65MGGHRk90f7/YYdHpofCFYkOYfRF0+gw9TMbBRFnCguJE9FnIf6FMLfQR/iMLCUx0tGfKGDqm9GVVOT++ghowA8ZFjVihwab6qeFCB3iKmsCXamH2weCyuHrR7q52iOBqH+nVxOIqFOtyOJDFm2y9LZDynlkBcN0AFWlhL3xZPPKEe0kiJAi6NU+XwLhP6k6qN954u15ubmrpcQM/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=EiolpuTturdroffWGoqMZ+psv//C5G23qSxUPNKeq3M=; b=J9QKZ7yI4taVd7rrf24Xv5rGgDG8jAw4ObMQwPXka0M+dsL4F+Y/pWAgVof4+O2LT7TqqYOX3xZxE2VPZMWJyXFcf7co2VZEw5dRAsk7xLOxSbxl10rSMF/dVjOHzq6WaSFBwIk/tQbj5h2c5OgMT+F4Mb1o28i+U/YddTwZvx8= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by PH7PR10MB5830.namprd10.prod.outlook.com (2603:10b6:510:127::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5206.24; Wed, 4 May 2022 01:13:54 +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.5206.024; Wed, 4 May 2022 01:13:54 +0000 From: Liam Howlett To: "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton Subject: [PATCH v9 29/69] mm/mmap: change do_brk_munmap() to use do_mas_align_munmap() Thread-Topic: [PATCH v9 29/69] mm/mmap: change do_brk_munmap() to use do_mas_align_munmap() Thread-Index: AQHYX1Q4Q5Zz6tCE+kqwHUeEPTTlYA== Date: Wed, 4 May 2022 01:13:54 +0000 Message-ID: <20220504011345.662299-14-Liam.Howlett@oracle.com> References: <20220504002554.654642-1-Liam.Howlett@oracle.com> <20220504011345.662299-1-Liam.Howlett@oracle.com> In-Reply-To: <20220504011345.662299-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: 65d51491-6f6a-4ae9-db30-08da2d6b5b80 x-ms-traffictypediagnostic: PH7PR10MB5830:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: xYoiEOtfDRdp7QoeClXpBrJNmFQLAvLuW2VAL8MhrW3Exxavgya3TbWS8lxW+2/kRQSJ5Rj6Jl4mMfoqmBq2OFEScXvP8uFlH2Azh0ZAwbg2/3AzNw3uDuuVxW3mafvM2MwraDKFxQTG2o0H2RutiROfacVbXAPgvOLiZXxI7rubIH7vZmh2+rus+9ETDgt7CAUW0O4Yie0Ar3DvtDUf/NvhN9DELaXKpqWx/nzf63w2YPpRnAqKjB/+zC7SSCmUY+bc7yxMiVsKZztD0nko+uDVG9h8nKvUJz3wXThstwOfQ7nSOBaoGbSNhxBXezFCb7dhWOJaFWaSzar+mVF6vFGVvJc3jrP/XplhDo6EAwhfsGJwefHrwZk+Hzuci5Rkz0TPCt2NvWZMxs23bfb2zEabL1M28ITi7fuO1R4MOmPWavVQmUOoFLsTBcV8W1Tx/UH8acxPECNUNlRq5pkpIPR9QhM3zzqXiBePZ5T6FBVAyIyNWTb+AM1FhBjITHijV6OYQZ5D4mXFw1tAjaglGADjf3PAHcSeF8Y/IHKj+Ko7S+WnCvIHMgzn5OutnYMlfEknBVPdte3ncLTWzNhCHuiXZ7jYgsg6fHoyQSWRoSbiRrDFFv6QAmZQ2KxFnVLwUUrFCrindIpvvjNs8uGdvoay/F12Yp7OxfSu7qP+J6o5jOrqZCzTW7i+9a+TLet+neuUsqp2J/KZBAvh3Yl3Bg== 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)(86362001)(71200400001)(83380400001)(38100700002)(38070700005)(122000001)(316002)(110136005)(4744005)(44832011)(2906002)(8676002)(5660300002)(64756008)(66476007)(36756003)(8936002)(91956017)(66556008)(2616005)(66446008)(66946007)(76116006)(1076003)(186003)(6512007)(6486002)(508600001)(26005)(6506007);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?dG/fBgKDVOAbh9nEauFmhY+?= =?iso-8859-1?q?OMXl0fsp4oYryxRa49dqygYzOdQ1JrA4ZtxsxiGuUezf3DHm9Z1OtZe/w1xq?= =?iso-8859-1?q?+vFZerXMuwieckpOBveiYiKB741MKxpHly6kP2xUmNnSkENhiBS99CDbQ4JO?= =?iso-8859-1?q?Vj0iuWpLt76nMANoXV6Y5fKCfFSIaxTHSgcygslHfqhI6elxOvqvvjx8wbfL?= =?iso-8859-1?q?zpz8uTBTNfm5H1L1UCREr0v77BehoiIHCBFC59FmkUKwt8I4ipLRTsC/OBZy?= =?iso-8859-1?q?OKGSjCKkzRshZLJ3caXycy6t1DFvhrXIvENR2T16Jnho2k+6mKMEtHk84ida?= =?iso-8859-1?q?q4lq76ZDkQt262BFpdmNN4ltOXikIECGl+bI+akxCZVeRcFSAR1i5ugm4xNz?= =?iso-8859-1?q?mTx9VHlZdjgNciB1+i2L2MCwFyplWPQlj4PSYHVWik9s1X3F6fM7SBnzlu8D?= =?iso-8859-1?q?CdWVcIOGyE3ctiA7Cpd+d9hYhTs8DKUzXrHIrx+AgEcoF75m85msftmUE4Bu?= =?iso-8859-1?q?lQdMgtA7as+7mEfMgXbhzaOd8AqpddytrmeaDfQMN/USMAOj/I65zHKJO0UZ?= =?iso-8859-1?q?3P7QKld4+V8n8aZA8ltJyRPQYZiAEuZhHVveImoYr6EdfO/SBWCft+oF3sHi?= =?iso-8859-1?q?nyKUp12hy+hLiMnRXU+OoSjJhaX0oO5e/TuXwgkyVews29fvcgcFwKDnI4yE?= =?iso-8859-1?q?FZFvtXakMOacqjDbnkWc/LLPUM45WN655Sg6IEArvnHRbbZmwJq2KuhbyZcg?= =?iso-8859-1?q?ktHCyHUYza+iTVt7TEyZSvD9GMFR8ABpfXTFMHvMKdrLplGHAptUhth0BTjs?= =?iso-8859-1?q?prwSvN/SpEqWGj6HsB0yvVmXDGKbBL3HLoTgV1/UUnlFeZhFxcn2rf5gIcxX?= =?iso-8859-1?q?UCvr4qD6HIK/BQvwPKdLH+Bwi7Vn/ikjpMcMITZ1srKSh3bTdonqBEpX8D2v?= =?iso-8859-1?q?KIQnQUfAl2W/+opKnNLDq2mDQITMGu4SwVSz1SYsx3qaekQMazLbcyZD8HJo?= =?iso-8859-1?q?EdIDdvE+uiJo2ZyvARBQvq77t1LxWoKDs8nePy9ZcX61dTFBdG/uxkdYMnF5?= =?iso-8859-1?q?XSq0lXCQGTptSAIZkcYIlCgMhA6qnnRDFL0qfLmFnaO+i0DH83gBQhxiOPu6?= =?iso-8859-1?q?ZOHvWh5rsyHAtpr7vAJqIjlx/Se1MRJlev3f5/S3qP4U/M3ONHJqO29HTNlZ?= =?iso-8859-1?q?Ehqu5xkErLg1Y8kFNDo8T3yrTJ0yXApJ0UMz2uErBskvgWer5s/ozv4eH1Jv?= =?iso-8859-1?q?GMTa5ib5ReeHlWSBu9dr65whfs47n1G9idFqE0w9ZfSyTWepYUIdZHNA3R2D?= =?iso-8859-1?q?b/0NnABRWmjCL7PE0xpI8p5OU1gXbXqgo/Wd62NghkhJk/zoOebcDw1ESBS2?= =?iso-8859-1?q?Q+oZ7MtZJ51YoAnmtgCAanMQxRbmhmdgRcwU/VgGdaEysHrTfPD5O0SKw9Aw?= =?iso-8859-1?q?b9uuX2CXMnMniT5pJjqqOtaMEQs0BphUDXxQf/LMAwmEEkhX11ToNQEs9cId?= =?iso-8859-1?q?w6wHbpCcLYgwBZB0aw6pLW+H3/DcizbMP0DaBjSGqjVU3CcU2z9BAEGkBjwj?= =?iso-8859-1?q?oH8A+GIbFk6/MmhhKk+FH26rAtth2DMpWIFAYKEGaT4ux1NIygtkR5F155Bq?= =?iso-8859-1?q?suV1NkOQ2C6d1KUuaSERunwQVkvzQtKgUg3+Gi5+SSTOl7wnLioHC5objvXT?= =?iso-8859-1?q?PZR/Yw5bHVhLm3UydL531SVbD+hsnNN6ZYKTIv7bFRnLmkoFNlmrhR7AAZKn?= =?iso-8859-1?q?rL/OPgC2pO5+8QBLfNL3ulCerW4nexmdzy6+j2xbL45Zj4cnBCH8dc49T4Vu?= =?iso-8859-1?q?QeuhL2RM=3D?= 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: 65d51491-6f6a-4ae9-db30-08da2d6b5b80 X-MS-Exchange-CrossTenant-originalarrivaltime: 04 May 2022 01:13:54.1737 (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: GaT5q9mvhki+FCnAAY4mP+Dpw+4OAJhCHkIQi3nvUxkTaVg5YvO11gHWISz00df0gd2jsX0rPVGWm8BvNDPJdQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR10MB5830 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.486,18.0.858 definitions=2022-05-03_10:2022-05-02,2022-05-03 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 bulkscore=0 spamscore=0 malwarescore=0 adultscore=0 suspectscore=0 mlxscore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2205040006 X-Proofpoint-GUID: z7TOrrAAlwvc-c7jZzCgAE-yFnVczCAT X-Proofpoint-ORIG-GUID: z7TOrrAAlwvc-c7jZzCgAE-yFnVczCAT X-Rspamd-Queue-Id: C9834180085 X-Stat-Signature: wqccfgawuujdy9psf5u3zdtrf55bncnf Authentication-Results: imf06.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2021-07-09 header.b="WA279rx/"; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=J9QKZ7yI; dmarc=pass (policy=none) header.from=oracle.com; spf=none (imf06.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-Rspam-User: X-Rspamd-Server: rspam08 X-HE-Tag: 1651626836-667661 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: From: "Liam R. Howlett" do_brk_munmap() has already aligned the address and has a maple tree state to be used. Use the new do_mas_align_munmap() to avoid unnecessary alignment and error checks. Signed-off-by: Liam R. Howlett --- mm/mmap.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mm/mmap.c b/mm/mmap.c index dd21f0a3f236..c3609e4e6f12 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -3041,14 +3041,15 @@ static int do_brk_munmap(struct ma_state *mas, struct vm_area_struct *vma, struct mm_struct *mm = vma->vm_mm; struct vm_area_struct unmap; unsigned long unmap_pages; - int ret = 1; + int ret; arch_unmap(mm, newbrk, oldbrk); if (likely((vma->vm_end < oldbrk) || ((vma->vm_start == newbrk) && (vma->vm_end == oldbrk)))) { /* remove entire mapping(s) */ - ret = do_mas_munmap(mas, mm, newbrk, oldbrk-newbrk, uf, true); + ret = do_mas_align_munmap(mas, vma, mm, newbrk, oldbrk, uf, + true); goto munmap_full_vma; } From patchwork Wed May 4 01:13:54 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 12839432 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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id B7911C433F5 for ; Thu, 5 May 2022 11:53:09 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E40B06B0071; Thu, 5 May 2022 07:53:08 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id DC8F76B0073; Thu, 5 May 2022 07:53:08 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id BCEEA6B0074; Thu, 5 May 2022 07:53:08 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id A7D676B0071 for ; Thu, 5 May 2022 07:53:08 -0400 (EDT) Received: from smtpin19.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 7C0DA21D9E for ; Thu, 5 May 2022 11:53:08 +0000 (UTC) X-FDA: 79431528456.19.4E1D837 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by imf23.hostedemail.com (Postfix) with ESMTP id A114614008E for ; Thu, 5 May 2022 11:52:57 +0000 (UTC) Received: from pps.filterd (m0246629.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 243LNHVA032436; Wed, 4 May 2022 01:14:01 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=b56Z6rNYl+jTxxBz+9XdChUJVjcaDZsODTDrlXoyXMw=; b=VZRrkT6TbkcCxb4Ey82UjA92FS8b/Pjc2lTNl/G73Js+Q7A2vWSu9Jnm3s4RkhAB2GVG iSFM4F0LM3KZQW4OEc6PvXKmYEK5DXK98Sm8Yn6na2aehq6RMKF2YvB3hp+B6+Qig4dd NdCy/wywMkOoYuI/UJPOUBT3j9z4jUYPZZXjqClEc6QHpOzErjs6tBwChSVfk6Hhg8d8 rtFfpfX97BGdn96LXIVCcoqd/cw3dyurp8c75+tPP5JDzmeTxDaKHOuZPU4cPyJhI9DB iR4DQm9XLnGs1sCzmzPfTVgJMsJjfLDP2NAaO35oDJCPFG8RXkRIw618zLLltH6G2zuq Mw== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3frw0apy06-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:14:00 +0000 Received: from pps.filterd (phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (8.16.1.2/8.16.1.2) with SMTP id 2441AxHt004437; Wed, 4 May 2022 01:13:59 GMT Received: from nam10-bn7-obe.outbound.protection.outlook.com (mail-bn7nam10lp2102.outbound.protection.outlook.com [104.47.70.102]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com with ESMTP id 3fruj2w67b-3 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:13:59 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=lyajvSUBEq9cwHbssjeV0zcmOCa5w2rNpYLI5ujSWiZC2kvdCKGCB+cLCBv+F1XOUFJTTTARf5fYwTMMEyLLdxKf6nGuqbXHyOJITVI27+hi/5wV/NN/fscI6ZI22F2151rp4DmumdKtASCu9kskxbO74d13y4fezOuCO2lQDIE+cQ31p4/M52jqtsb3JuYycg/gHvoMrsUg8Xhd8+la4tsXiTruGZo2gr4mfX2iZ5i9Vow3wlvykFQpGC7NxG9gKmhQbAFLEiDxZ1OCJgQiyOepcUBdo+xSQqWgA3vzSGncqTC7jjxFgl8vGypuuyZ2F/k+CQbeRkmZA/QrDDR12w== 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=b56Z6rNYl+jTxxBz+9XdChUJVjcaDZsODTDrlXoyXMw=; b=Dvy0ZkW2IGq7X3mpae1WevfZjowauUDd2yie5dzPraJ/tV4XzpDpuRFGuP5kixOYhp7EER7fspRCZA6QND/D522d42J1j63TrKmJjbJ9WSHDw9YDWcZMu5JX8eugMl0e0mSOLQd3YehdFmzGhA1DpIY3a5NvuU2xAskbRr77jTnpFqup3ZFjGvVt053KvqvlbvHJklLmi14s4efyXuVauRQBK1PjmJH9V9Ix6oCa4CtwgypjhUI1DmMEzXedN5iUI1vimB2mkuEI/SOQ7pPQQT2KenhFPPjg7ecNnVJzV58cnYVw8cYkwpwTHlLf4XI3moTLPJ3fSRbSo+JmMaYJdQ== 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=b56Z6rNYl+jTxxBz+9XdChUJVjcaDZsODTDrlXoyXMw=; b=RbxZVBA6KCOSIhklMXQCnW2atfOhlv/VV849Y2bWF6VoiuoIqyfCtn6UCgjhJhu7HI49zE5agQv1nIsrWt9SLuG4L811cQiZ9k+e9m6HJ6+7q2wzLOTE6MPnbONYTxR+gH1JyOx/nisKLdhSfor95rwpPvksN2MftruLps0jGFA= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by PH7PR10MB5830.namprd10.prod.outlook.com (2603:10b6:510:127::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5206.24; Wed, 4 May 2022 01:13:55 +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.5206.024; Wed, 4 May 2022 01:13:55 +0000 From: Liam Howlett To: "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton Subject: [PATCH v9 30/69] arm64: remove mmap linked list from vdso Thread-Topic: [PATCH v9 30/69] arm64: remove mmap linked list from vdso Thread-Index: AQHYX1Q4ePOHF/wexUWm6oVPPcfXGw== Date: Wed, 4 May 2022 01:13:54 +0000 Message-ID: <20220504011345.662299-15-Liam.Howlett@oracle.com> References: <20220504002554.654642-1-Liam.Howlett@oracle.com> <20220504011345.662299-1-Liam.Howlett@oracle.com> In-Reply-To: <20220504011345.662299-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: 1dee968d-8c57-4bf9-12a5-08da2d6b5bba x-ms-traffictypediagnostic: PH7PR10MB5830:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 8WnN3fdjNB/jGmXBHRadkyb+Ui7nMmM3u+oIU4hF+XnlmJ58qEM902H5EOofAgb/XJr9n3AEA7Mpb97gCkF8ItVyVCg9lneqkk3q/2gKaKSDdrG6TPNfUGvCWtWHveTdlbNRmnWzccdcVAihOMgeg93cxx4GGN+6Qx9odZTBt9BTDo4w7UiCF+KBPuLYNKXMjaoMrfSEhKysOf6pLlB72D/4hxHbdIfYEWehnZoieC80Eh9IbGPoAfUyBdcVwxQUQArqkjuOP3EPAvY/t2veGMtYfqG9Rkck4p/8rQZXNa3I8BUDL2aM3imUN0MGMcen73NmQN5GI4ywodKOKLaYBdBhMslM8vrtguAeaOwLsWw0w96Jcy/lNsPZ/BCqm30q0QfkOJgnEpyvU4ucO2/glvFJ7ms0ad0XwL3SUfhvHNv17yG7iCC/zLbYk9yKNVgVdTLHmQdMcHWJbXTim7DjtcjUgHSZTs/EQNjwqSkpSLKs7CM+GKlpyNii+r0XfJyeSrAtD8Da/5rQqbgRvyUp+WxxW6cpdIhdNJhXP35HVid2bCsUOHdOP6SKivE1xDgVesj5VQajAkif5Of748BrM9uXidNUN6uwtvdMD79trSP9NsXji8NjW8LEIMLI1YKpi9/xi2WuSmRsADmlJcnEThAWbZhb+qoDuDePmrafaQtesteLvFAaPjTleN+8iYCjw91H6klknmHbtt8KnBmQzg== 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)(86362001)(71200400001)(83380400001)(38100700002)(38070700005)(122000001)(316002)(110136005)(4744005)(44832011)(2906002)(8676002)(5660300002)(64756008)(66476007)(36756003)(8936002)(91956017)(66556008)(2616005)(66446008)(66946007)(76116006)(1076003)(186003)(6512007)(6486002)(508600001)(26005)(6506007);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?lBUUDDUU1H+hB/lmNGdwk6g?= =?iso-8859-1?q?et3xwglPE4qv+CM3JbzuQB+aLCN9PXWAIiKSFQMMyYHLnxi7AOeUqdwY0LJy?= =?iso-8859-1?q?ulhOKqwr7Hy9OJFHhFncwq0OnbBCOTEbAgtavUTPexd0kZ7fO3MYNBQDrWAb?= =?iso-8859-1?q?oXEDewu58VMyEUHg8hmFbJmNdH/o6V2sQZbl7x9dWchp0LkwkdayOq5M5oYa?= =?iso-8859-1?q?RCRa8UeOZH/NJfKikV3TttW4ceCUYKxEVBuVk8QDx68UQZZp7OoCNQE9Xv9v?= =?iso-8859-1?q?EfHUzYQNBPhXychrDYIMkvdpN2FfaNSX1oRcfgX3LNcwjQkC8KHFfSdZe9yk?= =?iso-8859-1?q?b/WovlcC4/xWDrc2RKWZvy/qgfOGRXORL6TcJBVBdOsR2K1deIMDk2X9mFVf?= =?iso-8859-1?q?Gpx6fob02dAJCeiEyZaJJdAapADtiu8VA7KIUttumBrigZWthxnBbUuF7muQ?= =?iso-8859-1?q?emuiHNlCMPj324/BU7F4oDgxadzbVjk9zZRJU6G4qWJjMlfuqrT3l84KL6y8?= =?iso-8859-1?q?nl5DcSsgnREIfuEJr/LyiYMW9475xtwYmgTi6GwGprdms/Y6FIlSWJ9Uk/GZ?= =?iso-8859-1?q?33XN0lJXn5WoBelIvWrRHlkQkpkpel5kKbKJlovMEWhaA2Kq40ZoZNyrp67V?= =?iso-8859-1?q?ZujT9xC1p7+DszA7RRX7bJcDpVpoNYFvYxJrfEvXkYasAhYS6e9/CWNi+CeU?= =?iso-8859-1?q?aNGkFDX6AKxm/EEV7esTlrCBFrc0+sLaC275d1b/PjsEVE2rFZ6RJET7Dmj5?= =?iso-8859-1?q?drj8G9RZ0btVxG7AEBXPqRbGKlobPrDgTY3kNW/KAVxIpA9TO7o9+Zwd77gV?= =?iso-8859-1?q?2iTFAKhljFWN+X7mY3hHWU4CAXN0KFCeGZUSBjqFbuz74dZYj8zDKj+42GTC?= =?iso-8859-1?q?5hhMIpF0bY8MRaXsSibgfBrKRrDuuXzFr8Uwu7RvvW9EJRkIBEvH+OJwS5Mx?= =?iso-8859-1?q?4qrbnYAfxRUqQsGD0Iyj2kzYnPuHIq5PNxh0T55oQUDpvcqWqdI5Agc5j44B?= =?iso-8859-1?q?H0FnC16Sk+g+ilMDA0w/hIGD/sCvLhuIn3pU0ZtZADUoVO1eLGRlOwCdwiIE?= =?iso-8859-1?q?Cfyv5/tnAqblG4bYoZYNkEWhxAhzv8nUL+2bSidDc+jSYbaq/xpwvURCxP4L?= =?iso-8859-1?q?H2oiiIiN7VtEk+J96PGP2zygIcv5IXbFq1uMc4JPAVyuKTmDBLIKQBK6/zwf?= =?iso-8859-1?q?dMQQhWUcSjMmZYVAJ+g86QaXzPNfrrzGpKfl7Y3zIEbMwId8uHS6AbyEN5da?= =?iso-8859-1?q?RzpupKImzEisx5fBM1gh9HGcOYXKVkVr+Uh4y+lkhAqWqo6h9Gx49YnlEQsA?= =?iso-8859-1?q?UysGuXG2AsBGgN/c9PdaWCMOivRg9LaZuTPzwliO7ZTMPjuhiPeiyw/4VVCZ?= =?iso-8859-1?q?o4joUiax5QtC4zB9yeJxMJwPfSdCO8/emesR/AVTc8YvKVSWNmtG5kjKMSRe?= =?iso-8859-1?q?3Hgb/okaXICcYnAOLcnfmtbB7dK2LB8yg1quhvfh7cic5R+fvuWCV20HuC44?= =?iso-8859-1?q?UL3dFHCbKBftqf5vJDXcSVjkRZCZl5rWr1lZxsRdVIgXYLROAgR5TG+2TLqn?= =?iso-8859-1?q?FQsBzO5csyFZD2PfiZN6w1G6SBOL7f6yj9MqVPm1R0rbKXvhB5eHt3jeV2pU?= =?iso-8859-1?q?Ner6wlwtZOl5ubKGtFUvxL/uff/Kn4SYBL93QrZ8ZM8O2upPKExkZqymPNPG?= =?iso-8859-1?q?kQo04QphuEnAJX4TvWB7SGJUcg0Eq16ZJIhGBmZbXNbMef8wRHbR83Vs09o4?= =?iso-8859-1?q?0Pu6OofTc5odxy5jEetGFN+SYHP5Y6sqqx8Am8+C0J+WY9m6qqm3pzSxJpdG?= =?iso-8859-1?q?s7bPz6i4=3D?= 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: 1dee968d-8c57-4bf9-12a5-08da2d6b5bba X-MS-Exchange-CrossTenant-originalarrivaltime: 04 May 2022 01:13:54.5643 (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: QURAEWAxQlQfqAKCYb4tpZQzkQKYmjgIEB2FWGNZIMRBSz/Qjn83Kdfw1KAC8NEGzepPfXyi56TT42JAFS6z0Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR10MB5830 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.486,18.0.858 definitions=2022-05-03_10:2022-05-02,2022-05-03 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 mlxscore=0 mlxlogscore=999 adultscore=0 phishscore=0 suspectscore=0 spamscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2205040006 X-Proofpoint-GUID: -EC-ZhsJZJWJtXHct2trkUjfurDI2XQy X-Proofpoint-ORIG-GUID: -EC-ZhsJZJWJtXHct2trkUjfurDI2XQy X-Rspamd-Queue-Id: A114614008E X-Stat-Signature: pf1io4sp6inbhdcfoohojx5sgzuqia5e Authentication-Results: imf23.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2021-07-09 header.b=VZRrkT6T; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=RbxZVBA6; dmarc=pass (policy=none) header.from=oracle.com; spf=none (imf23.hostedemail.com: domain of liam.howlett@oracle.com has no SPF policy when checking 205.220.165.32) smtp.mailfrom=liam.howlett@oracle.com X-Rspam-User: X-Rspamd-Server: rspam08 X-HE-Tag: 1651751577-810985 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: From: "Matthew Wilcox (Oracle)" Use the VMA iterator instead. Signed-off-by: Matthew Wilcox (Oracle) Signed-off-by: Liam R. Howlett Acked-by: Vlastimil Babka --- arch/arm64/kernel/vdso.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/arch/arm64/kernel/vdso.c b/arch/arm64/kernel/vdso.c index a61fc4f989b3..a8388af62b99 100644 --- a/arch/arm64/kernel/vdso.c +++ b/arch/arm64/kernel/vdso.c @@ -136,10 +136,11 @@ int vdso_join_timens(struct task_struct *task, struct time_namespace *ns) { struct mm_struct *mm = task->mm; struct vm_area_struct *vma; + VMA_ITERATOR(vmi, mm, 0); mmap_read_lock(mm); - for (vma = mm->mmap; vma; vma = vma->vm_next) { + for_each_vma(vmi, vma) { unsigned long size = vma->vm_end - vma->vm_start; if (vma_is_special_mapping(vma, vdso_info[VDSO_ABI_AA64].dm)) From patchwork Wed May 4 01:13:54 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 12836639 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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0E7B2C433FE for ; Wed, 4 May 2022 01:14:10 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id DCACD8D0008; Tue, 3 May 2022 21:14:01 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id D9BB58D0003; Tue, 3 May 2022 21:14:01 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 9EDE78D0008; Tue, 3 May 2022 21:14:01 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 90E2D8D0003 for ; Tue, 3 May 2022 21:14:01 -0400 (EDT) Received: from smtpin07.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 71D452942E for ; Wed, 4 May 2022 01:14:01 +0000 (UTC) X-FDA: 79426289082.07.D60DAC1 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by imf18.hostedemail.com (Postfix) with ESMTP id 85BA11C007E for ; Wed, 4 May 2022 01:13:53 +0000 (UTC) Received: from pps.filterd (m0246627.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 243KnGv1029440; Wed, 4 May 2022 01:13:59 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=KoAQ0z7wTYteDrn936jXoPOYmddh3bdgopscNkeFN5k=; b=nV+ldQIHy8IWUWqUo/QU0XkblZKZSPwDHsMxaoWcC1bxTSrXzpSqjykGdfN2r8Hx1vWc sUzaoW6Krt329JZqXKmnaXw5yagkftOC0vaLB/JNJkcDE3kRxwLXgrSd0at8JGrhmERh O/uXmbsam5F+BAez1aSC8ZWX8MYXY9KZODhoOQj4xwIvVP71p8gaosEBNEamPSPrFKoy CFCYhR5V2yV5SbDE/HmhJ//Tvq6qnpo4+IM0ykdeWTGUdeKOv9CvxZfqRIszoPGnzmv2 yZ2klem47Cs//Ve8kEDByhNHn2MJQWp/frQDG4XQr+7IQuNWMIGbmrToFhUFvSYSske7 EQ== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3fruq0f618-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:13:59 +0000 Received: from pps.filterd (phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (8.16.1.2/8.16.1.2) with SMTP id 2441AxHr004437; Wed, 4 May 2022 01:13:58 GMT Received: from nam10-bn7-obe.outbound.protection.outlook.com (mail-bn7nam10lp2102.outbound.protection.outlook.com [104.47.70.102]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com with ESMTP id 3fruj2w67b-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:13:58 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=bKREOom0r1EFE8F8tmlRH/4zQs4rm5+m+p2bn6qz/xv3UdpFN0S5kCNOuF0o2MrsF+V5FO+sxkp2B5Wu7grA73t500VnDhwaParAanf3qs6Zi2aEZS9iXzBexJsvowSeFApwxr+vGapxyRW3dnOw4eGSprfINHGJB2WQaDGYaQqRjCy6Jzn44OidgURFxgiQodVGpkCDq5P2W4K+vBZhAaMPAHdrFI5cGmKMaYIdIC6ryXaakv4TXOjmd+6SZqp1zceVeWzOuA4lF7CMT+Zp1TVQBDAIY0jVggVmJY9DpKfyJoCKwBEGSvEmfI+EijJHCPotEKJwA6bB4q+Ft3PZ/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=KoAQ0z7wTYteDrn936jXoPOYmddh3bdgopscNkeFN5k=; b=aj2QY+jQA+brvXr+CPGz8HlCFp5xxEYtv+hCag0OdiSMv9kPPbI42y9VWqKv9QwIvmFUMVV+tc89+pau89KQa6zLYibzwHPQ87H7mnronlJhfCHWlh/f0hZODJDdvsbgFZvCFco0CE5U3RVRYffW6B+yBnFudLqITCNfyM1XUlnvg8Y/bbi9NGCB+pJwMwYs7crtnKAYyywFpXP5bRDtvAWkS6G/oGWYJxxFvcW+G6BV+SDPhZYtLJFCLHhdSVckaPe3xw5nVIFWs9XOS20OTsb8BIXB3+qIJ2psZBUHyqLs6XVsWBkyBPLRxQYZ+i0R/OkSKANPlucfCYIc9n4a9A== 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=KoAQ0z7wTYteDrn936jXoPOYmddh3bdgopscNkeFN5k=; b=HMaezzA3SjiJGJ3MCP4SPC9AMhSstTUHUrgOxrKU56cgOvLETjz0ApfGoZ3P+jxN9QmHyuu/TgkVOfLL4BDWor04UHx91EH4p8kb6C2gAdMnznY3id8+CHuGyCgypnCuutFZq0OElNAJ0srLBy+AJj8V0NPgUwyeuSsfZ2WoOsU= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by PH7PR10MB5830.namprd10.prod.outlook.com (2603:10b6:510:127::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5206.24; Wed, 4 May 2022 01:13:55 +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.5206.024; Wed, 4 May 2022 01:13:55 +0000 From: Liam Howlett To: "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton Subject: [PATCH v9 31/69] arm64: Change elfcore for_each_mte_vma() to use VMA iterator Thread-Topic: [PATCH v9 31/69] arm64: Change elfcore for_each_mte_vma() to use VMA iterator Thread-Index: AQHYX1Q5Tyr3+l+wzkGa4v1fmWuVZw== Date: Wed, 4 May 2022 01:13:54 +0000 Message-ID: <20220504011345.662299-16-Liam.Howlett@oracle.com> References: <20220504002554.654642-1-Liam.Howlett@oracle.com> <20220504011345.662299-1-Liam.Howlett@oracle.com> In-Reply-To: <20220504011345.662299-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: f448fb4d-162b-4644-ac5d-08da2d6b5bf5 x-ms-traffictypediagnostic: PH7PR10MB5830:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: /XrA1mFfgQF7mxhNYf3wWeCgguL/QgDxzZNramqfD+8A9VKsNHCDeAqbtnS/+W+AcS7cHfLYhEQ2tbgPuZcMHoAYMQvg+zoGNwlrkX3goRYDKGGb563DPCu3cjCqU1C/tbAY37mlXuNTuqYoSTR4Y5IcVwxgOQrx4g2bY0/YXkGux5l+4xz1ozHDXQgI8bEOM1C1gBB8eSjQth9h5FSrDw5ljgiHZ4HFreGDE+ZPH7E/i5lQ0DsxeD443STIgQN7qTnZWgORZ3Wd963Ae8ZU3kYh5Ugh50Dnrug4tuYRMFYKRrvFNQrSq+/SdFElvR1yNBslW9kTrOa4R3NzX11jHtaF83OjDbY7OLc9iQsnALajhadu6/6ZfceFvTM8h0xP3XOakS4NGTi1aZfIAc/lSO+xl1jDAdfM5TiaUzg73HZbT6ZNsOqdcb6RykiuDa2B1ZtKPZ2ygLJJ1IFnIKXzFWFNFRp27tDDVz7Yq0W+l/6zhwmGJIod0ajNrQHEJX8vyssx+YPMFGwerh0cWNuezdq4sM7AZNipMJz/MA5pEmPOwyYa3940Hay2EFsz3bPlFKUS0GaGr79O36VlAJZ4ThJF+X1NxuNJU94Dn0cENKK0t4j/GJ8RWBCghY3pr9OXOTTFsz6Ppkc5SKOSt4wsK/Bfr0+Nkujpo/hgr28cVotnHqCjR977xM4dRtoq7wSIUmCrHTjXuajQsQktKZGVQNl94TZqyhkYb1gosO2fY8pRVWaaK/dfnsDpo12rj1nHYC9ZjdmD9aFhj/5LFmtrBTaKnUpVLeD8nnoitN0YXGU= 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)(86362001)(71200400001)(83380400001)(38100700002)(38070700005)(122000001)(316002)(110136005)(44832011)(2906002)(8676002)(5660300002)(64756008)(66476007)(36756003)(8936002)(91956017)(66556008)(2616005)(66446008)(66946007)(76116006)(1076003)(186003)(6512007)(966005)(6486002)(508600001)(26005)(6506007);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?ZJLLedBPwmBxFt9igly9KNW?= =?iso-8859-1?q?MpxkZudljP/HCPDJlBt0kqJVkOHNP5S2pCXlitydhNGY/gRyUfCNHzeyUrOd?= =?iso-8859-1?q?9Sxd5RsuIA1fTIDHnmPJNhi6TsNdO6jly0SlLUDxPARYGw/hEhIXxP66uGNC?= =?iso-8859-1?q?cd4OreTIBjFz+ARmei4pmCtNTvitAhZs8znbn4lQud3exZwPht+/FewkyCYY?= =?iso-8859-1?q?uJ1gp4GaRkil5t970fpTD+x1wK/aBZ9sbPCJDiitGTzgqX0Qp3ZrnnvpBc3u?= =?iso-8859-1?q?EyAX296Bpnva3Jd/wiz+OxHkz9HM6bXuONThE/FIXFxR4EScqhWDnCzS1/q3?= =?iso-8859-1?q?3c8wza9LWK2kMRE6fW/wv/Jopol743T9fFEhl30Kk2R/pkENXIeFVlRMTJ93?= =?iso-8859-1?q?kOWLc2zyo8aaaM4ZzVOcWuOoKs7mqDFIWo9a5+dCb0tdPMy74Wg8k3MUKqi6?= =?iso-8859-1?q?MUbw4eG8ufTAIqsEOFMUGu1XEjaAlcfBau1CuxJJkmkO44sY+sPIIcsxEH4X?= =?iso-8859-1?q?Mba+y0V3+dDijxVVy2erlCxR+fqQl9OvPEG89vJAiHqg4UhHjiNNr9u9JCGC?= =?iso-8859-1?q?YZrc/sVS43KINLf4B7rN/StOkihOEM7eRh7sO1grmmLq5pZ7+IJqJsjLracb?= =?iso-8859-1?q?C7Vr1l+ueIlQ8O2ODrc0aD0JbXHmr2heCpF3dABZtYvucE92rIGZiGaOJ+4Z?= =?iso-8859-1?q?qWzzMVFSd86Qt1wEakfxxQTAHJBWu4V37NrLdxz2OZWVvrSAtlplk6xFLDGx?= =?iso-8859-1?q?HWJTqBk8PFyrJrxqmfjUz26QGSRTrJPmqWq1JPkA2ac9+AKm4vpPDnOrwVsV?= =?iso-8859-1?q?VBkjy2t0TBeR6tqBfmSl/Mhsvn2p1g4lB4s8z0HWC6csDietM8ZDGvsR5i25?= =?iso-8859-1?q?whk/xR1P8VydvkkFGZ+fth77YKrSZe/OMOFwWithXwQiouGTUtffQ4Oa2X6X?= =?iso-8859-1?q?IUl0/5iwrRyJpTSHRU+XNBfrFnoccXSUl4nxkgOpOFzUzbKv5YlJutgge/b8?= =?iso-8859-1?q?1bnCiiHvYBZNhxWCbhYBXugWXXMBuqoyas3yVL7jNZJnk3P70i8iB9BMSnW+?= =?iso-8859-1?q?bcKrFdFCcV/oBUOcWSNBc2SbIMYN02Ohto9/Q2wL0dhVbFfhZdXHR2iNUOwu?= =?iso-8859-1?q?JaAgakAl2e0Fl49NmooJfBW+pw59egey6ehKs6XZLyN1w6Nw0UJRQLELZbHn?= =?iso-8859-1?q?EufGySO2fuOODK7mY7Xns3aRlmAUkvP5qe1HaN1snLCAy7bmtTzu5H7lLr0G?= =?iso-8859-1?q?W58scP1gv00UX8+NxalKCZepJeQ7axbXAUOiQr7Xenpa67J/JB9I+fbxBNSm?= =?iso-8859-1?q?b4LgZHZ00UT8G3A1AaUzeYR6B1URbbgfCtKjGatWr7gkfYf+P0kmRU7DIRQ8?= =?iso-8859-1?q?8f1VrH7A8BxP3SYRq5ALpWz6eIGPK1AfNysby47NXBz8BoDBHr0HPya7erS8?= =?iso-8859-1?q?ptehGypUxUj1XLujnN6FZEw9ULJh+BYHai8zfaHA2/WssGkwVlJtnR2TJ6QA?= =?iso-8859-1?q?xc1IRQjLnfX9N4vLs+U2+7DV2t4289GmNuq2JOg/4VUaJD9mhYdU1Ej/yB66?= =?iso-8859-1?q?3xEk8QFJPITzqyVnQdK9Qi0gSQ44PfmnRNVmsKpQjERW3Y5fBb2MILHEIZ9y?= =?iso-8859-1?q?uBv3XfOvSxikN5JUPMcsJuXJJDqm1+fpAVNIs1k9iWFsscb/bDPIdGWGY69Y?= =?iso-8859-1?q?/Q8T/TmwyL7VWjXTM6eu0B3sIiGCMoAn1YATQLhHss3pa1Tk+5hl6xbuYfGU?= =?iso-8859-1?q?oF+wirT5hYGSRHzvpZgQCdeq9RZXGXcpMg8Z9oMjltR8kXSpExhpElt8xbNn?= =?iso-8859-1?q?4+Io8w70=3D?= 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: f448fb4d-162b-4644-ac5d-08da2d6b5bf5 X-MS-Exchange-CrossTenant-originalarrivaltime: 04 May 2022 01:13:54.8612 (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: Xv/OPDOK4uCDmpsxM+9upC/JOdRWBIYT+Anc9NfYgKi/tj3ymN+rji2/QnNwCpfDzqZUzaUcFRSo6VeDCFQg1Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR10MB5830 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.486,18.0.858 definitions=2022-05-03_10:2022-05-02,2022-05-03 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 mlxscore=0 mlxlogscore=925 adultscore=0 phishscore=0 suspectscore=0 spamscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2205040006 X-Proofpoint-ORIG-GUID: NjeyAAsnIo0AuoahJKspMgrSzdeA06Jn X-Proofpoint-GUID: NjeyAAsnIo0AuoahJKspMgrSzdeA06Jn X-Rspamd-Server: rspam02 X-Rspamd-Queue-Id: 85BA11C007E X-Stat-Signature: ycppcahj55kk1q38udhyc6tzjifsthbu X-Rspam-User: Authentication-Results: imf18.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2021-07-09 header.b=nV+ldQIH; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=HMaezzA3; spf=none (imf18.hostedemail.com: domain of liam.howlett@oracle.com has no SPF policy when checking 205.220.165.32) smtp.mailfrom=liam.howlett@oracle.com; dmarc=pass (policy=none) header.from=oracle.com X-HE-Tag: 1651626833-85195 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: From: "Liam R. Howlett" Rework for_each_mte_vma() to use a VMA iterator instead of an explicit linked-list. Signed-off-by: Liam R. Howlett Acked-by: Catalin Marinas Link: https://lore.kernel.org/r/20220218023650.672072-1-Liam.Howlett@oracle.com Signed-off-by: Will Deacon --- arch/arm64/kernel/elfcore.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/arch/arm64/kernel/elfcore.c b/arch/arm64/kernel/elfcore.c index 2b3f3d0544b9..e66ab0f09256 100644 --- a/arch/arm64/kernel/elfcore.c +++ b/arch/arm64/kernel/elfcore.c @@ -8,9 +8,9 @@ #include #include -#define for_each_mte_vma(tsk, vma) \ +#define for_each_mte_vma(vmi, vma) \ if (system_supports_mte()) \ - for (vma = tsk->mm->mmap; vma; vma = vma->vm_next) \ + for_each_vma(vmi, vma) \ if (vma->vm_flags & VM_MTE) static unsigned long mte_vma_tag_dump_size(struct vm_area_struct *vma) @@ -81,8 +81,9 @@ Elf_Half elf_core_extra_phdrs(void) { struct vm_area_struct *vma; int vma_count = 0; + VMA_ITERATOR(vmi, current->mm, 0); - for_each_mte_vma(current, vma) + for_each_mte_vma(vmi, vma) vma_count++; return vma_count; @@ -91,8 +92,9 @@ Elf_Half elf_core_extra_phdrs(void) int elf_core_write_extra_phdrs(struct coredump_params *cprm, loff_t offset) { struct vm_area_struct *vma; + VMA_ITERATOR(vmi, current->mm, 0); - for_each_mte_vma(current, vma) { + for_each_mte_vma(vmi, vma) { struct elf_phdr phdr; phdr.p_type = PT_ARM_MEMTAG_MTE; @@ -116,8 +118,9 @@ size_t elf_core_extra_data_size(void) { struct vm_area_struct *vma; size_t data_size = 0; + VMA_ITERATOR(vmi, current->mm, 0); - for_each_mte_vma(current, vma) + for_each_mte_vma(vmi, vma) data_size += mte_vma_tag_dump_size(vma); return data_size; @@ -126,8 +129,9 @@ size_t elf_core_extra_data_size(void) int elf_core_write_extra_data(struct coredump_params *cprm) { struct vm_area_struct *vma; + VMA_ITERATOR(vmi, current->mm, 0); - for_each_mte_vma(current, vma) { + for_each_mte_vma(vmi, vma) { if (vma->vm_flags & VM_DONTDUMP) continue; From patchwork Wed May 4 01:13:55 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 12840771 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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 82A5BC433F5 for ; Fri, 6 May 2022 08:56:32 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 110066B0074; Fri, 6 May 2022 04:56:32 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 0997D6B0078; Fri, 6 May 2022 04:56:32 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id E073D6B007B; Fri, 6 May 2022 04:56:31 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0194.hostedemail.com [216.40.44.194]) by kanga.kvack.org (Postfix) with ESMTP id CF4CF6B0074 for ; Fri, 6 May 2022 04:56:31 -0400 (EDT) Received: from smtpin25.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay04.hostedemail.com (Postfix) with ESMTP id 4196B998DC for ; Fri, 6 May 2022 08:56:31 +0000 (UTC) X-FDA: 79434712182.25.CDD7020 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by imf10.hostedemail.com (Postfix) with ESMTP id E763AC0014 for ; Fri, 6 May 2022 08:56:12 +0000 (UTC) Received: from pps.filterd (m0246629.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 243NIL3N004092; Wed, 4 May 2022 01:14: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=0nFIXDnQBt1NV0JRBPoWWdNPKRiYZYX33deYqogRPIo=; b=deRgtLKLtZ1yXd/EA2fS1bwcQjLlsiW33L0kWA1BsOb2VwBgPyMQxTG29FHA9/oEB6P+ +rn22FCX1Ym6gCyvyZJdT1pYTsvceJqjFQdG/QVPqUuxiWLL8N35RjkIDpN93PyrN41c DkvsS1kDee1piujppWXhBLbdQ8dFAotQ4mSnv52erc3qlzquwcNQnInlF+BwNTYTieBx yd1NdBY5PnZSPgS7sE0D3NcdX0AiYdQ7Uz5XB7w4+wn+UJwSFgVpLoiHC13cTKObKvp+ EbJohL1xm7mjYb25v9jdSpk6+NZxj4aMyxXwKdERpugjGFvZW96SeS462BZMyOzfMLAC Pw== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3frw0apy04-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:13:59 +0000 Received: from pps.filterd (phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (8.16.1.2/8.16.1.2) with SMTP id 2441AxHs004437; Wed, 4 May 2022 01:13:59 GMT Received: from nam10-bn7-obe.outbound.protection.outlook.com (mail-bn7nam10lp2102.outbound.protection.outlook.com [104.47.70.102]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com with ESMTP id 3fruj2w67b-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:13:59 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=D5EnaE7GpJ0aaLW5xTEQ5PQ+xFHcQsFzl2bRy/AgK1hXzI1AA7Chi5UD0ALxMU719jAXgRX+IPXIDLbRQt0bDReTWioKwot3ygCbxbuqEoDpWsoowCf0/LnmWYyRwmABRYYZkHBnTJHZB7lma96QcIqHxsB9oy2o2ODGrMhx9u/xlZiA9twY6jn3w0FtqC4it6qjWo7hk9xhBSCQDjAlHGNnEsM0g/4Q1IFV+96xGuPOqWcvnczD6jhWqeVL3EW7fruV9lGzI8b3hB64e6n7bAFxN7emlw7MdW45X7ipj0qphBHrTE4oPBbgnRyo/psPOP9+/30ryMTPMlz06zX70Q== 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=0nFIXDnQBt1NV0JRBPoWWdNPKRiYZYX33deYqogRPIo=; b=furxcgJdlo3vZL52LrGL7IqK9YQ+pToBIdSYXniL5f87YJKGQIMphGR/sWXx7hhIPcUbHpqhxGJ0WObKZU28mFM5gphEyGFf0Pqj9OXTKwJ+vMlGvW6aWdwJGNhcb7kUf3F975dNqvv+/VcY8vpMcXUQmF7J2USKAky9aVDvPj9t2aBKOsE4psI7HA2xgunW95dwLp9/AiNKMQ4odxBH4UDCfM8OAQQtpDk7nIObiEUDDTGFecBk+vfDZYjqrpGiKVtrFln93MgJhkwHGvThJzK/TWgMfY18XlM6St5RpxkisVfxdQTL0XEXSLucaBgcBL7/xBdKpF7IhaeaSH9EGQ== 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=0nFIXDnQBt1NV0JRBPoWWdNPKRiYZYX33deYqogRPIo=; b=u9jEPKbcN74HKAt+1/AcGeOH8uOT+Dk7gktW91tqLdoeI0lKyLvCblrFty7a+Q9xvvHxHaX/TKz65h+eRDXXN1+bSD8wFcb7v0VVHTSB8cZDHsr4IhjQi+rP2ldiocg6xBmeNz2tJ9cp28FviHYe2Jaf8i6KtKYKQucSuShiPqQ= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by PH7PR10MB5830.namprd10.prod.outlook.com (2603:10b6:510:127::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5206.24; Wed, 4 May 2022 01:13:55 +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.5206.024; Wed, 4 May 2022 01:13:55 +0000 From: Liam Howlett To: "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton Subject: [PATCH v9 32/69] parisc: remove mmap linked list from cache handling Thread-Topic: [PATCH v9 32/69] parisc: remove mmap linked list from cache handling Thread-Index: AQHYX1Q5hM8B6ViD/0OON0UzDeXmEA== Date: Wed, 4 May 2022 01:13:55 +0000 Message-ID: <20220504011345.662299-17-Liam.Howlett@oracle.com> References: <20220504002554.654642-1-Liam.Howlett@oracle.com> <20220504011345.662299-1-Liam.Howlett@oracle.com> In-Reply-To: <20220504011345.662299-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: 42617848-440f-40b0-a87d-08da2d6b5c33 x-ms-traffictypediagnostic: PH7PR10MB5830:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: /52bx6TbvjX34WUOQ9EM2DpbhC0nsNx6w2g7JFDSPd8hE3QYlkGY991foR3+tTRHKmbtu/7uyAfyXyTiKSm9CRKQ6Cjkq4HP5benRNs/PfeVLZCp/UL864QohtK9ZPuJdFd8qk+eMfh4HuhOXQ2L5bPKMMtonz0dwbs8qJFt8n4TOxO68fymzH+i6bxhS5tGJ2NIkGbcLGtCLaPzOu4ikyEqsM/1HLF8jZ29qlOnbCkBzgdu6v+C/2b3TFa3C+CyHt70seprNwBM5vPWKcQV9Z/7fo6XbDshehAaNIKKo2JCCrNVvEePYogXh8LZ4KOs8fW2UlT93Bk+K8OWpGIJCf7oNg2lJHwbdiy652SGj1asNvaTWRtYWcDVIIgbMv1DjAXd2oU+ZXNaDpb3qrlXNg8urlUGLA5BqolxpSqyvJMwSCBQj4XxvG7q3ZddJ4+FHY2sYuQ4YDR3oTzmjZJ+DpPxZlg0yA7Jt/nWV2kd6pz0hjjUo2JCzC7x4RxiJ1NclSpUNSaVtk8gvPtKOvfEGfM2xuZ8vsaUY817AjaAK0CWuIc6bfUvvlqOZrHXk/24uEd8t61JAj4Okm3cnT5uu+og4ypOPbmlJTjQW2MQOT/5vxz7f1iBpcepAOSfR9a+3l5ROY4unD/HdNjsBzt2fOdo+y3KmuEIfqTZZqiRVNQvl1VefpiIUl2rkoPRpYJ3EbydFk0hzm7TP71tZ02XjQ== 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)(86362001)(71200400001)(83380400001)(38100700002)(38070700005)(122000001)(316002)(110136005)(44832011)(2906002)(8676002)(5660300002)(64756008)(66476007)(36756003)(8936002)(91956017)(66556008)(2616005)(66446008)(66946007)(76116006)(1076003)(186003)(6512007)(6486002)(508600001)(26005)(6506007);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?EoQfNsZqYKZm8gBF3v70zuL?= =?iso-8859-1?q?bSqzXykz4a67Q5aVJkRqTQqwzD/noaLZotXWwOQ7/smIsLtWBKjVIuHHC7i/?= =?iso-8859-1?q?uMTJwQi6KWRe0OwUWJ8z+ihdiTXsgL21lUGVA+tT2XM31wWBRDZsU/IJl4cJ?= =?iso-8859-1?q?e4YxqOTZAdZhUmFyn9KrvrfgiiKKmPWZyIgTS3QFI/kvkthQLn6RwavXmh6f?= =?iso-8859-1?q?mTcgSkUZvU8gKJaKtSn536OUj6tJ2DE6Ezbi69oEhCbdFJX2KQTbHQIjpm5C?= =?iso-8859-1?q?Tf39V+BbJBRFI+xJI3I/AYmKGqZvPk0B7EPj/aHYfPj4g21q7LOfkWcWbHdS?= =?iso-8859-1?q?G5HWL0RhfNFHH5sKPHOItVuYK/5Z0EtksEHpsJOt7AKgF1dOijBAJ8vuKfpJ?= =?iso-8859-1?q?PVeIBVwTJvKaz2pf+ORlVMFXgUuymdJbH6dF5E7xvT08Bo5vR1sBH7RuY3C9?= =?iso-8859-1?q?HIdYjdF14hVG8F2W45kPH4zBTKSMFXMdnI+3HGGGi2cV49Q+E8budnluHaui?= =?iso-8859-1?q?3FzaFeVHF7pKK6DUaqZoGcelawr6x8znSQqp/5RS1/OZ9ofbJdrD1h/IoCWG?= =?iso-8859-1?q?WF4yGx/z3ogKfD6fO0dZoaJyE4cukvBiGYN5yhE1Pc5vXBTgFT6DBufa34Sp?= =?iso-8859-1?q?LT2gQgdxMAqIyZlGsmv47sMogXADt+KupUnkltVIX5Av5uw/xUvgiT1/sPQp?= =?iso-8859-1?q?BuFCAFDjwXu4SbhwSUv8G5NQfF9FgxNQIeQp+M+k5QXUCSduht6ZoeM/4bKQ?= =?iso-8859-1?q?KyvGVw57Vr81HMMD8ew35rWRUecpQDmiNmYQMQwBaNT57nlImk+2qZA4ZSd5?= =?iso-8859-1?q?2dlnyk+rE5OFF+0letbYA721Q+j/rmnyVB/85mhhLdqEiQQExfr7M1qeewu2?= =?iso-8859-1?q?Zx1W7HTvfm5eNtHYyvxZUUIwvanPQ40RY67+BifrM+02DYIYx5uuZPPTkfoZ?= =?iso-8859-1?q?cIpcUXc3a95DawOG/fTDJ4+mrC3mBXI5jeH/pwXnzNQMUvhRmN/HGe4rrzO+?= =?iso-8859-1?q?S986W2/5jkZfZsM6ugW0Kews8UslmLIJtj8O01ywYe2p5/Fb/2l+IWl65Rj4?= =?iso-8859-1?q?N32ik/r8gTbZBOvXS7xE9fLTVGLBJh1lBjKUoHsa4s8erTanb2Q1H+gEupcj?= =?iso-8859-1?q?EjnGGn0LvDVuCb37b1PPaZOZmqLg9mvtlXgxN9rMV42JWYykfSDC48VkW34W?= =?iso-8859-1?q?DDODKTIxQcYXAASThWaRlLGi22eBrml/2jla2PQ0rwcnwGulpx3HImRkFE9o?= =?iso-8859-1?q?X6JJLm6DBeZYXD1yLJpyA/Wja8FueQLB6Uds6eGM2M0TcdxQZOucJSFCVZjP?= =?iso-8859-1?q?8Dzs4AjOVdqxhPDxr7WaVGCzuvnhQe2YqMXt2i0CxEVV+GlSea9rdox9E9D6?= =?iso-8859-1?q?b0AHPecaoRfMDN5CZXzch1J7GJB+EJ8gZhYeRTjcZIaQAhPFk6PAfjM8J0qX?= =?iso-8859-1?q?uV11Lm6/tvVHD6xr1/efGC0nnhR37Tp6Kr8zqv8Sw8BFwmzq4ELXWR5+/M92?= =?iso-8859-1?q?yuGhnOU3SDnC7kANNb075sFqpfwqBMCUXYHBENHy0ExbTLCd7XzBZaxCk6EC?= =?iso-8859-1?q?rUziQ36VPY0gckhM58JgHrT9v5miX01hff0M9Dq2XV6/6+iZ7LNw6UM62AVd?= =?iso-8859-1?q?PYZKaefKRlrQDaHCs8ZD6a7i344YMwI+OcvDtI7nxMekoW8EGub7hteRj9FN?= =?iso-8859-1?q?9B5T7TXyQixCe6zBLW58mBwlrU6G+buIg7PgsoADHPrtULuUIT9scde1Pc5e?= =?iso-8859-1?q?ScIujjLbiLqgPsI2ftEiZWTJZ3AOgkHGGWF2c85pgun1jwIvDO4lZALs0+BV?= =?iso-8859-1?q?oZ/3vmTg=3D?= 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: 42617848-440f-40b0-a87d-08da2d6b5c33 X-MS-Exchange-CrossTenant-originalarrivaltime: 04 May 2022 01:13:55.3143 (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: 4nAXCp8nl/npaluOMRLToR9BqCv7OWTiHVHABa/c8jVFC/Hyy8R+VMzaTwrM9lAPtK9jVWXmeFDoJv5vIJtzwg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR10MB5830 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.486,18.0.858 definitions=2022-05-03_10:2022-05-02,2022-05-03 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 mlxscore=0 mlxlogscore=999 adultscore=0 phishscore=0 suspectscore=0 spamscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2205040006 X-Proofpoint-GUID: xkuWwLAQo6P737I1SjiYBRizn7aBr-As X-Proofpoint-ORIG-GUID: xkuWwLAQo6P737I1SjiYBRizn7aBr-As X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: E763AC0014 Authentication-Results: imf10.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2021-07-09 header.b=deRgtLKL; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=u9jEPKbc; spf=none (imf10.hostedemail.com: domain of liam.howlett@oracle.com has no SPF policy when checking 205.220.165.32) smtp.mailfrom=liam.howlett@oracle.com; dmarc=pass (policy=none) header.from=oracle.com X-Rspam-User: X-Stat-Signature: fba4hrryka613ncknt7j9q7tkch4pe94 X-HE-Tag: 1651827372-166238 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000001, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: From: "Matthew Wilcox (Oracle)" Use the VMA iterator instead. Signed-off-by: Matthew Wilcox (Oracle) Signed-off-by: Liam R. Howlett Acked-by: Vlastimil Babka --- arch/parisc/kernel/cache.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/arch/parisc/kernel/cache.c b/arch/parisc/kernel/cache.c index 23348199f3f8..ab7c789541bf 100644 --- a/arch/parisc/kernel/cache.c +++ b/arch/parisc/kernel/cache.c @@ -536,9 +536,11 @@ static inline unsigned long mm_total_size(struct mm_struct *mm) { struct vm_area_struct *vma; unsigned long usize = 0; + VMA_ITERATOR(vmi, mm, 0); - for (vma = mm->mmap; vma; vma = vma->vm_next) + for_each_vma(vmi, vma) usize += vma->vm_end - vma->vm_start; + return usize; } @@ -578,6 +580,7 @@ static void flush_cache_pages(struct vm_area_struct *vma, struct mm_struct *mm, void flush_cache_mm(struct mm_struct *mm) { struct vm_area_struct *vma; + VMA_ITERATOR(vmi, mm, 0); /* Flushing the whole cache on each cpu takes forever on rp3440, etc. So, avoid it if the mm isn't too big. */ @@ -589,7 +592,7 @@ void flush_cache_mm(struct mm_struct *mm) return; } - for (vma = mm->mmap; vma; vma = vma->vm_next) + for_each_vma(vmi, vma) flush_cache_pages(vma, mm, vma->vm_start, vma->vm_end); } From patchwork Wed May 4 01:13:55 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 12836641 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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 766F3C433EF for ; Wed, 4 May 2022 01:14:11 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E11748D0009; Tue, 3 May 2022 21:14:02 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id DE51D8D0003; Tue, 3 May 2022 21:14:02 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id BC4048D0009; Tue, 3 May 2022 21:14:02 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 998658D0003 for ; Tue, 3 May 2022 21:14:02 -0400 (EDT) Received: from smtpin22.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 70A662922D for ; Wed, 4 May 2022 01:14:02 +0000 (UTC) X-FDA: 79426289124.22.D302537 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by imf19.hostedemail.com (Postfix) with ESMTP id C79991A007F for ; Wed, 4 May 2022 01:13:55 +0000 (UTC) Received: from pps.filterd (m0246617.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 243KsJbK018676; Wed, 4 May 2022 01:14: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=jiiqwWTcSVmUrGeXEAypedCW5tagsdzk787hNrV2FEk=; b=lVrqA4PEOJJpSuzz8Q2zsJP+dF/wm70iiii7EPHVbsweImjHGtta39AfK36WtzRqVcYp 0wxDJ0tBJEdN8JOCA+33Xu1BcSU58EQQ4q6BjZ9zLhzOmtyVQpHBxr+QrQVgKll6dIM6 MwqMacVJ/H1L1fzBGL/RCKaSW8z6C2W8ufWDZ1sCuB7/WYl69N/Io2U8lDj/I9jhd9qh hx1MNivqZ+bgp4qD0xVHYO+++jy7cC7qwUExMRYQxTI/ixQm9MPw9Hb0ra66kjWxV/gm QGHVzQKT9mVh06+oVbmUPk+oAU10bz35E0O8EQXXVcz9hugm9qFqoYt5ql+CTuE1eDov 8Q== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3frwnt74h4-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:14:00 +0000 Received: from pps.filterd (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.16.1.2/8.16.1.2) with SMTP id 2441Ato5020100; Wed, 4 May 2022 01:13:59 GMT Received: from nam10-dm6-obe.outbound.protection.outlook.com (mail-dm6nam10lp2102.outbound.protection.outlook.com [104.47.58.102]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com with ESMTP id 3fruj922he-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:13:58 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=n6Tkc0UU1D4cP0hcZ0bUD1kbaIwyHJPNiVfwK28oGZD86ZOIqRYdqwyfbRdg940TZVHo7xsOZSrlIbEy+mYdved2WwTgEnbI8co/PhkUc2RxGFSuImjr/exQvYPZ0Zlt6o4vnrdYU+VDgv7V+zY1s9Ozfor5r/o336vlMceoIHP3uuxASdbFsVClZqv6NqQX8Dff6S/Ra92YKU86SPpYNDif47QycGybIkIgZDgl/qzOUhmS8jcw6WMpQWvUX9H4zuil4J2rGf7bogJrqzpvC96cFWgCC2WOjhignUJyrsgO/HImKKjdFTIwO3P66/uGTCJHNUXsifFsjBLDM6KTDw== 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=jiiqwWTcSVmUrGeXEAypedCW5tagsdzk787hNrV2FEk=; b=f2F3/eexfFTwNQxqQa8LzPxZfwZBxamD4kwzcN2ZiC3d7zJeEQ1hx4U1qV6JrUvy8k1zkRrvjmrP9GUiYnkY1tV3ggl7ArnSRed26Yy+J89FpnhhAEQtID/l+5zlTdlpukDY/AcXVUfrd3t3Ph1SQ2tkzL+L1Lkk/2D041nZgk8URPd/CHG1FSkLq0dwI725pDDo2LPOl1eYzqo+DsFMokx2fC0lKAsvY5ELew03fRVB1u1v6l2fO3i6ZZZu+9GPxDr7YTvh+aHZP565xxtu2FRjqb3ZUAzr8dL2swMPUQQuLdbn+WWwcZM7Y0fHtJAabYM8YujjQ8IJ7hqMk78CMA== 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=jiiqwWTcSVmUrGeXEAypedCW5tagsdzk787hNrV2FEk=; b=Qsu+Gf4pDLwwWqTPRTgo6mNmn9uKtKhgu45+OeaVv7akJ+tNyQfrVWn30m2LOVug23K7FH9MTdVUzrJspeUwhfQVmREMZ+HBHofjQkH7gm5zWe/1PDMbgEYvwb8hbcSp3YOjFbit/PeAzJPcCRI9tpKm1hbhhmidsXJrDdd19QI= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by MN2PR10MB3728.namprd10.prod.outlook.com (2603:10b6:208:115::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5186.21; Wed, 4 May 2022 01:13:56 +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.5206.024; Wed, 4 May 2022 01:13:56 +0000 From: Liam Howlett To: "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton Subject: [PATCH v9 33/69] powerpc: remove mmap linked list walks Thread-Topic: [PATCH v9 33/69] powerpc: remove mmap linked list walks Thread-Index: AQHYX1Q5HqDgOSjbAkKrblSz2IwTXg== Date: Wed, 4 May 2022 01:13:55 +0000 Message-ID: <20220504011345.662299-18-Liam.Howlett@oracle.com> References: <20220504002554.654642-1-Liam.Howlett@oracle.com> <20220504011345.662299-1-Liam.Howlett@oracle.com> In-Reply-To: <20220504011345.662299-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: df88e168-7685-4551-7da9-08da2d6b5c6a x-ms-traffictypediagnostic: MN2PR10MB3728:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: o7934K3arhrvxDxbLqd+233hS9NiQTNqBSha4EOQxQccqBGegIUl4TR13/9/28CfyzWzIJ7AwlVM9vZGxin/HAZtv4UKIXLvc4g8d9Lj97ZYdSVw5GLEYK6vvQGNejYTIyU4TFXi3XTjjyD1Bix3R9w/TXSkUegU2Oc49PuQMWOccFvdQ9INfAKagTyb/zGwGaKHuFxODvlrWPMp7+ZEAxSI9kRW1L4B9Bsvj/wOmNEEzpAQcehHXO27/fu9NAQf0GBcco2W5jyqijcFE6xM13wse1z4KTouVC9+nFIyER1CH7iJYp0nV/2bbn/5ldyBWNbCRVgAegvrToLrW8WHDQf0+vQ9c3S1Ahj2nKC63CHuhNsWI3EMEm+UML9nFJtgoq8fx+Zgxur3n9DgNeBXp9QxyuMGRusWP4zhvVTn/iGJB0TIp3y05XOBlypNJUPVID8uiGegDgxvfuwBpIYGzT+tCmeW4MlJdJJTmHAVzPKa9SF+JavlpYgeA417gij9WyW0Yktoo0JH0Q6pVeAwedFGNF7thLYKl6l1+0qdMRjy3vEhy5S8Wr4116VizZhqn6ctRUr81GCdAX/0jKwuZvSg4Yzdcd8/7CBlhs5Y7a2gdo06+jdnPXeRJrmHGEx5UsLl7ifJNDNy28E41me/As0wqpdQlwplZoEGPyyzSCQyAsqC/0Yw1l+/lp/sAqxzzJ1pDFKW035qUvWa6W9x3g== 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)(71200400001)(508600001)(5660300002)(8936002)(6486002)(86362001)(26005)(6506007)(2616005)(6512007)(2906002)(83380400001)(44832011)(186003)(66946007)(91956017)(76116006)(110136005)(38100700002)(38070700005)(36756003)(316002)(8676002)(66446008)(66556008)(64756008)(66476007)(122000001)(1076003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?et5RkwvMAuWa8BlldsTvWfk?= =?iso-8859-1?q?sgvPwZRKpHp2XBcB7Boaq3NHjd8ssrPgmjoLDTBzJxhs4bW6Bo8fPYHSzfQ9?= =?iso-8859-1?q?RnoLPvZH+wDBZXgIEtj1ICLWJBEVuI5w6miNYaSkSHzGkcddINhOcpATjhkx?= =?iso-8859-1?q?HyGgRKBx73xID+C8ND6bhqDEGSslxhxIedTwclRp3I5CkaMsf9i3EOOIrsjr?= =?iso-8859-1?q?0HhvQHE/TARY4BveU2mInFCA+csBqzo5twT5BbKpDuMtE6XsNkmfnAYvgMlN?= =?iso-8859-1?q?4or6E1UBFstzxQ3cNN6az4gnFcZ5G5Rfn4PNhGS93BKYur5Zzrv9NGvnbXMj?= =?iso-8859-1?q?RS10YrdX+Ub72uK/tdo4GlZRmNiMKAudr1rCQCmmypeSa0jIjgWL7HFbDTpQ?= =?iso-8859-1?q?a966w24M8psW42iGFPsfFD9G6uv//kQeHkBCTS6fygUdbD8afSDrd87xjh+f?= =?iso-8859-1?q?vYf4HsavezXNNJNuKvLj1o+aezvmfXXOaDTDMRb47EhJ0IpIose+tIVQ3Z+d?= =?iso-8859-1?q?dl1MBaDgLTLUt9n20cU/S2uGH3Sam/k8d0eFOlq1l8O1/hDyWrk+8SN/26K+?= =?iso-8859-1?q?0HimWUci73gjSJ4NbVeHfP3e1cgZTgDnvfebURGKSIhYHjmflkp5t0ojk8Pq?= =?iso-8859-1?q?Gv0VZcdn2jN7BU4GfaT/HxL/uoP8QU+gXGUbfVAGfD/ZWUIn4bwOaYixJ7CN?= =?iso-8859-1?q?NPR+6QqQpVSb/+KmHn2b+d0F1XY+PHufgWNsNHHFWWsANhKUfP7Dj74KwxfU?= =?iso-8859-1?q?UK2gTQrytmJVHKk4g//gKCOgZsT9MkKl9VJ0TBbKUKHnnTWGNv0e/HC86RSf?= =?iso-8859-1?q?ESIDXzOhA7XfFtEK6JGZlv5i4Lj3BB9dR4s1bYaahlQmShdjHo0H+Lnuepui?= =?iso-8859-1?q?uod7wtF0WRrsZ03Y7FwPrvzh0mCAQt065AerV4XJMsn4RPc8pic7X3pBhx6X?= =?iso-8859-1?q?Wzz+rdPdyqauLBc+7BaisGIQhogoh0+vdeTzYqMVnRX31/as+pAf7t9yMY4Z?= =?iso-8859-1?q?n0yIU7G42xWkH3d+s+IDMlX9+kFhjIam8ursTzQ4qWo7GCBd6I+0wSl4NFl+?= =?iso-8859-1?q?YhphbUG4Rh2xUiiAgG+zHzyFAYmDAn8AX0lGj4m4mkmDppFaj/IYQUAOTOqN?= =?iso-8859-1?q?jQaz0PRmUBpEM+pG/BsrG2h5gag3fwnRe7Uian+DQ5KpzSNBpuWnl1zVSIsJ?= =?iso-8859-1?q?jlMuGcI6Bad6LfwbzP3zvpwvQ/6HaVCS8KMPd48cip35LGlzVan5B28nRchl?= =?iso-8859-1?q?nJ/FG7fjnp0Fb5tg75HmEu88loqIeTAzSnRWvd7Xnr+k3yOgPKlZTSzQzfEc?= =?iso-8859-1?q?u0wOp5FIsyfsn/Lwrm5S0ueFuCsZYCbQd48WwfNHuK4rW1AuG0yeYp5o8Jz2?= =?iso-8859-1?q?nZcqgxy69Zy9J5dpxV1A/M3jpkXERUrVHMfXF8Rym5mmUQvMkGSlqvTFuo4I?= =?iso-8859-1?q?k4e9Aue8fOB9igJi0C215+DbmXyUb7awBkOujFDGm7GChbv5f0UWmn33gzrn?= =?iso-8859-1?q?vcyXe3GsP0f9oaP4goDeHzDWnKGnX2+4LY8GYWgFTGHl36JAZrd3ht6fpkAg?= =?iso-8859-1?q?+9lEsAbem66cpyMbZOCy6FpsMWqhdyC1z/pfl4RLxUGfbtmD+q35F5iSrbV7?= =?iso-8859-1?q?mxEJiukGZQKe6JZ2owTj6yiWl3BJCmpjHXKacu9991+dttnX2n0Z3x381rzR?= =?iso-8859-1?q?FaSZnpTSiqdH97iVLtwLlqCb2Ifb0nltM6GrCVVuuCcXi4ng0Nn8VUmUI/1S?= =?iso-8859-1?q?8nQUo00CmXkaJoQWusHpln46H61k0NXCVCMayydaPyCxQBTOonaANiVIhLj2?= =?iso-8859-1?q?MOXHVzWw=3D?= 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: df88e168-7685-4551-7da9-08da2d6b5c6a X-MS-Exchange-CrossTenant-originalarrivaltime: 04 May 2022 01:13:55.6424 (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: ANQhQuPkTc0el0E5Hoj+pDaCLjCtUeLgiWkQqzrM5HKsmq0J3oLOHijburWcOziEWoaUGMfVlayJldqzrw3KzQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR10MB3728 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.486,18.0.858 definitions=2022-05-03_10:2022-05-02,2022-05-03 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 mlxscore=0 adultscore=0 bulkscore=0 suspectscore=0 mlxlogscore=999 malwarescore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2205040006 X-Proofpoint-ORIG-GUID: EqTx3zfeZuYmMxMFv8WPa-SGc85LQ-w6 X-Proofpoint-GUID: EqTx3zfeZuYmMxMFv8WPa-SGc85LQ-w6 X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: C79991A007F Authentication-Results: imf19.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2021-07-09 header.b=lVrqA4PE; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=Qsu+Gf4p; spf=none (imf19.hostedemail.com: domain of liam.howlett@oracle.com has no SPF policy when checking 205.220.165.32) smtp.mailfrom=liam.howlett@oracle.com; dmarc=pass (policy=none) header.from=oracle.com X-Rspam-User: X-Stat-Signature: whi4kobisxma78id3zeuo5uadcgs1yuw X-HE-Tag: 1651626835-241550 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: From: "Matthew Wilcox (Oracle)" Use the VMA iterator instead. Signed-off-by: Matthew Wilcox (Oracle) Signed-off-by: Liam R. Howlett Reviewed-by: Vlastimil Babka --- arch/powerpc/kernel/vdso.c | 6 +++--- arch/powerpc/mm/book3s32/tlb.c | 11 ++++++----- arch/powerpc/mm/book3s64/subpage_prot.c | 13 ++----------- 3 files changed, 11 insertions(+), 19 deletions(-) diff --git a/arch/powerpc/kernel/vdso.c b/arch/powerpc/kernel/vdso.c index 717f2c9a7573..f70db911e061 100644 --- a/arch/powerpc/kernel/vdso.c +++ b/arch/powerpc/kernel/vdso.c @@ -114,18 +114,18 @@ struct vdso_data *arch_get_vdso_data(void *vvar_page) int vdso_join_timens(struct task_struct *task, struct time_namespace *ns) { struct mm_struct *mm = task->mm; + VMA_ITERATOR(vmi, mm, 0); struct vm_area_struct *vma; mmap_read_lock(mm); - - for (vma = mm->mmap; vma; vma = vma->vm_next) { + for_each_vma(vmi, vma) { unsigned long size = vma->vm_end - vma->vm_start; if (vma_is_special_mapping(vma, &vvar_spec)) zap_page_range(vma, vma->vm_start, size); } - mmap_read_unlock(mm); + return 0; } diff --git a/arch/powerpc/mm/book3s32/tlb.c b/arch/powerpc/mm/book3s32/tlb.c index 19f0ef950d77..9ad6b56bfec9 100644 --- a/arch/powerpc/mm/book3s32/tlb.c +++ b/arch/powerpc/mm/book3s32/tlb.c @@ -81,14 +81,15 @@ EXPORT_SYMBOL(hash__flush_range); void hash__flush_tlb_mm(struct mm_struct *mm) { struct vm_area_struct *mp; + VMA_ITERATOR(vmi, mm, 0); /* - * It is safe to go down the mm's list of vmas when called - * from dup_mmap, holding mmap_lock. It would also be safe from - * unmap_region or exit_mmap, but not from vmtruncate on SMP - - * but it seems dup_mmap is the only SMP case which gets here. + * It is safe to iterate the vmas when called from dup_mmap, + * holding mmap_lock. It would also be safe from unmap_region + * or exit_mmap, but not from vmtruncate on SMP - but it seems + * dup_mmap is the only SMP case which gets here. */ - for (mp = mm->mmap; mp != NULL; mp = mp->vm_next) + for_each_vma(vmi, mp) hash__flush_range(mp->vm_mm, mp->vm_start, mp->vm_end); } EXPORT_SYMBOL(hash__flush_tlb_mm); diff --git a/arch/powerpc/mm/book3s64/subpage_prot.c b/arch/powerpc/mm/book3s64/subpage_prot.c index 60c6ea16a972..d73b3b4176e8 100644 --- a/arch/powerpc/mm/book3s64/subpage_prot.c +++ b/arch/powerpc/mm/book3s64/subpage_prot.c @@ -149,24 +149,15 @@ static void subpage_mark_vma_nohuge(struct mm_struct *mm, unsigned long addr, unsigned long len) { struct vm_area_struct *vma; + VMA_ITERATOR(vmi, mm, addr); /* * We don't try too hard, we just mark all the vma in that range * VM_NOHUGEPAGE and split them. */ - vma = find_vma(mm, addr); - /* - * If the range is in unmapped range, just return - */ - if (vma && ((addr + len) <= vma->vm_start)) - return; - - while (vma) { - if (vma->vm_start >= (addr + len)) - break; + for_each_vma_range(vmi, vma, addr + len) { vma->vm_flags |= VM_NOHUGEPAGE; walk_page_vma(vma, &subpage_walk_ops, NULL); - vma = vma->vm_next; } } #else From patchwork Wed May 4 01:13:56 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 12838883 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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id EA525C433F5 for ; Wed, 4 May 2022 23:35:04 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 3C21B6B0071; Wed, 4 May 2022 19:35:04 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 372B86B0073; Wed, 4 May 2022 19:35:04 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 1C4A66B0074; Wed, 4 May 2022 19:35:04 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 0A1236B0071 for ; Wed, 4 May 2022 19:35:04 -0400 (EDT) Received: from smtpin02.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id D722C20D4F for ; Wed, 4 May 2022 23:35:03 +0000 (UTC) X-FDA: 79429668486.02.94B5B99 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by imf28.hostedemail.com (Postfix) with ESMTP id EDB45C0081 for ; Wed, 4 May 2022 23:34:48 +0000 (UTC) Received: from pps.filterd (m0246627.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 243KTQg8030007; Wed, 4 May 2022 01:14:01 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=LcODvi0z3t7+VI3ktG+P8hv7ComMeS4cyI1DWwajXjk=; b=WpmhzF+uEHYjul93qqndMVg3lbcRsGju9s9Lz+0S3xwir7XfxEQmq9Tlp++nDfR+7no7 n8xhAuJXEIC77tMw2q1pr/MlY/sSfVobfwyem80N+IDaLatlgc4S44RXejBn0oujaYKi LKKHibONm1EjKkqZJUR58rFU4SMGtv/dYFU3CCuv2ZxuD1Et58YxqTdsMwSZGDATyAVq BGYYVlV+NWFOm9nWbHJ2qwUb1HZvF/mTc1aVeyBtzegXDWxVPovsysZQzfRGLVJdnFdq sn6rTYaG+rImL7dwuL8JhSnNpCZKMEmiLQ+TaUAQhBRilFMkzUNNwXuv0UotNFTd3dUd +Q== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3fruq0f61d-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:14:01 +0000 Received: from pps.filterd (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.16.1.2/8.16.1.2) with SMTP id 2441Ato7020100; Wed, 4 May 2022 01:13:59 GMT Received: from nam10-dm6-obe.outbound.protection.outlook.com (mail-dm6nam10lp2102.outbound.protection.outlook.com [104.47.58.102]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com with ESMTP id 3fruj922he-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:13:59 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=MiA+PTqLmPP3UaBoOdWpIEEy5VL/wP4yTpfAGgMO3Kviweg5Shfh2rRjor+0waaDeUTJXeGN6nmNa8xmM02Deoey4p3izuff9kDb2TDYOE/BKHtFASHAw2dk0NkqwugXAniXLSd+Z3m6rcL9RAlj6E2jylepqhm8ZnQ9wITkJMn7VsPsgtZWkvSnIHvxkg5epmEuAz9gpmjNniFwi5+F3Na8SL3uGQjKx/olrR8ieFJcNanhl25xgmE7eNRu6mc96F4vKtiQpFu/CLlX4fvDlLWNnuWp8nBWLglARlVzYeti25Hswlk/bgd0LuGQulKBxJnPd5xHD1En8NlSFSJEeA== 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=LcODvi0z3t7+VI3ktG+P8hv7ComMeS4cyI1DWwajXjk=; b=lMDIuu5ixuOArftM/iUD1Rm63natR4617Fix8zKMUb8gTtuSQLtgxk6s2YKexOeK1oe1qlzsd9NBNg8evY8JAU43+DQv06NgNeC1cLFVGcxZpWcCwN5ge2rj++v7sMRazhYEXLILIq46gQHZ0Tz+AD6YTAS70uIvkKMF2UHR0mZW8CBw+WWBdb5h6U+j3PsB5WUq3ZymBNiy7sCU5NdAV2k80P/XAu2fACZ6gVsyKcSm6EEjkjWhBQ0LEQiurGihSPUjHGG84tq8NMJnL3hD73RhVksWFd3mnImp48eo08aITDvAiU5HB5p20oMwX/+u9oD9IvORcfMjwXz5cJ/m7A== 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=LcODvi0z3t7+VI3ktG+P8hv7ComMeS4cyI1DWwajXjk=; b=rCGu78qD5eaNuVuoep4OJQQETjXuImC39m9rIliC8CLBGUF7U4TgqpHwS6lodCCegAmQncw+CotTwb4Eg3fzdki19miyTNeOqPD2/K0aG2I44MpooiJZ/s9BuyiaA622uvO0qjw0Bnmon4IW0kg9PRYrzatr1nrbxEhFkYdB+n4= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by MN2PR10MB3728.namprd10.prod.outlook.com (2603:10b6:208:115::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5186.21; Wed, 4 May 2022 01:13:57 +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.5206.024; Wed, 4 May 2022 01:13:57 +0000 From: Liam Howlett To: "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton Subject: [PATCH v9 34/69] s390: remove vma linked list walks Thread-Topic: [PATCH v9 34/69] s390: remove vma linked list walks Thread-Index: AQHYX1Q5r87Vu6bkgEO4R/OeAcaPug== Date: Wed, 4 May 2022 01:13:56 +0000 Message-ID: <20220504011345.662299-19-Liam.Howlett@oracle.com> References: <20220504002554.654642-1-Liam.Howlett@oracle.com> <20220504011345.662299-1-Liam.Howlett@oracle.com> In-Reply-To: <20220504011345.662299-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: ca6e3307-32d1-434f-e6b3-08da2d6b5d39 x-ms-traffictypediagnostic: MN2PR10MB3728:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: gB73Z83v0srBzxd0Sei+DnuBBNnDvEmREOze8fWmWkO66WV+TjXmi2JsT2F9uks7ICuBEDy8X+EBsuOjO5sNLi6LpqMe88ackwNlYigSHRRrzSy4HOzGGcoxB/q1VuZMcnXIDnbQZDMmnE6sT7sEkP+3E1Yw2uEZ1vOKaK27cCvLNiLavOJbx/Dyhw9fwWMMDBCeNE2G1Q8+z9i5r7yTobn86uTOZUmHfaqOLfaRFy5guZMvLOraRw/TU+Ug4wxaHkJ0zFMEjjVPhBdpl1e/ASlz2VAAr8Sp+ZVNlMCdJAsrZmugQ2C+dVvd1m7/eRfcMLfTal9BqRW6bxtIq3QKNp8qC8s+EE8WJZhlsCQ6yhZYCWEsRrUxF22tkug8f6YLWhZWrEJVgf+ePkwMzzTmbfDu6NYvxcX/0HLnWuWj8O7Kzl1gnxHrSxfNWnniRrv22ERBU837NUHi7LTssOHu5N3o/MXjbwMkay8sBNgMKZa9AIyn8QgSdCb+sxXQndtF5W06znIMH0w7pOoGfRcB7nqxRq1P2YAPqIPWce0VFitwiSe9WZQTNSvum+jHSnbTXsuY51TI1r+xulDKAifV+baAVCUuiapiAhQoVu4jjJykvjZ+BabD5sRw6QpOYY4Z3O0vAMgHd2H0Av/QEGwd4kwrWBPQL3FxMEPon6k97chcovHGjqyxLIm3bDCAFBvtvK2YkiPKTW2jvv0P1th3DA== 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)(71200400001)(508600001)(5660300002)(8936002)(6486002)(86362001)(26005)(6506007)(2616005)(6512007)(2906002)(83380400001)(44832011)(186003)(66946007)(91956017)(76116006)(110136005)(38100700002)(38070700005)(36756003)(316002)(8676002)(66446008)(66556008)(64756008)(66476007)(122000001)(1076003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?oDXR8jGb2ykzQy5yeL4rS50?= =?iso-8859-1?q?YxAycZsMiSdjcgnljpvPEMCp/qJBxO6YFPEkDjLGAwY7aXQXPv0NTFhUMwFS?= =?iso-8859-1?q?7P8WhXzChDcHPQhfSVqlQxJ3oA5mqKyMu2E4AyN48fCpJzIb1+VHefe0TZp+?= =?iso-8859-1?q?SHEqn1Pxu26bVWvKEpIHwy2A+eCECqrQAbhQJb57XwfVjRXBr0wrGHSGRDFB?= =?iso-8859-1?q?IzZVSsFOh9/jK5a7RKV3yfVhiD2zkMCdGBkf0K9Nr66mfbE9Se+sjfhsDheI?= =?iso-8859-1?q?v3WFWuxxAPXU0CJNYGDGBoy7H3BFLc2pupgJtWX/ClYNA9vqzEYnroP8/TP1?= =?iso-8859-1?q?5tpTJcd1JdUaZU9WyBL/GAudNwySo+aVWbXMfWTIY9nDBhcRXZyyhjeXzKTF?= =?iso-8859-1?q?2QTfp3RSMvysefYZ5djaiBECuJ7O/Y+eZuUryqjmOS2IbSuDNfpFJcgT2Tg8?= =?iso-8859-1?q?ISrdfYG6ujQfkBTpNGUJatLr8l4Nfklh45z1xpR0mdeghU7N0l0dAtt8WwgE?= =?iso-8859-1?q?2E30kgDnkzn3/uwbwfwHoqAzDuArw/+lCbUMFEvxdyzgOSUjtKXY9AFJnj+0?= =?iso-8859-1?q?o+f/jfRtFXadUfnsziyLr/+Xh9sV+Qw67VR9nFVXaEKMB5hRla/eUwMVJajK?= =?iso-8859-1?q?KcxGEdG7pFC2IHTpNqZlUxHm0zcOWS8xJd6A8V6JTdb/WjxAb+8hAxFeB3G3?= =?iso-8859-1?q?k3wX8J8omvqOE14PmEyCalH0xd5gLBvsxesyMRRL1YUIat8PJ25yf19RsiB7?= =?iso-8859-1?q?M6q2pSDNARCZeTTVhy83wpYe13B8TBHDQmt/EMXPLIS1dCI8PcXrQGxvRADB?= =?iso-8859-1?q?ouj4B2iLsIRsLNwc0Ym2NYx7gXFF3e7g7cSmPoxXRuj6O2gEjKXkFp0ZCw50?= =?iso-8859-1?q?yH8mKurdAK+Co219fPCTF6HqcIMSxiiC9PUEAbjXA24LYPi+YujmrgPwSuWP?= =?iso-8859-1?q?fzFv416ubjUtbwhb87B7KhJMCQgBPeeESgtcgxK63zSdEaRMpmkkJ8aU2Oon?= =?iso-8859-1?q?+QknzrP3xnlXxQwnsUTH40ZX1sdWA1yE2kbP0/BVmNegYhaLi+OpIn86GSZf?= =?iso-8859-1?q?og9GWNUCzlyxY38J7TMVwxSSzQo9eOAn8sp1strwk0fMtJ6ioNn+N0oXgVYG?= =?iso-8859-1?q?wRFEHWyoJ4OR9EwEUdpAGmn6FkFxQaNDoZmT9ZWeohekW8sHwUAX4waGhZcZ?= =?iso-8859-1?q?6+r/Xv/l6b4qKWqrtooFv9ZOHOika4L73UZEf+yC7ZSO+3Ei5g7cp/MGLWT8?= =?iso-8859-1?q?lgSpTH/gyvBXPsjIJ9eFvJt4AF9fi19NO5DpzWI9WLUX32gLtmRbebfIngXF?= =?iso-8859-1?q?GJ4WAM9BCtSEo/R0jA/zsYWxt6Zds8wdHjImGsZT7cBGQzHMSgCsf2lO95DY?= =?iso-8859-1?q?UFl4k2JWCVNBBxl+lmLthBQPIuCdcKQADNA1R+nycj0qHCqezyWYwzdWMcnj?= =?iso-8859-1?q?Q/XhAVoZM8NaJUE5uzkOgcdp7t0IM4F1GgxvxqDBqhEOvoyTC8yUI6QLJPex?= =?iso-8859-1?q?JTDqBHhGrIZRrCLmaPqH1NO6fv+nRsrSswazJlC2kBiDzdZeIJ46gYIMwzB1?= =?iso-8859-1?q?GlWxk8BtY8lIECTEfzJDoGG2zZsqnIxdXbqOx57cCZoX7m+LUkR/NL+jSUWm?= =?iso-8859-1?q?bHFn/LeR6AOIb41U/VVUuN5EOfWepxE7ii7mEzrfnPzbESiRba6jYmsKR7EM?= =?iso-8859-1?q?ry28uD7j7pC9h2vWHvLcaNRNbcNrhjVSxR6hTBFpVfZXag/roh1gXwRGbMtx?= =?iso-8859-1?q?0eq0CguEYZ6ijunHSj+FE+bNYaypWUIcglRr92YNByZjnB+O+ohhWLY546sG?= =?iso-8859-1?q?2upfvFso=3D?= 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: ca6e3307-32d1-434f-e6b3-08da2d6b5d39 X-MS-Exchange-CrossTenant-originalarrivaltime: 04 May 2022 01:13:56.0330 (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: hNSSyGjYSfAC7jNtCq1+k7Cbj4yeG5duklmZqj09WJbG78ixPsRefDlTykOKoTRjWEhUxSzBm/GSYIEGz8xUoQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR10MB3728 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.486,18.0.858 definitions=2022-05-03_10:2022-05-02,2022-05-03 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 mlxscore=0 adultscore=0 bulkscore=0 suspectscore=0 mlxlogscore=999 malwarescore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2205040006 X-Proofpoint-ORIG-GUID: zHa2kb4jepNBbRxlvev_0-qx6LHIwi1k X-Proofpoint-GUID: zHa2kb4jepNBbRxlvev_0-qx6LHIwi1k X-Stat-Signature: xkowccps9ut7mttcq3akxx9po5ifkn6n Authentication-Results: imf28.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2021-07-09 header.b=WpmhzF+u; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=rCGu78qD; spf=none (imf28.hostedemail.com: domain of liam.howlett@oracle.com has no SPF policy when checking 205.220.165.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: EDB45C0081 X-HE-Tag: 1651707288-609186 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: From: "Matthew Wilcox (Oracle)" Use the VMA iterator instead. Signed-off-by: Matthew Wilcox (Oracle) Signed-off-by: Liam R. Howlett Acked-by: Vlastimil Babka --- arch/s390/kernel/vdso.c | 3 ++- arch/s390/mm/gmap.c | 6 ++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/arch/s390/kernel/vdso.c b/arch/s390/kernel/vdso.c index 99694260cac9..66f7e7c63632 100644 --- a/arch/s390/kernel/vdso.c +++ b/arch/s390/kernel/vdso.c @@ -68,10 +68,11 @@ static struct page *find_timens_vvar_page(struct vm_area_struct *vma) int vdso_join_timens(struct task_struct *task, struct time_namespace *ns) { struct mm_struct *mm = task->mm; + VMA_ITERATOR(vmi, mm, 0); struct vm_area_struct *vma; mmap_read_lock(mm); - for (vma = mm->mmap; vma; vma = vma->vm_next) { + for_each_vma(vmi, vma) { unsigned long size = vma->vm_end - vma->vm_start; if (!vma_is_special_mapping(vma, &vvar_mapping)) diff --git a/arch/s390/mm/gmap.c b/arch/s390/mm/gmap.c index af03cacf34ec..8a639487f840 100644 --- a/arch/s390/mm/gmap.c +++ b/arch/s390/mm/gmap.c @@ -2508,8 +2508,9 @@ static const struct mm_walk_ops thp_split_walk_ops = { static inline void thp_split_mm(struct mm_struct *mm) { struct vm_area_struct *vma; + VMA_ITERATOR(vmi, mm, 0); - for (vma = mm->mmap; vma != NULL; vma = vma->vm_next) { + for_each_vma(vmi, vma) { vma->vm_flags &= ~VM_HUGEPAGE; vma->vm_flags |= VM_NOHUGEPAGE; walk_page_vma(vma, &thp_split_walk_ops, NULL); @@ -2577,8 +2578,9 @@ int gmap_mark_unmergeable(void) struct mm_struct *mm = current->mm; struct vm_area_struct *vma; int ret; + VMA_ITERATOR(vmi, mm, 0); - for (vma = mm->mmap; vma; vma = vma->vm_next) { + for_each_vma(vmi, vma) { ret = ksm_madvise(vma, vma->vm_start, vma->vm_end, MADV_UNMERGEABLE, &vma->vm_flags); if (ret) From patchwork Wed May 4 01:13:56 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 12839142 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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id C2361C433EF for ; Thu, 5 May 2022 07:51:43 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 2F8526B0071; Thu, 5 May 2022 03:51:43 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 280C46B0073; Thu, 5 May 2022 03:51:43 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 0ADDF6B0074; Thu, 5 May 2022 03:51:43 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id EA6736B0071 for ; Thu, 5 May 2022 03:51:42 -0400 (EDT) Received: from smtpin08.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay13.hostedemail.com (Postfix) with ESMTP id BEFBD60618 for ; Thu, 5 May 2022 07:51:42 +0000 (UTC) X-FDA: 79430920044.08.9A4243E Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by imf09.hostedemail.com (Postfix) with ESMTP id C393614008A for ; Thu, 5 May 2022 07:51:35 +0000 (UTC) Received: from pps.filterd (m0246629.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 243LNHVB032436; Wed, 4 May 2022 01:14:02 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=WJKkltNtV8GzaLTuCKaT9alazXtwdBT0TYx4uDuGVzw=; b=phhyfenfxxYFGEwlyJuZHHO34JLsgvXZQAw8pZM5ExEX2hz8ZgMastGzEan1u3DYx/tn kFdwRhNG7GyVBzTmwU6kxALzXLwX0398bBYWEd3t0k5TXI6XlpiT7wsqPcrfjEW5fHqN V61xwEs43sIwjlhAswqV5qZibSyWabBpdqR3uoq9Pab6mA8F9pSqj8bnpLnhh0CE9MIs AKGmvs4WJA09jhuggBZisvP2VBO93NdhZ8R5XC+Q6HFMx7oIyEhJbUXqzW3pHBAkQBCD hi6qcOGUGpofREFhwo1+kTxv759h8Lwtijf1pUGwJ043ixElSO8dc4L3RBhPTfRU/LHq lA== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3frw0apy07-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:14:01 +0000 Received: from pps.filterd (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.16.1.2/8.16.1.2) with SMTP id 2441Ato8020100; Wed, 4 May 2022 01:14:00 GMT Received: from nam10-dm6-obe.outbound.protection.outlook.com (mail-dm6nam10lp2102.outbound.protection.outlook.com [104.47.58.102]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com with ESMTP id 3fruj922he-3 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:13:59 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=mmEYZ10zHg/vEanCeme/cnospLfNUqQkSFMF4rKbRgG7d9WLdR6Jv+wDmyUJgbphfo03AVNL6Oh14uop6owkKm+z44inWLxiHHZPBlGQGWK8YBuwTeQVB3ty7aa55Jw2ANnaaQQHERZMXf9Q6eYEFNyti83hEIwYt2NHfmIpDraqhlHzUybchWpWOt5hwFFg0lvhAEYSrD8l4EUlnZzaLNtgLJQRgOmwcY7wkqkvgiMTEwi6+bGsgmV7G+Sqlc8s61dpX3ncISDnpraqT27ZGwlftCbk2GsqyphsxWgsI2Ki0L74PUVba7iEvqbbvjNZHjKO1LSfGYT1/3VTsDrBnA== 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=WJKkltNtV8GzaLTuCKaT9alazXtwdBT0TYx4uDuGVzw=; b=V22LsbxEpVOYCVBE1kMNqmDySYnKW0oCxZfU8r7XxAagfrmrmEQ8ElMkBePhr6DRlYO1fkvXArJzhAYUdwOwcOHzbnUOZf7WrG0m4gRIt93b6hD+kIvn9sPb9hzJ9IIQNaQcxp+BSQm9kwUxdaropWRtKYR1pX4LyZY7gVrp8oZa7GpN7eJSKbgPROrnjFeP6v83758JhTWTefICQELO/BltNk1XW+KakUpW15cdgm1Wq8Djjm9ArZRGdTUJyfGmEUHunu5B3NwmTs/Aum13IFBI6VpFhf1368XW4Ysvo6uMYyFTZQZiiVYdgoYdMtvRYwKmpl89RzkB7RClXG1Aiw== 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=WJKkltNtV8GzaLTuCKaT9alazXtwdBT0TYx4uDuGVzw=; b=jt93NzyfiUoPoLeMSucbuIXXPztAyJm3yby11upGTNfHAexCN+tvFAOmsikFmLJlUAnWoqWwG24NRrVtVPJlOxemtQYp5WwUjm5Gt3qQDnQUPe2Qjq1bHKQXHPzDZ2m3vWELUsoBwT3abYCTa+hwrx5FZg1jn9bOewf4aGmltlU= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by MN2PR10MB3728.namprd10.prod.outlook.com (2603:10b6:208:115::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5186.21; Wed, 4 May 2022 01:13:58 +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.5206.024; Wed, 4 May 2022 01:13:58 +0000 From: Liam Howlett To: "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton Subject: [PATCH v9 35/69] x86: remove vma linked list walks Thread-Topic: [PATCH v9 35/69] x86: remove vma linked list walks Thread-Index: AQHYX1Q6K/lI3nXkSkKPE0shCovy0g== Date: Wed, 4 May 2022 01:13:56 +0000 Message-ID: <20220504011345.662299-20-Liam.Howlett@oracle.com> References: <20220504002554.654642-1-Liam.Howlett@oracle.com> <20220504011345.662299-1-Liam.Howlett@oracle.com> In-Reply-To: <20220504011345.662299-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: 635a6839-58f8-4a71-a572-08da2d6b5d9b x-ms-traffictypediagnostic: MN2PR10MB3728:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: CmN90IUQ21TSPl6VadPY3HW0K+5bYAJnt6k9Sfm9tZq8J8GkB+b++MCLHqLrVkp5ZWFLcoNgzXMJ6zGlO/sJf8agXcp3Y1XUj22FV7gTYckO5UH20Rx3vqRTZcRYRkQVhseOPPF4nMGxVFMWvo6GyrnsFziJpAyS/yU7BNahN0UtGS7vhqt/I/6G86IRxYAY/GU8Rj4M8xY4fZXUKx3UYGVMzqDnnO8jpCmB9zOY55qoxS9yU07mQIbdCooD7flhPFgOdvUKnYwOIzoUoPhj6xHpDCiHZkrvwEZTnSAOcNgznvvd91YvaMLz7Av6NRQbH6tVFMRgkAwe124UskVcq0pudqBq3QY5ErHT5ArqpP3lJOotkVyzoOdJ7D+RKstS3My9r4oQorHDz+tGBxyl1dw231KtN3oEj4eq84rr6G5D71YFaIxwJXJSBY14iiR6ZjxAYDhNb3j1sXJTFaACVVkPVHoSgSNzhb51oWN9+0OD2PwfhDZVJR40nkGVI6TrNyYP/9MIPrDTTSXul3R2x7FwwiB0y8s0qQdWaNHEUgZtPAIM8withBtqJbZYs5ydLp/7ye4eNhShqxdGcqwMGDGDJeU90lfMVLEMe70l2K2jzib5PFf8mzXmmcvv6BMnUsdiFt1LJRrO8F2Ey2bxnXEedlGiAY5WV1UAgqqsI6i6CtfR/7w6fLLq6sXVrUj+PoIhSROyvDJcuvJBozglXA== 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)(71200400001)(508600001)(5660300002)(8936002)(6486002)(86362001)(26005)(6506007)(2616005)(6512007)(2906002)(83380400001)(44832011)(186003)(66946007)(91956017)(76116006)(110136005)(38100700002)(38070700005)(36756003)(316002)(8676002)(66446008)(66556008)(64756008)(66476007)(122000001)(1076003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?bWZQMSi1A6Gtypvoxz/5y6b?= =?iso-8859-1?q?yl4AiZ+RZ7tdwzGNW8cRRvJIcQiLB0E7BmjrTw/NOklUYJC2Qf6m8JU8NxbZ?= =?iso-8859-1?q?jK+nu7IsqeTDqxJTdyQTZK3+fve3n4vtcZSaAqF6HS66cSOyMrmJY4aWFYz0?= =?iso-8859-1?q?RmwQ5PkemsM/+l1C3W+RDTa1OCfNBSXhA4fueBr3rZwujMo8v7HHW/bicBBP?= =?iso-8859-1?q?JT724QgmuQw8J8PHh4aPkcg2n4ytf2oHdgAtxeWYSCr5+BQuJL5l+93Zk+dP?= =?iso-8859-1?q?6kDl8yI9qO0C0mr76MkbQeifcuhe8Cx0/Pg6upaLHYV2Wc1ohCLsnxDci0rY?= =?iso-8859-1?q?9EZv3nAf2mOtw0dkCaJpudBKPwPgwuY/KDoNqGkqAOwJT85k9lzybQNQEwe3?= =?iso-8859-1?q?iFjzyCg+hLK7E9BxbvDf+9Qz6DcyiJ9WpsDDjozq4PlF3W5KtCj6cJg7PdFi?= =?iso-8859-1?q?6vc0ZKOqibsFSAD1Ow1p5aUTBSWHww81mBGcxDN/w7Oed8owKcAuHvWNE6r/?= =?iso-8859-1?q?Y1YDncMjLnKAYVL5DVf1jgyVZWTqC5KnxxXXa6P5CwIG3Fn2YaBM6DI+4ET7?= =?iso-8859-1?q?rV173+Lvay860DsjN1b/8ODB01kHoACOZn0zP/Dt9R7GrQ2VWzrEsm4HlTp1?= =?iso-8859-1?q?jKD5JMj7LOSCG9QFvMU+ZwXYlVYWGniiPEUE4ec7Sin6fOjyCK9z8fO05FVV?= =?iso-8859-1?q?adZLsuQFjlWlwi7/MF2LsXqRDpUL8TlfcTnziTAvQ+QVZa+J1HOztb9Bq/A5?= =?iso-8859-1?q?iq/1msJVowsl4TJBvPXq6vo4NRqcA5OqUXMQ4luL/HYoS7fWaanKirbI7one?= =?iso-8859-1?q?YdfcpxcOb0nBsYkADp8fYrWhna65PRAkdvJV/OrSoVja4k4IDIf2Za0S/hrA?= =?iso-8859-1?q?aFYpIOB6blHGsazkmMi8sEB1hMxKN/4aFG8/HQRelKsEJJpG/v0UlMzIrjFQ?= =?iso-8859-1?q?ts7qGGS4xGzH1T0nzeotWPleHqavzu/xHs45YUNXGbXHW34hoTPIV+cFa4VH?= =?iso-8859-1?q?uGgBLDdbuT/xR1Ji79S97lX0THsg8KSRR56B5J9kR5PiMPyhs81ACdb7bCYg?= =?iso-8859-1?q?h7pDMrO2acEa/JSbnpGSWgsacDbQt5EhHETRSPCjZ5CWli2QOIP/ERR78MBF?= =?iso-8859-1?q?eoxHug8/9zZeM8waEBC5hXWqV9PFcMRK+nhHanzyqzr9NN2bMR+Mmy+IWj2l?= =?iso-8859-1?q?dqqKjMuyTAoPUxnwqi+rCjhkI3ZL3Vc54EBDsZkl5PjIzP5hfItMuV0lWf43?= =?iso-8859-1?q?llkQctrbx/k5ddvE0J/Fi9TQMpXfwf/XP9S9voeen9VWU6tArArTBKn5PSvd?= =?iso-8859-1?q?DCRymfjxrEtNz+G67VKfHWQZvv2zTc18IcqDSCvHivroDzwTDPUNEAUD7bnq?= =?iso-8859-1?q?FodzGfpjEt0zxGaOMMRTGx1u1Cfuc8mevy5n2ddg3Hdu0rz1TrKteiJOxHy3?= =?iso-8859-1?q?yjZzUwQ9lErKvJVwzYZTzvGeNCLxoQtcAEHdqM373zM+1rpDvkPcpz5tGc8P?= =?iso-8859-1?q?CY4pKVx/K8DJGBoOFWUgANP77NdBFeWGz2EXJr2mvPE2XNIXMJ+eE8y24ICJ?= =?iso-8859-1?q?Cqph5DkRLSeo9Tbi5tMMDQRjWCREE8XKdVT4fb5rIHtGBtxws6we/Cq3IyXv?= =?iso-8859-1?q?thHSMSljtepM2aKAipvaF7baahe1oBJTdb4m/DVKzGhQbZT7jMLtD4ZjGEl3?= =?iso-8859-1?q?ENzbKPa49s3T8A5wpFjcCX3XgUvxtFnls2nCJ5sTqUTccJ5rDKJq34gqXdQA?= =?iso-8859-1?q?YStAY/lQjhc+RMjprkhXdfJeFpBcr8DkwIp8T9cuia8vNlzzsV2G5YIjJjfW?= =?iso-8859-1?q?tFkiaroM=3D?= 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: 635a6839-58f8-4a71-a572-08da2d6b5d9b X-MS-Exchange-CrossTenant-originalarrivaltime: 04 May 2022 01:13:56.3298 (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: 0/WRgpDOOq67D/lbIZDVh3drXqgx04Co3KUmnrgjwpl8sSBKB48lthLms1f/LMMjTsyNZ4k8YsGElgqX8YnU0Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR10MB3728 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.486,18.0.858 definitions=2022-05-03_10:2022-05-02,2022-05-03 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 mlxscore=0 adultscore=0 bulkscore=0 suspectscore=0 mlxlogscore=999 malwarescore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2205040006 X-Proofpoint-GUID: Ach_sudxJLWpCdwCjsro7n_ZnLKwXTAY X-Proofpoint-ORIG-GUID: Ach_sudxJLWpCdwCjsro7n_ZnLKwXTAY X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: C393614008A X-Stat-Signature: fi7egzs8qefdkq8y7bdpa4xwu1jayx58 X-Rspam-User: Authentication-Results: imf09.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2021-07-09 header.b=phhyfenf; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=jt93Nzyf; spf=none (imf09.hostedemail.com: domain of liam.howlett@oracle.com has no SPF policy when checking 205.220.165.32) smtp.mailfrom=liam.howlett@oracle.com; dmarc=pass (policy=none) header.from=oracle.com X-HE-Tag: 1651737095-396022 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: From: "Matthew Wilcox (Oracle)" Use the VMA iterator instead. Signed-off-by: Matthew Wilcox (Oracle) Signed-off-by: Liam R. Howlett Acked-by: Vlastimil Babka --- arch/x86/entry/vdso/vma.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/arch/x86/entry/vdso/vma.c b/arch/x86/entry/vdso/vma.c index 235a5794296a..3883da001c62 100644 --- a/arch/x86/entry/vdso/vma.c +++ b/arch/x86/entry/vdso/vma.c @@ -127,17 +127,17 @@ int vdso_join_timens(struct task_struct *task, struct time_namespace *ns) { struct mm_struct *mm = task->mm; struct vm_area_struct *vma; + VMA_ITERATOR(vmi, mm, 0); mmap_read_lock(mm); - - for (vma = mm->mmap; vma; vma = vma->vm_next) { + for_each_vma(vmi, vma) { unsigned long size = vma->vm_end - vma->vm_start; if (vma_is_special_mapping(vma, &vvar_mapping)) zap_page_range(vma, vma->vm_start, size); } - mmap_read_unlock(mm); + return 0; } #else @@ -354,6 +354,7 @@ int map_vdso_once(const struct vdso_image *image, unsigned long addr) { struct mm_struct *mm = current->mm; struct vm_area_struct *vma; + VMA_ITERATOR(vmi, mm, 0); mmap_write_lock(mm); /* @@ -363,7 +364,7 @@ int map_vdso_once(const struct vdso_image *image, unsigned long addr) * We could search vma near context.vdso, but it's a slowpath, * so let's explicitly check all VMAs to be completely sure. */ - for (vma = mm->mmap; vma; vma = vma->vm_next) { + for_each_vma(vmi, vma) { if (vma_is_special_mapping(vma, &vdso_mapping) || vma_is_special_mapping(vma, &vvar_mapping)) { mmap_write_unlock(mm); From patchwork Wed May 4 01:13:56 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 12836640 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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 08B68C433FE for ; Wed, 4 May 2022 01:14:13 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 387318D000A; Tue, 3 May 2022 21:14:04 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 312188D0003; Tue, 3 May 2022 21:14:04 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 0D6408D000A; Tue, 3 May 2022 21:14:03 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id E4F128D0003 for ; Tue, 3 May 2022 21:14:03 -0400 (EDT) Received: from smtpin25.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id CBCC76087D for ; Wed, 4 May 2022 01:14:03 +0000 (UTC) X-FDA: 79426289166.25.2114CEC Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by imf18.hostedemail.com (Postfix) with ESMTP id C138E1C007C for ; Wed, 4 May 2022 01:13:55 +0000 (UTC) Received: from pps.filterd (m0246627.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 243JuLfp004338; Wed, 4 May 2022 01:14:02 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=uX4ZsfCGZj+gIvcVwqm3WvkSUlhnHyrP5tURnL9YYnw=; b=az6kkn91HJ03NGYiK5FWLATuZnCKvzxBoMgqzQtlc02O7UIvX3+SHKCPu/plNZfU989Q SLN+o0FSvbxphXf7QSuXLJIODIgnG6h1SUBK48orPwJgA1I0CywzJbbQV58xcnSkTXZA uTpQYfmItHcO82EiIk8AcIEGN1c+DVJ7uOZCSn8KuE01xzZG5Z1oi+GofNIyVQdSYNCm rdov5ayB+xSaEihMPMBWYTdgT7wSLJtEydOQX6JoNHBeFkaGWWWu9oNB3jg5m7voRDiP PtD6Uv1/mP2lJVoXb1m7diBX3UnqBXEnRe9FgqRvLu5TX9ZoupAl39WCR29d97RHtDVP XA== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3fruq0f61f-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:14:01 +0000 Received: from pps.filterd (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.16.1.2/8.16.1.2) with SMTP id 2441Ato9020100; Wed, 4 May 2022 01:14:00 GMT Received: from nam10-dm6-obe.outbound.protection.outlook.com (mail-dm6nam10lp2102.outbound.protection.outlook.com [104.47.58.102]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com with ESMTP id 3fruj922he-4 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:14:00 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=VR+BbOTnfFFCN7TwukbX+xWkuzSsqnszBqD9GgLcru9fKakHotn9aswOQWJAewFcIYHbCWwa1nGCigBhIgALYkIZ3/uY9V4Ay0m84ASci3MmJvnV9t0r9iev41zFPK60v1Nf6t7liJ/McFrVYcBapADutBYoNoeRU5ORaRYWARCI6acLqz7H+uvvudHWM5zllgufU6eq3+2iQIBk6mJnPZEROaVYddDa7CCJnLTCWCamoqEkTPosVM526Kf/aS2xU2IuVXxbtzn5uXPlubmeFo/Gaf2jz4lFB4JtkyFDb9clpuD5+n6SV8X8BH2O6mTKvZ0wT+uSU56vXMiBQSJ38w== 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=uX4ZsfCGZj+gIvcVwqm3WvkSUlhnHyrP5tURnL9YYnw=; b=IhDyyktxFzzaFwdUo+JoTdMPfSYHqexR3Bz9zsD14yRlVQzV+S6Nq590/wqaGyBTzbzpolZY07W878ZxVP3i3V4I4NuU9Q/NXAMkYJ9CTuETBZZ+PtxeCeQucuhFC1So/y+DSTH5SNBTGZVuV06zQ7kYjQmMHng3qfoSZHKTaRVeouDm7+JZyqBG3H2KgInEIyjOai0k5X5hex6mJab/9Ji1m4vROqv3Vbfjgu8GYk/JcIq7OIHnKNoUTugr/9rNWQRmHZOLXwJxeBISP9HlY0mvSVYiNZ1lrC9ScFh8t3Ka9VUZgWRYyCXZNlMWMUsbA6o8UnNUyL1ty4t82Z3wtQ== 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=uX4ZsfCGZj+gIvcVwqm3WvkSUlhnHyrP5tURnL9YYnw=; b=GkssRra3q/3OPQS7WeEdSPJcwWzAqyiKFhoVetzpEJ5zfARGCVhjYBQ9nuV+opM9huUwO1Cnwo1jEZuoC3aOp5nmRUPjXmP2q4f4qzuDVCwSqL4YPMBYZfA0dYM3N02LS6FIP+QXmdu3BJFhZSa5GatZc6b3MKoFfP4uEZw9i58= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by MN2PR10MB3728.namprd10.prod.outlook.com (2603:10b6:208:115::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5186.21; Wed, 4 May 2022 01:13:58 +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.5206.024; Wed, 4 May 2022 01:13:58 +0000 From: Liam Howlett To: "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton Subject: [PATCH v9 36/69] xtensa: remove vma linked list walks Thread-Topic: [PATCH v9 36/69] xtensa: remove vma linked list walks Thread-Index: AQHYX1Q6a81poYYDo0mZzBgYfFB8lg== Date: Wed, 4 May 2022 01:13:56 +0000 Message-ID: <20220504011345.662299-21-Liam.Howlett@oracle.com> References: <20220504002554.654642-1-Liam.Howlett@oracle.com> <20220504011345.662299-1-Liam.Howlett@oracle.com> In-Reply-To: <20220504011345.662299-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: b7ae5482-499c-43ca-c682-08da2d6b5dff x-ms-traffictypediagnostic: MN2PR10MB3728:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: UnxHNYWQP7V3ZLvzhP5r0o7YUht5CT8p0U5kWq58u4+xc+Ut7jpsloRideTCuy2jx+/QyM92CSSVDqu4+3Wos/YWI6xf4OmQgfURNW711Qw/aDxswwkrqVUwnYgNe0b1N8YIthMmrPAoa/3vDDobB2ZGpwn7fOLJ/MUD0i9os/QaJKld+m/MjIyCGBq48G/lWx2rlKV99nOD28Q+o6EkdvAh/5tyjY0kFhefWAGh8VD5zMel3dVnjdrBGuKG60BPcqa/S+iPGgEDo6e0R/t75qaFB4W5TkxMyJh0XJ4GSeewOCxdwDN3KE1DwOxg5FPbzfd0UoLBOlnyG9BwQ7vHSe1zDvRa7vqVzMT6RG1V4SDy1bJVY6mayNmUnUD3YavBmhFEb6lmnrSu5bxUrmLDvm3eDYlrVPE3pQYQcfOcuxO1DG4lE/RxykDK2H1iZVzhCeIc9oTQDhvvRNaHsQLBo3+/1jpbnPXrQ2IgojsHJcD/NInlKHRffqcaffPtbha04QXzsrRpADEmiNHv6fz8nQteCtdpYj+5ZqK4yc5Iq2K2GmaP3XOMolS+bbxhAk8X6EwENg2eD1sNjLAvWIep22OFyn2GsripjssbZ/u5/R6TVIsXEoCiOEIY0anBi0NW4Wcfp+fOm/qiCZRke9+Mu6VMA+7JcOAGx5IDyf8IMF8rGYHRHsS22HQXuQalU0infUH0zsk304GLORg06FqcXQ== 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)(71200400001)(508600001)(5660300002)(8936002)(6486002)(86362001)(26005)(6506007)(2616005)(6512007)(2906002)(83380400001)(44832011)(186003)(66946007)(91956017)(76116006)(110136005)(38100700002)(38070700005)(36756003)(316002)(8676002)(66446008)(66556008)(64756008)(66476007)(122000001)(1076003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?J8eVd65qjPAdGv1OUbqFdfR?= =?iso-8859-1?q?JXtWTuTsd+UaQmmVaFZ8x6BZhpxJz3F4AkqztK5AdX1f/Zy3RY1FgbgwASLd?= =?iso-8859-1?q?7144c3G4CTwtyCllc5sona9rqjopbitpnfoiFMhv35WN0nDsVIhO5Gz+euHM?= =?iso-8859-1?q?EX8oxeYeOeYTwHTIb1ugxBh8SgqcS7QoEfH9z2wxJcUwwKKl+Rp+vZ4vMqCH?= =?iso-8859-1?q?vSQLCF5s9zgdupxYGAbA1WQCvvB6HuoReWjwCy+8c5L9YElVV/Q7g7e6mZ+s?= =?iso-8859-1?q?7Hp0m6yEXyfMnaGcNVy8S5gS7FsyCWNCyCtWWBKmL4Q3EmskPskTtOx+L+nt?= =?iso-8859-1?q?iFU3NPrmB4NupJkgsmba16ZKsjOw7DUwYdBD7SHP2o8e7ZeKQoCrJlevVYxo?= =?iso-8859-1?q?DauXy65yAe3hzCZHdnb2ocrrRMZANn7M/vdW0WbHisWcr0f7K7Oms7ANo+V9?= =?iso-8859-1?q?FdYcM1I1PL+/8bHI6k3nY9+U4hZOw5kO2E2sLl3jqsn2ElzlNTxZIhKqT1Nw?= =?iso-8859-1?q?kaN5BjRSEqIMdr9dIIRgkjJBrwPIWe04mwUHjRGEL3iJ16u3WYrZcyIY5dvQ?= =?iso-8859-1?q?yF8s54UIr/KkVEuWfjj1uP5Mi9JURXwCQEX3SuqLEGA0v4ZZC6T1dEHnsnRa?= =?iso-8859-1?q?59+mh42bRA7jJII88wy4fCmn+gzmY8V3qZu0qrlibkyIuVFiaxuyqYtCleyl?= =?iso-8859-1?q?j+EU/mzZbcQ+tnhq8gSZjtRpGwz7mlroaQt0gx4Yr4b9PV2K79jgHJSJBSaf?= =?iso-8859-1?q?hawhwRMLEPsv9Lww9NWX0OJLwK2Zl77UyQR+siyNbSlZpj312PTT/XmbCAPC?= =?iso-8859-1?q?ZIuNeB3vceIAJ9vbv9R/yiE6i+qE1WA5RAgZLM7YbTVyUbONwXIJ2qulbF+h?= =?iso-8859-1?q?qMZ7m5sN1VFgjmzm7AmNHnneYOv7dJ24bjKG8g+DNWcoakCizam1EXWPSwMN?= =?iso-8859-1?q?oKbLlhg0pEdb9ll7cWtHd8MdCZsXLyZvORLBnR+1GmXao5P+VgtxHRza4tRI?= =?iso-8859-1?q?SLh7rIlbEiNkCVPWFbndcKcF2SYilLgnv7f4oBvCZT5rv87hhCW4A49WyCvk?= =?iso-8859-1?q?w74Cb6gnNvDLhXzZZYwUXYgAE51cl26oF/1Ypq1XtqQ9HLP/GHLv2pLQpJJ8?= =?iso-8859-1?q?Me/Msq3AOxBOXxtlAI2eeO/cEt61igLC1l40D7eRPlkKPtIXqul/tdQIUUL1?= =?iso-8859-1?q?6NxsGuxTYUqFqPse5JPlinKb7r0Z4q3vmxxQTntZtXKJ/eWh9z12Vb7fwo7H?= =?iso-8859-1?q?Bsh0PL8oD+5Gap8QX0tyb6BNQew5R91gENywTn9duoCeQ33c4f0QatQxu2ws?= =?iso-8859-1?q?fDL2tqLBM00KugByoDmEA7SIANQxHgWzf8Pbg8wxwCCn8GHfBdOK5viDGEM2?= =?iso-8859-1?q?W4pB53ZuUzqWnSHpZ7e66BnqWmsigpJMxw71IAxIJSlBhGk0uWFqlpZljgzA?= =?iso-8859-1?q?toG0MxMyD0WDKmFOFxx9x4z1+4vuSV+n3lbE7dp1wLyBat0u4Q1EBqQoQK+U?= =?iso-8859-1?q?G9kN8v5cKzhCzO58IhGNSn0bLc8/SZTUoshWnjCYvzWL2apUVvYO56LlwK5s?= =?iso-8859-1?q?tfkgfPc0HiBLTHeI48c7FOvLvzy7e9ziaGENa7fljONJ95KrNrYQby7id71T?= =?iso-8859-1?q?Ergq7ghKpZAgLXB2QJcyXNHP6fXxq2mQMcW19NU0DD7uba9ISqvPvpn3fVxz?= =?iso-8859-1?q?WkKmNy7dbvTOc60JUXeSlDSybF7Ajyi9QsTPhu8RebjJfvuQnpJ8cCJy9lnF?= =?iso-8859-1?q?6EgJDJhHb2/mbE9X3Eq9qWvs2HrgPQXv+EiZp/hkskq+dU4XdtYGtOzpuiy6?= =?iso-8859-1?q?mWVTeAZk=3D?= 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: b7ae5482-499c-43ca-c682-08da2d6b5dff X-MS-Exchange-CrossTenant-originalarrivaltime: 04 May 2022 01:13:56.7517 (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: H/Qkh5VGnx/6a01wK8EFLDA+Npc4hTvFfWE8YKpl6l0WmO/KpNi6FESJuRcSbkq1seuvddNPAHo9qtvDSTEieQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR10MB3728 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.486,18.0.858 definitions=2022-05-03_10:2022-05-02,2022-05-03 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 mlxscore=0 adultscore=0 bulkscore=0 suspectscore=0 mlxlogscore=999 malwarescore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2205040006 X-Proofpoint-ORIG-GUID: BufzCxdeI6d9E_nr5ZdbOk_P5uA9CDSX X-Proofpoint-GUID: BufzCxdeI6d9E_nr5ZdbOk_P5uA9CDSX X-Rspamd-Server: rspam03 X-Rspamd-Queue-Id: C138E1C007C X-Stat-Signature: yjx7c8zpij1etd8k7qs4966oxcd83qk1 Authentication-Results: imf18.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2021-07-09 header.b=az6kkn91; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=GkssRra3; dmarc=pass (policy=none) header.from=oracle.com; spf=none (imf18.hostedemail.com: domain of liam.howlett@oracle.com has no SPF policy when checking 205.220.165.32) smtp.mailfrom=liam.howlett@oracle.com X-Rspam-User: X-HE-Tag: 1651626835-646331 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: From: "Matthew Wilcox (Oracle)" Use the VMA iterator instead. Since VMA can no longer be NULL in the loop, then deal with out-of-memory outside the loop. This means a slightly longer run time in the failure case (-ENOMEM) - it will run to the end of the VMAs before erroring instead of in the middle of the loop. Signed-off-by: Matthew Wilcox (Oracle) Signed-off-by: Liam R. Howlett --- arch/xtensa/kernel/syscall.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/arch/xtensa/kernel/syscall.c b/arch/xtensa/kernel/syscall.c index 201356faa7e6..b3c2450d6f23 100644 --- a/arch/xtensa/kernel/syscall.c +++ b/arch/xtensa/kernel/syscall.c @@ -58,6 +58,7 @@ unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr, unsigned long len, unsigned long pgoff, unsigned long flags) { struct vm_area_struct *vmm; + struct vma_iterator vmi; if (flags & MAP_FIXED) { /* We do not accept a shared mapping if it would violate @@ -79,15 +80,20 @@ unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr, else addr = PAGE_ALIGN(addr); - for (vmm = find_vma(current->mm, addr); ; vmm = vmm->vm_next) { - /* At this point: (!vmm || addr < vmm->vm_end). */ - if (TASK_SIZE - len < addr) - return -ENOMEM; - if (!vmm || addr + len <= vm_start_gap(vmm)) - return addr; + vma_iter_init(&vmi, current->mm, addr); + for_each_vma(vmi, vmm) { + /* At this point: (addr < vmm->vm_end). */ + if (addr + len <= vm_start_gap(vmm)) + break; + addr = vmm->vm_end; if (flags & MAP_SHARED) addr = COLOUR_ALIGN(addr, pgoff); } + + if (TASK_SIZE - len < addr) + return -ENOMEM; + + return addr; } #endif From patchwork Wed May 4 01:13:57 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 12836642 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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 86AEAC433F5 for ; Wed, 4 May 2022 01:14:14 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id A17FE8D000B; Tue, 3 May 2022 21:14:04 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 9C8188D0003; Tue, 3 May 2022 21:14:04 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 66C288D000C; Tue, 3 May 2022 21:14:04 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 50B3A8D000B for ; Tue, 3 May 2022 21:14:04 -0400 (EDT) Received: from smtpin07.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 3674E6087D for ; Wed, 4 May 2022 01:14:04 +0000 (UTC) X-FDA: 79426289208.07.A79139E Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by imf11.hostedemail.com (Postfix) with ESMTP id AEA4140079 for ; Wed, 4 May 2022 01:13:59 +0000 (UTC) Received: from pps.filterd (m0246617.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 243LFfx4018740; Wed, 4 May 2022 01:14:02 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=rBmcZnH4ddodl4CLWLUj3ANEEvr09zCjKUnm/mm9Cpg=; b=js5i9r1YfiG82iI9RU5DUQ10v52qvbhRVUqU9E/uOm29Jm2C2fZ2fXn5aMyzQ7hFvtyM UYgJFa8ZrXe5CC3t9vNkPnrHAuQiTfUhIOZP10bklNDzWrJBNQpyaAfSOlTFkg+5HsuW vGEhDzoiHuls/SsQZCuD+OgURkjhZwAqU4zyCKGfbxGgauNX43fPF2nnZtYpFlEvNKAW TZh4ftpP+RLR3G5eL+yphndxmMaFdWK47NVlVel4h2wniinP/+OYWK/Sj5elAHKGBVFY UUBXAUwXQZnY93O7ykR+QsszyhUlzB7c3VO4pygIJxYW2ajpBdjVhDy7EHSBFgiQs6gf Gg== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3frwnt74h8-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:14:02 +0000 Received: from pps.filterd (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.16.1.2/8.16.1.2) with SMTP id 2441AtoA020100; Wed, 4 May 2022 01:14:00 GMT Received: from nam10-dm6-obe.outbound.protection.outlook.com (mail-dm6nam10lp2102.outbound.protection.outlook.com [104.47.58.102]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com with ESMTP id 3fruj922he-5 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:14:00 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=l3GtVzMUv9eMHSFSR5mknPGCUoqM6p75PmO5DAHApQBXnd1OLgow/lffAxKUkHbenDMWD5CCHVsQhQeR+pUSf1hDEMHyETkOw5A75h7knyoXN8H7LVRnDvKY9xgOQvL4vCVsX0LUkneR8RDq+kjTIfxW7Vc+MQYfEoqlCLCvO4iCzOuzpcvHwdkIVRU6OQfy/901DtKVzrH9ErAET45KF8PGCPey9XTl1DbeR2FLlFRqTKbmGdS54TIt5XIJY0uPp4vWR2AOOOxzSt4IH7qzoGuN6xDEKjKh/qEB+V1XoteJeGoVqBdk47ZedM0+Cj19ISlqZmmsg4NIxt96aj0VWg== 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=rBmcZnH4ddodl4CLWLUj3ANEEvr09zCjKUnm/mm9Cpg=; b=QTy36eKsxRgbIh9hbrib9/qzq44+nC/4GXQIfohMD82TPu1LDVVf7KcNUmUs0lG9/OvMUh7D8ZWb73aYWTl6ASW9FY2CWv2i8SYME9sfaISoPl+4amtIIY5OdR1nIhdoyCvhGCWw5VNnln0xGbUM3DEl0L1cuDOBA088Q/V6aN2TOpRtku2sAbPVqp+wGj4S7N2nm52qu96q88MAfNjBzOpvXC1g5UMQHPIYScrwKU1nS0AvldTB8OS+UXJdTaER1uvqPh0ckZSFPCK9G47be0dPVX4hS/6SBly9o6kG+3OzBxPKHoEYY+yqE4y9wrUlq0yFcr77nO8UnaJYNwx/Dg== 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=rBmcZnH4ddodl4CLWLUj3ANEEvr09zCjKUnm/mm9Cpg=; b=L7wsIDhAHznmlJioBCxdTysXcrencictervIO5wWVIxa/CYA2rzOPbHIRMEymxfwwOQlowiE+CJczdKV1fKwBAfvUDyZf5KgAtdRhlmoVWPk4ymJO7DMpwCjJ5U5SjRydxk219hqWhMId6DvO5dqHcGQCgy5brb70EfwSduYEdc= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by MN2PR10MB3728.namprd10.prod.outlook.com (2603:10b6:208:115::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5186.21; Wed, 4 May 2022 01:13:59 +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.5206.024; Wed, 4 May 2022 01:13:59 +0000 From: Liam Howlett To: "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton Subject: [PATCH v9 37/69] cxl: remove vma linked list walk Thread-Topic: [PATCH v9 37/69] cxl: remove vma linked list walk Thread-Index: AQHYX1Q6oxd7y1RdTkSlRSE/wzQzdQ== Date: Wed, 4 May 2022 01:13:57 +0000 Message-ID: <20220504011345.662299-22-Liam.Howlett@oracle.com> References: <20220504002554.654642-1-Liam.Howlett@oracle.com> <20220504011345.662299-1-Liam.Howlett@oracle.com> In-Reply-To: <20220504011345.662299-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: c6c229fe-4c51-4793-d50e-08da2d6b5e50 x-ms-traffictypediagnostic: MN2PR10MB3728:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: CCpJCozvaCg8y3LAW/bLnloGUMXgsIGMkLZdTFA5PC6CqRW18yn9gZ9D/T26UORCq5I0kXtD7ywSRavrW1zsTE+d6MQk4gBcvLNEKt8noig00Aj3FzX04EO75jOzOsj6XQry/yedrLYqD1dyDeW5AnV6daVdsVXNX6eoXraHWIo1FPKghadn48e4TuMWSc6djudlVKMzdI0lDD7aWeW/tJfNzkKM7JkZFNV9Rof+O2rTyH+5DbEiHWIIKeFk1kicm7VAx5FRfclt0rC09/Xf7LkY5zmNiN47Yb64fmZmXjnr5GfmFsa7aTnSsi9DAFOokQI7zXkVTUJgmweWvAvbJJx5F8k056RW4bxjjwNESka1KK0Ksj6/B5qa9eRApRPblK9rIUDxfTTuVAM1PBYz2XrUQ9zBbVm8NfXtZNM78rYw3kvw215zQnD0X/idy8HJXrrEcO5JiiIRAWsWrvjOZHoWD04csE463w6uZtXLqWBcOHYql3CxjpSOUuD+5aLtl13i0oers5Heu4yQN8eKtw3rFw5NfKWya4AyqQqC26gV/4L05WGWhMLaZVivdfdQA3LiwLvigFw25n5RiIa+RjqzDIpEyshPf8sIqfnnaUgZZ8iGvfeZafLYGPqyfnBdon8HGFynGMOKrQ3zrfg7ZxjUEEN8GM0eeMY5kv9F5q7Hh9iJsmJgRZoTgqJxfAh+Fm3MY4SaFaQI3DZ0ICxdtQ== 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)(71200400001)(508600001)(5660300002)(8936002)(6486002)(86362001)(26005)(6506007)(2616005)(6512007)(2906002)(83380400001)(44832011)(186003)(66946007)(91956017)(76116006)(110136005)(38100700002)(38070700005)(36756003)(316002)(8676002)(66446008)(66556008)(64756008)(66476007)(122000001)(1076003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?QnIKK5MPZS/VNvdwgPrmo5A?= =?iso-8859-1?q?dMNzhl7dwaEijAgmAliKVA6JrG8JBrHPSmsBqvfMaSEANnaYjVYEPp7kSm8p?= =?iso-8859-1?q?Rl1/cWOM6dM3Cpv818K9hq1KoR5DPVbLDr3rvtlF+wjYSJ6FSujZkCY/yPB5?= =?iso-8859-1?q?EC26blzW7/wr6p5rbeywibOK1utoPOdffwuyl5OatT9sOTXoNNMHz358i9++?= =?iso-8859-1?q?OwuNWOiJsDPptTeTqbc28l51V4Kb8iYZ8TrponFZNfTlNUmB4ZoxDJBQnCKs?= =?iso-8859-1?q?VEuH+J5pXhPT9sJGTx2x28qFTQiNYnq3P90qlzvv+RCklrO5O54nEA/Rwm0D?= =?iso-8859-1?q?AWcramFTlsQnt57VGI523ZhwyfLWebHyhoAvO7um/wHA6yXyNoC13JkLSVLz?= =?iso-8859-1?q?3Xu2nYpoqR4JCF05dLXkJy8QQdnQzTP8mGZkVkpZHCnLayy2AEzRwSqDcU+u?= =?iso-8859-1?q?TzrhmMW3we29x4Q0k2VxbrlL+7rp10JSmRt4hYHUjmQ6Kh/EZG+sKDGvYAwJ?= =?iso-8859-1?q?7r4PL0H1GQldyZKLIxJZcTxJKp9Ca/TswCp3baMBA6C1LF1B1ZJgUFInyXnc?= =?iso-8859-1?q?rZqwS27HCDuozPXQQI8ZEVUyuEHeWlh5QdmLH6Wjcj5pxbKpFm5DTvcd6TPe?= =?iso-8859-1?q?aaO9uuxJ3edsXoLpGdyydFTVFC2z60d239rYmn10LZPElo9oYz2CuQGOtVMo?= =?iso-8859-1?q?UcCnEtfyQpbIsjxgldwQPQTa16FH8hW3cynfWUyA/EaBHF2HN8SEY1xDQ7j7?= =?iso-8859-1?q?7XRnW4kA7NBSSk5Z4nMa6OIT5/W73kqwBSv7lGGmLSLbIy6VtPPlUGzItFdk?= =?iso-8859-1?q?7s3/4h7berMCt3F8IlPJJmDW59RbBfJaWgQox7my8TdWmCoWMryOo2UmU8ZB?= =?iso-8859-1?q?FL6zKDuNfH55m7X0sSajhOFcFJaAH4Yi/lXaN3HLrHbNQfQq8fUrU+T6fmIP?= =?iso-8859-1?q?CT+cbXzgMhqudt0JHjMvY28J46zKgLXDf9d4cz/Tslfi8lSyeN0+23U+FaWO?= =?iso-8859-1?q?BPnDQawudFh02dshr9JBzrMN+/RM5Cu2itj37cOwM8NP1pPEtCyllrpaa1iC?= =?iso-8859-1?q?o7CypDlXjcniN0CZoOmtT3XTHaanY6EqB3YDftYfXgJTyzAFupr3q9i+9hdI?= =?iso-8859-1?q?CTMHz7RVTzEDLDu5ecSyuZAnsV8ObEZ7aJJPkOb+Bh8yZmJcMTdPZ/Pf4pjv?= =?iso-8859-1?q?mCUIJXEaTZt1cvmTg1gVEO36pgXNxPCVTQ/3ZEgN7YQze1+i6BGPoapKDoU9?= =?iso-8859-1?q?UHzfX5TnJes78lTw6q+1ftQrmcrJOqfdmQiAn646hRTv4GAqCXmaRuLQDXnL?= =?iso-8859-1?q?lADjxQahY25kw9GBt1S83thqOfWfbTvBS7BAIBlsosgGhWLJlfnU4aPgp67m?= =?iso-8859-1?q?+cfi+ZFt+8F6dRqVz38iQ76Csm61vDNUmEzFAN4ActyNro7v+lwcp9FHXVDd?= =?iso-8859-1?q?SauXgFNoNvevR1nchN4DKLk9rCluTiY9JFSsgyMw/+OorMJVbE4snCgbZ5nk?= =?iso-8859-1?q?jafkhLrmMDHmVzwEEDleTI/mdoiA8UDIpySwgdNnXq22PuFy28LCAv994/+k?= =?iso-8859-1?q?YlYK1aZBt0KbwX1lpQ5toNEV86XAJ8LDy//yPH7x9uG+kl7i4zo5jAPcw8Hc?= =?iso-8859-1?q?Z4BlGezKqfanZ1v246QNgjwu8L/egd6/pHC02dWAkkNPrf4tWawOnvQRDxoZ?= =?iso-8859-1?q?K1Vkh7fKj60QOLYUK/L9+bpSTcP9/hWzvuzYkFetW9Fck5t/XqdBrk2FSRqb?= =?iso-8859-1?q?dCv/gor+mXa0FRlz+XndBzi4RuLdFjP4/azi08XHF811MJQuoPdeAxbXyG6Y?= =?iso-8859-1?q?vC2H9N2g=3D?= 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: c6c229fe-4c51-4793-d50e-08da2d6b5e50 X-MS-Exchange-CrossTenant-originalarrivaltime: 04 May 2022 01:13:57.1891 (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: UinNJTpgZxAqE1C1w9Td+oiggvBT1DOVOfcKJVeN4IBrrgkbcL4Lz5IvgvGc8y2BSZys72jXXVRnKy/TgY2zhA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR10MB3728 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.486,18.0.858 definitions=2022-05-03_10:2022-05-02,2022-05-03 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 mlxscore=0 adultscore=0 bulkscore=0 suspectscore=0 mlxlogscore=999 malwarescore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2205040006 X-Proofpoint-ORIG-GUID: BAGGUfPoUukYX6C4VzE-DRGCOsA5OYJz X-Proofpoint-GUID: BAGGUfPoUukYX6C4VzE-DRGCOsA5OYJz Authentication-Results: imf11.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2021-07-09 header.b=js5i9r1Y; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=L7wsIDhA; spf=none (imf11.hostedemail.com: domain of liam.howlett@oracle.com has no SPF policy when checking 205.220.165.32) smtp.mailfrom=liam.howlett@oracle.com; dmarc=pass (policy=none) header.from=oracle.com X-Rspam-User: X-Rspamd-Server: rspam05 X-Rspamd-Queue-Id: AEA4140079 X-Stat-Signature: t16hzc4tpq7z95mphwdqxegwgk6n1636 X-HE-Tag: 1651626839-209055 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: From: "Matthew Wilcox (Oracle)" Use the VMA iterator instead. This requires a little restructuring of the surrounding code to hoist the mm to the caller. That turns cxl_prefault_one() into a trivial function, so call cxl_fault_segment() directly. Signed-off-by: Matthew Wilcox (Oracle) Signed-off-by: Liam R. Howlett Acked-by: Vlastimil Babka --- drivers/misc/cxl/fault.c | 45 ++++++++++++++-------------------------- 1 file changed, 15 insertions(+), 30 deletions(-) diff --git a/drivers/misc/cxl/fault.c b/drivers/misc/cxl/fault.c index 60c829113299..2c64f55cf01f 100644 --- a/drivers/misc/cxl/fault.c +++ b/drivers/misc/cxl/fault.c @@ -280,22 +280,6 @@ void cxl_handle_fault(struct work_struct *fault_work) mmput(mm); } -static void cxl_prefault_one(struct cxl_context *ctx, u64 ea) -{ - struct mm_struct *mm; - - mm = get_mem_context(ctx); - if (mm == NULL) { - pr_devel("cxl_prefault_one unable to get mm %i\n", - pid_nr(ctx->pid)); - return; - } - - cxl_fault_segment(ctx, mm, ea); - - mmput(mm); -} - static u64 next_segment(u64 ea, u64 vsid) { if (vsid & SLB_VSID_B_1T) @@ -306,23 +290,16 @@ static u64 next_segment(u64 ea, u64 vsid) return ea + 1; } -static void cxl_prefault_vma(struct cxl_context *ctx) +static void cxl_prefault_vma(struct cxl_context *ctx, struct mm_struct *mm) { u64 ea, last_esid = 0; struct copro_slb slb; + VMA_ITERATOR(vmi, mm, 0); struct vm_area_struct *vma; int rc; - struct mm_struct *mm; - - mm = get_mem_context(ctx); - if (mm == NULL) { - pr_devel("cxl_prefault_vm unable to get mm %i\n", - pid_nr(ctx->pid)); - return; - } mmap_read_lock(mm); - for (vma = mm->mmap; vma; vma = vma->vm_next) { + for_each_vma(vmi, vma) { for (ea = vma->vm_start; ea < vma->vm_end; ea = next_segment(ea, slb.vsid)) { rc = copro_calculate_slb(mm, ea, &slb); @@ -337,20 +314,28 @@ static void cxl_prefault_vma(struct cxl_context *ctx) } } mmap_read_unlock(mm); - - mmput(mm); } void cxl_prefault(struct cxl_context *ctx, u64 wed) { + struct mm_struct *mm = get_mem_context(ctx); + + if (mm == NULL) { + pr_devel("cxl_prefault unable to get mm %i\n", + pid_nr(ctx->pid)); + return; + } + switch (ctx->afu->prefault_mode) { case CXL_PREFAULT_WED: - cxl_prefault_one(ctx, wed); + cxl_fault_segment(ctx, mm, wed); break; case CXL_PREFAULT_ALL: - cxl_prefault_vma(ctx); + cxl_prefault_vma(ctx, mm); break; default: break; } + + mmput(mm); } From patchwork Wed May 4 01:13:57 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 12841345 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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4668DC433EF for ; Fri, 6 May 2022 15:47:36 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id A64F06B0072; Fri, 6 May 2022 11:47:35 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 9EC986B0073; Fri, 6 May 2022 11:47:35 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 7C9CD6B0074; Fri, 6 May 2022 11:47:35 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0241.hostedemail.com [216.40.44.241]) by kanga.kvack.org (Postfix) with ESMTP id 6706D6B0072 for ; Fri, 6 May 2022 11:47:35 -0400 (EDT) Received: from smtpin26.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay01.hostedemail.com (Postfix) with ESMTP id 20FF41857289B for ; Fri, 6 May 2022 15:47:35 +0000 (UTC) X-FDA: 79435748070.26.4A11EFE Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by imf28.hostedemail.com (Postfix) with ESMTP id AF087C0030 for ; Fri, 6 May 2022 15:47:18 +0000 (UTC) Received: from pps.filterd (m0246617.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 243LFfx5018740; Wed, 4 May 2022 01:14:03 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=+UHCW8nFXeFjSUwDaJL/T85wPbd8q1FFGkops0wcf/w=; b=Zdut2UGnI1PocxxcIecPJT4l5+o0KN9aVsNli9EN5IIITNL/lMMJSNRV+Q2aAjPDNf0m 3h/HxB+kVS4bSF6pEzKlsvl541sNJwtNxds1jkallIg9L3F93r+OXaBML54XoPeo+mNO O08Gnx+Ly/ySQOMtRw/Kq9yFE/JwpYkqpi8BOBsV7szXPVt505/zXybJZUAKA06Kvm37 23e7JNEcOGpks9B2FSzOShD8KwwM4miwbiLoYzZhfJknMFR64V2Xzi2Ul97+oYNFjkrK 3yS37l7LFUpIj5kg8JLi3nx19xgXkyJFcIRhnQFfsYrk1JTHdp2RwMbd32kBaxg0QbuD TA== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3frwnt74ha-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:14:02 +0000 Received: from pps.filterd (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.16.1.2/8.16.1.2) with SMTP id 2441AtoB020100; Wed, 4 May 2022 01:14:01 GMT Received: from nam10-dm6-obe.outbound.protection.outlook.com (mail-dm6nam10lp2102.outbound.protection.outlook.com [104.47.58.102]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com with ESMTP id 3fruj922he-6 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:14:01 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=K5iRcMz9Ou1hZmD+sWZPfSQU8hch5qo04pU2T9VF+G88sKX1r17wiht31MHMB1Hi1vg610cD8fPFEjJkJDKM5uhwKIeQ1lmdY0678dNSNx0DoFQf3SuZK34KAsivph/ZlPcJnJruv+kIsrUfwBMAtuRKSon5u1fglCIh9Hk4wc6RPCU777Xn21TkTYOLADX/Mt28CcQTQgUFSG4SDHR/GaSiatj6bT8TY1xF+VJW+PauZutsIeFma8cT5hk2M8Cq42qsXTuwjCwH8vex/MdP+1S7g1iCT5VEANziSR4fBObBCXu+sqY+g2fhDEIrMAqn97XXEmMGZ9aZDiLARuYsJg== 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=+UHCW8nFXeFjSUwDaJL/T85wPbd8q1FFGkops0wcf/w=; b=aOMEx1UbP80mAMGrREAm7a+igqUxEBaaBTDekLzKX44Vcd9qFZ9OKPQVal4Mr5hi2D6JN6S6Xj7Es5L6rw7eI3GremJnDjzgnEXWtoWMgGkzERKAm7oQTXX3bj7FWSw1EvQcq4uvuRv5stGOGwQZv7BLZaJmzi1kdgAuCKyuPhu7PslGkfnzcG8KodwH3rx5QfwUEHbLtNlRkPujJnNUJTvf9JwntkljFD+5ekQ9u95vLvn58m5W3eziiKYVBsMUlhUw1Xvy0A92i8H1CxJYTMeQjx5PV5UNHG0BnfZtdjY9uvZC7Vvf6Qb30znjzko8KdF/WgIxiC1DA6hVASNj5g== 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=+UHCW8nFXeFjSUwDaJL/T85wPbd8q1FFGkops0wcf/w=; b=g5U2q/Ki80xzwfN6G1cXroTuJalxkqYwuNNGuqyfBWTNrEOi9qMwzcNAw1PghCLkjkAdh/vmdJ/6BjIWS7Kb0UIcf6/IHckEkiQFwUTQ1zDQp6RO7ODndB2mVuDtA65WNomDFeAFL1TyuQXogqz0Xr9kcKC1M4v5HlfD8g8/aQo= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by MN2PR10MB3728.namprd10.prod.outlook.com (2603:10b6:208:115::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5186.21; Wed, 4 May 2022 01:13:59 +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.5206.024; Wed, 4 May 2022 01:13:59 +0000 From: Liam Howlett To: "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton Subject: [PATCH v9 38/69] optee: remove vma linked list walk Thread-Topic: [PATCH v9 38/69] optee: remove vma linked list walk Thread-Index: AQHYX1Q62krzGFlVpE+L7mD++uYYPw== Date: Wed, 4 May 2022 01:13:57 +0000 Message-ID: <20220504011345.662299-23-Liam.Howlett@oracle.com> References: <20220504002554.654642-1-Liam.Howlett@oracle.com> <20220504011345.662299-1-Liam.Howlett@oracle.com> In-Reply-To: <20220504011345.662299-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: c15877a6-5225-4a45-95c9-08da2d6b5e93 x-ms-traffictypediagnostic: MN2PR10MB3728:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: evkaW6c3P9tCs85k8T4Qjj5HMZRcC51B5t6cULCvJKcBrbGmxjW1hS3SRSNyk5e/F2UGTdKtqkfjLCAunq0hYREpTUKkrsCp9T5LOZHD8Hq5b+D0YVqX/AppnHR1naPH5YfmiD7i/naK4noi879OjjfybXvNK2mQvBTOeVFDW4VnGWbFEhcxoTkVKLrL2HtfF5z6fpZ9kfEAZg7kTnOzJd2Ba9xhXSltjSdq7XUPUe3UKT6LEO2kYjlAxG/uaK7z5xbDCksCCM6Yb4/HgGb0z/WqLAz0Rv9mfIYnP6fvo+RLfyYX0/AOOmR+OPyCeGZ/80jgEpf0alZ+UhZVbvpB0poJ6BZCgcZkGPzF8s0Nth0qjj7dY0DfbCs5RIkG4Y1rmRCV0liaZENfYiOxdDqm8TBRr/PVG7T9C1vG/6ufsPtzhRCiIIIZQVBADSVnpjQDvQgkDSCCmkb6uYBIxms8cGtFmC1b1MVLoSepcVvu22mZCcsmUqn3TcKU4JLwY0rX60sz1eMZsM3O45ulq96S28YfvvBmHj3PkeaiJlXrqMhs2A0U7XlQqSCfg2ILujApd5Fyl1i5WZum4qZSJsmjkTFD2DZ+NVt6mUjy3QnEz9KLxwHYoC9vBm2ZihAx2DH70VJGKGD5JmjfyWr7ookXHQGTLmqu7sZw/smZYQ4bp2BQTpZCuWLV20pKK+lFFDmJu/NZEua0BR3E4mhAgUi2Aw== 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)(71200400001)(508600001)(5660300002)(8936002)(6486002)(86362001)(26005)(6506007)(2616005)(6512007)(2906002)(83380400001)(44832011)(186003)(66946007)(91956017)(76116006)(110136005)(38100700002)(38070700005)(36756003)(316002)(8676002)(66446008)(66556008)(64756008)(66476007)(122000001)(1076003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?mZ3/IAvlmzd9YKelS4/nHe3?= =?iso-8859-1?q?rEo2EFhskrBPQYWJ8jPTM9TqWnYEK5ea2NbzlIb2ZuZz4QoiIsQjgFceNTqJ?= =?iso-8859-1?q?HNwhISTQ/wH3jkUtxSGH516lKsMlVcXU+PLW3LDcppkvDs3obOiTv1wItmqh?= =?iso-8859-1?q?Xf+ATT9/KGn9+Fub7Nn9btf4f74wQPTLighDJQNoEXson4RGqlJAiZ9HSQfK?= =?iso-8859-1?q?yuH6VJnmqTcloi78tq+kJdReioNTxDhF7t73AFSsFRIT/nda5OgSnXA4wD/V?= =?iso-8859-1?q?x11AfxzFDDBEpCmWK69XHOkKBG3EaNmE5nl+XdwsJyVUwXgMyv8cm1l3rw6w?= =?iso-8859-1?q?szs/lDeR79e/K29fKnCka4bid8lZaKOmi8nNgEzdGg/8MsxwrecmGxw5KMnE?= =?iso-8859-1?q?WadDcYB0yd3veFvV91JnMCGBNI2yiq5Ek8lboncki8L9QCH1k/G1Tv+Q2hgR?= =?iso-8859-1?q?i7XnsGSetq2DzYy2kWIZoszWTxCGVYLGMVsZqV9aNM+2/fvRi35CbC51aj3p?= =?iso-8859-1?q?Wym0A04t/BrddV1iwgXj1IqNtCQ6scctUjjuwjBpv4+Y+kQZF/jY2ZPY/NmF?= =?iso-8859-1?q?Ya4mXeSnluoDXJgGan2gFVfxES4KQ04LO1+T71vSOpVEZd/X2qpIWuWqwIJt?= =?iso-8859-1?q?umWh/zNOP7pNmV/70PnByrs8Z0sqqUO+wbFCrVpubW5UTK5emKetg8xl5Olb?= =?iso-8859-1?q?/BLjsh6epxOEpoDVvr9do8jJ+1Clcrx1Efc/BAMiUFcT/UtTXLszSi/klD1r?= =?iso-8859-1?q?x+DeJBl4bAZlr+jKBQckh9QHVudXbZ8aGzKvMqIcIYnfcHMZ4OdDh8+8ae4X?= =?iso-8859-1?q?gc3eYrhzR4hC/8OsIAloHqp3k9bO/M19WUYt+h7h1RjuM2Ca/BkZ76oXvqke?= =?iso-8859-1?q?k49iAArFzWJnIBydrfd0MA9aBbrDtDpFXMD74hIq3NiAY3LdmKzYmlDBgPVN?= =?iso-8859-1?q?Lar7QcjIQKT7Y2FN4Zs66b7zRxZW19ZaLsCbL83n1ETyZHxEEhnfqyYm3jZh?= =?iso-8859-1?q?DhW8sVVLjI4Q0YdBywk3O4d6sn7f0nDFuTLkCurx2ef+PHoZt+AT5d/Exh9+?= =?iso-8859-1?q?rjKa89r5inwnMUsfoIDo6/T4/kFT7A+KIiAYTRphhHBUCD/aDmRAkb3duwg/?= =?iso-8859-1?q?9BSHwIMT7K89sfe6XfQlUX/VXzDIgxHz2wfcW0KLuKnJH1lrPK6ai+vdpKYh?= =?iso-8859-1?q?rH8qh58GULhN8DuzDVDHdePWcZDKs4l0aeo2xfpt5c8iZY2U+Psr5PjTV65+?= =?iso-8859-1?q?U9ianXpuybfL53tN5R9gScc080xr1vx7IreLqxhg3LAmmtzLQVTJA+pAE4WA?= =?iso-8859-1?q?paFZQognZPdhR95YaPigqWu09x5HPBK5Pq6hbX3V3uXjdY5QovCzLEXgH3/8?= =?iso-8859-1?q?pzGTZVccW1CSl57R08eVrkQ64mrv3pmIOYtOEmASEiHPTv4Cc37Quo8ha9lB?= =?iso-8859-1?q?TxJE6MTRGExWnnT8j03IDeyABqTNKUI3gxBHjitkVig99iWLogTlG+W+8DO9?= =?iso-8859-1?q?sbj9IlwtKL+doZJdtFbWbkZGMQUicl/7zrHBo3s8D3vr48ZCrWjim6J0VvI1?= =?iso-8859-1?q?F1Ie7n84FrelS258OVeusubsqEIB460/QrIBU0Niu/TFEDoJdvdtJvjqV2m4?= =?iso-8859-1?q?7LcqEPhJe6KGAlvTQ4ao3HjgtS85rywiypNK5JoA/2amCT4QiF+iygKEV3UB?= =?iso-8859-1?q?yk9njD2dO69GFM9erLBn668Z08MWG9XEWAiCVuZYxc2gU5agISJ7haxcqJNX?= =?iso-8859-1?q?86LH93iPPvAM3ipzBC+e1tHG1y+RaqjDw/EH3TwmlaWawmbpoLrRFoKN/a61?= =?iso-8859-1?q?jHQkv4q0=3D?= 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: c15877a6-5225-4a45-95c9-08da2d6b5e93 X-MS-Exchange-CrossTenant-originalarrivaltime: 04 May 2022 01:13:57.5329 (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: s0SoWpgiCDpi1qSfmgYcTLAUVNRoGy5UAm3hCrUTvERA3Ob03YN+OEaFeIipd4UitjgYIn5iBs3DchJkRlNt0Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR10MB3728 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.486,18.0.858 definitions=2022-05-03_10:2022-05-02,2022-05-03 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 mlxscore=0 adultscore=0 bulkscore=0 suspectscore=0 mlxlogscore=999 malwarescore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2205040006 X-Proofpoint-ORIG-GUID: COuqWK2u7TyJRRumet1qeQB3nlAR8kkO X-Proofpoint-GUID: COuqWK2u7TyJRRumet1qeQB3nlAR8kkO X-Rspam-User: X-Rspamd-Server: rspam11 X-Rspamd-Queue-Id: AF087C0030 X-Stat-Signature: h887f4dam93e1rrbs7krwm1wa3scioxy Authentication-Results: imf28.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2021-07-09 header.b=Zdut2UGn; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b="g5U2q/Ki"; spf=none (imf28.hostedemail.com: domain of liam.howlett@oracle.com has no SPF policy when checking 205.220.165.32) smtp.mailfrom=liam.howlett@oracle.com; dmarc=pass (policy=none) header.from=oracle.com X-HE-Tag: 1651852038-616786 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: From: "Matthew Wilcox (Oracle)" Use the VMA iterator instead. Change the calling convention of __check_mem_type() to pass in the mm instead of the first vma in the range. Signed-off-by: Matthew Wilcox (Oracle) Signed-off-by: Liam R. Howlett Acked-by: Vlastimil Babka --- drivers/tee/optee/call.c | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/drivers/tee/optee/call.c b/drivers/tee/optee/call.c index bd49ec934060..d8115dcae6e7 100644 --- a/drivers/tee/optee/call.c +++ b/drivers/tee/optee/call.c @@ -342,15 +342,18 @@ static bool is_normal_memory(pgprot_t p) #endif } -static int __check_mem_type(struct vm_area_struct *vma, unsigned long end) +static int __check_mem_type(struct mm_struct *mm, unsigned long start, + unsigned long end) { - while (vma && is_normal_memory(vma->vm_page_prot)) { - if (vma->vm_end >= end) - return 0; - vma = vma->vm_next; + struct vm_area_struct *vma; + VMA_ITERATOR(vmi, mm, start); + + for_each_vma_range(vmi, vma, end) { + if (!is_normal_memory(vma->vm_page_prot)) + return -EINVAL; } - return -EINVAL; + return 0; } int optee_check_mem_type(unsigned long start, size_t num_pages) @@ -366,8 +369,7 @@ int optee_check_mem_type(unsigned long start, size_t num_pages) return 0; mmap_read_lock(mm); - rc = __check_mem_type(find_vma(mm, start), - start + num_pages * PAGE_SIZE); + rc = __check_mem_type(mm, start, start + num_pages * PAGE_SIZE); mmap_read_unlock(mm); return rc; From patchwork Wed May 4 01:13:57 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 12836643 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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4A4D6C433F5 for ; Wed, 4 May 2022 01:14:16 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 8447F8D000C; Tue, 3 May 2022 21:14:05 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 7A44C8D0003; Tue, 3 May 2022 21:14:05 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 5CE7F8D000C; Tue, 3 May 2022 21:14:05 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 486738D0003 for ; Tue, 3 May 2022 21:14:05 -0400 (EDT) Received: from smtpin29.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay11.hostedemail.com (Postfix) with ESMTP id 2BB1780301 for ; Wed, 4 May 2022 01:14:05 +0000 (UTC) X-FDA: 79426289250.29.9FB37C6 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by imf26.hostedemail.com (Postfix) with ESMTP id 57F88140080 for ; Wed, 4 May 2022 01:14:02 +0000 (UTC) Received: from pps.filterd (m0246627.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 243Kx7fk030616; Wed, 4 May 2022 01:14:03 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=Ukqb2QQQRBNcHyQVxqkE6N3xK8UmeIbkvheRC3rRcP0=; b=EbIewnU3krNC+Mhpc6u3X2tr0QKFEEE2SIt2StkSTYukTA/TxVEw3XbJ8OBfrQ/M92dg 6OmctvNXLfq8dUzrVnvTqxg5W/pukC7TZwZxdHthapIKDqswOsTv5nB+X08HlFD+Kib1 DQ/3Zf20TRXTPC1Yp0T0m8DTpa6gLLMNdoBgTfdHkE/G9EHbYCRdZxIqEDWi2SyvZSTj 3yNptoEf/OgGGdZqVRdw+SbV5c0K0dtEtVpg2aWm5oaMH5VnSKtGU4pjfCiFlGBa/eKr hG0jQejGMoFIBSxxHbHR69dUCW5F4o/VxZENlYRYdSjo6Vfl3w7oGwS0zFaBwL9ugPAq Ww== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3fruq0f61g-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:14:03 +0000 Received: from pps.filterd (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.16.1.2/8.16.1.2) with SMTP id 2441AtoC020100; Wed, 4 May 2022 01:14:01 GMT Received: from nam10-dm6-obe.outbound.protection.outlook.com (mail-dm6nam10lp2102.outbound.protection.outlook.com [104.47.58.102]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com with ESMTP id 3fruj922he-7 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:14:01 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=JtcSQHOmuEWH1GIm7O3zZC9u4V4q9IfS3YUPU04Vj39T/TU/mOUhC53aoqeuCf63WqXXcucCgIXaA/KRGQVpfpV1fFdYd1W5YVFx10l/IVu0/BUho9J/1zVNfBzAuODRwODLDMIE1xbxKTnE+XHpFsw2fdq4txPbeaHmoFnvRYHPhuob4XcM7EtmUcHOOX0lyvDAMoK5AY6eqqBf4MMCMs2vVMCT5MftpWKauEVo7+yh/ucqfGeu0k7mIgJBCLtpN+c9VSJ49bqgWd+8/lrVFLwsDHsQeKyyUOdgN0hhXC7kEHk24Tn/vfcZmhHirGg/HA9qs/xwTDegXogZntRa8A== 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=Ukqb2QQQRBNcHyQVxqkE6N3xK8UmeIbkvheRC3rRcP0=; b=Fzj/0n12LZOlvC8qyGYr9w8nHMKDKrHTOBhnGLt8PhP+LqowiyKryaxyjAARUpMhCJ3E86lVv/sXGDhlTYjL9wXWbsKH91Ik6/V3sts63zN29ALpqibbRqpADD4sd0+yKkgughLYEnHFar0zoscIXux+34e/a+OzCWvci7WxNx3RxtnAkueCZR13Nx1H/CTrxGdrEdLprHRGBjxGfDhhSkDNA1v4HXeyLWfrPiJ/VRwK///zLH4YhOSJlfK9pQ3f6qMpXwR2ufzHrWOg+Ym2SqRyFa6Vd6VknxPxeFtiyiQoQu2qDX8nDpJgRRcuua1sVMBw/5zelzs47Fdoji0AjA== 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=Ukqb2QQQRBNcHyQVxqkE6N3xK8UmeIbkvheRC3rRcP0=; b=P4ag5Hw25vcG/coYUOOqs68RyTWZ2rmPVpbPTnZEJKoHlVQA5TnfYR0rMmbKaQw1XaB+K3HRptB1WYsizYJ6EinRVcMCkUAQUlgeDTIzJpBQSfvi6Ky1CqRhVUMzc5D6CAp28UV6yo42OsAcN5SBbRvwfLy8JbZo1DxN0riAlGU= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by MN2PR10MB3728.namprd10.prod.outlook.com (2603:10b6:208:115::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5186.21; Wed, 4 May 2022 01:14:00 +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.5206.024; Wed, 4 May 2022 01:14:00 +0000 From: Liam Howlett To: "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton Subject: [PATCH v9 39/69] um: remove vma linked list walk Thread-Topic: [PATCH v9 39/69] um: remove vma linked list walk Thread-Index: AQHYX1Q6toeHZ2VVK0yguuIeRMA1YA== Date: Wed, 4 May 2022 01:13:57 +0000 Message-ID: <20220504011345.662299-24-Liam.Howlett@oracle.com> References: <20220504002554.654642-1-Liam.Howlett@oracle.com> <20220504011345.662299-1-Liam.Howlett@oracle.com> In-Reply-To: <20220504011345.662299-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: 25ddcb86-b8a5-4804-b6fa-08da2d6b5ef7 x-ms-traffictypediagnostic: MN2PR10MB3728:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: kurrRLUyv5lf95gHJnGtN+CJI5scg09TBeBaWiSytLzmtmV2TcLdp9BL7qCyXz8R+/VGIakeoVRzw5KVYgluauUg/oTitGbU7Pie/9j6vET1CkqtA8aPQ/dpU3TpbCAZEbvLGiE+o67bqFOWiw161BX9PhUb5Uy4xonMZg/Nm5aD5/Jn99x3yJe1ywrYdc2XzKZR0OhKyG3sAFbqz2IFIv0j1LFsAGQFdct0tIEL4VjCpSrnN9ppJp5EdzlUWUCn3t6Kdqy+ExNph19c1Yo88eEEzG6wemKX1qljYCI+Wy/LzyqRkPddTdq9FQR/kzXK7BY2NrNafJXAbd1QXo4ET0iH3ouGRdn8N5O65M5LLJLdl00OJkPAp16D6C3SRdSbPADWhKNXAP9480uVd0qm9rIPhbGs4yN/snM6E2mxUAt/7vDKLzekAT3412uMEEbqiaBuBKQudzPKkXqBKuJEmKWDIEnrwBlvZ9uvyfRVm0TKCBrBu9n9gPV5lkVQG9LREAWUAf2lj1+RqZ2npOiei26jGqH2dp8P75Zhk0FJUXY6u6kH+iv8TRSr10QL7A34lKdgm8NE1fhXSPYznMzFjatVX1VTPMgoxsHzmGAg5+DKuOgvdVKQIYl5tCvoKC9ywF67SO0aKyA8lCYqj6WljxxSFHaRRhjgqIH5lDYzj1EMSJFf6Q0UMUYMvyWSTi/dKl0zExq8n9VGYzg2KJrhBQ== 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)(71200400001)(508600001)(5660300002)(8936002)(6486002)(86362001)(26005)(6506007)(2616005)(6512007)(2906002)(83380400001)(44832011)(186003)(6666004)(66946007)(91956017)(76116006)(110136005)(38100700002)(38070700005)(36756003)(316002)(8676002)(66446008)(66556008)(64756008)(66476007)(122000001)(1076003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?dTz69PvASaM3AZFBLmPLVG0?= =?iso-8859-1?q?PGmoQkDwom3upCkoEOn7TmBNajfxZTMhO/xwCvCOdWl5iDgQejpQGj6zyXoN?= =?iso-8859-1?q?0b70TYS2MVBE8vyOq30hXkVUfK6oZCDVR8GLUkG+qvl4/Eku7CJnPDz1AHbV?= =?iso-8859-1?q?MuO3/yAXdilPBJ/sVYS2IlfVocR37bP8EvncgW9ixNO3bUHQG8iHsQO0vxep?= =?iso-8859-1?q?eloSUgaWRxfrjrlEE4YQlyK5w9eexBruY1vivy2TT/AR1YhP2YeXjvRpoO8L?= =?iso-8859-1?q?jST92BuCCSbNxTJYbjDY8Swds6XlzqGOW9a7aVwguAa7QiYeMSJoMUytw+Is?= =?iso-8859-1?q?tBLd5WY22SwWCKX7sLfYq174KnJuGTVbiYHLCx9sGEVei2dSI8MutLk1fCIB?= =?iso-8859-1?q?Jd2dE5RaCz+sC+YK6HfiP+clUrsFfYZ5ddMIBfxodBSz0i9yhBcDjrUmVqNV?= =?iso-8859-1?q?Tm6t+nRPVCNynvaVla7I8Qw8PYyIEWUmXmPi4dPjCmQ63qA+/uJRda5Dh5dn?= =?iso-8859-1?q?ozA9YOymnyob8VpIwaB5v+XMDWrqb6FAJ7n2NiG6zqb5zKB+xzoyC85nQQCv?= =?iso-8859-1?q?sPI/Fvw8f7qE23+hH5dmasjbiCjj9azx3uAsq/x8YrF1hcsX8NFkRryf/Lbl?= =?iso-8859-1?q?FF7CVtIiUYgR+/P8hrd7A39Y9oGfNcA+mJnFNinhzcprLTt8ctz6/AukkpuZ?= =?iso-8859-1?q?2DzjqQYfMGHs/cMcf/i0tp2Wr9Hqg8eaUXInuT6vpBeJtqE+bF4MZUtAiMKL?= =?iso-8859-1?q?EFHE32kj6pQegQz3PNjLRgVRLS3HruFCKamps/A1q7go3iiTKRQjFpPMzox4?= =?iso-8859-1?q?cH/wQM9mV+nYm/rK459PldZ1RlhoO9t9YeYS9qBbtiKhxVId83ivEffi+7hJ?= =?iso-8859-1?q?Wj5PvYC43VQ82IIABkbE8dY2whQ9IoOXiF1JqbjJ4hNaiG8U5i1OthV5BldA?= =?iso-8859-1?q?heoU6Ciknvf8sbLNlKw7T1XPE5aRJB1AoHkcicTHVnc221eoPzYTSpntyZ4F?= =?iso-8859-1?q?REJyhBsPt5QcrHflpUyM6QybzOHYaNGfR0z2WK0yBPYtQ2DVmy4YQwKKlYSA?= =?iso-8859-1?q?4v4/T1N2H02R9GYFQ6LrMFRCyJpah4UqewAO5Wzcf7h6UO5Ib5DkFi2X/T8m?= =?iso-8859-1?q?obEmJVgi27u9eJ696d2/T30rGeDHpUh6vVMKFQpoZeTZZ1Ve7w6uxepVkF+V?= =?iso-8859-1?q?4aSwSDish9yyctMprvxZGuXoTFdr7XXxM3oIqN6tyruRLTqpQGqVAIjbKJ6D?= =?iso-8859-1?q?OIavQy+O5xm54pMmlXj/BmFjSMdQb4Km8qDEdLWdgcBPbOTtq36ibBPWabJu?= =?iso-8859-1?q?NlVuLzeVdwneVm9i0TiI0i7d53wmzSeXRGxE3r6h2I4XWQntT9vHKrVYKmUn?= =?iso-8859-1?q?Wjn5vq/Ovz+lptpHluuM8B4Mzz/SBEk4QxNg4iiem0Eg+QEobmmI5jtcwRr3?= =?iso-8859-1?q?4NAVa2dMQ23e/zEzUh6s9yqzGFjcXqjTpGXtt1c0ZDReWYk0dSEKA8pHT6HY?= =?iso-8859-1?q?rnFtzEl809ajVIoHt/3tpRciLwBhIyYZkNHIHGTjhDQ1+KlrDZT2yio5oqAg?= =?iso-8859-1?q?F8e1Xn4M4wgngLar6MwJM/OikmNzMIbIccVpXDF6V0sQkPGgfWkVwd6G8mRO?= =?iso-8859-1?q?W9ezZw4FreXDFfiC0RcikjrjqbeG1vMxuXS/P+igoC6lfB0Zc+Sb6VTutB66?= =?iso-8859-1?q?ArnVaO5TDUrD/kVR45DwuHoRvl5HEHEdDKBWKh61hzUmbR81Y125Tdc0bcXc?= =?iso-8859-1?q?fYBxGSps9b4aaaN8/fj9AZpWpJztcHX9+B0WZ+yd7EtIkrrEGhnMcxRWxRKH?= =?iso-8859-1?q?9t592T38=3D?= 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: 25ddcb86-b8a5-4804-b6fa-08da2d6b5ef7 X-MS-Exchange-CrossTenant-originalarrivaltime: 04 May 2022 01:13:57.9235 (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: D8nxM0o2SsUn01KTOAUuHI7UP7wgr1F8ikzsfAkOL/gJgG8KNoNQY1nLiwsjSUc1GeJVec34v/DPNijIHuzXmQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR10MB3728 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.486,18.0.858 definitions=2022-05-03_10:2022-05-02,2022-05-03 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 mlxscore=0 adultscore=0 bulkscore=0 suspectscore=0 mlxlogscore=999 malwarescore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2205040006 X-Proofpoint-ORIG-GUID: QTfzMvGFZ5P9v75dLTIptlXYkdmaz8sC X-Proofpoint-GUID: QTfzMvGFZ5P9v75dLTIptlXYkdmaz8sC Authentication-Results: imf26.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2021-07-09 header.b=EbIewnU3; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=P4ag5Hw2; spf=none (imf26.hostedemail.com: domain of liam.howlett@oracle.com has no SPF policy when checking 205.220.165.32) smtp.mailfrom=liam.howlett@oracle.com; dmarc=pass (policy=none) header.from=oracle.com X-Rspam-User: X-Rspamd-Server: rspam05 X-Rspamd-Queue-Id: 57F88140080 X-Stat-Signature: 79pckjquw63jpydgec6c5zqh5q8i718s X-HE-Tag: 1651626842-263383 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: From: "Matthew Wilcox (Oracle)" Use the VMA iterator instead. Signed-off-by: Matthew Wilcox (Oracle) Signed-off-by: Liam R. Howlett --- arch/um/kernel/tlb.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/arch/um/kernel/tlb.c b/arch/um/kernel/tlb.c index bc38f79ca3a3..ad449173a1a1 100644 --- a/arch/um/kernel/tlb.c +++ b/arch/um/kernel/tlb.c @@ -584,21 +584,19 @@ void flush_tlb_mm_range(struct mm_struct *mm, unsigned long start, void flush_tlb_mm(struct mm_struct *mm) { - struct vm_area_struct *vma = mm->mmap; + struct vm_area_struct *vma; + VMA_ITERATOR(vmi, mm, 0); - while (vma != NULL) { + for_each_vma(vmi, vma) fix_range(mm, vma->vm_start, vma->vm_end, 0); - vma = vma->vm_next; - } } void force_flush_all(void) { struct mm_struct *mm = current->mm; - struct vm_area_struct *vma = mm->mmap; + struct vm_area_struct *vma; + VMA_ITERATOR(vmi, mm, 0); - while (vma != NULL) { + for_each_vma(vmi, vma) fix_range(mm, vma->vm_start, vma->vm_end, 1); - vma = vma->vm_next; - } } From patchwork Wed May 4 01:13:58 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 12836644 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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 04DFBC4332F for ; Wed, 4 May 2022 01:14:18 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 624308D000D; Tue, 3 May 2022 21:14:06 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 5AB288D0003; Tue, 3 May 2022 21:14:06 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 4223D8D000D; Tue, 3 May 2022 21:14:06 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 2E5FF8D0003 for ; Tue, 3 May 2022 21:14:06 -0400 (EDT) Received: from smtpin12.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay13.hostedemail.com (Postfix) with ESMTP id 14DB8601F2 for ; Wed, 4 May 2022 01:14:06 +0000 (UTC) X-FDA: 79426289292.12.B11A156 Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by imf27.hostedemail.com (Postfix) with ESMTP id A023040078 for ; Wed, 4 May 2022 01:14:03 +0000 (UTC) Received: from pps.filterd (m0246627.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 243KnGv4029440; Wed, 4 May 2022 01:14:04 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=h3Ms/12Gbt4y0rVLFx+f+g4wA/cJ/I2AJUkj8AqbHTM=; b=aX7wMV7VlYe42R3q+ItsKo4x49TLyAS4Zjfc9mvg1JjKcg9sOjaU+Qk+z+XWQVGnEcO6 1SPLZ0doDelRG3z/UOvMoKCikOfYvQO1lEl/9PIe9sqVaf6xRKKPRZXdtW+ppBpcbyx7 5r/kMSLWHInTqBwmEIg7UKOjoizsNlrKsRapEY+72D6WSEtXkP8hHJeZ5y/0GxtHvGET lT29DFM7ARf/AvfId9I0SVn80u8sGaNqvH+ph481Ca60c1ZMOIU9kUnH4UxfsSl/nPdr dgL2DwUIJTKsY2i1te/P6bvP/gKSr8t9tRS/Jo16vEuO5JgWMrs0NU4Y9SFkZH4A+CYB yg== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3fruq0f61k-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:14:04 +0000 Received: from pps.filterd (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.16.1.2/8.16.1.2) with SMTP id 2441B1bW020210; Wed, 4 May 2022 01:14:02 GMT Received: from nam10-dm6-obe.outbound.protection.outlook.com (mail-dm6nam10lp2108.outbound.protection.outlook.com [104.47.58.108]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com with ESMTP id 3fruj922j7-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:14:02 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=A2NvSNbgFuHCC40EiEMbG7wjBAE0aeQeSPNqako+5c+t77WKhGHtcW2KThPiKvAQxwrjPFFB4C+K+oYvvFOCTPlPlTw3nqFZd9Na/0znfIlISk2j0JJkukrazOikiaaXEpNk40RKnKLd0aSzHfGTiETWw6i6sN5AAVRPc1Y96pPuQKPQJzr+1kiomPwzGvoUqGBc14K9va9iBRhjdVJJv13dLw33x2BG8L4uCb1jPzv970PRpKMEXKQlWvNAWPHX7bweW9QsG6vgc/3eJSGc1I3PrO4ziUsOmkUFos+rVos1qklclAswZaomEa2QhZPiTTHyQfOg2ABBBnq9er+Qag== 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=h3Ms/12Gbt4y0rVLFx+f+g4wA/cJ/I2AJUkj8AqbHTM=; b=fj07MeMvMtWDwPrrWXOSoOTdmOi0ZmegDB/AamwrwLXGFjetu4XuHesd2kCFlBFkVDWGWCO6y1sxATkXqpiED+hcPZQk1f9woZAOXZggwYPD/E1nS7A9x6gfqDCdcr3Ds/eRreizN3M2c1IwXA5d2RxZ63LqnKi0Esz36Niabj3O5o/1XLHEErmEGIAri4GvFqLc7OigCthIN26tiI2ulJiNJU0s4gGyiDJpH/lAcV5KiLZBgfR2rvPexpyb0nijq24PCkJpMNiKiH5txvj+KpClto8n2czT2PURkRgLTFl+ht3lmoDZizUHE4XaGLhKkjr9PqpLboxRKsz4PUs3NA== 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=h3Ms/12Gbt4y0rVLFx+f+g4wA/cJ/I2AJUkj8AqbHTM=; b=LvGFrlitP+Hm23Ec5Vb/2sbODiUrFM2V2EsLLlCStffUPHTnkQRtg8NMbc8QS0TnVBvESBbQ/ONfBso3HFTY/IV461uIxL9RZbKh1XYM4CQ+qEJ39QOjfI2wJ0RKeGgbEpfCW2bKLwpgZRLKTkAhsVxSUMKHE6VGqjE8AAV3nfw= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by MN2PR10MB3728.namprd10.prod.outlook.com (2603:10b6:208:115::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5186.21; Wed, 4 May 2022 01:14:01 +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.5206.024; Wed, 4 May 2022 01:14:01 +0000 From: Liam Howlett To: "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton Subject: [PATCH v9 40/69] coredump: remove vma linked list walk Thread-Topic: [PATCH v9 40/69] coredump: remove vma linked list walk Thread-Index: AQHYX1Q7wGmcIoXHn0iBSV5d6D7C9w== Date: Wed, 4 May 2022 01:13:58 +0000 Message-ID: <20220504011345.662299-25-Liam.Howlett@oracle.com> References: <20220504002554.654642-1-Liam.Howlett@oracle.com> <20220504011345.662299-1-Liam.Howlett@oracle.com> In-Reply-To: <20220504011345.662299-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: 1bff78b5-69e8-4ca0-4ebc-08da2d6b5f52 x-ms-traffictypediagnostic: MN2PR10MB3728:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: sD/tgTyGYx5OPyGfOmAgZouW3r3PEubd9AmTt2cvuC4onq1unGdI7WxD4fmU/bdKUSlMDlyVK4BAEbV58ER8hImmaW6xy4WZvuP9c1FipJxWY5WCKhnTtqybOoNyfxt+hRfVi89RFRwZkXjfIGx+wTV5DKmKmsg09il1YgjmQI3KrF9fP3o92Ox4HrAfZZAx/EBas2batg88lrsESKqSIhu0scLICQFgc538IljvIoTuwH1/JBWKNkXMkj/rUNR3RpAOFWHMXA8SUOrZaXKoIr11nOVQXdBJvGX4dKsU2rnDeM7yfEok1SgJHs1U2FPYKxWPy0GxVOCwRe8yNwOXhlTn30MbA6UN2OmZawTPVAzCM728qR/3PYVMKzUMrse8DwwHcJ6GPBgQu9QtsASZ2iqpm5x2xpd9qIjdqXqqtYcuaTuyhqAtLdisxZDj6f+lAQ08RsssYWX2+7f4RUVH+XWJ3QOKxOJJenjxiacvgGYCyvUj5FFD48FUTsafNiRmRZTMDteFlQ05doiNZnMqEbVJ19Qm94OBZDEkt3jvGHlospTyKL+C2AqLAJ1tZPF0tikDqNNlisQtOLJSybeNhc1zu8ZQq9rvK11h3ARyYMh5Y7ZIwLf0LoNOAq0pTeO+YHDZO20hp2jWut0vvIS7Kd5U+kFn+QCsQoDPOotrSC4tyGhvd6zaowoTB1HFUPCEm7SwgAv5GMKhwYCdfpJWig== 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)(71200400001)(508600001)(5660300002)(8936002)(6486002)(86362001)(26005)(6506007)(2616005)(6512007)(2906002)(83380400001)(44832011)(186003)(6666004)(66946007)(91956017)(76116006)(110136005)(38100700002)(38070700005)(36756003)(316002)(8676002)(66446008)(66556008)(64756008)(66476007)(122000001)(1076003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?lDhGuoJ+RLOARIW17Xd807O?= =?iso-8859-1?q?USO496epy6x58sajZ8Pfi4ah00HSsQwtaWVWkvkZwunkwl7XtW8JMnsJ9Pwb?= =?iso-8859-1?q?xMH2VRvO0DKC+jpD/X6D8rKuYFUVaGRdYbEqOOB6UljBooLdDMuS6OyxP/iO?= =?iso-8859-1?q?s3PSmGK2KKZBR+1rgFnX8L0dSmDgXe8eHQdrOimbq9ugbT75dp0a/UsrcRFd?= =?iso-8859-1?q?lEadka9jCbvPv73CLOL89TlJ7B7HaipWf60CEt9BVUocGq/d+TwCgrjOEvTu?= =?iso-8859-1?q?uRBcDKdPqIpfN0n8JlcLtPpg260snNqHRUBhUSgL2KZXSfgrjpMRd0+WG088?= =?iso-8859-1?q?H/WknEIzE6s6fZOCJyOp85j4glCC0we2C13xDuh13Y2fSmFnNAqtOJtdzgvH?= =?iso-8859-1?q?HoNTgUB41Xt9Rhhif2th0vGe401xZprLr7PDVMBcrZTpFKkTWhweVQjUblAY?= =?iso-8859-1?q?7ttfB1qAMkMrD6bFtg/5TDBpro2gZkNAKX4ftkrQDdy0CznCTXtuAUqL/wlk?= =?iso-8859-1?q?QkcS06EzgKkSEyZ/44IfpgBUbSSo6N/ehXlqIMrdjF4qvrCneSZtUwTcV2us?= =?iso-8859-1?q?Las9rFvrsQxupBNbiYjfh3Im391CtIUqnrfbxRq3eGf4jfHUXFFhLmXxoQPO?= =?iso-8859-1?q?eRYJdmL4eaaHPOgD2DGfJ5xVgzrmamKQ3XNMBOcv/IrlTfEUik5DynKTjTfP?= =?iso-8859-1?q?uimdVF6WGaz4y7nfcR4ituPdIpqeGlMuzyXVMk/zJjDkPFlz3m/WLWqNCHcN?= =?iso-8859-1?q?3eoDFhigErcucDfC4YHvyXC41OQJBmO08y31TVZQvv5aCxNN7hheEAcRe5at?= =?iso-8859-1?q?YMPPvXPmtLO5Fe9T5Pz+6zLKkPtwTIQXdC5Ss3vJ2PEmHqg/u/3Iw47iTsIo?= =?iso-8859-1?q?jjYsFMCeiNUhaYkJ1dYntSq9ct0hUJKDgWIf+3hedlOw9Ro76+OZP7a3ssKa?= =?iso-8859-1?q?oOVSUA2zMhJWT09uUh3Hum54xyEUHWvK73h00VmR0S60N1xJ+que6TpzpYdp?= =?iso-8859-1?q?6Ax3GxsDB69TXfExSiyLYTOnsSgIN0WVXLnxG0YpUcG6HYVOFB8BJqUAHtv3?= =?iso-8859-1?q?rjof+X1Ae6VyBl7vpse0YSISgRyptLx7HCulBzkRbTyr/in7XoD8WldlKFUB?= =?iso-8859-1?q?x+3ie9qOSsXE5xUVw5VzfpnhrRQDzILIS7hMkISRjZzm+xVndmtE8x7NESMW?= =?iso-8859-1?q?iFnWMiW0P0zRBbEPcZ+gfVpRInsY4W+acZ54HhG3nXSzCDtigaZx5iFPh+Fu?= =?iso-8859-1?q?2a7Y4tB+mt3XgEiz3QqK3JCdhgN6AEC9ZqyZ0QvhvSoIXyxj0yQaa1Jqje1G?= =?iso-8859-1?q?T36qmuf5IY1WjtcfTRbbb059JTjYwN1guzSVCyx1wLpg2F3VPznUnIHfMCmi?= =?iso-8859-1?q?Z9nEESvAdk7RLQQSIBia9DAFiFLEvNMxdJv5g3BkX3e9vLiurporXamvz+xY?= =?iso-8859-1?q?9IdirSSVazuMGc+mAOyWSoVtPFnxkI+h8uJcB+mVkvn5qJ+xxdR+DyzLY6na?= =?iso-8859-1?q?VpFi/1Sw5bnpcDpy/KcnRdkuCjJoDLVG2H7vwHNc0I5rLiMpBuc64iasHxnW?= =?iso-8859-1?q?xMBl+hGEqYdCltrhmnYwnUxUqqJthnX+od081BwfvqsR/cpeDe9u0KcET5RG?= =?iso-8859-1?q?W9BibyQIh6ohJbk67dZH50tQnqY98RQo/85gsmQ52VNxdIk87TbXQBWokK3f?= =?iso-8859-1?q?dqv/4WcwlozJs8QI+4564454UWqPAhW5xptgCYpX7xf1j3aDEV7bMB69PiAZ?= =?iso-8859-1?q?5pGR1eDrgdKywZ9VeG87ycwpd6X3ZJ+hbnKv4m4FRplKSwFg2mElpLmK1WOw?= =?iso-8859-1?q?RqyMuY5E=3D?= 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: 1bff78b5-69e8-4ca0-4ebc-08da2d6b5f52 X-MS-Exchange-CrossTenant-originalarrivaltime: 04 May 2022 01:13:58.2828 (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: kcm+dF1e0icaovIlNnzSFPnmLIaeN9tUyasbWBaGHqIb9ePkJyVYyUrPTSOVra0qwHVRd27m86L1YUJVtLglGQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR10MB3728 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.486,18.0.858 definitions=2022-05-03_10:2022-05-02,2022-05-03 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 mlxscore=0 adultscore=0 bulkscore=0 suspectscore=0 mlxlogscore=999 malwarescore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2205040006 X-Proofpoint-ORIG-GUID: ESaEWV5c8WppviWvifZDnT46YbQvN7yp X-Proofpoint-GUID: ESaEWV5c8WppviWvifZDnT46YbQvN7yp X-Rspamd-Queue-Id: A023040078 X-Stat-Signature: 7ig5qodb85r1nwddi1zchini91u6wkxp X-Rspam-User: Authentication-Results: imf27.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2021-07-09 header.b=aX7wMV7V; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=LvGFrlit; spf=none (imf27.hostedemail.com: domain of liam.howlett@oracle.com has no SPF policy when checking 205.220.165.32) smtp.mailfrom=liam.howlett@oracle.com; dmarc=pass (policy=none) header.from=oracle.com X-Rspamd-Server: rspam09 X-HE-Tag: 1651626843-656481 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: From: "Matthew Wilcox (Oracle)" Use the Maple Tree iterator instead. This is too complicated for the VMA iterator to handle, so let's open-code it for now. If this turns out to be a common pattern, we can migrate it to common code. Signed-off-by: Matthew Wilcox (Oracle) Signed-off-by: Liam R. Howlett --- fs/coredump.c | 34 ++++++++++++---------------------- 1 file changed, 12 insertions(+), 22 deletions(-) diff --git a/fs/coredump.c b/fs/coredump.c index ebc43f960b64..3a0022c1ca36 100644 --- a/fs/coredump.c +++ b/fs/coredump.c @@ -1072,30 +1072,20 @@ static unsigned long vma_dump_size(struct vm_area_struct *vma, return vma->vm_end - vma->vm_start; } -static struct vm_area_struct *first_vma(struct task_struct *tsk, - struct vm_area_struct *gate_vma) -{ - struct vm_area_struct *ret = tsk->mm->mmap; - - if (ret) - return ret; - return gate_vma; -} - /* * Helper function for iterating across a vma list. It ensures that the caller * will visit `gate_vma' prior to terminating the search. */ -static struct vm_area_struct *next_vma(struct vm_area_struct *this_vma, +static struct vm_area_struct *coredump_next_vma(struct ma_state *mas, + struct vm_area_struct *vma, struct vm_area_struct *gate_vma) { - struct vm_area_struct *ret; - - ret = this_vma->vm_next; - if (ret) - return ret; - if (this_vma == gate_vma) + if (gate_vma && (vma == gate_vma)) return NULL; + + vma = mas_next(mas, ULONG_MAX); + if (vma) + return vma; return gate_vma; } @@ -1119,9 +1109,10 @@ static void free_vma_snapshot(struct coredump_params *cprm) */ static bool dump_vma_snapshot(struct coredump_params *cprm) { - struct vm_area_struct *vma, *gate_vma; + struct vm_area_struct *gate_vma, *vma = NULL; struct mm_struct *mm = current->mm; - int i; + MA_STATE(mas, &mm->mm_mt, 0, 0); + int i = 0; /* * Once the stack expansion code is fixed to not change VMA bounds @@ -1141,8 +1132,7 @@ static bool dump_vma_snapshot(struct coredump_params *cprm) return false; } - for (i = 0, vma = first_vma(current, gate_vma); vma != NULL; - vma = next_vma(vma, gate_vma), i++) { + while ((vma = coredump_next_vma(&mas, vma, gate_vma)) != NULL) { struct core_vma_metadata *m = cprm->vma_meta + i; m->start = vma->vm_start; @@ -1150,10 +1140,10 @@ static bool dump_vma_snapshot(struct coredump_params *cprm) m->flags = vma->vm_flags; m->dump_size = vma_dump_size(vma, cprm->mm_flags); m->pgoff = vma->vm_pgoff; - m->file = vma->vm_file; if (m->file) get_file(m->file); + i++; } mmap_write_unlock(mm); From patchwork Wed May 4 01:13:58 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 12838018 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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 45492C433F5 for ; Wed, 4 May 2022 14:49:08 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 6FD966B0071; Wed, 4 May 2022 10:49:07 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 6860F6B0073; Wed, 4 May 2022 10:49:07 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 4B35C6B0074; Wed, 4 May 2022 10:49:07 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 3AF3F6B0071 for ; Wed, 4 May 2022 10:49:07 -0400 (EDT) Received: from smtpin19.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 0F17A2B083 for ; Wed, 4 May 2022 14:49:07 +0000 (UTC) X-FDA: 79428343134.19.0E25748 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by imf06.hostedemail.com (Postfix) with ESMTP id 7F64C180094 for ; Wed, 4 May 2022 14:49:04 +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 243Li9UZ025194; Wed, 4 May 2022 01:14:06 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=2aBPMD8xyQDIcseUFq99nGOFIefULKFLFSEoKwAb2iw=; b=Y5q4bYW4b6+MtbroB0a2divG6c01MJ+LkYUc0DsKTjXI7yuDzbCpT1iZMxj273EAeMMz 5HTGAnSMmTbZzdIxNkZf+upRAgH9Zj/TRugToGuWJIXKBQAnHz2oAIdMzpQUw9EGAbkf yCJWXZ90YA/1B8KiOtsOdQqu4alP8VcXGTEVm+nPkf2h2nlDsu6TJ7ZTlFFZj7jZhmjb j+fZN3mpZwmX9KJncyNLkm5A47p7ZQxTdNiVRQm4hohjv+d39YGOaywgYpK32WPq8aFe C5/xRnky320eMPJqMFfhpXT9IJDdWJepDKZDOOgBx3yqs889PriwSYGA/m52qJMtA0uh 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 3fruw2f6bm-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:14:05 +0000 Received: from pps.filterd (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.16.1.2/8.16.1.2) with SMTP id 2441ArPw020035; Wed, 4 May 2022 01:14:05 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2048.outbound.protection.outlook.com [104.47.66.48]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com with ESMTP id 3fruj922jf-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:14:05 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jihK/vJdHI0zYFUJ5lSunjw0/xiIY5jesyumlBfIG/cYJXfa9vegwQ9tzRgWI6E1BOzuqtbxRZMYIL9aL0xxovxhHjtaWnC3cUgjsfKqJY6GhdMovHevCGZH1HbJ+OChCK5RUlhiFK6gqeIIbzK5ZNYiWICaxobEeS+ZcOxZVilXKlXs4t4AAcn5irvjgh23pLsrkuSmNLPw42M4Shz8ya6Du4nS7I2as7VBZr2m7RgZjcKglM6jBe+QNeY55TFvSdniDYniCDxETnv8t5TS9LPlcvKVlnLBEwwNVJqCRCri1mG0bkit/6OmHNeDzux15NmA5A52XjhiR4CLJpn5wQ== 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=2aBPMD8xyQDIcseUFq99nGOFIefULKFLFSEoKwAb2iw=; b=VHaHBUTlc714Mt3CQIHHROARQYO2BGln3sQMz/3y7mso25ymoW5dddGHoou+EfTc/AcCWfbjGWC2o3lmF+h9naQ9Px/WnOQirHbGHYGXF4l6ovVH0Tt+Z7Ls0TEzmMsDA01BiKz8WNnPaz6fR6TMlXRJ6+Nlj3a1pByB/zCFRTi/eiAFdVLufk0SMsiB290r1JYEmmc78/urEHZhyeqeUmUDDYvMZVr8YUkoYWFGYA+hWP17w3P9ol1LcHr0KiV4oIe7nQFxZQMJ59k16t52w3wBR45cPQr+NvMmmljzMypGz7La/KO67yVUewbL/7ag8aEX+P1GUDZh0mTizvga0w== 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=2aBPMD8xyQDIcseUFq99nGOFIefULKFLFSEoKwAb2iw=; b=o0ITxx9xcb/LNHHuljZRe4fR+ZKEKxXF3cLbWyMeHbcZzQFy7hDrii7gRF1DWDEqv4h26ExXOm0Zb1updjNd+Lk5QcG8J9Nqf+Hf51lSmrc+cch14hsKeq7ZjfJLwkctB+ZmVDn3aaeNAsIwWX1KT5SUmA6TFBxBmo8Njon2AyE= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by MN2PR10MB3728.namprd10.prod.outlook.com (2603:10b6:208:115::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5186.21; Wed, 4 May 2022 01:14:01 +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.5206.024; Wed, 4 May 2022 01:14:01 +0000 From: Liam Howlett To: "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton Subject: [PATCH v9 41/69] exec: use VMA iterator instead of linked list Thread-Topic: [PATCH v9 41/69] exec: use VMA iterator instead of linked list Thread-Index: AQHYX1Q7LXfSeb614U2YVdRUL4gOFA== Date: Wed, 4 May 2022 01:13:58 +0000 Message-ID: <20220504011345.662299-26-Liam.Howlett@oracle.com> References: <20220504002554.654642-1-Liam.Howlett@oracle.com> <20220504011345.662299-1-Liam.Howlett@oracle.com> In-Reply-To: <20220504011345.662299-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: 4771184a-cca3-4f98-d409-08da2d6b5f99 x-ms-traffictypediagnostic: MN2PR10MB3728:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: EzX7NzeNqr5E1rgV2khCZxLS41KMv8OZzb7EkUKEmhQTq+yl2FYQ5GpohbOCsb1MoPiFhUMEVwXMnB7F2YCrUAPFpEcxvZqxzZAnwp5vKSZN1zDWHG2MFmi2CwmtKYoeszRaVl5vfO3SjjTnwiNzEzPWc+VEiVcgiA0Pbsy29HEQYoi78ufCNlttIZJXhSSuob73v7Qb1RDIx2Kx0CFk0RNJdPyuy8Z/2QWynRDUGzGYJ8zhpUwl9+fi+v5PomvoCr0MN4yeNq4/2q/KUUyKm8gn5+Wp1rHmIUaANmenu4e69mAfMSjcFWCYPrguLxuSjYJ5PkI9iMJIu5TgkaM1PYCOu3IKEIaTm2c+s6guDq5io/+hcvsvt8aH4WSlO/ERk0v73ZaxSOIHgH+OtzSCp2Oq31YfkKWenD4nZcZRL3hlK77OCBE3aJH9Gk8KU7fQt6Jwk/SQqnXe0oGl/jBKdqqnU7p8jR7Y2I94gdJpPtg1qlZ5sZB9bpndSeFfCiDBYN4V/Nx63nBC5qLxQGQbQ+tDrOHbv35dhdeNdOZMuxt2Iq5kl7N6MFhURckVwSXxcJrqDrGoYF24pGZGpX8HZOzbnTnIlSCmE+0lnOBMkMqRlNAXLSy6PDOlR18w3yJ7i6UWsFqvovCO1BSaUGOItlLfleakQD/761Ujhu29XG8SSUGO6wR0Hopsr+P/JlFp+RZOeVRqQNy+DeCB5/Suqg== 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)(71200400001)(508600001)(5660300002)(8936002)(6486002)(86362001)(26005)(6506007)(2616005)(6512007)(2906002)(83380400001)(44832011)(186003)(6666004)(66946007)(91956017)(76116006)(110136005)(38100700002)(38070700005)(36756003)(316002)(8676002)(66446008)(66556008)(64756008)(66476007)(122000001)(1076003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?SSTYTQuFcoWy9iEh8aAXwCc?= =?iso-8859-1?q?GR/XdpY1K17K0FvFQVByPP+x3sM0D3C+Jy2nCkWUFzTatWAoNEPh1rVESU7M?= =?iso-8859-1?q?Pf386tVfeDIV734UUMsjmCn/z4Jve45AejNHVl/gB+tSl78RTzmRte/pn7vr?= =?iso-8859-1?q?3dsnY2ss2viKSJ/KMtER9YHrgES4TsFMgAqU3eIEmrVp7jDm5GTDkwphiwtZ?= =?iso-8859-1?q?Li7K8HTppKo8wuiom0diINjPAU8+AgGgvrUp/6XHtHLNsL/X35KXdGskt0lJ?= =?iso-8859-1?q?Kegil/xyeX3QEiqjA3Uf+GZ/Wqw1VsHYZv8Viy6TzuWu0ZAWvg/Hslbck0bW?= =?iso-8859-1?q?ilVGjwHHFn8lC+4RAT9joclQfxW8H2/5Gw9wxtKxwEscnLAvqTtcYOyo8GEX?= =?iso-8859-1?q?X52LFthULDDyK2bsoSkkkEpIwPZ+nk91cD80ZeM07X4/ce9pObLDNRVnwTxB?= =?iso-8859-1?q?rHtyXhvGmJkXY76bgdSNicswnZ8vJFGAQScTiH7rYHO4q7rSqk+YbFwHhdmD?= =?iso-8859-1?q?EeGGFMEg4ZNIyhuMSl2a/LLu6GAYnWvYDL2SVh9F27VuYXXZXszjfiu/ubju?= =?iso-8859-1?q?GbaY90sUkJvd/udjmlMPw5VO2vDbD3OP/7nuUsyuL6djZKTFSNwn04k80agN?= =?iso-8859-1?q?eiL8rAuypRBd4gyHuAWJX+DqSzK/LExPOkfkMMmZy+WfPHw2qSfNQROGwrYX?= =?iso-8859-1?q?jI0VGImftaqdwUi6VrfSdk6nB0TfU2PlkNI8dk92sXenjde3Ihx2iOnInuQx?= =?iso-8859-1?q?k8O1l3ONfzAIh3kH7XNHk+9onuAtRwubzFDKT7glxs8+Xy+M5OnMNVMp7CS7?= =?iso-8859-1?q?GGZ0zxB+nXmyHhYJdTWlmYjVWRc4qiqbdXWkMXHcdiTXC4yDTdPJ+f129DVj?= =?iso-8859-1?q?HsB2oykBu0+SMsVcvlvMy24vaKgY3tEv6i0xWSmgdCBCatNy7mF5xtr9vrI2?= =?iso-8859-1?q?7hknVq/AOJLvNPNJXcvzVo6Twvt/ictepr6tDCClVWDdWFevMfgscLlw+Q6c?= =?iso-8859-1?q?Pvxe/h7O4z08nri5bYof9JWB1XV3DuAnxiF88EsZ97O3QCvUicViaYQDYyoh?= =?iso-8859-1?q?UhlaMAESBI6l+R6uLDThIhaLpUX1js27pcPgfsavh88rZqITNSI4jv6H06Cn?= =?iso-8859-1?q?omowtdKCT336AH+I/RwX8u/kp+EzYUNV38gPJjasTvubcf/LSNXJFBVQZMK2?= =?iso-8859-1?q?qTXwWuETtiudSIgHsjIks+RP9O1KWQrBOkBzmXAefEqLpB86niEI24RZgcfU?= =?iso-8859-1?q?JZ6jHNrK/uqCrQ0YG/imfWXOrMfkTyiZRWzNJoKHu5292b/+s1v7gGZB5vvJ?= =?iso-8859-1?q?MyrFqL6/ptNBUuo0Lre1FKyyoDJlt3GYgVZkWEcg9ZC0YoDhzBiO9uHDYis6?= =?iso-8859-1?q?/VfJLQOb/R6cd12bULjEQTPgh5Qvg15IwrCYaW7xUgSFC9YFCQfTSpPfIaZ7?= =?iso-8859-1?q?+kSo7ihK3DC0RHjsm8elkRuez0gAU3m1wpKepTDUVhZcOkCeo3dvFxhtQGG6?= =?iso-8859-1?q?RAxNbdhq1IH3FIL/vJSCQ3zsEYeZ9OkxVTROY7KYDC6jgHp/L34a6OX4XRyj?= =?iso-8859-1?q?H8FAslLHIbRjwiC2SZuHHBFbU/OGiiC17ccdzut6gJTsHgLPddw0GL+Iz6Px?= =?iso-8859-1?q?bC6kVuklCgC+s+eMg8SsorP2EDUSJoIaiglAAV8gThnVAPD8+7WrqmUqgVaK?= =?iso-8859-1?q?SYnnEepaeCxigm1N5tTOVl1sox+aGZWVDTw4P1R5Pi8zNgyh2+sxITc+zlKj?= =?iso-8859-1?q?bYu5eqfCLr8UTCHfoNzrdm5seSYSnxCrof+dmQyTBj5Wil5g+wIJ/D8nSeVs?= =?iso-8859-1?q?0sCrlF2w=3D?= 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: 4771184a-cca3-4f98-d409-08da2d6b5f99 X-MS-Exchange-CrossTenant-originalarrivaltime: 04 May 2022 01:13:58.5797 (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: yx9pxNhgY0Sb50PwXqcWDQU8gOofgto4larBW7hfE/VB1NNj+rVV71DNGV6cxQMSDW41rJWNe+47SQXkJ9j/XA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR10MB3728 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.486,18.0.858 definitions=2022-05-03_10:2022-05-02,2022-05-03 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 mlxscore=0 adultscore=0 bulkscore=0 suspectscore=0 mlxlogscore=999 malwarescore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2205040006 X-Proofpoint-GUID: k1f0wEe3Y73DI9pHBr5zN7Oftk4GSbH1 X-Proofpoint-ORIG-GUID: k1f0wEe3Y73DI9pHBr5zN7Oftk4GSbH1 X-Rspam-User: X-Rspamd-Server: rspam11 X-Rspamd-Queue-Id: 7F64C180094 X-Stat-Signature: f98e9s8weo9xmatehu1jhsomkknmqo65 Authentication-Results: imf06.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2021-07-09 header.b=Y5q4bYW4; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=o0ITxx9x; spf=none (imf06.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-HE-Tag: 1651675744-33761 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: From: "Matthew Wilcox (Oracle)" Remove a use of the vm_next list by doing the initial lookup with the VMA iterator and then using it to find the next entry. Signed-off-by: Matthew Wilcox (Oracle) Signed-off-by: Liam R. Howlett --- fs/exec.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/fs/exec.c b/fs/exec.c index 14e7278a1ab8..b5e3bfd52b53 100644 --- a/fs/exec.c +++ b/fs/exec.c @@ -686,6 +686,8 @@ static int shift_arg_pages(struct vm_area_struct *vma, unsigned long shift) unsigned long length = old_end - old_start; unsigned long new_start = old_start - shift; unsigned long new_end = old_end - shift; + VMA_ITERATOR(vmi, mm, new_start); + struct vm_area_struct *next; struct mmu_gather tlb; BUG_ON(new_start > new_end); @@ -694,7 +696,7 @@ static int shift_arg_pages(struct vm_area_struct *vma, unsigned long shift) * ensure there are no vmas between where we want to go * and where we are */ - if (vma != find_vma(mm, new_start)) + if (vma != vma_next(&vmi)) return -EFAULT; /* @@ -713,12 +715,13 @@ static int shift_arg_pages(struct vm_area_struct *vma, unsigned long shift) lru_add_drain(); tlb_gather_mmu(&tlb, mm); + next = vma_next(&vmi); if (new_end > old_start) { /* * when the old and new regions overlap clear from new_end. */ free_pgd_range(&tlb, new_end, old_end, new_end, - vma->vm_next ? vma->vm_next->vm_start : USER_PGTABLES_CEILING); + next ? next->vm_start : USER_PGTABLES_CEILING); } else { /* * otherwise, clean from old_start; this is done to not touch @@ -727,7 +730,7 @@ static int shift_arg_pages(struct vm_area_struct *vma, unsigned long shift) * for the others its just a little faster. */ free_pgd_range(&tlb, old_start, old_end, new_end, - vma->vm_next ? vma->vm_next->vm_start : USER_PGTABLES_CEILING); + next ? next->vm_start : USER_PGTABLES_CEILING); } tlb_finish_mmu(&tlb); From patchwork Wed May 4 01:13:58 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 12836645 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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 81FBFC433F5 for ; Wed, 4 May 2022 01:14:19 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E370F8D000E; Tue, 3 May 2022 21:14:06 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id DE8858D0003; Tue, 3 May 2022 21:14:06 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id B9A578D000E; Tue, 3 May 2022 21:14:06 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id ABADD8D0003 for ; Tue, 3 May 2022 21:14:06 -0400 (EDT) Received: from smtpin17.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 7D0822928F for ; Wed, 4 May 2022 01:14:06 +0000 (UTC) X-FDA: 79426289292.17.0812547 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by imf29.hostedemail.com (Postfix) with ESMTP id 4DB4C120095 for ; Wed, 4 May 2022 01:14:01 +0000 (UTC) Received: from pps.filterd (m0246630.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 243LIGqB026258; Wed, 4 May 2022 01:14:05 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=Vqiz50MO5iUbcnZL7iPPAt1f0jupXg/4AfF7zQR5jVA=; b=aOKxkOOrPQbvAdo0x2xo4UoA6K9oc/4zQdNmTYimQx3ezmNync9mPdmsnS0M9CvV0iIQ dg4FQAJGuDDH2+iFKvESqWvnZqoiigW6EtJX+C3W6BSvM62syYKXhW38Xl6Qh+yXRiUY Z++Oz3mYEbdX7c9SI5hmTOBPHMevRxrga/HuagHECiASNP/cqM90cIg1zJ4MzI4R7262 BRZVbnDKSvDT+ARp0Fsz0WsmC5AM5ZWK+v/oybYGum7/ZWK30JhUvXGkkNgYUmJJdnEv dx+9BYt/J3bbH1h208TcJSQitZQAG/SFjYA6m1eeelS/cvXSmiJdnAJ5KXKLV+zQaZEw Jw== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3fruhc72pk-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:14:05 +0000 Received: from pps.filterd (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.16.1.2/8.16.1.2) with SMTP id 2441ArPv020035; Wed, 4 May 2022 01:14:04 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2048.outbound.protection.outlook.com [104.47.66.48]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com with ESMTP id 3fruj922jf-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:14:04 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=hawz4LDLaO0gLbzpbepWBWJVowdaU+00iDxnzFGNV4Hh77SVOTLIKhv8dF0hWg5/rcFL+6ReIiQkZipBZTlqObOnAqSTbtimwWjZAqDJtuM8G/ZUn+WERwEeh75YinzqeUyERYM8lo6NIkH3hinAu/QW6sbq7yXi1+h0XNrLYnm2Ne4uQAXgnZn8nXEZDhBVckwqR6xNJp9GHwyxkKGAHaM1q4FL6AVZYcp5uEKMisnh/FIJnrwyEEYLAGcsb+Dq2pMAbtjfNMynLuL234lbDmwbM29I2BuAZsybBTkSUE22MEW+bKLozfy4y+m1JJevj0PIXKlTV97hUwbnJggeEQ== 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=Vqiz50MO5iUbcnZL7iPPAt1f0jupXg/4AfF7zQR5jVA=; b=YV5kzNeYkS0tWlTDO2jniW5WkgmAdiZf0UWjXVPYhwEJZ4HwFud6Qh/VIndBPUzCbMH7/5Vfe7fYTEfOj8Jj863UBtXC3n7VCpjaTU3wSgyQ5k3o76nC/R4j+egMCkjG+OZtQ6RFEtzKJZTlgz5bA2if4pQ6wGTHMKBNthSx52an+E5kzgx06xCPN26Skrl5tI2aaDtqbxE+dAxuihb17KpTq4PfbhXlQMqSfTFwk2DKEZ+f9Y/xGC8dv/SnQYNUWdQJ9H1CrMlNdMBXRaKSoR4Y6oEajrx8Wd9tLpriHMrmifwVIwh5rxrtyWgK0Z42tjb5QjBaWnNE0jC8Vy5hMg== 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=Vqiz50MO5iUbcnZL7iPPAt1f0jupXg/4AfF7zQR5jVA=; b=FxAR8S8H7RWiMB8lJzrd1CicdvddsJlMKlGRQ0VRYOa3pjRtF/aQLriVH/Sz89gtlEXXkT5vnF5vxbTYVmJdPVF1ngzzfx7mJ3SJU0KPGM+m8KhnABPFMwTafB87t3rJAELOe457g5Yfem3jFie+axh8RPbFDfd9/VuXbSKg62M= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by MN2PR10MB3728.namprd10.prod.outlook.com (2603:10b6:208:115::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5186.21; Wed, 4 May 2022 01:14:02 +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.5206.024; Wed, 4 May 2022 01:14:02 +0000 From: Liam Howlett To: "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton Subject: [PATCH v9 42/69] fs/proc/base: use maple tree iterators in place of linked list Thread-Topic: [PATCH v9 42/69] fs/proc/base: use maple tree iterators in place of linked list Thread-Index: AQHYX1Q7H1B3w8l19028UEEeLDCdUw== Date: Wed, 4 May 2022 01:13:58 +0000 Message-ID: <20220504011345.662299-27-Liam.Howlett@oracle.com> References: <20220504002554.654642-1-Liam.Howlett@oracle.com> <20220504011345.662299-1-Liam.Howlett@oracle.com> In-Reply-To: <20220504011345.662299-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: 08731d5a-2ee3-4b65-a735-08da2d6b5fef x-ms-traffictypediagnostic: MN2PR10MB3728:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 6HmpCynUgW7NYJAdBLwc7vUSBWHXSTwfcCHRs+ZT/hj7rAR5H8Znlp/eyjSmWHTYLhPmBEmKQVbN4ML+2j6+GrMJV1qutt1zL/VvCK1FvcwO++AkZYOdNyaSFH4GXj+EwVtxIVSDN1G9VKHV5kC/rSJUXBEsq097xiLYA348fRT2kId1mGkXEXZubdasypkyxH4GfXBLbH2shLEPHceOmkp0v6unHZEmdpswOVVqwq7P8fLCyAmFxdDYA7uj+sUV522FkjcbAzcU3i01TiM9xXXACUhGM4JeREsN/R6Wnd17aWo+dvRgM2Nsg+UCjYE+D+NWixQcHG0yfI6jWlGhuzzc0WkC+PzolBCO0lpPVIfXSIKKgtDfWMbZQBdecUFqMYC5ibKsJQ7HLAf01AHtQGPoB9c9vECz5zUU9604mNtncvF6jvzN72XmRmdXiL414CSuBB9liEqW4YFNeBScpq75Mh74QobnBJVFqJEYgfsKzxJN6gEkwjo47Uwih16knQh8wz8ulSaSPtkwAfIEPfNgI2hJoXwE0Ms6hbTELaGRX95vofQeaBWQgaBV9KrHZvp/3tEtNhlimXBw4TVGGzFg8xklzGq/0yY1XA/zY6dOFxhYsT8P+Dcg7biyhdZplr+8/bcJAubj5OWZq7d/jlRw8/fB179zMsCl2EIc2CtjitmzjPSAxenUNAbVUAPn07jOLM1G+A2Bdysi6UZcWQ== 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)(71200400001)(508600001)(5660300002)(8936002)(6486002)(86362001)(26005)(6506007)(2616005)(6512007)(2906002)(4744005)(83380400001)(44832011)(186003)(6666004)(66946007)(91956017)(76116006)(110136005)(38100700002)(38070700005)(36756003)(316002)(8676002)(66446008)(66556008)(64756008)(66476007)(122000001)(1076003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?iCGiFmTkMBBpBj9PCWNfGGg?= =?iso-8859-1?q?RbwopBG7zc/RMwD9bggOrdpDPd9TWHvJDU60oI4DleICIV7Y8KoH0gXix0Mq?= =?iso-8859-1?q?1bPBJYkI9/4zXWo5WgIzdUPWNjddLNNP2v3C3BtEhBunaQzqpr+CiLtbkEck?= =?iso-8859-1?q?pPixSjvpU1fK3c8+EeEgRFwyW1PF1AA+tGELgqO+aiaGAkxZ60B9d3XwAhrJ?= =?iso-8859-1?q?HATN0o2V/ve1HA0wOQOajvmtUS2EleGsqoAioDmxq5Nc6+eL0EHsAQj4dBNv?= =?iso-8859-1?q?yDQDPTqZugj5Yt2Uerir8QN5fDwo/9QUeH9k7IGvOkVBclPa7cN6YH/fky4Y?= =?iso-8859-1?q?A87AUVayTBjOzGhnn6WPAUuuY/Q0UfapRNsLL3nDfur8+rRP6lMh+E60KpUh?= =?iso-8859-1?q?eSwicI6BpDyhOvLaxEUr6GFU/2671c6fw66MF4SnNZFLjJ0RJdGAYZpkyrgi?= =?iso-8859-1?q?7sB5+Ht7vkW5nR1qcFWV/fUc0K1ZmvcjITjbm+oox5i/hGxQcSN0XNZa79ZE?= =?iso-8859-1?q?CeCoj6Jy0AuPEZBGQBGGd7Jd1p4VwOJCA6BMxOwSVQzSXldKmbYiup9ojOvz?= =?iso-8859-1?q?FHEQE1SOaPIGNflouZf6twZc9kB1eb4MCRxKzCLT8hPB7rnCqeKdn/jwXnEk?= =?iso-8859-1?q?gW3lbfLYYBkzvfO6vh9Z6N7/pKrUCnCsUu00+rmVh+jPRvEw7dy++BTnh/qv?= =?iso-8859-1?q?2ftsoHsz1hWn5PX+MoFZcXKPTBN+7o7VEpfXBKWXFP6vSQX3VMpr8pE0ezlF?= =?iso-8859-1?q?CiZh5NAz08E9fRVX82Di5izQnJo22E8fejxLuyQJ2rOACTJtoelhmA7/7ttu?= =?iso-8859-1?q?Pn/EQFYyZruJoOkidn2+JtezUzmE3F1UAuw6AHRUZ0ufjp4k1W4xrlxxcIiQ?= =?iso-8859-1?q?k2yoLo7S7rjB2oZQcqPWDSGwTkGfDFjOjsCSvKnWgzAwSFamkDYaCSCdYD4M?= =?iso-8859-1?q?RZVHdVXoBj6bLx+Q+BBu4MER5Jin2/9/l4MsnixbfndP81Twtgwcm0It6yyQ?= =?iso-8859-1?q?b8j68m2q8YGpe015kU3i/ycInqdu1eeSsjtljsRbl39iOh8qYLWbjlq6/whH?= =?iso-8859-1?q?F3KiBFAUgDjPkmJatN2NaPdkpxoZRiGHzsPXRPomrckFVFjenG08JiextzQB?= =?iso-8859-1?q?AhqiKO0UMA6yGWpbOHC1LOV8K6G6TeVf4j1SpfswIOuLyuSRQJxKB/e+tM/f?= =?iso-8859-1?q?1Tro09i7rdT5C3wLw6JORDIb2/xL/dAbm3QiqWdB73qN/+xMU439+aVe/k7r?= =?iso-8859-1?q?XFeCu5umygPPe7hyncsKSqIaKBAFBLvwT62t5Ql4YqRUFAIdT2UUP35y9jeE?= =?iso-8859-1?q?w9sVZnyO8XObFTw93b8gsb1uQ4loNqwfzSiCK9cGMc5/7IBV/RFYn3YGPn7o?= =?iso-8859-1?q?Rb/W/EzIPXxFuxkiF+uL4qzz2SKydFyrdD5qj87xFYC1VrEFRyopBxUZgV/9?= =?iso-8859-1?q?cEV4Ma4mLBAI7r/yd0ypYdtX3FzVVI5n54wZdqB6fpl4VEihcXOvtV4M0qsc?= =?iso-8859-1?q?sBO/AFV58NXSgjM6rSPN44hEvflFSJH0qLVKUn1JFqn4AWtCletq145B6LKQ?= =?iso-8859-1?q?qErT4yADw49r8nfbsW1rk636hxnbz5rlTsKY0ikxQfDrLizYGWE16YlV6deN?= =?iso-8859-1?q?K27po4jPSSAXArfz3STJowcpPqQw1O+y3NtCVgm91XuvFRet0yizg3QQ81EQ?= =?iso-8859-1?q?sbx0WulSEfFEr7pEo2fc8orKuux8+WsdmloHENlg+2ZW0iFwlXIuw0MeOoVw?= =?iso-8859-1?q?ycXqvg8eegqKZA3rw3NvL0NDkm6llAFCvbOSbWXveKZDUGZFkm/c5+gmH9zZ?= =?iso-8859-1?q?QlbLgEZs=3D?= 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: 08731d5a-2ee3-4b65-a735-08da2d6b5fef X-MS-Exchange-CrossTenant-originalarrivaltime: 04 May 2022 01:13:58.9078 (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: HScyu3HwA6x7wJxLumNLnlaHPOhl8mX3rguk5EmIG/X/CwZBBEyS0REwIK7OAK3q1gr3Sf5J5U9PTmW7uw3/Sg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR10MB3728 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.486,18.0.858 definitions=2022-05-03_10:2022-05-02,2022-05-03 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 mlxscore=0 adultscore=0 bulkscore=0 suspectscore=0 mlxlogscore=999 malwarescore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2205040006 X-Proofpoint-GUID: guwIYY-tALoocc_m8F5Iw2fsknPfWsQv X-Proofpoint-ORIG-GUID: guwIYY-tALoocc_m8F5Iw2fsknPfWsQv X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: 4DB4C120095 X-Stat-Signature: oqzaihh7t3hjferh3qjb65sgujzuyj6r X-Rspam-User: Authentication-Results: imf29.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2021-07-09 header.b=aOKxkOOr; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=FxAR8S8H; 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-HE-Tag: 1651626841-86279 X-Bogosity: Ham, tests=bogofilter, spamicity=0.003775, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: From: "Liam R. Howlett" Signed-off-by: Liam R. Howlett --- fs/proc/base.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/fs/proc/base.c b/fs/proc/base.c index 8dfa36a99c74..617816168748 100644 --- a/fs/proc/base.c +++ b/fs/proc/base.c @@ -2322,6 +2322,7 @@ proc_map_files_readdir(struct file *file, struct dir_context *ctx) GENRADIX(struct map_files_info) fa; struct map_files_info *p; int ret; + MA_STATE(mas, NULL, 0, 0); genradix_init(&fa); @@ -2349,6 +2350,7 @@ proc_map_files_readdir(struct file *file, struct dir_context *ctx) } nr_files = 0; + mas.tree = &mm->mm_mt; /* * We need two passes here: @@ -2360,7 +2362,8 @@ proc_map_files_readdir(struct file *file, struct dir_context *ctx) * routine might require mmap_lock taken in might_fault(). */ - for (vma = mm->mmap, pos = 2; vma; vma = vma->vm_next) { + pos = 2; + mas_for_each(&mas, vma, ULONG_MAX) { if (!vma->vm_file) continue; if (++pos <= ctx->pos) From patchwork Wed May 4 01:13:59 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 12839138 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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id ED48EC433F5 for ; Thu, 5 May 2022 07:39:11 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 528616B0071; Thu, 5 May 2022 03:39:11 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 4D8EE6B0073; Thu, 5 May 2022 03:39:11 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 3519F6B0074; Thu, 5 May 2022 03:39:11 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 25BE56B0071 for ; Thu, 5 May 2022 03:39:11 -0400 (EDT) Received: from smtpin05.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id EDBE720F49 for ; Thu, 5 May 2022 07:39:10 +0000 (UTC) X-FDA: 79430888460.05.C9ECFDF Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by imf14.hostedemail.com (Postfix) with ESMTP id 743DE10008B for ; Thu, 5 May 2022 07:39:08 +0000 (UTC) Received: from pps.filterd (m0246629.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 243N1sJ1003197; Wed, 4 May 2022 01:14:07 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=uHYq9OiwrQfsdBG9rOOWiNjAOBhrQhYxo34Y5T2TPRI=; b=hx6ZqgiGqHtlcpboP9X6qVSxRR2LVGwNX6kjZ34Eb8ykcH1zChoyRcGBWejiDptbgnan NCMITL0ZH0AsM9wXf/5EN4rd8RLBjWs7QH1yjiMbVQEoC/dcy0JvkLgP0pAkHrpgg9Q1 T8BUP8sLz/rd4nmOgegw01CxH110Hl5yEuBUfVtnlKJ282/W7OUlW/5BxOwds0VEb2hI DeFraG1am20WnKVCxYSbIAg2AdTcOUEAtHmgN8vrCdM3pnfJF3JEIpbilkejDjdccuBR bonrE1B3dVDz1lvQLDnZL4htwN1pj1XSwgHeAizhG8v01Xds1N8L91bZw06L8iQS7RWF VA== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3frw0apy0c-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:14:06 +0000 Received: from pps.filterd (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.16.1.2/8.16.1.2) with SMTP id 2441ArQ0020035; Wed, 4 May 2022 01:14:05 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2048.outbound.protection.outlook.com [104.47.66.48]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com with ESMTP id 3fruj922jf-3 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:14:05 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=dsiuzN7I9wl7l3Ov5kxJwpTqscvvMAUcJPxOVlcuurvmQPEDLy+AStHAHUxUDExbvx3DFBXhoYEWsHzVHoXLBVdDphDZe+hfBMFf2mtOf7bwJ95xphBenT15pg9pGwncMACZ1zybn0uoQ7bPcf8dbIYKvBxOawaO6Bl8z25GTJmkkNGjGt5ggtG6IpClJLAc1wCaJWECKXoQciFXibdhepHU9+DWfaVnbxkkyx7W24gefrb9OeoFTC6ZjStw4Xhjqns2oKI4pVXrY2DbQcOCw2JrhPO/JBBTMR6RIQStmvFIpHb9aj3fgcMX2a05Zk0dvg1cUp0EFmk2Ju5qnRTveA== 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=uHYq9OiwrQfsdBG9rOOWiNjAOBhrQhYxo34Y5T2TPRI=; b=IDWz1/WKXgU2bFIPX58Z7lNdA2B+egNj5UtlgFgIFFS8XLnXiZkjJSNLrhUcXxYYn4EnVcEq6+McolBqVXlCEbD1SqX+WqPMGDYQAg4Fv0drmrEeGjO+iXdP6eCuoOxD+P7T1nSjthmO2h5rYlmtEJbNKcbuASEaJsLFCMjDasOT628xg23831gZG+duUFAdPd7tWcsIIG99+uG4Bp4xpVQKW4Q4bXXgVlepJHhq4AO5LtuXPWLO7CeC6XoDvxlTNPmCiaZiG/FsmjqtHNa+SYeL2/h1Rsl9pdMmnTgAR6hs0NSUwkE4ztsTFnB47ICyRI3PzZG5k72AjTJjKJtzlQ== 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=uHYq9OiwrQfsdBG9rOOWiNjAOBhrQhYxo34Y5T2TPRI=; b=g6Uq3BNx4UPscGgqNmWDnpH58O7zp2SuSCxDZF5C5DcCJO3xuh0pk2wQZuA+xQ4PRXZ9enKdxbG0HfvwTeiLvoKW10shYG1Z3MxgjN/2Y5zFHqXQ6u6whoG5wScIRhp3hSCvIlV+rXPUsDLiHAoVVtWRYZtBy93NrPBjMdO1dH0= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by MN2PR10MB3728.namprd10.prod.outlook.com (2603:10b6:208:115::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5186.21; Wed, 4 May 2022 01:14:02 +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.5206.024; Wed, 4 May 2022 01:14:02 +0000 From: Liam Howlett To: "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton Subject: [PATCH v9 43/69] fs/proc/task_mmu: stop using linked list and highest_vm_end Thread-Topic: [PATCH v9 43/69] fs/proc/task_mmu: stop using linked list and highest_vm_end Thread-Index: AQHYX1Q7yAtaJnaxXUmhJlZFpjSlpA== Date: Wed, 4 May 2022 01:13:59 +0000 Message-ID: <20220504011345.662299-28-Liam.Howlett@oracle.com> References: <20220504002554.654642-1-Liam.Howlett@oracle.com> <20220504011345.662299-1-Liam.Howlett@oracle.com> In-Reply-To: <20220504011345.662299-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: 5505adf1-4f90-449c-2a98-08da2d6b6056 x-ms-traffictypediagnostic: MN2PR10MB3728:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: XSDqrjMQiothZjArOcebV1c/VGPcUZEvOsWhToRb0j+M/jkUexhCvLh1BOUjuM8eXCniuimYqr4d5+XiFBE4++BGZpd0q4tjS2ANaUCGVSyf1rUz67UzrVgKeDa0abw4l0FzWfwBOEg5S/QsJtbvBGWE9G9eOiJKrFotGL/UfVWn2kG2JuCZhKeRRJNFofb7R5/RDjNwbmMJTRGAa9RS4ITDe6x6nV48YbzvVPmGGFtrCRnDcmPCdqmwh3smTZO5hyOy4d9qC2v5awIOUpwNFpyQVykXHTQJ7hG/t9fJdiKZqY4VvXxqARCpozDs7oVML+yxjlidmqXrANx3ZKdK7rlxB5GcMfO6SdHUcKdlbqrFUWsXZ8fcU+nrp+ESMonYl3fmMZxkvKu3ZcZ7NL4JhhQKLGPlriiF6/4Iz2wTC82my+HhIC2jxQmfZMUEH8eCXZFloKulQO/KNmrz7ydnMJCtIQM7qaF0NraR44C+w9yiw4ziEzv6MomeM1TVI2PaU0+B/1nZkr2kWRfzDo1hm9p3kacqK/euxWOL8/JBAWMFE+GPPTeGdcW4Ub1c0UYggR0jM8Tz+/nHRHQm5tAxBS7m1sWFaa/RmZ3t3jA8iBOBb75LY9oLlM0psPYrzFlECVaVGz0/LMtDI7WoMH+4QaBnLYZHV5SleqYoFvxr2xEdN+Nrebk5L+11PR4hIYy6t7Hr64K9LVIU0vnaorTKFw== 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)(71200400001)(508600001)(5660300002)(8936002)(6486002)(86362001)(26005)(6506007)(2616005)(6512007)(2906002)(83380400001)(44832011)(186003)(6666004)(66946007)(91956017)(76116006)(110136005)(38100700002)(38070700005)(36756003)(316002)(8676002)(66446008)(66556008)(64756008)(66476007)(122000001)(1076003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?Ovs/bN0lJyQ3oCEA16JP9SW?= =?iso-8859-1?q?hU7h6gbgWIURIenG26y9LYE0HetLlOTIKXQzL8GIgraMAKKjLBSrtkP0w6+U?= =?iso-8859-1?q?M0x8WmHG8CgbPB0MkY90KVgffGEI2oFb7JONPZsXe1ZrzOVbxlbzJj7NkE4G?= =?iso-8859-1?q?I0yMXwjh40E0s3/JrR2cgcQ7g78iFlll7vnvSCxCzaFV4a6ShwCJbJ2niOEh?= =?iso-8859-1?q?yhd3R8g2QT39YsNNjrgW7fTwycRPiw/zx7ogHDPfaPJ7Wx3gFNqhRmUoHGbB?= =?iso-8859-1?q?TPfU8uS8ReecD5aoozLzwhoOSei1ZlqzMPmMieKsM1dRJiWOeoDouivNiFKV?= =?iso-8859-1?q?fYZ/U/Cn629/GL+zhuto1IxI2qy2HOujwq4BCdxN7q+3cJUTxMPhK6fOmvyI?= =?iso-8859-1?q?q0PZlxDgRq+2PcoviozcDu52ZvM0zOiW3yZs5pbDomYLRIjjDC0mnBVtG4q4?= =?iso-8859-1?q?mTBH/lrY+vilOlpUwnyxeNJqfQG6mOlX+z3J5l8H1ywqkA6fiMwUyumg/eyA?= =?iso-8859-1?q?hnNMnfGaZtA9EnqZrQDmpi//f+4XbpKAhvIR61lxoSCNp/EQKNzu+osOTzjJ?= =?iso-8859-1?q?9rcJE1J/bPKHhuTHAX8OGxHqsjk5vyBUSrASgsWzu+61xn9DwWLVMD4fn5d7?= =?iso-8859-1?q?UOc2UFslzVOygLBoVCAYbj9/mgESbthsKgunJmAP1I8werl3Yoopti14JBaL?= =?iso-8859-1?q?Bs2wTZWp8A1bZg1a/Or97W/92h3PP1BId/vBYtfpReHwonRNEpGeNqB+jRNf?= =?iso-8859-1?q?qErkSvbhdNmP5LwlBA/zG6+wXxue3b+TNoSkrDgjcN5XrKcx7+VVhzwoJeYe?= =?iso-8859-1?q?1nuomVFqx8DOZk2j5MjqI6CrCNjoODYxw/rZllfDzSLOdYeU3HGJbqIdcNNb?= =?iso-8859-1?q?zQse62S2G/wmz7xdFoNdO4Y5GlcmpPNst7hwR6Am+olMGHmQUEAkP5WhvFeF?= =?iso-8859-1?q?SU2tl/QA94kpVGAiZBA8s8+U9yukVR+F7w163YZJhGBwleOG3LdFCyqyJ9IH?= =?iso-8859-1?q?kmgETfoDUNJQTy4YVw+C600sXmOrQGRLinREg7BLvgNqzTloJiPxJpyyfqpQ?= =?iso-8859-1?q?xF15QH4CQ7cg6aq9Gq2XVU2hHjHY9KGQUn81UqvRZnBhPVGkViyoKN/ilR/X?= =?iso-8859-1?q?k4zYo3NSUVAwfft00s7WOuFPbJ9qCzVO5mcFalWGO/TgJnybLHWgxWXbV8Ys?= =?iso-8859-1?q?kRzDvNdftaroASKTAs3BtaZTbIdaY/4u4MzgmgiSeXs++EpKjEHkwhfdeWpj?= =?iso-8859-1?q?PaarofeBZ57XhBi2zOH71JS297AP94nuhToyhWoqpWRSlWIEwAKi2Sv6LeMP?= =?iso-8859-1?q?m3kcTgx16XMZAxc2WsyKcVhjmd4JjJ6YTdiMI4s25FvWpkMBZnY/4HXH8nnn?= =?iso-8859-1?q?8s59+NYNwuw72r0UoMt+dBXRXEDhPAp3qfWZHaXsryjBK/ZBFeAxICyYJY3W?= =?iso-8859-1?q?QZE0IoCH3idzdlY4RA4vX1ZAA2X5qpeIOUmrAvt4G+9LS+onW0eKsuMnvNUz?= =?iso-8859-1?q?BEC29qVcTLx3aT4EO6Obcm/BAWwf6AJN3GymEbB0i748RpmitT0SLQf4i3Qw?= =?iso-8859-1?q?zniB+baTKej7ZBJtby04e8j1JwsGrgW8jSmayRWDZFcImTzErF2hUgYrqq3E?= =?iso-8859-1?q?8eRbH8E/XBmYZ5mq6WWUX7wzI0harpZpQOmxb2HDY/hO/kzsMOoUVLryQ8Dk?= =?iso-8859-1?q?f7ra1fodSQIZb0O0xjFaZlHrsU9paiNlCb5n+VNcU3rKo9URSWQyYqj/1rZ/?= =?iso-8859-1?q?VUfz8BS5wm+mx3znfPdv41d0q14JvInMOIweRlgurzkp8IFGMgrcI7adqK9j?= =?iso-8859-1?q?pprCHHqk=3D?= 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: 5505adf1-4f90-449c-2a98-08da2d6b6056 X-MS-Exchange-CrossTenant-originalarrivaltime: 04 May 2022 01:13:59.2515 (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: rMHXB7WkjAiuDlKzfUtEZxqBwUKCEJ5PyOR8JLdAFOQu4YidkU/L1ohrqzIy/D0BM3hsIehTdBUCUCgfcjyfhg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR10MB3728 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.486,18.0.858 definitions=2022-05-03_10:2022-05-02,2022-05-03 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 mlxscore=0 adultscore=0 bulkscore=0 suspectscore=0 mlxlogscore=999 malwarescore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2205040006 X-Proofpoint-GUID: ztJAUJjAsZuf_uemfl8LoO3sefnQfznO X-Proofpoint-ORIG-GUID: ztJAUJjAsZuf_uemfl8LoO3sefnQfznO X-Rspam-User: X-Rspamd-Server: rspam11 X-Rspamd-Queue-Id: 743DE10008B X-Stat-Signature: gfzk88juromnshjuo4s8efu5ygfspjda Authentication-Results: imf14.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2021-07-09 header.b=hx6ZqgiG; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=g6Uq3BNx; spf=none (imf14.hostedemail.com: domain of liam.howlett@oracle.com has no SPF policy when checking 205.220.165.32) smtp.mailfrom=liam.howlett@oracle.com; dmarc=pass (policy=none) header.from=oracle.com X-HE-Tag: 1651736348-658160 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: From: "Matthew Wilcox (Oracle)" Remove references to mm_struct linked list and highest_vm_end for when they are removed Signed-off-by: Matthew Wilcox (Oracle) Signed-off-by: Liam R. Howlett --- fs/proc/internal.h | 2 +- fs/proc/task_mmu.c | 73 ++++++++++++++++++++++++++-------------------- 2 files changed, 42 insertions(+), 33 deletions(-) diff --git a/fs/proc/internal.h b/fs/proc/internal.h index 06a80f78433d..f03000764ce5 100644 --- a/fs/proc/internal.h +++ b/fs/proc/internal.h @@ -285,7 +285,7 @@ struct proc_maps_private { struct task_struct *task; struct mm_struct *mm; #ifdef CONFIG_MMU - struct vm_area_struct *tail_vma; + struct vma_iterator iter; #endif #ifdef CONFIG_NUMA struct mempolicy *task_mempolicy; diff --git a/fs/proc/task_mmu.c b/fs/proc/task_mmu.c index b940b969b000..b59b053e91d4 100644 --- a/fs/proc/task_mmu.c +++ b/fs/proc/task_mmu.c @@ -123,12 +123,26 @@ static void release_task_mempolicy(struct proc_maps_private *priv) } #endif +static struct vm_area_struct *proc_get_vma(struct proc_maps_private *priv, + loff_t *ppos) +{ + struct vm_area_struct *vma = vma_next(&priv->iter); + + if (vma) { + *ppos = vma->vm_start; + } else { + *ppos = -2UL; + vma = get_gate_vma(priv->mm); + } + + return vma; +} + static void *m_start(struct seq_file *m, loff_t *ppos) { struct proc_maps_private *priv = m->private; unsigned long last_addr = *ppos; struct mm_struct *mm; - struct vm_area_struct *vma; /* See m_next(). Zero at the start or after lseek. */ if (last_addr == -1UL) @@ -152,31 +166,21 @@ static void *m_start(struct seq_file *m, loff_t *ppos) return ERR_PTR(-EINTR); } + vma_iter_init(&priv->iter, mm, last_addr); hold_task_mempolicy(priv); - priv->tail_vma = get_gate_vma(mm); - - vma = find_vma(mm, last_addr); - if (vma) - return vma; + if (last_addr == -2UL) + return get_gate_vma(mm); - return priv->tail_vma; + return proc_get_vma(priv, ppos); } static void *m_next(struct seq_file *m, void *v, loff_t *ppos) { - struct proc_maps_private *priv = m->private; - struct vm_area_struct *next, *vma = v; - - if (vma == priv->tail_vma) - next = NULL; - else if (vma->vm_next) - next = vma->vm_next; - else - next = priv->tail_vma; - - *ppos = next ? next->vm_start : -1UL; - - return next; + if (*ppos == -2UL) { + *ppos = -1UL; + return NULL; + } + return proc_get_vma(m->private, ppos); } static void m_stop(struct seq_file *m, void *v) @@ -872,16 +876,16 @@ static int show_smaps_rollup(struct seq_file *m, void *v) { struct proc_maps_private *priv = m->private; struct mem_size_stats mss; - struct mm_struct *mm; + struct mm_struct *mm = priv->mm; struct vm_area_struct *vma; - unsigned long last_vma_end = 0; + unsigned long vma_start = 0, last_vma_end = 0; int ret = 0; + MA_STATE(mas, &mm->mm_mt, 0, 0); priv->task = get_proc_task(priv->inode); if (!priv->task) return -ESRCH; - mm = priv->mm; if (!mm || !mmget_not_zero(mm)) { ret = -ESRCH; goto out_put_task; @@ -894,8 +898,13 @@ static int show_smaps_rollup(struct seq_file *m, void *v) goto out_put_mm; hold_task_mempolicy(priv); + vma = mas_find(&mas, 0); + + if (unlikely(!vma)) + goto empty_set; - for (vma = priv->mm->mmap; vma;) { + vma_start = vma->vm_start; + do { smap_gather_stats(vma, &mss, 0); last_vma_end = vma->vm_end; @@ -904,6 +913,7 @@ static int show_smaps_rollup(struct seq_file *m, void *v) * access it for write request. */ if (mmap_lock_is_contended(mm)) { + mas_pause(&mas); mmap_read_unlock(mm); ret = mmap_read_lock_killable(mm); if (ret) { @@ -947,7 +957,7 @@ static int show_smaps_rollup(struct seq_file *m, void *v) * contains last_vma_end. * Iterate VMA' from last_vma_end. */ - vma = find_vma(mm, last_vma_end - 1); + vma = mas_find(&mas, ULONG_MAX); /* Case 3 above */ if (!vma) break; @@ -961,11 +971,10 @@ static int show_smaps_rollup(struct seq_file *m, void *v) smap_gather_stats(vma, &mss, last_vma_end); } /* Case 2 above */ - vma = vma->vm_next; - } + } while ((vma = mas_find(&mas, ULONG_MAX)) != NULL); - show_vma_header_prefix(m, priv->mm->mmap->vm_start, - last_vma_end, 0, 0, 0, 0); +empty_set: + show_vma_header_prefix(m, vma_start, last_vma_end, 0, 0, 0, 0); seq_pad(m, ' '); seq_puts(m, "[rollup]\n"); @@ -1258,6 +1267,7 @@ static ssize_t clear_refs_write(struct file *file, const char __user *buf, return -ESRCH; mm = get_task_mm(task); if (mm) { + MA_STATE(mas, &mm->mm_mt, 0, 0); struct mmu_notifier_range range; struct clear_refs_private cp = { .type = type, @@ -1277,7 +1287,7 @@ static ssize_t clear_refs_write(struct file *file, const char __user *buf, } if (type == CLEAR_REFS_SOFT_DIRTY) { - for (vma = mm->mmap; vma; vma = vma->vm_next) { + mas_for_each(&mas, vma, ULONG_MAX) { if (!(vma->vm_flags & VM_SOFTDIRTY)) continue; vma->vm_flags &= ~VM_SOFTDIRTY; @@ -1289,8 +1299,7 @@ static ssize_t clear_refs_write(struct file *file, const char __user *buf, 0, NULL, mm, 0, -1UL); mmu_notifier_invalidate_range_start(&range); } - walk_page_range(mm, 0, mm->highest_vm_end, &clear_refs_walk_ops, - &cp); + walk_page_range(mm, 0, -1, &clear_refs_walk_ops, &cp); if (type == CLEAR_REFS_SOFT_DIRTY) { mmu_notifier_invalidate_range_end(&range); flush_tlb_mm(mm); From patchwork Wed May 4 01:13:59 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 12836647 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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 3CCB1C433FE for ; Wed, 4 May 2022 01:14:23 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id B7DAD8D0010; Tue, 3 May 2022 21:14:22 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id B02D68D0003; Tue, 3 May 2022 21:14:22 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 869218D0010; Tue, 3 May 2022 21:14:22 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 72AD38D0003 for ; Tue, 3 May 2022 21:14:22 -0400 (EDT) Received: from smtpin25.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 78E2127A3C for ; Wed, 4 May 2022 01:14:08 +0000 (UTC) X-FDA: 79426289376.25.3989FE5 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by imf20.hostedemail.com (Postfix) with ESMTP id 95D581C009A for ; Wed, 4 May 2022 01:14:01 +0000 (UTC) Received: from pps.filterd (m0246630.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 243MOe0F026132; Wed, 4 May 2022 01:14:07 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=lAlN4V4xXtkqf47kt8sPDWdsKuQOlDXsFEhztd84YFU=; b=EBmUaH6ifKR7H77mm1BTc5Fld6MvUJlscAmuQBPw5qMONpibd59AwCe4RbZ1BYt2Srba 6MR5hgyGQtcGGJ5rsAfBWrFc7P0Eex+H4L+Vs1ss0D0NoIM5oj47CuFuu8gF88vXcz2b MxNb5kiLEkuVo4jM9w6ICdUXHZR6ZXSnk7qevbpYHp7RstUxDrja8WoXwWOXWSgDk89Z xckuInnsQ6pBOkdY+r4MRApYEt9kTHeoNL8tnG41S5iRuEkxnBaL1RnXcHsrENIiuOWH TjP4Usgamk3a2nZcQ44szB3y4ccQRX+ZMQcc0Foab9nBVGk/tg4pQqy8iUZngX9F6kX9 +Q== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3fruhc72pm-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:14:06 +0000 Received: from pps.filterd (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.16.1.2/8.16.1.2) with SMTP id 2441ArQ1020035; Wed, 4 May 2022 01:14:06 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2048.outbound.protection.outlook.com [104.47.66.48]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com with ESMTP id 3fruj922jf-4 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:14:06 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=oG0BEMN4lmI61WWTo8lFPUNGdL6tIDfVETTQMXBdAqPXZPxbAAkEPYrD9mj/1MDDf2qmtQX9xwL1lu8ZXW6szzcWsm/xUhb24FRQrXoAy2OGWklGvg8oqgepVk2pJh0VAsJd0tGFJYlRdwP+4lZH4DzzdAuVYj7sBsPDq1AWJdkdqTlte07RvFl7gThzhbg0kCoQaiFyBF+BN5ceV2DFFkPuMMVedfs7o9iAQQipyaJMf98RF74xCBQcttbMNZdSKBlii37D6oqRjPtkl9R+VuGnQ3SiKEPSfHo+MzVgF3IA/HH9pn4EPBQ+xJrsEWIZ41LcIunR43dNtWdiTDrtfQ== 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=lAlN4V4xXtkqf47kt8sPDWdsKuQOlDXsFEhztd84YFU=; b=l9JGwFVUZoKVhiy9pS5qwKfphvQis+2RTWwULOT09fm+e1/l8MreCP5W0uHrSyzdeyCt6XUdwXKfF+XRZJzSARp51WQG+1pVsoYt5NT3mVK3BMUUqQ7p8/JMWCxkC1ktiML+iSmgp7wRP687rBY5jgwbSoDy1O3/3ZVnPj/J+JfeVnG40ESYkgxOsVKCj07+Wk+EhvmwxH4XCGSkciHT6WIjGX8g9NHtRLz4dW0RyBPCgvADg72a3Bo7SNqXYOAGOmys0kNnwIM5UJF+4owCYd2BuaL/6ijQXHOMqYzKRY3eVyx+RwOQIelV6/ypR/5FTZr0nb6YjafE7jNZBIM8JQ== 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=lAlN4V4xXtkqf47kt8sPDWdsKuQOlDXsFEhztd84YFU=; b=mcafuJIGphDwTPGdJHpptj8j3b8KshGpMG1bSCG4SS4j7uYW6gNSOJEpafTqWINhJeSS2qNeZe0kYJ+QNSfzTJee3G6DKBpnT65K00FnTN6sTbVq/HWvdBXqXBx3EKaraSbcybOpIusbuFXYahSXKVo8Y5RgxVAIN1aFvp8CF2g= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by MN2PR10MB3728.namprd10.prod.outlook.com (2603:10b6:208:115::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5186.21; Wed, 4 May 2022 01:14:03 +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.5206.024; Wed, 4 May 2022 01:14:03 +0000 From: Liam Howlett To: "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton Subject: [PATCH v9 44/69] userfaultfd: use maple tree iterator to iterate VMAs Thread-Topic: [PATCH v9 44/69] userfaultfd: use maple tree iterator to iterate VMAs Thread-Index: AQHYX1Q7iGYsvmt9sEGo+1bnewIREw== Date: Wed, 4 May 2022 01:13:59 +0000 Message-ID: <20220504011345.662299-29-Liam.Howlett@oracle.com> References: <20220504002554.654642-1-Liam.Howlett@oracle.com> <20220504011345.662299-1-Liam.Howlett@oracle.com> In-Reply-To: <20220504011345.662299-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: e55f8953-6cf8-4594-d6ee-08da2d6b60a4 x-ms-traffictypediagnostic: MN2PR10MB3728:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: eva28ktp9rGdkW1zdlf20jgaGqMXold9Qz8uJPhcuC0fCUVgLIcqma3SOerU123clsVWGpbp6YCph3x+zsVNLN4dCKVSOsehJzG5LdYwzKWJn8csiaHd+K0Zw9PLdZqpAtRbVpZ6sQW5fcczzpljjQm8T/iK9c9ni4hwvohopu5wyyaFDXYgdqFQSIOoCdQp59LDq2G8etssJPmmGNCjpovXzUBnjPGARFtyUrg6q/+PXxLn5ZL/mYmQ6qXb5hRKiVi8bvfRpLLBfp/tw4VJjo6mpEOTVcWWrMidAfWchzKaZd+uX/0Rjrgh9A9RgbdLB55KzFLID5iUBdxvVsC4kHOWNg9w7aSs6M1KpRfSuu+USPEnQ1Pwk8y9KoyKiQYTHEpmEIxEGPEtcSFppVOg2VU5dFDrtfmV4H+UqR44NiJv2wtIUILEID9HCcXQZKyVpNhnNdZD54yaurJtgBU0uqA1H5tWjIk8YsHs1VO5Y0ZWLYlOng4WeXECMvd6DmJb0wDb3VlryOgwl0ox+UtdZ9r/v8x1RFrxF6VhP4m3EOzGnJYujNOVfLfTAiiz/3WFEegOzfAAP7bZE5T0W+4hkffN1+b3UDTF3XMLH8tl39eozW7VlstkXZJVb/uWUqZZoQY+nfWQvy1DreS6RLsZJgFYrjlSEQ+FimZUUoP1G3ZWDp+y87txzmsXzkKQCPy/TZbbBuDkv9xNOx+5+ptbWA== 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)(71200400001)(508600001)(5660300002)(8936002)(6486002)(86362001)(26005)(6506007)(2616005)(6512007)(2906002)(83380400001)(44832011)(186003)(6666004)(66946007)(91956017)(76116006)(110136005)(38100700002)(38070700005)(36756003)(316002)(8676002)(66446008)(66556008)(64756008)(66476007)(122000001)(1076003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?/ZrxpB90Jgz8gYLBGoZZwPT?= =?iso-8859-1?q?NnQL6oAvgMYOi+7l1vqqLoFKK38B7XJUpndgEMVYgQgSq2gHP0NsXeOJfRe0?= =?iso-8859-1?q?5tcMFPPaabKo062i0mxOt72FydiTQfAPdMcduPwXdYZGby1LOpd6qcyJv1OJ?= =?iso-8859-1?q?Zp3eKka+aI0Iv5sRvd/y8w+BlsMZt/5mIHIwv42HZ9lOPlit2BZEaYWwDF3X?= =?iso-8859-1?q?tWJQ2U1sAN7png3WARzAk6w7wwklMQk4kDuHF+G2pIdi+ygbTGpHIWAF8BJi?= =?iso-8859-1?q?i6SJjlblXWIZ9JWhv1d1G/F4uYr1VnYj22Hr9+/yfVcqZ2Qf/GMRl0mnJtyq?= =?iso-8859-1?q?R8anFBbB44VHQexzwQMzmhXtVDNTv0q3N5kUHN1QulIGM1zHVHzFvTE9Q4f5?= =?iso-8859-1?q?Bhj+p/SX2gscxLXU3/XCxvIynwMGQsaH/rX6NohjHV6IuXoO2cLURm+2KHUg?= =?iso-8859-1?q?rjPDDoETVXdmDDBarVLI9LREmkA3gizj1EEykXU8k+V1LVZCfU2r2tDsznTM?= =?iso-8859-1?q?V5grdEiNm/1LlTPzYiuS3RnhxMIG/3emktI61L9KPPPw3q3uXD5Kj6ER92Oh?= =?iso-8859-1?q?CCO0URPP7pvxOLom5AzX6YCs19mRekEoORFomHXv+I2TkfvLPfZuc4eRfbZ9?= =?iso-8859-1?q?HgXBheW5auIy7VstBD9E6Gh0lQZTeDF8XXKAb0Sw/wWA4hVRYkcEHp7TUMZn?= =?iso-8859-1?q?RmV2Xm2oWBL0XEPQxahSvyfYfijE7M3fNskuySZ6dsmPUe2xGRWC/KvtACrP?= =?iso-8859-1?q?u0IL2S5dRzdiQIRELgcUTLhTQawM68EEvBSZrjd/LBHIRF9ikwiVt+sYJgWX?= =?iso-8859-1?q?Ft9QpzRjrh4/f7YD48VZGioQfQ6xn7O5piwHwUuTn7jpNutbQYhjl41xBLT7?= =?iso-8859-1?q?714INs2saE2Els5ChA9UgOyNFJyMbWNDhCUoEa/AWHmNK3jMTuJ8PI+gS1sg?= =?iso-8859-1?q?21gEn5VmzbBmc8Acah93TZ/4jzFmHHRghd0FRg8R96Xl1xsc8Kn1hQXdDHCL?= =?iso-8859-1?q?TXRnjss8EnnHHpxI3mHQUr8KsIPkMIBcoE50cDPVf1hNTTevcRPDyueC+lH6?= =?iso-8859-1?q?MaJD50EKRBaB7gof7eaijJis4YKIuznZePcAM4/8xO+3+nV9Kc5UYlNMTg30?= =?iso-8859-1?q?qlex1FNr1fXUliHseDP6wUhthvjANeUsxnHgSCiVi0tXGOuHWQB2Vmq0m4eq?= =?iso-8859-1?q?Tu4aXx0vsMR+3WjazZUR1pbWpjkucTDmFz2M7se1X048CA0/xi/0ZZYu5WA6?= =?iso-8859-1?q?JPB/OaCtIuD9ZoXHadKZj3g9j/zeQEPY2vAHKER/drWDtHzHy9l7vctn79xL?= =?iso-8859-1?q?QtMGKCuHJQWeNCWU8JVkV2rmwsMSkMxUEKmTrYsPA07KchTHCglJ3OKD/ZPf?= =?iso-8859-1?q?/JSSdCU5BDsj1VXkDRJuPE+RIh0QJSEzSqQOxNyGjt3qYaXzftjAvuEvkt2O?= =?iso-8859-1?q?1amPuqSmUnGv3u3nNi6UoH9pRL1GMYYcjhiRfja795DVGaie5xd4hE/DVY89?= =?iso-8859-1?q?7ZVFkV1QLDYF8H79OmXNyihbQoltamPIgGkps95pxv8ti+2vDbN1k7zm0wYA?= =?iso-8859-1?q?GloTO5poPVyUGJ5wFaQiGf7u8/kqV4kdR07wIgWiX3nrJbHDzuT2eUwD4SmA?= =?iso-8859-1?q?M4d5QoOt93tHHxu96owRx/eFUdCW1S/R3HlAqwNWc/qjpUhGr8s0UYxT+089?= =?iso-8859-1?q?GR6C4AXbjwJthECnzui2CHNGHksDmvmWY6nIm3s/8AWnXM3N0BBtMRfucn5X?= =?iso-8859-1?q?pFfu7hbmCCBV5VkIPc/yXoV8onZC6+nCEU/WEeR1PLSaB8AE5FgZERRvh3UR?= =?iso-8859-1?q?7lCvVVEE=3D?= 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: e55f8953-6cf8-4594-d6ee-08da2d6b60a4 X-MS-Exchange-CrossTenant-originalarrivaltime: 04 May 2022 01:13:59.5640 (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: KnHhj4Z+pd/0+CKjttQLGhnVGc4XiODB8QvLVRiGiBjhDeh+pxbFc0NBUCUybOD283MbsCxmhjVzlof3DAtmug== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR10MB3728 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.486,18.0.858 definitions=2022-05-03_10:2022-05-02,2022-05-03 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 mlxscore=0 adultscore=0 bulkscore=0 suspectscore=0 mlxlogscore=999 malwarescore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2205040006 X-Proofpoint-GUID: JfbreoVOfaY_okC78brRoHweb94efXpb X-Proofpoint-ORIG-GUID: JfbreoVOfaY_okC78brRoHweb94efXpb X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: 95D581C009A X-Stat-Signature: rtnsxjo9wfbcup7qpsfm1uqpn4ijzdr5 X-Rspam-User: Authentication-Results: imf20.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2021-07-09 header.b=EBmUaH6i; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=mcafuJIG; spf=none (imf20.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-HE-Tag: 1651626841-9117 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: From: "Liam R. Howlett" Don't use the mm_struct linked list or the vma->vm_next in prep for removal. Signed-off-by: Liam R. Howlett --- fs/userfaultfd.c | 55 +++++++++++++++++++++++------------ include/linux/userfaultfd_k.h | 7 ++--- mm/mmap.c | 7 ++--- 3 files changed, 42 insertions(+), 27 deletions(-) diff --git a/fs/userfaultfd.c b/fs/userfaultfd.c index aa0c47cb0d16..af29e5885ed2 100644 --- a/fs/userfaultfd.c +++ b/fs/userfaultfd.c @@ -610,14 +610,16 @@ static void userfaultfd_event_wait_completion(struct userfaultfd_ctx *ctx, if (release_new_ctx) { struct vm_area_struct *vma; struct mm_struct *mm = release_new_ctx->mm; + VMA_ITERATOR(vmi, mm, 0); /* the various vma->vm_userfaultfd_ctx still points to it */ mmap_write_lock(mm); - for (vma = mm->mmap; vma; vma = vma->vm_next) + for_each_vma(vmi, vma) { if (vma->vm_userfaultfd_ctx.ctx == release_new_ctx) { vma->vm_userfaultfd_ctx = NULL_VM_UFFD_CTX; vma->vm_flags &= ~__VM_UFFD_FLAGS; } + } mmap_write_unlock(mm); userfaultfd_ctx_put(release_new_ctx); @@ -798,11 +800,13 @@ static bool has_unmap_ctx(struct userfaultfd_ctx *ctx, struct list_head *unmaps, return false; } -int userfaultfd_unmap_prep(struct vm_area_struct *vma, - unsigned long start, unsigned long end, - struct list_head *unmaps) +int userfaultfd_unmap_prep(struct mm_struct *mm, unsigned long start, + unsigned long end, struct list_head *unmaps) { - for ( ; vma && vma->vm_start < end; vma = vma->vm_next) { + VMA_ITERATOR(vmi, mm, start); + struct vm_area_struct *vma; + + for_each_vma_range(vmi, vma, end) { struct userfaultfd_unmap_ctx *unmap_ctx; struct userfaultfd_ctx *ctx = vma->vm_userfaultfd_ctx.ctx; @@ -852,6 +856,7 @@ static int userfaultfd_release(struct inode *inode, struct file *file) /* len == 0 means wake all */ struct userfaultfd_wake_range range = { .len = 0, }; unsigned long new_flags; + MA_STATE(mas, &mm->mm_mt, 0, 0); WRITE_ONCE(ctx->released, true); @@ -868,7 +873,7 @@ static int userfaultfd_release(struct inode *inode, struct file *file) */ mmap_write_lock(mm); prev = NULL; - for (vma = mm->mmap; vma; vma = vma->vm_next) { + mas_for_each(&mas, vma, ULONG_MAX) { cond_resched(); BUG_ON(!!vma->vm_userfaultfd_ctx.ctx ^ !!(vma->vm_flags & __VM_UFFD_FLAGS)); @@ -1285,6 +1290,7 @@ static int userfaultfd_register(struct userfaultfd_ctx *ctx, bool found; bool basic_ioctls; unsigned long start, end, vma_end; + MA_STATE(mas, &mm->mm_mt, 0, 0); user_uffdio_register = (struct uffdio_register __user *) arg; @@ -1327,7 +1333,8 @@ static int userfaultfd_register(struct userfaultfd_ctx *ctx, goto out; mmap_write_lock(mm); - vma = find_vma_prev(mm, start, &prev); + mas_set(&mas, start); + vma = mas_find(&mas, ULONG_MAX); if (!vma) goto out_unlock; @@ -1352,7 +1359,7 @@ static int userfaultfd_register(struct userfaultfd_ctx *ctx, */ found = false; basic_ioctls = false; - for (cur = vma; cur && cur->vm_start < end; cur = cur->vm_next) { + for (cur = vma; cur; cur = mas_next(&mas, end - 1)) { cond_resched(); BUG_ON(!!cur->vm_userfaultfd_ctx.ctx ^ @@ -1412,8 +1419,10 @@ static int userfaultfd_register(struct userfaultfd_ctx *ctx, } BUG_ON(!found); - if (vma->vm_start < start) - prev = vma; + mas_set(&mas, start); + prev = mas_prev(&mas, 0); + if (prev != vma) + mas_next(&mas, ULONG_MAX); ret = 0; do { @@ -1443,6 +1452,8 @@ static int userfaultfd_register(struct userfaultfd_ctx *ctx, ((struct vm_userfaultfd_ctx){ ctx }), anon_vma_name(vma)); if (prev) { + /* vma_merge() invalidated the mas */ + mas_pause(&mas); vma = prev; goto next; } @@ -1450,11 +1461,15 @@ static int userfaultfd_register(struct userfaultfd_ctx *ctx, ret = split_vma(mm, vma, start, 1); if (ret) break; + /* split_vma() invalidated the mas */ + mas_pause(&mas); } if (vma->vm_end > end) { ret = split_vma(mm, vma, end, 0); if (ret) break; + /* split_vma() invalidated the mas */ + mas_pause(&mas); } next: /* @@ -1471,8 +1486,8 @@ static int userfaultfd_register(struct userfaultfd_ctx *ctx, skip: prev = vma; start = vma->vm_end; - vma = vma->vm_next; - } while (vma && vma->vm_start < end); + vma = mas_next(&mas, end - 1); + } while (vma); out_unlock: mmap_write_unlock(mm); mmput(mm); @@ -1516,6 +1531,7 @@ static int userfaultfd_unregister(struct userfaultfd_ctx *ctx, bool found; unsigned long start, end, vma_end; const void __user *buf = (void __user *)arg; + MA_STATE(mas, &mm->mm_mt, 0, 0); ret = -EFAULT; if (copy_from_user(&uffdio_unregister, buf, sizeof(uffdio_unregister))) @@ -1534,7 +1550,8 @@ static int userfaultfd_unregister(struct userfaultfd_ctx *ctx, goto out; mmap_write_lock(mm); - vma = find_vma_prev(mm, start, &prev); + mas_set(&mas, start); + vma = mas_find(&mas, ULONG_MAX); if (!vma) goto out_unlock; @@ -1559,7 +1576,7 @@ static int userfaultfd_unregister(struct userfaultfd_ctx *ctx, */ found = false; ret = -EINVAL; - for (cur = vma; cur && cur->vm_start < end; cur = cur->vm_next) { + for (cur = vma; cur; cur = mas_next(&mas, end - 1)) { cond_resched(); BUG_ON(!!cur->vm_userfaultfd_ctx.ctx ^ @@ -1579,8 +1596,10 @@ static int userfaultfd_unregister(struct userfaultfd_ctx *ctx, } BUG_ON(!found); - if (vma->vm_start < start) - prev = vma; + mas_set(&mas, start); + prev = mas_prev(&mas, 0); + if (prev != vma) + mas_next(&mas, ULONG_MAX); ret = 0; do { @@ -1645,8 +1664,8 @@ static int userfaultfd_unregister(struct userfaultfd_ctx *ctx, skip: prev = vma; start = vma->vm_end; - vma = vma->vm_next; - } while (vma && vma->vm_start < end); + vma = mas_next(&mas, end - 1); + } while (vma); out_unlock: mmap_write_unlock(mm); mmput(mm); diff --git a/include/linux/userfaultfd_k.h b/include/linux/userfaultfd_k.h index 33cea484d1ad..e0b2ec2c20f2 100644 --- a/include/linux/userfaultfd_k.h +++ b/include/linux/userfaultfd_k.h @@ -139,9 +139,8 @@ extern bool userfaultfd_remove(struct vm_area_struct *vma, unsigned long start, unsigned long end); -extern int userfaultfd_unmap_prep(struct vm_area_struct *vma, - unsigned long start, unsigned long end, - struct list_head *uf); +extern int userfaultfd_unmap_prep(struct mm_struct *mm, unsigned long start, + unsigned long end, struct list_head *uf); extern void userfaultfd_unmap_complete(struct mm_struct *mm, struct list_head *uf); @@ -222,7 +221,7 @@ static inline bool userfaultfd_remove(struct vm_area_struct *vma, return true; } -static inline int userfaultfd_unmap_prep(struct vm_area_struct *vma, +static inline int userfaultfd_unmap_prep(struct mm_struct *mm, unsigned long start, unsigned long end, struct list_head *uf) { diff --git a/mm/mmap.c b/mm/mmap.c index c3609e4e6f12..572a2a474b49 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -2552,7 +2552,7 @@ do_mas_align_munmap(struct ma_state *mas, struct vm_area_struct *vma, * split, despite we could. This is unlikely enough * failure that it's not worth optimizing it for. */ - error = userfaultfd_unmap_prep(vma, start, end, uf); + error = userfaultfd_unmap_prep(mm, start, end, uf); if (error) goto userfaultfd_error; @@ -3053,10 +3053,7 @@ static int do_brk_munmap(struct ma_state *mas, struct vm_area_struct *vma, goto munmap_full_vma; } - vma_init(&unmap, mm); - unmap.vm_start = newbrk; - unmap.vm_end = oldbrk; - ret = userfaultfd_unmap_prep(&unmap, newbrk, oldbrk, uf); + ret = userfaultfd_unmap_prep(mm, newbrk, oldbrk, uf); if (ret) return ret; ret = 1; From patchwork Wed May 4 01:13:59 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 12836646 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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5C922C433F5 for ; Wed, 4 May 2022 01:14:21 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 1DAD38D000F; Tue, 3 May 2022 21:14:09 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 18CE48D0003; Tue, 3 May 2022 21:14:09 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id EA8E48D000F; Tue, 3 May 2022 21:14:08 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id D834C8D0003 for ; Tue, 3 May 2022 21:14:08 -0400 (EDT) Received: from smtpin07.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id ACA3B29289 for ; Wed, 4 May 2022 01:14:08 +0000 (UTC) X-FDA: 79426289376.07.DE41968 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by imf11.hostedemail.com (Postfix) with ESMTP id 4EBEA4007F for ; Wed, 4 May 2022 01:14:04 +0000 (UTC) Received: from pps.filterd (m0246632.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 243KjMlG013507; Wed, 4 May 2022 01:14:07 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=EaeqlB2PelExQhyJVVbDPyVJ4zG7Jb9T64R1btZZCwST9ZqEk5cLioiyrxSXAyIrWwJA sBQOEtIQICcKuuMrkO9Mcg4YsK3Jd5eUKL7tZoaXBDR4L0sGFbSsgCQfmUfuDbejgIxw lNR4WPFUyyk4U7UGyn7w8gVc65nOu6cWSZMgLqIvDiTao6XWSKUGWHTzUl3wveCulxQY VzHx5IXLTBe43hTKchOE/7XlNDqDfdn/QeB0hSD41KhOItUleUgbx13xY61Qzl4dkrUt 4DYteJ8l/bDw0uT9pfGPpKj5og4K8xtIkk/bof6YAHDP/aXRiUZQmV/H78gHXIwqr+V3 vg== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3frvqsf6es-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:14:07 +0000 Received: from pps.filterd (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.16.1.2/8.16.1.2) with SMTP id 2441ArQ2020035; Wed, 4 May 2022 01:14:06 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2048.outbound.protection.outlook.com [104.47.66.48]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com with ESMTP id 3fruj922jf-5 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:14:06 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=RwkO0pGN3l4oMX9wr6naFvPxCCyAOTBAUEJew/GCK2VBgMG2JZkpSfqtk/YqrIEr0R5FpBngmcZxGtn2YePRPfBzuBuDPRT6DidLWy6BJtijBQm3+8KyOpMCy0uuP9wz1is6kcUiMAahqAwPAaqCuPwu9zPb+LvrGGwMDChLg/xdhjZ8ITm4FK3+0gJ5U05GoAzkHtDEV7cMMS6wEuX34l7iNDiUroqNFIF7QX4/Uqg2/nl8YEzhD+4m+PCzh+2tv+9aCMXnZQZ8hu8bEW0WAcSlmwYO/62xocq2MUp/o+9h6ZNNlgCDAD+4oPm7d/k2gTNDspQkL/isKNg1TFUpWA== 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=mCfKaKfC5g5V1WMu7+LIr/eTiUmF3RgO+4f6DpG3LBYfPiTXPR0LLIkLd3XMUbkuiCb/TSid6epInz5LB4hn5R1yRHrArv7KjFpc8T9rUuuqbCcqrZuxwFmCp5d6bI6ah13bkNQqM4Um+6mN5+fbTYBW6vEhhqycGlklXTRR6A6ibVTxbKsJBVSEaLZZC3gaONVvMc4SeMTitSFdgKqRkaCFrWORTfE0LvNkQTNJpoMnZjMOsxHwnmktjRJz9Zt3f26RJr6zlZbywfb9wASWwS7Czi2XP34ywIDFE/DC0IceBHHURHKvimjgdBqGGE98t2J79NNb1tq4CN8gLIqchA== 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=xa+Am67f8kk6cHpZc7FE6PgyirQYJufGhZT3QBfwA4vrbcHstvWETxhcddBAUpm+0rNcxxIbCs78Hn7ThaV0y30SxF8bd6l3nk6vxiKBqJMYOsuIsA8sufGFFzjAzx4TnDOZ7NUGReGihYSh08uD2AsMld+joZLriupusO7HN8s= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by MN2PR10MB3728.namprd10.prod.outlook.com (2603:10b6:208:115::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5186.21; Wed, 4 May 2022 01:14:03 +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.5206.024; Wed, 4 May 2022 01:14:03 +0000 From: Liam Howlett To: "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton Subject: [PATCH v9 45/69] ipc/shm: use VMA iterator instead of linked list Thread-Topic: [PATCH v9 45/69] ipc/shm: use VMA iterator instead of linked list Thread-Index: AQHYX1Q8JJmXt9j4t0q8kizP1OeS0A== Date: Wed, 4 May 2022 01:13:59 +0000 Message-ID: <20220504011345.662299-30-Liam.Howlett@oracle.com> References: <20220504002554.654642-1-Liam.Howlett@oracle.com> <20220504011345.662299-1-Liam.Howlett@oracle.com> In-Reply-To: <20220504011345.662299-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: 521d7658-309e-4fee-47c0-08da2d6b60f8 x-ms-traffictypediagnostic: MN2PR10MB3728:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: /jqv5Kfo1htglW3FATFZSpxYeEQHZH14CJeh2DxibPJwWNIqDB7b+qKA+iNUgmD8JhW/fPLbPv4eWlly9mdTlQoTxtwwHGzG9B3lrgRn1r2LVwKVz7y1izV4WRIVOaqEGiCnEa07KIaqS2dL2we/M70ueaxhoqxb7Cf/5i9W7fczhbohvyWA9q5AlgQYBOocuNdngln/Ajx9w9IMDADKroNQH7WnR6DQXl91jOlJB6qUjftdTgUf7eMqkYOiXYZCm/5a0rSFQorDNOcH+S/gpPe821V9Q5F+aXIwdrPc/icpi84mmF9Qh4YDoe0tyrsR8MvvZJHyEUlGfnyV246Pki+5uPDyVOB60iqwVdINdp6wBCr9mc9vok2V540reCZNvD8kujA4gA6aVU2rg2WpUjJt8GaieR5SqdhRhH9ivPJQtTTEkyiIaiaQoQ+8zaA/YjTUBo95YgyEmRfVABdLgOCAeOIFVpZaXWpselMPXfpV6IgchvL+f0uF+bHOFvH03xEEh8S+sTWsiEzIBAFANXfYSyHbLUfBLZF6n6AM1/c4wT930Op37d1V+kWNIKd2rpVmg64H+H+ef+b2K9I5rHhh+HbbYFxLZo1wg8+Hpk2pJGfjH4PpkhlZuTSixtCWBDcDx6FuIubgZXZ6LMl04nmsN4xMn6wJrx23CqL+bWdNpMFTMDSLfnScmZaSPJyvgZAwPdZdw+KKY1V9B7PB/Q== 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)(71200400001)(508600001)(5660300002)(8936002)(6486002)(86362001)(26005)(6506007)(2616005)(6512007)(2906002)(83380400001)(44832011)(186003)(6666004)(66946007)(91956017)(76116006)(110136005)(38100700002)(38070700005)(36756003)(316002)(8676002)(66446008)(66556008)(64756008)(66476007)(122000001)(1076003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?WDJR2SziXkfvDqPW7wCjqB+?= =?iso-8859-1?q?If7Z/+BqSdvEMG7No5XtDrN6dxAJ4MMk+m0fZuWx/mBTv8XafKyPaQdu83Vu?= =?iso-8859-1?q?nm+VrYThOiO47uYZ/gUJif50xigfLQMsJ9qzjtMj5tq3/CbEPCdt5ky/Y0Gj?= =?iso-8859-1?q?lVCV+FzZ7dIFcgQXSna2d3MRiJhoddqJJtELnzVqjc0DhvKz+nKbEE7zGGiF?= =?iso-8859-1?q?uidi/GcW4WzIC2FbmjtqKbxbN0EPb5yAdFgG/4F2VWQtxsMBJmXowphw7PGA?= =?iso-8859-1?q?1Ne9KnSEwDATENbJa6ElEhKIzLLIJ4LsHeyiFymH3Y8JJ9Bze0fsxRtX5l4a?= =?iso-8859-1?q?gQaG5L01nc+4j+/1XyS2KPYbnOeajnBJXPMamoilwsCMz0wtjvzjtw/GeolG?= =?iso-8859-1?q?0VLtQeQwn7+NK1n8h5/mcal/DsWUBxM9ceGSbbb6YOvQKfRjOQm2Y4BA1FTN?= =?iso-8859-1?q?LxqBr+hV2E8Z0uZZ7xpnNHQlvPo6GzAQSagwlej6VW6929XTEnwdVEN+v7Bb?= =?iso-8859-1?q?bV6GXtZAwp4BhShnnS4/7v/hwyRG3tJuBe9yQaxeva60M3sJjD7W6B43RFol?= =?iso-8859-1?q?MSyVKngLDIx7RzI5x9yk7sBzQomLE2Ij8W9LXzEcgesfnKGmd9xV/4sg8igE?= =?iso-8859-1?q?NdO91I5IV4itvfQlaWUYBuiioOUQxG/KCwNJYw5mOGJ2+/rM1NEndFPqo4HV?= =?iso-8859-1?q?ufeF6Wd+21mhrovzfOt99LoYbCW7JH1geOZszzvMX0kPktV4OZcifChHvEQa?= =?iso-8859-1?q?Wdh5c/ybN9UO8ViDl9Jqd5GDOZm7Uo6ua2MOlcJodN0dQ7JLbStsZ4kODBWw?= =?iso-8859-1?q?x4i5c/0rcVJ8dEesIakNggcLVUIW8YrqC8yOmNR2JTDedcm+e1/MzzZKgyP0?= =?iso-8859-1?q?z28xt1lYzeZUwOPBx9EBsL12sLlheZHs6m1d09x2F8gBZ3rl3gC11I4mMVTV?= =?iso-8859-1?q?qj+EPnM5avYWoZkNdNJYF32EEGOepB6OatSz4tpFh9GwgHFiNKvvg67otWmq?= =?iso-8859-1?q?KCcrxA8MEn/YHfEUTyHOir9GdPyn1Rf/+pbh+psf9vY8tjWqSXjNYffkYula?= =?iso-8859-1?q?wQAB/vmKVdENLESCV0kzTFJTMtiq8HtMGkNM7p//Bs74F2SJwlu8MHbyTBKn?= =?iso-8859-1?q?rHE8dHp6DE4rwBzLgXpLQdt1iI8DEu5N2+HFlpHnm6atsIgtWcjqmLc+sfYd?= =?iso-8859-1?q?1ic85ccWI+kZqngrR9b0bw4rwQCvG2CJ5E90aCHGDGECBj9mw1MDS5KBo4ud?= =?iso-8859-1?q?r9iLdJ+gUvM2MlzJ4G0eoJZ63Nn95mruH1wOYSXazfq7tlZ0ADbWKLxuiFua?= =?iso-8859-1?q?zbTBX1Bnsr0Hj9HDI3mE5UgT5qjvwEZgArcC1G2FwF3rJDGCVJyCmR0mKuUd?= =?iso-8859-1?q?aTaPUdNnYQRTlmICMyNGNoXtRVTKERS9GiPoKIDXUB4gYlK8i5QT20DyPfN/?= =?iso-8859-1?q?ed1ad9r/XzCHW4HsToT4UNzrXKW1kvVsDTJsu60EN3+YTKIO+9I6bwkZ4ZiV?= =?iso-8859-1?q?oDkBNvscMRvpfGCg5gqlnDoGWMaupttnCdLnSNdWcH1tBJxltAsM4GU8rw21?= =?iso-8859-1?q?6pBZgWqwO88iVAHUovt92XJh9aM8IkJAVxsHIp5yC0zG9gnOmxhT8ZFfgpJq?= =?iso-8859-1?q?nZvChqriPTZOpCJ1FOpYaLxd76+BK/YjElief6rhbchHxRBgRyRQEDwtnf8d?= =?iso-8859-1?q?MroTtu/uOCqM7dvft3lAEJp13MJ5yo6yTsKy2Ug4MWKoFg2qXpKN0Az3PYOQ?= =?iso-8859-1?q?nVMAHh0WRy0IQly56bRoFlslA3jbXAy5F5F5KFRJPMIevFlgSEVRgLV7kK0R?= =?iso-8859-1?q?jnCc3HWM=3D?= 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: 521d7658-309e-4fee-47c0-08da2d6b60f8 X-MS-Exchange-CrossTenant-originalarrivaltime: 04 May 2022 01:13:59.9233 (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: yIiHie2jyxKTPVq+Y64cV38C+ld9FArYex7NFash7gQmLzYRJnX6YiAkm/RvfeQApHFshph9STE04+axELNcRg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR10MB3728 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.486,18.0.858 definitions=2022-05-03_10:2022-05-02,2022-05-03 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0 mlxscore=0 adultscore=0 bulkscore=0 suspectscore=0 mlxlogscore=999 malwarescore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2205040006 X-Proofpoint-GUID: LnJ1059x--L2HSm6XcZDn0imy92NGPS2 X-Proofpoint-ORIG-GUID: LnJ1059x--L2HSm6XcZDn0imy92NGPS2 X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: 4EBEA4007F Authentication-Results: imf11.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2021-07-09 header.b=EaeqlB2P; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=xa+Am67f; spf=none (imf11.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-Stat-Signature: 8ikqzpx6tekg6yny8qsas934ok7uwifp X-HE-Tag: 1651626844-472715 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: From: "Liam R. Howlett" The VMA iterator is faster than the linked llist, and it can be walked even when VMAs are being removed from the address space, so there's no need to keep track of 'next'. Signed-off-by: Matthew Wilcox (Oracle) Signed-off-by: Liam R. Howlett --- ipc/shm.c | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) 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 */ From patchwork Wed May 4 01:14:00 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 12836648 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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id AB27FC433EF for ; Wed, 4 May 2022 01:14:39 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 44AB08D0003; Tue, 3 May 2022 21:14:39 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 3F9118D0001; Tue, 3 May 2022 21:14:39 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 255738D0003; Tue, 3 May 2022 21:14:39 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 15E0C8D0001 for ; Tue, 3 May 2022 21:14:39 -0400 (EDT) Received: from smtpin03.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id E0C23205CF for ; Wed, 4 May 2022 01:14:38 +0000 (UTC) X-FDA: 79426290636.03.34F285A Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by imf02.hostedemail.com (Postfix) with ESMTP id 21D9F80087 for ; Wed, 4 May 2022 01:14:32 +0000 (UTC) Received: from pps.filterd (m0246632.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 243KjZ6P013502; Wed, 4 May 2022 01:14:37 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=797m5TnHVDs8tnas1P/DnkRsDpE902N2dzwysrMsHVA=; b=qP3afzG9F0LIlwHIXp90yheHC1lRr+L4UFO2TaGEfiZousR64njb1azgCqMftPE/q3m8 wBh3GYFy7ZByvwTeKarorodGtBG915EXFnop161+Ig13rzjh7QK4Zf8LOACNJK2CBhIr wVrBSSfBTMZjewDb4KNUay6hFhxHQrev/APcv9ktSXbQ5nAAvC7hGSjWdqsLvewLZ4lx EnSuGH/d3hgTIp0Cii6+qEVRAmlF1ynwEuhGloTlZWpBGnR4YJ2EqJ+5SRWJPEQoQs8g W1UEA/YBS0GkfLbKvUWOvkzsJuTkUnaSlXox10b4ZlIOU4X2iEcCjtjgEtkwmvbrJ/8r nA== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3frvqsf6f7-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:14:37 +0000 Received: from pps.filterd (iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (8.16.1.2/8.16.1.2) with SMTP id 2441AUFX023411; Wed, 4 May 2022 01:14:36 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2045.outbound.protection.outlook.com [104.47.66.45]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com with ESMTP id 3fruj9g4fp-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:14:36 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=PJuIEjq76b8arLOgWs4BiHQ50tCwskD1sf1Mr7pzLwvlBiozR2KmThSZMlaBCvZckt5UTFcDMlqO9R1nCFbEDAI10i1KJKYeUzVOAPoImIypekPDgFCzS+pWYDsgZ21OBIb+y3TTC7yGh/LMrsi4K7YeHTOv7ZhyNdetNQ8AUE4cSm7RI+pHKB5BvswE5WqQwB0e3nOobhMcIUz1fK5IascdiLtkv4rOD4MjVAZXv/OcBLRbqmiLaDQsfXBoSoujT2VLoUs1iqbj5wyWrZ/IDTtujdLIAQvWVFDKOwYKf4xNohzDDFoWQiJO0zqwiGIAu6ivEuGpf5f8K7lpRwpmxg== 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=797m5TnHVDs8tnas1P/DnkRsDpE902N2dzwysrMsHVA=; b=E//YORNCCnDrR1Jqr34y7vaTxQLMBiVrIonetnYfON9HJWkm9SRwhiJKCN4O94oCRlaMQ4ye/dBFM7i1LcvsvKtLA18FfAU/oG/EssMhfVOQrqbRImR+Jq5cN7dFpcpkUM8l4Oq48vXdLRni1hBfmQ/Yu43MeYLntW0bKH9bsQGJLjqaVs7gdNnBV5A6kN5HteMdnL0+zBzdsRjUvbwp/KbeJBh9kx3IJfnc495V2CSsJrcpcfgGoFyvCG7DQis3E9vWXFonzCZ+Z+1nJSB/ZPrpQZl37UY0zeV/0ZtdiqFh+KUDMP6EgxSprPxTKosJ+3YbW4X171V28JetMpGXww== 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=797m5TnHVDs8tnas1P/DnkRsDpE902N2dzwysrMsHVA=; b=PfTckn+P67YlKCO5Lk+uscKReMYoe1HPRHfbDJFaYW26xAY5A0MONHC+VGfRXoKaxOCtvO6riOzIC3q3bGnKimr1q9jzYS8EhGV7OuCsIshHp32RKuJTsClU/L3YDwGhhuu/B+S0g5I72G1XZQbEi8TJzyfsl3AWTdofwq2szwA= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by MN2PR10MB3728.namprd10.prod.outlook.com (2603:10b6:208:115::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5186.21; Wed, 4 May 2022 01:14:34 +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.5206.024; Wed, 4 May 2022 01:14:34 +0000 From: Liam Howlett To: "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton Subject: [PATCH v9 46/69] acct: use VMA iterator instead of linked list Thread-Topic: [PATCH v9 46/69] acct: use VMA iterator instead of linked list Thread-Index: AQHYX1Q8M1ImekAzhkSm96/WKPCN8w== Date: Wed, 4 May 2022 01:14:00 +0000 Message-ID: <20220504011345.662299-31-Liam.Howlett@oracle.com> References: <20220504002554.654642-1-Liam.Howlett@oracle.com> <20220504011345.662299-1-Liam.Howlett@oracle.com> In-Reply-To: <20220504011345.662299-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: 56039387-79ae-41f5-d242-08da2d6b7331 x-ms-traffictypediagnostic: MN2PR10MB3728:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: pQtGBtezYeJAHv6FrzuXnvf+Kt1tDZZc5kocElGtNnRCWNo2xfS5miEf2tr0emXzrQuNtwYl3+ipwfmTgX4A87V6fySWprbEk6f/tDyCflLgpEMzTVv2o4sfofL1tnJZFiUErhh2kPOfDaPVwFbsbMcxffjar2xA1WQrrwb0muu1Vjc+UqcH+3CCqtcIKbTG6Iv19QNnoeuqwLtzzuggcqWPon8iFYrPKbGLsCiR+zWrRtH5SLvo7yGDR0Dz7G7pW4t8b4oAl5j5SgmYLCyM5KA/SPNgfY0VqGNuuvVYVR1oyg8akQdVXO2f8duWKRNuhDsQ0WgdPOaONOz9dtH+bhvrgIFzYpCg4Uuueb57ETe/qG4MlUxuqoiHjiVo3efOzCLp6nZRqv+H45E7ZLjUGZvpfipVr6TSUr/5ybbIATrlRePFSYsWynXxGh8m8bsr5ZAHXTNOTXv8JokFrtyNNMipsq/9gr6rkWt7cdQsAhY26EHsZcTK9j9SvGGpa02SKvrxc0R/bcJEF/m5p6TQsh0uiLX/evdKsni7L3CR/8nx/FvRIfyNx9mvjpXcG/em1ZJAWVdn9r3ajvyZZmjccjmRA2N3SeWdsLL7Lvq8drqCsQV2ucufB7fT29zeBkbZtVlSh+8TICgEjpuvlclTum93Ivp4pPza2BAsGKHjGTFQCzry0MR/OrFLoGjhjW4TbIgqgTOAQsY9kRGL+v0X/g== 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)(71200400001)(508600001)(5660300002)(8936002)(6486002)(86362001)(26005)(6506007)(2616005)(6512007)(2906002)(4744005)(83380400001)(44832011)(186003)(6666004)(66946007)(91956017)(76116006)(110136005)(38100700002)(38070700005)(36756003)(316002)(8676002)(66446008)(66556008)(64756008)(66476007)(122000001)(1076003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?BxvUx1Jx9fxF85jOQ5LawNe?= =?iso-8859-1?q?hNx8GZRUrGvlLocKsakTuPu7op/E4kdhPaTWuO665FGkbAJ4I+66Ib9z/xI6?= =?iso-8859-1?q?yOV0r23GZWtVs81pNiFZeeX/XNhHZqqGIgznV0z1EMUfc10CRbWYKIrTIypp?= =?iso-8859-1?q?f6GbSL7t5kZlHDqF0K2fnCghenqwk5yAU9OMTLNj2RWqsHEh5cGuVj5W4HJR?= =?iso-8859-1?q?2aVM5O2B0XKrJqC/MBObcym2cTSNTzgF3jrE2ABwL2LSSdFRkATUODJSuJgv?= =?iso-8859-1?q?KoD6XSlBDWwB4PPNt9KGuMKg+ZzDedXN5WXUJP2OQJHbbrS5H76EnP9r1e8Z?= =?iso-8859-1?q?uu+dEJUcIja4Hf/LE6t+DFjEm2MR8TRugXdei+rXC07i8+mHT3DeLB74sM6V?= =?iso-8859-1?q?3TUFemj23qs6Pmm4gUiVHfilMSWm30S2SkvvABSOZnzq/M1LWmbWB1iCCW2S?= =?iso-8859-1?q?ihmEbPwau+Eq4NPM53PXcSm5w6OPzensDCfAtQvpjWeYgTQZk+845/yrPtVG?= =?iso-8859-1?q?zrXjJpQw6TuOXVI1mBAck+m4TNN83idD8UbtTkmtIQzPahFMW2eyEslKta1J?= =?iso-8859-1?q?FyfcalasPxc6QJCY4FX7UFkommk0FBFwNPMearuaRY0rMa/oo8UMpVYp/9mr?= =?iso-8859-1?q?+IRNVprm02jpz3lnSaQLBptuUYWFUMD9SeX3Uaa1sPqGLfeim+ROrQqd3Ahe?= =?iso-8859-1?q?isyMAXp9e6/S/UtHZF+8QL1bo4XJeGi/SR7P2DkYLaI9JFJiMhSwJHTvWvvS?= =?iso-8859-1?q?y02IJY3xuIdNWjZM8W5A7XWhuySUCZ7G9aZ5iTgvLfLZWPyETmhISmYQ+jjH?= =?iso-8859-1?q?p/523Er5RHL7JmaBWuzGsQxCYhG8+xjCNqxEN4gmvWtfI1X1Gw2r7bvHnWVS?= =?iso-8859-1?q?4QIwWvSxAPUwTzqJlsWyPTFER1M15v16mGb7KKvDjsjYn6ytthWIkRT73Mpr?= =?iso-8859-1?q?V7n73t+PJQfNunnrN2ED4yjJRADYfVlz2EOanfsmzyyFqy/L4TJQXbxTBl+k?= =?iso-8859-1?q?EJPsa58Yx3imG/BvVmh6otfE6ecvxYIbfp9y4KphS3GN6fH6dJeR90Tv32dZ?= =?iso-8859-1?q?gioGojnj3oyr4jLOp2zRDaafTm1PpzZiXv0IteN0ZWmZc32vhvJmPwp9Hn7Q?= =?iso-8859-1?q?sd6NEVNRJj4IeiQIlhf4xz+5vgppr0SANiJh5OZiMuKoLr5dQ0jv9S4VYIpb?= =?iso-8859-1?q?scdnsM18V+rYGuxRJI0Lj1qEMUrCKXubBrrFZsMmitS80tdKAkAnWrTamNV0?= =?iso-8859-1?q?1Ma+r57n3tTvSpvciW5YwRGC8GXnn1VNO7SB4YG9jdzT6fX7SsBGykjz+RIJ?= =?iso-8859-1?q?9S59R1t2aNhpJBiPvW8qxf+ytdio671eE2mx0ZcsjwF0i+HOrDe1TQnR2wll?= =?iso-8859-1?q?h0jgpfi86gNzAkfbJbzP1AKbBoaNV4P+26BSdVAgh48LqQbYTpuG386GrMm2?= =?iso-8859-1?q?3knmlxr4/Az98sfbqF0IagR+755qquvNXI7oZFPpyKMm5shXQHUllqsFxzUO?= =?iso-8859-1?q?mS2sjCt1Tqy2IxfMNUGgHwuA8TaNh7EdciR/MXQs6C38GkhiohPaXAjuKvNb?= =?iso-8859-1?q?JtjQ88naOtYrtql2lo6E485gTTHvrjcpBPr68KkBadJvOZjGZbxRXskLQXS7?= =?iso-8859-1?q?+bAjWD1LNhG4lGxB4suE6B0XtKWI4HUS95Sar68QUbud7JaECPBRzMoRZ9JH?= =?iso-8859-1?q?O3mFivB/G05znkfYAutvFEPQ6jYeTE3cvOpLlBxa+/8PlIHZXKif6Ywi0dou?= =?iso-8859-1?q?eORWRFw1KJbzDq1UvpYnSTO9ZEosBnLYDGYjYUfMIIFCCS4IJh4LJztt3vXV?= =?iso-8859-1?q?r5vR18fQ=3D?= 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: 56039387-79ae-41f5-d242-08da2d6b7331 X-MS-Exchange-CrossTenant-originalarrivaltime: 04 May 2022 01:14:00.2358 (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: jh87cMrcRTUu66LUsBj20+f6nBYII11KMobKYRQIlVxqWST/j5c3JO4xkOfZnseZz0FBec1jQTWr5M8gGhUBpA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR10MB3728 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.486,18.0.858 definitions=2022-05-03_10:2022-05-02,2022-05-03 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 phishscore=0 mlxlogscore=999 mlxscore=0 spamscore=0 suspectscore=0 bulkscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2205040006 X-Proofpoint-GUID: UrA5vxtjO32hUMkffBjF7IsCIwZUEaxZ X-Proofpoint-ORIG-GUID: UrA5vxtjO32hUMkffBjF7IsCIwZUEaxZ X-Rspamd-Server: rspam03 X-Rspamd-Queue-Id: 21D9F80087 X-Stat-Signature: a5uigtmfjbcm9giqjr73tfmcidbctn85 Authentication-Results: imf02.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2021-07-09 header.b=qP3afzG9; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=PfTckn+P; dmarc=pass (policy=none) header.from=oracle.com; spf=none (imf02.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-Rspam-User: X-HE-Tag: 1651626872-990191 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: From: "Matthew Wilcox (Oracle)" The VMA iterator is faster than the linked list. Signed-off-by: Matthew Wilcox (Oracle) Signed-off-by: Liam R. Howlett Acked-by: Vlastimil Babka --- kernel/acct.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/kernel/acct.c b/kernel/acct.c index 3df53cf1dcd5..2e7bf8d41f04 100644 --- a/kernel/acct.c +++ b/kernel/acct.c @@ -535,15 +535,14 @@ void acct_collect(long exitcode, int group_dead) unsigned long vsize = 0; if (group_dead && current->mm) { + struct mm_struct *mm = current->mm; + VMA_ITERATOR(vmi, mm, 0); struct vm_area_struct *vma; - mmap_read_lock(current->mm); - vma = current->mm->mmap; - while (vma) { + mmap_read_lock(mm); + for_each_vma(vmi, vma) vsize += vma->vm_end - vma->vm_start; - vma = vma->vm_next; - } - mmap_read_unlock(current->mm); + mmap_read_unlock(mm); } spin_lock_irq(¤t->sighand->siglock); From patchwork Wed May 4 01:14:00 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 12836649 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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 89957C433F5 for ; Wed, 4 May 2022 01:14:40 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id A6B448D0011; Tue, 3 May 2022 21:14:39 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 9C5CD8D0001; Tue, 3 May 2022 21:14:39 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 817628D0011; Tue, 3 May 2022 21:14:39 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 738A18D0001 for ; Tue, 3 May 2022 21:14:39 -0400 (EDT) Received: from smtpin28.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay11.hostedemail.com (Postfix) with ESMTP id 53B6E80296 for ; Wed, 4 May 2022 01:14:39 +0000 (UTC) X-FDA: 79426290678.28.B1F4122 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by imf16.hostedemail.com (Postfix) with ESMTP id A312018008B for ; Wed, 4 May 2022 01:14:32 +0000 (UTC) Received: from pps.filterd (m0246630.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 243MOe0J026132; Wed, 4 May 2022 01:14:38 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=ncIk/uGiIj8quCz820qQp2d/C4ot/AJNrHmIZxhnCWA=; b=hUSbGn2ZPxdQut6IUiistq7HF1bm0VgwNMpkeFuN1vVzjFYBl/A8rkY96eD/MC5ySGJG Zu6Nf3B1bj3A8FdErz8Plq9y/ZkFZBZxLsMc/dF2QKeFAk3j8VDFzGAugiicUXPVMGba kKD9BfYFHmghADnyQ4pKyZB9jRNudmHzVceGpL4QXScGkzJGPFInG78su53bDMctUuFL qWIDioL6RXk1Dh/bkOSw0o/t4AHT/hkuksHcwSwZ9xYr8uvCbvMWfhhqkfdamDAxQymP byl+55s+HJOpjNH5+oeMfIsAB7divsEczKOcZjcZc+AFncWZey6Axe66QbtpjRdN07Dw cw== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3fruhc72q5-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:14:37 +0000 Received: from pps.filterd (iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (8.16.1.2/8.16.1.2) with SMTP id 2441AUFY023411; Wed, 4 May 2022 01:14:37 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2045.outbound.protection.outlook.com [104.47.66.45]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com with ESMTP id 3fruj9g4fp-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:14:37 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=VuAl5TCP0plBwazhSGWFoxf8+NlcUp/abQwveOta8RWUVN37DEBk6KR7D3RH/faYKpvLKhRwjYI5Qj9Mf5uWjYvrpr7tnPlpiMW5KX1Bcn3HLoKxYqZmKxDe2mJrTTRze2XPuwWI4WBqDiIcG03u/SDafUjj0LdfTUP3Xmp5LHpZBZSr3FuUH/wt2AJfjPb2ntod1+6dzSEsCyxpb8M/7Iu3wqGb/tBnx2/5BOM8cdgwtEEFHZ1YDxvGXbeOwOSvRUIxPksUxiitR2B+M4EqJeI1N/9pfopFnFv2V6cCbpsC5SJXfQPsD8Y8laT+V0ipUPRrmxgTu09RPgPX1ZVfnw== 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=ncIk/uGiIj8quCz820qQp2d/C4ot/AJNrHmIZxhnCWA=; b=m1ydJPr/SOtEdcx+B554RFAqODMqSaEjAC39JxMNmnLoSyP6WbNDvszOzY6+BvVLM+ggSdGnysbld7zQT9ZPwGUnao2Z8Oxg/i8VbXZcjPqU2ucfZK8N9ZO8N5hLVQIz2hJU/2ej6TRYDns/SxOr6j0SPwCe/5YV149SsrcY9nRVzCQ6NpTKQ1dKr8nUB+bH6GJenRkKd5broUxnuPSKsvmP84vc2ke16ZfInVE3Xgi1MCzrSGl2KBUB5KnTQ66/NErnhWnPayiIalMAkEIp/su0BI7UYXwAOPFiiUDW7jNhskn0Wc/EA5y+M/W+zzgJ3bru5Sv64UG8byO41cAw9A== 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=ncIk/uGiIj8quCz820qQp2d/C4ot/AJNrHmIZxhnCWA=; b=DoCnmfrfKIoDFO9GXGuYiemDhuCkcGBcNk61ODrJ1eP2w5p/BlOPtTXL0OgSop94bzhtYrsvKgCg/LTFcCM50DEDMXt584FkVa0kCDRP0CUW1frkOz76bCGYF38e3/u5h4/GCtmTeOb82RVy8G2yW5sCsfw7I/A3hbMUUqmtUQk= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by MN2PR10MB3728.namprd10.prod.outlook.com (2603:10b6:208:115::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5186.21; Wed, 4 May 2022 01:14:35 +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.5206.024; Wed, 4 May 2022 01:14:35 +0000 From: Liam Howlett To: "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton Subject: [PATCH v9 47/69] perf: use VMA iterator Thread-Topic: [PATCH v9 47/69] perf: use VMA iterator Thread-Index: AQHYX1Q8vPmiZSdqoEK/8A7Rfom45w== Date: Wed, 4 May 2022 01:14:00 +0000 Message-ID: <20220504011345.662299-32-Liam.Howlett@oracle.com> References: <20220504002554.654642-1-Liam.Howlett@oracle.com> <20220504011345.662299-1-Liam.Howlett@oracle.com> In-Reply-To: <20220504011345.662299-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: 0dda8be3-159e-4405-7c96-08da2d6b739f x-ms-traffictypediagnostic: MN2PR10MB3728:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: cATVVJLIUt4VJkCO9SjWYHKhFtbvzQV4SDRd+Lo8HTwidUCPFWAX6fpKdJtZLgiti5Jhg6byIe3aDklhffWo09v3Rf4Lgxgvyn+DOJkusFY+lVJG0+2uVfwVEfo22/Ex5JUkphgnZ0ieohztxZGfAPEJqyA8kRv1wtlf/7RuFv2Ck6AcS2IoFbQ3iBtpZ/kJD2gyjqJFP7O5xe4gTYsydvZPE5QmxJZOtnYwbAE1ruT3Hk5AMUJCGr69Xzxsxx+oBBI1PfXiIrICClFJ2zS6JIfuSIVFX92pJDyKpZAEsbqV35VWpTpPJszs/iC1AD2s0Hu31jie9HMRtftdaeyUm58l1ZDSwxdWFncpwmaD5ZOg5Wd0HOJSc1hCVUkEkgtCPdvx5T/TT7WgYEwy/HCXZygA+53znKw7JHr7kh80H3Mp3D111X9tsWBPDOG2g3q7d+06t9L7jM7ur7rsW5Zx9TS6D7amPIi8kZBY+v9Iior09rv+wlcBhrbY2La12/Ga7a3aSTO7WzGkR9l4lVUtoOFkHqpw1zSdhCMolZJHHrfzkFy78O/o8SQdi5H2JnrYRYAC1xpySoojU5v+0X8BVG9ESTIZYZL0bBkgF9Cg2I+eSUvmBTV2/WvHBI4I/JY1rUuzY1sGg8DVjq2vljoREvJH2b0KsxGLja4YjGdDBm94DqkNdz3WhbPlEkN6qkVMD/aWROG6bIpz3ghJfRxL7g== 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)(71200400001)(508600001)(5660300002)(8936002)(6486002)(86362001)(26005)(6506007)(2616005)(6512007)(2906002)(83380400001)(44832011)(186003)(6666004)(66946007)(91956017)(76116006)(110136005)(38100700002)(38070700005)(36756003)(316002)(8676002)(66446008)(66556008)(64756008)(66476007)(122000001)(1076003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?vM+P8hiOIdpTD4JnEblmCB8?= =?iso-8859-1?q?WvhJ56HiZp69EzmcH5MmQAXBc7k8lNNxBO8o7ssNaska+BJ/hdFGepWfnMW1?= =?iso-8859-1?q?DiRvKZG3fm8FpEBy+tImPLaDiN3hS/G0q8ET6MZ3bBatb8Ci9HQDXxwltXNq?= =?iso-8859-1?q?fQO01MXPgV5pplTPWSvTN5QA9C0lDygC/9WsBtbaFT/NCBkP1yWEL8FNxDyr?= =?iso-8859-1?q?1TXS498hdzyIM/nklOKsAsi53v0DaEIDbZAF7mUuVIyj8G4A1QyTD+jybIhB?= =?iso-8859-1?q?Y51mbFfMyCN9BRaaddYKHlVVZQk8oIqleHKFhg3eAcgT7OmYdILuSbznsXeY?= =?iso-8859-1?q?VXqFh/UIB6Pn3iF8PIUjCBMe3ryuZl0bNNQebGJT78UUdhmL75pJz+9mDL1b?= =?iso-8859-1?q?ojqU2kLHpPbouTHQc77YmK7ZsS8qfT+VHAz++E1KSIdahmgpLeMzf+phzZEo?= =?iso-8859-1?q?ViIK21gAhEqHrWm6QRI7wyu9sHfI5ZMJL1FAUYZTyjv0aTH2JORfb05PYEyq?= =?iso-8859-1?q?GFkPwrV5aSon+dVWzM4vY3i/BCdBw6kP79bh9Z4zGkcxIx+F7FBf9EJIol0N?= =?iso-8859-1?q?Q/Odyop/ClqTKe21zK6pDVrY8R2InEXWZ5vNSGTuYqUx4hHcbsQmxBd+sH/L?= =?iso-8859-1?q?nLyXcGgx7wrdq6sKkomqNRF6kFsRHdF+t1vqJPo9qoJqVP+VIF9WekN0OjY6?= =?iso-8859-1?q?MwiqQMiHEqouJDZWN1mOZ/vT3dinFzAaP2usB7Nyv/mXQfOk4dmodPVU7nAY?= =?iso-8859-1?q?7LPZwsuDK3xigp7t8Vz0u/sAealqJOhrEsjQb8RhPNECZNBUZ2NAtbc0NW5M?= =?iso-8859-1?q?Eb6mopFb8tt1kqR45wBBFb7WTso0uTP2axYQahKJ9GcikUbwg36yNxGEmJGA?= =?iso-8859-1?q?W7iDL2F7gC7xz+8bj7ft+v88zw2N4rx2a5gYHXecOiyJRlWXMF3ThsQUOAj8?= =?iso-8859-1?q?h1YZKg14xis9nNLLrpWSGyBELmuZV1OAt5GDDwnmv6vsBXVUdZnuXYGM/tdl?= =?iso-8859-1?q?ccDeJIs7VIvRzIDmSbyKl539MlZ085QXnKSSizIC/FlgIGVNn9xQQndz6h7d?= =?iso-8859-1?q?H1AKcaSLYwyUJQ9Q/6jG91uu7+zDgHuXU3nHW9P8JneFxnNWaV+Epptrx/aF?= =?iso-8859-1?q?EZnKzOE50aUYcLGoBNaypKqEZQyroD0wxTSlDGeLdMkV62wq2fVHiLsX69ox?= =?iso-8859-1?q?Xxm0DPVuOsYsqxH1zkuym2HoRKi18AF1Vm6Pl8psvZjzqwyxgMXP0/YkunsT?= =?iso-8859-1?q?+dk/ay1FENxLoZE1MMCewMBFgD6BLt9NZhGn7h2ZdtMb2Nox7s4+vqjhCefG?= =?iso-8859-1?q?B570FIK1BXivuvL6Q7gCPenvl0tmNrcqW9lfEV+NhwqK3ReYescL4egoNXDQ?= =?iso-8859-1?q?7ZW4ON3OhBqdqTGXLJP+k3/bZlL4AfHLp0IPADJxhdMDVp7b4PG2s2bc/1Rx?= =?iso-8859-1?q?5XzJj8ESzSr4+sRunfj9MtMYqI1le2Lh9ttutuEP4CLSFGwhO5d3ClQEskLb?= =?iso-8859-1?q?qyujIH84Sz0Pb/3fgsBvABCA9QYY6tnUIRXJaC7PP41hULegA+zwDQGaHYfm?= =?iso-8859-1?q?13NI7mNISh8lMIVeq3nWINQDUJtl9MHwfzFb4Oi9b4ErIepkVJaDuvsDpu78?= =?iso-8859-1?q?i9q2vfl+P7oAA3OSUA/KCO4NSiX7v+wqcUL2sT6F3goqTZIvHsp6KZZdoYEh?= =?iso-8859-1?q?e5t4QGaCUg3me4R1l+nz7mtj7AnHO+NuieGjIJ9x+XKprSAHLsahBL4/ZZ5U?= =?iso-8859-1?q?WUsNVDU3NYEXs4KYIhdxyjpsJgQr+rdvUadMFma3BDmAhi/Jrd/LAhsvBs8r?= =?iso-8859-1?q?ylvmxlmQ=3D?= 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: 0dda8be3-159e-4405-7c96-08da2d6b739f X-MS-Exchange-CrossTenant-originalarrivaltime: 04 May 2022 01:14:00.5795 (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: DktLcHa1h9Lb3YKKyA6JP0wXz4kQ/Y8zUUxUAtdxtVne4OYFOScVfH5uchQ4kpuGv7eIto/2bh1kCaFoZkXgSA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR10MB3728 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.486,18.0.858 definitions=2022-05-03_10:2022-05-02,2022-05-03 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 phishscore=0 mlxlogscore=999 mlxscore=0 spamscore=0 suspectscore=0 bulkscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2205040006 X-Proofpoint-GUID: loPb_i5bQyxhCyCymiA6JpfFgPcEXvEf X-Proofpoint-ORIG-GUID: loPb_i5bQyxhCyCymiA6JpfFgPcEXvEf Authentication-Results: imf16.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2021-07-09 header.b=hUSbGn2Z; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=DoCnmfrf; dmarc=pass (policy=none) header.from=oracle.com; spf=none (imf16.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-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: A312018008B X-Rspam-User: X-Stat-Signature: fp7or8hbt5s9qj56yb8s48a5onfyx3md X-HE-Tag: 1651626872-327523 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: From: "Matthew Wilcox (Oracle)" The VMA iterator is faster than the linked list and removing the linked list will shrink the vm_area_struct. Signed-off-by: Matthew Wilcox (Oracle) Signed-off-by: Liam R. Howlett Acked-by: Vlastimil Babka --- kernel/events/core.c | 3 ++- kernel/events/uprobes.c | 9 ++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/kernel/events/core.c b/kernel/events/core.c index 7858bafffa9d..e2da3045d274 100644 --- a/kernel/events/core.c +++ b/kernel/events/core.c @@ -10211,8 +10211,9 @@ static void perf_addr_filter_apply(struct perf_addr_filter *filter, struct perf_addr_filter_range *fr) { struct vm_area_struct *vma; + VMA_ITERATOR(vmi, mm, 0); - for (vma = mm->mmap; vma; vma = vma->vm_next) { + for_each_vma(vmi, vma) { if (!vma->vm_file) continue; diff --git a/kernel/events/uprobes.c b/kernel/events/uprobes.c index 6418083901d4..84b5a7cdfe81 100644 --- a/kernel/events/uprobes.c +++ b/kernel/events/uprobes.c @@ -349,9 +349,10 @@ static bool valid_ref_ctr_vma(struct uprobe *uprobe, static struct vm_area_struct * find_ref_ctr_vma(struct uprobe *uprobe, struct mm_struct *mm) { + VMA_ITERATOR(vmi, mm, 0); struct vm_area_struct *tmp; - for (tmp = mm->mmap; tmp; tmp = tmp->vm_next) + for_each_vma(vmi, tmp) if (valid_ref_ctr_vma(uprobe, tmp)) return tmp; @@ -1230,11 +1231,12 @@ int uprobe_apply(struct inode *inode, loff_t offset, static int unapply_uprobe(struct uprobe *uprobe, struct mm_struct *mm) { + VMA_ITERATOR(vmi, mm, 0); struct vm_area_struct *vma; int err = 0; mmap_read_lock(mm); - for (vma = mm->mmap; vma; vma = vma->vm_next) { + for_each_vma(vmi, vma) { unsigned long vaddr; loff_t offset; @@ -1982,9 +1984,10 @@ bool uprobe_deny_signal(void) static void mmf_recalc_uprobes(struct mm_struct *mm) { + VMA_ITERATOR(vmi, mm, 0); struct vm_area_struct *vma; - for (vma = mm->mmap; vma; vma = vma->vm_next) { + for_each_vma(vmi, vma) { if (!valid_vma(vma, false)) continue; /* From patchwork Wed May 4 01:14:00 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 12841577 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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 487F2C433EF for ; Fri, 6 May 2022 20:28:32 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id CF99C6B0073; Fri, 6 May 2022 16:28:31 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id CA80E6B0074; Fri, 6 May 2022 16:28:31 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id AD47C6B0075; Fri, 6 May 2022 16:28:31 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 9F85E6B0073 for ; Fri, 6 May 2022 16:28:31 -0400 (EDT) Received: from smtpin19.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay13.hostedemail.com (Postfix) with ESMTP id 6FFC960A9C for ; Fri, 6 May 2022 20:28:31 +0000 (UTC) X-FDA: 79436456022.19.8688D44 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by imf17.hostedemail.com (Postfix) with ESMTP id B67B74004D for ; Fri, 6 May 2022 20:28:15 +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 243KctF3024988; Wed, 4 May 2022 01:14:38 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=t5HJVMlCrFs371XkVWlg5pWEAxuNjGH/5NiGlW3/6yg=; b=X06xkcvD+GXrjBWKoZxQPWB4Fi/MNkIRKPaXG94VjDpRzAYTXc9Tkwi63K+4fzVy4Er0 u7QtTJhN4NDHAJPn5jXnnUXne68NJ8oGtXvIWTzhV7OzNm5juMcOhnbhkVZM3QxAimTB seNFcRY7Al/ELg8vMHnn+nsyii2G0w3R9O+AbfDDXtsauMW68q1B8E5D3j5Mts0ZLPuU i5WICiOqp3uTdM0Dvrnu7CeWVsRJUy0QOvndZPqfx4j8ZFCZCyFFmeJr3O0zReWMmCgh VYwoiefEkfYpnp+9URzF+UHsB3fa1DzdcCxzUNPw151NfalMrTy61M2VPo5a14ASuxqC Ew== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3fruw2f6c5-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:14:38 +0000 Received: from pps.filterd (iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (8.16.1.2/8.16.1.2) with SMTP id 2441AUFa023411; Wed, 4 May 2022 01:14:38 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2045.outbound.protection.outlook.com [104.47.66.45]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com with ESMTP id 3fruj9g4fp-3 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:14:37 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=PCh6GOQMZc3Prhp8d1qeo0tDGjbJwPIi6J6iipVvbg/ka9Q7l1zWTfAr8yMYxcwWxm5StCK9llyWbkQYa5me7iNnMzlQBtNpQ/JvTY1AtEvvefa0sBConHWsaJwVrAj09aMMzIHUr2U8GDEFntI8BHdTupDJ3WOZhSCvEHdCaOfTY4MYezjljJgNwO4jezkS6Axnlo8mRj17uuXdkfPJB7ZPH6fNIGVgLVzAPezqidFy8y0uQ+Fd7tIBVJHv5z3UdmEZyUeFZ/NMmtvgVh8pXkZYTF72BLrXRFMqejaI8NqM7XnLhi38h7MvaAJ/DxVamzSwyBytQ7cwnTkKuf3/WQ== 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=t5HJVMlCrFs371XkVWlg5pWEAxuNjGH/5NiGlW3/6yg=; b=VXjXQCoyj2VIodRPe+drk8S+qa6Z0QsjtllJV2FJ0xcpceUMaTy6Z3WzvvVMd4TXtKmDh2Q2mYkKWR8I8RD2nAFKShM1wJnsZA0pCmBTTk+QmUYURxIybNGOiwumDwEmP6Qa3SK5dXi+sZDRSt8FYYUBwoPuYRFcSNuxZb6HVRc1kvMoVg/T1J1wlRL9Npv/62CfXweI0+0f4BQ/0HbudKBN7TIA9+nW8iyLvSsys7x2BR/KYuqwVwTnCODdvn7mTFSejIhu+JYZnonAk1k+PjcF22BXfQoL30G5kfZR2OuMqmH1rURiIGKRIcPAb25rYFIGK9HK61IZGRzeLWxAqg== 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=t5HJVMlCrFs371XkVWlg5pWEAxuNjGH/5NiGlW3/6yg=; b=LKuKiVlwAKH/zDD9GaQT9fZ85EyjrA0FhMpKKiBAzKt13vQ3yaQ+Lpz94Kxt5cq3KR3JkYCfSMYzKDZYrwDKY5Jo1reV0pub+pkxCWSOnS/7KBH9qy6diCVkP8j09wx/Jdf4Hu+9jeIOQtbMAfKNgsfQjSnOHn8XK5hXxExN9qk= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by MN2PR10MB3728.namprd10.prod.outlook.com (2603:10b6:208:115::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5186.21; Wed, 4 May 2022 01:14:35 +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.5206.024; Wed, 4 May 2022 01:14:35 +0000 From: Liam Howlett To: "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton Subject: [PATCH v9 48/69] sched: use maple tree iterator to walk VMAs Thread-Topic: [PATCH v9 48/69] sched: use maple tree iterator to walk VMAs Thread-Index: AQHYX1Q8/nyc3nUnlEWv2xgsS/lGZw== Date: Wed, 4 May 2022 01:14:00 +0000 Message-ID: <20220504011345.662299-33-Liam.Howlett@oracle.com> References: <20220504002554.654642-1-Liam.Howlett@oracle.com> <20220504011345.662299-1-Liam.Howlett@oracle.com> In-Reply-To: <20220504011345.662299-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: 8d817f9c-2bff-4b0a-c48b-08da2d6b740a x-ms-traffictypediagnostic: MN2PR10MB3728:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: UYAsg+eFUZyuiLjJ+ysq8OuTO5LwybZDuzX2Q9Jgz/QoqQp3ZGvcPNTSvzqBBLaMuolSZlXJsVZq7i4aDvk8ANgGIYCt7nf51t/ATY5yeela1Oh8dbuh0E2WB6iG0OLoL+f+nOPr/lUKPtmOug7cdaHSm4CuwGe7/aXl1YTFakjuwdZ2LIdPgdj+8qOSEAhu4Hg5MkVZ4/0ApvANWTIXrCiW6tPqBMS2i8bbvOC5wEu88RFig6VfIXOjx7jiVfa7Qhyw/msBWokNW9fc4dsg/nTc0FEWmwrVJkjuRBWn3w6cCkJJ5Cx8KOY+trE4UhTypXNAhp5etM7Ww91pwK+mkpHwf5phW6jLc7twGHEEJ9MSLd9x38l/5vbm16uH9xF7N6roEYYwYsxGDqzll2cTTmLyf+UGzRFEWQA3/7JS/O1ArhRODwvW2zWAaw9/tnLbmXwjuSrB8Bg9gAOf/dSch8tmtldDxMGjmmlKeLew2FvE61hBp75DlGLSLDYEq5n0vot6MC2VQQyXTgDGmTVQqe8sUAC9K2QJ2ckBMwNcd773xuvXgz6Qg2/ALIG5oEH+tIv1D2bVSwQSu6z4F8GUkUepc7u07djBHJSPrYWJANNydFi4mbt6p/O0ScvI5hG1ZWD9vGsMVnAxldqNts2fMzbksDgLoA4jdMKFSDNv081KP6vHrGWtg89rKA+a3D9/ZBQOsdNO2/HUsOeAtcx1Iw== 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)(71200400001)(508600001)(5660300002)(8936002)(6486002)(86362001)(26005)(6506007)(2616005)(6512007)(2906002)(83380400001)(44832011)(186003)(6666004)(66946007)(91956017)(76116006)(110136005)(38100700002)(38070700005)(36756003)(316002)(8676002)(66446008)(66556008)(64756008)(66476007)(122000001)(1076003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?AeTinuEVNljbQhEqiew6zMT?= =?iso-8859-1?q?SmpOjEwDqSCQ+0JHt349165L4HDXVDZhHbUk4X41YtmfCSAGem8j9Kv6sepb?= =?iso-8859-1?q?/zsWDXiAmINpsQdxvVVS6KJ3SvGG0DbFJ0O+yL17+pVQrX2gf2YZx+xbUCUa?= =?iso-8859-1?q?TV+PfhQgqzyZtkflUC5fIBXW6+EK0XK4VkfOIQoiKkzW1/2BZGNlKJ6ZRYM3?= =?iso-8859-1?q?rntw3Zv4sEGOUb3ErM4auPYcgWRtpTMZynW2KdRP7g//QUTVnTcl9MncWKhK?= =?iso-8859-1?q?zUG3k0g1dXvRSDLJlfa11/FW28NnH98SHquOCUQB1QhU6ERsKn9zQ9QDu5as?= =?iso-8859-1?q?7LMThvi/fYHcWCzFVTQUNs22TO431XC9QJBvGfefCxhDCnm3ivVqw0NBaPIR?= =?iso-8859-1?q?Dpg2yOgc3fb0TquqQ4L7CV4k5uNZ74BkvfBPYhXZ0ydb754NZNxX2Sc4jtJ2?= =?iso-8859-1?q?x1rGjC/WeUG2pWcqLjDYn7zQ1vxE78Zi/ygRBOSp9Hbrqf9S8JjsBqg6jNc1?= =?iso-8859-1?q?PZQdz9k3CEiLoYCWQGImXj36OPr+8FNOoew0FWJmtzRsx3+hZ9TCH1bt+e8a?= =?iso-8859-1?q?g2Pv7WEiAr5J0MNzfm0nHYGFBslp3A1dnUrnJf+hPvkzAn8D0uznLAldmN1l?= =?iso-8859-1?q?EQd8BNVTpXEUyXc07urETLvarlZmjgHgxh2afKdM3+PlUakgBJZMoRN5RPxp?= =?iso-8859-1?q?FaRsYH1D0yfdCCOmcHGkjSHyMAiyZlikS9BO49vuUncFORL3IIqa2PMFZw1T?= =?iso-8859-1?q?JDeMDHFLtWpUg78bAkYLs77qjwivaI1DPoPECY+sDEXyefcAo3wPO08/sr5G?= =?iso-8859-1?q?42jdOKhZsFKB8l6tvw1fMEU/yrhyq2q07Gl2FbcKeymeVfAuxtYwBl1e/sd5?= =?iso-8859-1?q?DJrsnJbzxtJ+D27exXw5S7lMHQIifeTE7hmPlKZWcW1iSbl6nj186V/tPvPg?= =?iso-8859-1?q?wWdiWBn2Q6GR4MUV537V3jiewFQZeIO8G6Meur7ZAgMQKXs6YFLmsvIUl0od?= =?iso-8859-1?q?6FEoBTL2FhCh7/IKwHmhj9kCtfVJ8R6CmQFp0rh1xuNnXjioctOCnIYGXSRb?= =?iso-8859-1?q?eYx/vxlY9QSFp15HapgsF7CuII/72pIOSYuPz6UAFgXzcJnshA7WgVPw775O?= =?iso-8859-1?q?6Mt+eFmfHYpAVHuC+fx0fkroFIh6KlbU/eyO7U/VNcWwMDZCG2dZCC6W66wP?= =?iso-8859-1?q?d7vQZkiI8z6ah50jKgVxfRygyqQOgGRK+J+j/CcJXBHm5xv5k9B4iOSkmMOR?= =?iso-8859-1?q?+uicsZjKkhgTi3xyX6/ACXm62oxeNaLRvNrsnPpqULXS4WugZ+2A0doIkxIj?= =?iso-8859-1?q?iIvD96Kcl/KNotDcUG/bJkpfyA0Hju1B3oTbD8Tfl/YBpq2ZneZrn57IuVWa?= =?iso-8859-1?q?FxUczT3lykkZoHm7e0+5mxl80mCK/mfj+3sM+WJDiCXrqgoXVmOwJf0ZWx+3?= =?iso-8859-1?q?z4AdNamGfHH9yY5d+NM1jOX1Cp44yW8zz8FFF8FULHmyK8bd7dJTOhq36TjR?= =?iso-8859-1?q?SrlPwV+2D/ps/YYNYtP+//WLNwYod4ZjqiBoxq23UC6X0p3dmLaQLJVzjlBb?= =?iso-8859-1?q?8XQE1w0dBnRmDSHpHsPkLt0dWDJBtFJKMStjomKDc/K0EaDCiJW5wb6Cgxrm?= =?iso-8859-1?q?8SMVnWjt9GG7XCQC1Cb4bAqvb8mmOu48NCBreJcKluxsbY7JnnlBYY94+Dad?= =?iso-8859-1?q?KDg9HfaHkvvYFWVyRWr0ax80GYY/g7LQ00ic6rjJcLIgaFq2RdNoj6KgUQNK?= =?iso-8859-1?q?kSOU/73KTltf+tticZfy7B2NFG9HRWw1NojE3InqV+isU27lsJiHo/8LO+iV?= =?iso-8859-1?q?sbim2qyQ=3D?= 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: 8d817f9c-2bff-4b0a-c48b-08da2d6b740a X-MS-Exchange-CrossTenant-originalarrivaltime: 04 May 2022 01:14:00.9389 (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: 4x1tRct4tDe79YfKedIFMomlGjORE2RAwSBmedPZiDqseuxV8gjSyfv2ad/izJZPjhtEhhtVmDJDyv89r3oV8g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR10MB3728 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.486,18.0.858 definitions=2022-05-03_10:2022-05-02,2022-05-03 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 phishscore=0 mlxlogscore=999 mlxscore=0 spamscore=0 suspectscore=0 bulkscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2205040006 X-Proofpoint-GUID: ESyGGmmM-2aOIgCjG35j-1OyGjbFf3g1 X-Proofpoint-ORIG-GUID: ESyGGmmM-2aOIgCjG35j-1OyGjbFf3g1 X-Rspamd-Queue-Id: B67B74004D X-Stat-Signature: dxjx5ftxgbrk67th5s4wiau7d1guq783 X-Rspam-User: Authentication-Results: imf17.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2021-07-09 header.b=X06xkcvD; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=LKuKiVlw; spf=none (imf17.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-Rspamd-Server: rspam09 X-HE-Tag: 1651868895-695372 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: From: "Matthew Wilcox (Oracle)" The linked list is slower than walking the VMAs using the maple tree. We can't use the VMA iterator here because it doesn't support moving to an earlier position. Signed-off-by: Matthew Wilcox (Oracle) Signed-off-by: Liam R. Howlett Acked-by: Vlastimil Babka --- kernel/sched/fair.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index a68482d66535..aa18f180ef7d 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -2722,6 +2722,7 @@ static void task_numa_work(struct callback_head *work) struct task_struct *p = current; struct mm_struct *mm = p->mm; u64 runtime = p->se.sum_exec_runtime; + MA_STATE(mas, &mm->mm_mt, 0, 0); struct vm_area_struct *vma; unsigned long start, end; unsigned long nr_pte_updates = 0; @@ -2778,13 +2779,16 @@ static void task_numa_work(struct callback_head *work) if (!mmap_read_trylock(mm)) return; - vma = find_vma(mm, start); + mas_set(&mas, start); + vma = mas_find(&mas, ULONG_MAX); if (!vma) { reset_ptenuma_scan(p); start = 0; - vma = mm->mmap; + mas_set(&mas, start); + vma = mas_find(&mas, ULONG_MAX); } - for (; vma; vma = vma->vm_next) { + + for (; vma; vma = mas_find(&mas, ULONG_MAX)) { if (!vma_migratable(vma) || !vma_policy_mof(vma) || is_vm_hugetlb_page(vma) || (vma->vm_flags & VM_MIXEDMAP)) { continue; From patchwork Wed May 4 01:14:01 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 12836650 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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 1EC5EC433FE for ; Wed, 4 May 2022 01:14:42 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id F1FE56B0071; Tue, 3 May 2022 21:14:40 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id ED3526B0075; Tue, 3 May 2022 21:14:40 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C122E6B0080; Tue, 3 May 2022 21:14:40 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id A82B46B0071 for ; Tue, 3 May 2022 21:14:40 -0400 (EDT) Received: from smtpin21.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay11.hostedemail.com (Postfix) with ESMTP id 887D580296 for ; Wed, 4 May 2022 01:14:40 +0000 (UTC) X-FDA: 79426290720.21.D18306D Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by imf03.hostedemail.com (Postfix) with ESMTP id 2677D2006F for ; Wed, 4 May 2022 01:14:33 +0000 (UTC) Received: from pps.filterd (m0246632.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 243KbxhH013665; Wed, 4 May 2022 01:14:39 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=vd+EViapjIwU61bwAFtY7bToAuuWicyFsyVlWY0nIUk=; b=OBd5iweCO05RWBG23Lew11Z4l9ZmpggPVAUD+O7HuwpZLc34T/eGiZs35YU5hax/qsZF Hm+g4NCscecgzIh3DfOr7iOOsxDwtlwxsKb/DE77ZVcSDC/DZeKZBA5BEHqQ5zIreR9I kaWHueMW4TDNsjFHKumiHqkPkAHPLOnX8LnUpvNFVE45Su3/IYlbIRaBzeveJg8vNr5H 1mGNYAC20BOSmc0lf1PQb2UOvVNTAbxQNXs71fY95cDhKWFN2EAg1ecjPuT0fHO32Inu e2tCWIBjm8WnH+xjl8FWQrxcLMNRo4JyXPHkUMGHqY6YdVvXGOmWJHizWeK1oyqWwHcq 3Q== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3frvqsf6fa-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:14:39 +0000 Received: from pps.filterd (iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (8.16.1.2/8.16.1.2) with SMTP id 2441AUFb023411; Wed, 4 May 2022 01:14:38 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2045.outbound.protection.outlook.com [104.47.66.45]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com with ESMTP id 3fruj9g4fp-4 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:14:38 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=I7f3r5MqEyqXnmwWzoFynETup3blaSHdQHiedaRbZGAhvmSq1QEsWWsLWZfLPyWLQsv563UXw1Kqrwk92YjCq9q+DWKh0GHGAg7eatFGnvTNAVrxpcC6EynXp5JufemcDLQi1nz5xRly6LAKGWj9EDSzSAT3rcAmXUqwAvFv1O1/cCmkWPbn0G+3UmXl+oBHlIRkZrtCgD6U9Abib5TBuCn2bjU6dXL8rhzHcnDAB3YLZhyhlGhDBPQ/Puh7E3fp2ynOYOingpTx2Z+3MHTGBB0NKC8szXOizO7HM6S1OUvI3iOerRtqqHLGZuIyY3GRG6j1tNHWSe3rLDIHfmHoBg== 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=vd+EViapjIwU61bwAFtY7bToAuuWicyFsyVlWY0nIUk=; b=eiIkN5gcaFwYm8+u+Abfe1n+JLSJnXDl2uugGwXw52qrVDhx4gN/FhKdz33bNRcp5+5c/lsKYeXttHGUmTjWDfd47r2aWtVdeKsJHbUdI2DoLR5Tst0DlI30oN/jUBkMQKyMXnCu4h/oIvoyXWIGMsvD6IjlKWl9nQT/JWPDg/ZOeNZbvEGdzIrq5Hw6QzvH52TbXxDICddgdxTkJtPqv3mDaOShkG0MzMSdGCEesxROOlR5w2gWs+Y3EnEGgdnvSQffKiMf7x7S4Nk4DW8sgKVrPLt+i7qSOcMqcEdNqvlAsyWyzoV8h0gjpCRLNaLK8Iik9Nk/ZiuduMXhMIsHLA== 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=vd+EViapjIwU61bwAFtY7bToAuuWicyFsyVlWY0nIUk=; b=erUPZKqHj1vOvYVY2wajca1FPbfUx7ZIjwFyrxNiFPRO8NKAxT1m3Wl1SytgYbmZQDuyWSruv4pBfIdZHhb6QZ/ovsFpzc9wW87wSplTfVgQNSsAwROrdSwlGF40SNbeVK0oocJYnLNdma6lDvm6+9LV7SqYg1afDhBg9ymEkiw= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by MN2PR10MB3728.namprd10.prod.outlook.com (2603:10b6:208:115::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5186.21; Wed, 4 May 2022 01:14:36 +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.5206.024; Wed, 4 May 2022 01:14:36 +0000 From: Liam Howlett To: "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton Subject: [PATCH v9 49/69] fork: use VMA iterator Thread-Topic: [PATCH v9 49/69] fork: use VMA iterator Thread-Index: AQHYX1Q94dVKbIEfLU6O2Y33bOeUbg== Date: Wed, 4 May 2022 01:14:01 +0000 Message-ID: <20220504011345.662299-34-Liam.Howlett@oracle.com> References: <20220504002554.654642-1-Liam.Howlett@oracle.com> <20220504011345.662299-1-Liam.Howlett@oracle.com> In-Reply-To: <20220504011345.662299-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: 027595fb-d6a8-4139-3576-08da2d6b745e x-ms-traffictypediagnostic: MN2PR10MB3728:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: LkZc5DP1bcbrEWFD0F9X5JZUkkhnjGZxSflZVH6sNiUGzb754FiZ6rqfrRToDpw/cwePLs+7NZtaQIes4MIIGfliN6Z7CWncINY9FlkpQb+kzUoxwelF5YUwmIz2GUzzNHC27e5feuOrSPmqFhfKtli/Z9Paqg9Xi2/pUL+GBwFuvvucawgSbUbGmu5DfxryCQkjG8n4p0shoIQ+UW9Uwmyx8IuIK+nzs7ivPSH9mUNigaFkmP48DEXbgAeVjRXOHXtv/wmudhvvEBHp+qgFJqeypCv+67ZnF3YzXgxSJSsmuZF2JpHm5+yenJVEYHGAXX/GH2lTDqvmhyjvW2zbncWWPd37IIwyd+fcBjGLmjaQy9i2WATWlqfj9DCI+G9+lYFlLfpf01En/wmEPi7BAmRybcGWlZnAaOFFUv2qWFnJFNc8DYIfr9FX887S0Ot3k1rV5BzOKOnlZ3HnOtpe75CcRkHP4kXCrqu33mJxiL6rzT8zduQUjOwmmB+D0W1qyUVk3yJ1jflGraenS/3EEz24lNKStoBHbqZP1PQXo0pQ2c/z9T0jn+xP15w72kn9uC6TIR8B7dHtv8VSGn2kDPWhhA+CCy982nG4knxgSK/GxUWaKQ/Wx/MacL4qljvmkZFYWbpUGz5iax/K84jwL/bMCk8CuIrtTXtHv2ybL6xChF71cQaJHNbj7IY0492L3j8SBTPTnZ4vVmYcHuD3rQ== 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)(71200400001)(508600001)(5660300002)(8936002)(6486002)(86362001)(26005)(6506007)(2616005)(6512007)(2906002)(4744005)(83380400001)(44832011)(186003)(6666004)(66946007)(91956017)(76116006)(110136005)(38100700002)(38070700005)(36756003)(316002)(8676002)(66446008)(66556008)(64756008)(66476007)(122000001)(1076003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?cIT4982oHhFPKl3DhfcZdP+?= =?iso-8859-1?q?7YBWc6L/Jo8P2dseFMF7+xZRUgWqGi0TbFIMD9GuNhItmCFlY/0oxov0zgvJ?= =?iso-8859-1?q?Ak8NtkUzVxC4wlkVocPmgmg/Owq9rrcvpcggxSFHoG60yoeN0ETyPL4vidjS?= =?iso-8859-1?q?wL81Olog8A4NfD1MEOCkcZ0Jrttjtv16yA8sYlE4VulQjEphZgEsnBWOur6C?= =?iso-8859-1?q?MQhd4W5IX69Oh8kBZe1bTZEj4i/4wEBcBy4cXpLvGUNjZvYLKbjkNF9DEkez?= =?iso-8859-1?q?MBfq0gmKV0NaRRQE3mbkxAEoku8G3Mi/dJeaogNtGhmIWLtkmCvSjpFUqfBR?= =?iso-8859-1?q?ze5FuOiILS3NWMVNlyI55ar0XJK/fy7avtNq7EDItwWpiSwPituK3R8vgVbT?= =?iso-8859-1?q?ZThUyCDwK2WafLMVOPCqgjPm1UBCSO0gvu+NbX25DbX/ZUVTHLRt+VOLqw1v?= =?iso-8859-1?q?YCUKJIvtHMw3KADaPQAiTJpovPugqmXycJ1+i854sPW+0qIaZ7NuBX2Yi2ce?= =?iso-8859-1?q?4TuCH5Hc9sK/AUwcBAHY0rnjJV31iLIcjKnwt1/i/egKzXB/jxputFKKY3T7?= =?iso-8859-1?q?AH6X31+dBmcX8RmVn6SqgKWvJTWysThIWRla65/IuzOzey1e8OmGb/l/Hnmy?= =?iso-8859-1?q?0buRr7EzYQ6/WH32CICebrapbJDP+/G3Dn1YU47i3Xh2VKiL18cOd7ogQSsJ?= =?iso-8859-1?q?jf2DctP/XcoKY0pR1dSFwo2M9oyLClb7f00lBWecgA8bITOrISkpyKFR3RhC?= =?iso-8859-1?q?toh3XzNPx+JJRoysJVWDLvcC1CwxeZh1BcPZEjIUsllaG5kH3o435kMsP+6F?= =?iso-8859-1?q?UjuITTbIHEChbhHoni0dCmqIngTcaQyXbgp8k8yGs3K1QuSfPtzkC4ZbsFHu?= =?iso-8859-1?q?0XnrijHxG6GHFYlq0RcBIb6A/i5tmo0Ly4hkE7Uai1iv7GTKQF4gZzIyo3Pw?= =?iso-8859-1?q?IZxqLpAzU3woHD1o+qM8DXKC6lDkmoGa+AUcivZ//JePJt8B8GFHsXirpw4Q?= =?iso-8859-1?q?j4rcYYh7SSRmpkKu4DDCDZEnzLNlY3y1uIkos6TIwjbIQBM1ChHWyNXEb9+G?= =?iso-8859-1?q?8bP2BtoAaA6WEAX/rkVBzYEUfk6z4A7e9+bwuo/ho4yiW38JZ8ljAelNEaml?= =?iso-8859-1?q?pM5J9w5DA7U3IG+8+dMd+uP3/IYo4W3Fl2Y2iizDhU8XLnP5dH/dl2tI13ou?= =?iso-8859-1?q?MqwIDxZig2GRbXxCXid9iVTxNQAuWSLmFF7Mg8Y7iWY5Ogr60gtRI4gm/BC1?= =?iso-8859-1?q?WiVkQ8X1u3lWbUStvmn3UR4J3QYvzaZ3c37tXFAkuC610aonc5S3LvCLBPGf?= =?iso-8859-1?q?V2RcITncEvTgWxrEbuAeludxthOC7OT4Kh6UIQEJSzKFNeILvpT3oADSPlIM?= =?iso-8859-1?q?X+Gc84Tn9t6/WJ33WI3UPD0yIYm8x94ebn3LLtVrwkw9CqR9lJj3Hh+yxVvG?= =?iso-8859-1?q?G7or/oM80uZD0ZKMjUTQsp8StzUZORCanYApxZt4abhKIVgQTiHhgkOljrnj?= =?iso-8859-1?q?khTdphxLQv8l1v7Tlq6VBMWsTmpu493pJ8Y3clgl3bteWi0QfDn8ywVky6X8?= =?iso-8859-1?q?zXi2AcM3vB9+LsJ8lFazSJeIGDxjP7mzs1yz+Z4UlGePK4EFiiMoOSyWqjZK?= =?iso-8859-1?q?QjRTXyUEn4KBqVMKklwDjY4hLKj86OvzJb8z7e2btSskq/3kF76YDQaP/zon?= =?iso-8859-1?q?H9KmCAWJPesr33DMIzOrqZzfAEUm2sehTGBWZ9yz3bsWkTiBsdC31f0B3YL6?= =?iso-8859-1?q?2LHfpLJ+pgorvAYGODc2Aavbumk/C/qjX1AzGjCSCA2VmWZ42+HDsxPo8iFJ?= =?iso-8859-1?q?LyFPbR7E=3D?= 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: 027595fb-d6a8-4139-3576-08da2d6b745e X-MS-Exchange-CrossTenant-originalarrivaltime: 04 May 2022 01:14:01.3763 (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: 8/vgGhai/SPE8d4jQmv/v8zgwDoClvZFMpfToXINwSC6aJpyY/Jb2Ehf5vmvpP5S1x0KpumP5dDO3ZXvUuxMDw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR10MB3728 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.486,18.0.858 definitions=2022-05-03_10:2022-05-02,2022-05-03 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 phishscore=0 mlxlogscore=999 mlxscore=0 spamscore=0 suspectscore=0 bulkscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2205040006 X-Proofpoint-GUID: Mdc0G9VX5HWA_YGa656Ocwo8hReRxKFJ X-Proofpoint-ORIG-GUID: Mdc0G9VX5HWA_YGa656Ocwo8hReRxKFJ X-Rspamd-Server: rspam02 X-Rspamd-Queue-Id: 2677D2006F X-Stat-Signature: xqgs3gbft8qif4rbkaubx3qr3hdmq7zs X-Rspam-User: Authentication-Results: imf03.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2021-07-09 header.b=OBd5iweC; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=erUPZKqH; spf=none (imf03.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-HE-Tag: 1651626873-912694 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: From: "Matthew Wilcox (Oracle)" The VMA iterator is faster than the linked list and removing the linked list will shrink the vm_area_struct. Signed-off-by: Matthew Wilcox (Oracle) Signed-off-by: Liam R. Howlett Acked-by: Vlastimil Babka --- kernel/fork.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/kernel/fork.c b/kernel/fork.c index 4af22dd65fc6..9fcbd0b5c0be 100644 --- a/kernel/fork.c +++ b/kernel/fork.c @@ -1291,13 +1291,16 @@ int replace_mm_exe_file(struct mm_struct *mm, struct file *new_exe_file) /* Forbid mm->exe_file change if old file still mapped. */ old_exe_file = get_mm_exe_file(mm); if (old_exe_file) { + VMA_ITERATOR(vmi, mm, 0); mmap_read_lock(mm); - for (vma = mm->mmap; vma && !ret; vma = vma->vm_next) { + for_each_vma(vmi, vma) { if (!vma->vm_file) continue; if (path_equal(&vma->vm_file->f_path, - &old_exe_file->f_path)) + &old_exe_file->f_path)) { ret = -EBUSY; + break; + } } mmap_read_unlock(mm); fput(old_exe_file); From patchwork Wed May 4 01:14:01 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 12841926 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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 1AF6EC433EF for ; Sat, 7 May 2022 10:21:04 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 7ACBF6B0092; Sat, 7 May 2022 06:21:03 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 7597A6B0093; Sat, 7 May 2022 06:21:03 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 5AAC76B0095; Sat, 7 May 2022 06:21:03 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 482796B0092 for ; Sat, 7 May 2022 06:21:03 -0400 (EDT) Received: from smtpin17.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay11.hostedemail.com (Postfix) with ESMTP id 18FD2806FD for ; Sat, 7 May 2022 10:21:03 +0000 (UTC) X-FDA: 79438554006.17.AD8668A Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by imf16.hostedemail.com (Postfix) with ESMTP id E245F180057 for ; Sat, 7 May 2022 10:20:54 +0000 (UTC) Received: from pps.filterd (m0246632.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 243KnJSE013484; Wed, 4 May 2022 01:14:39 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=iyz3PxHVjK6B3/q2iPn/dnS5gbHkdsvEg8ysspfoiW4=; b=R1xYEt+OPnuUBSMOBrdr1bVNYJeW+XCy2bQpbCmF+lZfKpMaOQcZsce1oTNm62ZBqTdp vBJhY4UzOnoHTRb12KlWN0S2fIic+hAtBYzJelZ8opKKMXpeBUdFXGqtNNS5wJcylCYP 2e2BTLInaEMe0AUb3TIs0Vz19ivRZMZTZhuBcltvPV+2g75EQMkzXk/qGxmeFXwSOR2K UaV4I3vXXK+7JLhp7QY+sMx0kOSW1sAfeYZK6GqgqmkaaweeDy6ZGqvnrGloGykl3+5v XSjuJYhgNNTYyyFAUSp4Y1PO/FWTCoDMbvPWH2hmEFGowJBQI/wI6XLPt0NyC/PieXj+ lw== Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta02.appoci.oracle.com [147.154.18.20]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3frvqsf6fc-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:14:39 +0000 Received: from pps.filterd (iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (8.16.1.2/8.16.1.2) with SMTP id 2441AUFc023411; Wed, 4 May 2022 01:14:39 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2045.outbound.protection.outlook.com [104.47.66.45]) by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com with ESMTP id 3fruj9g4fp-5 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:14:38 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=DT6IxLLK1euvg9DgNaFphe4QwQ7bSOWttcuUXkCjY0Kea6fEGpmDKO/fRvsGsD3xhn3ZnythmQKQ8A2WdHxvZkVhl20r/JBUQ+qeJwn5c/z/xL3mN8zZeBZf15LC+4qJSGz7fhnHLWfgEM1h0XLUM+yIO5x7waBU3OPAWg3RL+H0xhq+4M1m44Kj1uABFvifXbPI5GlI95wXJxHTMZcvdNWpCdCsm+kAFuJx1C9MzyNqm8Lw+T/Kg7Q6dscdB2CryZMzZNaKxYZy8jpVMSkYeFOqY6s7eEqTCY2VUCGLxwy4qbWzjKLxOKIcgchbuCtoNw+vzfy364AF9xH5W86o5Q== 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=iyz3PxHVjK6B3/q2iPn/dnS5gbHkdsvEg8ysspfoiW4=; b=SZZvcqHI5qGo50Uqe2t3aACdIOl+Wx7WOaYhJVP6ekFv9T+E/COY1v1b9quXAIKekzxF3oi1xPM6SUP2RW2aX/ChchSv0xGL1s0Sg8KekRxgSIULHZYBVWGRaB5uuR7UUpmfrXRLkLCMQvbLIAq8nQjqqurkPamxk7lnP9vE8M6NUU7nGIE45TmcLoN0SnsZRLlG9F3fIpfP4rDf/N7IViI+I/wU18nLC6OPVuF5CQ4zuOPhSpSsauJD6Z6JvT7Sijny80/PZkg2LGH7qXLVAA8VBKhaZxy8NzGdRctfhoakfg/CNuQOhK6/5qpDIR/8X4tfN8pqGdR8ts8UMcZBNw== 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=iyz3PxHVjK6B3/q2iPn/dnS5gbHkdsvEg8ysspfoiW4=; b=YaLsOFkV7AaKp36EybGLFbEduerX2EaHsm7cbGiL3HElRq7RwfhqKge5derFSusVBMomkqoMf3wesdJ0pRxuU4C6aE1mP+d9I2IUaTdkXkaBOoUzRfeD4gJpcIjRic3/o2/yPQrU8BEm3IMW015agXh6rq0ytcEdWDA0UodAJs8= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by MN2PR10MB3728.namprd10.prod.outlook.com (2603:10b6:208:115::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5186.21; Wed, 4 May 2022 01:14:36 +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.5206.024; Wed, 4 May 2022 01:14:36 +0000 From: Liam Howlett To: "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton Subject: [PATCH v9 50/69] bpf: remove VMA linked list Thread-Topic: [PATCH v9 50/69] bpf: remove VMA linked list Thread-Index: AQHYX1Q9vQsGKESn1UKSfp/Zbw/+Yw== Date: Wed, 4 May 2022 01:14:01 +0000 Message-ID: <20220504011345.662299-35-Liam.Howlett@oracle.com> References: <20220504002554.654642-1-Liam.Howlett@oracle.com> <20220504011345.662299-1-Liam.Howlett@oracle.com> In-Reply-To: <20220504011345.662299-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: d2a96818-6ba3-44ec-1d12-08da2d6b74a8 x-ms-traffictypediagnostic: MN2PR10MB3728:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: jKKoatc37QXNiZRInzO6vPys48OuHRv9A909SeSlzwc6T8QHahVgr71Vwmq90OGK7ONS4i2AzC9/riV91FPRasrFTZttHzB4/v8JT4bGjcj3K7y0Bmah+1kFdoWSe6khPGbyJ6j8zSvezSWiYx6/3hHS8panXmxG0jPEo762gDVEuuXf3GLGYZ5zw2p4G1emYIFTPZWwFdVHwht5EwJ2aFMO8wbC9pu3q9KuDsp2oWhowbW+E/DlfvRf72YT972IB7BzZW7TEvelhmuMXp0kHu8URl1HcrpcnESDpaeXwmQWJTh8/LCfEhCRa5BCGL1PRgfM3LUdkdhxWkqcS66nMj9tuTI2AOY00YLUMmAgyMQL6TGJtZaF/eJ6A0xcX/yVzRoZHJ0N5wtViqKihw7mINjHPv9uLrMNnSdej03pYkjHHtOHVC+OvLURF9D4IV2vfWXjQMeM4PROeXsIOrMLgUqBY9PZc5L/H9trn8QhFBY8TCAgGj+aqbSnLe92IzNu2H5Ohsl3MoqhWhNfetaEvZvlLiteAViYl8VIsEzLAQvb+UmLhpKP1loZ/lymPLPsg0M1JsB/E9VTfTO+PENMLcXKw0z55nb1HKGLIAbAC9hQKIztJifQ6hyQL+PxffcSfWLy2MVY04X//jrllWebVy3HmFyBcz8xCuxor9cY/r/l/8H+VRVu4Iyx19f09zWQFSuvabszrcBjbjPII/WB1Q== 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)(71200400001)(508600001)(5660300002)(8936002)(6486002)(86362001)(26005)(6506007)(2616005)(6512007)(2906002)(83380400001)(44832011)(186003)(6666004)(66946007)(91956017)(76116006)(110136005)(38100700002)(38070700005)(36756003)(316002)(8676002)(66446008)(66556008)(64756008)(66476007)(122000001)(1076003);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?q2eW/EDQ54aGIQL/MAFvQW4?= =?iso-8859-1?q?ZptUeDC3AAYjtzIQJ36zm96sSh3DOqkqWALQg3dXUgOhEXMncbDnCSUrVsKA?= =?iso-8859-1?q?rO46pOjSemEJE8U8lXjAUnU2FRGUHB6A1msPJ8ZyozaX4XiY4vVBMilQ/pZh?= =?iso-8859-1?q?ipxIjH8yjaCTi5UyLlreSyQ09682ltrZx7hwQhrYzhakeYdfXJZwIATXL/RD?= =?iso-8859-1?q?393BeNli59p4zQU7W9hoVSbYtJsPSldr2QMMb5/xYCfjyxxPciAzi/+TgSmt?= =?iso-8859-1?q?kjS9WkinemME+g2N5TL15GE++zBtgKqBwNqmNJVd185b8JjI4EKmWcqppY94?= =?iso-8859-1?q?DJ43xZNjvdQbsmWc+m9r2THBq6lOdqpyMmXmg2jI7XiOq1rcWE+FsZyBxDzb?= =?iso-8859-1?q?9GeOJbRDw6o1KIuKsPA4YtS5bCL+ppHmzqFPh6wG/MMNUPKj6/EV4al5eI5q?= =?iso-8859-1?q?SdeCSxnuTBYA9Kfflj79Hq6pErpJChTJzb6wILabogovU9X1JNW2G8Mw2C6U?= =?iso-8859-1?q?GrbqxQixp3b5wF9g9vxM5elF8MPwl9Bcp9YWCsLrqNG01RvZDTvyBLlmmwY8?= =?iso-8859-1?q?44Y0zEPDeq6u1v7UfR9YcIBW+uieXBxBvxcHqAJlbzHG4N9jYeWg4LRlYzPi?= =?iso-8859-1?q?o2z1ayaDhb/blYPAynf3LlUaKajbFE7BEL8vdpNoepEehOZJp0hwQTO3DGwP?= =?iso-8859-1?q?Etxb9g+KjxLYxioB95Rgz6co7gjZn+LVd8IEWvMkuFPujDBBQu2RvCpAfGyW?= =?iso-8859-1?q?qd/9RuqHvrjOke5mNgdX8GlmQHttELjK3m84xZ96xJ9zGXLqgRGBHHAAdfu+?= =?iso-8859-1?q?F5+0vmZ/3Wvb2CTqBFT+nSLfSszgvJ8wSrcFnbD4QXSbHUxlf8WF9h2iOaYB?= =?iso-8859-1?q?q3EbdUfeW6EyMF6N9xoCqEAxppksC9YYRe6rZHxf2UmOTmZGwzZHfLTbu4Ok?= =?iso-8859-1?q?weu4ltPtqb1pwJCrv+ZfIccSyyo3E23ja95ZIr4/hHk5Z7F6Ik2szocMSJ+p?= =?iso-8859-1?q?6fGe5afn/xrX3eoZ0T+4AMAp3Kl/znLSJjlOENobw7uEU2NtAJ+t5xTYerht?= =?iso-8859-1?q?lw2zJ9V2wG2jzmf8BPXk1t7Ai70GQsBfYfoCXfqzY+VDtgOCsrtueE4Ggjdf?= =?iso-8859-1?q?BoittmSUsvLUJd79XWk7Nfs0/BGI+r921CD9dhgxAd9dYoeNM714aREZsHGF?= =?iso-8859-1?q?0TgJk3U6kZXspZnLDBd7SA65sNlYbqB+8WshMB3Wg2hs2PZ4KrnmNgoSfjTV?= =?iso-8859-1?q?6z8Lj5IGarXTXlq6SQN9fe5ClW997FPDMB5p+1IVeuzeWtg6g9TztxhczRm/?= =?iso-8859-1?q?Dfr8rN3cUZqa9916kGvZ0VbnbjR4Ac14Ugg0Kf6tDNCrmaKgt43eoZs7iFLP?= =?iso-8859-1?q?U2nidXVyate5Ly6aqxGq2Q/AtmAoCZSEUuvab+XQR/o2PBw+V+pnIQTbmqcy?= =?iso-8859-1?q?vLy0y1ird49ymDxpK9n/mY+MdxWbunb4xF+0RWOV2eqZBKWgJAJUawrEkCEB?= =?iso-8859-1?q?90MK3xkp5iHKqT+a1N13r6ZRIsOL6mg+rn4hsUQsIS6ivdEYpkYSvtpiBxe7?= =?iso-8859-1?q?22ntS+EI2lmfKilB3wGn1oHungrRfoDYxTRfEppO7NxIPCQYP8boGWmTlCUp?= =?iso-8859-1?q?gC5tx9oA4u+dP8qK1im/mfAp0CICd1xkZS/LGt1DMZewq8fXWiCY27pidwMd?= =?iso-8859-1?q?8gloWDK7j+y4dyHgVBizyX670hw9+BH5irupvRpdzFbQ4SQwoAAWD5oQPz58?= =?iso-8859-1?q?Rg4lkP2Cw0wgG2mm7qESDagmnAgFMGdlNT0Y0d/P1EE50MkE3F6UHwN/qAJB?= =?iso-8859-1?q?3BDisScc=3D?= 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: d2a96818-6ba3-44ec-1d12-08da2d6b74a8 X-MS-Exchange-CrossTenant-originalarrivaltime: 04 May 2022 01:14:01.7045 (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: 4JrVFhBdtlqknHBIAWtg98WDLCkohuVzGP/4TdlErvHlqSUe9Lad90ZtnFpB+YZoDecwZjnQ9owbx91+MN5BvQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR10MB3728 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.486,18.0.858 definitions=2022-05-03_10:2022-05-02,2022-05-03 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 phishscore=0 mlxlogscore=999 mlxscore=0 spamscore=0 suspectscore=0 bulkscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2205040006 X-Proofpoint-GUID: 5g6BGiViF4zOq5wocdPjTS31ODB1PKpB X-Proofpoint-ORIG-GUID: 5g6BGiViF4zOq5wocdPjTS31ODB1PKpB X-Stat-Signature: zwqryc8rw6xtru89wb7emqq6wc6g5mtn Authentication-Results: imf16.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2021-07-09 header.b=R1xYEt+O; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=YaLsOFkV; spf=none (imf16.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: E245F180057 X-HE-Tag: 1651918854-208969 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000347, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: From: "Liam R. Howlett" Use vma_next() and remove reference to the start of the linked list Signed-off-by: Liam R. Howlett --- kernel/bpf/task_iter.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/kernel/bpf/task_iter.c b/kernel/bpf/task_iter.c index d94696198ef8..9a0bbc808433 100644 --- a/kernel/bpf/task_iter.c +++ b/kernel/bpf/task_iter.c @@ -300,8 +300,8 @@ struct bpf_iter_seq_task_vma_info { }; enum bpf_task_vma_iter_find_op { - task_vma_iter_first_vma, /* use mm->mmap */ - task_vma_iter_next_vma, /* use curr_vma->vm_next */ + task_vma_iter_first_vma, /* use find_vma() with addr 0 */ + task_vma_iter_next_vma, /* use vma_next() with curr_vma */ task_vma_iter_find_vma, /* use find_vma() to find next vma */ }; @@ -401,10 +401,10 @@ task_vma_seq_get_next(struct bpf_iter_seq_task_vma_info *info) switch (op) { case task_vma_iter_first_vma: - curr_vma = curr_task->mm->mmap; + curr_vma = find_vma(curr_task->mm, 0); break; case task_vma_iter_next_vma: - curr_vma = curr_vma->vm_next; + curr_vma = find_vma(curr_task->mm, curr_vma->vm_end); break; case task_vma_iter_find_vma: /* We dropped mmap_lock so it is necessary to use find_vma @@ -418,7 +418,7 @@ task_vma_seq_get_next(struct bpf_iter_seq_task_vma_info *info) if (curr_vma && curr_vma->vm_start == info->prev_vm_start && curr_vma->vm_end == info->prev_vm_end) - curr_vma = curr_vma->vm_next; + curr_vma = find_vma(curr_task->mm, curr_vma->vm_end); break; } if (!curr_vma) { From patchwork Wed May 4 01:14:02 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 12840595 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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 07471C433F5 for ; Fri, 6 May 2022 06:19:03 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 08DAE6B0071; Fri, 6 May 2022 02:19:03 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 03DF36B0073; Fri, 6 May 2022 02:19:02 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id DF88E6B0074; Fri, 6 May 2022 02:19:02 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0105.hostedemail.com [216.40.44.105]) by kanga.kvack.org (Postfix) with ESMTP id CE3826B0071 for ; Fri, 6 May 2022 02:19:02 -0400 (EDT) Received: from smtpin26.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay04.hostedemail.com (Postfix) with ESMTP id 85121A5D2D for ; Fri, 6 May 2022 06:19:02 +0000 (UTC) X-FDA: 79434315324.26.9008D4C Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by imf28.hostedemail.com (Postfix) with ESMTP id 973BEC0053 for ; Fri, 6 May 2022 06:18:46 +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 243KvDsd027626; Wed, 4 May 2022 01:14:40 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=JDvlL1KeBiorNzZwj5NzYRbgwcuQezTZc6jTGkCSRz8=; b=KuQ34eSm+SkCkVl6kVrEmUauEnH9Ey3c5Jgc7fdGe2PwJ5NvkyfUcsJZpm5dWfZ2eKJa kEAWGVLFhyyYzHhowq8QhW3oF2C5T+yzkkWmOcGhzp6+SZZ+E2HVoxh8aYXXkkbQTAB2 Su+zAsh+AIW3cgWiyl6DaGzMFueLSn9fOySvG7ngrDU4NKsBmyDmzPORy5OddEMK1fz6 f1vLzO5RUCXGI46dcgVMMmopRiH6hmkqEShZfi3mbSHD8I1KD+Ya/sqlELGnDdNofYp9 dpn94FFW+G1mAis9sIqyJ0Gw3aITVG55GdTwY+3dzBfS8URIYAQO8qgbK3Q+D33k89Vq iw== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3fruw2f6c7-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:14:40 +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 2441BXQu013207; Wed, 4 May 2022 01:14:39 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2049.outbound.protection.outlook.com [104.47.66.49]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com with ESMTP id 3fsvbmv41r-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:14:39 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=oF1lzDbgJjhZ/fu339kJZa7ic1cpgfOtf2axR+savGyfEsHSzXJKP1Aqfd4dRXlu6PW2XBVtys4UuV99jNi4QN47nMSjhq4qNopsu8ScP9GatC4TeIuHavyhb8wmJx7SdIhBtRLHceUA4bQ/QIjsErKR3ZbG+N5nxjZosahRDgwRzrItvndjwFXbj+R98mtpit92o88/gMpgS1MUGCKahZogwqv1Fd6SIgUdlJz72KoX1njzI5qc+/pqyAaH/NM+hxLu6b2UdTEY4LGSzhdPviDLiW8IY1wnZSGN/8p3i+l6MZwLdvc/hScXRl+IZU248bdspKvkR3xSwwf7r3tWsQ== 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=JDvlL1KeBiorNzZwj5NzYRbgwcuQezTZc6jTGkCSRz8=; b=folUdWGj9GixeKLptR3ZeZrfS9FaqXxO8C7Mtk6xu0bxVJ0bngcEVIjU8R410qcxPtBYGeYIOfiVTScXaZH0PcopYvsess9Ehv9JsBt3p1QK6hWC/4rL2hu8cy+VlsLuFRKDg7ig8z7aSCLGkyEeOdLPZpYPfMSb+/3OqScMCoyidkX1hbFS4r6fr5+H+lkXXpdKOpD7fTE023dHkzvFYuNqP8WJFCX2G9rQB7RGPN6psdJcq0ziuAwFT5Xa9n6On/hHOnh4AU1K8Gnv8DkwzNWMol5iJhrqZqZz7ZtHsAmFIxAVYOhW37tlk2ZHAGKb3sYeInaJgck3dt4et8oAkw== 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=JDvlL1KeBiorNzZwj5NzYRbgwcuQezTZc6jTGkCSRz8=; b=n5mezdLyAElZh3WXfzgM8yNX1NQNmoRpbRnPtkhIwQoOu+oJ26q2+PK08cQ1E1SJy/Xyn8FPEH15AqtjYKKXj76/TuJw/Aew/SpMTlzUDVTukcF4JezazhK80UE45k3/mCnSjNrm44frpvQb8pNPwUFyPf33V3GvIG1+yRyO2f0= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by SN6PR10MB2688.namprd10.prod.outlook.com (2603:10b6:805:4e::31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5206.13; Wed, 4 May 2022 01:14:37 +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.5206.024; Wed, 4 May 2022 01:14:37 +0000 From: Liam Howlett To: "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton Subject: [PATCH v9 51/69] mm/gup: use maple tree navigation instead of linked list Thread-Topic: [PATCH v9 51/69] mm/gup: use maple tree navigation instead of linked list Thread-Index: AQHYX1Q9GShE2LuTbUu/7nXZYdTL3A== Date: Wed, 4 May 2022 01:14:02 +0000 Message-ID: <20220504011345.662299-36-Liam.Howlett@oracle.com> References: <20220504002554.654642-1-Liam.Howlett@oracle.com> <20220504011345.662299-1-Liam.Howlett@oracle.com> In-Reply-To: <20220504011345.662299-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: 377454c7-f4e1-47d2-f04b-08da2d6b74fd x-ms-traffictypediagnostic: SN6PR10MB2688:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: keamf5EEYGGCN5bce+0EcnHFDCubTYIoqI9Rc2+4MdVGz3ogP35I0/B7ULontZUau6TDXapOxZ5GttHsqBcrCGac4MWLCU6hW2mAv62Q5g14ZGTuQRft/Bba0aHY7h58+dPl3g2HJttISn8Az5XuNlFr1fM6+hn+mWYHYGt9k8MLaXlUPh/AUrATHkvqQwigb63uvTuArwSDlR8p5u88kEXiQTixKkMSTYc2/JJD0mXlEvlhxr4QDtUGcMNox0DqX3DZjbQA0gJxbvJM/S3ea7cFX0SKObxadN5mIdNvUfLQgHEIVytz9pM4XGJXzw0wjv7LqHUeyC4s/Lg4t4EKspK29C50kmWEGqANNHPYgSw1lwQioh3UIHMfKzBLGejSun2R1dThMnkbpb2fQ6mCpu1evtogE4Ki44pzwmJrmk53HgQOhbqi5eASxQAmdELNOvknZz+X/xVnWNTdTypHbzjoh3JJ7bGCzbVane7a1Y+3aO1mU5xiPjSjDrqljmBz5VRdZ3se5+v82KT9TYY2cakDcZ4ONZFWsv8SD9cFTac0o+l9rbVEY4IPH4cv8HwGCSGghuhgR3YasspilVIwzd4JPEXq+O69032F8i8B6li0Ok+g/S4E8A2xdS/qCKvdOadtBEELWnlrU2u0Viw3VlMJkyUx2K0tIbv83WHG/jAdlB6QANhbVDTs/ACaNNX4wXsUlJWJK1r1bR3o8THXmg== 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)(186003)(122000001)(1076003)(2616005)(66476007)(8676002)(66446008)(64756008)(38070700005)(36756003)(316002)(38100700002)(66556008)(66946007)(76116006)(91956017)(110136005)(26005)(6512007)(71200400001)(8936002)(6666004)(6506007)(2906002)(4744005)(86362001)(5660300002)(6486002)(508600001)(83380400001)(44832011);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?Y/EVMV8ELGKWLxiSzL1uPNc?= =?iso-8859-1?q?R7VClo+ZT9osjPlAkupnW6n7qkVDryDH11jZ6pqanEn11N3/41yoXarlxswF?= =?iso-8859-1?q?Efzf1uk0b5K3Ue96UAdrCcjSd39hQNN7jto6IVYlwMZZbz3dqGuXlf7lVQMV?= =?iso-8859-1?q?Xj949o6Ax1YIne6q8rRflpGoqhY0ztU4N0KVTHjjJwvEmJRUpcf61eByBnpN?= =?iso-8859-1?q?9D8C9Sk/dZVYlqhtiE28MGBnqyswM21M7dXo1bZDpRYKNEjo9Z9Bcui+/B0W?= =?iso-8859-1?q?3vsyeBbI9MGq41mEtBqNsTIm0c0TyIznIIg9HHhAdWp9Ymys9k8NuQaxpwWi?= =?iso-8859-1?q?2PQJ+76AZoz+Ck5IPppHJduu1skiX2gX+rtqEC9Gqpy3ixs4m+DdP63tlUqW?= =?iso-8859-1?q?SxCDHSssNXfoyP0N6LzeKzM13RsVNE6yOmJcshuOCGf0tX3yKvRVq5R8+GhQ?= =?iso-8859-1?q?9kJmuHcAW2XlEOVSh8d6TCvKqLY9qWzxsVUYLFhQOtHdc6Qqv7rGoNcTC2Ov?= =?iso-8859-1?q?bmUPalTmRnDmL7O0lpdlbkrYbwhB4y+3qOh51Rf4nBSlQO69zbk6QZ7YLEyc?= =?iso-8859-1?q?KGC0H/LPWrB+G/VEMXdzBAMgMxDKyj4HD3rpzw2BL3p+DfWuUVpexGgDJNFu?= =?iso-8859-1?q?sK9N3ZbZYl/y4NC3YMYJ3rbW1cDQ3Ibgwy7g83GLVBWM0vhVaDG20HTukAh0?= =?iso-8859-1?q?ZRsQiTlqWwJmRODg15O6W2QQhwvf7Gmv3ay/rmENE+sChtHWHHcOcdM18RLY?= =?iso-8859-1?q?0Vft8dvv3qEcguhZ+uzRYnaVNcrssg1YgZ5pBm+9TGF0eInH1TCZdi2vzehJ?= =?iso-8859-1?q?bYd7gwn8XslS8r/+iHtvmMI3FjP9kZ7Lcmth05kqrGQdW1uasY9DmX5/RNzA?= =?iso-8859-1?q?3/QpOJp5x85jimtkru2wEDyIOKMI3qN45yS/65kZMKMYxget56qgnaOZKD5S?= =?iso-8859-1?q?59BnaaC4cSD8cvZX1v8b6wYHjgq6sB809jYdHh/jqiGN32YcNQfpOSe9kRPp?= =?iso-8859-1?q?211PjFQbm7vQJtxuA6GT06A9kPlCQ31u+7cAP74rNtk1U9pHKlJF5VIQgYjB?= =?iso-8859-1?q?GDir9KnR0M41CDiPbwGU8qhek4LJcu7OeVYtKgJ3eBS4JPlrFt6YfAvZiGKE?= =?iso-8859-1?q?tMrcwmRlvkfJfeKNxlA8uVJhJ2uizFdJ2AwJh4HVGgQjRLxRwTv1Oo40d+j7?= =?iso-8859-1?q?pCLW7wTxS+WukIrHQSkT6rYo+MpjURBb8Kap6qO0mDEqK0HTykc5d0ooqfaY?= =?iso-8859-1?q?l4nD/cEaxG8t65hUvnlkpWiPKuQSX4hJ670chSzEJATZiPnCsuTY1gBdn3pt?= =?iso-8859-1?q?MPezQTxmUxvDzA3uXqQppXwXIWzlVs3qdDPNDdAxaLBotTIO2kuUMEPA1GZd?= =?iso-8859-1?q?Krq3ZJ+vfOLU+CaHJMDHhkABFZ5/nLDU65jQWHFkZ/Htiir02cRAtfcDpKYk?= =?iso-8859-1?q?pTdtm0TiVcMV+swDy5Z9cmo4gdKgoXDgAfH68BbZVk9ZmdBH4NSC1JjEMPEy?= =?iso-8859-1?q?9s//3xHGrWN76mfjpTD56gUobBTiB673825/zbQ4bdPcHw/cskMTbMKnfpdb?= =?iso-8859-1?q?2/9vpp5nUUo02aOyHGxmkLYGstxb8+IYgrc/xzAMmMM/RK+Hb4RvTyx0NhgX?= =?iso-8859-1?q?Ux7u+g9qzwJ5rEtvJTs3MnfoMKU/SGviFKimLgBGxAe3EBIBRQR9I0WQ6U5q?= =?iso-8859-1?q?kdyA34EySwn9EuvXYTWHrjRbrm0HwxVP+KRKr11bOqU/ikUJF2Xm4mvJHFmA?= =?iso-8859-1?q?/Zjm407jfv8vvF4wugRPsBfjx2dBUTEyPP8H/sVoe2Cm53yt71xKNv9v0WC3?= =?iso-8859-1?q?I7f2Q9SQ=3D?= 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: 377454c7-f4e1-47d2-f04b-08da2d6b74fd X-MS-Exchange-CrossTenant-originalarrivaltime: 04 May 2022 01:14:02.0638 (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: 9OUaiHgQayK8Mhw/rK5LJ/qRSseOmWpgS6ddk2t15d0rJB3SpLUJJLURrjXAnAG6z1SPZ8yB5YduNxxxdvRLdg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR10MB2688 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.486,18.0.858 definitions=2022-05-03_10:2022-05-02,2022-05-03 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 bulkscore=0 spamscore=0 malwarescore=0 adultscore=0 suspectscore=0 mlxscore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2205040006 X-Proofpoint-GUID: NcbFA4Ua76qIaOzXKzuwxdZbGcTns_lm X-Proofpoint-ORIG-GUID: NcbFA4Ua76qIaOzXKzuwxdZbGcTns_lm X-Stat-Signature: wake6j69pf39bj5mcryzsfqpm1x5kebw X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: 973BEC0053 X-Rspam-User: Authentication-Results: imf28.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2021-07-09 header.b=KuQ34eSm; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=n5mezdLy; dmarc=pass (policy=none) header.from=oracle.com; spf=none (imf28.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-HE-Tag: 1651817926-1488 X-Bogosity: Ham, tests=bogofilter, spamicity=0.045308, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: From: "Liam R. Howlett" Use find_vma_intersection() to locate the VMAs in __mm_populate() instead of using find_vma() and the linked list. Signed-off-by: Liam R. Howlett --- mm/gup.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/mm/gup.c b/mm/gup.c index f598a037eb04..28fd5d5aa557 100644 --- a/mm/gup.c +++ b/mm/gup.c @@ -1533,10 +1533,11 @@ int __mm_populate(unsigned long start, unsigned long len, int ignore_errors) if (!locked) { locked = 1; mmap_read_lock(mm); - vma = find_vma(mm, nstart); + vma = find_vma_intersection(mm, nstart, end); } else if (nstart >= vma->vm_end) - vma = vma->vm_next; - if (!vma || vma->vm_start >= end) + vma = find_vma_intersection(mm, vma->vm_end, end); + + if (!vma) break; /* * Set [nstart; nend) to intersection of desired address From patchwork Wed May 4 01:14:02 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 12840176 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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 3DD9EC433F5 for ; Thu, 5 May 2022 20:17:22 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 242516B0071; Thu, 5 May 2022 16:17:21 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 1F1346B0073; Thu, 5 May 2022 16:17:21 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 01BA46B0074; Thu, 5 May 2022 16:17:20 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id E639D6B0071 for ; Thu, 5 May 2022 16:17:20 -0400 (EDT) Received: from smtpin18.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id BC1DE2E54A for ; Thu, 5 May 2022 20:17:20 +0000 (UTC) X-FDA: 79432799040.18.3DFF39D Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by imf01.hostedemail.com (Postfix) with ESMTP id 3313340096 for ; Thu, 5 May 2022 20:17:11 +0000 (UTC) Received: from pps.filterd (m0246632.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 243KnJSF013484; Wed, 4 May 2022 01:14:41 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=7Yn9V/1cTpY9CxoJnkNHIjhQ3Gvdb8BYbJIaBvjK20U=; b=MX/Mt+aiksR8+9b7Hip7Jwjz2b18U8gugyioNPt4kEkIfrPaUbDKInsmDR1lw9XSr2EM L+SYZOH88QxmThlXdDe+BQ5Gr/YAtrnPW+v9SG1D+PISpy51ttMcK2xg+GrsO1hIGisr FiG++u8XkMWGssz4hKxa4ALucA73WZ+PcZQGeULiM3g4mUQtRwmja/58nomJUWxFPPL4 Jck1/TOkHypn6pZqddnwxypT6svpq81f97OoIYEWt78KsxdYpz2vnKyFOfqIjcEuO9Lq FiAVNqj8vY5Hvvbl5YLiKvRqmWJq5ibYJZ+v+U/477C633/jUmNJ5IUk1RHCKoQ8taO/ hg== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3frvqsf6fd-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:14:40 +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 2441BXQv013207; Wed, 4 May 2022 01:14:40 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2049.outbound.protection.outlook.com [104.47.66.49]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com with ESMTP id 3fsvbmv41r-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:14:40 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=EdhKywSsE1S9J0G3chjP9X6iylUBIIGO2TFBNWIyuN/cQyGTrA3SYn+Qub1xFKOxxx40Czff6IEqfj3BdpuAysoQOmEMJm+FVehLUhMViKfYvX2i+MlQeAp8WcIBEtOwr/NCeprtJO3CKEYPgxO+2T0zGfGuaNd4MBFDuPfjzvLRLYdJDpKyaRJ2gU6UNwHAxrinmcgc4sjma+nyMuc8zi+bj5wuuSVt0JMt2NQ3xXE+4OGRHoNm0bizfIV1EurKIifxbM7P64+bHVXqPo02oWDECA0CwOK/ZSkabwScQGCW1C3QvZtUz6e5WXxtmUkWXgH+Q3aTBmEjKMdIqgQZgw== 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=7Yn9V/1cTpY9CxoJnkNHIjhQ3Gvdb8BYbJIaBvjK20U=; b=aYuabL9SlIpafQxDp3y8st1ApaMR1/P9ySAoKWhjSKFn+D3D9u3fzPXPL23BedkKk48XV7XBy8nMg39kP7ACYK13O28/YLiO8EXFpN9Me9A7eDLP6mhUdTi5NpUmaj6IOF31UE1tpDo5NLt3P1twfLNzNUFxtotGeQoGyZNU57QmAMbbkXqI0gZMedFkBWVI8AT8E2twwkZYFdQFjvZqKnkPnykb9y8r1U8sBGOTEAuSHjRoab+tLrCugCenJ1Vxm945HoDv8P+G+zBh9hgevgrwi5pzftFHuyPfkxHzqSmAUoaWoUx09eYifmeCusqJ06AJ2oGcuGwKZa5QHzn2OQ== 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=7Yn9V/1cTpY9CxoJnkNHIjhQ3Gvdb8BYbJIaBvjK20U=; b=DGAnHZlSvTVuZMrK1j/GXIo8bqWK9pVBx6hmchplR5uZqBISqEjCY+1NL3A1kIyLbkfhqnESALv0h9sBhnWETOr9YD61IMk/KEpFN3B8Vj+IT4vBkWlQD8iSGlqqIK0GAlNNihgF+KEEwcvXQWjhnAgTarjVKDcjgyUbfCE8lJU= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by SN6PR10MB2688.namprd10.prod.outlook.com (2603:10b6:805:4e::31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5206.13; Wed, 4 May 2022 01:14:37 +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.5206.024; Wed, 4 May 2022 01:14:37 +0000 From: Liam Howlett To: "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton Subject: [PATCH v9 52/69] mm/khugepaged: stop using vma linked list Thread-Topic: [PATCH v9 52/69] mm/khugepaged: stop using vma linked list Thread-Index: AQHYX1Q9bf9C/gs9X0Wx+jxWdBRhTg== Date: Wed, 4 May 2022 01:14:02 +0000 Message-ID: <20220504011345.662299-37-Liam.Howlett@oracle.com> References: <20220504002554.654642-1-Liam.Howlett@oracle.com> <20220504011345.662299-1-Liam.Howlett@oracle.com> In-Reply-To: <20220504011345.662299-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: 7c0442e6-7800-412c-631c-08da2d6b7532 x-ms-traffictypediagnostic: SN6PR10MB2688:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: YJGZ4YI5jZi35va+SHehdzGKCWYnPLoqx81JcYJuaxFq6USxs9QzY4XeoOH+Wa1Rscv5v50xsBlX9qURl1ryOpskGnM+rFbutM9Fwn4uCtRrXhsnn2ELias4tS9mY73lzbbaXUpVvCsthAZkpzl0AuyplMDUadRSD1PbdvDcPM9NYp/AvaWo88+St0hTKO4KR0ipQB0iwZP7SdM1o5xFdTMdXC3AcdEWLOU4geAcezJhQA4e26aYhuZs+FnDLL7PY6IEk7Y1FnDzrbrF+dzgu33NLBh1kGJv4OAHF1VV+YDXJ0AblUe5ughlPqrHJjUl0PHU3QXXNZbfAJkNEe1T784deSEFFnyyW9Vm39tTvmjESRuoi2dIwvkTDieop8csM7mZ090dpHat4wOt3H+zqgFkpGQBBi9yKueYCBEE3iVSZSQUKJO1J3AKvSqoHhaRAAAOFLS3VosH2Cry7owZyjoiw8aEfVrv4uWpsh6L38t3OTh9uD1XbYl8gTKbEYUL/GNEawF6/k1LvTYarGFSvnBa8AA7Wl4lpe3Cy75FjjvCco8S1e2acYBtcV2TX3xL9JqcbgAW/WPm7xrw1HNW0n7sBCoi+BvUpwcGHmQcWuIqo8P5YP3E3gJ4ezBxxtfHJTjPyGY6Cl2e2qMiXqLC7TR+OEfDOitxzqip2RF+SE8Px+BYmu72wIcoVF39UOkXll2XRuO/CYfoIfLt99VbuQ== 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)(186003)(122000001)(1076003)(2616005)(66476007)(8676002)(66446008)(64756008)(38070700005)(36756003)(316002)(38100700002)(66556008)(66946007)(76116006)(91956017)(110136005)(26005)(6512007)(71200400001)(8936002)(6666004)(6506007)(2906002)(86362001)(5660300002)(6486002)(508600001)(83380400001)(44832011);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?yJe9CcPCywcl5ycNLyCj8gT?= =?iso-8859-1?q?6YjiaUBvPXoJyczCAOrArHOyWI20HLxmhiYHCqaKDewYBciF4HxpB2kRA137?= =?iso-8859-1?q?ZgcN+PX7iTjg2TctOLjWyS85n7H3FrLE4XbLKAIZ304gajb6H1VyXf6/uL64?= =?iso-8859-1?q?qF/N5PIGm4eON+Bc3RCAkJwfYfYMLnYiHSDY1mrpdASnbBAXIVTE/cqjtj7i?= =?iso-8859-1?q?r1Rfcyr1uwZD/tX9HDcql3Y7zXBiqXchMJ4h4SaeSSM7/c5YPnqGut6L5YjX?= =?iso-8859-1?q?HCDOnkxuBlNzyl185LRrhijdKxTHEqCr701BPJpxLFpjTKUWvZG3lOgZGQGX?= =?iso-8859-1?q?SzhB4OCYES5bCc/z9z60PJ+otIya8kYBH6GPBWd+XzVWnURkh0ca6CxNgUe3?= =?iso-8859-1?q?fIE4rhSIlUPyGR5xiCNCazo20wILpPfIvWPe68h43ZMxK274wH3xICRxz9XW?= =?iso-8859-1?q?5i1t7/dlzi2WazPQt1ApY4oWbB9ECigKd6xEvkylhmgCxvOq2OmuHyAhJ5HV?= =?iso-8859-1?q?RuNupf6xdhOiZFG7zIs7/A27rB9u2qUgSycVT240DLKRKhmnZMzZ1tTDf7tT?= =?iso-8859-1?q?MbbqBTb5s6QMdkB5tzHoAypXwcS6g0Wk9hcmFLr14bjA02dFL+jNGYh+KAfs?= =?iso-8859-1?q?ctDuvpoTA08XyPfu4evLTv9APCX7xXE9xoSTw0nTtWfPKb8Lppc48Y1TKOie?= =?iso-8859-1?q?9CoY3pv1kcDMCcBIFbdDX5rQnVGnWzTrUnz33rJb7VL6XXiEF0adtOukj0zP?= =?iso-8859-1?q?Er2d6UAl8VdpvmBQQsP9Y8gKNV5KOQHFc8i4K4XkLhaFWPNV/C8pyDh5t5Jw?= =?iso-8859-1?q?fReqT0tjtFqOzTmcb7sOtY+zNUPQ+DOjgowQrm/Zwx/UUP2JvlyQz00H/+qZ?= =?iso-8859-1?q?zhe7dJuTq82BJSnPoIrlWYwKI6ucOz2jdQp2GZnznNhk3nq7eL4t7FUQ9l07?= =?iso-8859-1?q?zKLuQQSLtsKqqa+MplFzbxr0UgW5G/6p2aAiyHVNO7AkQud8yUMmC4Eo2SoM?= =?iso-8859-1?q?9VTsMVGT/yFKj11cAZ+YusYXFsjBvJr0EXcokoRJpQ2iq5ZxOKzeAkj1wvfc?= =?iso-8859-1?q?NuR6AeE7R5zLjGRCq23jTEJ/CuiQgP9lCMBf+vSMUeodMYf+whEyEso3Qx8a?= =?iso-8859-1?q?/fs0YTC48Kvs+uf1IU2V8fb1VlvnK6RoYvvsdupv9jkVaUBIMAmrrpn9yzd0?= =?iso-8859-1?q?J7ltLzd3QavprcOICBjKs4QfQw1hHTudZFbB2ooPO7izXJXWlAtszrobm9GY?= =?iso-8859-1?q?jKYKlvb2rXU7NNKcpxCbBWsU9Vx4v/9nNdZphgD7jFfbf6MUhPUJ7o7ujd0z?= =?iso-8859-1?q?lxbNmPw1cuX+P3z087bAF0xQpGBoUXevFqMRHSVyHZNap/kejyu1S8KHIcEo?= =?iso-8859-1?q?XBI0CeRGvQuEPiLXX6vDMzMHmh/lc7LxvN24bW+iX64jQc/6QqbMACwVoRm7?= =?iso-8859-1?q?sHrKsc+NTbeinUAs5CZPNxm69yOQfjEL4KTK4C7zP1FcZmbR++9LNmQa0Cet?= =?iso-8859-1?q?hx2lcuPb3wRCLoBJ3HYKyjciH1gLLEgrjHBn+ctJ8PpJfGgKLzYyKnV8YkQc?= =?iso-8859-1?q?A2rGrVYJeARd1JRHoLla0Za2fpi974qLBd51zbwmMQtO6rAaWd3Oq4jwllp7?= =?iso-8859-1?q?Ic41ydbYBmyGbA2uhes9hJLgHaLysoJZzgnyjPX2E4DI/E5DalZTKjCHy2hP?= =?iso-8859-1?q?NoyXxjl9evopmsNhkCPs1tFrsbXsrYWlC12tBCIzCIzBKYA3SkatwvqI9iQt?= =?iso-8859-1?q?0yATcCALgtmfjc4DYNFijVxbZcnmOV646bXh0f9le8xrtQqnxkb7Dhp1IBqg?= =?iso-8859-1?q?6DW/zpPY=3D?= 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: 7c0442e6-7800-412c-631c-08da2d6b7532 X-MS-Exchange-CrossTenant-originalarrivaltime: 04 May 2022 01:14:02.5013 (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: vPJBG2lz+lG9QbCHqciMYk6WKuTGokjlAzKclcIyb3rqPNzWApY5zeTDqpFyjZXKHvfOPXqYVXzKJb+A3Mm0Dw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR10MB2688 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.486,18.0.858 definitions=2022-05-03_10:2022-05-02,2022-05-03 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 bulkscore=0 spamscore=0 malwarescore=0 adultscore=0 suspectscore=0 mlxscore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2205040006 X-Proofpoint-GUID: 09lkM9QnYoqPZ40tU-qhDICuYAKoCUCJ X-Proofpoint-ORIG-GUID: 09lkM9QnYoqPZ40tU-qhDICuYAKoCUCJ X-Rspam-User: X-Rspamd-Server: rspam11 X-Rspamd-Queue-Id: 3313340096 X-Stat-Signature: tydyog8q8a4jbenamys5kkethheigmez Authentication-Results: imf01.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2021-07-09 header.b="MX/Mt+ai"; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=DGAnHZlS; spf=none (imf01.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-HE-Tag: 1651781831-129950 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: From: "Matthew Wilcox (Oracle)" Use vma iterator & find_vma() instead of vma linked list. Signed-off-by: Matthew Wilcox (Oracle) Signed-off-by: Liam R. Howlett --- mm/huge_memory.c | 4 ++-- mm/khugepaged.c | 11 ++++++++--- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/mm/huge_memory.c b/mm/huge_memory.c index c468fee595ff..c72827d9cf04 100644 --- a/mm/huge_memory.c +++ b/mm/huge_memory.c @@ -2221,11 +2221,11 @@ void vma_adjust_trans_huge(struct vm_area_struct *vma, split_huge_pmd_if_needed(vma, end); /* - * If we're also updating the vma->vm_next->vm_start, + * If we're also updating the next vma vm_start, * check if we need to split it. */ if (adjust_next > 0) { - struct vm_area_struct *next = vma->vm_next; + struct vm_area_struct *next = find_vma(vma->vm_mm, vma->vm_end); unsigned long nstart = next->vm_start; nstart += adjust_next; split_huge_pmd_if_needed(next, nstart); diff --git a/mm/khugepaged.c b/mm/khugepaged.c index 03fda93ade3e..208fc0e19eb1 100644 --- a/mm/khugepaged.c +++ b/mm/khugepaged.c @@ -2089,10 +2089,12 @@ static unsigned int khugepaged_scan_mm_slot(unsigned int pages, __releases(&khugepaged_mm_lock) __acquires(&khugepaged_mm_lock) { + struct vma_iterator vmi; struct mm_slot *mm_slot; struct mm_struct *mm; struct vm_area_struct *vma; int progress = 0; + unsigned long address; VM_BUG_ON(!pages); lockdep_assert_held(&khugepaged_mm_lock); @@ -2116,11 +2118,14 @@ static unsigned int khugepaged_scan_mm_slot(unsigned int pages, vma = NULL; if (unlikely(!mmap_read_trylock(mm))) goto breakouterloop_mmap_lock; - if (likely(!khugepaged_test_exit(mm))) - vma = find_vma(mm, khugepaged_scan.address); progress++; - for (; vma; vma = vma->vm_next) { + if (unlikely(khugepaged_test_exit(mm))) + goto breakouterloop; + + address = khugepaged_scan.address; + vma_iter_init(&vmi, mm, address); + for_each_vma(vmi, vma) { unsigned long hstart, hend; cond_resched(); From patchwork Wed May 4 01:14:02 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 12841840 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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6CD31C433EF for ; Sat, 7 May 2022 04:26:03 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 873226B0071; Sat, 7 May 2022 00:26:02 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 8205C6B0073; Sat, 7 May 2022 00:26:02 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 64DB86B0074; Sat, 7 May 2022 00:26:02 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 544D96B0071 for ; Sat, 7 May 2022 00:26:02 -0400 (EDT) Received: from smtpin13.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 29EA160374 for ; Sat, 7 May 2022 04:26:02 +0000 (UTC) X-FDA: 79437659364.13.8F8DB43 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by imf15.hostedemail.com (Postfix) with ESMTP id 57A42A0005 for ; Sat, 7 May 2022 04:25:51 +0000 (UTC) Received: from pps.filterd (m0246630.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 243MOe0L026132; Wed, 4 May 2022 01:14:41 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=cna+z335HREyNba3815J12xrCgSfiJjUcCNSDn+yPww=; b=cpWmD3kDx1qauAEHIV64orR5GDsdl6p4XUCKHYoeU4HNjA9mTT3lN14JMqWV6qrTr9Hq LlMEjta3r/vGm7Jf2LaetnYvPqgiXJixQGZsh+Sa2pdThOFv/rEWmkBKzsvvsPB21brX Yo73juB6M8eHjwhwq4vJUYZdT7oafRYIRbBva58U7dKSkoMsbR2o6DW31xwOz1Bjb9um h3N2tKQE8wO0ntphgH6U80+F//afRAmXtn/xichotZc8PCDzJo7DDR66urTvHOyJkhyo JrhRLkxXHfUe6/iQSsYeMnxcLgwdGAL3SyB0URpqa3E+ip6mCtFhxwLK/e8jszzt8N+n aA== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3fruhc72q9-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:14:41 +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 2441BXQw013207; Wed, 4 May 2022 01:14:40 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2049.outbound.protection.outlook.com [104.47.66.49]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com with ESMTP id 3fsvbmv41r-3 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:14:40 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=TgFxhQstEa/GOTrV1AGfgYFMDz8oRAQWpXZFDV0qCQUOszMJ+rqYy/foEqBKhD8hGCoed+d9XCk/DfB+SIa1+fw08TmDC0yZSLxS5cB5jQpgGpcCVXXOLzcQpiWtQSxuCj3k1TNFo+Ru0+ycUcoVn50YxZdqfY4De+e7hE5K8yP0kNgA/+aN1p0gYPc2DlI/BhGRv0UmVt/RK4VxMtLy8Bzl/dzybFUYrvK9pAcriyi1YwDPi9sH9GeQkqKevfeZjXlfvaDY2m/d4Wk31GF2FUUxXCILHMzo2g0OtibTezzHQV+0wLQ/YGEb/DwbVY9EN96LddKT3vgMqICaY3t15g== 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=cna+z335HREyNba3815J12xrCgSfiJjUcCNSDn+yPww=; b=D5g9crIL5JFZaq6Obq5VTHbVbrbsgqGFh5HAwDvr/0zJw8XwzhFD0oFSbdTspR0qsqMjA4Nv2fo70Z2Prp5UBdt1TTyAVrbr/7uGyRP3C2Kw/tiGIOLSY3vjhFGRNvCfkvI42m+onTvnnO3iwujfKpPWuIvOUVhxVLynPvlYlvM1mQhnNHQtS2Q6XnXrUza12lObTJriJRAqpvLeqzqFRvZV4FKFB09zg010PpCvpD0fwGkDlrMubDy7eRqwFCWIgqkzybhoP9VvQpupj3zy4muWqFfn7u2MDN9zBQierVHVsi7+VEQY0sX+a2X4CmssqaiLvFEUye6mq1N5Z6ih6w== 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=cna+z335HREyNba3815J12xrCgSfiJjUcCNSDn+yPww=; b=S8O89t6p1Z6pn0LNggc2R2kLLbGzHJ9jzYLpQekx4Lt7g/LrFgsQQQmeek+pdOTFWKvuaX+ZCRg1l8nNxAvPMxUFB4lrquCs3deHAodgRNvL1FrcXiNPpukRQi/MW1FVS0WxQ+29uNzJc/szl+4qF6trI1Wc6I8txuoZVaqlqSc= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by SN6PR10MB2688.namprd10.prod.outlook.com (2603:10b6:805:4e::31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5206.13; Wed, 4 May 2022 01:14:38 +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.5206.024; Wed, 4 May 2022 01:14:38 +0000 From: Liam Howlett To: "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton Subject: [PATCH v9 53/69] mm/ksm: use vma iterators instead of vma linked list Thread-Topic: [PATCH v9 53/69] mm/ksm: use vma iterators instead of vma linked list Thread-Index: AQHYX1Q9YpsrMxTf+ki/Ga0LGkvURQ== Date: Wed, 4 May 2022 01:14:02 +0000 Message-ID: <20220504011345.662299-38-Liam.Howlett@oracle.com> References: <20220504002554.654642-1-Liam.Howlett@oracle.com> <20220504011345.662299-1-Liam.Howlett@oracle.com> In-Reply-To: <20220504011345.662299-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: c0ea5bca-7f90-464f-d5f4-08da2d6b7566 x-ms-traffictypediagnostic: SN6PR10MB2688:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 0FEEZRr7OoPEeP7uXyyhXyDUukXwbO7U3OEWdQ4O2aPD9p4MfsV+pvuW2VEGwyG0uT69zuzWqKqA0SK1z/MBmT2U+kD39etkdnfsgb1mzMURosZcirNdoQETY2VfN1QEc/wzspUtA+GciQK/0am25DK6NdIOCWEz7eb9RnNKdjLgEfHPDtYIxeScV8H/xGK8L2x4QlR5zvQD05e94l7YFl2iSiOKDN+UljNuT8ROZ7xoHZumz8bmZIr2az5s3Cds1+vP7ykHjNI1JNUJoKzcXFqS4qciNWvJC9IzHArXnLRyRBQg0bhTLoFWiVMOBuhdASRPXJrFnnugX79bNdsNlGJ1MNEECvtoBlmglpdsGVaKcJxarYZRSAHvDGYFKp9cRwJ9VgjPisQlWQXJw050iHeqDSgvIlmdghCFvi/b3s88sq6xEWEtqNrzaThi8S7assg6k4rfSL97Fikx3KDWiEEby11M9lBSBzg7qmOdH/mfoLNGq5YohpdypHqfQyxi+aaYdvgfENWqqJw/TwbxZtCdj1pK2Weax994kwvg6P5bTspJt+2ppUbETVyMbTrmS8mj6XR5Rx276Tyah2ht8vHbzrQL753RPWTW09/TD5+JyZLGaXj/ueaHITMl0+asIPZGVtf1JCscbNsrAFtcxFpI1k7ZOecD6Tc8AGwwbr5P11tVCDDfJJWYONhzvpayWNOcYYqogrcAejvbPOhigg== 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)(186003)(122000001)(1076003)(2616005)(66476007)(8676002)(66446008)(64756008)(38070700005)(36756003)(316002)(38100700002)(66556008)(66946007)(76116006)(91956017)(110136005)(26005)(6512007)(71200400001)(8936002)(6666004)(6506007)(2906002)(86362001)(5660300002)(6486002)(508600001)(83380400001)(44832011);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?uewftpyH1pOba/vXat1rsye?= =?iso-8859-1?q?fDYnMOLE6sPcLiPv4a6bvAWGYJ1slrm3nJnwXNAVBT9nRpuqYPTks4gT26ah?= =?iso-8859-1?q?yfrTyNeRBEIIcqJRJME+0Bt6Ktkl9iCQMopkEq8hiLFnz8X/m3LqTU8Yzv+F?= =?iso-8859-1?q?lbWN2dXk4OKvbwas9yGrNBsUghKsY90ED+9Xtzt12++g1UoZbCzjXCv1THgY?= =?iso-8859-1?q?88uPgEG3ucwo45h2WIatvO9QBZP/7pagOGJYosHVMIX2D7BrYGzwFiySnyjU?= =?iso-8859-1?q?hD6ZaVITOtYflxlEugwiFxytl/kNMV1DiOsAyePWU5AhwVytCz4vuYCt6j/5?= =?iso-8859-1?q?Cyo7/rbP5Tq1D5vW4pQZ30YUP/pXl/dVpjes13H/la+QMwy+mV6/TjQO8Vpl?= =?iso-8859-1?q?yMFfPXcEh/HTmF0xVULq6Xts+IxAQxQCdYpCd2f8DJrCZhzNts9LTdt2P0NR?= =?iso-8859-1?q?7hYlfJ3hcHwlXzV3jdWGclQ9xlZ4sE6ZndS9oK9WQPBZ0edmZKrYO30fhjko?= =?iso-8859-1?q?NzonrbTuQ3CO6VHMU+B8x7iLHQxkokPmpH49H81/0n7Dic+neRFjJmrJPdJm?= =?iso-8859-1?q?xEeLDfzU4Ts+e9vXUZD11FCuPdPJXwglu0voW+vdgu9b14Z60Qeedu30b0bt?= =?iso-8859-1?q?np8CTuu0hsUJus+EZpM/vf3ByObfuFVzK6wMJLtAKQrJo64dYAwqJQuDDSYu?= =?iso-8859-1?q?ke6xgyNP9yh2BNlEm1wYZTs7HXFXAycYrkUaFwyMb60Yd1SvHiuU2gujyf54?= =?iso-8859-1?q?/ZIHACfY6jNGtUyGs4cWIA3kY9zyWh6u0wEZtupMEXdGG4yDlMUlZuIo7wOw?= =?iso-8859-1?q?JKTn432Pts9Td8MHBQ6l2AW2PIerxb4e+NBvBy72B5ONnuPBmACFdjujDEhx?= =?iso-8859-1?q?xGwFwdw3nZ4YmBXfnq/40QsR2gZ0fIgeRrDedf03ZXrfzm++it/iX5xpT3JD?= =?iso-8859-1?q?U+5O2Ecz7rIywQNWS7a+bZpKb0BxJxz/uCL97SFsDIV3lvdQVUO/6qHwVaiM?= =?iso-8859-1?q?A9vowAz44NGCMdvZ52hnRgOkYY4S2ILTKwSMkscVm3HiwRmbGMEvGsNxYhQN?= =?iso-8859-1?q?JGvaBHahz6KHc7yiHg3mux1ChIf2MVC42bZjOpoe4qezCtpK9OC2Xp+rdLjl?= =?iso-8859-1?q?2nTgKYE81W8tqF+9r1KA1qFT66jQpnpodhctqgg+X/4s/WXUVUXV9QpA2PPh?= =?iso-8859-1?q?JW6L2kim4NZHPUZXve8DZryPYSvGXzfDSanv/YHGbx/C96Jj33Uf4bYCgZ3h?= =?iso-8859-1?q?X44m7Q7Q7VhAB6dyhv7irNddy26pOMAIZk7twSuEHVeq61q6z61NPXMC+ykR?= =?iso-8859-1?q?/FYozoIoXqaT6xY9rWn/gRg/RClxrBJxlywGo0nhqfe8ywZkYZKl1G8yK1oa?= =?iso-8859-1?q?YUB1Xqk0s98Zf/3YYqVsQndkayUi8b6/8EYsbLvZgUsn9UAnaUi6BBJ4l2fr?= =?iso-8859-1?q?etlO0PrP00QLcvD9wf47hxVShhcrJOnSNMPzeWp8tBuc91sSpZ6pjFEFvpHM?= =?iso-8859-1?q?rTIQpO9Y+TjszrJ71mEUM0JcAKLdczvouF4UDDzQ/7wIFLZWMLzFBFjL9rfS?= =?iso-8859-1?q?wFahGN+j1NJQUnTSY7CpgnkqRnJ5d7NylJKUcjzvlFjZTzS8uhHsajb5sogI?= =?iso-8859-1?q?gv/aoPF5RgI5jza5Va7TYpxQFilccJHuvFCpRPjOru18MwntDW7/uYOAeNK7?= =?iso-8859-1?q?nM8sznfZsqmyfRG5AESqH9zeraE/CYwx1Ihb5qM9qTIWWKexv4CnAVc/kmpc?= =?iso-8859-1?q?Po5TuuVFlVz3gVyh9kzQrjeYDkz1k/8VAXfLTLYCryNJRMMrThOe7dx1LXq0?= =?iso-8859-1?q?8/iV6nTo=3D?= 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: c0ea5bca-7f90-464f-d5f4-08da2d6b7566 X-MS-Exchange-CrossTenant-originalarrivaltime: 04 May 2022 01:14:02.8294 (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: N/K4YP5GlCf35kdN+Ohaw6KtrrWDmnvjgN6+dEHztiHPzjfDX73l+OhfPXG55eceq2R0cpswqvdmfb5C1E7hFw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR10MB2688 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.486,18.0.858 definitions=2022-05-03_10:2022-05-02,2022-05-03 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 bulkscore=0 spamscore=0 malwarescore=0 adultscore=0 suspectscore=0 mlxscore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2205040006 X-Proofpoint-GUID: WzvC-zMalKx58LdACodnVoI0VCvVLQZI X-Proofpoint-ORIG-GUID: WzvC-zMalKx58LdACodnVoI0VCvVLQZI X-Rspamd-Server: rspam10 X-Rspamd-Queue-Id: 57A42A0005 Authentication-Results: imf15.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2021-07-09 header.b=cpWmD3kD; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=S8O89t6p; spf=none (imf15.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-Stat-Signature: 7qh6fyj6osjmgyhkf6d4dwp8u7rsz4ko X-HE-Tag: 1651897551-613087 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: From: "Matthew Wilcox (Oracle)" Remove the use of the linked list for eventual removal. Signed-off-by: Matthew Wilcox (Oracle) Signed-off-by: Liam R. Howlett --- mm/ksm.c | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/mm/ksm.c b/mm/ksm.c index 94bb0f049806..ea3e66241976 100644 --- a/mm/ksm.c +++ b/mm/ksm.c @@ -980,11 +980,13 @@ static int unmerge_and_remove_all_rmap_items(void) struct mm_slot, mm_list); spin_unlock(&ksm_mmlist_lock); - for (mm_slot = ksm_scan.mm_slot; - mm_slot != &ksm_mm_head; mm_slot = ksm_scan.mm_slot) { + for (mm_slot = ksm_scan.mm_slot; mm_slot != &ksm_mm_head; + mm_slot = ksm_scan.mm_slot) { + VMA_ITERATOR(vmi, mm_slot->mm, 0); + mm = mm_slot->mm; mmap_read_lock(mm); - for (vma = mm->mmap; vma; vma = vma->vm_next) { + for_each_vma(vmi, vma) { if (ksm_test_exit(mm)) break; if (!(vma->vm_flags & VM_MERGEABLE) || !vma->anon_vma) @@ -2221,6 +2223,7 @@ static struct rmap_item *scan_get_next_rmap_item(struct page **page) struct mm_slot *slot; struct vm_area_struct *vma; struct rmap_item *rmap_item; + struct vma_iterator vmi; int nid; if (list_empty(&ksm_mm_head.mm_list)) @@ -2279,13 +2282,13 @@ static struct rmap_item *scan_get_next_rmap_item(struct page **page) } mm = slot->mm; + vma_iter_init(&vmi, mm, ksm_scan.address); + mmap_read_lock(mm); if (ksm_test_exit(mm)) - vma = NULL; - else - vma = find_vma(mm, ksm_scan.address); + goto no_vmas; - for (; vma; vma = vma->vm_next) { + for_each_vma(vmi, vma) { if (!(vma->vm_flags & VM_MERGEABLE)) continue; if (ksm_scan.address < vma->vm_start) @@ -2323,6 +2326,7 @@ static struct rmap_item *scan_get_next_rmap_item(struct page **page) } if (ksm_test_exit(mm)) { +no_vmas: ksm_scan.address = 0; ksm_scan.rmap_list = &slot->rmap_list; } From patchwork Wed May 4 01:14:03 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 12840288 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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 61A14C433F5 for ; Thu, 5 May 2022 22:45:12 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 87A8A6B0071; Thu, 5 May 2022 18:45:11 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 8014E6B0073; Thu, 5 May 2022 18:45:11 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 6384F6B0074; Thu, 5 May 2022 18:45:11 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 4E1046B0071 for ; Thu, 5 May 2022 18:45:11 -0400 (EDT) Received: from smtpin11.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay12.hostedemail.com (Postfix) with ESMTP id 2B74012258B for ; Thu, 5 May 2022 22:45:11 +0000 (UTC) X-FDA: 79433171622.11.49CF190 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by imf30.hostedemail.com (Postfix) with ESMTP id AD77C80092 for ; Thu, 5 May 2022 22:44:56 +0000 (UTC) Received: from pps.filterd (m0246632.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 243KbxhI013665; Wed, 4 May 2022 01:14:42 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=1VEJx1x1wvX+4QycQPS42TVRkpKJcax7YexB0MSjzQA=; b=M5LAeKenCL0Yr9McpwIs/IRE6TUDj18U5yj3IHACZ+j+nVy4W40xIdhzCStvGF1ke7Vb nMOFfGKJm3PXb3zOg+vsdG6DLAzWe2E2zH8xGXALk0WByW/I5IJM4Cva/KF99G1T8sTI Zz2aHrnotbF2E71SZtu+CAYEsE9FHn0EeJWapc4ag+iHjH3frPmkvoX+S46HsFJ+aU7c naLdzpRywehD0Mh1lTfpzPNlfrgww8XzBpUVml1njT7Y7o5cc5mViaM8Dn9vbhYeyKeu J/c5wdm6OXw9QQyFmGV06HGBlKxjE6bIqjy5lfNqoLefPJU/tAD3XKuq+uAp62Fi+g5t Kg== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3frvqsf6fe-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:14:41 +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 2441BXQx013207; Wed, 4 May 2022 01:14:41 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2049.outbound.protection.outlook.com [104.47.66.49]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com with ESMTP id 3fsvbmv41r-4 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:14:41 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=iTiEBUMolSVU/wW3yLjeJKM3oGqSC3FkNU+vZ5vpsiQ3kuSMlxMhETVv8/gAnLL1wjSjE0BuLsGBWY/eQK2QjURimrHhCkGhU8m8lmZyNB8qkRSfnR6BQMlYGjtOCOH/VPpF9QOtmol65IEqL9Qv8cC0KD+gABAW4xWVAmhwaUGxYREd+M6yghjj5XBhZhrd2VxfkWfJlwsp3WYJyNHdQVaJGLkdIZDcHt+AnmvA0mxWT4exwme/Zq20oNCtmK/DvJ/DEpWC23nMp9YtWbqVpui12kdCG+aaKGenFAQGjk2Dcg72rAlvHflvKqWEkovJkwTnk0gHHAONIgIX37X0ZA== 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=1VEJx1x1wvX+4QycQPS42TVRkpKJcax7YexB0MSjzQA=; b=QK37KqA5OKWDZbCJXxCAgr6qzokJuzpjBC0bk3+PrFubXlmmBvey+4hSxOe2uNLl7av38LjQJwialR4pEI71Q8C77TfSaNue83i3CV34b0MGdCIjETsKF1WsL0lSDVfb50+qjRTp7tUirakmFZ9LpxAWaMG5usKUDDAfyHVdML2A+bvwHHfWMr1MkWM5Z93iAxy3vHe8N17jkVeRzLFnS4Tro05XA+TfFqTFIJSl0QpdV0Ob9lQP0PRC8v3+OAFGuJFGf9bSiIR2xCMi8vYVivxKpBJTCDnp5ni7avdPEeDb+axSM00e7OCbixe+lusvMMKaIek1fi5cXB4vW3Pl1g== 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=1VEJx1x1wvX+4QycQPS42TVRkpKJcax7YexB0MSjzQA=; b=wXN0J6umG6JO1S7nrLnH5bIOrPOdvkDtU5bsxQlYx5/p9fbTqdOFeLKQp/Wr+fQqL9Zu//Q/0C/5StLaeuEHASeEOcI2LmjRmLtP0pti2khVje01UXSiEWzsC9FdqYvcMZPk3fOzyDY2QckrOjjcqacNtddv1/29v2AnlD674l0= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by SN6PR10MB2688.namprd10.prod.outlook.com (2603:10b6:805:4e::31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5206.13; Wed, 4 May 2022 01:14:38 +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.5206.024; Wed, 4 May 2022 01:14:38 +0000 From: Liam Howlett To: "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton Subject: [PATCH v9 54/69] mm/madvise: use vma_find() instead of vma linked list Thread-Topic: [PATCH v9 54/69] mm/madvise: use vma_find() instead of vma linked list Thread-Index: AQHYX1Q+17qOJt45a0uoSzKVeeG9aQ== Date: Wed, 4 May 2022 01:14:03 +0000 Message-ID: <20220504011345.662299-39-Liam.Howlett@oracle.com> References: <20220504002554.654642-1-Liam.Howlett@oracle.com> <20220504011345.662299-1-Liam.Howlett@oracle.com> In-Reply-To: <20220504011345.662299-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: 93210605-d140-4fa9-98a3-08da2d6b758a x-ms-traffictypediagnostic: SN6PR10MB2688:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: WDkvBrSHUK8HoPi3XakGlpbkEg9sD9FuzQPtxxM1Ajm3zNoQfUvdwtmvaVWcCp7/o8J7s3gVW5W921WfFoigSV+QpaRKoXp7ErcX0zsK3N2I8N6bk7wMExtGyYIjLjncApU9Gllssc06wd9QwuCeVA/SAZdyjxCaeFoBRuCcNy9HM3S+pi3av/BVV3sNLK3dH7hltRrOMxG0trAllWOLQrHMKAvPiE01OblhciurIInakXvUw9106zwKDrWXxt8eNf2sP+dD5rAlezlBXujI/F9uT4QT2z61ddPHQ4GKAMypo5KkTQbxzKvrGb8JU7QtpTEeIauKPnfp6pnhbtE9rK5fDM5Mj67hdPAVZ5PTbxUgtkGOdbmWrDVcHRggAnztlt2q12MCpUFbFRgRmIp44ORkbuWJ20iTt956ANsiCnrpZnyPqD5Q6RH/4hDMNI9+LROKTKYkqhzEBFwcCjcRTBU/aLYAg59IIONaXR67Qrky0mX6v8IJ3EPz+RxKixRvWjUDd6ThDoca6AqbMIQ8m5oMtiaxQ/pWmNCTmGaSa3FVBF7lnKgjIB713kxhOkMY0cijCNLL76LpxcTnPnQTCdEWlLJva5PqZk9iu8587z3B2ktAanU8ZKQtP5bE8ZD0Gz6Mz+RjELmqPkPN5LYupZGKpzxOehw1SntVdc3mqlXl50BHwYndXpeliGotDlbjN9E3S6TJJrcNJVBUxiDopw== 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)(186003)(122000001)(1076003)(2616005)(66476007)(8676002)(66446008)(64756008)(38070700005)(36756003)(316002)(38100700002)(66556008)(66946007)(76116006)(91956017)(110136005)(26005)(6512007)(71200400001)(8936002)(6666004)(6506007)(2906002)(4744005)(86362001)(5660300002)(6486002)(508600001)(83380400001)(44832011);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?AsJsmQ4wy6cj8P+umN0eRTA?= =?iso-8859-1?q?1Pj1cx2RmUjDty7GgdrrOZC/Ih/MVXCwXveyM0lCj/R9jTdINISGgtdHmvpr?= =?iso-8859-1?q?BeVs6AUq8URcZ/s6i5LEtMlkeCEYBZxVtvfjUx+gnQzO/wF+fWvq0ccSFIFA?= =?iso-8859-1?q?3hod6QxQdYCx2JqoNo2nO83vNGd8RKYMYEjljVO/1ltjRUqaxRpHpDqeH7D+?= =?iso-8859-1?q?cH27ZvAOAzV8R0DdhOzliIW3uBhGLsaieDkwfYP3Elzx62nHoSoAdLDty5mz?= =?iso-8859-1?q?YrElroabXm4QCm7T0sgKoXQxhyB8LuqQDVsIq09x6xS2Yb5AOYlUBbawRSAW?= =?iso-8859-1?q?xYI8qccjoScIYiXT7aBxzCPwJgDyMwnXKi6WCuuREaXQZ84Bn1LjIWRRyHA0?= =?iso-8859-1?q?dOOvQIGwRi2Kimf4511m4zhDBl8ZWmwWPtU3r7hXSdgEHbhEyCU0APPAtrYE?= =?iso-8859-1?q?KaB0tE6GyX5COvOpYnxOZs4Jlj74T1Y21/SAjb0BxcZRiqRzG+TSKjmQzbxF?= =?iso-8859-1?q?DNOeGFsvFX2lPfCajwBZqBP/g2gFtCpu7UIc5bgnd3NGoqGTcdUARAQyUbs/?= =?iso-8859-1?q?nP5+1u782vUMBIPoRBZRQOeYNbQOFgGNeuHq9Qbfx93dmNa+mz/QgwqWTsH+?= =?iso-8859-1?q?fXHkttNcRL8P0VH71ELV3nXw2ku8gsWcvMTNiY0A1FRDKC7vUvVwvLY/sstl?= =?iso-8859-1?q?NUdrRCrJsOo46Kam9mXLEnc/fwiBYphL+hXzzFq10nfsZja7wOsiyoDExkxE?= =?iso-8859-1?q?sca8Lh3otbATh0EcbAmpBHLzkE7VUNhTzDrfdw9I0J+CalK9Oqm77ZhBgpZd?= =?iso-8859-1?q?+EPZFd9TSHIwbwQQH1b/yt/7q8nzLH8GLm0DlRX3E0/bdOAjB7/77/LjRR2k?= =?iso-8859-1?q?X6WwU6YpNzeMVPYYoIhzfHDNwm8p/dd3cy1xk7kwcwg8FUm1MOT1QsWFCb4H?= =?iso-8859-1?q?NZkNjeiB+RWg/dOtNs9GRP8S1DIEP4cJ9iImnrbyWjBJwyGmVzSpVS1r7k+0?= =?iso-8859-1?q?oG3SjtR8ZdGqCk0tZ9G2BTvv8sZrmwV7wn+JcXeKI4+elcA/Rujko/KjhzZp?= =?iso-8859-1?q?TAUAfhsTOlLseTajrSaVoDN36urMw0XVcCrdneey/dDWiElSQdKFUJgjoxtW?= =?iso-8859-1?q?rbO38PL6nvzHuFxLSHNdmV/n1HyFiuynkyreMsOVs4HtVQY2hrn196nFVTti?= =?iso-8859-1?q?Az4aWKtk8gMRid0VikqnFyJIdjF7DxR8fTWaj1AJhblpdjwKAbxpDNVzGAwL?= =?iso-8859-1?q?t0iEmpZI5C4pQAWqphcR6CGHiRZN3HQVFC+7l9gXA7PCbsDFJsl2HsSFjsRN?= =?iso-8859-1?q?QYFc+3IiN+VRKk8ADhWReVvqC6v6SwP8P10+PR+YRfwkxMCaDcbs1hGdEKh2?= =?iso-8859-1?q?o+nxzi/1GXwHr6a6/Uoxb1q09DJOT/5mIMIfSEkP049yvxqAxwbxQrrGTbb6?= =?iso-8859-1?q?oKgtX3S4I3vEkT1GVN3l1gFLp7gfAzYAfq9R4v1yLq8VwDeO8Ty5C3PBofTg?= =?iso-8859-1?q?lTNaytthygUIn2boRELLohJrlwcqGW2xDtuuUPIABNyfeL8JUQFDaC1+5Uvq?= =?iso-8859-1?q?cgHE9yWmhpzUvLIWG6UC/+7OjXKBdh5T7DYZsIjLc63gvo30zwex8nthlvSN?= =?iso-8859-1?q?DxQW+ZmDDlvLs6RFP/peNGHoDg9O5k9l9HZvqPa2VP0ZH02y7zfryyUrg0wP?= =?iso-8859-1?q?hB1wt8kHUX4aktdTIL9ju3Uoo/Fr6tDEMUX05DJrXOJQS0B34h0LfmyxpRL2?= =?iso-8859-1?q?iL+Qui+PNizSGnPyxpRZTbkImIHEr5v4VutYywI+XGsvPQCZMfyG5Qesbda4?= =?iso-8859-1?q?m4Hv7sV8=3D?= 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: 93210605-d140-4fa9-98a3-08da2d6b758a X-MS-Exchange-CrossTenant-originalarrivaltime: 04 May 2022 01:14:03.1106 (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: 2jOLqiIQTXFUVWRVIDGU7emW4gxEZzR4XLi1JWRVDlxT/YVMR0OMZbFW3J7TJomr1BCt2+Y5+4TtiH6NHbNmWw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR10MB2688 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.486,18.0.858 definitions=2022-05-03_10:2022-05-02,2022-05-03 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 bulkscore=0 spamscore=0 malwarescore=0 adultscore=0 suspectscore=0 mlxscore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2205040006 X-Proofpoint-GUID: ywugVvR4HOIuRHuUCKo4RrR1nLLuC_BZ X-Proofpoint-ORIG-GUID: ywugVvR4HOIuRHuUCKo4RrR1nLLuC_BZ X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: AD77C80092 X-Stat-Signature: ut775ywafta6wkbdoq45nkkzfgx7h5iw X-Rspam-User: Authentication-Results: imf30.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2021-07-09 header.b=M5LAeKen; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=wXN0J6um; spf=none (imf30.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-HE-Tag: 1651790696-603380 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: From: "Liam R. Howlett" madvise_walk_vmas() no longer uses linked list. Signed-off-by: Liam R. Howlett Acked-by: Vlastimil Babka --- mm/madvise.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mm/madvise.c b/mm/madvise.c index c965fac7b13a..3d8413a27757 100644 --- a/mm/madvise.c +++ b/mm/madvise.c @@ -1227,7 +1227,7 @@ int madvise_walk_vmas(struct mm_struct *mm, unsigned long start, if (start >= end) break; if (prev) - vma = prev->vm_next; + vma = find_vma(mm, prev->vm_end); else /* madvise_remove dropped mmap_lock */ vma = find_vma(mm, start); } From patchwork Wed May 4 01:14:03 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 12842351 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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 3D084C433EF for ; Sun, 8 May 2022 11:19:50 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 9C2476B0072; Sun, 8 May 2022 07:19:49 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 970C86B0073; Sun, 8 May 2022 07:19:49 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 7C3AC6B0074; Sun, 8 May 2022 07:19:49 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 697966B0072 for ; Sun, 8 May 2022 07:19:49 -0400 (EDT) Received: from smtpin21.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 37893B29 for ; Sun, 8 May 2022 11:19:49 +0000 (UTC) X-FDA: 79442330898.21.F0C537C Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by imf11.hostedemail.com (Postfix) with ESMTP id 2DEE340050 for ; Sun, 8 May 2022 11:19:44 +0000 (UTC) Received: from pps.filterd (m0246630.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 243LZnIU026110; Wed, 4 May 2022 01:14:42 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=VbAgCFAt6JvLk3hS6Gx1zdb65kbp1hha96mUQ9g6SRE=; b=QaO6fzREavHuyr9cHgNtrQKdzy8rEjsyrq+4TUkg/ktZFFr74cETPXXpLKbYiW/nM8Th JjdV3xAg+n58i4NS4zDbaAzWd+6+M3eSpVYyBOm8Z4qYRgMK4WR7K/3rG6bmxs8nawB5 7+zFAGnsrFsBQNUQlDo8s6D2BMG6q34icUdM3s3E6uP8lzbmxZ/pGrDVOV1hOXMw2KAo bxbWGaCM/8phN2xaiZKHgCwIc8coD4mscppoIImyzGAjpxZpJft/rkBXxUhSCVGJWbvl ey2uLpTTck9qBQODX+TgHrEOrwJCXwmmbutmF+NkaGOZlTjRY3jEKa5yVnaopSLiU9zu kQ== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3fruhc72qb-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:14:42 +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 2441BXR0013207; Wed, 4 May 2022 01:14:41 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2049.outbound.protection.outlook.com [104.47.66.49]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com with ESMTP id 3fsvbmv41r-5 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:14:41 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=KlCwkdJaXsW19i/Gt8r/A9Y+JiHLh9tgfbeMRW6JqYz4fiOmDPt9XtInbej8qUSnTpZ8NTwHt+2HEN5EI4DBOxpHcg7s0s09hmwC7LeTRhotUbYWbLdB/F0rvG/TmtStUHz2gFBqr2uJKX6zXriJU2aZnzgJKkdr52ytBxjIAajw2n/9JlSPbxy7akz2LYnsJHnd2YfK7kDiIDwY7tKRIO6N8l0+JjKm59CGXb6zZK0x50CWtQt64mMNGLpfNHGVK5YGLKdWCjhZm5RrbC+8iuyt9o56sax897bJNXYvhZRJSgxAnOC+mXXvurqPss6xrMvKwXWXD8e9Z0Tl+qx0Dg== 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=VbAgCFAt6JvLk3hS6Gx1zdb65kbp1hha96mUQ9g6SRE=; b=bmv9QxMc/zHyTMs+nupXKG100v86idx38gTXwYidjZAuKGVE+AlfmPYw+OSvigqTZRfR2PAjtTdUPHSvbwvQAy/zfrNvARWFENnsqKMlSbz7nNgTzWGOuN3HeWYrVucjcm7nWxEBydSYQ2kt2daAsZW+A0T6Jww8GtRh0MrY6g406awwa6RX1bOszlIxLmGhLutS33K1XVMZJSMhvxylg8lDwqYLzC2Lg/oWbm0g6sTyplZ6LbYHPKKqoPQCGZDAWrDpjTJtgoCp0lWoQFgphEJnyRVjI+q3+mN6c6Q+tiri5b3vOLy2Y7CZNhulCoUPHFVFuN8sUBqkwiijhJxPCw== 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=VbAgCFAt6JvLk3hS6Gx1zdb65kbp1hha96mUQ9g6SRE=; b=NJn5+oBdIx1O/mmJBaRAhOa1OgS14oWBwxA+C0h+HsjNWr/tCYtQTJov9W1MKjmjDn/WshtHkZ3SSCPf0lWzyHF+RkYh749f6OZbixdCwnYDKhZL+QwVacaoodUc+Zr1qX7V16wc3LLOvZ4ObIAeMA84b5+SIICPCzpe94k0bU0= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by SN6PR10MB2688.namprd10.prod.outlook.com (2603:10b6:805:4e::31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5206.13; Wed, 4 May 2022 01:14:38 +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.5206.024; Wed, 4 May 2022 01:14:38 +0000 From: Liam Howlett To: "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton Subject: [PATCH v9 55/69] mm/memcontrol: stop using mm->highest_vm_end Thread-Topic: [PATCH v9 55/69] mm/memcontrol: stop using mm->highest_vm_end Thread-Index: AQHYX1Q+wP5H7hiJVEmW4UwLVkpN5g== Date: Wed, 4 May 2022 01:14:03 +0000 Message-ID: <20220504011345.662299-40-Liam.Howlett@oracle.com> References: <20220504002554.654642-1-Liam.Howlett@oracle.com> <20220504011345.662299-1-Liam.Howlett@oracle.com> In-Reply-To: <20220504011345.662299-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: 62a86670-bd5a-4b95-e487-08da2d6b75b7 x-ms-traffictypediagnostic: SN6PR10MB2688:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: MN9i1drmTTe/Aqv1hIXDG0RN3/D0LQonRHNK3jKf0uwl4z29LsKd/VUuPAKdpMwoV8Ea4rkPr1y7AXt8C26xEAqFWHWDKl16Xg3EVRgSA+kts+cCpBtwnZe19F4COyUjJO6B65jN7Tvo+N0RF0vfeFq2Q4BNu9sIFCvtVil4xdhJrYmlp6+OWjs9/i1x06fXQ1xPUXqaJyD/rrHsZuzBznhxdIYXb+dJrKjZyFCAsrIROhQlOEwlu9hkmRZGofv3VfeYb0N8KWKjOF5Bl0kx8ZkQPxm9vphC6oEfp3BXZG+NPNvvB1foGcQJwQj62camu5g5tGVDwjsb4fo/qFzXtPs4r6fxtxwZ9jckKK/1lVpgh91UbQPU/xC7mgHL2/GWnCrYsOkebdDaVJHPmp0Tau1ht10uIcfM2xHtZO9F9ZTvkweU8E4HNaRaR0HYJpdj1/Oj4TcWp/W9LnN2B5sS1BCf5Q4ZwBGv3n+4W8qV5WNKXmYHVsrwr72AeYWLL+2y4y5J9VyuCHyTVJ47Q+J6gWzJaxhnPCfP5LpT+z1neS80h9RCZStnb4RLOvXfJslct6HUzW24F+rjq3/jvWF2awbnQL9mK8adLbXBnaypA2GjEqVESK7ANW8oQx3LKDxVaatErcbxTlg3MGNMaIFdw+iw1t48LsMc3shviI2br3BZIBDDn0D/cLUztVON+KVu9s56NNL0zICEd41YXnE/sw== 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)(186003)(122000001)(1076003)(2616005)(66476007)(8676002)(66446008)(64756008)(38070700005)(36756003)(316002)(38100700002)(66556008)(66946007)(76116006)(91956017)(110136005)(26005)(6512007)(71200400001)(8936002)(6666004)(6506007)(2906002)(86362001)(5660300002)(6486002)(508600001)(83380400001)(44832011);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?FeWt+XuUtFN9PeKetMxlJ8g?= =?iso-8859-1?q?ouVtebZWDG1MM5RVOSmxC54lRy8jVxcgrBn8ghOXjqBjYh/JjNuKvto1yi1k?= =?iso-8859-1?q?9ggu8wm7ONfK4aEL4Za/Vf5TfHFBzIR/VNtnf+divoQiCRxRVcjkTA/6Is0G?= =?iso-8859-1?q?51ZQJxnqrE0We8K0DZR2ts+1W69z8vT2dtfn6bImrOk5NjVhcuAt2z7dhJK5?= =?iso-8859-1?q?LIw3Uv4UQOJCVJFosV/2XducDqSeEPG7HR6WC4W86Dq1xvVt3dZl6SI5sIcv?= =?iso-8859-1?q?Cr1pt7iMPm2oLzTlROL6FrsACBvcivWHECp8TYSDHsVCwXuH7lKs/T4ky4Q/?= =?iso-8859-1?q?O3Q6JNJXb3f7MdpXLPlaLgKXzEv8o2aQD6TwQs6WyhlRpSfMxI4gh9iQAKci?= =?iso-8859-1?q?cX4Qe5EECDjKC9KLEId+FjuKpTOHQo+rawLRqnwpT4o/a03rFRP4t9qJHs95?= =?iso-8859-1?q?m6x8WUheVb7nytH6LJ7qcUTnP348iVME9Hn4nNSCeEIu+EjAlDFElj8OCd+o?= =?iso-8859-1?q?Lslt1Zm04T/Ca3mOk4U0jEYViA/lF9l8EPQU+62JkKxcTfF/h4Rc45pVT/V8?= =?iso-8859-1?q?XcG3nwCVNZd8i6N685kh/is4W39Qlb1sO3Cm03Vf1xfQ6a9GphxlbBJ839VB?= =?iso-8859-1?q?XqsX82QN8qI0sZf2D/I2BK9ux7Pz/2c5diASch/MiiDnycLshvkBrD4XNsQG?= =?iso-8859-1?q?kZHd6OTa/lXO8sold5SfVcWZv/Z3xFptIrXJ7sHCY6YB3XMAtiR/yT7gFkzQ?= =?iso-8859-1?q?jhDCZpaIGUbxURAzYuqzY4Q6yB3IzTdXD83H2iP/3QiRCtK9r45tNaBn3JuZ?= =?iso-8859-1?q?j1VyvyXHRjsk9EJ2Vyxrme1BvTwu9HJ+dh7iwwpKW4LvSjt8kpPeQUUdzOIM?= =?iso-8859-1?q?O3bch1pTInv/Jc+plinVKlCBX303eoG/0VMSfzk7xjjOO1UpRG82Fb2CELcw?= =?iso-8859-1?q?oi00QZAYfxAsAs1AXew/R9q7/hV32haH9JX1mnIUiiXpv/a6b7je2l50Nz2e?= =?iso-8859-1?q?/hW8j1+6j9rKWtoIw+UL6eoLagI6iYCGpC+vUk8eXbhb6HEWZeFdAadO/KDw?= =?iso-8859-1?q?7+x5NeoGYLf3GXUWSYGpwQYPf1nnVpA0dlnR/SyhZAXo41t+GxPg0z55VnjR?= =?iso-8859-1?q?CciYG3S1FzH59+RaSZNaRUJPZm0VtJN0k4ReHw7ykp1DclkF8wKk6oOCuhHz?= =?iso-8859-1?q?kwCn82DLeZ1qBr1MOKkGmNlSSEc9hQEw1bGPQapAMDunRrF6q8NTsmy+3eCF?= =?iso-8859-1?q?Bfew4azJoNVnvErYyy65qW0jAx7ciD3x8T7L7zuM3HlvVaDN2dx5EKAZOPyP?= =?iso-8859-1?q?hR4F1gPHn6Q5Pyzh+lfjPKLVjYq8ztqcsvOZJ4ZRVSaOpdTUxvjqOHcXWdV9?= =?iso-8859-1?q?W93QGCrVL0+7M9Uchgc7cFNwIT6yj9oGkmRVg9ydBomp0IENqfjfTi/6AADO?= =?iso-8859-1?q?VrawcJ13OaDRcKxVYbllD5hRUH2vnqBDkEUqN/2rYzmKPDlqk48W+gw7O6ao?= =?iso-8859-1?q?HR1t/wXv4wpdvCre3YzH87BhpZzcYmo1XkZ3hX2dnHRM+brV5vKXnvkvFcvx?= =?iso-8859-1?q?9qmdFacAUvfIPJrxW1wtaMZ0sm9IhoZmziNsQPzgTNglQUGcpFkcRqTb67Oh?= =?iso-8859-1?q?GOGBtHRpxZBE0HGB+V7XnCPswvmjdD+GxxCfU6TxIYaMymX+4jFT7ZqcqjcB?= =?iso-8859-1?q?l4td0Lf+nXfjXYsynBnKnnEB9hsvNfrE6OS7uX5ttn0AlbNCxaB3+lR9bM+z?= =?iso-8859-1?q?StkjgmUNgWYkxvDHpVwMoIXWAHBepiPJoq8zoLanN+x6B0lzSROZeKI1Ap1J?= =?iso-8859-1?q?jQu02y5w=3D?= 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: 62a86670-bd5a-4b95-e487-08da2d6b75b7 X-MS-Exchange-CrossTenant-originalarrivaltime: 04 May 2022 01:14:03.4387 (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: 2XEjbXZGBLbP0SNABn6x643ffeQt23sP+cNwonOVXMzWPFnu3SSaFHGufg3OfcZRM1B22+CESaUG3aYkwfJ2jA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR10MB2688 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.486,18.0.858 definitions=2022-05-03_10:2022-05-02,2022-05-03 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 bulkscore=0 spamscore=0 malwarescore=0 adultscore=0 suspectscore=0 mlxscore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2205040006 X-Proofpoint-GUID: odp-ja5A3GXfEyQ_xsr3nfX3V6U1VVQ9 X-Proofpoint-ORIG-GUID: odp-ja5A3GXfEyQ_xsr3nfX3V6U1VVQ9 X-Rspamd-Server: rspam03 X-Rspamd-Queue-Id: 2DEE340050 X-Stat-Signature: rd5795iz6qh93dgnbqm8tsjq5gj66rfa Authentication-Results: imf11.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2021-07-09 header.b=QaO6fzRE; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=NJn5+oBd; dmarc=pass (policy=none) header.from=oracle.com; spf=none (imf11.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-Rspam-User: X-HE-Tag: 1652008784-338200 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: From: "Liam R. Howlett" Pass through ULONG_MAX instead. Signed-off-by: Liam R. Howlett --- mm/memcontrol.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/mm/memcontrol.c b/mm/memcontrol.c index d180ef985b17..ef0cc6111512 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -5755,7 +5755,7 @@ static unsigned long mem_cgroup_count_precharge(struct mm_struct *mm) unsigned long precharge; mmap_read_lock(mm); - walk_page_range(mm, 0, mm->highest_vm_end, &precharge_walk_ops, NULL); + walk_page_range(mm, 0, ULONG_MAX, &precharge_walk_ops, NULL); mmap_read_unlock(mm); precharge = mc.precharge; @@ -6053,9 +6053,7 @@ static void mem_cgroup_move_charge(void) * When we have consumed all precharges and failed in doing * additional charge, the page walk just aborts. */ - walk_page_range(mc.mm, 0, mc.mm->highest_vm_end, &charge_walk_ops, - NULL); - + walk_page_range(mc.mm, 0, ULONG_MAX, &charge_walk_ops, NULL); mmap_read_unlock(mc.mm); atomic_dec(&mc.from->moving_account); } From patchwork Wed May 4 01:14:03 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 12841017 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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 11F28C433EF for ; Fri, 6 May 2022 11:59:23 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 8316E6B0072; Fri, 6 May 2022 07:59:23 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 7DF936B0073; Fri, 6 May 2022 07:59:23 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 6801D6B0074; Fri, 6 May 2022 07:59:23 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 59CE66B0072 for ; Fri, 6 May 2022 07:59:23 -0400 (EDT) Received: from smtpin02.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 2F87E2E4CF for ; Fri, 6 May 2022 11:59:23 +0000 (UTC) X-FDA: 79435173006.02.89155FB Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by imf29.hostedemail.com (Postfix) with ESMTP id EFD05120026 for ; Fri, 6 May 2022 11:59:16 +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 243KctF4024988; Wed, 4 May 2022 01:14:43 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=rtEgJ6g/+NrMFge7rfz5iJSFQ9yYY7v2UpbI0NJG4ec=; b=uk3s/AncAFsFZ101mH5kz2+rB9OJ9EbgpQjowFzBA6wRpN9+Dunjgn23tYzbUK/pQ7Gv t27nuqN0bbG6LQql0GLjQHcKL38cWWbqeAwIUdDjyhmZSmuITuEn6UZd+wwyapD/UZXS WE04TCsVOf5+WAOUpuhcLVemxrrpah+qGt+a7azi36+tAwshLSbA2xt+kT0tQ8LXCqbt 09n8ax/SOej4J8BT0WydTqlqW6q730jXQ/5AJplxbAdbqq0OSyc8cAdAYHIqETTeJSS0 Hl+zbU7FgoIpj9WejAq6o87KEfPtu2ciQONhl70iaz9/Pa0JGRHGVyF5lEqAx0RuE43N Rg== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3fruw2f6c9-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:14:42 +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 2441BXR1013207; Wed, 4 May 2022 01:14:42 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2049.outbound.protection.outlook.com [104.47.66.49]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com with ESMTP id 3fsvbmv41r-6 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:14:42 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=S2aVQtegsGWqSBXMESLSY8gRJmKJTSNJEzr/8VXeBmJFHxp7WmKkWO6KrWFKrwQsXMxG0hwuiZLoClJX9MuIUNX0VUqaeFte1F2bQAc7SU4OXEkKxDa9geYl2VbcAUGpffCJbFWHh3h86fypdEyTGcYqS/jj8Rn/r1oXrU1uuQSqu1ygtixZ+Pl60rX+KO+dE7cc8oLRW3GNyj/ZOVfoHiiC/u+fRts/lynV3ZxGiZjX7Mb4Ok52iKqeb6BrOMn1fd0oxWVJ1hZUlamyI+C5y7b/cCh8ukiJbMn1fvIu/ywmjJALiz5B2rKZAZfbPxz/880QVKb7Esmb9RDV1VdyiQ== 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=rtEgJ6g/+NrMFge7rfz5iJSFQ9yYY7v2UpbI0NJG4ec=; b=mzV7RJIe+nCuqmAG1jje6SeSV0ixP+wakmLMVsmMh+NkbyqiKtcGLO92CQaD4Ogu3QJjYktbjx535mtbFzeuUvSm2mgkIvBoJQH/jVVC2NpdJx3DLqhtdYNltr3jWA12AXcO4FmBM5p1RciuZsE3cjEaWilnJZKfmV9VH2H4gO/tWEcsbkiaajtQOwHh85TR7Ft8tOoeSdfjXNlMBQSViFL3yyOEw7Ay0ED74/w4yFDd+T3bIdI3eLWzytax3V+17TnmZhCjUsHDoYg2+4QBeWhHgfZJK/X4J1AhISMKjZ9PVT0Q1AQuRMJxvydFHsAowyPj2E0LczXhCNTL8c2QmA== 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=rtEgJ6g/+NrMFge7rfz5iJSFQ9yYY7v2UpbI0NJG4ec=; b=v2R65lp2We/Qkr4O5HYFdAztf4b9g6sI6KDtZGTwxrHs8dU5+j4QLLIcLfSdb9XpsLooDH8UF/fsenJCWNlMPoUraVIBxjuEqUnU3Nm3v4aaWSsTxEK+/h9YuJ1WUSI0SVDFs7EFPvyMJTZ+vIK5IVXWC29w4aSYLF13fCd6Uzw= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by SN6PR10MB2688.namprd10.prod.outlook.com (2603:10b6:805:4e::31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5206.13; Wed, 4 May 2022 01:14:38 +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.5206.024; Wed, 4 May 2022 01:14:38 +0000 From: Liam Howlett To: "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton Subject: [PATCH v9 56/69] mm/mempolicy: use vma iterator & maple state instead of vma linked list Thread-Topic: [PATCH v9 56/69] mm/mempolicy: use vma iterator & maple state instead of vma linked list Thread-Index: AQHYX1Q+3skD0a2xEUKL+wRRlZUrrw== Date: Wed, 4 May 2022 01:14:03 +0000 Message-ID: <20220504011345.662299-41-Liam.Howlett@oracle.com> References: <20220504002554.654642-1-Liam.Howlett@oracle.com> <20220504011345.662299-1-Liam.Howlett@oracle.com> In-Reply-To: <20220504011345.662299-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: 38142693-32ae-467a-6bd0-08da2d6b75e0 x-ms-traffictypediagnostic: SN6PR10MB2688:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: cdGCs9gFe/Iz0ODEhIWymObt7Mn2V1DwMUpSj5u5uZxZcMRFupbq1v9l9mxlR0EWw8I0JxzoxeO/sztmeMJL9ztSn/8Zs0FmI0b6WxiqifQHNMn92Gc3LZouMxewgamBl390VUjECQNb91mi/vMf7nDCyr3cwkZHqFUIn/Rv2W5Y/mS+iKlEPzi0VtTUwJjlRP+f41IynEIFBYhzqqhyKCSJA+SHNK7gnYldxPvMMFRjYJm8oyoFsgNGQ+0+SqO+4y5ZrWDtIddJZ/MgaCbNSjECeVRZz3rgoihYiKQlGDsAuRMPuNbmYmUcg3dc6lkVPdak3nplcZdl+st7WrBy54ocZcMB4RSJX9CleEEaJABSuVlJsjhez3+stJwcFKe+lewwkX0AemkyMMHi2GoCVqZEKDzcu7qQBo71xYmWxsZdjreJ+Z2jjTLY0QaD7M632cdwSjmDXhwTr7A1wythB9e+koAOTEcD4x8Pm9W1GCNC9GKXNaqd+XDxIrATZuKOItQADVkAwHMB2ME9OPAhXCmywqhjSheldewRZkdnRu7MuCoQ55EJz9dzvJI5fkOGAqs1QAdJccr3Sz+AcWdzia+E+x0OA6PW5qPfXo1LZmYJqrfOe2LJc83YhfQ8U41lcYyDpyfcapaZRKnSw0hRrBmtTexucgiKbOd2NNDRNVDPTUAAuPbGMVvi9CF+4m2RssBlc4SU+6R679AH4WO7Yg== 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)(186003)(122000001)(1076003)(2616005)(66476007)(8676002)(66446008)(64756008)(38070700005)(36756003)(316002)(38100700002)(66556008)(66946007)(76116006)(91956017)(110136005)(26005)(6512007)(71200400001)(8936002)(6666004)(6506007)(2906002)(86362001)(5660300002)(6486002)(508600001)(83380400001)(44832011);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?mDQ+2VW0Lf03DlPWL3GJsmd?= =?iso-8859-1?q?SYByUZlFVgw4EvtCGZnPDdcAf6r4mTGRYinR2vHmK09EGtqrIVMmQ8p/Nli+?= =?iso-8859-1?q?ddzxt8DiPvPHXld9ElMwLK8QAj/zebITYb/AS92CLim4Awr62chu5xXwpIZx?= =?iso-8859-1?q?6gd9M7ec3fDLn0vrYwAW6V/gkM4XEZVbZ9E9Q8eLKJJuYa2sZyTFrDt9uJIu?= =?iso-8859-1?q?3z9H0l340hGa/TpyP/T33Qn4WAqxq4aRCUccghV2xz27mh7mT4w99g9iffo8?= =?iso-8859-1?q?doLsXYUZ2VkqSIsk911rzJM2TCFed+LtmRXnbnyxwtgDi1lnztBGYxxrmQtG?= =?iso-8859-1?q?wcjigqi3ibDTBUQGv06fgby565O59ExZYJbcEbBEGXHj1O6bzF4hvmM1C5Ne?= =?iso-8859-1?q?mASy16xIqSzMXUUeo2DHlFI92EstFuctVaVxS7gjXvz34yQJ/4YZzD97Ccfm?= =?iso-8859-1?q?ABeCg7J0dSHSReX8box/ZBhDSMrRuVb9Eqaa+mRhGhKQKj/r0zEupv0Y9/8K?= =?iso-8859-1?q?nds4wHZ/ouEd5AbO2g3JhdQz1sDSbBgr+noF5lopisYdc1ufFyC+zgcs8n+C?= =?iso-8859-1?q?sGsLVDFNsBupBgm/h1VyXkFfdY2yY5rJS/yrwSlqadAuRk21yP6YQ6pJL7Mn?= =?iso-8859-1?q?pE+2ABDnbg9gPtUeucoG3u2kEKZird1aNchjegFFoc5wkXZT9KJoKnSRJ9Ot?= =?iso-8859-1?q?ljk8exx7iJNRfqxstldM1UeOCTCYhNB3FRj2Bs6YPBmm7nGd1GSnaI9unhXX?= =?iso-8859-1?q?PqtUjG5xGX4h2Z5L9PMuA9nptFN2hypZNeHxQrLFGgIPkOxiVnS5Vmh8qe4g?= =?iso-8859-1?q?fehP/cv77VwcddKSjRz1ieZHGW83HsaxIGipoB2jvzqx+9V5DTQaM3ZAAv9m?= =?iso-8859-1?q?dFl+99YwH484eAyLj4QFuYRsEGbi3ZIyF2TdVJmwQjbN1yHGlDIllLzVCRA9?= =?iso-8859-1?q?WSMRL915bvjvaPEa7tpVU1AtNBOIwA/dP2i3vfLkOpbJAcYNcQJq2UP1RsuB?= =?iso-8859-1?q?z8aANFk4iFhJgsPJcOI/IzZaxU5LAtSwJe9J6yXV56ZJ6+XumhCBWhUs1Shs?= =?iso-8859-1?q?82TTto0HIIhU6CxjIiDIsadg2wquXLMdk6kAfLIwtyR84vddfuXpD2Er4NWw?= =?iso-8859-1?q?BtyqckuTz6c2mtnbIvuZIUE2SMUNgh/66VYfRkZvwAWe0M6gIis/3Zbupa4G?= =?iso-8859-1?q?aTzskKywoSEnm45YSux26BGXiaRmy3+NTpkkq4sqygE0hE3m8Qj04Sx6N+gQ?= =?iso-8859-1?q?ZapvoFNa6AsAZLTpOMR/5wrgRUAoAaXJ6TspY1KK/K3ZAE6TTeTZvt7ozRmZ?= =?iso-8859-1?q?AvSJnRtpSZoNldyEOawIaXgj0qLhI6wcff6n0FX3+ooVSdLIiQPlYI685Uze?= =?iso-8859-1?q?BLihc1RwQvRX+K8utOCYEgXucxvoiJww2oEMJdlNdAoHwPpdtkhoX2bF/dOR?= =?iso-8859-1?q?ZEht7gqlTs8hS0f8zdkmK4n8w9Dx0dVIi6DO8WLkYu2QWEfWfAGZEscbZmpC?= =?iso-8859-1?q?ENLAXhWvsfPkl5FAxE2F7+pPWJN2tUu0K9lGust9EW8aHJiI/7DE58ds5A+0?= =?iso-8859-1?q?TmgIQk7Gpcc2pEMgSSwdHX6rIahzN3mL8wgMubxU7tdNYNGchjFpcAvTSls7?= =?iso-8859-1?q?lqqYrYQXEFTRaWo3xeTcstb15OMGgL50gZxXmjnRRG0ed8349LFjP98nCgxc?= =?iso-8859-1?q?AzMjjnoiKTAvKLce/kbidOA5Ij2Cn7SN7PigKJXwj2WZ7zaLYfQEcEih1nok?= =?iso-8859-1?q?8b9XFuLzBHgZnfD9oG7gBxGBca9kobEsRDkga61XGi9nVNJHURnx1nZI2HmA?= =?iso-8859-1?q?begZQPRc=3D?= 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: 38142693-32ae-467a-6bd0-08da2d6b75e0 X-MS-Exchange-CrossTenant-originalarrivaltime: 04 May 2022 01:14:03.7668 (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: EkdO8VACHl6HmSM682MgZgGI7yPkuNNscfkfFkQFrqOm35Hf889BnxsIAVoyfHC1TzML/5Tl839Mj+ufAGenxw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR10MB2688 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.486,18.0.858 definitions=2022-05-03_10:2022-05-02,2022-05-03 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 bulkscore=0 spamscore=0 malwarescore=0 adultscore=0 suspectscore=0 mlxscore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2205040006 X-Proofpoint-GUID: AYWXTTPaw17bSyjIlsM0ypeVdQfYeMP2 X-Proofpoint-ORIG-GUID: AYWXTTPaw17bSyjIlsM0ypeVdQfYeMP2 Authentication-Results: imf29.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2021-07-09 header.b="uk3s/Anc"; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=v2R65lp2; dmarc=pass (policy=none) header.from=oracle.com; 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 X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: EFD05120026 X-Rspam-User: X-Stat-Signature: ogs434jcmcwur4ku3ac7tfecjr65t9se X-HE-Tag: 1651838356-772649 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: From: "Liam R. Howlett" Reworked the way mbind_range() finds the first VMA to reuse the maple state and limit the number of tree walks needed. Note, this drops the VM_BUG_ON(!vma) call, which would catch a start address higher than the last VMA. The code was written in a way that allowed no VMA updates to occur and still return success. There should be no functional change to this scenario with the new code. Signed-off-by: Liam R. Howlett Signed-off-by: Matthew Wilcox (Oracle) --- mm/mempolicy.c | 56 ++++++++++++++++++++++++++++---------------------- 1 file changed, 32 insertions(+), 24 deletions(-) diff --git a/mm/mempolicy.c b/mm/mempolicy.c index 0288ffaea064..df4487767259 100644 --- a/mm/mempolicy.c +++ b/mm/mempolicy.c @@ -380,9 +380,10 @@ void mpol_rebind_task(struct task_struct *tsk, const nodemask_t *new) void mpol_rebind_mm(struct mm_struct *mm, nodemask_t *new) { struct vm_area_struct *vma; + VMA_ITERATOR(vmi, mm, 0); mmap_write_lock(mm); - for (vma = mm->mmap; vma; vma = vma->vm_next) + for_each_vma(vmi, vma) mpol_rebind_policy(vma->vm_policy, new); mmap_write_unlock(mm); } @@ -649,7 +650,7 @@ static unsigned long change_prot_numa(struct vm_area_struct *vma, static int queue_pages_test_walk(unsigned long start, unsigned long end, struct mm_walk *walk) { - struct vm_area_struct *vma = walk->vma; + struct vm_area_struct *next, *vma = walk->vma; struct queue_pages *qp = walk->private; unsigned long endvma = vma->vm_end; unsigned long flags = qp->flags; @@ -664,9 +665,10 @@ static int queue_pages_test_walk(unsigned long start, unsigned long end, /* hole at head side of range */ return -EFAULT; } + next = find_vma(vma->vm_mm, vma->vm_end); if (!(flags & MPOL_MF_DISCONTIG_OK) && ((vma->vm_end < qp->end) && - (!vma->vm_next || vma->vm_end < vma->vm_next->vm_start))) + (!next || vma->vm_end < next->vm_start))) /* hole at middle or tail of range */ return -EFAULT; @@ -780,26 +782,24 @@ static int vma_replace_policy(struct vm_area_struct *vma, static int mbind_range(struct mm_struct *mm, unsigned long start, unsigned long end, struct mempolicy *new_pol) { + MA_STATE(mas, &mm->mm_mt, start - 1, start - 1); struct vm_area_struct *prev; struct vm_area_struct *vma; int err = 0; pgoff_t pgoff; - unsigned long vmstart; - unsigned long vmend; - - vma = find_vma(mm, start); - VM_BUG_ON(!vma); - prev = vma->vm_prev; - if (start > vma->vm_start) - prev = vma; + prev = mas_find_rev(&mas, 0); + if (prev && (start < prev->vm_end)) + vma = prev; + else + vma = mas_next(&mas, end - 1); - for (; vma && vma->vm_start < end; prev = vma, vma = vma->vm_next) { - vmstart = max(start, vma->vm_start); - vmend = min(end, vma->vm_end); + for (; vma; vma = mas_next(&mas, end - 1)) { + unsigned long vmstart = max(start, vma->vm_start); + unsigned long vmend = min(end, vma->vm_end); if (mpol_equal(vma_policy(vma), new_pol)) - continue; + goto next; pgoff = vma->vm_pgoff + ((vmstart - vma->vm_start) >> PAGE_SHIFT); @@ -808,6 +808,8 @@ static int mbind_range(struct mm_struct *mm, unsigned long start, new_pol, vma->vm_userfaultfd_ctx, anon_vma_name(vma)); if (prev) { + /* vma_merge() invalidated the mas */ + mas_pause(&mas); vma = prev; goto replace; } @@ -815,19 +817,25 @@ static int mbind_range(struct mm_struct *mm, unsigned long start, err = split_vma(vma->vm_mm, vma, vmstart, 1); if (err) goto out; + /* split_vma() invalidated the mas */ + mas_pause(&mas); } if (vma->vm_end != vmend) { err = split_vma(vma->vm_mm, vma, vmend, 0); if (err) goto out; + /* split_vma() invalidated the mas */ + mas_pause(&mas); } - replace: +replace: err = vma_replace_policy(vma, new_pol); if (err) goto out; +next: + prev = vma; } - out: +out: return err; } @@ -1042,6 +1050,7 @@ static int migrate_to_node(struct mm_struct *mm, int source, int dest, int flags) { nodemask_t nmask; + struct vm_area_struct *vma; LIST_HEAD(pagelist); int err = 0; struct migration_target_control mtc = { @@ -1057,8 +1066,9 @@ static int migrate_to_node(struct mm_struct *mm, int source, int dest, * need migration. Between passing in the full user address * space range and MPOL_MF_DISCONTIG_OK, this call can not fail. */ + vma = find_vma(mm, 0); VM_BUG_ON(!(flags & (MPOL_MF_MOVE | MPOL_MF_MOVE_ALL))); - queue_pages_range(mm, mm->mmap->vm_start, mm->task_size, &nmask, + queue_pages_range(mm, vma->vm_start, mm->task_size, &nmask, flags | MPOL_MF_DISCONTIG_OK, &pagelist); if (!list_empty(&pagelist)) { @@ -1188,14 +1198,13 @@ static struct page *new_page(struct page *page, unsigned long start) struct folio *dst, *src = page_folio(page); struct vm_area_struct *vma; unsigned long address; + VMA_ITERATOR(vmi, current->mm, start); gfp_t gfp = GFP_HIGHUSER_MOVABLE | __GFP_RETRY_MAYFAIL; - vma = find_vma(current->mm, start); - while (vma) { + for_each_vma(vmi, vma) { address = page_address_in_vma(page, vma); if (address != -EFAULT) break; - vma = vma->vm_next; } if (folio_test_hugetlb(src)) @@ -1473,6 +1482,7 @@ SYSCALL_DEFINE4(set_mempolicy_home_node, unsigned long, start, unsigned long, le unsigned long vmend; unsigned long end; int err = -ENOENT; + VMA_ITERATOR(vmi, mm, start); start = untagged_addr(start); if (start & ~PAGE_MASK) @@ -1498,9 +1508,7 @@ SYSCALL_DEFINE4(set_mempolicy_home_node, unsigned long, start, unsigned long, le if (end == start) return 0; mmap_write_lock(mm); - vma = find_vma(mm, start); - for (; vma && vma->vm_start < end; vma = vma->vm_next) { - + for_each_vma_range(vmi, vma, end) { vmstart = max(start, vma->vm_start); vmend = min(end, vma->vm_end); new = mpol_dup(vma_policy(vma)); From patchwork Wed May 4 01:14:04 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 12836651 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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6583FC433FE for ; Wed, 4 May 2022 01:14:47 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E84C38D0002; Tue, 3 May 2022 21:14:46 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id E0AAD8D0001; Tue, 3 May 2022 21:14:46 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id B9D1D8D0002; Tue, 3 May 2022 21:14:46 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 9B7026B0075 for ; Tue, 3 May 2022 21:14:46 -0400 (EDT) Received: from smtpin11.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay12.hostedemail.com (Postfix) with ESMTP id 82F8F1203B7 for ; Wed, 4 May 2022 01:14:46 +0000 (UTC) X-FDA: 79426290972.11.C810635 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by imf24.hostedemail.com (Postfix) with ESMTP id 34715180013 for ; Wed, 4 May 2022 01:14:40 +0000 (UTC) Received: from pps.filterd (m0246630.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 243LIGqI026258; Wed, 4 May 2022 01:14:45 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=5zY4WG8nIKPzKVgG39yVAjCB7qLU9Kg4nZ1hxliCarE=; b=mUreAYM71ixzN+PAS6r/EgRrAZMGQkc2+qoboRWrRRIPwz6Gf8eY8+7tX1VLp7lexo3p mwRDyUQ0G6wMXRr6JYCIG4LHKknFKBOUsGt51C0O/6VNBT6G7kWD6LBz4mX4xHGRdvcy M0st0z4uU8daIf6WndhxYaVOuXJBl0OM7frolWHcUfh+AIchHx5aXfOobA533JZJ6mga N8dx0hAHs8BKLkEiWGXzeKIHDp3XNpLPqjFvjkliI86829lwwrNK/w10E7F4vM3dY7Cd EfX8Le4SYXdBI6zKT+CaypuA3Tb1p8C0AFkHjXPVOuh3PAFRMNRvutKp2pfT9tUra+hu EQ== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3fruhc72qd-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:14:44 +0000 Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.16.1.2/8.16.1.2) with SMTP id 2441BJT1001264; Wed, 4 May 2022 01:14:43 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2045.outbound.protection.outlook.com [104.47.66.45]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com with ESMTP id 3fs1a57vyf-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:14:43 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=lz/ffe65ug24XiTxgi/Kok7ajzOn16TUV8iZCIvcVVDAYgOAfqQiz0isspmzYkwgaUPIFMik/LNb17hys8azMv3iIdCZ7iG6uRfpyjF94rE4d9pNNxNirwgocVTMS66JwCvt0VXAu46auSnl7cCFJVs/M29u9272T9Lc3NkbK52iBFzxyBScwC+xC+yqTuL96STCncIRM/ST+usLc5Hzb7EFzMmhd5sKHNkrWCIMlb7CkZPP/7N19NCxsrtK3TGVA08JxWVPEni68HqWzH7dTe4yIcpVq3EzYPyU0mEmyfDSYBeip8YxukXrYa4AYKn0c8gmxTKQeMDEkgTyzCbImw== 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=5zY4WG8nIKPzKVgG39yVAjCB7qLU9Kg4nZ1hxliCarE=; b=eLlPwlLTfJZnsONpt4wQUP38FoefCpdKSZaIPyfpq67ciFPso9KpKNUSmFft+elP8pX8QJJPEohBZBw5i9b1iyKfYXlGe3+0WSju/Qs4LCyfSCo2ZjpaDr2uXUQinhw8Xxbx5+oO1Cy6sybeknxabg22XEHbqcBctN+hBoaOApUGMyl1TTDd5BiKqccHEBGKNqMuepBoqrRqVMPyLValkNy3RwCg1o3p8ZGGJFoNSFwqf6RZedDq2+wkUCyx+p2h0OF13B8xQXXjtEz/WB3Xe64d/ML6tzmVIpjkT9OxyvCX2pTCM4EUgNGUsLPkaL1BK0KO+l5WzlXehnoHerM/7g== 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=5zY4WG8nIKPzKVgG39yVAjCB7qLU9Kg4nZ1hxliCarE=; b=Jk6pXvXGsspuKMGUpDLsu23JSeUIRJMPh8KxLYKtxMz7mvp5ViC+x6ZQa9WDW1uEQkZuoSsPj24S2u5td1tku2oMEaXi0VqA/VCa9s96uoiTUDuzOPENq8xWYqMM3IQHEeX9AqJO3PiO6clBGsxPEVMqe8qliEFK0CmG/10DtKk= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by SN6PR10MB2688.namprd10.prod.outlook.com (2603:10b6:805:4e::31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5206.13; Wed, 4 May 2022 01:14:39 +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.5206.024; Wed, 4 May 2022 01:14:39 +0000 From: Liam Howlett To: "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton Subject: [PATCH v9 57/69] mm/mlock: use vma iterator and maple state instead of vma linked list Thread-Topic: [PATCH v9 57/69] mm/mlock: use vma iterator and maple state instead of vma linked list Thread-Index: AQHYX1Q+r1/29byhiUK3STs14LgIEA== Date: Wed, 4 May 2022 01:14:04 +0000 Message-ID: <20220504011345.662299-42-Liam.Howlett@oracle.com> References: <20220504002554.654642-1-Liam.Howlett@oracle.com> <20220504011345.662299-1-Liam.Howlett@oracle.com> In-Reply-To: <20220504011345.662299-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: 970a71eb-9232-4c15-f313-08da2d6b7608 x-ms-traffictypediagnostic: SN6PR10MB2688:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: bv8v1iG79K3jetHa/g5URtw2bceK8SjYy61dR684v4WiHjQ9/fycApbOAl4KdCSKd9rh7KvSet76uQquWzDyypcrECkoMnlOK8QkkGOLkIgaJxC4GfGV9ZELC51DhcmeouHAJeCLm4hb4x/D9grR7q4hOKHJYuiS8oyiWT//TAOqk9Hx/EQYruWd2C558PtKl+2wiDDfptoOvtNIICTC5QxwZV4jFYXknbxehVUw/exX2IfoFySi6kHjJTjUwzdnD2pqA7CKuhpOxt53G7L4tXwpOBU4MncEsbZbe0qGIOLmtSVAc3S1+h81i7G2sfT49WzJ3oypxuh8WBiEcg0MBliHdOrS82SBuK5HDYsIqMXhsO0x8fNJ56c7wuTSAxt3jatyyQlmDq4wtBxl15VGZgHBxIHyTxV8UbaAAZLsaDifGuLlzcUVz+VKJM//MA0fkDPLrT40PZTOo9ZpmpsuywjnkWxu2vpgT1alnXNY/Ojo6f4glO/OHuIqO1at5hKzfB9iwoWpIWGLGuVTP5tIwPIgJFk71O0Q1q5Yxif9TjIW/y8lYuQ6uqPTgbjyX9X2nH7ZevrOZzfh9lL+vg4VIj4GRZu5+mAWs3kg0XmaNYBuvNMQKuwuJdPx5Wv1o3ykb6IAh7cVUTBZyTwhLQPjCMkyIiEBGWi4Z5gUt36hxWbmhDFD/OFeDiGABQl2551yatjDHqLjx8rwuzyy4/CEtA== 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)(186003)(122000001)(1076003)(2616005)(66476007)(8676002)(66446008)(64756008)(38070700005)(36756003)(316002)(38100700002)(66556008)(66946007)(76116006)(91956017)(110136005)(26005)(6512007)(71200400001)(8936002)(6666004)(6506007)(2906002)(86362001)(5660300002)(6486002)(508600001)(83380400001)(44832011);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?E00NYO5jByVrD5bVjTPZS/l?= =?iso-8859-1?q?8cEb++FgYC0ezoQqVxChtBLsCWK0ZGk8F3FSEsmld90D9kk12Nrwo+PZniXr?= =?iso-8859-1?q?Z+pz163vX1+iljwQY6sv8ZIo2mx8YyL9yOASwAzSHCQ7g89itc6zDzNttCfB?= =?iso-8859-1?q?XUJf/7q8hZetKn0RkCp7j8bUyxmGGK5AW+fFUoTsj4nwDU4TuByYemSQxEaM?= =?iso-8859-1?q?5LnwPCSCBXQcjN27+TFm9vWxpTzJdogdQtWYsxkS2fXVTy/SgPHsbo3KMRFb?= =?iso-8859-1?q?/DrbpbUm3GPIQjuaS3/8BMEmlRQit/zbxx8/w1va0kdwTmhz2fLKnVVjL2Cc?= =?iso-8859-1?q?8M48TIQ/BMTR3sDDGq7Jt1zEi5r7u197GNDTBHelZnsekzCssTdCs3glPmOR?= =?iso-8859-1?q?W+esIxQ19F9jaXtrstuIFk9PdNuoXtgk6S7AbNBNG7JAjisOimHWBf/MKQiB?= =?iso-8859-1?q?9BRNu3l1ohnz/xYS7fT98TPmKXybvoDVLuNx1w28QquvUmDaT+Mw/EEjlBzy?= =?iso-8859-1?q?e14uJEH/ULxGoy4uSIC5KHvXo2xU4nTBn2H3/Ku7F76c8AVR6MnNiRPiwX2x?= =?iso-8859-1?q?C9j0tfTWL0dUcTyT1powSN3X0Y2B/m62hK4OF+PpnTd4JPWCEMQUBk9T+4ol?= =?iso-8859-1?q?2Od3CthGRxkOLAQyqtrBFMGCgjVqZOpDTHgQq4IaG8cmJSo+pzhY3CduJF+r?= =?iso-8859-1?q?q4p4seSI5L754ms3M3BSQrOs+yKJiLHKUxK6Hp4584eVNH3oEPVmAsmBA38T?= =?iso-8859-1?q?Ejuj5VClY/ZhXnYCHHMxUIoCZcpcZbnmxh1cFBtt+JrHqXk9FAyZ7Iqmmcgi?= =?iso-8859-1?q?GWzEd7fVKFuo1DtDTV7dKHbYBIdB+bHJO9JMVymVhV4YjSA+DXzyJM4ggTgs?= =?iso-8859-1?q?Wu3Kc16Lq3/Gs4LBYtJtKh3MJuV64D6GJDNvYSIGDdhjW3c9IJFYt/hrTWmK?= =?iso-8859-1?q?fNcvwP9TIUwzjfolD+gkYoKSSNfekumXVUCgWpCYJJBEahcc9YQxcT31eSSS?= =?iso-8859-1?q?2RfXKi2vYoooojUbk/WjKWth3dkHrTa75As3Obg1rqK7NH/XrmQv9nBWgazq?= =?iso-8859-1?q?MhIg+FPZVTKhk7dm0LA0kMmAwmvnggr9TnTgJpzblVVNiLhKKrwwCLXfPrij?= =?iso-8859-1?q?YCSZEYEqB255hf2jWD16LsXADFYVdZzzirDgW44ueGIORwI+5MO01xhgGQ/Q?= =?iso-8859-1?q?jmWXwcreV4alu7MsH3vllGiAw8O6nDF8cIvlWkloFPiWqj1S3xANg4Yv9Wez?= =?iso-8859-1?q?0Bm6gxS3MIcR3sdd/EHXrcVmB3P2rdjlXlmQhMm41Q/g7q8f/X3O04EcJXgW?= =?iso-8859-1?q?y6e6TiEaDjgn1BIEwRFFGrMePZII71aHOEtON3NYDD5UFSEVgUIpotG/YP8z?= =?iso-8859-1?q?++dVMXLU76/mZiotLb1ewjmqS2LCt+lTcjur4/ssdjHpXFHvcvfxdkP9DnkZ?= =?iso-8859-1?q?eEzIe/R1jvT/CK5j0dcrmSgDiijsfQ4SpFFdKw4sUCQy9F2o0TqGkZHaUfez?= =?iso-8859-1?q?/N9Q92Mc8NliR7QZgd7fhTVbqIpmV+l1oE3UxdCyHen/8e5pCjM0nDJEC80x?= =?iso-8859-1?q?i5dp4t9aEO2ApL+5ftNyYvbtCIY0AiUzUnU6b8YYJaZzMkYFvF3LkrPWPerO?= =?iso-8859-1?q?DuB8oW7KN4QkB6UcS8H/zVSzAW/8gIPHgpMBBJPYnHdIj9CSKgzTl71fPjbc?= =?iso-8859-1?q?coQbIDPXQ8iIhYTNdD78gHFj/FmrvTku1/pPpLlbZsBml2WU1J1DZodJcBbm?= =?iso-8859-1?q?dgcxF5vWsH+7OrXODORVmzdWFVo5woomTc1MvZ4vM91ZX0rXvHZ64kJ/+Ylw?= =?iso-8859-1?q?s9zRcStw=3D?= 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: 970a71eb-9232-4c15-f313-08da2d6b7608 X-MS-Exchange-CrossTenant-originalarrivaltime: 04 May 2022 01:14:04.1262 (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: NwZ0OfqkjeCZXR1hk8WNXmbL8iOLkEm6cIQWPeVGz2qPAvRg0koYXGfGz0h3B1dc/i/Ecll5Oki4KFJtcf3NlA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR10MB2688 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.486,18.0.858 definitions=2022-05-03_10:2022-05-02,2022-05-03 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 bulkscore=0 malwarescore=0 spamscore=0 mlxlogscore=999 mlxscore=0 suspectscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2205040006 X-Proofpoint-GUID: 6MnK9PkcfIMNFiYUQDSQB-g3q34D_GGq X-Proofpoint-ORIG-GUID: 6MnK9PkcfIMNFiYUQDSQB-g3q34D_GGq X-Stat-Signature: nq7ekpqrsrgp6hdsc4aebrf6se3crjxq X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: 34715180013 Authentication-Results: imf24.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2021-07-09 header.b=mUreAYM7; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=Jk6pXvXG; spf=none (imf24.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-HE-Tag: 1651626880-167326 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: From: "Matthew Wilcox (Oracle)" Handle overflow checking in count_mm_mlocked_page_nr() differently. Signed-off-by: Matthew Wilcox (Oracle) Signed-off-by: Liam R. Howlett --- mm/mlock.c | 35 +++++++++++++++++++---------------- 1 file changed, 19 insertions(+), 16 deletions(-) diff --git a/mm/mlock.c b/mm/mlock.c index 716caf851043..c41604ba5197 100644 --- a/mm/mlock.c +++ b/mm/mlock.c @@ -471,6 +471,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)); @@ -479,13 +480,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; @@ -505,7 +507,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; @@ -526,24 +528,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; @@ -659,6 +660,7 @@ SYSCALL_DEFINE2(munlock, unsigned long, start, size_t, len) */ static int apply_mlockall_flags(int flags) { + MA_STATE(mas, ¤t->mm->mm_mt, 0, 0); struct vm_area_struct *vma, *prev = NULL; vm_flags_t to_add = 0; @@ -679,7 +681,7 @@ static int apply_mlockall_flags(int flags) to_add |= VM_LOCKONFAULT; } - for (vma = current->mm->mmap; vma ; vma = prev->vm_next) { + mas_for_each(&mas, vma, ULONG_MAX) { vm_flags_t newflags; newflags = vma->vm_flags & VM_LOCKED_CLEAR_MASK; @@ -687,6 +689,7 @@ static int apply_mlockall_flags(int flags) /* Ignore errors */ mlock_fixup(vma, &prev, vma->vm_start, vma->vm_end, newflags); + mas_pause(&mas); cond_resched(); } out: From patchwork Wed May 4 01:14:04 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 12841927 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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 463CEC433F5 for ; Sat, 7 May 2022 10:29:44 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 9E5E36B0095; Sat, 7 May 2022 06:29:43 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 995DF6B0096; Sat, 7 May 2022 06:29:43 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 80ECE6B0098; Sat, 7 May 2022 06:29:43 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 6F5406B0095 for ; Sat, 7 May 2022 06:29:43 -0400 (EDT) Received: from smtpin23.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 32CD9208AF for ; Sat, 7 May 2022 10:29:43 +0000 (UTC) X-FDA: 79438575846.23.B7FEF59 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by imf31.hostedemail.com (Postfix) with ESMTP id A45B120052 for ; Sat, 7 May 2022 10:29:24 +0000 (UTC) Received: from pps.filterd (m0246632.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 243KnJSG013484; Wed, 4 May 2022 01:14:43 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=AiQGQQKBHlC4NOoZffg90TrtQ7kvvHftMWgpm46tkKU=; b=dvfmWUZz0pQRxyGn8MIW1Mge6Jt+wE+W8iGe9d+V3lP+fX/hqBs/WMG3wwMB7llps5BE Fqe2jHzgFZ5gCZm9ZzS06pmHNQ40Rci5jV0OyIw8oMEtVh6WmakJ2tTJnAfVwGPMb8be brwVrW/ykLwEuCYdP9g1/pPpQs5arfhhjtdM6Cny+QnxLQ6ge/vfBITPLauO0AY6QWdn 54eDlaOhh+HWJsr4ICjSTqMuujmh+5lsYBQ72zu+G4FDpbOOpladgKeX4QHviL89/X47 qpqno7JoBU9QUcxgrO7FXMpVXydfuFEGOhPOBZN8my0sz4d7zk4JHAFVGRSbt8OOaM1/ Xw== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3frvqsf6fh-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:14:43 +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 2441BXR2013207; Wed, 4 May 2022 01:14:42 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2049.outbound.protection.outlook.com [104.47.66.49]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com with ESMTP id 3fsvbmv41r-7 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:14:42 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=HPaSlJigt2F59Eso2ekSSM6Mwib0LpK071hg1j/qYSun63JRTwLbYqALtJOqlgKja7aVKEEwXukRkCy+mvj20TOqQUik8lakeACtfGnx5mHg2efJT6bVbEA9xPhd4x//3yUbVO6RhkYJVMULwkD+nWPLYjgBrqpencbl5GJZ3Wd6bSq3WAq2vF2DFsvYeIQ03VCXiNL22vIvALnq9MTBuQIvLUmt8JvBcEEg/xdY5883sm+5lS3XIg3cYZFz67zFyTiLXuwt+w56wTVN0fCeTICECgZpHbLI0TN4h7AOBxXODXovJOvPIzjn0rETVYE4IwzDtlQjPm4QEmnOBrQvYA== 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=AiQGQQKBHlC4NOoZffg90TrtQ7kvvHftMWgpm46tkKU=; b=e0Joue0qQUmPtvCo7HbpIdGJMru9KwO7Oq9EJX2gkOjWk6KKidf7OSfwDdMfZMXiGxSR3r4iU+OuCVrGUVNbW1EXeTSiQYqazjTucTjJU8VifoFpIzDw1zOYrPhvgh9RWf7S/GhrbYIt7JlaTqRvkCs/cpj13zt/MA/4W+brPE8UaUxhvwdkBN1uyrU+vy272+zcgUTJht3ECixrsoJfT+tDoXipQ0FBUeNooJLF/RJlXkQJcxE658I1y6EMSExH8y8fo+7x/WHnqi5M6Gm6jTgEdArGAcfmen8BEcTpNb53Sf+vsKCnbFRo501mKmuI+fHrIuzTsLhVuxGvWyYzig== 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=AiQGQQKBHlC4NOoZffg90TrtQ7kvvHftMWgpm46tkKU=; b=s9FKAm6kb7pM8CROk2rpsrnuFdb6lqrK1wzX/hf44/0pyewGvkT2Q3J7NTJDKEQYvcD0QCGeoP195KlM8YLSfSsYCN3CLi+9ekSnr1v3OlKy32gPkcMxrGNPBvaCzKsEyltrZmFJ/icLDY1myYR4Ns9vxs+d+J6Us9kd0CHA3YI= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by SN6PR10MB2688.namprd10.prod.outlook.com (2603:10b6:805:4e::31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5206.13; Wed, 4 May 2022 01:14:39 +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.5206.024; Wed, 4 May 2022 01:14:39 +0000 From: Liam Howlett To: "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton Subject: [PATCH v9 58/69] mm/mprotect: use maple tree navigation instead of vma linked list Thread-Topic: [PATCH v9 58/69] mm/mprotect: use maple tree navigation instead of vma linked list Thread-Index: AQHYX1Q+0TbYZ4y0a0uy09szJ+SEGg== Date: Wed, 4 May 2022 01:14:04 +0000 Message-ID: <20220504011345.662299-43-Liam.Howlett@oracle.com> References: <20220504002554.654642-1-Liam.Howlett@oracle.com> <20220504011345.662299-1-Liam.Howlett@oracle.com> In-Reply-To: <20220504011345.662299-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: ac958bcb-e722-4bcc-c83d-08da2d6b763f x-ms-traffictypediagnostic: SN6PR10MB2688:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: SXQ90p9er9EkTBJe9i/yelfnxhhj60d38icyE1aJHagD/QNYK1NIDfoVK6vrJoKRHOKuaXIA/hTU2D++HZxJJ4CQvI3MM9rOEILLQr0xHbp4yyjluTfxdeKe7Eab327dRC/y3B6TQknkMrDJsJ/YQMh59mOdFisYnFtswA3rz2PxKGYXQZeCW4U32LUrz8d52t3B1y3/DCJUBghUNLe2jkVQjqH1Vx0QKI/RQNFMeBjylyuX9aFCKzmtwSAK3i2vQp0daQbciYUkqJrtw7mRYYsSqC+7zkEiBuMbQddDC7FZ1Fwy+ZwElsOtalM8j1yQB/FMiq0EN0f67P/ofz6+e6XB61ZCP12J+4C1VX6Dbc/0/piPKsaJdW2FzeMaeRbHhtvnWEG7YQ3ZQj46l7PCvS13dHEShYsqBKK9twR7iZBOX0cooaV3aq6/XEVpD/TeT/cE9+xvyJRlDGcAil+Hg8vZjy41jGZQmNap8bxYH6X+w6M74FKTXONO9wleoT93m1sxM1DsvrLk7gWMprnPS7CELyek6yRRu1GmVauDKw+IJ9xOJk33TWr5XCq4BLvH1slvTDasVF1bKs0+sU60P6goKjT0oIljlFQ8qUruqgYq8tNwrxvMa2hdoApbmxkLRnpmhg+XK2+WOZBEU9FK2Fp5DMA6UEJRkxJNug/tUk097h5b3cJlgCsSy7lVOs7M/XABJ9DfphCQTUB8KKkS2A== 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)(186003)(122000001)(1076003)(2616005)(66476007)(8676002)(66446008)(64756008)(38070700005)(36756003)(316002)(38100700002)(66556008)(66946007)(76116006)(91956017)(110136005)(26005)(6512007)(71200400001)(8936002)(6666004)(6506007)(2906002)(86362001)(5660300002)(6486002)(508600001)(83380400001)(44832011);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?IOFgQmccKZC5JWCYWcok2eS?= =?iso-8859-1?q?I3k+QmP2bMGFoanr6fRZ2rLNUGNdC/I5d+9oV+1slamvnnr9WKzBmZUnldWF?= =?iso-8859-1?q?mb2aVuGTJO4Zo89LJgucB0QOgRHFOAkkKC7UqFHNJ0XFby4G1XQJUwMaYOHU?= =?iso-8859-1?q?//KGsrpamA2hVjj2FRlv3JhH27YCK2nSj2enMpNqd7q2LdCsZfjLA2Z3lFeq?= =?iso-8859-1?q?0rhY2oV9PFgrj/Lk25PnAiWuDniQZ66co9t3za89GEwO3Xhqm9Blbl39QrJP?= =?iso-8859-1?q?BF10840eG36LO2HU0JP3cb523kNVzj09Z0ktFg5ZPcOZZf8E4DvKo/bS7NFP?= =?iso-8859-1?q?775GX5tWAdCynEBmZHtDSAzDU6L6PctoUToed2XQKqZfQah37yM38msVKdjW?= =?iso-8859-1?q?/GxjCOpAmU/sUAqZuAbDpuTtVoXQPHku6gT8o5ZtVOJJeS/pRGzRH+S9lqd7?= =?iso-8859-1?q?gThtEXpI8uQBdFwkGUM0vfqhTc/d/STUSrVNkfYsUltt6DbaIBqL0cxlzsuh?= =?iso-8859-1?q?AgCIyEpJCoCcFZoJWdDLcMQjKopG7eo4NFDSVriZxcJWoXItVu6L+ODb+Aqh?= =?iso-8859-1?q?+DmzcykRh+vqwsvINKTnsM+Zc+FuGO6BZtQWXryCxanFGtvOfSNU0U9DCuVZ?= =?iso-8859-1?q?PCd2EhK0xXx/+wp9sPTxhmBWmLzN5FiiidE9zGNXr0p0ZIbnaqFWgp3+lUNu?= =?iso-8859-1?q?ob1+K62+WL75fhKz4yg58CPGUEfosAuTqIwysl8UXPIzbitlLKTNNj7ICPt5?= =?iso-8859-1?q?GM0fZnsWIwnJQKOsY7tiPqmkRD/OF+lEBBHlXb14pPHbojZn++UmrSSyIxrG?= =?iso-8859-1?q?uKTg567X7hkHXBwvHLkTXHvqjGExuifjodjjv5xQ/OWZ7w5ot7Rf4X7MVOXe?= =?iso-8859-1?q?HH619XOymmI0xk/5dq6T25c6yx4y2QbwqQWVcJRif/fF7ceo1/GNsDWBitkh?= =?iso-8859-1?q?lLPoP0AjdT93jh8ywy4Q4nDa3JpVX7KRsjteff7AOnQW0w2HyjYDU9BFVCs8?= =?iso-8859-1?q?ARC7piNP5sEmMxP9M6YbYeVhL9XJ4qUMOCjGtWDvJ+JCEIjd+EmgBmGUrup3?= =?iso-8859-1?q?qEAxNdAb0SUL8jXgggspDu5inoXcc/4Mv3BqTJW3z4PsMzG+ljLpn8QrlIlL?= =?iso-8859-1?q?TsVkberIxJcyl0g6+Bkjd/F7W+VhzJB7Lt7KAKQcy4NU/Ffzi+w5yYX1wCft?= =?iso-8859-1?q?j4rMmW5P5wYmdLMfQstjb7ULpP4yY11TAtVu7RvmHveJaEzYSv/Q/7kDSDqx?= =?iso-8859-1?q?szwJ6xs2cFi3BuHi1jRMtregVk8wJs4bKJnuRLc5ifaYg+dzFuxy58pf/D6Q?= =?iso-8859-1?q?Bs7HGsnrxSK6wglvAW0Us67m6Qydw4JEMWacjP1K5CFOQxXIZmGLW1SgM7Ps?= =?iso-8859-1?q?W7Qq7ThlCIpUAmNVpkpoKSQjGDdb4hcmWcYBqWXKEnzdlMFpucUZRKO2tds9?= =?iso-8859-1?q?6DtgNUE82deAbFLPOLB0wMV9tSZDA9KjzpwBirSZaeccD6GcgI2AN4dA3aAU?= =?iso-8859-1?q?aQDyhiXGxIJEr1lqYF9OqppVXgApvyAUsp0Pw/u7GvcLk2PPqVVQ2rDxUQZn?= =?iso-8859-1?q?LUkB2CY+ToR9UJ1OZb+wxfuQ1VulGbFj6KT7brtgBkoRdnUxWD7/4vK0U1+1?= =?iso-8859-1?q?Am+W98bCJgEA3UZyUJHzbJyXuQHeWMYNopojf4h3F+IEVzOvdXO2+60Y4Eyq?= =?iso-8859-1?q?Qa1UTxAhjh/yXCvyLSo74chO+drHDGQdQkb/tNBm2j7zcjtHLvoEYQ4g3Go+?= =?iso-8859-1?q?9jUsneYDppLfJ3Mgo4xFp72DalTsAREe6Ey39kubCw6rpIL7BHYsXV1aC/ZX?= =?iso-8859-1?q?r5kHnpM0=3D?= 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: ac958bcb-e722-4bcc-c83d-08da2d6b763f X-MS-Exchange-CrossTenant-originalarrivaltime: 04 May 2022 01:14:04.4386 (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: CyL1300DZUuoCGSETAV6/wRDWQ+9qXE85uWx27hMOjJN/VmePoI1iZTpKNLSCO/z4sjLGfWU0SkIhXuLRmbgZA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR10MB2688 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.486,18.0.858 definitions=2022-05-03_10:2022-05-02,2022-05-03 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 bulkscore=0 spamscore=0 malwarescore=0 adultscore=0 suspectscore=0 mlxscore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2205040006 X-Proofpoint-GUID: YuohclX5hn5m_gsNyX-bTMbXSeNlKZQr X-Proofpoint-ORIG-GUID: YuohclX5hn5m_gsNyX-bTMbXSeNlKZQr X-Rspamd-Server: rspam02 X-Rspamd-Queue-Id: A45B120052 X-Stat-Signature: ajziazyura48j4su66paqai8to9gjykf X-Rspam-User: Authentication-Results: imf31.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2021-07-09 header.b=dvfmWUZz; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=s9FKAm6k; spf=none (imf31.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-HE-Tag: 1651919364-134228 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000007, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: From: "Liam R. Howlett" Signed-off-by: Liam R. Howlett Acked-by: Vlastimil Babka --- mm/mprotect.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/mm/mprotect.c b/mm/mprotect.c index b69ce7a7b2b7..81e5392ab13e 100644 --- a/mm/mprotect.c +++ b/mm/mprotect.c @@ -539,6 +539,7 @@ static int do_mprotect_pkey(unsigned long start, size_t len, const int grows = prot & (PROT_GROWSDOWN|PROT_GROWSUP); const bool rier = (current->personality & READ_IMPLIES_EXEC) && (prot & PROT_READ); + MA_STATE(mas, ¤t->mm->mm_mt, start, start); start = untagged_addr(start); @@ -570,7 +571,7 @@ static int do_mprotect_pkey(unsigned long start, size_t len, if ((pkey != -1) && !mm_pkey_is_allocated(current->mm, pkey)) goto out; - vma = find_vma(current->mm, start); + vma = mas_find(&mas, ULONG_MAX); error = -ENOMEM; if (!vma) goto out; @@ -596,7 +597,7 @@ static int do_mprotect_pkey(unsigned long start, size_t len, if (start > vma->vm_start) prev = vma; else - prev = vma->vm_prev; + prev = mas_prev(&mas, 0); for (nstart = start ; ; ) { unsigned long mask_off_old_flags; @@ -658,7 +659,7 @@ static int do_mprotect_pkey(unsigned long start, size_t len, if (nstart >= end) goto out; - vma = prev->vm_next; + vma = find_vma(current->mm, prev->vm_end); if (!vma || vma->vm_start != nstart) { error = -ENOMEM; goto out; From patchwork Wed May 4 01:14:04 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 12840774 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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id A1B25C433EF for ; Fri, 6 May 2022 09:17:53 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id EB4086B0074; Fri, 6 May 2022 05:17:52 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id E64386B0075; Fri, 6 May 2022 05:17:52 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id CB6986B0078; Fri, 6 May 2022 05:17:52 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id BD4A36B0074 for ; Fri, 6 May 2022 05:17:52 -0400 (EDT) Received: from smtpin19.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 86D0F20C0D for ; Fri, 6 May 2022 09:17:52 +0000 (UTC) X-FDA: 79434765984.19.7CFF3CD Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by imf29.hostedemail.com (Postfix) with ESMTP id 5F9AA120021 for ; Fri, 6 May 2022 09:17:46 +0000 (UTC) Received: from pps.filterd (m0246632.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 243KjMlL013507; Wed, 4 May 2022 01:14:44 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=Er0yPeVRdxb2gthVYE47IyHEi6JcGaaDNNd7OleHxwc=; b=Ue7sG48bTGMr9AdDT5oOE47k4+QLW2YwNzNMpBPBxsGehVOSMzz1l5wE1TOWoMLfW1cl iWbUALkRUqj0nR8z8ma/jG4LUyg2Qp9svuYwzUxXJQadbk42A/fwOruisK6GWUzY5/hv puN3ii7oR2lcCZfKH/fNjvwwwzrPGHOzg2awbnWXGOBtF3lYzoDnQiw/iSVIcZtK95ME 9eRIFFlw6yPMOOW3uJJiqRnugca1+uyny0AAgo47P5iYmNjak1jUUYElmVLnXp5/0Liq P1VRJdys1rXEw6kKzT3UZbd8+qBKY/lVfS6cEAH+rJxYGljDrXqDLQfW38K/H9S1Nx/i sw== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3frvqsf6fk-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:14:43 +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 2441BXR3013207; Wed, 4 May 2022 01:14:43 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2049.outbound.protection.outlook.com [104.47.66.49]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com with ESMTP id 3fsvbmv41r-8 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:14:43 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Cp1AbtHr0mZ7CdsKW3tvk7S4nGIZ14bVOZTi3TALkRMR5WK7KydzAy5I1SLKzkzlHDHODaVvm7f2WUUQ4qI6OQU6P4J+tuY/Dd2UasyCAWUnvIb9Tt/4NZTFUwdo0c7KOvlPKhYAqFMez+cFSUUGFKffIrdOrl/uqhJr7BQJfS7PBZ2SoLwKIdtPkNI/xCAVmLKEBIuMp/CNQZ+Uv39M8c1ivH9Ki9Ii/R/zjMaU5P265RAk8r4V6eziz0QWYsCLhazB/pc3D5miE2toJV0gEFYQO8JK6OOdVGO8IJYisRxe8Kek6rwkUtS1DO/Zf1hx2GK7/v5BKTx+kxDWk3avoQ== 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=Er0yPeVRdxb2gthVYE47IyHEi6JcGaaDNNd7OleHxwc=; b=PjCzB2mFOLgA1euVYf0XFRo9YbbvV42kUjHywI0uQhbDWaXVKypJeIdbBoe/HbMolj7mhS09pHONlguwLM2Wz48VRLvA+OYSzArDtDdLZSLlNjUrTF/CPUYylEOIHtmRyy1QB8RDOs1RF78xXw+RpgAUhavHA2B4q9N230FYP9yfqVRD6V7UMcAdXfvD3s87WWtol/IbGsTQyI5Ut2TzLPacnbIg4mvQwL4cC4axz4ly4TUG+hipQxw9ntYgc5c68RFjtDZ5Ci4pVpdl1vlmcIVfdn2pz0m4Bc41B7MM5xFoQByBYKFkG2pQsCwx1EJ4r6gkuA0Ytrx8PsEbMIoHdg== 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=Er0yPeVRdxb2gthVYE47IyHEi6JcGaaDNNd7OleHxwc=; b=bAM4omuwBOQqKCDTO+2Uocp13IOg/+4+q0UgmxxWHqE5D4R6PzJZoTRZaeicKOPudvaZkUx1EgMWdYMkFtZgy+gabib/KucXZN0IgtbNAcO/sG5JIFUMtUeO62y13KOioNVoI5A+iDT7pKZAajFkSdnzU13GUHrEt+H5BcXYjd0= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by SN6PR10MB2688.namprd10.prod.outlook.com (2603:10b6:805:4e::31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5206.13; Wed, 4 May 2022 01:14:39 +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.5206.024; Wed, 4 May 2022 01:14:39 +0000 From: Liam Howlett To: "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton Subject: [PATCH v9 59/69] mm/mremap: use vma_find_intersection() instead of vma linked list Thread-Topic: [PATCH v9 59/69] mm/mremap: use vma_find_intersection() instead of vma linked list Thread-Index: AQHYX1Q/yjQG65dHJUiOH68fc0G8/Q== Date: Wed, 4 May 2022 01:14:04 +0000 Message-ID: <20220504011345.662299-44-Liam.Howlett@oracle.com> References: <20220504002554.654642-1-Liam.Howlett@oracle.com> <20220504011345.662299-1-Liam.Howlett@oracle.com> In-Reply-To: <20220504011345.662299-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: d54346b5-a234-4cc4-3b17-08da2d6b7674 x-ms-traffictypediagnostic: SN6PR10MB2688:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: uO5jcWj9GgfdjZEKcJvh2WIAyPYl7phv9luf4QFXXpS3pMwnPXCv/+JrAdeZXfknpl9xqnwWSzPOVFKrcwaH2ID/iza04OGWmQQokwP4qcojScRR5T3KirSiJGybhvgjOL3kBrUkmKwhva5gSJsuT29LsMQrLgucUB19axP6dCWBhdPdpx4UCqY3CT7gxavET/nSzFXnbyDBUWR3+6y/OcsUYhj4aCZ3ISgooSEq0IDCQqAwr3qwdVEoODWCcZEKxehHzpG2BaIRn8FXN4hHTSkuZXAIbLYPyHpzwNfL2gAjGF42F7we+AZIDVV2ZYWQqno/DGePZjVn3AG6LqdQ2o9wWletW8E78Drmt+kmXU3XCahguBTohg1ovBe8S67+h5vPFk+1BpNztpwhtYxhaNn5OapgXQC/WHIwg4EKHwJHcLxv3zeWRyhoTM9BT8gHTc2XSB3fy66K9e59EhNZpMzfHwN9UvlqEMxuCUztFTpCp84GqljSSAGLnSMblCjFi+3bb26VJ167b4I7H16JCZleARq2bSa6vzoT+p5j9rQB6JrdDGFPCMIaomSYzLzzYCTo5J29VGtRjv/v3Zpp8ozYmwceV9ACZpt4aPXS80tJwQ76VyM9Zv+x7QNix2QCp/vzQrzjuDtgxEDbp11vEpe0CWjxo5S1OWrsz7UnxGVUCN8cwtaN5P8cdCzWdbmOfm+zG821S8GHsoJzJ/ZBxQ== 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)(186003)(122000001)(1076003)(2616005)(66476007)(8676002)(66446008)(64756008)(38070700005)(36756003)(316002)(38100700002)(66556008)(66946007)(76116006)(91956017)(110136005)(26005)(6512007)(71200400001)(8936002)(6666004)(6506007)(2906002)(86362001)(5660300002)(6486002)(508600001)(83380400001)(44832011);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?7xArO6/LhJEx47lA5cJhXb9?= =?iso-8859-1?q?0Gb4u3DiuJgqw83x3QcpEW09LiPgk2+50HgVj/CsF0c6ZmRPUDJj3vnAtr7J?= =?iso-8859-1?q?JRxNrUF9nEcD4bXK2pQfga1Pgb2/qlapQXC5BqerKsNHq2tdU1ESOxU/LHfr?= =?iso-8859-1?q?AFOfZ0Ok0p1OjW2l01uu/kpHEoKGozhwR90lE7I+ekJE1APTErisuRI0CPHq?= =?iso-8859-1?q?IlcL7e2C1ZMdgL49XbsrkMSRp19JWzj02nQ2Eh9uZFhUPPA1U0n/ImSOAln7?= =?iso-8859-1?q?XzIHkNnT0mgdkeFSHze4gRtfc/yqht/TZfR7qVm23q05QOOWb4IvXtk9D4wI?= =?iso-8859-1?q?THNgdpnkF3DQ4Y9rdglrKPgSgHleAjjgvRsIIs0gBxbvz8ZibXpV+IDSZ6CW?= =?iso-8859-1?q?yLXvRvoy+L7D4eVYJp63ph30SG65DR3JptTPlzLf9QMz9VGVr5lBw/6UW+Ba?= =?iso-8859-1?q?rHeQ8OdT72xLUuJfIif84FeYwguk1GNKyyzIRh7UtX6HFoMKNZaW9W2umOgg?= =?iso-8859-1?q?0iyw99cMwHLYM0/ASZdhpCiirjqnnYnUKEcYxrcwWc0l6io0JqkPOmHn4Z6d?= =?iso-8859-1?q?Et2TUYyeg2HWrBnYBXWrY/prapr2zrNhn2Va5D1moU+WWvxo/37EN68GAJjn?= =?iso-8859-1?q?gB0lSjgNBpC22WG1BjTnxIU2gxhCMz1hvOY66QYY1ZshHgkoEKtDG3phDLj+?= =?iso-8859-1?q?sAbKNDun8laf9ml+DuREfwUTvsHucXMxOkUBt1OnUr190hvj/Glosd8012Ty?= =?iso-8859-1?q?F+kmxZyex4kmnBiJEDTkwQ4VxfIQZvfbPy9uQ3+BKlDCk8+yWQcj759Xgbzb?= =?iso-8859-1?q?x1QteNOtBGwOwN15BYalYF5mfnWP+kiUX5h3I5WIATEqfFkO6fLafmbTKVUP?= =?iso-8859-1?q?tAIFIoCXP5Egc1qfQfAn3trwj+7zKiSZhm908vLDxVBv7yPryn+JpkND9sZ3?= =?iso-8859-1?q?BRgJsYCwLwDPqFbYidCf2D7a8VF3kXCV+a58bIQlHmwIrQa+nPtupwrEFLkg?= =?iso-8859-1?q?RjoIRYziILtoVzIGS/HhpcV8hmSFM8WUfZB1GtgY8hsTON93LPCHzxECdpJk?= =?iso-8859-1?q?MON7m16Jo5Lf93QcoAAaKURpzDqtbPU0sSZwobp7MPgAeXRBZDjogiJ7wG47?= =?iso-8859-1?q?Jyk+bSazsMqOiLNwtiXLC6ejPP9a5/1WCh3MgJwqWknlL25rYc1yZCjOlnVk?= =?iso-8859-1?q?C0J33PJVWaTh5d8SQl2F+GlUu5oDv7YBIGm/bb8gM1nzxvXu4VNH4b/s00/q?= =?iso-8859-1?q?HR/c9nuO1yaaO+PdvnUJqxFVbztzBw4lPmD+hJpK3tBdKjRZHnvZnZ0lDK+a?= =?iso-8859-1?q?1VAyF7U5uVaP3PgDFIgHWYqLb246ukIDg3maeF0beqUuEnZDYEii3iQr/5Ji?= =?iso-8859-1?q?yOi8WXYXibj8YFZaV2Z4gqyd5prvAMUDQ4qkcLeALfO/3Otj4I4xWZw3NYJN?= =?iso-8859-1?q?7ERjledxjtTM4KxwgWpRSPOdnjuS1oV6J03i9ZX+lNrwOIofKkPgavCASiIA?= =?iso-8859-1?q?1Rp8KrjhChOD2C8EMfUHqc1hDZWfBKTho8wLS7fTEp2pmi5I0q5kWh/zxSrJ?= =?iso-8859-1?q?FqLxr92W1iCKiBz1hXrVe75AbZL0vcINP+gTCgjA2zpiX2q6UfjRQO8DakeJ?= =?iso-8859-1?q?gPgNPegJlp8kV7liA+WY6ysqP1l0QD+n5WF1P9MuYsLgb0qLDsk5NVlbghoW?= =?iso-8859-1?q?qgwzTekbg9DLLVrQkePRHAdh0c3ES3rBned1rMhWGAQOfXunW2W5OZa/oiaX?= =?iso-8859-1?q?p5gf7IJjV7pV6p6vZRTcMkoKfdrN6KRAPszYD+vRbltBPH9DjJWUO4fkfAhz?= =?iso-8859-1?q?AMCqlApU=3D?= 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: d54346b5-a234-4cc4-3b17-08da2d6b7674 X-MS-Exchange-CrossTenant-originalarrivaltime: 04 May 2022 01:14:04.7199 (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: McHUyWCcpn/KcAw5qRrIvwM+fK7B8x8npINkkoHZ37oyij0v5V1AgTrwSC1dHRMB4oRgWoc7za77Fz0CiiOydQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR10MB2688 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.486,18.0.858 definitions=2022-05-03_10:2022-05-02,2022-05-03 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 bulkscore=0 spamscore=0 malwarescore=0 adultscore=0 suspectscore=0 mlxscore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2205040006 X-Proofpoint-GUID: K7yzf-L_kYBbiJeDjKAjJHInXMm4307U X-Proofpoint-ORIG-GUID: K7yzf-L_kYBbiJeDjKAjJHInXMm4307U X-Stat-Signature: b1m743931897drwg9fxrgxiz3o95wxpf X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: 5F9AA120021 Authentication-Results: imf29.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2021-07-09 header.b=Ue7sG48b; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=bAM4omuw; 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-HE-Tag: 1651828666-437355 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: From: "Liam R. Howlett" Signed-off-by: Liam R. Howlett Acked-by: Vlastimil Babka --- mm/mremap.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mm/mremap.c b/mm/mremap.c index 4495f69eccbe..c0d32330d435 100644 --- a/mm/mremap.c +++ b/mm/mremap.c @@ -716,7 +716,7 @@ static unsigned long move_vma(struct vm_area_struct *vma, if (excess) { vma->vm_flags |= VM_ACCOUNT; if (split) - vma->vm_next->vm_flags |= VM_ACCOUNT; + find_vma(mm, vma->vm_end)->vm_flags |= VM_ACCOUNT; } return new_addr; @@ -866,9 +866,10 @@ static unsigned long mremap_to(unsigned long addr, unsigned long old_len, static int vma_expandable(struct vm_area_struct *vma, unsigned long delta) { unsigned long end = vma->vm_end + delta; + if (end < vma->vm_end) /* overflow */ return 0; - if (vma->vm_next && vma->vm_next->vm_start < end) /* intersection */ + if (find_vma_intersection(vma->vm_mm, vma->vm_end, end)) return 0; if (get_unmapped_area(NULL, vma->vm_start, end - vma->vm_start, 0, MAP_FIXED) & ~PAGE_MASK) From patchwork Wed May 4 01:14:05 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 12837338 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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id C47A7C433EF for ; Wed, 4 May 2022 08:29:02 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 4DC6C6B0071; Wed, 4 May 2022 04:29:02 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 4B3CE6B0073; Wed, 4 May 2022 04:29:02 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 32E7E6B0074; Wed, 4 May 2022 04:29:02 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 2561D6B0071 for ; Wed, 4 May 2022 04:29:02 -0400 (EDT) Received: from smtpin01.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay12.hostedemail.com (Postfix) with ESMTP id F081F120C6F for ; Wed, 4 May 2022 08:29:01 +0000 (UTC) X-FDA: 79427385282.01.BEFB03B Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by imf29.hostedemail.com (Postfix) with ESMTP id 88FA012009B for ; Wed, 4 May 2022 08:28:56 +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 243KctF5024988; Wed, 4 May 2022 01:14:44 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=3pBJLhHwM0A2U3t4MwuSjK0HGrq8NrNzfnQpio4j0EY=; b=orjPhy6sLnNOiHk+druKmEqFgRsD1ptVVtQV0bJF0rCEPdV14RyhD5UJbKqfsPLaLAsz Ldy4H7pABOL+FFQDysQmUmthbNEQEai+dExzkYkkrIWNvhbR0OCYfQn+FspNz78wIstt QzUTgnvpNu8Mybu+UItLl4SS1k6ooZgdrek8xm7/f0ojCGYtyQJCXWMV76MCwZ54ulUr 0NNOduQGTpe7lMIZBEGzjF7nav4z1y579qXL3NXokUFTeUtzuJOIgV6bxMkoWWHXIaMH k6EyrtLL2b/WaSnAPPfjANPBAKCoGoPnQ2VHfikMHiyJ5TdCP3ckn85NPlmAC/WMsbma dg== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3fruw2f6cb-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:14:44 +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 2441BXR4013207; Wed, 4 May 2022 01:14:43 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2049.outbound.protection.outlook.com [104.47.66.49]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com with ESMTP id 3fsvbmv41r-9 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:14:43 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jNK7tCmzxlVGV1zJaxdXjoTcwISA1L+WXTWjCr/Lt9SfGxCs6AjBl4ZEB944hrD7tp/x0eNqQeeQXE52tW02p3gCCAoQc2DUO14AeK9TtbjMNYT/MLTZKGxfnX8zpWXIeYMwEPqQsncuQJgdUJc7cZKJr+8UDA/4oqF/sM2d3og00SzSsITiXJEUcO1qOVdBjmeGSZtZe0+Cg/pXRux8lsh/aAdvQIkZOzGjAkqQJUoLiDNXGEDlCI0C6dx0S/lFRWHOYjdigjNr+UaWX+LfPx5O65JA0tXWF0wqBKImLb7AarFlATV6IPPrQQZcEz6R10PhnC0+VU7BeGLXbmz2Dg== 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=3pBJLhHwM0A2U3t4MwuSjK0HGrq8NrNzfnQpio4j0EY=; b=VrdAcDq8z2Ji3PLAYcEdaZexelAj9ajgsG7iQuFfLHuU+CMAuahwoqGxVnfKSGLzj9hN8Y4qoNRWvpJB3EFRnWJDoRMn0vxDRGu0RIUKml3FZH8g9eluYLVLTU8sPENIkkhwhkmzex1bNPv/NTyAGNr5ghbkRpUzvfZh5DUoPwUpSnc8gN7L0zh1lk17fMCnbqJpK1F3pbULGeKxVwoXBtJhz1EEqk43/Vqtm8izo4rldpxfMzswkl8rJ5952Jl0P4IAPLOb80jaTvmqi/JliDiCru/VaEqf4xP5Yo+MLdCiYFia0yWG/0tl+3/f/y99xM8E7ZaYswZeY9+4u5Elyg== 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=3pBJLhHwM0A2U3t4MwuSjK0HGrq8NrNzfnQpio4j0EY=; b=qrMhHH2i47x5dib3IN7Vqcyf5/ofMdk3ljoiE6DSx/cwEdozBfiePhsNFtxSq5BhuH6f2XIluK91MeEIlgZdbKc2D/GKES3oNl7R3aq10EjSB/fsPVDfVXpU63ae+bj6EmpPOCx4wMFRxiB4kBEpJ9eA1TKmqURtA7N1KJw3s9k= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by SN6PR10MB2688.namprd10.prod.outlook.com (2603:10b6:805:4e::31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5206.13; Wed, 4 May 2022 01:14:40 +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.5206.024; Wed, 4 May 2022 01:14:40 +0000 From: Liam Howlett To: "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton Subject: [PATCH v9 60/69] mm/msync: use vma_find() instead of vma linked list Thread-Topic: [PATCH v9 60/69] mm/msync: use vma_find() instead of vma linked list Thread-Index: AQHYX1Q/PG6zRNaXd06PeWoaIzW1lw== Date: Wed, 4 May 2022 01:14:05 +0000 Message-ID: <20220504011345.662299-45-Liam.Howlett@oracle.com> References: <20220504002554.654642-1-Liam.Howlett@oracle.com> <20220504011345.662299-1-Liam.Howlett@oracle.com> In-Reply-To: <20220504011345.662299-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: 273430a1-e3c5-45e8-24ae-08da2d6b769f x-ms-traffictypediagnostic: SN6PR10MB2688:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: /zJpSWpj1q33WscTKM7hXH5Sgm243yS/PDODrmhpajxXRr/G8mUeIgfAuzvZCbbO1FL8ZekAPXggEHvrdoYK9sCwJJz6GZGFcuC2iblxXZVdyLeKMHQeR4Nrt3cOCL0kxscY8zu8lm/Tzc+9tlTOAhcVOdIpDvaBG6WaILQBdhMA0ja5Q8+f+hR1p6wXtAIgdy2U1Eb7mQ1lmrcrhHDXMrpPXN4sAYo1zdznFUwUIBTIFiCrxH0Zo+x8uFDxMAqRNjSbZ+Z6qf1Qr20WPt28Wgkco6vHJflzaUGji0SZt4+61acqyeAQLuDrVf7eKylNiMpbtMHhmXVNJq3pZRt/b8hRZIhrLDRdRTljSipTcbQVNx1CLhoi51CwMdGenpdxyvs+fL9RCbEF4oefs3HkFlbHmBSjlxOdRI6xGZMGiZcT9b1/9IyyLNzldodbV+PZUkjyoQZxTgtZfAO0zbkN5ZyxmzoFhGnDukBStGI7f1t8DxqHt6ZbUhyQNYsCkXFexsbSxPAk+3a9dM8renWMdESV/qlEANGBv9IRZtKcVBdndQ6ZnOyrvBVZDf0RcfzSplznBDwD4k6KarQ13dTSfDeOOqsgrjdSFKryQfOz/cgFcpuddVYOxMb6rbBfcK3jzDy2w610306Hx3gdFC7lmwo/ZssexDC2i/HxWMmaWuPNQ4QYAe2pTh5gq0f1gs5nv0la+gvyuySed4DBCubhrw== 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)(186003)(122000001)(1076003)(2616005)(66476007)(8676002)(66446008)(64756008)(38070700005)(36756003)(316002)(38100700002)(66556008)(66946007)(76116006)(91956017)(110136005)(26005)(6512007)(71200400001)(8936002)(6666004)(6506007)(2906002)(4744005)(86362001)(5660300002)(6486002)(508600001)(83380400001)(44832011);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?b9mSfDQpZAMA+DUrSR2/KKN?= =?iso-8859-1?q?FSVOJvdwz/P7ghc+3A8HCulJjD07NR7nRlVLQLfXtqA00jHl8jL9Ips6jpLV?= =?iso-8859-1?q?ZQMH1bVZC6ZXDxgrvrEskvZXF7cRd5zWykk0PrfJs9xfsUP3z3xhsZSqWC/S?= =?iso-8859-1?q?RpiGu7CtN8+OCq5uBajCUsaJNxcRxM3ApdBcZYKfTvdO+O08Hk8BNdsrfQyU?= =?iso-8859-1?q?5G78cvBbTGtIdwohWdaCX6FyQIZx8BForaPAiQqRshvvJ4oAmkl5BE5erCz4?= =?iso-8859-1?q?3pB7E22JP9or6BMWbbod29j/0AhG7FFx5aHPsEj5jSMuAfcAOeBwYrRvFPjV?= =?iso-8859-1?q?ShYztivTNbVleqahTpgsp4Pt95N346G4ZacMbj2qXQvgRFxAeYEBLY/I7XGL?= =?iso-8859-1?q?0+hk06tPEvDalLWABHk0BZtjPaWPFPjq2C9zOFiuQ0fzHJDP3amVZWLyXUw/?= =?iso-8859-1?q?Zv/9wpCsFuaOPbrcGbjDp+n2H0QFQpbb645Tk/iuFBuNg8KurGdOmmxEp8yJ?= =?iso-8859-1?q?1BrrbEjaNt/YUYS4ttJQSS+80jTgcOUn6lZFKfO8vWBxBJYz3yQWT+jUArNz?= =?iso-8859-1?q?zzyRxPXO/5G+yGQLJXzQDCLqbegEDCbZpvri+bVANMznaVunsOeBaIT5Fcqv?= =?iso-8859-1?q?NabEPxXhgENBi6YeQG8Yl3GHrVP2DGZd1vTxCXLR2Ee10tMQ4EiY6u3iWBTm?= =?iso-8859-1?q?Lr6/O9bfOJwl33u1GcxHpzsuIw3JoRacpRe64YAZtsqwuyBTD0GzoYru8fj6?= =?iso-8859-1?q?PuvPKuorpEg5cjR4FSn04CyzejTh5z+g5N9sTUnpEPQ5KFW6z2XRCHUxUc1j?= =?iso-8859-1?q?XbW5Mo/B32eUz4JVr1b4RViW7FHtdj+1cRVVh62OAuuXHSBsRuOTU4cdIwr/?= =?iso-8859-1?q?rUr66pWcWf/TbaUeihiaNbooEGkmYpATAVwodL0rgYi5MkGPToRu/dynYJth?= =?iso-8859-1?q?g71KrzpQUURne795TUNtMLrVjEyVbWmgyT4Coq00UmQ8Y6tBe2o8g3mZC2G5?= =?iso-8859-1?q?Wx6B1oY/Bc2nHRHB4YSDshs3wsu0V/zv0YVPzIjY89+KStFb6Y1oTUqg9pwQ?= =?iso-8859-1?q?rZJcQ6jzgljn58nea4m4k7ka5+u+kbhbfP37vuq/NO+Lt9tqsOUaq47MwDao?= =?iso-8859-1?q?h7OlpZCm7NIM+Mv1zcpe2cQZIgkvQf4N2eXUx7IQajPBCwuHw+fSFhDqnvUN?= =?iso-8859-1?q?hpob6cwvgTF4HosNCwd9tqlXJVa7y95VpVyAZrrrCjl9BCzkCpZS97ArsJo0?= =?iso-8859-1?q?QBE0kJOde2f20eaEZ+4LKKrXzqYPpMrHjHw1QOJNjEcOXuV8MXPC7kDkjFSH?= =?iso-8859-1?q?xjXkUsAnbzdtixs6r+UW28flgEbJEM4kNYR8MyGZ4vnI2FwpIr7R0VDYGxAj?= =?iso-8859-1?q?ZzcBnuraDi7Mv+u0TLwo9FqD0/Dg+xRAtfkCqJpktt+aICKus+Fnhn6pSzHe?= =?iso-8859-1?q?tefvHSOdnE0z93cgepfRs5q5UF341zOA96UvAGw+AeyobHSuGJ5+0QYl94Kl?= =?iso-8859-1?q?rYIEY76IbcCknmqSEj12EE97TJRTBJG27CZCSGnNZDdMkqZy6aFm/O+oM1yx?= =?iso-8859-1?q?/5NSeCTihDPxTFnPTrbuBMHnoyzohjY5gxKY/1ZOghS1IGF3RhMlVTsAW5l6?= =?iso-8859-1?q?mO6O+XHVoBNOCNfNTOuNhU2tkk0GCI9XCR/jVJNrkYMv5PzPUd5GRZ/5EtRs?= =?iso-8859-1?q?zTWlchc01NnG2T9CGAYKi69k1W/q8Gs2GJ/6uWDdmTsHOjc7XS5oloxTaE6D?= =?iso-8859-1?q?Uq2deBPWi+aRgTtaeR9gwKKsdW97ks/i6ip8GZB8wVYYevRRl5nsBEBCkyBA?= =?iso-8859-1?q?Bl0yqdYY=3D?= 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: 273430a1-e3c5-45e8-24ae-08da2d6b769f X-MS-Exchange-CrossTenant-originalarrivaltime: 04 May 2022 01:14:05.0011 (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: NIhZtiDcb5XV5tm5EUYFXKWejp56ez0qUzjci+63K8L5aw1uyzIv/HVfjJoW0nqovGHkiBK4An44a2BYKPDhUA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR10MB2688 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.486,18.0.858 definitions=2022-05-03_10:2022-05-02,2022-05-03 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 bulkscore=0 spamscore=0 malwarescore=0 adultscore=0 suspectscore=0 mlxscore=0 mlxlogscore=932 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2205040006 X-Proofpoint-GUID: MiPmH48KvbpPM4Z0rw7N2V7wvtwQbT1O X-Proofpoint-ORIG-GUID: MiPmH48KvbpPM4Z0rw7N2V7wvtwQbT1O X-Rspamd-Queue-Id: 88FA012009B X-Stat-Signature: hqfmjb6uj19kq3hcujjhosonfo1zku5s Authentication-Results: imf29.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2021-07-09 header.b=orjPhy6s; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=qrMhHH2i; dmarc=pass (policy=none) header.from=oracle.com; 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 X-Rspam-User: X-Rspamd-Server: rspam08 X-HE-Tag: 1651652936-362803 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: From: "Liam R. Howlett" Signed-off-by: Liam R. Howlett Acked-by: Vlastimil Babka --- mm/msync.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mm/msync.c b/mm/msync.c index 137d1c104f3e..ac4c9bfea2e7 100644 --- a/mm/msync.c +++ b/mm/msync.c @@ -104,7 +104,7 @@ SYSCALL_DEFINE3(msync, unsigned long, start, size_t, len, int, flags) error = 0; goto out_unlock; } - vma = vma->vm_next; + vma = find_vma(mm, vma->vm_end); } } out_unlock: From patchwork Wed May 4 01:14:05 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 12842110 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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id CF416C433EF for ; Sat, 7 May 2022 18:04:44 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 34FF06B0071; Sat, 7 May 2022 14:04:44 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 300706B0073; Sat, 7 May 2022 14:04:44 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 12BE46B0074; Sat, 7 May 2022 14:04:44 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 033C26B0071 for ; Sat, 7 May 2022 14:04:44 -0400 (EDT) Received: from smtpin07.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay11.hostedemail.com (Postfix) with ESMTP id CECC7806D9 for ; Sat, 7 May 2022 18:04:43 +0000 (UTC) X-FDA: 79439722446.07.416D5E1 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by imf14.hostedemail.com (Postfix) with ESMTP id 34612100009 for ; Sat, 7 May 2022 18:04:41 +0000 (UTC) Received: from pps.filterd (m0246632.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 243KjZ6R013502; Wed, 4 May 2022 01:14:45 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=Psb13NSHR3XJBjyprPpY1a5JdAq76a4SZ3cWVRlHxNQ=; b=Kd/7m7oR7lMmuXd4k5DySIEI5ua+S/nmdXcGSORTQxCE6WnPq7Y63obHq7C4u4ZqjhFO xmErSRjY8CfzrnVRAA/Oaln8IHZrikElbKIEs0wmL6J6/KG8YSDIspeNypBVKv8vnO4V jBzfyuV5OGgTRxdiIgvlnPW6AJUvQPSeQtDkNPYz+p/OdOgFwz/uTAm2t3+bfTToKzpK RX7moRjVutkBum2DOfCitCWBjE8CSbe/zRL/0wnPnEqO2UIpf+VvmesZB+z+gmOYsmWt wmUfa9W7ysPNmEqWo/gIY6nvuSIUGG+hyfR9SX9t6nKmZf2/Zlyt0FWXy7Uk+7GoWdcU XA== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3frvqsf6fm-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:14:45 +0000 Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.16.1.2/8.16.1.2) with SMTP id 2441BJT2001264; Wed, 4 May 2022 01:14:44 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2045.outbound.protection.outlook.com [104.47.66.45]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com with ESMTP id 3fs1a57vyf-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:14:44 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=QCfgECjAQt2LmODS35dFcH365jphjgWK26h86jwWqfQn5tJufMaxyy6hxz5hiUE1n8Erb+GGzwROc8DH2+lXjf+sopgh186se/TURs2MqzVG0YI+3J6yEU3+YlOJe1RkFyr3j6+3a5YvCrtEyTjcrvrdxqn1x85qd05RDbzu1t9DkEo+reAaBV2VwizXMfEhv+d0wrldt8C413Fmb5uJh1RjHWMTB8yadW7beoyoaxuzykY7kMp/KiiMv9GziXZkAfoKoAU6D5NqTBr+YIXCQnU6+IfE0h+oW6M2xeI9PFMw+Ua7F9I7rf8pOHPr3YJB6DXJ75qdSokgZzzpprOu6w== 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=Psb13NSHR3XJBjyprPpY1a5JdAq76a4SZ3cWVRlHxNQ=; b=CEnoqgyvQJnAV0bwPCnF+bVzWGTvu2OoMJRHRK/dyLGdOhzHHiXFteJg/69Lh07L9yu8gcICmAWtJmni7rCnpP7zeDoxlkuGdwHwXNlPX5rVqkuiT+TzAd/+Lnu8UA1iC/abqAdzSU7PS4MzNgkGRfhybk5/8RAAdJGSksE20VnMdIvg/SZHoP3XL1+C1lAMmdXhfLV8rXmOlzyrn63ToAnqOiaFYvKNbGiaGG9VfivWtmOJYYQ9o6JJ44cVxaHn0iUmWoqt/2JPgham6YlXh5yUz8Zhiv0PJ90FJEnLbaCo698vTGCdwOhk70abYGR1gHhkq8oce8pynLLhm+xi7Q== 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=Psb13NSHR3XJBjyprPpY1a5JdAq76a4SZ3cWVRlHxNQ=; b=DARrR8aTiLISYFdMc8wUPexrEztHq4zJnie3d0zROsIkucW3BfB1KHLxZ4zYM8Mchgsbdqg3NMpINbs3/DxHrGeyeJ6X6KJRquV0d1DQVdk7ffTlcJu3R0UQQLRFWrNyPCBtANjEEcM03kFU4zDt07FYMOw8YIckkeAXTNScZn4= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by SN6PR10MB2688.namprd10.prod.outlook.com (2603:10b6:805:4e::31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5206.13; Wed, 4 May 2022 01:14:40 +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.5206.024; Wed, 4 May 2022 01:14:40 +0000 From: Liam Howlett To: "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton Subject: [PATCH v9 61/69] mm/oom_kill: use maple tree iterators instead of vma linked list Thread-Topic: [PATCH v9 61/69] mm/oom_kill: use maple tree iterators instead of vma linked list Thread-Index: AQHYX1Q/fkFTmB4MzEeZpNqQbDFgHg== Date: Wed, 4 May 2022 01:14:05 +0000 Message-ID: <20220504011345.662299-46-Liam.Howlett@oracle.com> References: <20220504002554.654642-1-Liam.Howlett@oracle.com> <20220504011345.662299-1-Liam.Howlett@oracle.com> In-Reply-To: <20220504011345.662299-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: 97959f6d-b8fd-48ef-0e4a-08da2d6b76ca x-ms-traffictypediagnostic: SN6PR10MB2688:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: Z4BepKKPJUMAGNLCXwQ3TU9bqw+ksvS+bE+BcdBf4bKoNOujCXMIH9jkJZLgQKge7tOUx7dmwiAFem9lkN8jl/18taEwJ5CNGnkENMNZOb5Q0dgurU6lGgACcPAHS58NbzVem32lfKqt9drRIcTSnLlGMMiuYmT9xnUZZku6gGNr2rtJSupnDtxkzKXBwdgWvB37HT7rXs9yRnjHpf54Nubxles/ObXJCpIWGWps1+q+H3994GhKBm5Ckhz0Xltz2mTwHG8fRLnjoiIAXkdYgRi+tsb+QMMdBid46j+68S5HzVP5FYxNL38+Kr2ib3HYZuSo0ckGcdFdLqK2IO1dipqqa7PmoIPpkwblUju3qPY9rUwCG6VRBfYe9iFQQuneg+E+tGtVauRRxi3fYsK+ZHAXqkOSmlUNqGjkMqYjUM37XImpc+7fG7SjvNoA1iM6+SMnJI3CxofG8x1XQK6JHncVJqe5imIU0onrvehWpGdcqjYOMJOT8e5qfiJkDMtNEEC4uNq7FY+RdKF65GW/RNXQkYjE3caVBb+vWlMskCvAbt2qPgz3e81D0NYY3K8cioksF6AGs1vcQ3wMutGAKWXRE4+6gbY1vGqOXx9KFphIMKs6ToKbdxZ6eQlT8d2HtlFNEXqZiUSRfCHz6sLTPLGZISK6saF5dTRf2emu8I7fF/vpulU5Te7gmDZ/ZxZ8gpNf4Ece5tP7uMSh7R+07g== 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)(186003)(122000001)(1076003)(2616005)(66476007)(8676002)(66446008)(64756008)(38070700005)(36756003)(316002)(38100700002)(66556008)(66946007)(76116006)(91956017)(110136005)(26005)(6512007)(71200400001)(8936002)(6666004)(6506007)(2906002)(4744005)(86362001)(5660300002)(6486002)(508600001)(83380400001)(44832011);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?BQOIpa1pYn0r4pkwbek1Ovw?= =?iso-8859-1?q?K3VsgF0o7CW8//PqWd4Kswt0ghCWtGQcfF1yleTdkflUAWkVIga+ObCHORy0?= =?iso-8859-1?q?M5ad6pOCrAzEjW907Ub9sBRXxyTmSmwMYYrU9bC+Yz6REOnKAbeFAm63bFX8?= =?iso-8859-1?q?HCIrNZEj/kFJrpDlI4Mk5W2RKFeSk3R2Ccb00iiNu2UwfagfqQfMtlojXv5t?= =?iso-8859-1?q?toiq9fBy0NoDskMx80RY+e2m5yArlwr30pkxBzp3nV898lFy99GdsioZAIWa?= =?iso-8859-1?q?v3O/fQy+2sv49MOiCXeXGoE+2jo3nBzVbujUhwFuBM7QtAp9WwC78s4+Ukq6?= =?iso-8859-1?q?grkxgURdwcp5TCBNUWPXZVBJ971EEAmDRlQ7moUhSmcmzkcxCSnMD/bEJ+n0?= =?iso-8859-1?q?NqdqR6YYgZXNMPx/W+ILk8kiMaQgjIuz+mx06cB1yelsmNqW/w0e9ZD9qK0c?= =?iso-8859-1?q?OyLonBlI2xXlVvHjOvpiaY2Edl1FKojIlDpuk+r5kXdTmY25I8BJK9ed6sB+?= =?iso-8859-1?q?mDWvZz+ITTVfAxiAspihnS5O2t1rUrU3slvxm0TX7lEWrlYM+vxcjPjxW/BW?= =?iso-8859-1?q?BdbISOMw3IKM3gMR3ORN6UPpTC5wxR0IxW/b5Ua0kwYKMflOY8HMQu48334U?= =?iso-8859-1?q?pz4HxBvRITqKIsswQ7tIoolHZ7i7j1Vo015zxITZRinfPcrSDE0/lRuW5+HV?= =?iso-8859-1?q?x3c6m8oA4cCB1wdNFRBmFUnGDokygD1sDL1HK/VKmAGWIk+Ss9z7DcO2XZNQ?= =?iso-8859-1?q?z9ktGkr0qWxeJG9gYrZ6Kf1T6dBsiplSliHW/+s0yDDUkVUSx4K9AjJN2zdQ?= =?iso-8859-1?q?2IE1xZiNQ+iYzw0V7ZiuFglNVhX/kejJOsj8oH9D9oZdI84nYSNUJiUoYcWg?= =?iso-8859-1?q?ALm8UiUlL/cpW/ED8nmygsFGgce4IJaLZVYV60d9VfRTDDTDlqLQA33LHI9X?= =?iso-8859-1?q?07MRc7PufA2WRKs9kTS4EPesh02XW3sut/bqNKToX9xY417TXfo2AkDSTPhP?= =?iso-8859-1?q?ymnNaCwxCU9SFPntmHOB0A0gbv/6YphYelocAjktXlW6a3wA/K/z3B/NqATI?= =?iso-8859-1?q?eYaztsj5R5dhTYXcE6uNeb8Rcp2+HkH3XiUx+rwN7ev21RDwzCXuGKViPHMM?= =?iso-8859-1?q?6zA+3vE0M/arJxjJuhu4ioVfniHVw3GAFg0tKA4+w2JKX7FTK22UDIZTHRjw?= =?iso-8859-1?q?lMpAjfLrms4UDC/ULNI0lDRNtla5rK/qciro46+T/ffCT4ZRvk540VF/mGwL?= =?iso-8859-1?q?DOhVZXBKSu873q0BVtvGz5e4VfPe4Z13WDfhnrO//AmF3g3PHDq6T7KfuwcV?= =?iso-8859-1?q?kDr3lMYY7CUBm77/MWpZEBIsxKtgz5q6ZwSubQe3N4bd8eVGcZakkKByZYCl?= =?iso-8859-1?q?Dc9GuMN4fiMnAmm+7zskET2GsB5zBC7565liUpAQVF6kedF9pPmqrphbV5cP?= =?iso-8859-1?q?dOjwEFG+66NhPAuGU/gbrO1Fhyt/lRNi9uenSPVV+R7K5MRFFReDBowat9JG?= =?iso-8859-1?q?HFvvZFMHpDXZAspKxXbiuXhPRo442/f/qOZtoI+n7dBhtaXhTLk59qTKA3m3?= =?iso-8859-1?q?EjBFSmfszqiCCMpy5gTceyuyzX963p1QpPrnferrTLpB6CJYLESvPU825KqC?= =?iso-8859-1?q?qAElyI+BfGfKaWk/oQePXWcvbzr0HR+ar9Ge/N7pyaU+8eXCR/PFi5zVO3Mi?= =?iso-8859-1?q?JuNaxTGJrFfNfJYHzjGQOSuqcUGtZkXjTtRvZvvashpeeZD5WMthqMRLVQnm?= =?iso-8859-1?q?HtC5St0JpTrolOmokW+1c9AJ+JIcKPrLcA+1KT9r1OyMDxz71PuxpWVXKQAu?= =?iso-8859-1?q?3V43bosU=3D?= 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: 97959f6d-b8fd-48ef-0e4a-08da2d6b76ca X-MS-Exchange-CrossTenant-originalarrivaltime: 04 May 2022 01:14:05.3917 (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: 0vPH2V4AUIslObJcAVsYWZxypSvDtMULUNHx3BAhQi2R0jILk+6NQV1q838L928V7HGcbpZx503/4mj29JWTew== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR10MB2688 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.486,18.0.858 definitions=2022-05-03_10:2022-05-02,2022-05-03 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 bulkscore=0 malwarescore=0 spamscore=0 mlxlogscore=999 mlxscore=0 suspectscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2205040006 X-Proofpoint-GUID: pttukGNMKE0x0yzp5wwQ7wJl90a99DNi X-Proofpoint-ORIG-GUID: pttukGNMKE0x0yzp5wwQ7wJl90a99DNi X-Rspamd-Queue-Id: 34612100009 X-Stat-Signature: 1uj4uty3qcjwin6rw1bjt3ysiokq4hm3 Authentication-Results: imf14.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2021-07-09 header.b="Kd/7m7oR"; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=DARrR8aT; dmarc=pass (policy=none) header.from=oracle.com; spf=none (imf14.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-Rspam-User: X-Rspamd-Server: rspam08 X-HE-Tag: 1651946681-930141 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: From: "Liam R. Howlett" Signed-off-by: Liam R. Howlett Acked-by: Vlastimil Babka --- mm/oom_kill.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mm/oom_kill.c b/mm/oom_kill.c index 49d7df39b02d..f3adad57f47f 100644 --- a/mm/oom_kill.c +++ b/mm/oom_kill.c @@ -513,6 +513,7 @@ bool __oom_reap_task_mm(struct mm_struct *mm) { struct vm_area_struct *vma; bool ret = true; + VMA_ITERATOR(vmi, mm, 0); /* * Tell all users of get_user/copy_from_user etc... that the content @@ -522,7 +523,7 @@ bool __oom_reap_task_mm(struct mm_struct *mm) */ set_bit(MMF_UNSTABLE, &mm->flags); - for (vma = mm->mmap ; vma; vma = vma->vm_next) { + for_each_vma(vmi, vma) { if (vma->vm_flags & (VM_HUGETLB|VM_PFNMAP)) continue; From patchwork Wed May 4 01:14:05 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 12839635 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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id EB195C433EF for ; Thu, 5 May 2022 14:12:06 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 4CB246B0071; Thu, 5 May 2022 10:12:06 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 477F76B0073; Thu, 5 May 2022 10:12:06 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 2A5836B0074; Thu, 5 May 2022 10:12:06 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 1486F6B0071 for ; Thu, 5 May 2022 10:12:06 -0400 (EDT) Received: from smtpin19.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id DC28E20FFE for ; Thu, 5 May 2022 14:12:05 +0000 (UTC) X-FDA: 79431878610.19.2C0D16A Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by imf14.hostedemail.com (Postfix) with ESMTP id A68EC10008D for ; Thu, 5 May 2022 14:12:03 +0000 (UTC) Received: from pps.filterd (m0246632.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 243KbxhK013665; Wed, 4 May 2022 01:14:45 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=oKIxAaGaKnywQod4vZUAAWKuSFE1MP+cvJDK2c9ropg=; b=YC6dmHuyoIui8FUHI0NhJMv7G44UAllgXxHii9rXYWhKkeRk43Wjitd2jCD21SJqxvPC hk0+X/qX388BqbgvvOYvTZbU1X1pZ1oDb6Cblxbhhp1mvzPAiVZ6SLsUYGloV+k6y+Hw fk+ElM9s4TGphln5xLdGjXx0n4ab9+ZhAAJb2ZAOO9gzdycp+/7gjfM16yhzlq1zCDxl KD/l+bpqGLBbQKuJbdDEZ3byDHAT1C7w4ee2p6n5cREQZSOnfWQtbYVRpPaF4eq5MsGN 51wJY3qDXrJrePvL21uTBILju3xxwxt95rsNObIPcUJZU3nwwTCfkGNoSAcixuSPMq9d Qg== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3frvqsf6fn-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:14:44 +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 2441BXR5013207; Wed, 4 May 2022 01:14:44 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2049.outbound.protection.outlook.com [104.47.66.49]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com with ESMTP id 3fsvbmv41r-10 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:14:44 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=FO9j2LXKzLLVeeC4oLcf+dcjjqC9gAG3YTji0kaCDGEnHdSCUxSlbFRqo/7I0cbASb+c+Tv6LHSfbEB+HjtRhNGRFn3yFQPaEZXjaXbS88YjQo167OmRhk4NEkF3lPHGWdvs5tgbORVdgDE4a0DKnQS8Dit5/jt0zJRQLGgb9F3n6gbuz4AtR4adr0cu+g7OIDE0SoCaLEid9IaAo2pnBeoHarNsEwGAX6WbNNGUvpi9IXpJHqydnv4EOU/gG3UhEzMhgnS23EXxOwvaQFYeVrof6z4s17CRoE8q1WBstNBruyodGYrLQp9IUb/zcFYYWcaX98vf/OOHX9Ck1lTXNg== 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=oKIxAaGaKnywQod4vZUAAWKuSFE1MP+cvJDK2c9ropg=; b=jb67Qz6raKaSPYDBLQnIlhQIcxcD9rsfXFvaT244jUodw2KqeW/znKJ5P0Ti9faDTfBdvviKg8iBQiTzCJmw4uvy1UM+d/WhTygTk7v8KnHchMJ/v1KvlwdvUiKb72zPzBgFLYzxKXmfOs1MB+ZeJB0qCM3+nwWyGsO9qyaw2hJSGYtCp7umE2XNREPclvEawO2ngYdf8iMcqS3vGbD+9Cd8EBfdYaqzJU8QlO19thOeEEqWWuP/Iyyiric3lz+jnzGWvLu6qBusDR9oK/Youat3iAZq7VXa4WZqGkWsv2jMUMtGrPHzxVSnqKvDBM9EIJNVSQSdYToqT0RzXIpNiQ== 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=oKIxAaGaKnywQod4vZUAAWKuSFE1MP+cvJDK2c9ropg=; b=LEdVrK0VRFCzdHIAoQL07h0o2MM83dTm80uyrcsymHKfwEWUjxJhtD3ehqTDQHY0D0wipbdjiI5OoqbM890iFpE3Tm8PprnxL9Ajiznsk8UusUc7cV9hX0uDx8OoczNrx81S+3/4oamyS8DTLNtR5b01FbYoRoESG2KOFkGU2hI= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by SN6PR10MB2688.namprd10.prod.outlook.com (2603:10b6:805:4e::31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5206.13; Wed, 4 May 2022 01:14:40 +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.5206.024; Wed, 4 May 2022 01:14:40 +0000 From: Liam Howlett To: "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton Subject: [PATCH v9 62/69] mm/pagewalk: use vma_find() instead of vma linked list Thread-Topic: [PATCH v9 62/69] mm/pagewalk: use vma_find() instead of vma linked list Thread-Index: AQHYX1Q/SJO7rpg9QUi7NTxYRXPxXg== Date: Wed, 4 May 2022 01:14:05 +0000 Message-ID: <20220504011345.662299-47-Liam.Howlett@oracle.com> References: <20220504002554.654642-1-Liam.Howlett@oracle.com> <20220504011345.662299-1-Liam.Howlett@oracle.com> In-Reply-To: <20220504011345.662299-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: 5cd1eb58-daed-4221-f7e2-08da2d6b76f4 x-ms-traffictypediagnostic: SN6PR10MB2688:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: miYt+0rN9MAm7REGR3ba0kMOeN99nQ+36ZjLGlFDtqtM6eCc57/DklpLqcYEfUhKmfty1tShrEGayoJ6d2c7lChFEh5LaUV3zNmsNcbKm143TVnJnE3kvC0Tqj1HdpVRyoS1HypIoEdjzi16u9qf2YHCZCPK2umIZvZNaipfbaqSBP7GbbPC3srD5Inz/vry5le2V9UZSYQS8VhXfvPJqxJLJ/DM1gM7gVmvxjTh9+jfxWJrCixNMB/eLU5tLApweaVRI2U0SnDr+CJy7JBeGUwBzQt0C40vvYQggjJLEyCxLcAz0iSMnsg4N9C9xSMnHP9ubfWqcBhAVDOBtFMfd0mT/2qN99xyUQ3ITU1mCoRoHpxBu1UwYosqKx4nyPKLA1RpglhYsstzT/hjedG8Uu6IpZC7E1Y0aXvUUKXdE6WUEeh89dHl8q6V64+d64xc2CdlWGIiIsHFATAi4QJuPTAqvP28Ye081OQ6yxeJpCVTr0b8S4+U5FQ5SnDTw2mAJ21czL+Hnze3pRb5HyRqDEreVhTl0je8mVFSWh/BGrLSTXR2Jw5ZLenyNRPlJBTd2p/m5Pa3yMrOiLPNtO4Gd4GI7jpCx5+eFgMGN2jiNkroZzxRqtv9V6WkGmpWdYL+vMjJbF8fHZTvs6xcNxdPDMH1A7u8Vk466oulBZ986G7oju0Hec33Aai7W3SPkcnWwfQ9ELK+NHXpfoiXlTRGIw== 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)(186003)(122000001)(1076003)(2616005)(66476007)(8676002)(66446008)(64756008)(38070700005)(36756003)(316002)(38100700002)(66556008)(66946007)(76116006)(91956017)(110136005)(26005)(6512007)(71200400001)(8936002)(6666004)(6506007)(2906002)(4744005)(86362001)(5660300002)(6486002)(508600001)(83380400001)(44832011);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?i6No9725Q7kI1vKAhCgkkjQ?= =?iso-8859-1?q?ERyQ2afwoQZcojZFbHpGzWxGnQ1eWYIqRkmhwBOJ9zy9sLytrgUJShZUMZ+o?= =?iso-8859-1?q?uE42X9feZBXfDXTnxC4cszxPHh3d1Xzq2AATQ+w4R8+SPFFngTA/raHy+sfU?= =?iso-8859-1?q?dtpY7Inh9Xh/iJ8jW6DM0Zg4C2XzKg/+CChuZJmQizK15qjLNc3XmWYaEMIt?= =?iso-8859-1?q?Uj3CPeSHYnMsaapg6BUYPdRLHZBlUP9OS23IS7fPc6+4JC2lbnrwZ6a3Sty4?= =?iso-8859-1?q?a4uH4aD2O+wBLu97EltQPjY2iv+tT3xV8sENtMOlhEbZroVyB/cO8+QTRN0t?= =?iso-8859-1?q?2n+y8nmYwvKHh/z9JDUJUD8ewJDUiy0uvQ3zVO29e0CNUMFySG7GY3Kaf/1R?= =?iso-8859-1?q?ycLETdBy88aG2Zuiw109JSkAif3/W3Geh278ViX9T7CqmdLiew08gwQT1VZc?= =?iso-8859-1?q?O0BBRmC9n2K9iexVNkCjT8bJx5HIDN6tas/gL89QLI2RqGvLeMPgricnS+I+?= =?iso-8859-1?q?EA/rAnTEyu7ccL8niGdEdn0C8W9Dri32atm5IUzZpyjPREvyWsybDpxQ/OFU?= =?iso-8859-1?q?3hxiFF/tFQvUBtrvDdEj4t2ynCUhzmdGwm8VmxLWIjvTwQlpC/MxAuKddKti?= =?iso-8859-1?q?j8+JDLy5qfBHQBsHUhJxc246AFFvfeq11g5oTgeRUsH6e5eGrG5Pvi/sOZ36?= =?iso-8859-1?q?/9jwkjT7Mrjo+J5ulh7YemykuiLoF6ozyHv72DzWWYsQe4EXxtlsl6i86Qe+?= =?iso-8859-1?q?tKXcEje3kJuGz7qWHpzswhNwltJPNE6FKv1OXbzNg+5Ltg7m3Uvn2q26xpy1?= =?iso-8859-1?q?J4cXD3k8GFrxvrvJlGN5xofacTYIeI7bJM+LBYThCxeGViMmNnaEIHkF8tTm?= =?iso-8859-1?q?Nhl4Gz63JUGAT7cREOeM08bzWqiqOMLU6qLjhAEDSVW+vZN9mPHzAa4iNBJN?= =?iso-8859-1?q?4Of8PW8J2e+b/+cszzo84gbP30Ckxo89yQK5g05uoAmUTJLdfxNxTotIYzYi?= =?iso-8859-1?q?mLiYnTTd/EW9MP318kGBsvOzBLCyH1kG6SjE4iY8T7b5nBjma9cVDxj00HjT?= =?iso-8859-1?q?J9GF4oe7YnPtHkDrYBUSHD410RwJUc/MldaNS+EZJj/6x7mQeRmIBVKBOxF0?= =?iso-8859-1?q?aGYA6zLA4dfD44SqcXB+x7olqy1qdioDjvUHEl0W6syPcyd7bfzGABsDDRYP?= =?iso-8859-1?q?cAtIIkCslwk6nQPxwkP6xVnoOYoAoVWkBdeUSoe6VDOEgPFyuhrGMcJvtw91?= =?iso-8859-1?q?hDqbaNupqnpsbVW7HSIn0KRep2o0GLrH7OdT31lqgmMA8yCo4UJo2DVckg4j?= =?iso-8859-1?q?oN1NCJAksy90dMg6xVlepJ1snmSgWNnOXnoR2hYGaJMXaGlvV5cgjoNjo1G9?= =?iso-8859-1?q?rSrvUXbjWMlQph/4U/ZK+y8mM/jvGBVyFxUWkv9WCpbfDkPJB5vLUZvJkKh5?= =?iso-8859-1?q?oAo4fmdqLF9DQOX2oNXDVeOQ8Gbbzk6sDYmPx3Wy+wgD7JsWgjK4FuCG+pSA?= =?iso-8859-1?q?sDpisUjqQae7tomtCBIl+ef5PsXERYuqPEdx41fo/0hH/wP+vhMABIQhenme?= =?iso-8859-1?q?tFNMbDFmgJNcLRfCxgB8TR5TdPyX+ggXjORvrbodF6r2534qSDpyVGGpyhxb?= =?iso-8859-1?q?bQKzxnUtbxusUpdpaYZ6MYf0bgFNuR9B3RFVIUckDuaAceiEP8ER88FuBXjX?= =?iso-8859-1?q?KjWg9diQ/wjc4Mz9ThJAe2Lxbp9ZON2gVs4Oh33cE7pJYc3XEAHW1HJd8Iki?= =?iso-8859-1?q?IZoAWB7bVvCe2lbr+sDZz2i81MokeW5x5jw75Wp+n796H4V83u14bkFtmMlL?= =?iso-8859-1?q?FjN4qt1w=3D?= 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: 5cd1eb58-daed-4221-f7e2-08da2d6b76f4 X-MS-Exchange-CrossTenant-originalarrivaltime: 04 May 2022 01:14:05.6417 (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: BpaAWascy9Ts5Ah05fu86UbW3bHNEaQSQQrS2KtL/FvxoIajNSZNgLvxn30XZllsYjDWeVErwJ5Xdl5pYayQxA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR10MB2688 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.486,18.0.858 definitions=2022-05-03_10:2022-05-02,2022-05-03 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 bulkscore=0 spamscore=0 malwarescore=0 adultscore=0 suspectscore=0 mlxscore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2205040006 X-Proofpoint-GUID: EJlrWDK5HvYwhGhk6f2sZ2EkjzXmP4Sa X-Proofpoint-ORIG-GUID: EJlrWDK5HvYwhGhk6f2sZ2EkjzXmP4Sa X-Rspamd-Server: rspam02 X-Rspamd-Queue-Id: A68EC10008D X-Stat-Signature: knjeeeybo5z93g5r441zy58oc8fbhqm6 X-Rspam-User: Authentication-Results: imf14.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2021-07-09 header.b=YC6dmHuy; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=LEdVrK0V; spf=none (imf14.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-HE-Tag: 1651759923-674714 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: From: "Matthew Wilcox (Oracle)" walk_page_range() no longer uses the one vma linked list reference. Signed-off-by: Matthew Wilcox (Oracle) Signed-off-by: Liam R. Howlett Acked-by: Vlastimil Babka --- mm/pagewalk.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mm/pagewalk.c b/mm/pagewalk.c index 9b3db11a4d1d..53e5c145fcce 100644 --- a/mm/pagewalk.c +++ b/mm/pagewalk.c @@ -456,7 +456,7 @@ int walk_page_range(struct mm_struct *mm, unsigned long start, } else { /* inside vma */ walk.vma = vma; next = min(end, vma->vm_end); - vma = vma->vm_next; + vma = find_vma(mm, vma->vm_end); err = walk_page_test(start, next, &walk); if (err > 0) { From patchwork Wed May 4 01:14:06 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 12836653 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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0C720C433EF for ; Wed, 4 May 2022 01:14:50 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 035D08D0014; Tue, 3 May 2022 21:14:48 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id DC3088D0012; Tue, 3 May 2022 21:14:47 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 7CAE68D0001; Tue, 3 May 2022 21:14:47 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 696FF6B0078 for ; Tue, 3 May 2022 21:14:47 -0400 (EDT) Received: from smtpin21.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay11.hostedemail.com (Postfix) with ESMTP id 4CDB380315 for ; Wed, 4 May 2022 01:14:47 +0000 (UTC) X-FDA: 79426291014.21.26B17FB Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by imf23.hostedemail.com (Postfix) with ESMTP id 46114140080 for ; Wed, 4 May 2022 01:14:37 +0000 (UTC) Received: from pps.filterd (m0246630.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 243LZnIX026110; Wed, 4 May 2022 01:14:46 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=EWIK6qKWZ/V6EYNw6fkVsSYlcgbvaQmiyWRAPDMZk/U=; b=XrLCDKqiUeZgzHzM8JIaf4gkv+rqUDd71qHcjAOovAvbcFrCI5+8ePtkdR5NoIGtsGnU 6iu5IFR+Kbkh6MuoFij1NO3+95gcGuxzoHlvINIB4Aedl+YL34UM/Z/IUkMjp+gYC2fs KfpVVQjQ7FaGH2upiTF/oNYgWJiv2PSFU4gz5rXe/4/0ZFR38CIgsAIkPyaAAx8BGunP lwqErUMqAUg028xxnThV3LhfSTTg0kde0dLf84AecotPCfh8JFbRFB5HsUtm7eTICUhy 7jZLQ68WiaKlptevXVMlk2f25uZYGD6JoZSXPz4hMlpmxHF12bAkp2Y3XMSeTx8z6lNt Zw== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3fruhc72qh-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:14:45 +0000 Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.16.1.2/8.16.1.2) with SMTP id 2441BJT3001264; Wed, 4 May 2022 01:14:44 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2045.outbound.protection.outlook.com [104.47.66.45]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com with ESMTP id 3fs1a57vyf-3 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:14:44 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=KtS8BGIAYQgdWiagZXNIPNelNYbyGZlALarzd44/Vx/JuixASXWYZlmC1An+3yR6iP0nn2Q4/ddVtKsEIRrgDDVht6AeVpcDUIypdj4XWdoiUjzCTmt50GXt9hazFsdTKdJUm0ufGte1AHf/STDY2ar2uGk0dFOqYERWSVM/LS+FhJmyRR5GptU0s0PqixCR92wuYbszy8ITsQ1pMSEA4KrwpznzYALC5j8B0e7ypcLzUaCWD5PDxDVkfB3lExHHmSnCCGKjaU8zp4YYdzzYeG1Qa8WsWiDfHFUUbWgDRv6gt0aVsE8h6dF+V33X6KLRjtYwv4voTVUz2pQOttSHXQ== 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=EWIK6qKWZ/V6EYNw6fkVsSYlcgbvaQmiyWRAPDMZk/U=; b=E7nKH+CRGg8K8yJH7/0IM9ziJ8czScFEfOkEwi3qfLWYDtjjCKcBn2Wvg+6n1mZxVOAVprpawAfup2pRIPeMlTyOXyee/3cf7XEM+NpG/9xfASQ0k0khP9C5Vg1xXd3AWQVeRWpOk/+Tv3oMXtiSw4CStgdQOaPH3WUvNo0VGy3ePbXaMBCzvZsZyS7XNJM5PLbJLpcqD6cscseGIizY369vD0WMb2jRgKmm4PhoJ09HYvy4ZQlBQPID54FyoFo/5z1UPi5388Jop157mWE0UzAxJM1+qapDgFlX3eF5xzMUmsOv/ZxUSQD+pkf3oX/qLGy9BrEXsqzzj8oWuGk++g== 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=EWIK6qKWZ/V6EYNw6fkVsSYlcgbvaQmiyWRAPDMZk/U=; b=WwHC/CCzF04I/Kf3eng+l61uT9S2aR4ktTiOsuVN9CU7/fi9vr/8LNW5vOHO2qtHne6U45DMsJ03mLnAiRSz181TYAmcipOcukpc53GVrn84N5Y54IU0+L1OJ+H2TcUm5zRXl8+6htzl5yv631wl8Gj7x3JUyxa+Mkyy45nqSkA= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by SN6PR10MB2688.namprd10.prod.outlook.com (2603:10b6:805:4e::31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5206.13; Wed, 4 May 2022 01:14:41 +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.5206.024; Wed, 4 May 2022 01:14:41 +0000 From: Liam Howlett To: "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton Subject: [PATCH v9 63/69] mm/swapfile: use vma iterator instead of vma linked list Thread-Topic: [PATCH v9 63/69] mm/swapfile: use vma iterator instead of vma linked list Thread-Index: AQHYX1Q/SIUkFqetw0WOmT9h3DTsfg== Date: Wed, 4 May 2022 01:14:06 +0000 Message-ID: <20220504011345.662299-48-Liam.Howlett@oracle.com> References: <20220504002554.654642-1-Liam.Howlett@oracle.com> <20220504011345.662299-1-Liam.Howlett@oracle.com> In-Reply-To: <20220504011345.662299-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: c990b925-ca9b-4455-564b-08da2d6b7735 x-ms-traffictypediagnostic: SN6PR10MB2688:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: m2bCYeAIXufJiqIC+rtxbheRlJGPXqgqsuuKyEEKk9+UM2wuvuhpZF9aud992layFVbCESW4csU4Jb3ZcPcbk5lQNgYKrMZYJomME4A4mfYBTcF32FJgNmeC9uP4pdQ3KXnOD1lrH0eFXHeKp7zrgQOP3ka3iCQwY5TnF7raHhS7Z6reuCoMRwWQ5wLslcPHMPi0eUyJABs6s3LyvjcnxdPeRYrAWPpDdIJkjXq1POz1rFOAyeQzH+wqEKNLiAjbAklWIYj/RYGEDPSYOVV9zcKA49Ycb8f91DN201zXig7Rl3BJONNrIi3HU+SE0s9aG+lYsKiwdUoHRH2hl2RkbwahSZC0QtidXOToJ/pqPEt+AQ6O22rrZJs1J0Fae6DFBJGH3qQI6qlnLdJV9TH77csxYXb3BnE4yubZghYHWcB6CB8Iq3gdZt4z1kVfJOJfUF3xhz1JyIcKqdmB7RYoi9t1ZBztL37SUcABXwzo1/eoqTmAo7kQblzvlaGwpSAWo0WYJtMhMGKK2nK2tK7UXmjo7MktRJYfaerxXwGxGSXTa2JvFWly+w9SoRHCIZfHcYOMQUyxsmgc3aqL6PzfFUw91zg88GHWbfdyE+WKJZSFS0bUCSMQiaW8Oi34jWFHVFqQMHkle/9CHNrzDhx86vX7y0Q3KZQqLQcD9X8AmNT+Plw1HXCayVQbjOAezB86/dRlDXf6nn/ckBDXJ95lgg== 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)(186003)(122000001)(1076003)(2616005)(66476007)(8676002)(66446008)(64756008)(38070700005)(36756003)(316002)(38100700002)(66556008)(66946007)(76116006)(91956017)(110136005)(26005)(6512007)(71200400001)(8936002)(6666004)(6506007)(2906002)(4744005)(86362001)(5660300002)(6486002)(508600001)(83380400001)(44832011);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?F60WsdMr2drJrkyhqjpnB/N?= =?iso-8859-1?q?lBKJrUMAFBQZ9fU+uj5HvpaS198b4bctnZFnu3U7Xbo8vDkVxpCkgHmxdrNK?= =?iso-8859-1?q?bCAPSot8p+vlBlVMs4g1aHK39YB5tnhsSRxpyXlqUI7zMPtATHd9mSHHgTci?= =?iso-8859-1?q?ejoy5mp3CrHsIjr2qjudZ+WM1+gYNgM76/23614xEEy93XXP9nNcTe7zjXA6?= =?iso-8859-1?q?ZM6rxKPEzNsgI+ZepE14fYV9Rxp2RCFjxhSQyHK4qhxTYPeGR2P/1XMGW+Go?= =?iso-8859-1?q?MzYsSeol9DQ+GQ7263xlfZyWGQuxsRbQXJ2G2HaSWliDZ0a11tgtkUDfFtAT?= =?iso-8859-1?q?dP4qHnq1lERAYrOKHhF54i0jwzVh5ahbjbfipkf2zfzxtptb3HyHUIV3kDS3?= =?iso-8859-1?q?KokFwyG/UaAr9KSvtZVpgm/t/Edi04E/yrM7ig8CsGxi7AGh1zIYeKS/uOcB?= =?iso-8859-1?q?Nv160QhW3Es3N0Hb8p7MEUNtJuiUf+ryKoSnCRLwBSfzxcU4zpUMZL99b+17?= =?iso-8859-1?q?BjQQSiLdKZxiYfFrk8bR+hFFvCQpHZ0deAukyS8OE9K3iXbamlYRqbmpOBf6?= =?iso-8859-1?q?kwCNvUtYcp6HgvnmNmlLsH1gv3R+ezhNQ6/qf7fzVSoZsg6HjvQYv1m5/xDb?= =?iso-8859-1?q?zqKKHdFf61ffNPZBXtn1npNBtFom2HtMv7D/bVz1EwJfG/5nbNXsaPnGVT7A?= =?iso-8859-1?q?dmB540UcRPLDDiWEls54C8jLuDGd8y/oHLWuDLnvS5UWL5jxc2jW9sqogPBf?= =?iso-8859-1?q?nxIU1+NJ1FEfr8Bo7sw++pFnaCEHwiyvGkh1fBlQhLhwaveFntJqpTmZNb29?= =?iso-8859-1?q?YODjldQwYtV9JP0MNJS82747e9bA/XoHFdNxIEaSAX550de9f+2x670u35he?= =?iso-8859-1?q?wxcxYoTMoIUPFYeCqGDiUjKWFVq6SZk2hoharJEw9E5t3mifvFSEAUYBDf3A?= =?iso-8859-1?q?Tyv++m3Ies/jPAH2/KlL1tX9gksyAIKrfXOQrwDHAZAt+J4N9CQPeP+um5km?= =?iso-8859-1?q?V99XlIM/g5AJb9EVR8lRN068ZB2kqa/DOtWTU/r8o0lt/uIyQeEuBRYHyqgt?= =?iso-8859-1?q?ylGd1WdNthQYTMYUZhxbZLz/Lr9T1vUXtLgkKu3eBvjWHCHELsHGLKgXknwJ?= =?iso-8859-1?q?pVSqHn8y+EVaKm+z/9BgapqKv1Oc6HhfNNvVaQNCkc0hLg6d+0XZYPMsm2UV?= =?iso-8859-1?q?fN4rwG9UnuVyI2lDOQ9IWydPpRpuuF31bK0dJV+RkOv49KauftK5TRYUhRMx?= =?iso-8859-1?q?0pKByQHGYoQ1PRdEz821tvMByFJ1jNyDkfOUHIBfRBI93V8lk9fx3Y9ttv6/?= =?iso-8859-1?q?G3iwUrGjBn5HLv558W7NECYhujyQiwgNZWQAmTYqCKGRto2e4xZCLTuwu7r0?= =?iso-8859-1?q?psRAjtrV0Iuvha780mJDrfqhLWuGAK7IZJ7g23/GUhuyqI7kkwXPEYInUkpa?= =?iso-8859-1?q?55uN/hEIGBYDl9/kiOd/AXlZIZt4qmaX0w0l8bsOa291oJPZqkuIqF/CGhXj?= =?iso-8859-1?q?+WuglqIiVHAVKKGnMY7lXxAS/RXHUVpzp+mxKJj5n+v4Y32N+IltxrQ2m4Bz?= =?iso-8859-1?q?Kup0/+Kv1AF1XrEEhFzWFTUUg3CG2sg0Qo6jHd2rQJDmfJ6xndltDBGNHvV9?= =?iso-8859-1?q?4ZTyNoYRkcvDGH6ivjgQaCmDVdjZnEwkmFV581cZ1sKpczg4h3qQUWXeF2AS?= =?iso-8859-1?q?CjSmP0wGWFBNyBTnxiwPf5LzISQAh7+zuin4u7QUuMKL1/JDAyEEEqx/x8uQ?= =?iso-8859-1?q?s67czTXeU1J5I53WZtjC7oEYY/Br7gRITGZfgTWLuyAjhl16ebGCluGx5y/i?= =?iso-8859-1?q?jU5eKYxo=3D?= 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: c990b925-ca9b-4455-564b-08da2d6b7735 X-MS-Exchange-CrossTenant-originalarrivaltime: 04 May 2022 01:14:06.0167 (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: F6fRuOs9R1V8KMLJJLl4USbGLYYLezJrBJzo+K4hOuriBw85uB4n9V0W/f8pHHHalQzgasw6bRQR4AYLUdbP5Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR10MB2688 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.486,18.0.858 definitions=2022-05-03_10:2022-05-02,2022-05-03 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 bulkscore=0 malwarescore=0 spamscore=0 mlxlogscore=999 mlxscore=0 suspectscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2205040006 X-Proofpoint-GUID: ozjFOBPwKIoTZ3uepPWKFyE0lA7-y_l2 X-Proofpoint-ORIG-GUID: ozjFOBPwKIoTZ3uepPWKFyE0lA7-y_l2 X-Rspamd-Server: rspam03 X-Rspamd-Queue-Id: 46114140080 X-Stat-Signature: wjnyf937q544696as1w8akk15t7uydxx Authentication-Results: imf23.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2021-07-09 header.b=XrLCDKqi; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b="WwHC/CCz"; dmarc=pass (policy=none) header.from=oracle.com; spf=none (imf23.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-Rspam-User: X-HE-Tag: 1651626877-681527 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: From: "Liam R. Howlett" unuse_mm() no longer needs to reference the linked list. Signed-off-by: Liam R. Howlett Acked-by: Vlastimil Babka --- mm/swapfile.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/mm/swapfile.c b/mm/swapfile.c index 63c61f8b2611..392bfffc30c9 100644 --- a/mm/swapfile.c +++ b/mm/swapfile.c @@ -1968,14 +1968,16 @@ static int unuse_mm(struct mm_struct *mm, unsigned int type) { struct vm_area_struct *vma; int ret = 0; + VMA_ITERATOR(vmi, mm, 0); mmap_read_lock(mm); - for (vma = mm->mmap; vma; vma = vma->vm_next) { + for_each_vma(vmi, vma) { if (vma->anon_vma) { ret = unuse_vma(vma, type); if (ret) break; } + cond_resched(); } mmap_read_unlock(mm); From patchwork Wed May 4 01:14:06 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 12836652 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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 65D04C433F5 for ; Wed, 4 May 2022 01:14:48 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 1D2986B0075; Tue, 3 May 2022 21:14:47 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 1682D8D0012; Tue, 3 May 2022 21:14:47 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C5F5E6B0078; Tue, 3 May 2022 21:14:46 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id AFA0A8D0001 for ; Tue, 3 May 2022 21:14:46 -0400 (EDT) Received: from smtpin25.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 95C47205CF for ; Wed, 4 May 2022 01:14:46 +0000 (UTC) X-FDA: 79426290972.25.1117DF4 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by imf31.hostedemail.com (Postfix) with ESMTP id 18A9920087 for ; Wed, 4 May 2022 01:14:30 +0000 (UTC) Received: from pps.filterd (m0246632.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 243KjMlM013507; Wed, 4 May 2022 01:14:45 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=eh+V74m1VMYVwSuCRNb1CBSFn2q1JG1SE3YqCwcro7I=; b=tKRbLdkE3weXxtSYixGGqZJqe+ZAFhNJqi0TKkFrOuU54VVUMCQ7vMY6ib+lFURZYY7z K/gWTTj7fD1iewSMpdMHlWEok9hCOVS5E65822iNYU7XQqoxvGj7gzjhR/CPd4bmyAT9 DYmsIfqdFtvZeuy4T8UDzOGamxZz/ObdDq1R2GSAzhrEc1qgPIC2CCb7b7rUt8pS9/Zw Qjy1I20xK0dEacJxMAPt2kgXfdlwGaOnUnblePXQ0/ega7UDAT++2DCP6J/07glMnKhK V0GVMhgRF2VnSSpQ2fHRhdKHwvXBJ9J9BXTacZMIzsNdEtpqk7C38aO9omCjjREmk6z+ kw== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3frvqsf6fp-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:14:45 +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 2441BXR6013207; Wed, 4 May 2022 01:14:44 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2049.outbound.protection.outlook.com [104.47.66.49]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com with ESMTP id 3fsvbmv41r-11 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:14:44 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=HVZvU8sO1civVagqfVvEUTGjPueh3vAJl6MzbtBIAo+MZ9CkL7DMeLr6o6DxJLmZGDWGfYqbKyPKxLLSpLW4z/V8GI/Q/7a8ELnaLrqFR616tOXv+Vg+Bca0NVKtzTdXyCupyYuo0FsBBfFsHlMtXZOlSt/nal1qsQvrNCy2OB2c/iZP1FN4mKXxU46vVhpoFtK4HvHr1m7UFguxKaHmGEWngb8mZaw77zWK6D/0HFOJf7tiVlck2dpfoJ17OLHpd+kf+89T3yOXaQwByuSwWCfkTVdWe+ltgB79nJYhWDazO9hJf7tvqxHRhq0NOW+WsgCS6vYZ6Vhr7P4aWeN5rw== 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=eh+V74m1VMYVwSuCRNb1CBSFn2q1JG1SE3YqCwcro7I=; b=SOr0Ir5iaaK05Lo67D8ijkXdsdMNpwDwMSmQGE1vo1ZVJQ+asr36x9B2saU/sARchEbIhwHASHRmmvHr7IdBO39tTU+A5uZN8dA/C0xK4Rk2qorGzwvRCF3jRqe3vRf8JwRHWqzam1IL3RCJnMb5LZn19fAUsCtgeuNXZEw2RjJLqz4eGAV/eJXAz5op//iNjli8SY/LJa95gnldxgbvn/T1xgQlQQz+U0t+BIC2yzKy/M3XFt8zYKoHaNDTi5qtBknptw/30obpW5cikQM2D4kbZN8CtHOk7b5wWVysvvWEEz45wVxDuAOlg4Ccq3BXPpJ0aDen5EgruoESMwtJOQ== 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=eh+V74m1VMYVwSuCRNb1CBSFn2q1JG1SE3YqCwcro7I=; b=Ywnn7Xe2t61CF8RGNTtKalzcB670yviWVGlUtB10Uay/5B8nKeC2bXI/hD/lkf/k/XpuI4q8mm0x0jBhvy68yPrQnZf8SCNUreZpRaDNP9X++/NlOECPQ9sBlZvqDBncHUDF+XOB3kNb0aic9zPRnVoVXzb2LyHbE0BHGoQppjE= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by SN6PR10MB2688.namprd10.prod.outlook.com (2603:10b6:805:4e::31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5206.13; Wed, 4 May 2022 01:14:41 +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.5206.024; Wed, 4 May 2022 01:14:41 +0000 From: Liam Howlett To: "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton Subject: [PATCH v9 64/69] i915: use the VMA iterator Thread-Topic: [PATCH v9 64/69] i915: use the VMA iterator Thread-Index: AQHYX1RARWarpS6vBEWTZSCRH8obcA== Date: Wed, 4 May 2022 01:14:06 +0000 Message-ID: <20220504011345.662299-49-Liam.Howlett@oracle.com> References: <20220504002554.654642-1-Liam.Howlett@oracle.com> <20220504011345.662299-1-Liam.Howlett@oracle.com> In-Reply-To: <20220504011345.662299-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: c042cb39-844b-452d-ddaf-08da2d6b775d x-ms-traffictypediagnostic: SN6PR10MB2688:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: nIqRl3MVHq8B46f27FFqyJgqkJ7/p3th9wkdzgWQo1cwm/DaM223v0Lx4Arsg4wbi6sKAPTGYtQzTveAngEYb4cRaJYdGUdUqhOG+QNoz7C1EXprellZknCPtSqTyXM3dDbI5enk6R7YQD1oPi7y1ZTSPK+C4Y2b8rRdBQEPBq0sDHHTAWCwXoLMtCRxzIXLYcmyyrDGgOY4vUiRNN4vXtQxlieh48q/3x7KjhHg0zRs2uXcd/16PdT7mvPdrmPDeNucFsm7o60p7GsL6CNPw55OZq+JPPnWfaRVJiCuoDa7ctW4KyvjqeJxrbhmATlAGTYIDGHakUkbyCXzQJxrzOIgBDrGftOfMdWwr4Fm3QP4KPELIuRrqbSoF4IuneEDywQwSE2L1INt6X/S/ojWd2dDYFCau6ykby5f9LVOjvlM3zhCN2eU93KCPTKLEsggAeasl7KZyWB3Jaq7xp6DodF/ZWWHYJZZoWgX72XxWHxVVoGaF2OAoym6Sv5hfa4x0RbblSfk6BWMlh/xiHHvaUVztokQWJaqtvr7rvTDjN06b2cYNiYEpmog6ILLz6follmgePaLk4TmZEiM4d1GFSCRY8dLjW+4XaAQxaYuEVYGtI3bccfhQS7Ir2UyuFUhizWlmD09EVtxYsbuMaMQ0cNgVMceAVqQA2p7KHolhhO0NvO2v3eetWerShnJ8OsQP8e0QzMx+egixrzO3Q2jwg== 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)(186003)(122000001)(1076003)(2616005)(66476007)(8676002)(66446008)(64756008)(38070700005)(36756003)(316002)(38100700002)(66556008)(66946007)(76116006)(91956017)(110136005)(26005)(6512007)(71200400001)(8936002)(6666004)(6506007)(2906002)(86362001)(5660300002)(6486002)(508600001)(83380400001)(44832011);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?18516OYbxtfWL9aOaKYjO3u?= =?iso-8859-1?q?TOc12A5B4cMi6mgz7ZQOET/V8itDaWDuCBGM8YlIUM2+N5j3CQziSUWfBpYV?= =?iso-8859-1?q?PQ/kguHJ7Hrl4I1k4D5qh0cskhmEZTBEtoXBJqqXOoTu8ND4AkvAo+Cx/igs?= =?iso-8859-1?q?y0F62+ivkLrsRid2SRp8cryl2KBVrYhL5dc4T/GO6ggfIAbnHFfqvKF1mkf8?= =?iso-8859-1?q?m/AzFYOPRTmK8GX6NoTY2AjAIksKRry1HW4r5uQRMeEDMLJ7gOyclsXs8/yS?= =?iso-8859-1?q?TeM/XMgwOoGto1C3Kk5owR2Ph59zr9Slhc70E2g55ATqeYQplaTYWSnY4sKG?= =?iso-8859-1?q?35QQdn8c+1TL60GJCuPoj8WHHn0hJZ3g8zNdSR0d+QsRieeN5D4vHoq3NiEM?= =?iso-8859-1?q?Hk84MpTYbwcv9uwwPJi8eC8phNcalEtGdeUkUyXDoaUw1DlJDYWPAFsfQBXM?= =?iso-8859-1?q?Mtq9GdBOBsK23ORS4ybI4XcPisXgiE4YUjqzSdadskYt69Ae9qN9GRz1oTf0?= =?iso-8859-1?q?W4DIirSCm8OjLJgjr7enrloQ9no+ka0kq+++7OxjAvKc/cSk5HqUWO0yRE6A?= =?iso-8859-1?q?BwazrJFPJ3eHnk96UfKbhzmoVTw6nlE8GJN+OHa176elDl9+x8Y8PVGNCBg4?= =?iso-8859-1?q?2/pCN8NV11t3eG3DvfkQdDo0V7VvOGiM2vFnw1JqC/HDVx5ayXOFejajHjgU?= =?iso-8859-1?q?AyPfd0y5rlRs5xd+pWwmRTJ6jMkueew+t61mb9VgJBdONgrlnfxe3VivjN8L?= =?iso-8859-1?q?umfOfhmrOPdfrgwGnquLZdMpLjlRDNy+7D8Yv5AHpEgteCwpHrSMbUqkHOFB?= =?iso-8859-1?q?UnZKkDA2Agr/zvS5uvjabTbIlqBoBh7cERROFzSpNtyBRk8Y9SSOwTvPJEnq?= =?iso-8859-1?q?iKCddP8Dms/jyEgMh3X+UEATtjn6VsLF0boTn4giGqUffglQbiSp/jefPjPg?= =?iso-8859-1?q?cW19ccvhEcHs95uqC4yz18wSN735gukBK9M59bY3ig58szT0+l7WCuk2pyV+?= =?iso-8859-1?q?UvMPI9i6ltNrGI7TbZoc640WZIN/Jpw/3VwvRv3eZxuGFfaOCJusmECcz34G?= =?iso-8859-1?q?mc2vS6B8JrtsTA8j6/Kv9lfLl3vnx3Z0RCf1QdewhdAbCaf8ImuXgcPmNqV1?= =?iso-8859-1?q?W+Z5u+CUUvXtYkKgpPcKbdye+kEqFf8TxJf3i/c3mHWNXsAMTtP/rtkEsHpv?= =?iso-8859-1?q?aQlxUoapZn9sHMpjoo+1uJLpdWk8qV+jcsuH5RDbtWObGj6BnNUzELqyUXyA?= =?iso-8859-1?q?ptZQmOS+BfLBb6Kt15pXs41z61ZR5KQwOtyHSoEeFLAMLfh95/DhveSIBbpQ?= =?iso-8859-1?q?4BZpvtluREdf0PFFfvV2f2ob6T6ewEG+QZwFnyudOaVYKgjtctdnWJ8ekM4G?= =?iso-8859-1?q?BpZtLQzmO25NBGkF2i6I/DZ3wI/zjUoZMQx1UCRON0Ruk/bXcsB9v4kSsgBK?= =?iso-8859-1?q?v3audb3icbTsZCxIN028vzYkaLfodqdi6fO0lSQUoVS52FuFQq4vhKQ8mjPn?= =?iso-8859-1?q?x9aJBd02Wn6GyW2sOjEqARHTid9d+6Sb93BO9D3+SqlNKytvp8ov6NjVEmAI?= =?iso-8859-1?q?KEJD5dVUUpDUtDMizQ3AdjZkJO9v2jABUjkosHSMQOpTCN7iEL6uIW2wxAmZ?= =?iso-8859-1?q?d6Ki/uCDh587O+udmKRafuO5RI4NC5pZYJoVWLDs+5HaZ4amXrsgqyRJgID6?= =?iso-8859-1?q?BCl1NLSOTC65oVAl4lEyvAAj81ArSS+N6ZttOPPCbPrzLCQ5TFS7tisM4CIN?= =?iso-8859-1?q?8tjy7mVPN2J094+W8u/hOrUR8OZn8GTVoUcl1pasFgCaVzYJj5PG2dJOtAkD?= =?iso-8859-1?q?K5LllnCM=3D?= 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: c042cb39-844b-452d-ddaf-08da2d6b775d X-MS-Exchange-CrossTenant-originalarrivaltime: 04 May 2022 01:14:06.3291 (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: wQkpboWXLop6sf8FMC/mlKSQlr4GWgAL9ry3cCPSQyCRnOh48Xk24kpL3s+U60p0WebnAFRxGoGDYaZFOUXGkw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR10MB2688 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.486,18.0.858 definitions=2022-05-03_10:2022-05-02,2022-05-03 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 bulkscore=0 spamscore=0 malwarescore=0 adultscore=0 suspectscore=0 mlxscore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2205040006 X-Proofpoint-GUID: Jmcwu5beoskNrmGLARtBR3arhQGDCPS6 X-Proofpoint-ORIG-GUID: Jmcwu5beoskNrmGLARtBR3arhQGDCPS6 Authentication-Results: imf31.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2021-07-09 header.b=tKRbLdkE; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=Ywnn7Xe2; dmarc=pass (policy=none) header.from=oracle.com; spf=none (imf31.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-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: 18A9920087 X-Rspam-User: X-Stat-Signature: rw7ixkq6j38ihmosu75mxs5xdk3zmsuu X-HE-Tag: 1651626870-317383 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: From: "Matthew Wilcox (Oracle)" Replace the linked list in probe_range() with the VMA iterator. Signed-off-by: Matthew Wilcox (Oracle) Signed-off-by: Liam R. Howlett Acked-by: Vlastimil Babka --- drivers/gpu/drm/i915/gem/i915_gem_userptr.c | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/drivers/gpu/drm/i915/gem/i915_gem_userptr.c b/drivers/gpu/drm/i915/gem/i915_gem_userptr.c index 6d1a71d6404c..e20ee4b611fd 100644 --- a/drivers/gpu/drm/i915/gem/i915_gem_userptr.c +++ b/drivers/gpu/drm/i915/gem/i915_gem_userptr.c @@ -426,12 +426,11 @@ static const struct drm_i915_gem_object_ops i915_gem_userptr_ops = { static int probe_range(struct mm_struct *mm, unsigned long addr, unsigned long len) { - const unsigned long end = addr + len; + VMA_ITERATOR(vmi, mm, addr); struct vm_area_struct *vma; - int ret = -EFAULT; mmap_read_lock(mm); - for (vma = find_vma(mm, addr); vma; vma = vma->vm_next) { + for_each_vma_range(vmi, vma, addr + len) { /* Check for holes, note that we also update the addr below */ if (vma->vm_start > addr) break; @@ -439,16 +438,13 @@ probe_range(struct mm_struct *mm, unsigned long addr, unsigned long len) if (vma->vm_flags & (VM_PFNMAP | VM_MIXEDMAP)) break; - if (vma->vm_end >= end) { - ret = 0; - break; - } - addr = vma->vm_end; } mmap_read_unlock(mm); - return ret; + if (vma) + return -EFAULT; + return 0; } /* From patchwork Wed May 4 01:14:06 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 12841034 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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 00404C433EF for ; Fri, 6 May 2022 12:20:06 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 29B656B0072; Fri, 6 May 2022 08:20:06 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 24A836B0073; Fri, 6 May 2022 08:20:06 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 0C5716B0074; Fri, 6 May 2022 08:20:06 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id EE9166B0072 for ; Fri, 6 May 2022 08:20:05 -0400 (EDT) Received: from smtpin03.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay13.hostedemail.com (Postfix) with ESMTP id BA90660AFE for ; Fri, 6 May 2022 12:20:05 +0000 (UTC) X-FDA: 79435225170.03.9A16B29 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by imf09.hostedemail.com (Postfix) with ESMTP id B5109140007 for ; Fri, 6 May 2022 12:19:58 +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 243KvDsf027626; Wed, 4 May 2022 01:14:46 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=E3DE+Kwb/pVhOuXhZpFjAXwBRuRbumxfeOXhUy0hjwc=; b=Js7d//SHSFLBiQNB/VFr3lvKIstyXjIgCRvrcUtFkxvzh40+DNmj6FIzSjq77N2whLAa RdE+lpYqIw3V/72D5dBCC6+CW7lIHOsI2UPmWt/N2aptxtCz3Wiz2iIdBL0DOaHXF8y5 /YlmB2TYi5yWv3qPvR753h3I76H8WFa7rwbXHM2tULYJgpYQALrm1ipsmXrzjZ0avF0p jGelc7ubNTcolJ92JN7KjziQq795tZfEIjT69WVcanyp93mRW8BmFKk/hUQIyhYNfNZ5 tjZxpHG2oR8Vvt6AxrX/GGNDIBk3+QSJQ3b7PRsEf6/6FMvYGtEm79KY+G2iOF3XsTb8 Kg== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3fruw2f6cd-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:14:45 +0000 Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.16.1.2/8.16.1.2) with SMTP id 2441BJT4001264; Wed, 4 May 2022 01:14:45 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2045.outbound.protection.outlook.com [104.47.66.45]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com with ESMTP id 3fs1a57vyf-4 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:14:44 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=cBAiS0zh2YcxcA5s/XtBt4XesTYKz2+kolobTN4TYIsR0a1oIoUBhbQC6RHVbtlow9gDuEGo3+cQ1l4pFbPGYWV+fV1ZWIpeTS5IN4RMkQvhPfdeagnEWftkJgysBJnB7cPOKxsKLfY/7ClnYGrp9lIZlTsGdIdmC/kKv0Mtm1GTWdZGMwgsrJZZYPHi530C3VRZvAHgMJ0IoGvdllL/OUt8iAWYdjTPQSYHJXE4L7cwBxLCwToHFSbftgkQsNqe8tEgC31fRGYGLDSpy51EEI2XLwCoEis5YHNSgwzkYMfG7VRFCfrpjoEbeDMJFcI8lbH4bISsz0ub7ebGGPngsw== 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=E3DE+Kwb/pVhOuXhZpFjAXwBRuRbumxfeOXhUy0hjwc=; b=V3CJ+6ut8QJ880eWvPlwZz4PaYBSkK2dfAwWS8FD7H4MF6pYqdg4Z07jPqdUU/IPXmf/6ML+aKA10TQ+fHsKG1yUxlJ9Yozm/W3oppvlG5ZBsCAdTsZpZoaVuOWQ9n3Wehz8CRgmRXqa8x1cgE8KgUUab7KF4ZYbi801BJwiO+58MsrEDgMVHiyZKO4bcTu8D4KgBXre1/rT0P5dJJHoLuPdfUQ/vnedBTvvQpIQXCAI4d0ZEy0m0JNEiEzOtJoAeCPn+8jNGhyWiFxs9hZju/A+S98D9A0kpxUVcdAsZuakZKf/XcwNNdOGwe09JJORv3CrBYDRiRuCAgLh542XQw== 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=E3DE+Kwb/pVhOuXhZpFjAXwBRuRbumxfeOXhUy0hjwc=; b=aDVcotCa5DeE0FNsfezm1Tmwx7jJBHLI0wox5ldiiLQz1epkfoDDogGfZoJbsBp/00mS2Um+uuPnVhiloKvXloxlj2OSxRvtunIJaz9kLv+PmIt/vovw31uG2iI7RohoTl2c844ZCMJ/WiJFJAuCVxvpika3bpZFBdj1AiOwKuE= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by SN6PR10MB2688.namprd10.prod.outlook.com (2603:10b6:805:4e::31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5206.13; Wed, 4 May 2022 01:14:41 +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.5206.024; Wed, 4 May 2022 01:14:41 +0000 From: Liam Howlett To: "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton Subject: [PATCH v9 65/69] nommu: remove uses of VMA linked list Thread-Topic: [PATCH v9 65/69] nommu: remove uses of VMA linked list Thread-Index: AQHYX1RAFKkhMsx7ZkmEY0IXoTZ4TA== Date: Wed, 4 May 2022 01:14:06 +0000 Message-ID: <20220504011345.662299-50-Liam.Howlett@oracle.com> References: <20220504002554.654642-1-Liam.Howlett@oracle.com> <20220504011345.662299-1-Liam.Howlett@oracle.com> In-Reply-To: <20220504011345.662299-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: 242309dc-9c2a-47c6-c72d-08da2d6b7788 x-ms-traffictypediagnostic: SN6PR10MB2688:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: UO7MvWxClhvfp3zawWaL7lbgi7lVoRVjakEYG5lbpO0vVo2VAdCM3iS9USYLHwovo8gYc8D1EjkCfRZegoxAQumcT+L/GL+1lWTK/u4JvrtSiowsTs3BEqU6IOysofO+GjjkdzlPDpKOMEjMmV7tXhLGZQglJeL2+MzoktzTA8yruIVMT0iqh6vFL7XQ1ZzXrKNeg84gPA2DMp/o+/1byrkCj7d9pZRQEguo6Lo5YRZ7kjSY04/KzM7326zBAh8LBD6C4F/+q9/UKLoBx3dsMQYbrxHvdRvrwGdmzn3k/oeb0xoTp9HIQslEF3oOerj5ThboyhOCJPvsoqR6wwTno/GZId192NLV7Vr1OgzczxQA7vz1LQW3T8AApZEiW6vuOt9DGunQtSNFc3/+QPv2SGtqsoRMRYrqDKJirgqeBzQzrk86JUL8Jc2FNBKdFVs1flQBA8MDsB2jbi5FISfweUeWBwF3v9BS4buIzqOAje+BUeXe3BOXP1p24iMD8/xNID6pufVGoGyTmk+9ERHhU3jtuc4/NA1yclV4eX8zneh8ea9KGZz4PBt4+xlxFw1DRKY7C5KSpLepjv74aGeVIOrwSBD8Y+F1rfZXFvdG96OEGZjwvGo3hh2B/nOobbz2T+nfo17dm/eSdpqDR409m1Ckhqjrom1SnvdkBb/LLoKJ8MDgzU01d72FqLIcvTAhE/wBHFye9RXgSAe2uyNaVg== 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)(186003)(122000001)(1076003)(2616005)(66476007)(8676002)(66446008)(64756008)(38070700005)(36756003)(316002)(38100700002)(66556008)(66946007)(76116006)(91956017)(110136005)(26005)(6512007)(71200400001)(8936002)(6666004)(6506007)(2906002)(86362001)(5660300002)(6486002)(508600001)(83380400001)(44832011);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?X5OPcP8IzUG+GrP1cSyG73V?= =?iso-8859-1?q?EtZnQasEkp/19qDFumzFb44luuTmPRgL5QPPdCUrv9fT0masHD0QCDdO5BHz?= =?iso-8859-1?q?tFSYlvmECDQ+mP+qjfqsh0yqt+nBAakRwDZJ+CqEQOpcrWaoPaYbKju+pKU2?= =?iso-8859-1?q?VcLepQNYyNsrmM14pmLoBu5Te9V/FfMJy7PIEsIYfC2o3BXrkkigUfFkr2oZ?= =?iso-8859-1?q?C0ebMRYpYDMgYfK6pB9+PFMazyGPSyzn6iphwfrhUFh9j04ul0BX2kC2Nrij?= =?iso-8859-1?q?hatskF0rx+DI25dm7epwWUC30/ld36TwsglmCpioGThNHQSohIG2HCSNsuLB?= =?iso-8859-1?q?Mushpprd2MlT1QnRUmmEnTccyMj6ieg1fL2gY5XG1+KhQiH5C42EgY/jrv36?= =?iso-8859-1?q?1FLGDlQTCcErX6Cc5IPo9pGOzLxd6HYca7gCwm/HvfzodZxX0Csqp2kj9dkY?= =?iso-8859-1?q?OLkmbEJKnkCy8kS3EZlnWPn36EvLnL+bkkBEcTOD4FKcvPOT4oZg3xd0Ysr7?= =?iso-8859-1?q?D5etsY/Cxk8zGbLASXLVUqLqUnZidZMWbn20dMaQRjubZltLEXWjMCJ/B2Bh?= =?iso-8859-1?q?2ah5s5NzqEawyMfgzWMUCXD3kLkMYhxAqqe1pT0YkYb8WNbdSPvlP2A5Ze5l?= =?iso-8859-1?q?bRd9OgX5fSas/EsQ4J6ZU0WRyrSuuTkDiqN5dFVHoSymJ0KBmGeQRyHUY6FQ?= =?iso-8859-1?q?O4IXyuNmZ6pgdd/li8hExQ0f0fC2tpDOjirvEvifevjghF2WX0NAiHGRUMyY?= =?iso-8859-1?q?1R6nceKyrKXxA01EnbCg+/aUpmOGzUQGw3V+qo7M6xaQjcXbdjCGsO9NM8lf?= =?iso-8859-1?q?wkEj4Z5ErRhgaGE1gyicIv3BgYPM1IrwFEMy0zUGFn278UuTOv5ga97thWZa?= =?iso-8859-1?q?9UjKpfGDx3RnKWjB1bwk39pZpNu5EcOoLZSst0IEZ0BubaX28iqSZVytQl9c?= =?iso-8859-1?q?EiVu2HHds6bwrZodr0qygPeoOYOErd0A7t5H6SY5bHr2Z/pGrtzbVUfFA3GJ?= =?iso-8859-1?q?7mv0cHXsUK+k1qQ1qBy6HwkQA9vY2hnWGXzlbA6vzNCpX96Hv1VkRClmmG0w?= =?iso-8859-1?q?/9AQoOymAsTxaOA5mvA1oh1Qn3XNYSpoTSHmMPMxiBzyuoEH3AG+mgb9o+CH?= =?iso-8859-1?q?Wi1l6+ayxadyiL+5sMJgKy9EZjN+RC3BcsUO3x3ZhkPhR7jv52MZMJVc3rYz?= =?iso-8859-1?q?2+cgmnMgXnsN3icD2cOKIHzSBtbj2YEGPKtyvXbPuLxB0CphM98SljQqn3ja?= =?iso-8859-1?q?T2CZDklalXFEOghNhWhSKS4fyIYZ9yBnexh3nzWR1SuS0ceRydhKPb0Tnvpx?= =?iso-8859-1?q?FnQK5bReSokI2guR3OhbCbfjAqCR+2XH1QIG5zvxjlSHJlomk4KrGNPFvJB7?= =?iso-8859-1?q?3GFv/F/MY4R/XX1XLFxWVErdT96xR6XMthh07ltyM9NzGHuC10bOCq/nFIIc?= =?iso-8859-1?q?6Wqxk/pG88zYOMBdBa2fGLTtVRKP+08mhMH/8OTMWdNiKxiWL1kK8cuBpqUA?= =?iso-8859-1?q?hwTguFIn2HnIerZ0466ZVOyXYYXcajFKfT8bayf+ghkanW+okPt2XxabfGoy?= =?iso-8859-1?q?mTkylGTbKkqULoHWvttsFqumcWnMcXBZQYVLwNDW6C54i93wummWfm9z85Kw?= =?iso-8859-1?q?kdG1nvb7NPRnBxOzxVQG/3jgKd/hF/4sI2UbYhjSXqrcldJyF6xoZ/Jj07ta?= =?iso-8859-1?q?xlsgkOabADEfPkhlLiRKjfyFAGoozwV3qj2R2R4xXNzMMdC6gyrbIVGn79k0?= =?iso-8859-1?q?cgjHQGxGzhMcyhwW1T3DpEwGp6nbSlcpyz1mVQUdvPV7U+SIY6spgC0ostDJ?= =?iso-8859-1?q?gEMSnqnM=3D?= 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: 242309dc-9c2a-47c6-c72d-08da2d6b7788 X-MS-Exchange-CrossTenant-originalarrivaltime: 04 May 2022 01:14:06.7197 (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: B+ByLk/urMqpe/IHh5LMB7/sYy5GkyGEZQlGrxvn9cfm2g1M6Q/BCgQVXoc/P1MpzR5fI3eM31WIJXkWJD1JwQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR10MB2688 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.486,18.0.858 definitions=2022-05-03_10:2022-05-02,2022-05-03 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 bulkscore=0 malwarescore=0 spamscore=0 mlxlogscore=999 mlxscore=0 suspectscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2205040006 X-Proofpoint-GUID: G_zEQaaDAeELj57btoA5a1WXKSA1Wo73 X-Proofpoint-ORIG-GUID: G_zEQaaDAeELj57btoA5a1WXKSA1Wo73 Authentication-Results: imf09.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2021-07-09 header.b="Js7d//SH"; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=aDVcotCa; dmarc=pass (policy=none) header.from=oracle.com; spf=none (imf09.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-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: B5109140007 X-Rspam-User: X-Stat-Signature: c1ogrdct7a5dxozb5u83qegh4bjwnfoo X-HE-Tag: 1651839598-743297 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: From: "Matthew Wilcox (Oracle)" Use the maple tree or VMA iterator instead. This is faster and will allow us to shrink the VMA. Signed-off-by: Matthew Wilcox (Oracle) Signed-off-by: Liam R. Howlett Acked-by: Vlastimil Babka --- mm/nommu.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/mm/nommu.c b/mm/nommu.c index 1c9b4e8c4d5c..d94f6adf9c31 100644 --- a/mm/nommu.c +++ b/mm/nommu.c @@ -1383,6 +1383,7 @@ static int shrink_vma(struct mm_struct *mm, */ int do_munmap(struct mm_struct *mm, unsigned long start, size_t len, struct list_head *uf) { + MA_STATE(mas, &mm->mm_mt, start, start); struct vm_area_struct *vma; unsigned long end; int ret; @@ -1394,7 +1395,7 @@ int do_munmap(struct mm_struct *mm, unsigned long start, size_t len, struct list end = start + len; /* find the first potentially overlapping VMA */ - vma = find_vma(mm, start); + vma = mas_find(&mas, end - 1); if (!vma) { static int limit; if (limit < 5) { @@ -1413,7 +1414,7 @@ int do_munmap(struct mm_struct *mm, unsigned long start, size_t len, struct list return -EINVAL; if (end == vma->vm_end) goto erase_whole_vma; - vma = vma->vm_next; + vma = mas_next(&mas, end - 1); } while (vma); return -EINVAL; } else { @@ -1462,6 +1463,7 @@ SYSCALL_DEFINE2(munmap, unsigned long, addr, size_t, len) */ void exit_mmap(struct mm_struct *mm) { + VMA_ITERATOR(vmi, mm, 0); struct vm_area_struct *vma; if (!mm) @@ -1469,12 +1471,17 @@ void exit_mmap(struct mm_struct *mm) mm->total_vm = 0; - while ((vma = mm->mmap)) { - mm->mmap = vma->vm_next; + /* + * Lock the mm to avoid assert complaining even though this is the only + * user of the mm + */ + mmap_write_lock(mm); + for_each_vma(vmi, vma) { delete_vma_from_mm(vma); delete_vma(mm, vma); cond_resched(); } + mmap_write_unlock(mm); __mt_destroy(&mm->mm_mt); } From patchwork Wed May 4 01:14:07 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 12836654 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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 84B72C433FE for ; Wed, 4 May 2022 01:14:51 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 6BD516B0080; Tue, 3 May 2022 21:14:48 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 5D2928D0001; Tue, 3 May 2022 21:14:48 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 02B938D0013; Tue, 3 May 2022 21:14:47 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id A6C766B0078 for ; Tue, 3 May 2022 21:14:47 -0400 (EDT) Received: from smtpin17.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 6832A3CE for ; Wed, 4 May 2022 01:14:47 +0000 (UTC) X-FDA: 79426291014.17.06F873C Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by imf06.hostedemail.com (Postfix) with ESMTP id 09A5B18008C for ; Wed, 4 May 2022 01:14:44 +0000 (UTC) Received: from pps.filterd (m0246630.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 243MIwYR026114; Wed, 4 May 2022 01:14:46 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=+JQyACM6PEGC4qhy246qLQ3omRU4Z0eoglWR42xI5g8=; b=JpcNrpSzIo2mnNftohqxweOusl75wX6gXZ104dArHnlt3UjfZjO1UJqv9lBcm6kQtFj+ rzm1++t3anvLnMbFSPAP3QHU0ySG7R79h2Opmz/rwxHHHob3MY4LataihKVKWtj5Ew5S 2JnD2aYoPx73+uDo5vZNUjVIm/BYRiDYtlQtgAFv9PmVUTVKHHUTk2RpvFV7EwHl0pB7 0xVk5/xrO73or3UW9Enny7KBKTeDtlin8cwjnN0Sl0nX1SpU71c4bpQb6MCsFZlYi8AS zRDmT4r5YSA6RbZ5FSOSbpRllODHcRiwuqp9djFhQeZSI30D4MoKs7hGAw5Hpx6sZAhv yw== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3fruhc72qj-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:14:45 +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 2441BXR7013207; Wed, 4 May 2022 01:14:45 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2049.outbound.protection.outlook.com [104.47.66.49]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com with ESMTP id 3fsvbmv41r-12 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:14:45 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=heaw1UXLr9ebiuyZ5YkiB20bKKJ90dzTwDOEca3kDKsX56DHc0+O4Ns5+xjyDN7KVtUMpsCDoGidkf2ENQHV1SCH3O21uikdSZQPWSah4phDMI7EDlZ+XDmmpWaq5cDTnnGSmPOnbQ7pewA93Ts9clbTxF7+p6X1BYVf+G1Kvn8VJxCLP53mZLS6QDJeAwNAK0MqvmpFXcQ7cl39prQj37WvNhBA+3xVdaWZTwkIBgWydCbhl0Atuev1+KuOBB3cuDznEj1YcfFGHTvLYVeANkgixNkxGkWJTyd0EgjHj7Yhc9Y9M1XVrJkwif/D5bUE9uI1ZfMGSp0YOh4g14lKBQ== 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=+JQyACM6PEGC4qhy246qLQ3omRU4Z0eoglWR42xI5g8=; b=CB+qj5vwCVemSr0pyFiRGG4HoYIi8b3YPWMurNaO0G/HgH56S0zWcFqNQ6US5q6BzBfYra1W2S4FHS8w0NLyaFzL9AwBCGwYJxF16BcMrgeFaFas1G3SzKHzS8XaD0vUzBckWCNsjxXurPM/+Ux4J5vrjvt4IX9M33H6VyRh/kKEtDCg8sULrwGhuALzlsZNEypd9HXHnfSjjDOeAj1vktGdwRxRyhudT8SpYe+eOpFHnVFiNcVY7zCfZKMVX2wR3eD0g2DKstsQP4gTJrP557jBebEJQG5R/E5ITC6TEQHRrrGLd7u25uUaiFIw71NkP5dY8GGXrl7H367otaz4Fg== 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=+JQyACM6PEGC4qhy246qLQ3omRU4Z0eoglWR42xI5g8=; b=zs91+DNrvUf8IU1aETENERlI1IEj9GijR/US45U2EvFL2qkHYPWIVDK+fD69sLhRauQHMNR0OMe/JLOGkWL/5hyVsA4Qd6nP4gXoawSqqHinoXDKdnY8kuCyk1bui0nKHhx6MBzFUm69/9MubFZK0eF69AQXurVEFfoFR1MT2+I= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by SN6PR10MB2688.namprd10.prod.outlook.com (2603:10b6:805:4e::31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5206.13; Wed, 4 May 2022 01:14:42 +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.5206.024; Wed, 4 May 2022 01:14:41 +0000 From: Liam Howlett To: "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton Subject: [PATCH v9 66/69] riscv: use vma iterator for vdso Thread-Topic: [PATCH v9 66/69] riscv: use vma iterator for vdso Thread-Index: AQHYX1RAQYCMo+m6q0aPhvPA7q6gqw== Date: Wed, 4 May 2022 01:14:07 +0000 Message-ID: <20220504011345.662299-51-Liam.Howlett@oracle.com> References: <20220504002554.654642-1-Liam.Howlett@oracle.com> <20220504011345.662299-1-Liam.Howlett@oracle.com> In-Reply-To: <20220504011345.662299-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: d3d339de-5323-4ba4-b0c3-08da2d6b77b3 x-ms-traffictypediagnostic: SN6PR10MB2688:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: Dx2/g9C1Tq2uDI49PEtLG1the3qHghQeuBM9/78fEjVt9Wd81mYoyrd9O6iIWCbY1GDQFaCPB60F1OkhyyX/uOFl36DTcJa//FXOT/mrWlQI35IjWxorLpD+7AAZKXKUYuh2AA9HX3zqTkY8s338WoWlRxpDyZABts4EMhmu5/LpH+Ie1qP28c9vnRgXieQ/oM4iurB4UOwBthR7pSCm/GUNoOabfi8qo8VMGc8Za0jFPV826jH23nUMPXaUr2Cb8XyDATb9wjDtb7ICkeWdpR8Ggy+u6uj0CsT9JyLHSd5zQYGLbjqoRfDZKCn6W5D0tCcdevovm3zkjQ1cXlHI4cG/7t7rCDBtBZwo3uPwHIcyNlJZW+gWR1Kkmrbdv4VfQi/rYZel4CYfFamfaZFJYLpS7rjHBR8enFrdWY39Ufyox8W5hzHkRq9m0PmXsZibreB3yvxrylV4ij0oHxGVqAEBsYTLbfszPSRZgmcbgJ5J/32gbXIEnFUls71TcMOH12UZqiPqj+Rl+Xi8f1bgUnU05Y6avBYsCxKRiriagAomzls5ECaMGuJXDPDMcTNpP4VmQyU2C+igRJDIjgSIGf0O8aUTDVcPfaemSJ1+4IsnQ68ZDl8AVD6J7QCPJ0eJcdQndelYpGcaw4hPnIEQEUm5YKHx63Nzt6vy66Sa6fXHIpF9PX6fFAmMMQGOBV1eLOH+KQnygTEMc770lE4mcA== 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)(186003)(122000001)(1076003)(2616005)(66476007)(8676002)(66446008)(64756008)(38070700005)(36756003)(316002)(38100700002)(66556008)(66946007)(76116006)(91956017)(110136005)(26005)(6512007)(71200400001)(8936002)(6666004)(6506007)(2906002)(4744005)(86362001)(5660300002)(6486002)(508600001)(83380400001)(44832011);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?ON0AAt026b3W6yAJwud9YwF?= =?iso-8859-1?q?cF4IS+iodXPI4L0wwjooB5XlGuLc5L3ZhJQ093NsEVReOBls4IJdsbiWooRT?= =?iso-8859-1?q?63EgF6ltCBMu3pq0y1WVxQYAuxkkliZt3gK8hXx5FXogsz/xYFJQrM/d3JA3?= =?iso-8859-1?q?K35wtLrLFY4PVbFOReGAK4bJ6Juhq7G3w8eyL5QHWI3EqRz8yCnrY+FC9xFf?= =?iso-8859-1?q?mEF6sZsgGIPtqaPDJ5s5m+wJCnTooOjGh9BtH21UNNwY6TMkW+JdvG7g8ar0?= =?iso-8859-1?q?gN/4q9+6FV58ixsyGNG11g5C5uo8DO8m9ZFj4uD/hNJ6V50tBwjyupNoG7yC?= =?iso-8859-1?q?0GhYNei3F9SaTyr2mKuqlS7pmGE94y6/1wvjUqsFFfRz3KJIa01r8dGCBTft?= =?iso-8859-1?q?imZHmdEXocY5eF0AKgIIA6jaXHyOwHZ4N4nBmWhHemQArAnUg+0Ttks7PMVz?= =?iso-8859-1?q?BzOuxImYXpA0M9Lyz9oQxA14AmJDiEmfuKkIGIF0PC4Pcb8Y2ukzPATd9GeV?= =?iso-8859-1?q?6hGZJMJrVoq2dNmWFOxYn/KiYt98D54qo1lBjJPV69ZpYhG2tUGaAm/bvyn7?= =?iso-8859-1?q?8recGHcU2Bl3CjoURuLsRbQblW+kuiwVBE/3EX8nh8OVzTk/l7n1ONKiUWuI?= =?iso-8859-1?q?hklkpqCO3MJUxcg6ayswRsGSghofQjR9j0nYIOL7dGL+CEFOhGgJs39IXXxT?= =?iso-8859-1?q?x3H3jcxtwWBZCCb7ALOc5auf9HQLJaA5pudmwARgrLMgmAsgqxypn5hxBfLH?= =?iso-8859-1?q?U0oe0YyNUNbDBI4/bF1SY0X+TIdJPE60bV46LVDwpJcVxiVvvyI7TBJvy7pp?= =?iso-8859-1?q?4MniO8H+Yd8vmwqEsKZkpqE/nDfCwgSOjx135A5952eyPNkGQawq8yYAvuxj?= =?iso-8859-1?q?CfMLd7rt4DJ/1doRrG7YK7xtyVwpeBvr7TLh87Cjk0bfpVAGOJpfE1ANeYcY?= =?iso-8859-1?q?g911xsg0JXkb1SOYn4GtK7tnXP4cgeLfYbR57CO/v78UEagO5+PDiSuKKBtq?= =?iso-8859-1?q?SKqctdmd6mXdVqeMMAk58qPiP75m/lNOFgRclqyULMle1cEIUVbi5q0Ef67u?= =?iso-8859-1?q?1gKDOXkXbE8C2c2iRXauiVMSdH6RE0aBrvbjGxdD2pOymOI0BPE8RtEghVY0?= =?iso-8859-1?q?qDasQSmC4x2N58uQOBYE1NAFtZish8ggT/2sRld8HA0EfZ91DDvn1I9w46rL?= =?iso-8859-1?q?nSim1xenzaBpFuB/tMorQTxiLk8Xa17vawX0gIh/PIEe8dwAxQ98ujfLEzl1?= =?iso-8859-1?q?if2zvJJp1Ixd47MDZ2+zOFgf2ItwlpJJEdWUp3ujiXOunLkI0II09Ku738wX?= =?iso-8859-1?q?/LmkjSME8La3dfPO0O0ixfs4/ycJxfN02Ay5nn88GrdZlI3EmzY0/QF61siM?= =?iso-8859-1?q?qn7hggEGkWaBLM+atOdVzkKeb1IRKIl5f9hYulOrQCt5jP0bEcDMS+OplQuW?= =?iso-8859-1?q?D6kYfussNKy2P0svRvQzmAdm77vm3R0uX5kAtEktyT6ILqSZ3R1zQr3sHs7J?= =?iso-8859-1?q?7dIh2RgtkD4fNZSujtCgUnxig1+ANFPWIKh9tzMwQNesI1RfKua5pxPqZHiU?= =?iso-8859-1?q?IXmGatkxT5ZOfNF0L5p3j+/NtrLEeMPNli/2g681QDdfYz+6Q+pIAjzdeFJ2?= =?iso-8859-1?q?73kJFPEwcWtM/zA2z5puaDj2e/stBJNj+WlHfKRDkCJXKlSRnOs4WHzLVd9+?= =?iso-8859-1?q?JhD2v56PS50qtINSOwjoQZxqAoFHzDyy9AWFqtpMWOwEh42p5YEvL/NcTtq+?= =?iso-8859-1?q?5xWIkGruOmu+HnrurBjDIjvVnfIHqe1UuuOD0ggPv6aQ8dTYgZcrskrshDAl?= =?iso-8859-1?q?vR0kGryg=3D?= 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: d3d339de-5323-4ba4-b0c3-08da2d6b77b3 X-MS-Exchange-CrossTenant-originalarrivaltime: 04 May 2022 01:14:07.0322 (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: fy1pTUca6bYpddLmM/ypE/ZRy1+1l6yicYiJ1bR3I6SXRx4dLqnnxo9YBzyb2OzRZ1DqhxWTRL4Fym3mdDXUMA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR10MB2688 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.486,18.0.858 definitions=2022-05-03_10:2022-05-02,2022-05-03 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 bulkscore=0 spamscore=0 malwarescore=0 adultscore=0 suspectscore=0 mlxscore=0 mlxlogscore=865 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2205040006 X-Proofpoint-GUID: ex1EGt0nh7QDR94zsIzQJZlJEb6R822N X-Proofpoint-ORIG-GUID: ex1EGt0nh7QDR94zsIzQJZlJEb6R822N X-Stat-Signature: x876a96577iekni5p5eg1yr4dkc8s9jm X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: 09A5B18008C X-Rspam-User: Authentication-Results: imf06.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2021-07-09 header.b=JpcNrpSz; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=zs91+DNr; dmarc=pass (policy=none) header.from=oracle.com; spf=none (imf06.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-HE-Tag: 1651626884-688124 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: From: "Liam R. Howlett" Remove the linked list use in favour of the vma iterator. Signed-off-by: Liam R. Howlett --- arch/riscv/kernel/vdso.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/arch/riscv/kernel/vdso.c b/arch/riscv/kernel/vdso.c index a9436a65161a..20e2ae135fb9 100644 --- a/arch/riscv/kernel/vdso.c +++ b/arch/riscv/kernel/vdso.c @@ -116,10 +116,11 @@ int vdso_join_timens(struct task_struct *task, struct time_namespace *ns) { struct mm_struct *mm = task->mm; struct vm_area_struct *vma; + VMA_ITERATOR(vmi, mm, 0); mmap_read_lock(mm); - for (vma = mm->mmap; vma; vma = vma->vm_next) { + for_each_vma(vmi, vma) { unsigned long size = vma->vm_end - vma->vm_start; if (vma_is_special_mapping(vma, vdso_info.dm)) From patchwork Wed May 4 01:14:07 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 12838448 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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id D8978C433EF for ; Wed, 4 May 2022 19:26:55 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 32C0F6B0071; Wed, 4 May 2022 15:26:55 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 2E6D96B0073; Wed, 4 May 2022 15:26:55 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 06AF16B0074; Wed, 4 May 2022 15:26:55 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id E32526B0071 for ; Wed, 4 May 2022 15:26:54 -0400 (EDT) Received: from smtpin28.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id B6AB060FA9 for ; Wed, 4 May 2022 19:26:54 +0000 (UTC) X-FDA: 79429043148.28.709649A Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by imf14.hostedemail.com (Postfix) with ESMTP id 6329B100080 for ; Wed, 4 May 2022 19:26:52 +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 243Li9Ug025194; Wed, 4 May 2022 01:14:47 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=GSgt18qY67EAL+pqJaGWuSqF9mRrvnNRwdJ5VRZz3Ws=; b=kskQV1DKG1Nqrt1XHrEC+LA4prCHMkB+aJC875Ug3aeN4mdXadLlLlLsRYSBK9gNbUVG jXpdteFVAkfOxWfRoIJdjxOnQeJLBm7fy9dt68SuPuMB1W7D32UMXa7Tuo54lhBgt0WC 5ZnTzE/kzPMAWKilJsCIDgSzSofkB2YQq2Pn2UM6/4x2alOsNQwm/Nx7mXYx3pKtPET/ n59fil0zAHQclmuOcP7Zxhr2PlR/Q7WzFI/mGp1OYW+ljDONlgd2fkLRY6rYPmsEtg9y dVYSCcradespkcHp2oeogbYIAhKslpcR0ZfX7OAsB+8YPEe0KPEYyeuDcosbO7+c6dwy KA== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3fruw2f6cg-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:14:46 +0000 Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.16.1.2/8.16.1.2) with SMTP id 2441BJT6001264; Wed, 4 May 2022 01:14:46 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2045.outbound.protection.outlook.com [104.47.66.45]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com with ESMTP id 3fs1a57vyf-6 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:14:45 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=nR1Dz6zTEnz+O1X5OkTbPtM7aN4xRB/DjwwpoSkivueZE8FkYRZdk0rXx0rKO6Pjfq/n6hUlmaT6EAv5QvvaAUmz4ANx/T0buD+YNKgAUzJaUqKznI+eTQCEwrNQ0UjHIdjPCUKFZJWp50lFHvXo5YhmP9LsZhe/0kjwVozdqdRiMZc7CGFO0rsMwfvSmVBIs/bY7g1qZrr8Rxdi8CSW1ogjJ5pgxJwcLRMi4/G6ReqasG1oCU2+gcD0uh78BQFAXMJHc8CyT88IKRGgrC0VcWQpZRRRfqKqjf5/nCTmosn+dgrR4DUxG2dbRDktGc/XWZjqPqU1gFt8ycoTWkoA2Q== 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=GSgt18qY67EAL+pqJaGWuSqF9mRrvnNRwdJ5VRZz3Ws=; b=a1aUdAs0QI3ypkyAa6MnLTp9B1gTlIywvtVCNgkhf9JLolZYmO1JBjILnnjU/6IwwFcKT5Wo1qJYs16TcVycQm7suNEgQ1HbsZkjkuczbaSoXdyS6vLJhntnkzClYad+r4qbQUAKFQO79me1oCE1lUn5PJZ/aBQoKvIoUP7ZMiDScCNhLAuE13iP3lMvVGU57zIpHayy69I28sAgZ6hmR0A5JQQOBBqiIEZND/Wp3bI8gwKUTeNw9PtKOlw2KFd/WYducKI4ycQ1KT8K5+ZpaGYEfhUDI6LKZc7SYHHkpn24SxvKKKA/gaITUX6y0O0FDZu6lp9VKeu6uxMmffEXuQ== 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=GSgt18qY67EAL+pqJaGWuSqF9mRrvnNRwdJ5VRZz3Ws=; b=r0rfQcwR7n8VLTSQSDwv8AzhDW3LvZ+2t47cYBkRVMdIMjtFZfXFKybPET4tsS1w0YRvruJdfHSvz1rlRtOMMOtfs2eEIC6YXOsx06TEQYB4szltl0M4A7NOJR8rkwvnbt+B3x3Ew062+K+987KoWHNmyd31qFoWLVVXOaAu/jg= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by SN6PR10MB2688.namprd10.prod.outlook.com (2603:10b6:805:4e::31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5206.13; Wed, 4 May 2022 01:14:42 +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.5206.024; Wed, 4 May 2022 01:14:42 +0000 From: Liam Howlett To: "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton Subject: [PATCH v9 67/69] mm: remove the vma linked list Thread-Topic: [PATCH v9 67/69] mm: remove the vma linked list Thread-Index: AQHYX1RAzsqg1aBYqkCXJCPO8HO1iw== Date: Wed, 4 May 2022 01:14:07 +0000 Message-ID: <20220504011345.662299-52-Liam.Howlett@oracle.com> References: <20220504002554.654642-1-Liam.Howlett@oracle.com> <20220504011345.662299-1-Liam.Howlett@oracle.com> In-Reply-To: <20220504011345.662299-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: 1496eb45-b858-4aa9-acd9-08da2d6b77f1 x-ms-traffictypediagnostic: SN6PR10MB2688:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: /Py8XYKswh5NO/IRX0rRn/+q1h4pk8PVibqZ6IXYh2CZp7X5rVAQhWuy/tdWAIJOaoJy1swSzRl3xqfzb74XSBF1ZI1RGM0Y6TcVdWTiRMrsjoNKkNYVcHa/t2CZ10In427x7SA8Tzz9Op4s8hgIOY6EpIfnssXtoLpya27UhwtJYZW/9p9uVaTUnCZd3Tfy4LGFHS7DbVy4ekQBPCDtffkTeoivOTf8X2cx7TVlMGrOQqtirr2ds10IfxC/41MZQsnOF/y+NVDEvGnB7lVpWbpfBHrhU2l42KxiDcT5OSHRKW0Mnkw/KJeKFldlqeBfQ67bSXLl6O84DFxOYNaEZsEGOq1PqHzXZ3es0K7tEzBf1Nk5lli5meFolfIgwxKp4/9cwtLBUNpUPfaScb1fEwvCZFtlXs9NnCFi4x/rtqMhsDpgL04DasFVArtJaa7zj70e7QcDwFXIRCX91sV7Rmq5pbYsaHEllH/mTYTUgDkNhDXqvE4K2V9QSqPJarxvAzXf1Y7m8dgQKTncFR918C2ZBSdqbiBEvJcNlqUjiIQn5Hup+4u8P7/WkOQa35We5iAWmWtRRs+LRNJJ+EwWqJOjVKQrjUyMx7PAKTSVmCUZQ6HwW095e/gLbfcmMkVNmxlUI0JAi5d2AMO/CKx1BvvlGEb5s6CWqc1sI/xX8KSiG6PdGLXpd/794+p4k8f3UGnxcuBrCfbZqIk7pzocBg== 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)(186003)(122000001)(1076003)(2616005)(66476007)(8676002)(66446008)(64756008)(38070700005)(36756003)(316002)(38100700002)(66556008)(66946007)(76116006)(91956017)(110136005)(26005)(6512007)(71200400001)(8936002)(6666004)(6506007)(2906002)(30864003)(86362001)(5660300002)(6486002)(508600001)(83380400001)(44832011)(559001)(579004);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?DW81b8Qr51iF22Xd+usfzJl?= =?iso-8859-1?q?MpGZXlIUjWH8tOJkySiKwvvZRb2dLUJt2IXOCrqU0nl2AZgR2GEkmlG8udwT?= =?iso-8859-1?q?L54RqET5aBUVsJTlXnaE8g8P2iQE317NKmCac/MJJIfPpvxW7E4zB2fz9ffD?= =?iso-8859-1?q?Bh/X7jbIgAMev23iX1Sb8R6NYFpRfjRuWvbjGjUEae8xFtMmnzagp4EvMFpN?= =?iso-8859-1?q?ZDxA/72GLTBI1DgZs9r5V17YTfTIaNpF6idzz6Xh1wtkFbLSaDkp/9y0drKk?= =?iso-8859-1?q?4h6JHsCAkjfrEohOnDEEpxQHBwgNznX8wr6n/Lldrv1v3UXmaWgXDMdr/GHC?= =?iso-8859-1?q?FK16WbQQQuyjMyltIO0u7EQM+eZk8ObT9UH+hbUchSWh6OoPtAHN62uu+N73?= =?iso-8859-1?q?w0AuQartns1jCaLEGya5rwNLHiC4inN7wHxlh5eJ/T1b/8hhQ9PgRwny/M2I?= =?iso-8859-1?q?Xbz4o8XnBYUg1G4TzT/C1eF+IX8QegTqligjtU6iPJ7UelF/G0RTpPSQJ2rQ?= =?iso-8859-1?q?rXZoyX51sE0U+lQjMlN8sWYVa57+Ih9hDaQEYPL6Y4moEQIpN3IHlH0Ttge9?= =?iso-8859-1?q?8omYBB+TfWery10WjZs6rGyeoGbGAbB/UJ3cKpNOMfdLoyUroxU1xoqru1iJ?= =?iso-8859-1?q?MbO2cNrH4yb29cVGgHkKinOKJc/44FgYy8VFGbl+nDwIZbYucAp4oOaZoWKH?= =?iso-8859-1?q?Bh33PbXojlgv6CPKJ/pjQ5ndrfyWmPZL+m9UcZMZ4YOZSXklu1Dvks6FGNJX?= =?iso-8859-1?q?gbpQ9k7orvIldYxN9xiJb6YrcBBQ/UTMrVMlXPeqjUF7Ux/4X2iBR1qatrDO?= =?iso-8859-1?q?CMoRE3o1MYW2+o97/O6MKYmghSczDN6NBKZBGMCP2yRIyqEDl8w+dRDUBuib?= =?iso-8859-1?q?uQsy2LguaZ2FnRkhKppXb6DLhtX/uHOwyAolo39n+AI5+3Ko583a+/jP6gD6?= =?iso-8859-1?q?bvmj2x5uB3TOFLiBus0HrhSVxd4b6CLITonJA4VEFK7g+vOmUlCzWhlDu8uN?= =?iso-8859-1?q?+xHKnrEpqNsonk0w4QoaJz4IdxzCf8TTFNn6t/AjKwrJEeak8ztcmr0aKqS2?= =?iso-8859-1?q?edKr2ITp1CUQj3mnbqZCPMs60KwAMAoCwSGDle7XmOpkoma4glnnCtCS4oe3?= =?iso-8859-1?q?TOmWuAjAJawLO5VXVzsj9nbiAWUzX2s91pWxb0zFDpVFeh/6drR1BESyNyA0?= =?iso-8859-1?q?Q/3ek0Eg2gwjlUWavu5zVy1JmiEE7nBySpuMWO41J8V12Disi/vgroyquG1W?= =?iso-8859-1?q?ppw/b31y+813/0NHR6Ncm57bl4BhSG9NzScz10cPIcbzIsNnABvc2s6Clb/y?= =?iso-8859-1?q?dA5HoSKNrQdLQ5Bwm3nRURGjdT8TnvkR32qMshdVB8xKjZyxilaA25NAmZ0a?= =?iso-8859-1?q?ML+o0IXiWIvAZIjJWeS9BR6JpOw2dri6P6iEAFk7PzYKyr7HuveLw68n1PI2?= =?iso-8859-1?q?reLOoJvKC2KITcwNwow1IR3QkSJprk0nIcT6vADtzJtiwlY/u0VHnRhjHvOK?= =?iso-8859-1?q?8VikMoiUPDwxT2fHU0nu1+/PVSfJ+VO8YMjZe26OV4pJIYu4asOfFmF0KDF7?= =?iso-8859-1?q?nF7nPH2e/TCXIqLhDh3fbt8/Lql5pevzo5aA3mROc0NxyoCKStOIKf0HRpe0?= =?iso-8859-1?q?GwFDnnV+IOFZmuU/qoFv8vqpDr6mIyUQhssWGsl0vK6aVP2jxW4YneAs1/gI?= =?iso-8859-1?q?rwmmkR65Vfv5qIut6PHyMG17TbShkRtvEZlkjEe+NEP7JsY9JvaV36dlQ8SU?= =?iso-8859-1?q?2TwehxOULyWJYKBamRdh/ipE3uqq6XzO93S7POrDfZzbjZsk5iSkJLGvMTJv?= =?iso-8859-1?q?zfQItPqk=3D?= 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: 1496eb45-b858-4aa9-acd9-08da2d6b77f1 X-MS-Exchange-CrossTenant-originalarrivaltime: 04 May 2022 01:14:07.5322 (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: I/h0nozQN2HPrp7CHL33wjsXDbVekGszOspC3DYp3HJQ5qqceT0KCrfYNl+Zw/NzQcl50JnrpspHAB7BXkUqSw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR10MB2688 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.486,18.0.858 definitions=2022-05-03_10:2022-05-02,2022-05-03 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 bulkscore=0 malwarescore=0 spamscore=0 mlxlogscore=999 mlxscore=0 suspectscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2205040006 X-Proofpoint-GUID: qpkrTeYrFTPttEFt2tA9cfCpFEOqaIm7 X-Proofpoint-ORIG-GUID: qpkrTeYrFTPttEFt2tA9cfCpFEOqaIm7 X-Rspam-User: X-Rspamd-Server: rspam11 X-Rspamd-Queue-Id: 6329B100080 X-Stat-Signature: 8zgmqiskw637xmetenfc736jjonzjhuw Authentication-Results: imf14.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2021-07-09 header.b=kskQV1DK; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=r0rfQcwR; spf=none (imf14.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-HE-Tag: 1651692412-280669 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: From: "Liam R. Howlett" Replace any vm_next use with vma_find(). Update free_pgtables(), unmap_vmas(), and zap_page_range() to use the maple tree. Use the new free_pgtables() and unmap_vmas() in do_mas_align_munmap(). At the same time, alter the loop to be more compact. Now that free_pgtables() and unmap_vmas() take a maple tree as an argument, rearrange do_mas_align_munmap() to use the new tree to hold the vmas to remove. Remove __vma_link_list() and __vma_unlink_list() as they are exclusively used to update the linked list Drop linked list update from __insert_vm_struct(). Rework validation of tree as it was depending on the linked list. Signed-off-by: Liam R. Howlett --- include/linux/mm.h | 5 +- include/linux/mm_types.h | 4 - kernel/fork.c | 19 +- mm/debug.c | 14 +- mm/internal.h | 8 +- mm/memory.c | 33 ++- mm/mmap.c | 439 +++++++++++++++++---------------------- mm/nommu.c | 5 - mm/util.c | 40 ---- 9 files changed, 223 insertions(+), 344 deletions(-) diff --git a/include/linux/mm.h b/include/linux/mm.h index 0cc2cb692a78..f16bf2c017ab 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -1867,8 +1867,9 @@ void zap_vma_ptes(struct vm_area_struct *vma, unsigned long address, unsigned long size); void zap_page_range(struct vm_area_struct *vma, unsigned long address, unsigned long size); -void unmap_vmas(struct mmu_gather *tlb, struct vm_area_struct *start_vma, - unsigned long start, unsigned long end); +void unmap_vmas(struct mmu_gather *tlb, struct maple_tree *mt, + struct vm_area_struct *start_vma, unsigned long start, + unsigned long end); struct mmu_notifier_range; diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h index b844119387a3..bdc5d0a5e76d 100644 --- a/include/linux/mm_types.h +++ b/include/linux/mm_types.h @@ -398,8 +398,6 @@ struct vm_area_struct { unsigned long vm_end; /* The first byte after our end address within vm_mm. */ - /* linked list of VM areas per task, sorted by address */ - struct vm_area_struct *vm_next, *vm_prev; struct mm_struct *vm_mm; /* The address space we belong to. */ /* @@ -463,7 +461,6 @@ struct vm_area_struct { struct kioctx_table; struct mm_struct { struct { - struct vm_area_struct *mmap; /* list of VMAs */ struct maple_tree mm_mt; #ifdef CONFIG_MMU unsigned long (*get_unmapped_area) (struct file *filp, @@ -478,7 +475,6 @@ struct mm_struct { unsigned long mmap_compat_legacy_base; #endif unsigned long task_size; /* size of task vm space */ - unsigned long highest_vm_end; /* highest vma end address */ pgd_t * pgd; #ifdef CONFIG_MEMBARRIER diff --git a/kernel/fork.c b/kernel/fork.c index 9fcbd0b5c0be..536dc3289734 100644 --- a/kernel/fork.c +++ b/kernel/fork.c @@ -474,7 +474,6 @@ struct vm_area_struct *vm_area_dup(struct vm_area_struct *orig) */ *new = data_race(*orig); INIT_LIST_HEAD(&new->anon_vma_chain); - new->vm_next = new->vm_prev = NULL; dup_anon_vma_name(orig, new); } return new; @@ -579,7 +578,7 @@ static void dup_mm_exe_file(struct mm_struct *mm, struct mm_struct *oldmm) static __latent_entropy int dup_mmap(struct mm_struct *mm, struct mm_struct *oldmm) { - struct vm_area_struct *mpnt, *tmp, *prev, **pprev; + struct vm_area_struct *mpnt, *tmp; int retval; unsigned long charge = 0; MA_STATE(old_mas, &oldmm->mm_mt, 0, 0); @@ -606,7 +605,6 @@ static __latent_entropy int dup_mmap(struct mm_struct *mm, mm->exec_vm = oldmm->exec_vm; mm->stack_vm = oldmm->stack_vm; - pprev = &mm->mmap; retval = ksm_fork(mm, oldmm); if (retval) goto out; @@ -614,12 +612,6 @@ static __latent_entropy int dup_mmap(struct mm_struct *mm, if (retval) goto out; - retval = mas_expected_entries(&mas, oldmm->map_count); - if (retval) - goto out; - - prev = NULL; - retval = mas_expected_entries(&mas, oldmm->map_count); if (retval) goto out; @@ -691,14 +683,6 @@ static __latent_entropy int dup_mmap(struct mm_struct *mm, if (is_vm_hugetlb_page(tmp)) reset_vma_resv_huge_pages(tmp); - /* - * Link in the new vma and copy the page table entries. - */ - *pprev = tmp; - pprev = &tmp->vm_next; - tmp->vm_prev = prev; - prev = tmp; - /* Link the vma into the MT */ mas.index = tmp->vm_start; mas.last = tmp->vm_end - 1; @@ -1115,7 +1099,6 @@ static void mm_init_uprobes_state(struct mm_struct *mm) static struct mm_struct *mm_init(struct mm_struct *mm, struct task_struct *p, struct user_namespace *user_ns) { - mm->mmap = NULL; mt_init_flags(&mm->mm_mt, MM_MT_FLAGS); mt_set_external_lock(&mm->mm_mt, &mm->mmap_lock); atomic_set(&mm->mm_users, 1); diff --git a/mm/debug.c b/mm/debug.c index 2d625ca0e326..0fd15ba70d16 100644 --- a/mm/debug.c +++ b/mm/debug.c @@ -139,13 +139,11 @@ EXPORT_SYMBOL(dump_page); void dump_vma(const struct vm_area_struct *vma) { - pr_emerg("vma %px start %px end %px\n" - "next %px prev %px mm %px\n" + pr_emerg("vma %px start %px end %px mm %px\n" "prot %lx anon_vma %px vm_ops %px\n" "pgoff %lx file %px private_data %px\n" "flags: %#lx(%pGv)\n", - vma, (void *)vma->vm_start, (void *)vma->vm_end, vma->vm_next, - vma->vm_prev, vma->vm_mm, + vma, (void *)vma->vm_start, (void *)vma->vm_end, vma->vm_mm, (unsigned long)pgprot_val(vma->vm_page_prot), vma->anon_vma, vma->vm_ops, vma->vm_pgoff, vma->vm_file, vma->vm_private_data, @@ -155,11 +153,11 @@ EXPORT_SYMBOL(dump_vma); void dump_mm(const struct mm_struct *mm) { - pr_emerg("mm %px mmap %px task_size %lu\n" + pr_emerg("mm %px task_size %lu\n" #ifdef CONFIG_MMU "get_unmapped_area %px\n" #endif - "mmap_base %lu mmap_legacy_base %lu highest_vm_end %lu\n" + "mmap_base %lu mmap_legacy_base %lu\n" "pgd %px mm_users %d mm_count %d pgtables_bytes %lu map_count %d\n" "hiwater_rss %lx hiwater_vm %lx total_vm %lx locked_vm %lx\n" "pinned_vm %llx data_vm %lx exec_vm %lx stack_vm %lx\n" @@ -183,11 +181,11 @@ void dump_mm(const struct mm_struct *mm) "tlb_flush_pending %d\n" "def_flags: %#lx(%pGv)\n", - mm, mm->mmap, mm->task_size, + mm, mm->task_size, #ifdef CONFIG_MMU mm->get_unmapped_area, #endif - mm->mmap_base, mm->mmap_legacy_base, mm->highest_vm_end, + mm->mmap_base, mm->mmap_legacy_base, mm->pgd, atomic_read(&mm->mm_users), atomic_read(&mm->mm_count), mm_pgtables_bytes(mm), diff --git a/mm/internal.h b/mm/internal.h index ddd09245a6db..fe33cb47935b 100644 --- a/mm/internal.h +++ b/mm/internal.h @@ -69,8 +69,9 @@ void folio_rotate_reclaimable(struct folio *folio); bool __folio_end_writeback(struct folio *folio); void deactivate_file_folio(struct folio *folio); -void free_pgtables(struct mmu_gather *tlb, struct vm_area_struct *start_vma, - unsigned long floor, unsigned long ceiling); +void free_pgtables(struct mmu_gather *tlb, struct maple_tree *mt, + struct vm_area_struct *start_vma, unsigned long floor, + unsigned long ceiling); void pmd_install(struct mm_struct *mm, pmd_t *pmd, pgtable_t *pte); struct zap_details; @@ -458,9 +459,6 @@ static inline bool is_data_mapping(vm_flags_t flags) } /* mm/util.c */ -void __vma_link_list(struct mm_struct *mm, struct vm_area_struct *vma, - struct vm_area_struct *prev); -void __vma_unlink_list(struct mm_struct *mm, struct vm_area_struct *vma); struct anon_vma *folio_anon_vma(struct folio *folio); #ifdef CONFIG_MMU diff --git a/mm/memory.c b/mm/memory.c index e873a6143181..9e5b3ab8f7c0 100644 --- a/mm/memory.c +++ b/mm/memory.c @@ -399,12 +399,21 @@ void free_pgd_range(struct mmu_gather *tlb, } while (pgd++, addr = next, addr != end); } -void free_pgtables(struct mmu_gather *tlb, struct vm_area_struct *vma, - unsigned long floor, unsigned long ceiling) +void free_pgtables(struct mmu_gather *tlb, struct maple_tree *mt, + struct vm_area_struct *vma, unsigned long floor, + unsigned long ceiling) { - while (vma) { - struct vm_area_struct *next = vma->vm_next; + MA_STATE(mas, mt, vma->vm_end, vma->vm_end); + + do { unsigned long addr = vma->vm_start; + struct vm_area_struct *next; + + /* + * Note: USER_PGTABLES_CEILING may be passed as ceiling and may + * be 0. This will underflow and is okay. + */ + next = mas_find(&mas, ceiling - 1); /* * Hide vma from rmap and truncate_pagecache before freeing @@ -423,7 +432,7 @@ void free_pgtables(struct mmu_gather *tlb, struct vm_area_struct *vma, while (next && next->vm_start <= vma->vm_end + PMD_SIZE && !is_vm_hugetlb_page(next)) { vma = next; - next = vma->vm_next; + next = mas_find(&mas, ceiling - 1); unlink_anon_vmas(vma); unlink_file_vma(vma); } @@ -431,7 +440,7 @@ void free_pgtables(struct mmu_gather *tlb, struct vm_area_struct *vma, floor, next ? next->vm_start : ceiling); } vma = next; - } + } while (vma); } void pmd_install(struct mm_struct *mm, pmd_t *pmd, pgtable_t *pte) @@ -1632,17 +1641,19 @@ 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, +void unmap_vmas(struct mmu_gather *tlb, struct maple_tree *mt, struct vm_area_struct *vma, unsigned long start_addr, unsigned long end_addr) { struct mmu_notifier_range range; + MA_STATE(mas, mt, vma->vm_end, vma->vm_end); mmu_notifier_range_init(&range, MMU_NOTIFY_UNMAP, 0, vma, vma->vm_mm, start_addr, end_addr); mmu_notifier_invalidate_range_start(&range); - for ( ; vma && vma->vm_start < end_addr; vma = vma->vm_next) + do { unmap_single_vma(tlb, vma, start_addr, end_addr, NULL); + } while ((vma = mas_find(&mas, end_addr - 1)) != NULL); mmu_notifier_invalidate_range_end(&range); } @@ -1657,8 +1668,11 @@ void unmap_vmas(struct mmu_gather *tlb, void zap_page_range(struct vm_area_struct *vma, unsigned long start, unsigned long size) { + struct maple_tree *mt = &vma->vm_mm->mm_mt; + unsigned long end = start + size; struct mmu_notifier_range range; struct mmu_gather tlb; + MA_STATE(mas, mt, vma->vm_end, vma->vm_end); lru_add_drain(); mmu_notifier_range_init(&range, MMU_NOTIFY_CLEAR, 0, vma, vma->vm_mm, @@ -1666,8 +1680,9 @@ void zap_page_range(struct vm_area_struct *vma, unsigned long start, tlb_gather_mmu(&tlb, vma->vm_mm); update_hiwater_rss(vma->vm_mm); mmu_notifier_invalidate_range_start(&range); - for ( ; vma && vma->vm_start < range.end; vma = vma->vm_next) + do { unmap_single_vma(&tlb, vma, start, range.end, NULL); + } while ((vma = mas_find(&mas, end - 1)) != NULL); mmu_notifier_invalidate_range_end(&range); tlb_finish_mmu(&tlb); } diff --git a/mm/mmap.c b/mm/mmap.c index 572a2a474b49..7704c879bc6d 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -75,9 +75,10 @@ int mmap_rnd_compat_bits __read_mostly = CONFIG_ARCH_MMAP_RND_COMPAT_BITS; static bool ignore_rlimit_data; core_param(ignore_rlimit_data, ignore_rlimit_data, bool, 0644); -static void unmap_region(struct mm_struct *mm, +static void unmap_region(struct mm_struct *mm, struct maple_tree *mt, struct vm_area_struct *vma, struct vm_area_struct *prev, - unsigned long start, unsigned long end); + struct vm_area_struct *next, unsigned long start, + unsigned long end); /* description of effects of mapping type and prot in current implementation. * this is due to the limited x86 page protection hardware. The expected @@ -177,12 +178,10 @@ void unlink_file_vma(struct vm_area_struct *vma) } /* - * Close a vm structure and free it, returning the next. + * Close a vm structure and free it. */ -static struct vm_area_struct *remove_vma(struct vm_area_struct *vma) +static void remove_vma(struct vm_area_struct *vma) { - struct vm_area_struct *next = vma->vm_next; - might_sleep(); if (vma->vm_ops && vma->vm_ops->close) vma->vm_ops->close(vma); @@ -190,7 +189,6 @@ static struct vm_area_struct *remove_vma(struct vm_area_struct *vma) fput(vma->vm_file); mpol_put(vma_policy(vma)); vm_area_free(vma); - return next; } /* @@ -215,8 +213,7 @@ static int do_brk_munmap(struct ma_state *mas, struct vm_area_struct *vma, unsigned long newbrk, unsigned long oldbrk, struct list_head *uf); static int do_brk_flags(struct ma_state *mas, struct vm_area_struct *brkvma, - unsigned long addr, unsigned long request, - unsigned long flags); + unsigned long addr, unsigned long request, unsigned long flags); SYSCALL_DEFINE1(brk, unsigned long, brk) { unsigned long newbrk, oldbrk, origbrk; @@ -285,7 +282,6 @@ SYSCALL_DEFINE1(brk, unsigned long, brk) * before calling do_brk_munmap(). */ mm->brk = brk; - mas.last = oldbrk - 1; ret = do_brk_munmap(&mas, brkvma, newbrk, oldbrk, &uf); if (ret == 1) { downgraded = true; @@ -340,42 +336,20 @@ extern void mt_dump(const struct maple_tree *mt); static void validate_mm_mt(struct mm_struct *mm) { struct maple_tree *mt = &mm->mm_mt; - struct vm_area_struct *vma_mt, *vma = mm->mmap; + struct vm_area_struct *vma_mt; MA_STATE(mas, mt, 0, 0); - mas_for_each(&mas, vma_mt, ULONG_MAX) { - if (xa_is_zero(vma_mt)) - continue; - - if (!vma) - break; - if ((vma != vma_mt) || - (vma->vm_start != vma_mt->vm_start) || - (vma->vm_end != vma_mt->vm_end) || - (vma->vm_start != mas.index) || - (vma->vm_end - 1 != mas.last)) { + mas_for_each(&mas, vma_mt, ULONG_MAX) { + if ((vma_mt->vm_start != mas.index) || + (vma_mt->vm_end - 1 != mas.last)) { pr_emerg("issue in %s\n", current->comm); dump_stack(); dump_vma(vma_mt); - pr_emerg("and vm_next\n"); - dump_vma(vma->vm_next); pr_emerg("mt piv: %px %lu - %lu\n", vma_mt, mas.index, mas.last); pr_emerg("mt vma: %px %lu - %lu\n", vma_mt, vma_mt->vm_start, vma_mt->vm_end); - if (vma->vm_prev) { - pr_emerg("ll prev: %px %lu - %lu\n", - vma->vm_prev, vma->vm_prev->vm_start, - vma->vm_prev->vm_end); - } - pr_emerg("ll vma: %px %lu - %lu\n", vma, - vma->vm_start, vma->vm_end); - if (vma->vm_next) { - pr_emerg("ll next: %px %lu - %lu\n", - vma->vm_next, vma->vm_next->vm_start, - vma->vm_next->vm_end); - } mt_dump(mas.tree); if (vma_mt->vm_end != mas.last + 1) { @@ -392,11 +366,7 @@ static void validate_mm_mt(struct mm_struct *mm) } VM_BUG_ON_MM(vma_mt->vm_start != mas.index, mm); } - VM_BUG_ON(vma != vma_mt); - vma = vma->vm_next; - } - VM_BUG_ON(vma); mt_validate(&mm->mm_mt); } @@ -404,12 +374,12 @@ static void validate_mm(struct mm_struct *mm) { int bug = 0; int i = 0; - unsigned long highest_address = 0; - struct vm_area_struct *vma = mm->mmap; + struct vm_area_struct *vma; + MA_STATE(mas, &mm->mm_mt, 0, 0); validate_mm_mt(mm); - while (vma) { + mas_for_each(&mas, vma, ULONG_MAX) { #ifdef CONFIG_DEBUG_VM_RB struct anon_vma *anon_vma = vma->anon_vma; struct anon_vma_chain *avc; @@ -421,18 +391,10 @@ static void validate_mm(struct mm_struct *mm) anon_vma_unlock_read(anon_vma); } #endif - - highest_address = vm_end_gap(vma); - vma = vma->vm_next; i++; } if (i != mm->map_count) { - pr_emerg("map_count %d vm_next %d\n", mm->map_count, i); - bug = 1; - } - if (highest_address != mm->highest_vm_end) { - pr_emerg("mm->highest_vm_end %lx, found %lx\n", - mm->highest_vm_end, highest_address); + pr_emerg("map_count %d mas_for_each %d\n", mm->map_count, i); bug = 1; } VM_BUG_ON_MM(bug, mm); @@ -492,29 +454,13 @@ bool range_has_overlap(struct mm_struct *mm, unsigned long start, struct vm_area_struct *existing; MA_STATE(mas, &mm->mm_mt, start, start); + rcu_read_lock(); existing = mas_find(&mas, end - 1); *pprev = mas_prev(&mas, 0); + rcu_read_unlock(); return existing ? true : false; } -/* - * __vma_next() - Get the next VMA. - * @mm: The mm_struct. - * @vma: The current vma. - * - * If @vma is NULL, return the first vma in the mm. - * - * Returns: The next VMA after @vma. - */ -static inline struct vm_area_struct *__vma_next(struct mm_struct *mm, - struct vm_area_struct *vma) -{ - if (!vma) - return mm->mmap; - - return vma->vm_next; -} - static unsigned long count_vma_pages_range(struct mm_struct *mm, unsigned long addr, unsigned long end) { @@ -599,8 +545,7 @@ static inline void vma_mas_szero(struct ma_state *mas, unsigned long start, mas_store_prealloc(mas, NULL); } -static int vma_link(struct mm_struct *mm, struct vm_area_struct *vma, - struct vm_area_struct *prev) +static int vma_link(struct mm_struct *mm, struct vm_area_struct *vma) { MA_STATE(mas, &mm->mm_mt, 0, 0); struct address_space *mapping = NULL; @@ -614,7 +559,6 @@ static int vma_link(struct mm_struct *mm, struct vm_area_struct *vma, } vma_mas_store(vma, &mas); - __vma_link_list(mm, vma, prev); __vma_link_file(vma); if (mapping) @@ -625,22 +569,6 @@ static int vma_link(struct mm_struct *mm, struct vm_area_struct *vma, return 0; } -/* - * Helper for vma_adjust() in the split_vma insert case: insert a vma into the - * mm's list and the mm tree. It has already been inserted into the interval tree. - */ -static void __insert_vm_struct(struct mm_struct *mm, struct ma_state *mas, - struct vm_area_struct *vma, unsigned long location) -{ - struct vm_area_struct *prev; - - mas_set(mas, location); - prev = mas_prev(mas, 0); - vma_mas_store(vma, mas); - __vma_link_list(mm, vma, prev); - mm->map_count++; -} - /* * vma_expand - Expand an existing VMA * @@ -717,15 +645,8 @@ inline int vma_expand(struct ma_state *mas, struct vm_area_struct *vma, } /* Expanding over the next vma */ - if (remove_next) { - /* Remove from mm linked list - also updates highest_vm_end */ - __vma_unlink_list(mm, next); - - if (file) - __remove_shared_vm_struct(next, file, mapping); - - } else if (!next) { - mm->highest_vm_end = vm_end_gap(vma); + if (remove_next && file) { + __remove_shared_vm_struct(next, file, mapping); } if (anon_vma) { @@ -782,7 +703,6 @@ int __vma_adjust(struct vm_area_struct *vma, unsigned long start, int remove_next = 0; MA_STATE(mas, &mm->mm_mt, 0, 0); struct vm_area_struct *exporter = NULL, *importer = NULL; - unsigned long ll_prev = vma->vm_start; /* linked list prev. */ if (next && !insert) { if (end >= next->vm_end) { @@ -828,7 +748,7 @@ int __vma_adjust(struct vm_area_struct *vma, unsigned long start, * next, if the vma overlaps with it. */ if (remove_next == 2 && !next->anon_vma) - exporter = next->vm_next; + exporter = find_vma(mm, next->vm_end); } else if (end > next->vm_start) { /* @@ -927,17 +847,14 @@ int __vma_adjust(struct vm_area_struct *vma, unsigned long start, if (vma->vm_end > end) { if (!insert || (insert->vm_start != end)) { vma_mas_szero(&mas, end, vma->vm_end); + mas_reset(&mas); VM_WARN_ON(insert && insert->vm_end < vma->vm_end); - } else if (insert->vm_start == end) { - ll_prev = vma->vm_end; } } else { vma_changed = true; } vma->vm_end = end; - if (!next) - mm->highest_vm_end = vm_end_gap(vma); } if (vma_changed) @@ -957,17 +874,17 @@ int __vma_adjust(struct vm_area_struct *vma, unsigned long start, flush_dcache_mmap_unlock(mapping); } - if (remove_next) { - __vma_unlink_list(mm, next); - if (file) - __remove_shared_vm_struct(next, file, mapping); + if (remove_next && file) { + __remove_shared_vm_struct(next, file, mapping); } else if (insert) { /* * split_vma has split insert from vma, and needs * us to insert it before dropping the locks * (it may either follow vma or precede it). */ - __insert_vm_struct(mm, &mas, insert, ll_prev); + mas_reset(&mas); + vma_mas_store(insert, &mas); + mm->map_count++; } if (anon_vma) { @@ -1006,8 +923,8 @@ int __vma_adjust(struct vm_area_struct *vma, unsigned long start, /* * If "next" was removed and vma->vm_end was * expanded (up) over it, in turn - * "next->vm_prev->vm_end" changed and the - * "vma->vm_next" gap must be updated. + * "next->prev->vm_end" changed and the + * "vma->next" gap must be updated. */ next = next_next; } else { @@ -1028,34 +945,15 @@ int __vma_adjust(struct vm_area_struct *vma, unsigned long start, remove_next = 1; end = next->vm_end; goto again; - } else if (!next) { - /* - * If remove_next == 2 we obviously can't - * reach this path. - * - * If remove_next == 3 we can't reach this - * path because pre-swap() next is always not - * NULL. pre-swap() "next" is not being - * removed and its next->vm_end is not altered - * (and furthermore "end" already matches - * next->vm_end in remove_next == 3). - * - * We reach this only in the remove_next == 1 - * case if the "next" vma that was removed was - * the highest vma of the mm. However in such - * case next->vm_end == "end" and the extended - * "vma" has vma->vm_end == next->vm_end so - * mm->highest_vm_end doesn't need any update - * in remove_next == 1 case. - */ - VM_WARN_ON(mm->highest_vm_end != vm_end_gap(vma)); } } - if (insert && file) + if (insert && file) { uprobe_mmap(insert); + } mas_destroy(&mas); validate_mm(mm); + return 0; } @@ -1215,10 +1113,10 @@ struct vm_area_struct *vma_merge(struct mm_struct *mm, if (vm_flags & VM_SPECIAL) return NULL; - next = __vma_next(mm, prev); + next = find_vma(mm, prev ? prev->vm_end : 0); area = next; if (area && area->vm_end == end) /* cases 6, 7, 8 */ - next = next->vm_next; + next = find_vma(mm, next->vm_end); /* verify some invariant that must be enforced by the caller */ VM_WARN_ON(prev && addr <= prev->vm_start); @@ -1352,18 +1250,24 @@ static struct anon_vma *reusable_anon_vma(struct vm_area_struct *old, struct vm_ */ struct anon_vma *find_mergeable_anon_vma(struct vm_area_struct *vma) { + MA_STATE(mas, &vma->vm_mm->mm_mt, vma->vm_end, vma->vm_end); struct anon_vma *anon_vma = NULL; + struct vm_area_struct *prev, *next; /* Try next first. */ - if (vma->vm_next) { - anon_vma = reusable_anon_vma(vma->vm_next, vma, vma->vm_next); + next = mas_walk(&mas); + if (next) { + anon_vma = reusable_anon_vma(next, vma, next); if (anon_vma) return anon_vma; } + prev = mas_prev(&mas, 0); + VM_BUG_ON_VMA(prev != vma, vma); + prev = mas_prev(&mas, 0); /* Try prev next. */ - if (vma->vm_prev) - anon_vma = reusable_anon_vma(vma->vm_prev, vma->vm_prev, vma); + if (prev) + anon_vma = reusable_anon_vma(prev, prev, vma); /* * We might reach here with anon_vma == NULL if we can't find @@ -2112,8 +2016,8 @@ int expand_upwards(struct vm_area_struct *vma, unsigned long address) if (gap_addr < address || gap_addr > TASK_SIZE) gap_addr = TASK_SIZE; - next = vma->vm_next; - if (next && next->vm_start < gap_addr && vma_is_accessible(next)) { + next = find_vma_intersection(mm, vma->vm_end, gap_addr); + if (next && vma_is_accessible(next)) { if (!(next->vm_flags & VM_GROWSUP)) return -ENOMEM; /* Check that both stack segments have the same anon_vma? */ @@ -2164,8 +2068,6 @@ int expand_upwards(struct vm_area_struct *vma, unsigned long address) /* Overwrite old entry in mtree. */ vma_mas_store(vma, &mas); anon_vma_interval_tree_post_update_vma(vma); - if (!vma->vm_next) - mm->highest_vm_end = vm_end_gap(vma); spin_unlock(&mm->page_table_lock); perf_event_mmap(vma); @@ -2184,16 +2086,16 @@ int expand_upwards(struct vm_area_struct *vma, unsigned long address) int expand_downwards(struct vm_area_struct *vma, unsigned long address) { struct mm_struct *mm = vma->vm_mm; + MA_STATE(mas, &mm->mm_mt, vma->vm_start, vma->vm_start); struct vm_area_struct *prev; int error = 0; - MA_STATE(mas, &mm->mm_mt, 0, 0); address &= PAGE_MASK; if (address < mmap_min_addr) return -EPERM; /* Enforce stack_guard_gap */ - prev = vma->vm_prev; + prev = mas_prev(&mas, 0); /* Check that both stack segments have the same anon_vma? */ if (prev && !(prev->vm_flags & VM_GROWSDOWN) && vma_is_accessible(prev)) { @@ -2328,25 +2230,26 @@ find_extend_vma(struct mm_struct *mm, unsigned long addr) EXPORT_SYMBOL_GPL(find_extend_vma); /* - * Ok - we have the memory areas we should free on the vma list, - * so release them, and do the vma updates. + * Ok - we have the memory areas we should free on a maple tree so release them, + * and do the vma updates. * * Called with the mm semaphore held. */ -static void remove_vma_list(struct mm_struct *mm, struct vm_area_struct *vma) +static inline void remove_mt(struct mm_struct *mm, struct ma_state *mas) { unsigned long nr_accounted = 0; + struct vm_area_struct *vma; /* Update high watermark before we lower total_vm */ update_hiwater_vm(mm); - do { + mas_for_each(mas, vma, ULONG_MAX) { long nrpages = vma_pages(vma); if (vma->vm_flags & VM_ACCOUNT) nr_accounted += nrpages; vm_stat_account(mm, vma->vm_flags, -nrpages); - vma = remove_vma(vma); - } while (vma); + remove_vma(vma); + } vm_unacct_memory(nr_accounted); validate_mm(mm); } @@ -2356,18 +2259,18 @@ static void remove_vma_list(struct mm_struct *mm, struct vm_area_struct *vma) * * Called with the mm semaphore held. */ -static void unmap_region(struct mm_struct *mm, +static void unmap_region(struct mm_struct *mm, struct maple_tree *mt, struct vm_area_struct *vma, struct vm_area_struct *prev, + struct vm_area_struct *next, unsigned long start, unsigned long end) { - struct vm_area_struct *next = __vma_next(mm, prev); struct mmu_gather tlb; lru_add_drain(); tlb_gather_mmu(&tlb, mm); update_hiwater_rss(mm); - unmap_vmas(&tlb, vma, start, end); - free_pgtables(&tlb, vma, prev ? prev->vm_end : FIRST_USER_ADDRESS, + unmap_vmas(&tlb, mt, vma, start, end); + free_pgtables(&tlb, mt, vma, prev ? prev->vm_end : FIRST_USER_ADDRESS, next ? next->vm_start : USER_PGTABLES_CEILING); tlb_finish_mmu(&tlb); } @@ -2451,24 +2354,13 @@ int split_vma(struct mm_struct *mm, struct vm_area_struct *vma, return __split_vma(mm, vma, addr, new_below); } -static inline int -unlock_range(struct vm_area_struct *start, struct vm_area_struct **tail, - unsigned long limit) +static inline void munmap_sidetree(struct vm_area_struct *vma, + struct ma_state *mas_detach) { - struct mm_struct *mm = start->vm_mm; - struct vm_area_struct *tmp = start; - int count = 0; - - while (tmp && tmp->vm_start < limit) { - *tail = tmp; - count++; - if (tmp->vm_flags & VM_LOCKED) - mm->locked_vm -= vma_pages(tmp); - - tmp = tmp->vm_next; - } - - return count; + mas_set_range(mas_detach, vma->vm_start, vma->vm_end - 1); + mas_store(mas_detach, vma); + if (vma->vm_flags & VM_LOCKED) + vma->vm_mm->locked_vm -= vma_pages(vma); } /* @@ -2488,13 +2380,20 @@ do_mas_align_munmap(struct ma_state *mas, struct vm_area_struct *vma, struct mm_struct *mm, unsigned long start, unsigned long end, struct list_head *uf, bool downgrade) { - struct vm_area_struct *prev, *last; + struct vm_area_struct *prev, *next = NULL; + struct maple_tree mt_detach; + int count = 0; int error = -ENOMEM; - /* we have start < vma->vm_end */ + MA_STATE(mas_detach, &mt_detach, start, end - 1); + mt_init_flags(&mt_detach, MM_MT_FLAGS); + mt_set_external_lock(&mt_detach, &mm->mmap_lock); if (mas_preallocate(mas, vma, GFP_KERNEL)) return -ENOMEM; + if (mas_preallocate(&mas_detach, vma, GFP_KERNEL)) + return -ENOMEM; + mas->last = end - 1; /* * If we need to split any vma, do it now to save pain later. @@ -2503,6 +2402,8 @@ do_mas_align_munmap(struct ma_state *mas, struct vm_area_struct *vma, * unmapped vm_area_struct will remain in use: so lower split_vma * places tmp vma above, and higher split_vma places tmp vma below. */ + + /* Does it split the first one? */ if (start > vma->vm_start) { /* @@ -2513,35 +2414,56 @@ do_mas_align_munmap(struct ma_state *mas, struct vm_area_struct *vma, if (end < vma->vm_end && mm->map_count >= sysctl_max_map_count) goto map_count_exceeded; + /* + * mas_pause() is not needed since mas->index needs to be set + * differently than vma->vm_end anyways. + */ error = __split_vma(mm, vma, start, 0); if (error) goto split_failed; - prev = vma; - vma = __vma_next(mm, prev); - mas->index = start; - mas_reset(mas); - } else { - prev = vma->vm_prev; + mas_set(mas, start); + vma = mas_walk(mas); } - if (vma->vm_end >= end) - last = vma; - else - last = find_vma_intersection(mm, end - 1, end); - - /* Does it split the last one? */ - if (last && end < last->vm_end) { - error = __split_vma(mm, last, end, 1); + prev = mas_prev(mas, 0); + if (unlikely((!prev))) + mas_set(mas, start); - if (error) - goto split_failed; + /* + * Detach a range of VMAs from the mm. Using next as a temp variable as + * it is always overwritten. + */ + mas_for_each(mas, next, end - 1) { + /* Does it split the end? */ + if (next->vm_end > end) { + struct vm_area_struct *split; - if (vma == last) - vma = __vma_next(mm, prev); - mas_reset(mas); + error = __split_vma(mm, next, end, 1); + if (error) + goto split_failed; + + mas_set(mas, end); + split = mas_prev(mas, 0); + munmap_sidetree(split, &mas_detach); + count++; + if (vma == next) + vma = split; + break; + } + count++; + munmap_sidetree(next, &mas_detach); +#ifdef CONFIG_DEBUG_VM_MAPLE_TREE + BUG_ON(next->vm_start < start); + BUG_ON(next->vm_start > end); +#endif } + mas_destroy(&mas_detach); + + if (!next) + next = mas_next(mas, ULONG_MAX); + if (unlikely(uf)) { /* * If userfaultfd_unmap_prep returns an error the vmas @@ -2558,35 +2480,36 @@ do_mas_align_munmap(struct ma_state *mas, struct vm_area_struct *vma, goto userfaultfd_error; } - /* - * unlock any mlock()ed ranges before detaching vmas, count the number - * of VMAs to be dropped, and return the tail entry of the affected - * area. - */ - mm->map_count -= unlock_range(vma, &last, end); - /* Drop removed area from the tree */ + /* Point of no return */ + mas_set_range(mas, start, end - 1); +#if defined(CONFIG_DEBUG_VM_MAPLE_TREE) + /* Make sure no VMAs are about to be lost. */ + { + MA_STATE(test, &mt_detach, start, end - 1); + struct vm_area_struct *vma_mas, *vma_test; + int test_count = 0; + + rcu_read_lock(); + vma_test = mas_find(&test, end - 1); + mas_for_each(mas, vma_mas, end - 1) { + BUG_ON(vma_mas != vma_test); + test_count++; + vma_test = mas_next(&test, end - 1); + } + rcu_read_unlock(); + BUG_ON(count != test_count); + mas_set_range(mas, start, end - 1); + } +#endif mas_store_prealloc(mas, NULL); - - /* Detach vmas from the MM linked list */ - vma->vm_prev = NULL; - if (prev) - prev->vm_next = last->vm_next; - else - mm->mmap = last->vm_next; - - if (last->vm_next) { - last->vm_next->vm_prev = prev; - last->vm_next = NULL; - } else - mm->highest_vm_end = prev ? vm_end_gap(prev) : 0; - + mm->map_count -= count; /* * Do not downgrade mmap_lock if we are next to VM_GROWSDOWN or * VM_GROWSUP VMA. Such VMAs can change their size under * down_read(mmap_lock) and collide with the VMA we are about to unmap. */ if (downgrade) { - if (last && (last->vm_flags & VM_GROWSDOWN)) + if (next && (next->vm_flags & VM_GROWSDOWN)) downgrade = false; else if (prev && (prev->vm_flags & VM_GROWSUP)) downgrade = false; @@ -2594,10 +2517,12 @@ do_mas_align_munmap(struct ma_state *mas, struct vm_area_struct *vma, mmap_write_downgrade(mm); } - unmap_region(mm, vma, prev, start, end); - - /* Fix up all other VM information */ - remove_vma_list(mm, vma); + unmap_region(mm, &mt_detach, vma, prev, next, start, end); + /* Statistics and freeing VMAs */ + mas_set(&mas_detach, start); + remove_mt(mm, &mas_detach); + validate_mm(mm); + __mt_destroy(&mt_detach); validate_mm(mm); @@ -2838,7 +2763,6 @@ unsigned long mmap_region(struct file *file, unsigned long addr, i_mmap_lock_write(vma->vm_file->f_mapping); vma_mas_store(vma, &mas); - __vma_link_list(mm, vma, prev); mm->map_count++; if (vma->vm_file) { if (vma->vm_flags & VM_SHARED) @@ -2890,7 +2814,7 @@ unsigned long mmap_region(struct file *file, unsigned long addr, vma->vm_file = NULL; /* Undo any partial mapping done by a device driver. */ - unmap_region(mm, vma, prev, vma->vm_start, vma->vm_end); + unmap_region(mm, mas.tree, vma, prev, next, vma->vm_start, vma->vm_end); charged = 0; if (vm_flags & VM_SHARED) mapping_unmap_writable(file->f_mapping); @@ -2979,11 +2903,12 @@ SYSCALL_DEFINE5(remap_file_pages, unsigned long, start, unsigned long, size, goto out; if (start + size > vma->vm_end) { - struct vm_area_struct *next; + VMA_ITERATOR(vmi, mm, vma->vm_end); + struct vm_area_struct *next, *prev = vma; - for (next = vma->vm_next; next; next = next->vm_next) { + for_each_vma_range(vmi, next, start + size) { /* hole between vmas ? */ - if (next->vm_start != next->vm_prev->vm_end) + if (next->vm_start != prev->vm_end) goto out; if (next->vm_file != vma->vm_file) @@ -2992,8 +2917,7 @@ SYSCALL_DEFINE5(remap_file_pages, unsigned long, start, unsigned long, size, if (next->vm_flags != vma->vm_flags) goto out; - if (start + size <= next->vm_end) - break; + prev = next; } if (!next) @@ -3039,7 +2963,7 @@ static int do_brk_munmap(struct ma_state *mas, struct vm_area_struct *vma, struct list_head *uf) { struct mm_struct *mm = vma->vm_mm; - struct vm_area_struct unmap; + struct vm_area_struct unmap, *next; unsigned long unmap_pages; int ret; @@ -3056,6 +2980,7 @@ static int do_brk_munmap(struct ma_state *mas, struct vm_area_struct *vma, ret = userfaultfd_unmap_prep(mm, newbrk, oldbrk, uf); if (ret) return ret; + ret = 1; /* Change the oldbrk of vma to the newbrk of the munmap area */ @@ -3077,6 +3002,7 @@ static int do_brk_munmap(struct ma_state *mas, struct vm_area_struct *vma, vma_mas_remove(&unmap, mas); + vma->vm_end = newbrk; if (vma->anon_vma) { anon_vma_interval_tree_post_update_vma(vma); anon_vma_unlock_write(vma->anon_vma); @@ -3086,8 +3012,9 @@ static int do_brk_munmap(struct ma_state *mas, struct vm_area_struct *vma, if (vma->vm_flags & VM_LOCKED) mm->locked_vm -= unmap_pages; + next = mas_next(mas, ULONG_MAX); mmap_write_downgrade(mm); - unmap_region(mm, &unmap, vma, newbrk, oldbrk); + unmap_region(mm, mas->tree, &unmap, vma, next, newbrk, oldbrk); /* Statistics */ vm_stat_account(mm, vma->vm_flags, -unmap_pages); if (vma->vm_flags & VM_ACCOUNT) @@ -3111,11 +3038,9 @@ static int do_brk_munmap(struct ma_state *mas, struct vm_area_struct *vma, * do some brk-specific accounting here. */ static int do_brk_flags(struct ma_state *mas, struct vm_area_struct *vma, - unsigned long addr, unsigned long len, - unsigned long flags) + unsigned long addr, unsigned long len, unsigned long flags) { struct mm_struct *mm = current->mm; - struct vm_area_struct *prev = NULL; validate_mm_mt(mm); @@ -3159,7 +3084,6 @@ static int do_brk_flags(struct ma_state *mas, struct vm_area_struct *vma, khugepaged_enter_vma_merge(vma, flags); goto out; } - prev = vma; /* create a vma struct for an anonymous mapping */ vma = vm_area_alloc(mm); @@ -3177,12 +3101,6 @@ static int do_brk_flags(struct ma_state *mas, struct vm_area_struct *vma, goto mas_store_fail; mm->map_count++; - - if (!prev) - prev = mas_prev(mas, 0); - - __vma_link_list(mm, vma, prev); - mm->map_count++; out: perf_event_mmap(vma); mm->total_vm += len >> PAGE_SHIFT; @@ -3190,7 +3108,7 @@ static int do_brk_flags(struct ma_state *mas, struct vm_area_struct *vma, if (flags & VM_LOCKED) mm->locked_vm += (len >> PAGE_SHIFT); vma->vm_flags |= VM_SOFTDIRTY; - validate_mm_mt(mm); + validate_mm(mm); return 0; mas_store_fail: @@ -3264,6 +3182,8 @@ void exit_mmap(struct mm_struct *mm) struct mmu_gather tlb; struct vm_area_struct *vma; unsigned long nr_accounted = 0; + MA_STATE(mas, &mm->mm_mt, 0, 0); + int count = 0; /* mm's last user has gone, and its about to be pulled down */ mmu_notifier_release(mm); @@ -3287,7 +3207,7 @@ void exit_mmap(struct mm_struct *mm) } arch_exit_mmap(mm); - vma = mm->mmap; + vma = mas_find(&mas, ULONG_MAX); if (!vma) { /* Can happen if dup_mmap() received an OOM */ mmap_write_unlock(mm); @@ -3299,17 +3219,25 @@ void exit_mmap(struct mm_struct *mm) tlb_gather_mmu_fullmm(&tlb, mm); /* update_hiwater_rss(mm) here? but nobody should be looking */ /* Use -1 here to ensure all VMAs in the mm are unmapped */ - unmap_vmas(&tlb, vma, 0, -1); - free_pgtables(&tlb, vma, FIRST_USER_ADDRESS, USER_PGTABLES_CEILING); + unmap_vmas(&tlb, &mm->mm_mt, vma, 0, ULONG_MAX); + free_pgtables(&tlb, &mm->mm_mt, vma, FIRST_USER_ADDRESS, USER_PGTABLES_CEILING); tlb_finish_mmu(&tlb); - /* Walk the list again, actually closing and freeing it. */ - while (vma) { + /* + * Walk the list again, actually closing and freeing it, with preemption + * enabled, without holding any MM locks besides the unreachable + * mmap_write_lock. + */ + do { if (vma->vm_flags & VM_ACCOUNT) nr_accounted += vma_pages(vma); - vma = remove_vma(vma); + remove_vma(vma); + count++; cond_resched(); - } + } while ((vma = mas_find(&mas, ULONG_MAX)) != NULL); + + BUG_ON(count != mm->map_count); + trace_exit_mmap(mm); __mt_destroy(&mm->mm_mt); @@ -3349,7 +3277,7 @@ int insert_vm_struct(struct mm_struct *mm, struct vm_area_struct *vma) vma->vm_pgoff = vma->vm_start >> PAGE_SHIFT; } - if (vma_link(mm, vma, prev)) + if (vma_link(mm, vma)) return -ENOMEM; return 0; @@ -3379,7 +3307,8 @@ struct vm_area_struct *copy_vma(struct vm_area_struct **vmap, faulted_in_anon_vma = false; } - if (range_has_overlap(mm, addr, addr + len, &prev)) + new_vma = find_vma_prev(mm, addr, &prev); + if (new_vma->vm_start < addr + len) return NULL; /* should never get here */ new_vma = vma_merge(mm, prev, addr, addr + len, vma->vm_flags, @@ -3422,7 +3351,7 @@ struct vm_area_struct *copy_vma(struct vm_area_struct **vmap, get_file(new_vma->vm_file); if (new_vma->vm_ops && new_vma->vm_ops->open) new_vma->vm_ops->open(new_vma); - if (vma_link(mm, new_vma, prev)) + if (vma_link(mm, new_vma)) goto out_vma_link; *need_rmap_locks = false; } @@ -3727,12 +3656,13 @@ int mm_take_all_locks(struct mm_struct *mm) { struct vm_area_struct *vma; struct anon_vma_chain *avc; + MA_STATE(mas, &mm->mm_mt, 0, 0); mmap_assert_write_locked(mm); mutex_lock(&mm_all_locks_mutex); - for (vma = mm->mmap; vma; vma = vma->vm_next) { + mas_for_each(&mas, vma, ULONG_MAX) { if (signal_pending(current)) goto out_unlock; if (vma->vm_file && vma->vm_file->f_mapping && @@ -3740,7 +3670,8 @@ int mm_take_all_locks(struct mm_struct *mm) vm_lock_mapping(mm, vma->vm_file->f_mapping); } - for (vma = mm->mmap; vma; vma = vma->vm_next) { + mas_set(&mas, 0); + mas_for_each(&mas, vma, ULONG_MAX) { if (signal_pending(current)) goto out_unlock; if (vma->vm_file && vma->vm_file->f_mapping && @@ -3748,7 +3679,8 @@ int mm_take_all_locks(struct mm_struct *mm) vm_lock_mapping(mm, vma->vm_file->f_mapping); } - for (vma = mm->mmap; vma; vma = vma->vm_next) { + mas_set(&mas, 0); + mas_for_each(&mas, vma, ULONG_MAX) { if (signal_pending(current)) goto out_unlock; if (vma->anon_vma) @@ -3807,11 +3739,12 @@ void mm_drop_all_locks(struct mm_struct *mm) { struct vm_area_struct *vma; struct anon_vma_chain *avc; + MA_STATE(mas, &mm->mm_mt, 0, 0); mmap_assert_write_locked(mm); BUG_ON(!mutex_is_locked(&mm_all_locks_mutex)); - for (vma = mm->mmap; vma; vma = vma->vm_next) { + mas_for_each(&mas, vma, ULONG_MAX) { if (vma->anon_vma) list_for_each_entry(avc, &vma->anon_vma_chain, same_vma) vm_unlock_anon_vma(avc->anon_vma); diff --git a/mm/nommu.c b/mm/nommu.c index d94f6adf9c31..e32561f9f55f 100644 --- a/mm/nommu.c +++ b/mm/nommu.c @@ -553,7 +553,6 @@ static void put_nommu_region(struct vm_region *region) static void add_vma_to_mm(struct mm_struct *mm, struct vm_area_struct *vma) { struct address_space *mapping; - struct vm_area_struct *prev; MA_STATE(mas, &mm->mm_mt, vma->vm_start, vma->vm_end); BUG_ON(!vma->vm_region); @@ -572,11 +571,8 @@ static void add_vma_to_mm(struct mm_struct *mm, struct vm_area_struct *vma) i_mmap_unlock_write(mapping); } - prev = mas_prev(&mas, 0); - mas_reset(&mas); /* add the VMA to the tree */ vma_mas_store(vma, &mas); - __vma_link_list(mm, vma, prev); } /* @@ -601,7 +597,6 @@ static void delete_vma_from_mm(struct vm_area_struct *vma) /* remove from the MM's tree and list */ vma_mas_remove(vma, &mas); - __vma_unlink_list(vma->vm_mm, vma); } /* diff --git a/mm/util.c b/mm/util.c index 3e97807c353b..136e1775d54c 100644 --- a/mm/util.c +++ b/mm/util.c @@ -271,46 +271,6 @@ void *memdup_user_nul(const void __user *src, size_t len) } EXPORT_SYMBOL(memdup_user_nul); -void __vma_link_list(struct mm_struct *mm, struct vm_area_struct *vma, - struct vm_area_struct *prev) -{ - struct vm_area_struct *next; - - vma->vm_prev = prev; - if (prev) { - next = prev->vm_next; - prev->vm_next = vma; - } else { - next = mm->mmap; - mm->mmap = vma; - } - vma->vm_next = next; - if (next) - next->vm_prev = vma; - else - mm->highest_vm_end = vm_end_gap(vma); -} - -void __vma_unlink_list(struct mm_struct *mm, struct vm_area_struct *vma) -{ - struct vm_area_struct *prev, *next; - - next = vma->vm_next; - prev = vma->vm_prev; - if (prev) - prev->vm_next = next; - else - mm->mmap = next; - if (next) { - next->vm_prev = prev; - } else { - if (prev) - mm->highest_vm_end = vm_end_gap(prev); - else - mm->highest_vm_end = 0; - } -} - /* Check if the vma is being used as a stack by this task */ int vma_is_stack_for_current(struct vm_area_struct *vma) { From patchwork Wed May 4 01:14:07 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 12840574 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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 07A8DC433EF for ; Fri, 6 May 2022 05:30:20 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 224DF6B0071; Fri, 6 May 2022 01:30:20 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 1D3EE6B0073; Fri, 6 May 2022 01:30:20 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id F40266B0074; Fri, 6 May 2022 01:30:19 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0222.hostedemail.com [216.40.44.222]) by kanga.kvack.org (Postfix) with ESMTP id E114A6B0071 for ; Fri, 6 May 2022 01:30:19 -0400 (EDT) Received: from smtpin25.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay03.hostedemail.com (Postfix) with ESMTP id 79FBA81EF8FB for ; Fri, 6 May 2022 05:30:19 +0000 (UTC) X-FDA: 79434192558.25.DA8FD71 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by imf26.hostedemail.com (Postfix) with ESMTP id 6345C140041 for ; Fri, 6 May 2022 05:30:16 +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 243KvDsg027626; Wed, 4 May 2022 01:14:46 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=Hissl+TYg1ZFcbpNE69lJPC/TpVSmXhffRFRuq41qQs=; b=l8Tvs8eONiQXfwtFaiHspqPzIwp/rr14Wx4DOoEkbvf+0+iZKXBl2NQWKx2WgTWtlgXC ZvX3+p4hSU6pu6MMoITzBSooKDulmxASnVkp8UeQO7VhobA0J4GTfXIlvb3NVCyKcHme nPfHCxtyLvcqLL+BjTwGZkQeYiewRidTmt512Kuv+rONoKIUKkTkNzEQrMe5Huf5qk8t bzYz2BmfzL7sy4Gl1p3dmp+UkbygWwP9GJ3bCsTAPZY45N2sSAEHIiZA8S2uVTzi3cxk dz78NUK6OHDYgCRByyvh/oOAJLRhj5p+EKcfBbMIuHBNUB+NYg1zQHYpNzx3nMqkSDZJ ZQ== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3fruw2f6ce-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:14:46 +0000 Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.16.1.2/8.16.1.2) with SMTP id 2441BJT5001264; Wed, 4 May 2022 01:14:45 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2045.outbound.protection.outlook.com [104.47.66.45]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com with ESMTP id 3fs1a57vyf-5 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:14:45 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=VgA4ysNZ85ngUy+frGxjoj7/Syv5tA8x7205o2sATxWea7JCtWKm55HKJKskQhEdxMAIa2q8RBM+axbCohpVjSxShx12S5cueAJS+tYSkCZWLBLS1DuftubDlqKG86g3e5Py36CucVInVbanArI2FQ0YbV5Spy7KxnIQxKt7vJQHljdxnbyMKHMocxzX40oKg1BodYRnd2r0kQaLnUy51d3ud0iy911gdkw4EywmKlEip9KyZOG0WAMS22eW4EgYj8VYpdMthWkcL8Hy1TggEXKvRRiwHJpltBkSJmBeq/zIHcHiuGU6r8e+qeVFD7XYsvb3dX3pSNZY05y7IoiC8Q== 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=Hissl+TYg1ZFcbpNE69lJPC/TpVSmXhffRFRuq41qQs=; b=LIii1M09ePJRJ2Ucc5p/I8b6pTT458N/26X9MKz1MPa9hukRRgV9V3WNCtRB+1H5JWxQAB53/NQrih7Ed8SzZihSqZr6pkx7qLWVuKYQgSliSdH2/FsXPwuQaeq3hzCgL1tfK3F6U9TMpUgzqhnwMZ7abVz/YYLMNER7BnLv9xiVSptjMW0VGbK0yw47l7GCuPKzCBqXkvQxncc+QVbW1Y50Gv4YJqVIB10LqZ1zOAkoGxJIa6e7Q3Geg24zuJM1CmVd8mLYVTmR2IYTNr7xVFiSWfAqJNVrYTm1RGwxKDPhGvSzSSf3o5SMl4BcJOvlFoSJZaumE0rVPunj3nFluA== 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=Hissl+TYg1ZFcbpNE69lJPC/TpVSmXhffRFRuq41qQs=; b=aOth+UOHp5pmOmOsi24U4AwQUD5nxCMXNbcfgKU9XJVOrLer3u6gTlc6i1n1OegO+yqYyu2ZJ/z+u4hFsRsBdRhsZsf8xnGa3GY2Rz8erCDhfDq5bxjme+FIYJet0NbTrzclcp1tzZF/36pIIqIZvyrefpjD1rVOpVMD927szDM= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by SN6PR10MB2688.namprd10.prod.outlook.com (2603:10b6:805:4e::31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5206.13; Wed, 4 May 2022 01:14:42 +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.5206.024; Wed, 4 May 2022 01:14:42 +0000 From: Liam Howlett To: "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton Subject: [PATCH v9 68/69] mm/mmap: drop range_has_overlap() function Thread-Topic: [PATCH v9 68/69] mm/mmap: drop range_has_overlap() function Thread-Index: AQHYX1RA4YUOuSrVSkiTHMJE4ejJeg== Date: Wed, 4 May 2022 01:14:07 +0000 Message-ID: <20220504011345.662299-53-Liam.Howlett@oracle.com> References: <20220504002554.654642-1-Liam.Howlett@oracle.com> <20220504011345.662299-1-Liam.Howlett@oracle.com> In-Reply-To: <20220504011345.662299-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: a5f98614-3db5-49dc-bd5e-08da2d6b7823 x-ms-traffictypediagnostic: SN6PR10MB2688:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: YUtNzENuNycepYjFCvAyjsPgHpaGUuTqIsBwlNyiiulWtXUIx7L6PXLeHgoP+7wrcSZQqCcCZGrakg59Xuv/oPxNPp8u7/VzjMDPbjrYjvFMGAFJCp+ymKoMMxPeKCdPEWlk5A71FNaIHHTZEG/DWnl6qRz9Ap+bZCUbReSLsNxvknbH3sAuZPeDFEgqprXCrxGjo+NOAn2CTRf9SpZjwjGHkd50ZPBrIp2g7qdQlR0zjDSere19+jvAmJ7wkzCQ5iBNN34Lv+ceHsPOIZ+QzLFeP0SX4sHeP30YsYmhULwZq5brYrwbjBt7iMK6ylrCPi2CIDFYYx+N5oO6UtzOVm05kDOYQ2AVeAvwEGDBHR5uzKgCMTj6V4mWwO//l3Jnxem4IHnR1aPIbTIiTf7w8vtoSzzYZVKcQjtpWbGoBIAIZvieKNmEmjJNCuQciHll7xP4ujKkNKDsQ1ODaq5bi0MpTRQ/RMewGWVF6oGEWZBYD7QFRlYNQd0wK9dPsqmIXo7lcY3rIhanFo9Qy62ROFfuWKfNtwZtwhsIar/KTKPeEZhMqwbzsSuD/mmA17lIxqSw/nr5yCyCKmVSlL7hNWRNCEZMzPd6lE589JtdDSuBWuDJH7gvDcLPqYwFATinjQ/mvx2ftbK7KQIKwrhuB5UQKbONN1MpsH+xv+fWywiyemSJZEalKSv3wQBs/XuBEAqsji2kOokyr+ph9urwHw== 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)(186003)(122000001)(1076003)(2616005)(66476007)(8676002)(66446008)(64756008)(38070700005)(36756003)(316002)(38100700002)(66556008)(66946007)(76116006)(91956017)(110136005)(26005)(6512007)(71200400001)(8936002)(6666004)(6506007)(2906002)(86362001)(5660300002)(6486002)(508600001)(83380400001)(44832011);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?V/+MTFWddLVCcs3uVfGYP3j?= =?iso-8859-1?q?1ZOxcxBcag5e/lW5yoIqgmtPQTvhIhzJ2R9Ai0gXimvhaEmIwWZqbkaMr2xz?= =?iso-8859-1?q?nrCk7r32Sml6XTpfzGJ1MwT2DReO+ge943m30WCUv0+XqLlhE9eOfjxDijpJ?= =?iso-8859-1?q?qCuG/w6xCqSWmOlNgubZPx826oNGjZZWx82n6NZG5cZwLnMWpEYDs7cYTaRL?= =?iso-8859-1?q?hdNl9E4T/JhakhWKyADMaMj04bTD5aipChULRRJz9Oxk4CU9RrTatVt9OP5N?= =?iso-8859-1?q?Q1HlKX0wgYeTgtEQ8XJy9EQSKueJOWWKQUeSf3djNac7YN4x2P87NIQFNv+H?= =?iso-8859-1?q?CfZlg2TgyKQVbOf3+UJ1akIeZALFc0p2IM1nesTynxwgnVwLmRzvSKrHVA0H?= =?iso-8859-1?q?mjmDGS82r7WWmLc3qGYuf5IrNgOLJcBrt6Ptvz4Ne0wzB5crrOvGqsXCh4sJ?= =?iso-8859-1?q?ZWV5x9MXOKh1p+r5/fl38tTwSp+mSz40kYif1YoAt1tKM/MCVrluH+YkrEZn?= =?iso-8859-1?q?UyV6P9rS30XTSpRLUC37DQSE5cQr+Tr+/a0Aurp3CJUatcbIaAQaZokowcLg?= =?iso-8859-1?q?xGbxz9Y9V1lvUxr4kXgTIrTidnI2wK5ssA0mk4MdYC21QsCxoLzMd8sD9BOB?= =?iso-8859-1?q?xu+zAsZm4aJ3Nzs5m7oLO1ZtwcVbWiwl+FyeUSgPG53+PIKm+L/Z3cHW5rBF?= =?iso-8859-1?q?Lf3BuQ+IJazy/UesnCgxORJgT9JJyCnN6zMwbh8WFn7EvK9UFmDtKrUMU8aD?= =?iso-8859-1?q?ueIxylpW55jtEI+2jzU7eQMJDafv981qCDfj/NSjiU+LDwsrq2Tj9iyLqIn6?= =?iso-8859-1?q?VVhp3oEQx/YjlRqzq6lnYJZsahYIXaECmQb4WhmyHvmKzMRtOKdmUdPmBgU0?= =?iso-8859-1?q?cWTJCUmPOlygOFIy+ln+zoH80mzN5E5N0swolMf2Z2D4ISd19DXkJEVsJ/DF?= =?iso-8859-1?q?rIEqDYfZqFo+evbf5iGOe8jldZVIlE0YXimLvHRz/fMYzpyA8ZRNh50AVIRW?= =?iso-8859-1?q?bn73LD9Vq8/GRItP+hOWkashEpq7Xn9uiNh6zF87jiTiOikxiLo81gf+jfez?= =?iso-8859-1?q?7e4Js/17nGiLQVsEPADBDrjuAHQVcjX93Rpiv4KsY9Ial7aPwWCYuLvng0ln?= =?iso-8859-1?q?V//wtXVIdueqXMLkIJ6muA2RDBaEk87B5quEKn39oP9R+qPUpFfJqWbrXgLd?= =?iso-8859-1?q?eXZN/aBKpcW+B1+2ZBQYRkJ9ctPcw9EXkYFAVzUOtUdHytO+iPfGuJH4VL0V?= =?iso-8859-1?q?hZylVjRauRS7C+jwTQzbCRhucPPl6Ph5Co6KISLeCHkwgbFL41GsPEWZPqZ2?= =?iso-8859-1?q?umJVRbkRMOjS//QGF/VohMyw4DZWwfsWz90KIgORAkamz+7yAThewAyUVXyc?= =?iso-8859-1?q?VxrixRF7W8ld3TXVIxdJf6rx/ZLTmLBzB++gTBxr4euyVWyOHTt2j6K2F9KW?= =?iso-8859-1?q?6P+csw8uNK0mIi3qi/wJqCsmnnze1XrcwmzvNpU5BiKHAZpx5xjFFpBY3TYm?= =?iso-8859-1?q?ILBFAd6SQ7/FMxPmflII7ct0P86nJgmyeMG8EKHKAZg0q8n2Leu5gFnabC1G?= =?iso-8859-1?q?HBuQ5rXpS/bjK3RMgIW14YUrS2w7HdL4VaAOYNoOtqVYOsmL8IE1GuXGwS5Z?= =?iso-8859-1?q?nkSbie5tA37iZWFB09I1ygu5JRZ49VFq7rvImfIfzLR8YBXb4o3em7GGQUyZ?= =?iso-8859-1?q?wl4Z71t9PbitslkPrEhTdfGPVPXNj2Fb37RAF0eE6CY8pfkDQ3NTMrlJzuWK?= =?iso-8859-1?q?P17uml1bu8L0N8I1HKUiPCX5B/OoFClnZEfs/MBvif7777eM2Y7NlmImhEL8?= =?iso-8859-1?q?ztI+tj3I=3D?= 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: a5f98614-3db5-49dc-bd5e-08da2d6b7823 X-MS-Exchange-CrossTenant-originalarrivaltime: 04 May 2022 01:14:07.8915 (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: BDSbPcH1YAiIEFOx0Kc+nrmOprkWnj64444ZgTvwJKuu5S+/Wp0lUs2qOWBHIntjpDnSsQVxJ6QpzIN8cV38Bw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR10MB2688 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.486,18.0.858 definitions=2022-05-03_10:2022-05-02,2022-05-03 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 bulkscore=0 malwarescore=0 spamscore=0 mlxlogscore=999 mlxscore=0 suspectscore=0 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2205040006 X-Proofpoint-GUID: 3lkLEK9D5ekYBcuV5kDWsPpwbZ-cHOxa X-Proofpoint-ORIG-GUID: 3lkLEK9D5ekYBcuV5kDWsPpwbZ-cHOxa X-Rspamd-Queue-Id: 6345C140041 X-Stat-Signature: s9b46nbasic9een8i5j5prunc3zfmfur X-Rspam-User: Authentication-Results: imf26.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2021-07-09 header.b=l8Tvs8eO; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=aOth+UOH; spf=none (imf26.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-Rspamd-Server: rspam09 X-HE-Tag: 1651815016-175351 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: From: "Liam R. Howlett" Since there is no longer a linked list, the range_has_overlap() function is identical to the find_vma_intersection() function. Signed-off-by: Liam R. Howlett Acked-by: Vlastimil Babka --- mm/mmap.c | 28 +--------------------------- 1 file changed, 1 insertion(+), 27 deletions(-) diff --git a/mm/mmap.c b/mm/mmap.c index 7704c879bc6d..32d3922cec27 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -437,30 +437,6 @@ anon_vma_interval_tree_post_update_vma(struct vm_area_struct *vma) anon_vma_interval_tree_insert(avc, &avc->anon_vma->rb_root); } -/* - * range_has_overlap() - Check the @start - @end range for overlapping VMAs and - * sets up a pointer to the previous VMA - * @mm: the mm struct - * @start: the start address of the range - * @end: the end address of the range - * @pprev: the pointer to the pointer of the previous VMA - * - * Returns: True if there is an overlapping VMA, false otherwise - */ -static inline -bool range_has_overlap(struct mm_struct *mm, unsigned long start, - unsigned long end, struct vm_area_struct **pprev) -{ - struct vm_area_struct *existing; - - MA_STATE(mas, &mm->mm_mt, start, start); - rcu_read_lock(); - existing = mas_find(&mas, end - 1); - *pprev = mas_prev(&mas, 0); - rcu_read_unlock(); - return existing ? true : false; -} - static unsigned long count_vma_pages_range(struct mm_struct *mm, unsigned long addr, unsigned long end) { @@ -3251,9 +3227,7 @@ void exit_mmap(struct mm_struct *mm) */ int insert_vm_struct(struct mm_struct *mm, struct vm_area_struct *vma) { - struct vm_area_struct *prev; - - if (range_has_overlap(mm, vma->vm_start, vma->vm_end, &prev)) + if (find_vma_intersection(mm, vma->vm_start, vma->vm_end)) return -ENOMEM; if ((vma->vm_flags & VM_ACCOUNT) && From patchwork Wed May 4 01:14:08 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Liam R. Howlett" X-Patchwork-Id: 12836655 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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 11F1CC433EF for ; Wed, 4 May 2022 01:14:53 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id B79D66B0078; Tue, 3 May 2022 21:14:48 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 9D1DE6B0082; Tue, 3 May 2022 21:14:48 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 2EB8D6B0078; Tue, 3 May 2022 21:14:48 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id E90068D0001 for ; Tue, 3 May 2022 21:14:47 -0400 (EDT) Received: from smtpin29.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay12.hostedemail.com (Postfix) with ESMTP id CB15212042F for ; Wed, 4 May 2022 01:14:47 +0000 (UTC) X-FDA: 79426291014.29.4C8F69E Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by imf05.hostedemail.com (Postfix) with ESMTP id D820510008A for ; Wed, 4 May 2022 01:14:34 +0000 (UTC) Received: from pps.filterd (m0246632.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 243KnJSI013484; Wed, 4 May 2022 01:14:46 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=YutVnEIoxxddCFxV6W/XrN/pgLPRVBdLjD5Tm/ZbBBM=; b=K94f3/gsQ1kX0suw129qzu1PiyoC4D6Zj1v4IindAp2e9/TaHyoQt9TOzBYxIeJywsW5 lPsqThYXP/o3/R966OJ4/tzSlHul1DLnCVvlcGaJQeXqp06kKAxGWzJH5kWEJMxlnV7d wBvlf62vsicUE7aE+iOGOQywdPsp7l1FIvZXrCQPzaXdDnG/cJ+qXs8dj9DZDyNJcPBO f94la96IqAuk5m8eUuga5Z4ZyTP3uBSgysE4ZJalPtzoqeQzTR82Lh9N8iivV4nkuZTP JZ3xGUBd228WmdnfVXpxFpiVfJwHXBqV5vtjqMj0SuUC2dgAe/g4sdjgfhJ+24/Y6j+c SQ== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3frvqsf6fq-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:14:46 +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 2441BXR8013207; Wed, 4 May 2022 01:14:45 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2049.outbound.protection.outlook.com [104.47.66.49]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com with ESMTP id 3fsvbmv41r-13 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 04 May 2022 01:14:45 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=CQECeDZ7r6SeXIZ678c1o6U5upPTzkTzaYDyyZodEZ6dsq5xY2L//DzYeINLJdj8ThqGJPC40Tc5e/TNDT852yQF2pTNvO6aaPOPgHX4eqPGnwFN7a00tEddw0xydl9FxSmRejpdTkeESpBnUX+XnwCD76Bp2Ito7RndAacwMuKqSVnmNc0XJhOBGsUZiJIjs/24mTHMf+LJs8NBzeDwx0p4kG97E4J3kdc++PAip8u4Dwh5+8aPgYW/7gY8VgnSS6qlVT//lJhO6WFkV7e9rAqmGTlOykF1nz8TQIzr7yasPRfYoSEGyoCDL1yUP97YHn50B4B3fKqjymp/Xl+3PA== 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=YutVnEIoxxddCFxV6W/XrN/pgLPRVBdLjD5Tm/ZbBBM=; b=UkZxLWHTwWvjUEhvsku4FgnrXQwGZzG38/KN217E+C67ld8n6QkF7HSowuNUL/mBXs8QMO74sc2RvYDTSigdIGBmTrgAyc0NtT4f0sM6xX1H0wT7BoqXI9J4BqsOwFnOGzOg2JFWrEJj1hs/ZCJack298k79Ph8WqUPkmg8hYXocRCrZE2gV6DSWumkZqfZygUQ90w9ZkNwhWFZvPcZn9jfkUiwhEeFDpC9e4l5rnZyRHhJYMfSeh+xz/pmyqrri51+MMRLNz25Vtapm9lWGhyak6PMid5gyJctMIpBCissYU/ubYz6tO3C7t5fFTPJhQL4zXqZGVz5lVGM9so+GXQ== 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=YutVnEIoxxddCFxV6W/XrN/pgLPRVBdLjD5Tm/ZbBBM=; b=cOYwgCSGIJoj24n6dPomtgF62YaO9qJ0R3mVyYzotUHVUmf8vk1msHLuSM4WmS0/U3vIBl16VaIR3WUiIytSkHHssTVLWHz6DOtx8Z737X4TqNEPQ/UztaV5Ln8VIwUm/M70z0xbRuJATmzuT8ayjn9q5n2zHia52ezk+P8y7wg= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by SN6PR10MB2688.namprd10.prod.outlook.com (2603:10b6:805:4e::31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5206.13; Wed, 4 May 2022 01:14:42 +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.5206.024; Wed, 4 May 2022 01:14:42 +0000 From: Liam Howlett To: "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton Subject: [PATCH v9 69/69] mm/mmap.c: pass in mapping to __vma_link_file() Thread-Topic: [PATCH v9 69/69] mm/mmap.c: pass in mapping to __vma_link_file() Thread-Index: AQHYX1RBmRO5roYk+EqivuVFKMNhlQ== Date: Wed, 4 May 2022 01:14:08 +0000 Message-ID: <20220504011345.662299-54-Liam.Howlett@oracle.com> References: <20220504002554.654642-1-Liam.Howlett@oracle.com> <20220504011345.662299-1-Liam.Howlett@oracle.com> In-Reply-To: <20220504011345.662299-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: e4eb3893-a49e-419c-8013-08da2d6b7847 x-ms-traffictypediagnostic: SN6PR10MB2688:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: nVrl6EASfBv+RY3h76wIyUlFYwQ5McWL9YamHdB+1t1sdkIoSyyS09RNeoIkVnF8FPiQRjUJD7GtMI3tC1IojzEQYd8IHyCMFTjSrm/oaBYJZ6492Wi3les12+qGjZL5L9FeTH5dUcBZEwDspbV0PY+4gsf+LJ1CQWAdZqRJrdun9D2uRuFexM6XAe7a8KISqmQIKGr+9g5XowXymwaK0/WvTOJxGdFTWDqXnhE5twgkYzq0qgGFtg4WeMWSZt0BsHPtp/IVXk053NimsrPQs2ShehqwNfudtYkY65PqueUXraDcP58y20kpUBR8982pACzX3y3FevqboR1lTEVETexZdcdNdgV9VqLtOPonb7p00dq2JO5Np9z1fMXQdMFWFimW5kyD8qs4hDEQu3B0GsMzQyVkJStlp/sMP9TfyMymCbwr4QNczWP6d4R48g+0lfvqUio0iCuowm8wrxSL2cwF+hw6d9nQ3WwbMBOINT4vGfWEHboka+41kY4DZCf23JtVptP6+9+G+OOxCgU9m7Me6U3uMhYB3APTpntOO8gggEAy9gDdgzKeyFLmoTFX5C3gsxhH+DJ06qOH9ezVrX3Y3n8Xv2mXKCueKCjeqlTb9sRB+9wgD0Qf1JZcKifSzgOlnC1q6qiTyty+u93EpXautZwYANqGGgXclHg7baccQ4M8xbu6V8G+u6GCNolUHbLRq/n57yo1axFRxaD2fQ== 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)(186003)(122000001)(1076003)(2616005)(66476007)(8676002)(66446008)(64756008)(38070700005)(36756003)(316002)(38100700002)(66556008)(66946007)(76116006)(91956017)(110136005)(26005)(6512007)(71200400001)(8936002)(6666004)(6506007)(2906002)(86362001)(5660300002)(6486002)(508600001)(83380400001)(44832011);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?PvZJOkc/SRgyiUXiow8LZlu?= =?iso-8859-1?q?ZM3aLy0wxL4TtTqVuqSXX12kO5B8Co8BU0xHkFwF4/DmGX98ytrMrd2ueD/q?= =?iso-8859-1?q?2N8CZlijkDnJtwydEuEIFBRRD98YFPV0noWZ9byMksSh/o5wr0Ob0u/fzMsI?= =?iso-8859-1?q?eMaZD1kbua2fK9y5WJ/+t+HS3Z048gXmpS0KwUBD1/sNb03vUIB+ViFduuR0?= =?iso-8859-1?q?4rV7yo7EDVGKxCXuk5A3BTW7tXe/NA89tW7SomnghUdGskiSp7yN1gBQrxSJ?= =?iso-8859-1?q?dgtSV3l9BdOKoET400u/oSulLF/kwgKmtRo4Zai2jOGMpFssewsruPgXoWaL?= =?iso-8859-1?q?6rB2UmWyP0l4BGUXFOsIDkOpP4LMRs6vn1Y/MMSdy3AdfNMzfZA9eQM0nu9E?= =?iso-8859-1?q?yzNnTB2XtuU+L0Y4DwdtxznzOFxHt4G8g4PDyzDgz7K9/SdhjyYnNtM1QLN7?= =?iso-8859-1?q?vt+qIsg3pPJN3tW/CxKrCUM8CQPqYYj+kRDr6OPnSsJ5uQEbyAlbtxdWEGY9?= =?iso-8859-1?q?/JCMIr+0YH9tXIczvRxbJs1xRXkNhBBO14b9TO6dCxXilO/Cumnzzf89k12B?= =?iso-8859-1?q?C0sWEztWLZj8FELDbmLzcO1Dj9B1/6TnGjO+U5V4JmJX3PCjnm5m2gUppk1s?= =?iso-8859-1?q?pYJpVxXqDbo9NTMkmPLuQ1cndh5gCa2e+aLrr8EZ4RXegoMhb4DoBtIwozGG?= =?iso-8859-1?q?15ezh8YdkouNWxqC224qrpbwyJx3FgIeqtLMzpT9xfR5tNQ3hrPccBkqIEoc?= =?iso-8859-1?q?F2vBKvZACBwD1eHw2YGCyJVSK0NQ3/utcslecruDUe6SNmQFKzaxmNN+IOqN?= =?iso-8859-1?q?lzE2GB7uhdRGNapFNwOrVkoPSJk9pC8u4QOgeXM6qDNJro1CPbB4hbM+QvbF?= =?iso-8859-1?q?N1s9yBE9+CtaageFbNGLhhXUZywH8yIU3Jz3ZOCMGxNdOylirc1JsVXJwHm8?= =?iso-8859-1?q?c3TyHiykYqZYEsv8hG5nWQYKQWx7nCjSvfFtmns8T6WmCWZZHHb48Rh0/upN?= =?iso-8859-1?q?qzIUZZRNJHslzZRYh8/jlva2HQKgPbZYfc1xPZb1e+A7bP+46Jevlw/7yfyR?= =?iso-8859-1?q?VgOYhNDUO7BTPPoJrWIISGqIXwMDdoQgF4G/1GqgHSnaZc8lqCq3I/p8sTKK?= =?iso-8859-1?q?goYA5JtlDWu7rNOiZcUsHLICxejLbJiEHg28E/mAnByB9vn1Re8TrwoY9pmH?= =?iso-8859-1?q?vcpo7TZQasrQ21FkypTzTmrQEdUqeiJf1xoWTXIIMc/GRQNz5Nn0cuGyv1N4?= =?iso-8859-1?q?UaR0fqLd9q6LPpcpK/puVnFQNaUaHG4hbAxczxOh+BDMUiBm6gmM3BICreu5?= =?iso-8859-1?q?zZfuCcWaHLGCdcV1OntHyMnRhGosXsm073gNTFR42I1uqcNHOJLzu7EfPyyc?= =?iso-8859-1?q?bwKSzVKvtNaU/G205+Oq0Ufa6+v215ASMsqO7qIor2yqaWm61CC4lq06Sm03?= =?iso-8859-1?q?LGqeEngUYBtrEv3sfu0eJ9ChGi/0qi4oHfoWHNPnRFKXFqbMrfHIJHrXMzn8?= =?iso-8859-1?q?/HuaHnauiz+GIxIRLBH9J9m/Fr02fNqsW6CHEuFGpeA5my0/qJGyrwaWgBRr?= =?iso-8859-1?q?y3lQUt9JWTneY1OwNyT6GNYVmS3T+p6xmzMgD7gXdVl5sklkBC4o04YjEoxv?= =?iso-8859-1?q?KbiYVGDVdh+rEDSRPkIT7ITilVmNtLwYltN7oA3D2TZ3ou/+7ISg7bnrvt+1?= =?iso-8859-1?q?kh7qxP9l2+67HMK0CjKsEI5wtPV6e5Ssg2b168RStfiQW4SwKu/NvmW0yBm0?= =?iso-8859-1?q?6R96UieIOAYaZJI/U6iVHXm0fxJ9dr0GIIwy2yo94F9O9/ZJtAL9kmAJUfPk?= =?iso-8859-1?q?WaBrApnQ=3D?= 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: e4eb3893-a49e-419c-8013-08da2d6b7847 X-MS-Exchange-CrossTenant-originalarrivaltime: 04 May 2022 01:14:08.2353 (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: vuz8WckZSdN+5qM5xzDh+6dwZcAAtlMy+52yB//GTOM0LBies6uenpuVmxI6In4eDhMO64A7suEFbdWWspQdTw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN6PR10MB2688 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.486,18.0.858 definitions=2022-05-03_10:2022-05-02,2022-05-03 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 bulkscore=0 spamscore=0 malwarescore=0 adultscore=0 suspectscore=0 mlxscore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2205040006 X-Proofpoint-GUID: oAE6zTeW5Xt9Zb3ZhyrSTTvQtXQBNQmR X-Proofpoint-ORIG-GUID: oAE6zTeW5Xt9Zb3ZhyrSTTvQtXQBNQmR X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: D820510008A X-Stat-Signature: nzxd8re8mdz58jrhcuhax6nyhgerqt6z X-Rspam-User: Authentication-Results: imf05.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2021-07-09 header.b="K94f3/gs"; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=cOYwgCSG; spf=none (imf05.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-HE-Tag: 1651626874-48673 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: From: "Liam R. Howlett" __vma_link_file() resolves the mapping from the file, if there is one. Pass through the mapping and check the vm_file externally since most places already have the required information and check of vm_file. Signed-off-by: Liam R. Howlett --- mm/mmap.c | 33 ++++++++++++++------------------- 1 file changed, 14 insertions(+), 19 deletions(-) diff --git a/mm/mmap.c b/mm/mmap.c index 32d3922cec27..c4d79d901085 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -246,6 +246,7 @@ SYSCALL_DEFINE1(brk, unsigned long, brk) if (brk < min_brk) goto out; + /* * Check against rlimit here. If this check is done later after the test * of oldbrk with newbrk then it can escape the test and let the data @@ -322,7 +323,6 @@ SYSCALL_DEFINE1(brk, unsigned long, brk) if (populate) mm_populate(oldbrk, newbrk - oldbrk); return brk; - out: mmap_write_unlock(mm); return origbrk; @@ -454,21 +454,15 @@ static unsigned long count_vma_pages_range(struct mm_struct *mm, return nr_pages; } -static void __vma_link_file(struct vm_area_struct *vma) +static void __vma_link_file(struct vm_area_struct *vma, + struct address_space *mapping) { - struct file *file; - - file = vma->vm_file; - if (file) { - struct address_space *mapping = file->f_mapping; - - if (vma->vm_flags & VM_SHARED) - mapping_allow_writable(mapping); + if (vma->vm_flags & VM_SHARED) + mapping_allow_writable(mapping); - flush_dcache_mmap_lock(mapping); - vma_interval_tree_insert(vma, &mapping->i_mmap); - flush_dcache_mmap_unlock(mapping); - } + flush_dcache_mmap_lock(mapping); + vma_interval_tree_insert(vma, &mapping->i_mmap); + flush_dcache_mmap_unlock(mapping); } /* @@ -535,10 +529,11 @@ static int vma_link(struct mm_struct *mm, struct vm_area_struct *vma) } vma_mas_store(vma, &mas); - __vma_link_file(vma); - if (mapping) + if (mapping) { + __vma_link_file(vma, mapping); i_mmap_unlock_write(mapping); + } mm->map_count++; validate_mm(mm); @@ -779,14 +774,14 @@ int __vma_adjust(struct vm_area_struct *vma, unsigned long start, uprobe_munmap(next, next->vm_start, next->vm_end); i_mmap_lock_write(mapping); - if (insert) { + if (insert && insert->vm_file) { /* * Put into interval tree now, so instantiated pages * are visible to arm/parisc __flush_dcache_page * throughout; but we cannot insert into address * space until vma start or end is updated. */ - __vma_link_file(insert); + __vma_link_file(insert, insert->vm_file->f_mapping); } } @@ -3019,7 +3014,6 @@ static int do_brk_flags(struct ma_state *mas, struct vm_area_struct *vma, struct mm_struct *mm = current->mm; validate_mm_mt(mm); - /* * Check against address space limits by the changed size * Note: This happens *after* clearing old mappings in some code paths. @@ -3077,6 +3071,7 @@ static int do_brk_flags(struct ma_state *mas, struct vm_area_struct *vma, goto mas_store_fail; mm->map_count++; + out: perf_event_mmap(vma); mm->total_vm += len >> PAGE_SHIFT;