From mboxrd@z Thu Jan 1 00:00:00 1970 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 E03D5C4332F for ; Tue, 26 Apr 2022 15:07:07 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 76A326B0098; Tue, 26 Apr 2022 11:06:45 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 694CC6B0099; Tue, 26 Apr 2022 11:06:45 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 270916B009A; Tue, 26 Apr 2022 11:06:45 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (relay.hostedemail.com [64.99.140.27]) by kanga.kvack.org (Postfix) with ESMTP id 0F3D86B0099 for ; Tue, 26 Apr 2022 11:06:45 -0400 (EDT) Received: from smtpin18.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id D5A4FAB2 for ; Tue, 26 Apr 2022 15:06:44 +0000 (UTC) X-FDA: 79399357128.18.538D29A Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by imf02.hostedemail.com (Postfix) with ESMTP id 1F19780059 for ; Tue, 26 Apr 2022 15:06:40 +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 23QDT2al015530; Tue, 26 Apr 2022 15:06: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=8lnd4X2uYzIMBZwXBbmt9o4VesBrgsUVUuDwjTiDneA=; b=Oc5rO3p3926nJAA2cNsskNc6QmiEb2KJAQRWYL3aXYKXVAf5JakHoqS4j8HhBXpIJSrO TlYRNNsFbRm1PvLUcCvf3+PoFicwpmgfLyS1XLQMv8OJ52TiPr8KR8S5nGI2pECtjLfo gQSAyXP5wWrfCIxPmzjTqjpuEUROpUwJH5+ZNVE6w1c4i8zOarJr4Sp4xxU0fqb9q6bO uuWzB+8tYS6ujeh6kGHvuXIIWXYrwpmCe1gcqIOWaEGrPlSEUve8laHi0VzQ5e3zna8W h2hg0BefmrbhgBF6jvBVO4/S+YC8czESzcEg5n+uo4cjcNGaDG395lapZxX3r+nSqMzn 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 3fmb9apbj1-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 26 Apr 2022 15:06:40 +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 23QF6Urx037859; Tue, 26 Apr 2022 15:06:37 GMT Received: from nam12-dm6-obe.outbound.protection.outlook.com (mail-dm6nam12lp2176.outbound.protection.outlook.com [104.47.59.176]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com with ESMTP id 3fp5yjktje-9 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 26 Apr 2022 15:06:37 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=DWYlJijdgy6WAKtyrdaKFUvJ0VbFNpQdrlAuFNCrqyfQ4B1WNqYVBazTdnG4eFxMLy/i1dYErlrJq2dqh4KKgQcNyvLujLolASHhYtViyK0VPuBVuOQUX/SdR5hjSRr+cAefm2hDJrFyS4hSmAWz0w5ypXudCNP/sPOYnMzIC5zH4Z2vF3jSkh6aj2iiGTX/iYGM6KTcsw81vzFiUJ5EcHQIY2vbJJjbgWFEgFXaHffXYerJA5FT9+V3DM0dB1hvswX5f4CAkLrVaeolsv6nIi5B3tB+BrcE4PyfGYp80872CGDS+laj6t6kJXBnEAtcArc0A+7nXB2jhX1hV0xjHg== 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=8lnd4X2uYzIMBZwXBbmt9o4VesBrgsUVUuDwjTiDneA=; b=RwTSZJZTV27i16cqIvwM1NzRuWsE4Gb59tocLPBObvJp5ggMTSbOv6GJ5Zjrtd5CeBdrHoRcBzk69Ia52T4PeVZ51QsnanJz7qJWjQF4ROjd+fLEbkHjXikP9dkfOq3sBKaqps+ADwLZk3bA22meQHwW0eyuuX0ASq1dnhKovcTL++0JSCSZzX2ZOeRK1lR+Kb22dJiJ75HVYiuoX9NP2pA/SaOHkU7ujchP7Mb8Jw+y9RoR8ASS3bA4PyGwNNyobDxXJRtnstZirZuh/R531Rh5UeB+0vJTbTH9Fful2z9u0RW2cw1L1ii8ei8x6NCgszyqMjGmuqEvuVj7qWLFDg== 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=8lnd4X2uYzIMBZwXBbmt9o4VesBrgsUVUuDwjTiDneA=; b=g+gZgOkbaEYArc45d4t+Yk63tE72K5kYXdDVO3c4Z5RA6jRYnA1cjQ4GRugeNjQDdghoCY+O+BYk3jzxZfr6OOuylzjVQWgci+y8QyIaaos5OkMvcBJWwSGL3wHMYooncdCXdyDMWewUc+gNJx2lZQAUIz6DjLpOX+PKrkS2LgM= Received: from SN6PR10MB3022.namprd10.prod.outlook.com (2603:10b6:805:d8::25) by PH0PR10MB4679.namprd10.prod.outlook.com (2603:10b6:510:3c::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5186.14; Tue, 26 Apr 2022 15:06: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.5186.021; Tue, 26 Apr 2022 15:06:34 +0000 From: Liam Howlett To: "maple-tree@lists.infradead.org" , "linux-mm@kvack.org" , "linux-kernel@vger.kernel.org" , Andrew Morton , Yu Zhao Subject: [PATCH v8 19/70] mmap: change zeroing of maple tree in __vma_adjust() Thread-Topic: [PATCH v8 19/70] mmap: change zeroing of maple tree in __vma_adjust() Thread-Index: AQHYWX83szDzne84Qk+cPdWAgg5nZA== Date: Tue, 26 Apr 2022 15:06:34 +0000 Message-ID: <20220426150616.3937571-20-Liam.Howlett@oracle.com> References: <20220426150616.3937571-1-Liam.Howlett@oracle.com> In-Reply-To: <20220426150616.3937571-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: 73703bec-a40a-4d7f-ef88-08da27965ac3 x-ms-traffictypediagnostic: PH0PR10MB4679: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: YnzYywPDmIaclurSqPjKckHB+EAsxGNJtuBqeJ0q0z3pjE51RLrcDe8hdXzob+hKMOz3cXctv58aMB+X15pW+yWLi4O3VGVJiTr+QVvry32yuiYxsa2gQR+T2gZpkvt62NWs/0Id58AGd03/zxLyLxaPu13ONEcYGnanpam/ekJoQH7z/wB8l/ZhdDRsmvfdDdRgGBPS4I39Gb4k2sykpb9qh7XjYoaH6aLIB8rTw2bsgJsGIw1CUOAQmyYh0cWdq8PEIivfxlJsG4MogkrOyb/GfCxvHL2uqIC1uvGWEJlhW+vB8nDgKa3GyZxdd+MUJ3YAisFe2hoeO5abvSqRgUz/tjHErMdQUhIO3UQGgnmIgKSd02Lb42t6DfMJmKE44AAaBUZAerD/60ZfNo/gxRSytXsladDpz2jgyxekitkWNPnaMb7YsZHYItCWUzuRY+gQyLymsZDBFdwTsc6eEI8RGm8i94qQA89uPTDbkbwDUMblRN9SQFcWTRMhHNSIqXZTEbhp5sHx9JavILg1+uR8s8TGsm58QjZafWDuLzGvHrP/UiSSauhNN/CwVpGbQ9gckl9wHC4KO+dAGsul4xzhZ9lzJAivvZwOC6/hDJyGal1Cd5zEgF1XyuyCchff+zxHhTcJQggWKd3TF9cdW/dmaFYgdia3T3xHk4airquIdDuDS1jSzv5FkDyeTLt90fUjhZ2WXPSxDThMWlx1Tw== 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)(5660300002)(66476007)(38070700005)(316002)(2616005)(122000001)(38100700002)(83380400001)(2906002)(66556008)(76116006)(66946007)(66446008)(64756008)(91956017)(8936002)(44832011)(6512007)(186003)(26005)(1076003)(71200400001)(110136005)(6506007)(6486002)(508600001)(36756003)(8676002);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?i7rACvuPweWQaX4/sQqhWfdlvu5Euee3n7OhjAQtUBcY74gok7bPfneyVC?= =?iso-8859-1?Q?BqiFJyR4BUBqOVrfO9535OFhbYwMN7lOhxGFkTOWfbYbHl0B0cXIZa94YA?= =?iso-8859-1?Q?Y4c8m3sjFIRY2zb+m5xtR3vcfLPvN/3EnDXfdjmeMQtjR4Llm9w+mnj3Xb?= =?iso-8859-1?Q?UFnKPctSiBaGmBRIwzBLEZQ31uF1extASou5b+lmqdBSgDqUDnL/4f5fOA?= =?iso-8859-1?Q?2/1Rak0lF9pqX5I0/n7oFU7XBhY7/6guUIJhzvbSUVLOGNBnx24cQcjNXJ?= =?iso-8859-1?Q?zS16FM3nDki4vC53c0kGyIjwsYYDWmAeyj0C6cqeGRbZtozkt1ej9mU5TL?= =?iso-8859-1?Q?ZAibyGi13ZYz99uCxJ4i5vF36ohwkdnm9Xm9efF08vnSTzyhIKHKQzuSr3?= =?iso-8859-1?Q?KDQ+05gTnJfF1jqK1FNDhdb7t1ihZxYB/a71XCt2uy7oKA8eA/X5Wb/R0r?= =?iso-8859-1?Q?G5nubEqVboLZHVsrcu2PcRrf9mw1jq4ESh7N8Zp3BO7rx6NbgsdVpTlkFj?= =?iso-8859-1?Q?NxuIlASsyQjdeBzcm6R2J/GBs1N0MzZJnm313t6laadbzf6fsEpTcb57S8?= =?iso-8859-1?Q?+J6GWpicERIIwg2z7GA3e2mI8w487/oQdDBl9RdSlHw6xVya/Mbz3Zpun/?= =?iso-8859-1?Q?cNJFF6t0/jy/GG1bR7iuT8AexFBjdbje80J/2mUASafKPiC3SaMw18zv/a?= =?iso-8859-1?Q?eqe4R3eVrDSganWsjBLwIFixHPKVMxODuhnsVgz9UF3FyWwIeO4jb4k82v?= =?iso-8859-1?Q?HbdLFZmrrMkTVP+rMRAk8gAHz0mobdDt6w49OCpSOGE1AL0oBv/+DUSLtU?= =?iso-8859-1?Q?Q4Y8FNdoor6sSqsqYPfG3hpcoVR3xzCcAus7jNdSnRL7A51gIgwnVlE9y2?= =?iso-8859-1?Q?IiNvebwUEqTzpD5UQSJGRD0Gl0bNN5rspb0QPtZ6yFsaPDMJq/k3pCNql7?= =?iso-8859-1?Q?vrD2HBBwqn9ZWXGtz9BbNklzpRFHnPxZoCk5yr1Gt3FeDHReHJBQtoQfml?= =?iso-8859-1?Q?QYljH3gsEi9rvpfo0K69ASKuuJZbMieM3SqCMaszLgSyflPPjnuSzp+eK8?= =?iso-8859-1?Q?YtDfK+BsiiNT8UU3wJ/TOlQKTV5Lkk3VcokElTPqcxT7gMorQqQTV3Yhqf?= =?iso-8859-1?Q?YQagBoAAWUBGhf8yWw9DVvn3CZRpoKwL1HIztoAbD8GgbU6IfseWJC3WvG?= =?iso-8859-1?Q?QZ7OFA0Z2Q01RdEpSc7Q/LwHz1BOnsMMSv34w75MyDblTcB0+IMvOLQ4aD?= =?iso-8859-1?Q?D1K6ORe0BmYZjlH8RTN2TZla0AKX+yaoLoqD4uNElKYNwKV2SFfjrKQ4nZ?= =?iso-8859-1?Q?1NhVqN0jHWvkbvOSbzMOP1DUJhfNC6FDei04ZAz9Mq+jbFMORTUCsMhfef?= =?iso-8859-1?Q?R5NIVMSAEcl5qwxSQ8GdtB2VEHzk4m9c8yQPxyP4ivXeXg+IdNZC5jd5a5?= =?iso-8859-1?Q?QCIvkS04iIrtVRmfmvnssuL4IvO0Reu6X3PQ+87uCHw2O8ay8Sl71Oo2de?= =?iso-8859-1?Q?qOh89bsNGwybDYFOlAXC6gMKmJxCugXjmEOO2Y8Xts7dIyvOeC1i9NyJ77?= =?iso-8859-1?Q?3SfPjIj6AZXpafz0HXWq3GLuFlS6c99I0YE/B5ZkaP5rdhm5i6mwTGbun4?= =?iso-8859-1?Q?XR59Lc8zg4uv/BdA0e+USRT6UWz2zPxgMk5LPguDVoIDGJdz66BhqoekeY?= =?iso-8859-1?Q?BNugpVECjdkWdXmGtiLmraOQP+QDWWs6ZLQ+xSCOqYbU2jDi/FKtw54T1f?= =?iso-8859-1?Q?Xz8JmjwF2sNXU4C1Zc7vj74nKxwMUNFsvhRwJDMkOhd5ftUfYQ6dMLgOqL?= =?iso-8859-1?Q?0hJmIZPvv8D6AME7Yze224GYQ4myCTo=3D?= Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SN6PR10MB3022.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 73703bec-a40a-4d7f-ef88-08da27965ac3 X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Apr 2022 15:06:34.0683 (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: 8qKh+VpcrTVtXMGQO3dOcHeF3kB2R3uh55gSWXgCw7RMqAQPCNndtX6Fj+waeEA/xmWM+QHIz5x6556UjKAhPQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR10MB4679 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.486,18.0.858 definitions=2022-04-26_04:2022-04-26,2022-04-26 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 mlxlogscore=999 mlxscore=0 suspectscore=0 malwarescore=0 spamscore=0 adultscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2202240000 definitions=main-2204260096 X-Proofpoint-ORIG-GUID: 8leioc7f3wbSr8g65-SBBHeSK6arthOJ X-Proofpoint-GUID: 8leioc7f3wbSr8g65-SBBHeSK6arthOJ X-Stat-Signature: 6ex1ocggx56drmmmo95d3cw1g16t3yr7 X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: 1F19780059 Authentication-Results: imf02.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2021-07-09 header.b=Oc5rO3p3; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=g+gZgOkb; spf=none (imf02.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: 1650985600-496277 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 | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/mm/mmap.c b/mm/mmap.c index 622ccc28940f..ec09b68a3e0a 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -597,11 +597,11 @@ static int vma_link(struct mm_struct *mm, struct vm_a= rea_struct *vma, * mm's list and the mm tree. It has already been inserted into the inter= val 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; =20 - mas_set(mas, vma->vm_start); + mas_set(mas, location); prev =3D mas_prev(mas, 0); mas_reset(mas); vma_mas_store(vma, mas); @@ -632,6 +632,7 @@ int __vma_adjust(struct vm_area_struct *vma, unsigned l= ong start, int remove_next =3D 0; MA_STATE(mas, &mm->mm_mt, 0, 0); struct vm_area_struct *exporter =3D NULL, *importer =3D NULL; + unsigned long ll_prev =3D vma->vm_start; /* linked list prev. */ =20 if (next && !insert) { if (end >=3D next->vm_end) { @@ -763,17 +764,27 @@ int __vma_adjust(struct vm_area_struct *vma, unsigned= long start, } =20 if (start !=3D vma->vm_start) { - if (vma->vm_start < start) + if ((vma->vm_start < start) && + (!insert || (insert->vm_end !=3D start))) { vma_mt_szero(mm, vma->vm_start, start); - else + VM_WARN_ON(insert && insert->vm_start > vma->vm_start); + } else { vma_changed =3D true; + } vma->vm_start =3D start; } if (end !=3D vma->vm_end) { - if (vma->vm_end > end) - vma_mt_szero(mm, end, vma->vm_end); - else + if (vma->vm_end > end) { + if (!insert || (insert->vm_start !=3D end)) { + vma_mt_szero(mm, end, vma->vm_end); + VM_WARN_ON(insert && + insert->vm_end < vma->vm_end); + } else if (insert->vm_start =3D=3D end) { + ll_prev =3D vma->vm_end; + } + } else { vma_changed =3D true; + } vma->vm_end =3D end; if (!next) mm->highest_vm_end =3D vm_end_gap(vma); @@ -808,7 +819,7 @@ int __vma_adjust(struct vm_area_struct *vma, unsigned l= ong 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); } =20 if (anon_vma) { --=20 2.35.1