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; /*