Message ID | 20210428153542.2814175-42-Liam.Howlett@Oracle.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show
Return-Path: <SRS0=wPXd=JZ=kvack.org=owner-linux-mm@kernel.org> X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-17.8 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,PDS_BAD_THREAD_QP_64,SPF_HELO_NONE, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id D26ADC43470 for <linux-mm@archiver.kernel.org>; Wed, 28 Apr 2021 15:37:51 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 4DA1D61407 for <linux-mm@archiver.kernel.org>; Wed, 28 Apr 2021 15:37:51 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 4DA1D61407 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=oracle.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id 94A3A8D000D; Wed, 28 Apr 2021 11:36:57 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 51B218D0014; Wed, 28 Apr 2021 11:36:57 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 128D88D0015; Wed, 28 Apr 2021 11:36:56 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0020.hostedemail.com [216.40.44.20]) by kanga.kvack.org (Postfix) with ESMTP id A164A8D0012 for <linux-mm@kvack.org>; Wed, 28 Apr 2021 11:36:55 -0400 (EDT) Received: from smtpin19.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay03.hostedemail.com (Postfix) with ESMTP id 6293F8249980 for <linux-mm@kvack.org>; Wed, 28 Apr 2021 15:36:55 +0000 (UTC) X-FDA: 78082178790.19.EC18F9F Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by imf13.hostedemail.com (Postfix) with ESMTP id 707DCE000129 for <linux-mm@kvack.org>; Wed, 28 Apr 2021 15:36:46 +0000 (UTC) Received: from pps.filterd (m0246627.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.16.0.43/8.16.0.43) with SMTP id 13SFOtGQ015173; Wed, 28 Apr 2021 15:36:44 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=corp-2020-01-29; bh=jkgLPuRUxsNkItVYOxz4rhIUE0a8h+rY/Nv9L0hZxC0=; b=AWKMv4Dc+jYCx0dRc1B2CXMHeZpQI/TpI5fkDuD198P2iFYmkgKsFDqPalPbi2eigrmX Gpp+aSkIIZ/+Xay8/sfRFQXFHtYpcImnNuyttCY1uY/m8E13TkpTUKkg6ONks0YYBBSD BPxR5sLqNOJWvUWK2O5FgraaosXm0B3+ENj44sgVq6DBxTvFaCdED9SBSUgAQYH5yEwG s9im8r9Hzd2UUAKcNkgrR/4jhwJTk8ldoDRoqBnQyN2jleSS4LOvPKoMFyAf2W7943l+ bXmZBAxmN1BCf/Zr69AxmT40qViCHxjHG/Tnf0PDScmGpdLvobuKML+WalxFf2A3SwTz Vw== Received: from oracle.com (userp3020.oracle.com [156.151.31.79]) by mx0b-00069f02.pphosted.com with ESMTP id 3878pk84sx-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 28 Apr 2021 15:36:43 +0000 Received: from userp3020.oracle.com (userp3020.oracle.com [127.0.0.1]) by pps.podrdrct (8.16.0.36/8.16.0.36) with SMTP id 13SFaASr030176; Wed, 28 Apr 2021 15:36:42 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2048.outbound.protection.outlook.com [104.47.66.48]) by userp3020.oracle.com with ESMTP id 384w3uuag3-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 28 Apr 2021 15:36:42 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=DH//u3RXaktPjpbJkTXHquoBYBROhEQ3p32JG54VZU1V7Iveu2thUPmfObSoOa0kWThetR2XEobflGNo9k7eZfko2qij+jImXCzirW8ryqWzscZA0c+9OPClRgiIs6IbFW3NgGzFNK4oke0CkBjnFv0n1EzM8cJqduHV8dGLnut8r/02n6vCmDpV5ycZeTQ/3kWhQf8HVHmU/gKIk5g761OOGfFMu/1VnnsLU5h421hY6IGVhz6LfOQMXkQSDcncfhy93jGlFgK2WK57cyau695THelgmR32Sw8N5bE5uBckwxc8RlOF84STrtzNHJEMKmCowtBcaMB2sCozFZYM9A== 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-SenderADCheck; bh=jkgLPuRUxsNkItVYOxz4rhIUE0a8h+rY/Nv9L0hZxC0=; b=JxkyK4Yu9SYSVFTfTJiln8hi0pdD65Bld7WL3i4xAQLeEFjnu3HL+I5cOUePAagCOCUU2PWrUwQOZj9s4F/BxxokD6BCrRwqvEVCiOuEFY/YoEor0gtdqlD1+anHy0SBlQFS53wW+4v96krCI0B53FM2/jN4jvm5rpW020vSzHZSSF8qpDpeCFb8UCka7yBst+Fpc5V+OqjPZrwvrykz3aJhEfLghoM/sxask65cDDDNhmuDY0MCdmTGC084DE/GDTlstcG0l7S7/tP+WJhPjwx2fVXEGNYpHtNzCJpBTS/wf5H38pHJtJFsS9q2t9B4WUX0gs1/McEpoJMh5BVhQg== 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=jkgLPuRUxsNkItVYOxz4rhIUE0a8h+rY/Nv9L0hZxC0=; b=cEgZrkHRtEqWEXfnCb0CS0W+n/lj+ZCvCas45NW5LOTnFpwVULOZ7bzJo11SuXa320YH6wgDWhWQbCDgs7J4whwwyPvdeskTNAvZjZ5obiItSNhKS/qwEbnsPeOwSyyjruBa/2ZAJuRKjiEZ58KqIOi6d4QDnRjrTTyVBicS9mk= Received: from MWHPR10MB1582.namprd10.prod.outlook.com (2603:10b6:300:22::8) by CO1PR10MB4515.namprd10.prod.outlook.com (2603:10b6:303:9b::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4065.23; Wed, 28 Apr 2021 15:36:39 +0000 Received: from MWHPR10MB1582.namprd10.prod.outlook.com ([fe80::353a:1802:6e91:1811]) by MWHPR10MB1582.namprd10.prod.outlook.com ([fe80::353a:1802:6e91:1811%8]) with mapi id 15.20.4065.027; Wed, 28 Apr 2021 15:36:39 +0000 From: Liam Howlett <liam.howlett@oracle.com> To: "maple-tree@lists.infradead.org" <maple-tree@lists.infradead.org>, "linux-mm@kvack.org" <linux-mm@kvack.org>, "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>, Andrew Morton <akpm@linux-foundation.org> CC: Song Liu <songliubraving@fb.com>, Davidlohr Bueso <dave@stgolabs.net>, "Paul E . McKenney" <paulmck@kernel.org>, Matthew Wilcox <willy@infradead.org>, Laurent Dufour <ldufour@linux.ibm.com>, David Rientjes <rientjes@google.com>, Axel Rasmussen <axelrasmussen@google.com>, Suren Baghdasaryan <surenb@google.com>, Vlastimil Babka <vbabka@suse.cz>, Rik van Riel <riel@surriel.com>, Peter Zijlstra <peterz@infradead.org>, Michel Lespinasse <walken.cr@gmail.com>, Liam Howlett <liam.howlett@oracle.com> Subject: [PATCH 41/94] mm: Change find_vma_intersection() to maple tree and make find_vma() to inline. Thread-Topic: [PATCH 41/94] mm: Change find_vma_intersection() to maple tree and make find_vma() to inline. Thread-Index: AQHXPEQ2JoekAuRdn0afRqRwAKkEqg== Date: Wed, 28 Apr 2021 15:36:09 +0000 Message-ID: <20210428153542.2814175-42-Liam.Howlett@Oracle.com> References: <20210428153542.2814175-1-Liam.Howlett@Oracle.com> In-Reply-To: <20210428153542.2814175-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.30.2 authentication-results: lists.infradead.org; dkim=none (message not signed) header.d=none;lists.infradead.org; dmarc=none action=none header.from=oracle.com; x-originating-ip: [23.233.25.87] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 42550c42-af32-4fe3-d488-08d90a5b6a9d x-ms-traffictypediagnostic: CO1PR10MB4515: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: <CO1PR10MB4515E014D9C46168239BD7C8FD409@CO1PR10MB4515.namprd10.prod.outlook.com> x-ms-oob-tlc-oobclassifiers: OLM:7219; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 9LuYX3OL+y+SdPNnVoH6LH5Ur4jVVBog6aK8hMwVlSZ+ARH0gM1rnuISOVidN+atjNrKiTZZaA8/wXb62suJ04H1d/OAsWexqrUDa2MOxiud3ggR/2WjVF+knkyS7ziJ6gJbKk0ZPtOVwRUdM9uJZttAljeiVd6OrTgPOu90Kjef4k3w2LTOxZ3f0V0NhJFHCC/GOFFwZGPGOrRQKQk8jdMUYWb8lawM2ODBTaDWjRqfOVKpxxefOnKuFQY8+NNJopSFOZkc7ZZbCgxzNxMk0GTPTsezSU6a8LQtAh08IiDEyAHosm9yOQA+Xx5PmN2pP9BbOcoBs19igx+sf3mMK4uDrQVqSu0c3SDJDfL71HQZhObn+HAAQ3tr+WmzL0/arrGXfEdSRGP0DbVUvvE/3L7bv72KiPJDFcEJXw9sjv1TyfTu2nk8KJaypPd+qGQZE4wStmU7c8iAVXghqDKioS7kTzKtkPCWcz1Ip6BfTiRewuV1ju8Fw1vuwFKGSuHUp438SjjtrsOLmCBFb9ic9teKHyVhD+IebTVZp/9I3nxnKIs1d2RkGaq2Ss+WSKehO/FUzeCPYmHuQagciHKpJzpdxGSCZMiJas/hcuRRPv4= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MWHPR10MB1582.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(396003)(376002)(346002)(136003)(39860400002)(366004)(6506007)(4326008)(36756003)(54906003)(71200400001)(26005)(110136005)(6666004)(316002)(8936002)(186003)(44832011)(7416002)(2616005)(8676002)(76116006)(2906002)(91956017)(66556008)(66946007)(478600001)(66446008)(1076003)(107886003)(64756008)(86362001)(5660300002)(66476007)(83380400001)(6486002)(122000001)(38100700002)(6512007);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata: =?iso-8859-1?q?fN3AzLXPsTwMC2xvyjfck8aYT?= =?iso-8859-1?q?kL2tpPqygdWBRiV0MSe/CNsr4Hxa1LIGOgbfmfs9ueWLG09KMgHL7JzjLhhJ?= =?iso-8859-1?q?vLy/yx5hvl5JCe1TU2Ay1cPtla0EqO1bqh9tOOexmBIWayUHRHo7jNVaeG2Y?= =?iso-8859-1?q?RKUcAUEzgjvvFunajGR+8Qs0wEivahPY6zdleUGDa3nMlEKnRODG6yJTCF6z?= =?iso-8859-1?q?HkTMkN3rSxlv3lZiRey2T96wCCRaUf8ubXPQEA/nYxoT7ua9y+Bozo/DdGrH?= =?iso-8859-1?q?D2L5qTH3/SU7bCNSRuQIe5fXsRznILXUEnqzHfQpbnJx6Yn3D6VRgrvDbpCL?= =?iso-8859-1?q?WI4/3qO5Llhpuf/xpbt+4H1TcCV6U1pS+QFh03ILdx1UrrZgYtbBAnQbvFEu?= =?iso-8859-1?q?SeE/KDrQH0xUrvd4RNu64nEhcmDbtqdLEUwFuaBHUdfSdKSBnkrZxSlPhNTd?= =?iso-8859-1?q?0lDbeNovIZTJbDuB8gbeYe6pr+Mx75p607nCdwryoDs4kkI/41h4R6TYXB+6?= =?iso-8859-1?q?StpGGcNXEGX6syrBB9NDT25aclPOUd1/0Gd7ENg9fqcQy8epjZdgEJdRySkY?= =?iso-8859-1?q?Zlzo14YKjYRSCmABpVZtoxVmZCY+XNL/2hwYLMgvXd0jw1dUqQOBTHW5K7qD?= =?iso-8859-1?q?ehT5UJGAMq1LMouO4CJMzh5r8B3Q3MJTeSVNoK2OAlpLf4aIjapWDvAIs9bJ?= =?iso-8859-1?q?33HGovgCx6Ho2Wu1OjSRIXT6Bfm4iHjidsfnPJ/jxpkDE0m8lOr9VYoXj7XA?= =?iso-8859-1?q?fiks1d3rfTvBhG32+lyDJ8o8yta2xl2iLzvxjBu8blyqpEH1bC9IB6JGgRBs?= =?iso-8859-1?q?d8tf5D8j1A4WfgEmFmosYMITjOcc2QGCW/ukNk6HdhlwuD8dGWnEOQJjc0nx?= =?iso-8859-1?q?zzHvgVIVCzlelw9Vg9QzjXmYRI9ldXtmO7EAxio2wfWW/eL3jfrBNGz2hjvs?= =?iso-8859-1?q?heuPbGe5C54nOiiOYcTHC8Xes4URGotGfMyu/bMDFbRkvJqoZeo+6p4sQ0dC?= =?iso-8859-1?q?sz/+4G5Ftb9rkFV6GrtpPUxXaxRCcY2v8t2WD6bYXVU41pFwSUMIePecSF4o?= =?iso-8859-1?q?RBZZoIp9y11TeHYBRXb0X/vtjUcJ7MDBLZkO98buTlaxQr14xMUfJZZolJx7?= =?iso-8859-1?q?9RCBk+aZuuDQQikE4bD1VSAb/yOB75cLKIwapYT0tPdD/eu27Ix6+ez8E77d?= =?iso-8859-1?q?8j2dnCHVLJXalZVnGDvlB3+2yBL5Rnh3RhKggU3jDL6XWXtlwEt81Ed7IDbu?= =?iso-8859-1?q?VXAIBuQYxpjeCQa+sBxkzSj3nywjNyLCJx94vgFV0DsA49CYUGvfFLGbX2g3?= =?iso-8859-1?q?i9C2arNsL+CWt9FWi4FDCdvL+X2cNDAGNjtsdl3Lv8W4kvz9WjCg4l6qZHe?= Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MWHPR10MB1582.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 42550c42-af32-4fe3-d488-08d90a5b6a9d X-MS-Exchange-CrossTenant-originalarrivaltime: 28 Apr 2021 15:36:09.6848 (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: f+O9Eeu5YCNiaeovOhCNRoZ+jR1A4euMo0KSXJSGmyptC1WFq++i93RWzK8oXNCG09iCHdfWV9IKWz1lY9189w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR10MB4515 X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=9968 signatures=668683 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0 malwarescore=0 mlxscore=0 mlxlogscore=999 bulkscore=0 phishscore=0 spamscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2104060000 definitions=main-2104280101 X-Proofpoint-ORIG-GUID: 4Wlr6-mOm07TZh8N_hX_k3sDvfxznoKX X-Proofpoint-GUID: 4Wlr6-mOm07TZh8N_hX_k3sDvfxznoKX X-Rspamd-Server: rspam01 X-Rspamd-Queue-Id: 707DCE000129 X-Stat-Signature: n8fdqxwj4kexxm9644788x9t7idbndm9 Received-SPF: none (oracle.com>: No applicable sender policy available) receiver=imf13; identity=mailfrom; envelope-from="<liam.howlett@oracle.com>"; helo=mx0a-00069f02.pphosted.com; client-ip=205.220.165.32 X-HE-DKIM-Result: pass/pass X-HE-Tag: 1619624206-388229 X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: <linux-mm.kvack.org> |
Series |
Introducing the Maple Tree
|
expand
|
diff --git a/include/linux/mm.h b/include/linux/mm.h index cf17491be249..dd8abaa433f9 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -2678,14 +2678,8 @@ extern struct vm_area_struct * find_vma_prev(struct mm_struct * mm, unsigned lon /* Look up the first VMA which intersects the interval start_addr..end_addr-1, 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; -} +extern struct vm_area_struct *find_vma_intersection(struct mm_struct *mm, + 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 7371fbf267ed..df39c01eda12 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -2037,32 +2037,50 @@ get_unmapped_area(struct file *file, unsigned long addr, unsigned long len, EXPORT_SYMBOL(get_unmapped_area); -/** - * find_vma() - Find the VMA for a given address, or the next vma. - * @mm: The mm_struct to check - * @addr: The address +/* + * find_vma_intersection - Find the first vma between [@start, @end) + * @mm: The mm_struct to use. + * @start: The start address + * @end: The end address * - * Returns: The VMA associated with addr, or the next vma. - * May return %NULL in the case of no vma at addr or above. + * Returns: The VMA associated with the @start or the next VMA within the range. + * May return %NULL in the case of no vma within the range. */ -struct vm_area_struct *find_vma(struct mm_struct *mm, unsigned long 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; - MA_STATE(mas, &mm->mm_mt, addr, addr); + MA_STATE(mas, &mm->mm_mt, start_addr, start_addr); /* Check the cache first. */ - vma = vmacache_find(mm, addr); + vma = vmacache_find(mm, start_addr); if (likely(vma)) return vma; rcu_read_lock(); - vma = mas_find(&mas, -1); + vma = mas_find(&mas, end_addr - 1); rcu_read_unlock(); if (vma) - vmacache_update(addr, vma); + vmacache_update(mas.index, 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 + * @addr: The address + * + * Returns: The VMA associated with addr, or the next vma. + * May return NULL in the case of no vma at addr or above. + */ +inline struct vm_area_struct *find_vma(struct mm_struct *mm, unsigned long addr) +{ + // Note find_vma_intersection will decrease 0 to underflow to ULONG_MAX + return find_vma_intersection(mm, addr, 0); +} EXPORT_SYMBOL(find_vma); /**
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. This means the find_vma() call changes to a special case of the find_vma_intersection(). Exported for kvm module. Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com> --- include/linux/mm.h | 10 ++-------- mm/mmap.c | 40 +++++++++++++++++++++++++++++----------- 2 files changed, 31 insertions(+), 19 deletions(-)