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 37E87C7115A for ; Fri, 20 Jun 2025 01:54:23 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 9029D6B007B; Thu, 19 Jun 2025 21:54:22 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 8B3226B0089; Thu, 19 Jun 2025 21:54:22 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 77AA26B008A; Thu, 19 Jun 2025 21:54:22 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 682BB6B007B for ; Thu, 19 Jun 2025 21:54:22 -0400 (EDT) Received: from smtpin11.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id D99DA103AE8 for ; Fri, 20 Jun 2025 01:54:21 +0000 (UTC) X-FDA: 83574109122.11.AC32AF1 Received: from NAM10-DM6-obe.outbound.protection.outlook.com (mail-dm6nam10on2073.outbound.protection.outlook.com [40.107.93.73]) by imf11.hostedemail.com (Postfix) with ESMTP id 23BFB40006 for ; Fri, 20 Jun 2025 01:54:18 +0000 (UTC) Authentication-Results: imf11.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b=PxUUhMnC; dmarc=pass (policy=reject) header.from=nvidia.com; arc=pass ("microsoft.com:s=arcselector10001:i=1"); spf=pass (imf11.hostedemail.com: domain of ziy@nvidia.com designates 40.107.93.73 as permitted sender) smtp.mailfrom=ziy@nvidia.com ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1750384459; a=rsa-sha256; cv=pass; b=LWBA8B32xIfu4lwHtMbBVJnXIinIKMxUg4rV6viHnW4d5xI0ObM2N94yr9daglw7bhJ6Ti bsDMxaoGLc+elURKofctyp+XHitQG0U/4xIPEDFk8mO3Fp6g0u1N4D1Ww8REYHq514ue0u 1OXDFsPeeFoK1x0IJbEYkxpP1KTWPyQ= ARC-Authentication-Results: i=2; imf11.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b=PxUUhMnC; dmarc=pass (policy=reject) header.from=nvidia.com; arc=pass ("microsoft.com:s=arcselector10001:i=1"); spf=pass (imf11.hostedemail.com: domain of ziy@nvidia.com designates 40.107.93.73 as permitted sender) smtp.mailfrom=ziy@nvidia.com ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1750384459; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=cccD6xTwFWqjadaMx9A4iZYWXJnkZ5Cv3fKc50YM/xw=; b=igVIVUpDOz7I0lSVTstfWcKkWdQFMB5gd4g/OIZwA6oU7Z3+x/gRX0iFSQx/tmxK9KjBSz uJLtXLOWwSqFoYPuRSnJB5h5VhagWFVk/R7PT9efWhLfwo6sS2Um2aE4QKtCuF1A34XYxc wyvuE12WpzgwNlBx1ufHRoUByflpwSA= ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=CfQ4d9hUXINNPKDBzMEgryrrPJMMOapabETH4BnOfYpektWd8mbIM5YQq+aWZoa+T0pviQ4B3jPJCn8VPlzg/h43z2IIfuxf2sG+YTYLLepmj4rasJnUP4Z4ZIi2BD8XzrM1TRj/ZhOgAnprX64J3pJw6vlu7qE0Bxco5SCB2/D8qRhM4BawyDEX9b84+jMEmhk2lYjFi11ZokDIUL+fxx1RdUgPRpPzZHNZD5WBC8Sufe6jNU8I/k1k+iLXp0s5BHVqzwYOhlCFhidHcU7LRp7AaTUw4tspIOYmIenqIK3EXtLGOGiaZzLEDCzc2NbEvK9IGH6CEfb+g0CLfS8h3g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=cccD6xTwFWqjadaMx9A4iZYWXJnkZ5Cv3fKc50YM/xw=; b=Pa5LhY4yEWyQC5t6IWqUX+ngha8ylgrYlvlOg+KbT9RXqIC07Z6a416EQHDoaKLplqxyRnMESg2kMpV0S9fcwHGFAfsw0R6Jav3Ahp7uthAXcif0cHyxgbz7zkast7Ntn5zkGaxMxbA82qc9w5DrBmeZBWpOs3c5HmoM4et6/iE4iTHLJUFo62uohsZAAwXH0dyzIxrVR8+6vrQqOXtUa/CiLxvck2HCk3GYrldFe/n+RM8YrxVChV+l+kMi+KzQ4ppYMOcZ1v3o5zwPjBqIh+hcu9ZRQn+YhPRaNNTm0Dal7CG/+80pmFMN5NWf0ZLABiQNpJgAhzqwn8bSLZy8qg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=cccD6xTwFWqjadaMx9A4iZYWXJnkZ5Cv3fKc50YM/xw=; b=PxUUhMnC/gcrpnCUoMcqhftQWXfu1mFCI+Q0d5lJtArBK4aVfTpDfg6bTMhb+aA42Gs3xCfsGzN86Hr2lRnyEPAvFzRwPNms200QtsDA7LTLHvGrRmW8hOO2GrrRrpBRw17JOgOpgH2xdIo18oJFkfqbjB28U6ZetI8MRct+TsWLmLoRvvPo+BYZfXAxed99cLTLlGDL8jdKorcLVhR/tHMLSAoyoIOiVE3qKsxgFyS06xFZmw01xQsZZUypNCd/bWz1zbYUjhoZEDwFBhR/FSs07O+qqc9HMCZoMobwiPzSngSmkMum/s2/pWDXXsRJSY3MCUG8c8rlnoDj3JrvGA== Received: from DS7PR12MB9473.namprd12.prod.outlook.com (2603:10b6:8:252::5) by DS4PR12MB9794.namprd12.prod.outlook.com (2603:10b6:8:2a7::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8857.25; Fri, 20 Jun 2025 01:54:14 +0000 Received: from DS7PR12MB9473.namprd12.prod.outlook.com ([fe80::5189:ecec:d84a:133a]) by DS7PR12MB9473.namprd12.prod.outlook.com ([fe80::5189:ecec:d84a:133a%5]) with mapi id 15.20.8835.037; Fri, 20 Jun 2025 01:54:14 +0000 From: Zi Yan To: Lorenzo Stoakes Cc: Andrew Morton , David Hildenbrand , Baolin Wang , "Liam R . Howlett" , Nico Pache , Ryan Roberts , Dev Jain , Barry Song , Vlastimil Babka , Jann Horn , linux-mm@kvack.org, linux-kernel@vger.kernel.org, Lance Yang , SeongJae Park , Suren Baghdasaryan Subject: Re: [PATCH 3/5] mm/madvise: thread VMA range state through madvise_behavior Date: Thu, 19 Jun 2025 21:54:11 -0400 X-Mailer: MailMate (2.0r6263) Message-ID: <3651A1A2-6EB0-4731-BDB2-E11FF7E63749@nvidia.com> In-Reply-To: References: Content-Type: text/plain Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: MN2PR15CA0048.namprd15.prod.outlook.com (2603:10b6:208:237::17) To DS7PR12MB9473.namprd12.prod.outlook.com (2603:10b6:8:252::5) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS7PR12MB9473:EE_|DS4PR12MB9794:EE_ X-MS-Office365-Filtering-Correlation-Id: 126d9b91-2a60-4f30-b8d3-08ddaf9d5be7 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|7416014|376014|1800799024|7053199007; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?kpBdmceki+GH8uVdV1Pjn7ntQUJNpNvwJrA6yAKwjveokyOgkzYvj74P/IiQ?= =?us-ascii?Q?3+nS8OOQKcxQNyn9mKynauwxwsZjsmVrlFHEU0NSHYXvAqd+amypheRCCC/o?= =?us-ascii?Q?RgGeQc1ewQrxn0H2iKfYfHpvFdHrf2F9V0rskByIlg7t99WgMNG9ENlQ5Q59?= =?us-ascii?Q?+fLkp4JeXkYGYNFfZZfc4abQIf1YSzduTesB4gK07xlv2DsUFnxbNWuLoEHY?= =?us-ascii?Q?v114NyjECkMvnelO8o1owffijuw7cSYZcbQv/eEYLzBT8rs9P/qnO0F2Vf+e?= =?us-ascii?Q?KPQK48uunfOsNuuwbYsLx6Gq10y5U/92vIM2zUfcMX7qxRZ6H1mmwk9E4PZH?= =?us-ascii?Q?Twm+xv0nSzbYZI1WlXK+SKEz7ImUZi8aP7qzbFYnTk5jA4e066lb2J/iWLaI?= =?us-ascii?Q?31yvHaHOT2kmS0hRsQ8wlHoka36CvSPs0aMorY26CixszR9ACoYj4M1l4YtI?= =?us-ascii?Q?v+LIDWO971oFI93NMJiEMCPiFmj5s30UzDGZBw0M3s79elScloLu34QAPXSY?= =?us-ascii?Q?mLTxSP7qOne2YXHKz47lS6yHDog/Nyp9Wi16PzcgbvwqB1iimsd/1haeF8Db?= =?us-ascii?Q?HSB0kdueu1M7oV55OJXzLoSr80eOoAh5N2HBcyj5MUP5an/VBgffaRh3g2Ep?= =?us-ascii?Q?G3KvQQbO9u+4uDuIwN9ZebXMoVjS48CDiCvWCgxAKlixcA/KiF+NC7+XJ84x?= =?us-ascii?Q?XBKVl64ALxn2WWLALtz106eKzOJz2Ju8cH4MswwnGUhSWkMi4AQm6TwFPRhz?= =?us-ascii?Q?XRCGNSXzCIPW06WTPx5f0pa7rZoj6/c2u1xABZ5fW9Ex51L9R2EfPVH6jebb?= =?us-ascii?Q?calK9HdVlkhMQ/eMAmPFo+xEZqi4ocsUUV2WjBJ4qkm8hXWvgtiqPkZQaoi7?= =?us-ascii?Q?RCN2DM5mQwlXz2qYRuDcmAAonx9Yc8nBjiOsAuzO4FcPFlh+Od9Z6Wkw84lH?= =?us-ascii?Q?qB0mFXlNBZLQP1PhkkcjgzOZpTi12zp++gBzDxzppxNIVi3GPX5X6j1faxCZ?= =?us-ascii?Q?6l9ciuW41yqKnW//ApOVmM3HbZmlywspaLXaoCceedbja8N51UzNA457X84o?= =?us-ascii?Q?sgpyUFBCvcxjQ6P6CgvBe0tLpX2OdYzEkqQ7eb9F/aVm58RwTaueCySMp5oC?= =?us-ascii?Q?+o4tKoRDojYufUh6FgooVB2TIHcx6ISpOm2uP993tVTZqZq9toMHzvTuGzz8?= =?us-ascii?Q?gjQ2EJ3cJTZkmC+z4CZptjdj9mKnWEKWCo7itX/pDupJa85U8ysCVyOvPTb2?= =?us-ascii?Q?Wp9Dq1ROXA2TurqJY3CWUF/Cq7WP75+BdczfKqgxqCSyZ2LSczu50jnV9Fgh?= =?us-ascii?Q?Mn/B099y8p/GD2T1Yfo0/BCf+5wwD/FOKMJjFCU9iKvRmBGziF9jTNdO/5P8?= =?us-ascii?Q?JG0PcLXFXxjsKaqyM7CUMJrC+hKDnYvXnqayy9iyWSEGQvWqhgt/N6e2RIc1?= =?us-ascii?Q?WNJR8ji+rxs=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DS7PR12MB9473.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(7416014)(376014)(1800799024)(7053199007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?RMOG0v5paLTv8dS84qN471iXExtV4aPQ4PMkv+B6BKzy15YQ0Jq3Ox3d/0wk?= =?us-ascii?Q?oSdl/gGmIoKFeDYun9WHg9IqlS/0XBGGHk7T3Z9P/DU1qiAkKk86u7IIdwGW?= =?us-ascii?Q?Nw4x9xOqzcon9Kw1p/lwZkYsCEmi+Pfy+nMz1AtSGI1CjWTNHL7E2zpXGYp1?= =?us-ascii?Q?F8w49jYS70Spp2DKQ7wiJd8XQqw/wnskNIwH4lW2VK7NGmP5clDimRgCCccG?= =?us-ascii?Q?woREZo0FkbVcHW18cFaRB3jmwrAPZzJ9UVtqbXJmgCBFI/EGq/sD3yjip/g1?= =?us-ascii?Q?Xo9PoRISaoGsjq/UM2Zt2REyMIW2MwSob78oweHiq8YiIeVbC49jobBqz7qa?= =?us-ascii?Q?4UnhsZG7r3mMuLuiNdYItuIpoS0VwlOMbl6z51LQ5A4VJRC7B1s2uqB3hsvg?= =?us-ascii?Q?r8vr2acdKcp4rbABnkv/Lez+JJRZvypkFZr1lL7SOcPy8a+G5FllTtmbpYNX?= =?us-ascii?Q?PfBF/hDecJ4xDqg6e+1cgF6eZhMjvnRIJPYCp+w/xVtp6IxVlxbyADtANi4W?= =?us-ascii?Q?QFZ5GKhR49qSrFA+XeG4vNDhc/yBrJEO3zjOpvwz6yFfrooKNIx5x2yzqa77?= =?us-ascii?Q?vMEjj8CS057CyURiu+M5rsYdzs1Y6s+l/gzSNWeWRUl6Xmt/wVL5OGP9wMb8?= =?us-ascii?Q?ZDeGXO4qGhzpjICg9n6vPmQkJwI5uHW6Th4vJ+OSx+jPSYF3ZyTCbr9qHCcc?= =?us-ascii?Q?YpZLxQ6/Jr7o7hCdVCLUzWxOYXp38nwjUWwlqnN18xe0FlcqyTAmiWKKCr0p?= =?us-ascii?Q?NsWdMKF1rjuAaOtcS1og2VOa0gfANlLv9uuinto1xGxZLIQjcqHd5ALenNmm?= =?us-ascii?Q?XsqQKaUY5PcfzQncRoQwIhOT3qqpGWe8yj/RqKaUu2PxWxYvKB8hfGywiK+1?= =?us-ascii?Q?jDA6ordOMQv0+h5B/7ytzkvLCnM+CpW8qsAoFYoXlvhWtZ8CQZQse20rW0Qs?= =?us-ascii?Q?ta4zybqO8164LUJ59sDnv7mFyeiF8NR1nE2pcUdZb8FjcKH7vprJK6GkhItG?= =?us-ascii?Q?BjDvA2v5SZ0Vt0Mc0PnnAwdSHBhcKVzhDaYc+idjnmKbnFt1Pg6sUHsreU0H?= =?us-ascii?Q?w2QyyE9mmgqa/SkQi33zXMQ0lC8sls8tbauw3g5hVhXZ7jFmWeEE9U5Tj0wF?= =?us-ascii?Q?q5LzAF64T4aSovmP5yIHLwDMTWEHGsl6AWPEKwZ7bjLTwhukbQGpR5SM1Q/7?= =?us-ascii?Q?CY5ZbxoQw0pTl14wec5EiX0EuJMzS7rq+W8njRsoroxTfRnqDo6+oG3tVVKV?= =?us-ascii?Q?hU1gS3q5PHhaU7rf716mshaQ3ktwF4KZj5dJjmoyQxd+8Avu6r6+fZDdEyiw?= =?us-ascii?Q?t9LV55oDEfIS4SUhSBTUP/VYOk1hcBUNCz6BwLW685zxTGzykWr1P7QabNQ7?= =?us-ascii?Q?7dzqE1Y+o/NtCYWpjHmE9MdTAPffzqQEOhFQSmSjphUF84+ESaNmGM8LdD9L?= =?us-ascii?Q?tSau3VLpQFoPHIhf/r/d/M/SkExc8atpL2tiHZxMKZIbd7tcUKRSp70EljWO?= =?us-ascii?Q?vqxe6qoYQ3m321Ow4O0zrbu+mYTq0SGiaZ1de66YNW1909lBnpXVQ8zuwdJ3?= =?us-ascii?Q?8N+7YQHtPkNmW6eaVyBu9iapilkWIpqAKktj2/i3?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 126d9b91-2a60-4f30-b8d3-08ddaf9d5be7 X-MS-Exchange-CrossTenant-AuthSource: DS7PR12MB9473.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Jun 2025 01:54:14.6393 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: IPVq4dL7vFmzHRiaYn0Mwj04OSeRYGNIlGP4xBeOQVY+rwTkSsGhB5eRpL/eZzQv X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS4PR12MB9794 X-Rspamd-Server: rspam08 X-Rspamd-Queue-Id: 23BFB40006 X-Stat-Signature: u3cm3sdrebop5jgf5qrc9t4khznibr83 X-Rspam-User: X-HE-Tag: 1750384458-332398 X-HE-Meta: U2FsdGVkX1+oqlWVPj2j77IxYOaJ0VCKHhJtRY6NCKhbmDCHPXHLpjDXXCB+zSbuG5t7VL4fttlpc7rfddS2qinyfnoKheO0yVPX3axgnYobVt8ujHIhbjg3gvxrF/ADHk7sFQVMhkJeTKV16L0FD9XgGgfcbq32lWOl9s5N/oJWUOYJzAKuVGd3IG9QkqYKyqFsJLGniXtzVPYE4RFXSSryo5etSgfIAg7Z2UI5qoy4Jtfm/1LOc3kgCByq71Rl6IqpmUnSWQKzlng5+4P+HLX4wRcRx6YkTD4jXsJNtbt1uyboVv5y7BjiggRZxBOAVtNwGtqp5Qx5WDiRQ9gxpdFa6IvsIjwBvwrKFOouY/LyAtq6vt+KT6NWh8qI5x0zgD82kd0+368MudrOmUNvyo4JXFVngzz0gG7p/pHHfam+LN/cgexqPaYr3XvkK9n/Sv0jehqlGe+MTeKIpqp0NXnSw4kOgy+lK5hoHlUtvvX47D3RzIP0f+uAxDsqXz00mAVmlbfpmX6TtnNQqWqfB78aZvcnCYEmHCA3eDP24zZvzDNctK+YElHAS5rYN3ulWCksVd6XBvBcO1gZLDi0Y13yOmyxOtCsZj2h8aJDVgsXAnpQ23vP8qkSS3OA5rmBrvCNgED52XfOO2Z0MVYb4+9iOuVCXsMjLlh93LJMg0JB7eB0lP9JN+NnibyTh0GViF0Q9fASZVyuNZmFe+YIMS+QYRJlv5a6WuSZuOa0E9DgfV25qnxPsWtMoEtKToV1O7o7xcVR0z8yn+pknWTNmMsZ5WW2FNfm60ShTrQ74Z2QMsZ30gq2bw5xpFkyDUMgEy6PnGaCu3e3VpDmAhKBPQKESeUnjZUvjAtWewJ2QFHyImjWbNYE+LpJ/XdocFWxRKcOtGD0Kl+9pPm89JwtM+0x3nuo9+xC35ZjEwGtKyGKkpVDtbMjy4ipgr/ZBWs4YI6FmgNoUxIpx9AxBLH /2CT2Rzt 9uh0oYEAhpvcFpEj0OyFVF5rOL+U0VAgPpX5zkZ56YG6jhmoRS84HHvmVkpD/BI2vGo/eiMSUDy/MLOY+Cd7osJv4JUGAeGfLLxT4k3yiQicfjL9d4+TRrsMg4X2BN/qaQU/A1Jb++O34aFxtKfBMg/xTK0D5Wv1txei1YrJvE8+OoHXSZ5hyC/OM/AH5rJ59AMv5VBAwlwdsiF+wDN5pv+miZsMvfBso/DO+1Cu6vYT0rxq2/6bseasGRoFU7+Zdv54yAHGrw5WOVsARlOvoKuR4/qCchkStVvsXQrEckH7GLT5hJvl5U7+taDnhr0a53DsJSl0gFYveYDybW2XDgO0uuvg501u13AXWl6+OqYP5vtHCPwvzCPqOyOmCKs/2q6ug0URety2HHx2j3nB/VI20d/gYQrk+ttJxuIdMWD0HnZayhkUktnY3Id7fi+q//pTS2pkJd3ujh8/O5cOeKRS0PMSq+FsiXRxJoSWnQK7wxpI= 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 19 Jun 2025, at 16:26, Lorenzo Stoakes wrote: > Rather than updating start and a confusing local parameter 'tmp' in > madvise_walk_vmas(), instead store the current range being operated upo= n in > the struct madvise_behavior helper object in a range pair and use this > consistently in all operations. > > This makes it clearer what is going on and opens the door to further > cleanup now we store state regarding what is currently being operated u= pon > here. > > Signed-off-by: Lorenzo Stoakes > --- > mm/madvise.c | 101 ++++++++++++++++++++++++++++-----------------------= > 1 file changed, 55 insertions(+), 46 deletions(-) > > diff --git a/mm/madvise.c b/mm/madvise.c > index 47485653c2a1..6faa38b92111 100644 > --- a/mm/madvise.c > +++ b/mm/madvise.c > @@ -58,17 +58,26 @@ enum madvise_lock_mode { > MADVISE_VMA_READ_LOCK, > }; > > +struct madvise_behavior_range { > + unsigned long start, end; > +}; > + Declare members separately? > @@ -1425,10 +1437,11 @@ static int madvise_vma_behavior(struct vm_area_= struct *vma, > /* > * Error injection support for memory error handling. > */ > -static int madvise_inject_error(unsigned long start, unsigned long end= , > - struct madvise_behavior *madv_behavior) > +static int madvise_inject_error(struct madvise_behavior *madv_behavior= ) > { > unsigned long size; > + unsigned long start =3D madv_behavior->range.start; > + unsigned long end =3D madv_behavior->range.end; > > if (!capable(CAP_SYS_ADMIN)) > return -EPERM; > @@ -1482,8 +1495,7 @@ static bool is_memory_failure(struct madvise_beha= vior *madv_behavior) > > #else > > -static int madvise_inject_error(unsigned long start, unsigned long end= , > - struct madvise_behavior *madv_behavior) > +static int madvise_inject_error(struct madvise_behavior *madv_behavior= ) > { > return 0; > } OK, now I get why you pass struct madvise_behavior to madvise_inject_erro= r() in Patch 2. The changes make sense to me now. Maybe delay that conversati= on in this one. > @@ -1565,20 +1577,20 @@ static bool process_madvise_remote_valid(int be= havior) > * If a VMA read lock could not be acquired, we return NULL and expect= caller to > * fallback to mmap lock behaviour. > */ > -static struct vm_area_struct *try_vma_read_lock(struct mm_struct *mm, > - struct madvise_behavior *madv_behavior, > - unsigned long start, unsigned long end) > +static > +struct vm_area_struct *try_vma_read_lock(struct madvise_behavior *madv= _behavior) > { > + struct mm_struct *mm =3D madv_behavior->mm; Is the struct mm_struct removal missed in Patch 2? > @@ -1846,22 +1854,23 @@ static int madvise_do_behavior(unsigned long st= art, size_t len_in, > struct madvise_behavior *madv_behavior) > { > struct blk_plug plug; > - unsigned long end; > int error; > + struct madvise_behavior_range *range =3D &madv_behavior->range; > > if (is_memory_failure(madv_behavior)) { > - end =3D start + len_in; > - return madvise_inject_error(start, end, madv_behavior); > + range->start =3D start; > + range->end =3D start + len_in; > + return madvise_inject_error(madv_behavior); > } > > - start =3D get_untagged_addr(madv_behavior->mm, start); > - end =3D start + PAGE_ALIGN(len_in); > + range->start =3D get_untagged_addr(madv_behavior->mm, start); > + range->end =3D range->start + PAGE_ALIGN(len_in); > > blk_start_plug(&plug); > if (is_madvise_populate(madv_behavior)) > - error =3D madvise_populate(start, end, madv_behavior); > + error =3D madvise_populate(madv_behavior); > else > - error =3D madvise_walk_vmas(start, end, madv_behavior); > + error =3D madvise_walk_vmas(madv_behavior); > blk_finish_plug(&plug); > return error; > } We almost can pass just struct madvise_behavior to madvise_do_behavior().= I wonder why memory_failure behaves differently. -- Best Regards, Yan, Zi