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; }