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 66CD8C30653 for ; Wed, 3 Jul 2024 10:03:28 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 9D2FB6B0082; Wed, 3 Jul 2024 06:03:27 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 9824D6B0083; Wed, 3 Jul 2024 06:03:27 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 7D4B56B0085; Wed, 3 Jul 2024 06:03:27 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 5BDFE6B0082 for ; Wed, 3 Jul 2024 06:03:27 -0400 (EDT) Received: from smtpin27.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id CA5BC80A2A for ; Wed, 3 Jul 2024 10:03:26 +0000 (UTC) X-FDA: 82298004012.27.71BD69A Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by imf04.hostedemail.com (Postfix) with ESMTP id 12A404001C for ; Wed, 3 Jul 2024 10:03:21 +0000 (UTC) Authentication-Results: imf04.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2023-11-20 header.b="cji+/Ui5"; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=JQhtaEMI; arc=pass ("microsoft.com:s=arcselector9901:i=1"); spf=pass (imf04.hostedemail.com: domain of lorenzo.stoakes@oracle.com designates 205.220.177.32 as permitted sender) smtp.mailfrom=lorenzo.stoakes@oracle.com; dmarc=pass (policy=reject) header.from=oracle.com ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1720000979; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=iyhRIvZmbaslxi4lvphO8BKHPtBB5KBKc+QPISlSk3Q=; b=bnr9TRJJJpcWFbKr+HYyrPnwzFR/z/iLeCOgEgNes6mnXEtsIpucRRNfL9t7jkyQJ5m2q+ M/cTQQZCq6NaibUT+vvXU/ttIPOXDqgSQ9SXvkc7S6yKkpLHf81Ur+srZIrqagwr/sUljM oHkyLfC5UShSNC31ADj6O5S/5YlsWzk= ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1720000979; a=rsa-sha256; cv=pass; b=1BS9Cg035arSkEk3UCzYZbGtW4MCNyqI95xK2wNhu6OMtsm7xkFlw/Og8QVcEkep12kp08 mya2QsD5MTEtKOwpOT0toMjVEPpGiE8N0lIi0pTA0NaucNfE/ry2z23jBizuJ/cpx2e7gA TwIcjq06J4TurhXZC/V3VZhO9fGkw2s= ARC-Authentication-Results: i=2; imf04.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2023-11-20 header.b="cji+/Ui5"; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=JQhtaEMI; arc=pass ("microsoft.com:s=arcselector9901:i=1"); spf=pass (imf04.hostedemail.com: domain of lorenzo.stoakes@oracle.com designates 205.220.177.32 as permitted sender) smtp.mailfrom=lorenzo.stoakes@oracle.com; dmarc=pass (policy=reject) header.from=oracle.com Received: from pps.filterd (m0333520.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 4638O7Jg028553; Wed, 3 Jul 2024 10:03:08 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h= date:from:to:subject:message-id:references:content-type :in-reply-to:mime-version; s=corp-2023-11-20; bh=iyhRIvZmbaslxi4 lvphO8BKHPtBB5KBKc+QPISlSk3Q=; b=cji+/Ui5XN/xu+CUs4QPd49OhS0GM7b 31wMFV5Eqf3Ihhowz9gtTDkEoyfaHpuNApOErLnP3lrDi3pszMF9i7oYmMhA9D0M AegpBgNXwamXNeFFvQCdoTtGjJxGs0WgFsCJjoInqtr52OuQtNvIyzi/Yz+Lxia7 50N7dzCMZ9dgMiCBstptV2zmYK1376PiG/PtRFz3XVsH2YGMeq2BNnH857SHx+j9 yB8sDYXLzHd5YI58kLK3AlCgJLowDJbQS3aTdQpYTstuqI89hYBzVD7Th3I8uqcf NlkpN+CulrmZtq3KctZYd6Skl8Fz7ed2XYMWk/lRzzrPle7/qb9uONQ== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 402aacfutv-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 03 Jul 2024 10:03:08 +0000 (GMT) Received: from pps.filterd (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 4638lbRr023603; Wed, 3 Jul 2024 10:03:07 GMT Received: from nam11-co1-obe.outbound.protection.outlook.com (mail-co1nam11lp2169.outbound.protection.outlook.com [104.47.56.169]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 404n0yx3sk-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 03 Jul 2024 10:03:07 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Hu6fcoE9AW1cVEHR/v4iRtr6xXLigTf9kSnK+7e6OyhM8cX1HGshl6+WDljcTXCtn3VKDiXc2svm1kP+lah11FVKTu65T4vp6KEb4dVtxnm0NTAUMOglwuP5VqYKHGVJzb86d3bspzqJea46yreAjRYni+6xOfkJ7rvEwZqrndArO3WTv7YnxpO4WT4kyqxJYaik9P/JmGD17zu0ftsu1DMnUdghc3m5fTNsC/YltDpSt1fPIsxWi2IAA6fOlwwlxvaZbCCb1oLkrsunsp2LwFALmsFV6rn+mJ35l3FgWOr3FbOKfpb3tdYX7MZdC6Sa8P9VE1oUtBHX3HweisrzpA== 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=iyhRIvZmbaslxi4lvphO8BKHPtBB5KBKc+QPISlSk3Q=; b=kSZo0JpyoETfE022WzSlV2+y+kX4W2Qy+W9CnrI0h4SDcR55qcRxh1cFah8JatrXWAVYiB1i+pHDkO/l5HoluygQ03R48FPtztP6qJ0Ksd+xp1ll3Xtfqn+LFjSrfiKh3CgpTrFtMNuqzZLtbcwnxMYHzPmPei4tMqYO5B9OtaRZhl1YBH40sYl8Rgo1twheJFOCZW+0Cp3AfqSwX0Rpdtraj/zUTgnVLi+UY45dLPOKTA2gSV3IRVTpDVi+BOhMMSYXg6HQtzpo3ZG5I7MCJqK8LwQDUH+Jr0jZ2aqpYGALqJiWTczFoszRxE+CBp5tmabKia9g21kGa5EG6P7PeQ== 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=iyhRIvZmbaslxi4lvphO8BKHPtBB5KBKc+QPISlSk3Q=; b=JQhtaEMI2i1SRdF2S/QrLz+4ASraZzxKLagjDGDRc9IxyhSXbAf8zh8yAxvUj5b+MKsjgPB/G9F0dRYxWK1kcuw9H2msWApFGOT2R0WOpU0BaLSUfF2sfdbmSkcZ0tICdxnmByUSJkwLOYDRoU3eKeT1jtNmxZLQRwCAHlpAOWo= Received: from PH0PR10MB5611.namprd10.prod.outlook.com (2603:10b6:510:f9::16) by CY8PR10MB6466.namprd10.prod.outlook.com (2603:10b6:930:62::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7719.32; Wed, 3 Jul 2024 10:03:04 +0000 Received: from PH0PR10MB5611.namprd10.prod.outlook.com ([fe80::d513:a871:bbf9:fce2]) by PH0PR10MB5611.namprd10.prod.outlook.com ([fe80::d513:a871:bbf9:fce2%5]) with mapi id 15.20.7741.017; Wed, 3 Jul 2024 10:03:04 +0000 Date: Wed, 3 Jul 2024 11:02:44 +0100 From: Lorenzo Stoakes To: "Liam R. Howlett" , Andrew Morton , linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, Vlastimil Babka , Matthew Wilcox , Alexander Viro , Christian Brauner , Jan Kara , Eric Biederman , Kees Cook , Suren Baghdasaryan Subject: Re: [RFC PATCH v2 3/7] mm: move vma_shrink(), vma_expand() to internal header Message-ID: References: Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-ClientProxiedBy: LO4P123CA0677.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:351::20) To PH0PR10MB5611.namprd10.prod.outlook.com (2603:10b6:510:f9::16) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PH0PR10MB5611:EE_|CY8PR10MB6466:EE_ X-MS-Office365-Filtering-Correlation-Id: 695bd753-9332-4110-7bc7-08dc9b475493 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014|7416014|921020; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?j7jWQPFLVrVFI0of3rPxo0bBGb13BItdsbF7qwnMkFizkHApTNYIdi9prYvX?= =?us-ascii?Q?9dKJWUMd6g5J/uv3XWvwwHwcqibZCxHh/Gdogpes45jBc+FtBjSSqKmD0Ejk?= =?us-ascii?Q?lt/X6ECiC3QemcQ4ebZHNtjkHqb+xQwqBNEtRD2UeA2aTGtUf9klQLs5Rzy7?= =?us-ascii?Q?+veDLoc8qFW6LJb3Gyk/PJtSsnw3IVvsJ6fi6QoCTr55QWmGi+WrbhFgUzpS?= =?us-ascii?Q?I34hrABclfer/aWjiUvC2f/37AzYlPBySDTMiSa380ER+TB1zdobszoLjg0O?= =?us-ascii?Q?sbwfZTcg37NGRqW56HSruyBQDSwqD8QFr7UGYcz19amUrzHblJY8B7Jq5J63?= =?us-ascii?Q?rzTDf4hCY8OJtMxPhjwtxymE1L8rZoF8Q7C2ijdyLG7z5Mn69I6g9DatySxE?= =?us-ascii?Q?JaX/eWak977hQa6VzRwJcMkXJcyMK7M0u9gKZUsqbcM/hegtRXHIgYkdLjqI?= =?us-ascii?Q?+Yq6jUhd6ZftJv3J7yFjSpMjGJkv5BwFWm7LW1gbUXjalXDssNQ7vQ7V+0gJ?= =?us-ascii?Q?x/KIUTXEmbG103nxySziD1jcAV1khywwzlwnQZMHi3dTQ8JwNAx77TQJiLwD?= =?us-ascii?Q?QttGqip99z9FYVA/KD8YcRt8l9+Rrvl6gNJpDS5FRa+pJBNmR6N2UmjaTO2m?= =?us-ascii?Q?G7NsjfE4hZpo8aZFUyOBJR3iE3uSVbrYpk+Mcr52Q+wKhuY/F9htuffGKmfu?= =?us-ascii?Q?mjSg/SoL2Eq3Ippp0xOLSIgZfwWDC2ojYf6jceNqM5efnJJH79Gdn9UhK9Q0?= =?us-ascii?Q?T76oomMeXejLCa+yj0pyIgU9LL2wqWdXNYZsDnmzTJ9pCTFGUJxlq0+sG4YX?= =?us-ascii?Q?PLVb3hYaqpHh47HCt8451s7MF7rqNdWHlxlcV0yqwoSLUjixQRPtvQJNjxD5?= =?us-ascii?Q?5f4pMRyHnQcdE4cb+yIR18zmfA1/kDHr0ar67Qf5HBrP/K3mgeMvYzGZC0jB?= =?us-ascii?Q?yfQZPy9qV+uSJcsp57jQRgyJtJHGnV6C6VwNPMGHVGmTS6EwpQ1NQk3eQOFO?= =?us-ascii?Q?g8guROQmoAN1jwPCtSrH0zw0+cMX4M7K8kEVI8craYHd4m5Sa3WX/e9wz9gO?= =?us-ascii?Q?Hq+rPBhseA1dR3utJtORzMBijYtx35u+rduitD9cg7JGEwNvzEfS7Z0PZR2J?= =?us-ascii?Q?40ayPTEklXA8oCMrbTamhjObZ+zSqZ/GtljJ78BOa+4+f8Ad4AjpUX+Nk+5q?= =?us-ascii?Q?ejQVW2Bm0Nd1rJhy4B/m3Bf80Lt0o+4y8DROYMGjdmBP5qxbXQgdj7OTIASj?= =?us-ascii?Q?CUNO8aXg5LU5fa+YM64GFm2t9wbp7WmZ8uJr/v+uuJiTBQ1IZzoShpvgGUu+?= =?us-ascii?Q?MCLGhRcugDuqlr96ReLmFsrCVoCCattVeroavUySrw3wsPAj22zxformfgfk?= =?us-ascii?Q?1fq0UnBaxnqJqtiEZskrZz/9PA1p?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH0PR10MB5611.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(7416014)(921020);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?2OVjjrAQCaxT6mqdTzzw5EEAyD1jC5zWF1CdgJVvYdiWORZXFVD/fTa1+wTx?= =?us-ascii?Q?SXADJ1l4t8Zk7XIJbASMwFAAc1RH1hi9K+DEMjx0Nx/5ZEixDJJh6hkr30+L?= =?us-ascii?Q?wJ8k7NnYLKlsEpU688Dzu2+jIh6ZVhAoeydTHt8UnwU1gQVkyGrylqmOdPuu?= =?us-ascii?Q?5+Hcaw4WiTHrb1Ezd0nCcx5d2/7EG9PvVVbjXX/DFdmaVJxOT7c3pnuUvvJN?= =?us-ascii?Q?1GeQRzSGKc3uvF5/S0QWWHgte4vytw2zNmqZN/plY0jm5E/fYuq620LpWLJy?= =?us-ascii?Q?tsacHjG3ovClZSEOdrLfUi6riLg4bRjw9RBHnYiCPzGCWrZknQ33Ua0u2L+u?= =?us-ascii?Q?Zy+iYuXR3A+EiCNqSZ/VfB6vXj8/xnjRCcoT56lS3MVTLAbzuV1s0h3vUFl8?= =?us-ascii?Q?xzm4NmkstEltwMI8ALV2knsOqst7Ci2mO9e6IDJgLfW0+2V8ox9JpLtYKqjN?= =?us-ascii?Q?Kokhu0M9BipdRMQP71MYYzB62vNpbQSsdjOIHZLvUjcuLWWPeRNnooQMEMvm?= =?us-ascii?Q?Di3dxUFGcFcMp/nQJpvbEVL7XRRJ7/cUdPZha+vAhsYU9O/5S4wcMrztf/Hd?= =?us-ascii?Q?JZy1JpobhqvRDxq1OgzLynWL1PiQl43/mbhp70Gp/YsIftKwNV9MBPZl0IOT?= =?us-ascii?Q?67y8oG2ysNnBKWDkMPwJr0xcJe3Ns+Xk8CjvA/4H4wmb0CQd5bqKydWWDP7V?= =?us-ascii?Q?NN8I7cNGdFPhlLhZmqczL7TzXqMOkwAeeP+PMVxBdKp3Elbr7SPLz891Svxh?= =?us-ascii?Q?v+I5SitGM1pDNBJnTT4nKh4iEkSLfuEHb7YRXU5QJez0B4H5Afwqr0spoepn?= =?us-ascii?Q?feoA7hcY/mpYau/tf2uXnYCoVBFyh9nraLlQ9g+51DhJkmpUPPea18Y2vGu7?= =?us-ascii?Q?RIFu9MGZCwv+hF797qwpNCVJDYI1YQr5DuStxs05RUCSaWbJrQdIzABXafB2?= =?us-ascii?Q?zEclJg/ha8sSDDB33zwx4wPvtOkcUmNDLOqQp55HXkx8R+ZIQ3eLKfDP/zyQ?= =?us-ascii?Q?8V8SdKhHLMsgxfd7yGkJcjD5oT9f/SwiT61ZOfKRTAD6Vx7FqeHwBMyKK3VN?= =?us-ascii?Q?EGKjpi5+55TCbtkPNBag6v1SwRpU+gHRh2R5rRdFZ/Ogcfe8PYc9ITK2JKZt?= =?us-ascii?Q?mYR1gyHBSIXqhL6zJWnxI/FasSQlSMQ/TZYoirGDUX4kR6ilz8uaIw4rCOry?= =?us-ascii?Q?sm/Dk3UUc0sSRgRjmIZ8WmiBJniQ+4O2TThaVIkh2mxKkOD0zw7foEa5ds0W?= =?us-ascii?Q?I7HvVuirY6xy+rCu/KeftmTUb3iN4nkmRROHIGsZGChwBsktkVABeRdmEvsR?= =?us-ascii?Q?Cn0qJFuEZIo2I8rzVi8pROTWAoU9Sgwsl+jCWq4fzt5ka7naXK9RObh3DpMl?= =?us-ascii?Q?pEKdxzpAntQnLfQTsGLlAxMryFNYZb5b70NRUcmWC1c8xIzAKkoQWzMSNRMW?= =?us-ascii?Q?+0cs4ieQNHtDlMnlXvbRPSGIlGmZW5/Aj9xiyLFmv2Mi3c39hwtatHDN+NmC?= =?us-ascii?Q?rq+L0dQn8u8LjpgSTx2mFIyiqTAClxbOLObB39wu7N+HxTMTwzyV2Gequuwh?= =?us-ascii?Q?mg0DaORbG1MJ9OWYqIA/fyU4m9cPWbwMfkAKY2WxQe4GgOi1onZmFeH53p8E?= =?us-ascii?Q?zQ=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: +D0xgRnS9x3xy6DLDj7A+KAcePDsY6JRcSYvhRgpb3jFmRczXolI8bdgQjaJhEFx3D3X8HAHkpMHeLnn08cTWv9WVmJVAi+csnhJhB3bTFJLgOdcvhqIcny5v0NjfGUFpR5cmEZThYBrz2cCtPH1chKmT8Zl3UZc3yR09euOcTIrFF9zYqIS7JlgV9DggqVaD3wlZwEeyS5Lz2mpk1zv2mU2QF/rUy4W+/iuvjfqElJpI7+jvyd3xNr59wM8Qk7QG4yqegUOvZaSAmsmN1CVZl0z9FALhUZd80qQKDlVWIaFSLicN6NesBRqu+BF4wituSU4hf3DJ8a2A3YQOrPiObtqo6vom/J+b7tD8eNX7jZhvDuS86dfNAz22CJ4IoXcXs1gwaQPA2or6TgmHnn/jhbc71QEkL9BOFex9cdOca5EoSdIVdlveGUpQTuUwtFKZvqXG6/1IO9H78+lnJkEm7PxS58raoobJXNL2+cGjc4stbx8VwufTDR1HzTsJeztnyROA0z1G7/b9U7Fjw6cderAWcblk+NIAIQo5oOxW7v9X4jfbYAnOwubbTJ51eEwVXG7wTCDpekdpBy6Z1zVEAjtj8Jx8VsO3VpuefnW5jo= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 695bd753-9332-4110-7bc7-08dc9b475493 X-MS-Exchange-CrossTenant-AuthSource: PH0PR10MB5611.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Jul 2024 10:03:04.6297 (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: UYvMNnuWDSnD2SIqsVMQzPG/CFXnu3ot9RDUBwTi5ltCOGjahAhRxdtC3uOgXNZD6p6FpCT2X+5spABqvmwY3RU/oSUpaswqHj22asmLO6c= X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY8PR10MB6466 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1039,Hydra:6.0.680,FMLib:17.12.28.16 definitions=2024-07-03_06,2024-07-02_02,2024-05-17_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 phishscore=0 bulkscore=0 adultscore=0 malwarescore=0 spamscore=0 suspectscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2406180000 definitions=main-2407030073 X-Proofpoint-GUID: v_j6Z-0ScgAQDn0mhfWlwoieqt5D5-_z X-Proofpoint-ORIG-GUID: v_j6Z-0ScgAQDn0mhfWlwoieqt5D5-_z X-Rspamd-Queue-Id: 12A404001C X-Stat-Signature: 3q7jhscdetb8e5oobzpb97eagft5narf X-Rspamd-Server: rspam09 X-Rspam-User: X-HE-Tag: 1720001001-559858 X-HE-Meta: U2FsdGVkX1/KbJ4SlsWQzphrNqRvcwgChkNTTzk49lGoDYOI0CzJiecuP2Rrl6xa5NSv9KazM9Xwl5ww02Mzsn/sVGUO6eluccboEFCNUOodI6qoXTjOHZOMaXcyjln7NG7ar8OnW+eBzo1mYXNg0m0O3P/+0e1qQfxAIfY9SMycVlrnNSvD/WHIQ6XCgAunjjc+8LQss19WG2SBhuZ60Q30ktorewgi0s8JSWajeH9CHQjLu80DBPR2t3SkJPmM6bWwzXiP6MXy+w7EuIbjvKtOOSOUcvR4NSsqB+Wb553lGkACtgQRF2xFAj2JsXnTFkroA3rY82T0MAuR5TKPRUJObs3wLQ+VJ8/9mhtsS63TvOkf9lSB5LHCcOAUjnctlY41ynJq2WCwPucG61MhZfl36w42JvtLTK166QslGDVboruofCZSyokrs/oRFGSWpBP1y9RV3o/xnAaNtEAN74KfrtoNlRCyJPkpvSHQYOtOVi0s3CREdxm0ClHRfuqKTX6fNt15jjN7k+p5GgvZSPTyF1/oAJkeDGf9zm0sf/KmsOdL8MwhpEs6pr5s4WFPmP7hHyz86ibb/h2Myd2CsflMqFK+4NfieVemk7q9GodGk1LOjYRePonlG6FK7+qjLyNq265JyoV6a+Vkqn/Bzv45BNZeTXv+wBaaVPOpZqX2huWBOwtU0qf5aNDsPkBRobrmBxUqSB9U/PHAAMQoG1zhcfLXeisFNjrCLTnEIaY6x4St1GsXwEbA+c2y/Jho1Eg/mzySfCNGLfLCNekomX88BL8hyO6u4b+YaHVACD2pIIOUhHhpmMErkKQ5+B2AMjcds332ZnSARFNnn2yuuWJYUyWHGtb3LE1Po6mWCpmUdQdtFWpZYa3MQoctV1xVrcE284caIGJO8SxZbKLC9S7Dzd8rjDngsFb8XZ5diKh7UW9df+ZC3skc4Sj7/mlQMHKheQVsj4oAe52ymtG 9P9iQQ0B YTqrFR1fb51Lg4Wmc6sCQzOYFspHcOrKQcm03qx4+2a5aXpHpr1VJhel0uHJVu4Qu+z8Ri8h3onvFrEJz1vMWX58nXyttwk4lrBFkUrNGL40WiYK3I7gwMzokQX2LuC/JIbapgrM7/88b/CqvFHiLWl4S9gwbUK97NTAOtBELwde6egNP8xO/DnQUX0wtYnAn2dUtncpwVmccl+MbI4IVrbuwXVRQM9toCEnBIoxRn1k5HhrdAFZFM7OoNEcDlAmqMm4TVsod5EiUAwy+N9/GUJVmsEwNtb7VaQIVS2I0rOAgGNXCpS5OWRXf6e0m2cOxsDqs8cwH0Php6eUeth4A8FS3lGOIVns67f2nqt+UlSrduZtdROV4ax7OQv6PD83gYWsBrEMAtZUZ/ZO6Y8OHI3T0m+z9hR+1znjZEayarQz6JtRNwr7FB9qNedl1DWV2L+5+QWCH9QjC7vJUawcKwphdKcEbD4urr3ZUSTD21q/vMmbzfFoMicdpRxPFgfG6Z3HdBTmqVIdL+9G0nMjtNNPcaw== 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: List-Subscribe: List-Unsubscribe: On Tue, Jul 02, 2024 at 01:24:36PM GMT, Liam R. Howlett wrote: > * Lorenzo Stoakes [240628 10:35]: > > The vma_shrink() and vma_expand() functions are internal VMA manipulation > > functions which we ought to abstract for use outside of memory management > > code. > > > > To achieve this, we abstract the operation performed in fs/exec.c by > > shift_arg_pages() into a new relocate_vma() function implemented in > > mm/mmap.c, which enables us to also move move_page_tables() and > > vma_iter_prev_range() to internal.h. > > > > The purpose of doing this is to isolate key VMA manipulation functions in > > order that we can both abstract them and later render them easily testable. > > > > Signed-off-by: Lorenzo Stoakes > > --- > > fs/exec.c | 68 ++------------------------------------ > > include/linux/mm.h | 17 +--------- > > mm/internal.h | 18 +++++++++++ > > mm/mmap.c | 81 ++++++++++++++++++++++++++++++++++++++++++++++ > > 4 files changed, 102 insertions(+), 82 deletions(-) > > > > diff --git a/fs/exec.c b/fs/exec.c > > index 40073142288f..5cf53e20d8df 100644 > > --- a/fs/exec.c > > +++ b/fs/exec.c > > @@ -683,75 +683,11 @@ static int copy_strings_kernel(int argc, const char *const *argv, > > /* > > * During bprm_mm_init(), we create a temporary stack at STACK_TOP_MAX. Once > > * the binfmt code determines where the new stack should reside, we shift it to > > - * its final location. The process proceeds as follows: > > - * > > - * 1) Use shift to calculate the new vma endpoints. > > - * 2) Extend vma to cover both the old and new ranges. This ensures the > > - * arguments passed to subsequent functions are consistent. > > - * 3) Move vma's page tables to the new range. > > - * 4) Free up any cleared pgd range. > > - * 5) Shrink the vma to cover only the new range. > > + * its final location. > > */ > > static int shift_arg_pages(struct vm_area_struct *vma, unsigned long shift) > > { > > - struct mm_struct *mm = vma->vm_mm; > > - unsigned long old_start = vma->vm_start; > > - unsigned long old_end = vma->vm_end; > > - 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); > > - > > - /* > > - * ensure there are no vmas between where we want to go > > - * and where we are > > - */ > > - if (vma != vma_next(&vmi)) > > - return -EFAULT; > > - > > - vma_iter_prev_range(&vmi); > > - /* > > - * cover the whole range: [new_start, old_end) > > - */ > > - if (vma_expand(&vmi, vma, new_start, old_end, vma->vm_pgoff, NULL)) > > - return -ENOMEM; > > - > > - /* > > - * move the page tables downwards, on failure we rely on > > - * process cleanup to remove whatever mess we made. > > - */ > > - if (length != move_page_tables(vma, old_start, > > - vma, new_start, length, false, true)) > > - return -ENOMEM; > > - > > - 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, > > - next ? next->vm_start : USER_PGTABLES_CEILING); > > - } else { > > - /* > > - * otherwise, clean from old_start; this is done to not touch > > - * the address space in [new_end, old_start) some architectures > > - * have constraints on va-space that make this illegal (IA64) - > > - * for the others its just a little faster. > > - */ > > - free_pgd_range(&tlb, old_start, old_end, new_end, > > - next ? next->vm_start : USER_PGTABLES_CEILING); > > - } > > - tlb_finish_mmu(&tlb); > > - > > - vma_prev(&vmi); > > - /* Shrink the vma to just the new range */ > > - return vma_shrink(&vmi, vma, new_start, new_end, vma->vm_pgoff); > > + return relocate_vma(vma, shift); > > } > > The end result is a function that simply returns the results of your new > function. shift_arg_pages() is used once and mentioned in a single > comment in mm/mremap.c. I wonder if it's worth just dropping the > function entirely and just replacing the call to shift_arg_pages() to > relocate_vma()? Yeah that's a good idea, will do. Can move the comment over to the invocation also. > > I'm happy either way, the compiler should do the Right Thing(tm) the way > it is written. > > ... > > > + > > +/* > > + * Relocate a VMA downwards by shift bytes. There cannot be any VMAs between > > + * this VMA and its relocated range, which will now reside at [vma->vm_start - > > + * shift, vma->vm_end - shift). > > + * > > + * This function is almost certainly NOT what you want for anything other than > > + * early executable temporary stack relocation. > > + */ > > +int relocate_vma(struct vm_area_struct *vma, unsigned long shift) > > The name relocate_vma() implies it could be used in any direction, but > it can only shift downwards. This is also true for the > shift_arg_pages() as well and at least the comments state which way > things are going, and that the vma is also moving. > > It might be worth stating the pages are also being relocated in the > comment. > > Again, I'm happy enough to keep it this way but I wanted to point it > out. Yeah, amusingly I was thinking about this when I wrote this, but worried that relocate_vma_down() would be overwrought. However on second thoughts I think you're right, this isn't ideal. Will change. Also ack re: comment. > > ... > > Thanks, > Liam