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 73C5EC7115B for ; Fri, 20 Jun 2025 02:13:31 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D6B206B007B; Thu, 19 Jun 2025 22:13:30 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id D1BC26B0089; Thu, 19 Jun 2025 22:13:30 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id BE3886B008A; Thu, 19 Jun 2025 22:13:30 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id AF5976B007B for ; Thu, 19 Jun 2025 22:13:30 -0400 (EDT) Received: from smtpin04.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 3CD7B1A125A for ; Fri, 20 Jun 2025 02:13:30 +0000 (UTC) X-FDA: 83574157380.04.4BE4FEC Received: from NAM12-BN8-obe.outbound.protection.outlook.com (mail-bn8nam12on2066.outbound.protection.outlook.com [40.107.237.66]) by imf01.hostedemail.com (Postfix) with ESMTP id 6FEED4000A for ; Fri, 20 Jun 2025 02:13:27 +0000 (UTC) Authentication-Results: imf01.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b=KgoIxtQX; dmarc=pass (policy=reject) header.from=nvidia.com; arc=pass ("microsoft.com:s=arcselector10001:i=1"); spf=pass (imf01.hostedemail.com: domain of ziy@nvidia.com designates 40.107.237.66 as permitted sender) smtp.mailfrom=ziy@nvidia.com ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1750385607; a=rsa-sha256; cv=pass; b=VsucH2osk+rxSU5mKRgOKGIPeyusAJxoBAgLnT0u30SV/daeR7w0DonlGRjz3HRw0a/nFM lgkSlNOi7xdBenWcYvNYpFT1IgiDDi5eD/xVZ/6rJBWcOF9gjB9z5Pw1izjToU+JlTNNY2 U9eLGXUZFtZy1a6w22XpRnsJrKWDeHU= ARC-Authentication-Results: i=2; imf01.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b=KgoIxtQX; dmarc=pass (policy=reject) header.from=nvidia.com; arc=pass ("microsoft.com:s=arcselector10001:i=1"); spf=pass (imf01.hostedemail.com: domain of ziy@nvidia.com designates 40.107.237.66 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=1750385607; 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=/KEGC4RxJQmxRHXs2gtMUQzzqVeYIbJy5msq/HynXuk=; b=uZBFNr1aKrdsLp9xTnBGpsc/CMAwgZadVQlg0gh8PKSC5C8WQDbv8qFMLXsUQpB5wbHle1 lybNUIH5KDhevSRQqLvu/mC0kUXMJgfEd3iu0N4UwCh6c7Hhgo5Pe13zXDA9cjqGi8/KiF R5LhtGvmUx3WJwtP1UFHPbt3wcYZK/U= ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=p3/20OUnCYkESyu9dl86sbJmp1UhdAaPM+QTlh0Hx6UUctGyPwiApt/JN4sbPrDqqJAkCZvgLnylgd4sPDEprCu8zDFBOnj1ZEx+pN3qi2eEs0uEsnCKUqsdjJwK0X+232RZP4b0Z0KTy2QrpUbCpe3y+yLQRBkXIehy45fEelVBWAUa5OWvsGI1oactDIwm32/lTmrCXNmibpb3dmSR6AfjomuHPjmG6/lkiFNQOpN0KbdP/t9e0U6BlzpNw5tzpQWnZ71XhRVK8LeECgnTenw4qxdJop6KwtlOHMWiqltkVTSW6YY9qUciktLWcGW7zt6KdY7i9cZyROGsgpKhQA== 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=/KEGC4RxJQmxRHXs2gtMUQzzqVeYIbJy5msq/HynXuk=; b=oQ6gptWRl5T+9dZYcnKYR71HtHfbjBbWztBRcqG3lBHuYvQwkCvLMNXPH5+W8CredUwQ1/MPvNPKd1vleI7Xso0kqsT9kSmmDrrv5jaCuTumv7OZKu7licHAdXhWN0V1y/aEZpYFRTlud58tjxm8GJdksmvJElEex+M0rdEsd7uykdFG7/f9tfJhUmVpnAj6xRV8wbj0Sgst+i7AVye7z9VAM1zna9kwElvPBkO5gZFGGLB1ThysaxskypzoHyVbtogIzVJX4Nr8tQub+hw+/4NSdTD9UkeUVBHYC0/kVgj4/XK7U6c13CMxeW19AkcVd5WQ48SbRfTSVSJlz9Y1sQ== 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=/KEGC4RxJQmxRHXs2gtMUQzzqVeYIbJy5msq/HynXuk=; b=KgoIxtQX6V9zmtTakItS9kbLl7sdRDIMVcFJFnzDAB8vwv7CBVkbLwBchSo3rhkj1DypftKwK8wvtYp0Y+ud9VoiL5tRcwP7h58SCQXjT0pI03SIC0LuR6o7LiOcMxgzjCcXXtB5ZALCkqJDcspS7A465Ac9Pl2+0OhDoM0t4aYYBaMudrloYUuRWGfLGoMpUC8cNyf40yjMXJVA9asIH7pZJJxxgsLvQ7nb+GMeCpobncmuhrFNX1zrVKvQAWhCjE/MJe0g107sowG5tu/77vy1oOG2Xc9zeXl8rXJB1Ekeh1pzB1/ZqiAoVJ08/58s+K5I1A6sTLSfSQKbA5DAPQ== Received: from DS7PR12MB9473.namprd12.prod.outlook.com (2603:10b6:8:252::5) by PH7PR12MB7140.namprd12.prod.outlook.com (2603:10b6:510:200::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8857.18; Fri, 20 Jun 2025 02:13:23 +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 02:13:22 +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 , "Kirill A . Shutemov" Subject: Re: [PATCH 3/5] mm/madvise: thread VMA range state through madvise_behavior Date: Thu, 19 Jun 2025 22:13:19 -0400 X-Mailer: MailMate (2.0r6263) Message-ID: In-Reply-To: <3651A1A2-6EB0-4731-BDB2-E11FF7E63749@nvidia.com> References: <3651A1A2-6EB0-4731-BDB2-E11FF7E63749@nvidia.com> Content-Type: text/plain Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: BN9PR03CA0928.namprd03.prod.outlook.com (2603:10b6:408:107::33) To DS7PR12MB9473.namprd12.prod.outlook.com (2603:10b6:8:252::5) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS7PR12MB9473:EE_|PH7PR12MB7140:EE_ X-MS-Office365-Filtering-Correlation-Id: 2af1657e-566a-4ea0-9dc6-08ddafa0080b X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|1800799024|366016|7053199007; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?Sd+gkKfe/Vq3xtDAKzG2NVvcEkQ/6T9+2V/iGxNO6XFDXrcdYlhO1SvTKJ/s?= =?us-ascii?Q?jTv2/hVUYJS39qUElpFNOpd3QAf4cCUUI0DyJaKSCTfqehVRhZREChjGbZF9?= =?us-ascii?Q?/Vq8wbGg/e7FsyAglMM6eqPN5FsPQYxEfptBjmsYdKpyHpo8qqKDkkWVF3ad?= =?us-ascii?Q?bNtZu9oOuwRjxTlNcZ3m48WDJC8gxLyQ7HuayhJRoIexDZzOfUHqcfdReupG?= =?us-ascii?Q?3jcmkFq9XKYCYTcGUmLRUg48n/oZy6woFcxIuhey5L+hUX2e1LykV8ZRzGeW?= =?us-ascii?Q?ZLBnOVKblawAJrO9EfpaFmFtOC3jAGOdwDvlsdbHJpjchvfe2i00TyACuA3d?= =?us-ascii?Q?S/9WUEJlcw2Cj6ZMfyo9iCLSyD8XbwZofTrhh0xjQS4+pV/lkiqnpxqSXtRI?= =?us-ascii?Q?pZUxt/o1aRt9lDrJmM5AOcRoq+XgSxoAwB6t62D00+BdpHPi1frsKDYUR++o?= =?us-ascii?Q?FtKt8Oz95GtPsK7sQ4mj6oYSp7Q9jM0iIOyOuyRI4keTZajeMDwlcIhOLLA0?= =?us-ascii?Q?rANhA7u9jPSAlI1fG8XD5A8pKSaT248t537Gx+zDiIW5Hdo3y7ZXKjNKekQJ?= =?us-ascii?Q?Kq+4xKX9CHPZCdR6WPp2KxviSFFtPckcQuNnroLU5RW0HicQYs02T1shS5Xs?= =?us-ascii?Q?R9XG+SzlyiFYH/7s45MTHXhwCfWr8CwyZh/98UgsG2Vg69AwdjixhceRIsAd?= =?us-ascii?Q?N3jOeYJvQBCss8mxFPzq7CIhBJhECiYJuSfK02DRuOtxaj2tBMh9e3M0g7NM?= =?us-ascii?Q?ATpONYs/kzWL69MlIiouklPS4p164oSacfflMb5sySxryO0aM4UfCgjbpMUc?= =?us-ascii?Q?+1QPL4dc2XWCoI40t07hEMCuUSPFHo0M+Hq1B65ep0UyKbsGeZ9jnpEeJkiC?= =?us-ascii?Q?pwUeyPOj3OVdXvMSKI6ivmWWUk8cQTgtYb2Mws4ajd2qkyt2tBpcBpFstPXk?= =?us-ascii?Q?GTGmArQ8fVaJE/FBbOqLomyzaKfxOE3m2B0G636xwWzSO/x4qrcTLC8sLMyZ?= =?us-ascii?Q?FvbBtMHJoo07NN6syNqNCzJ7EzkraTa/+27aC93EfE+86ZR7zmhtznBFAYMr?= =?us-ascii?Q?PhJoyJD1Nm4juH8JldRNT6RK6/67icq7mTD8f1CBIta5cZJsow9jTWU9rdsc?= =?us-ascii?Q?4741hi9eAtRo09HuXlIziic8j6KLzzNlUF7JszB8t5ISp6GOqMl9xTh060jk?= =?us-ascii?Q?Qrfn1gBcsfMX/6yoAtNxf+1zWKHQPKzHaBtcPm6uwFNPifhWdkkLR7yYNUm+?= =?us-ascii?Q?VP7dZjKgdQy78VOln4ZsA185ka+gmHr9LZhtZruHx12J4nFYulorbxumG+W3?= =?us-ascii?Q?7KnY6bRrLRtOAYttVBHmJ2QKlf/CCaOB6jBxWggsIDiEnDyvyQveiJlaXPZI?= =?us-ascii?Q?vKut+TaSYXUxq+1iuO9Y7J4TOCAGpiYeqtF2FE+q7RqVymWPRPRoz2w6HYbA?= =?us-ascii?Q?w12XyYxUMgQ=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)(376014)(7416014)(1800799024)(366016)(7053199007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?WqayrBTcvdKY9lMW8DsLZMfZclMl2KjSAwPPJzqs5Sg4SH74M6Dw9oM5+REZ?= =?us-ascii?Q?Hntsu7WgJV6OteBFhjQ4oy4LTGTKKD3MINUhjFlZ+GzlTdcD7TXRXrH+ci+g?= =?us-ascii?Q?vMNOpzLuXZQW9yrcKaDyi7W6TVXYDjH/Ymo8DQr84TzKR1pnHQrgcl1wKMEh?= =?us-ascii?Q?KQ0BD5IhLUjzHRPXrgGGj+ZG86JH6PnNHbyus/8i79NpMLo6iCBjkByrgS4E?= =?us-ascii?Q?B5JYXc9JmPStjtGccw3EqyI/Op4ckY5Htdoyf7nG+DioNzVfwFsrgL7nWT0d?= =?us-ascii?Q?roLeS1W17wemhHNSywhPANJ1OLmpVHSSkm9Zqd3kuQ4uMKXAlcXpQNtDsI1G?= =?us-ascii?Q?lik1w8Kt9YusZn05YsS0MMpnrT9czqnlNggzz34f3gSr8gpj6RrU5xy+/bt3?= =?us-ascii?Q?5uOX9y4WYcPWMeLW1ZGnHGd41Rf/+1UnWHoW5CbRoAzzc4zinDY77tNB20Fa?= =?us-ascii?Q?NDwJ8+Ijq3tldZeFH6mMPRDbh8HIddhQ2pGRsLDJmMcxs4/mLYzds6wFYZUo?= =?us-ascii?Q?OXiIdxH3b8v9z4aOxvCzxxhP2b48j1m8Fu/Vruy5V2tShxmBVEMpko3O9LG0?= =?us-ascii?Q?0SeTl5yjFl1MlmYfL0lHCyufhKPjprO3oz/nBpIn/dhDNaHvYBZ7bzARZeCb?= =?us-ascii?Q?WuRkoPY0iPWraOh2lYJrq7zee7GfLw/t67On2ZFxaIQsJmQeDSxIEu7z9nyi?= =?us-ascii?Q?d0NFxqb3Q1Sx/LOAq4jKKgSIZISosfrqWZbBfw0NYxbIsiliEVVktwgmDK2b?= =?us-ascii?Q?qCcUYjPBDlaWJV4ML9f8wW3D+urmBzQD1pKwtw9LQStxC3lVnCFIuk2bpgI5?= =?us-ascii?Q?QLNOl3FfDLB2eZ6pTkhRfVUnV+q/Rhlf+kmhopYklGGyt6cQXxp/Bo62nCc2?= =?us-ascii?Q?TgnQ5vmJHAzWSNNfyYdSoyl1kM6RI45JxvPDXLP76vrsqV7Ooo1uiTErJPOK?= =?us-ascii?Q?3pCoI4bgbdvwK9sraHO2Lqp4sxhatUGAN5yl0151w7KgO4Irgd1Tmj3hlUIm?= =?us-ascii?Q?qtWvsjcz9201lQy3vroQsdr5E2ZwW2tBTZPRpChrQD4ItuC3gi0a8p9I6RgT?= =?us-ascii?Q?iTh+DXa7JwqvksJDg8ITVLPPvkcWJ3m6y9kKgViNhBopWMeXKHhJP0H8H0iy?= =?us-ascii?Q?wEzl7h6wobSR/6Ib8xs8OSACZwKHuOtrFpUkIC/T50gvHfIUE+Ti0Fz0kZ97?= =?us-ascii?Q?Jy9mQRVZPnh2rKehQPZ3M9Zgz0MR9WqmlPsy4i2W2quTpYKb9uAqSP8Kp21B?= =?us-ascii?Q?T6eG20icojmceQkoqFa1L+j0c/5erBz9TCZLlvx2okkctxiMP5CAuV81k3X4?= =?us-ascii?Q?+dxEEFFxtiFQkE2QaWzjvedMVUYYF8J25MGddapIpVxkXKFHoFJWnY6DBHmm?= =?us-ascii?Q?4Ijt/d7dG98LBnP8IQzJR6NcSZGOf8ORNDIN1hfQ4yAheL1Bz17rLpudpLoj?= =?us-ascii?Q?y5r1pU3iBaW/xBjCBFCOMRVgmaN88NBc+tI830bp7L5Pi9fLMdlOMHYdpog3?= =?us-ascii?Q?XSdJbh7R0l47W0YP7aN2Xo3dOeDueAiB8nGOCT61ajxx4he8cjxwmRRYbSyJ?= =?us-ascii?Q?Ju/QX5HhUL7LXJJ/w6A2t0byQsf9Z8MMevKtj8go?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2af1657e-566a-4ea0-9dc6-08ddafa0080b X-MS-Exchange-CrossTenant-AuthSource: DS7PR12MB9473.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Jun 2025 02:13:22.3606 (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: 3GjR1niHqDEeqEj22rdwUnJbf8F5qvrC3Plh0/QT4y8DUaxqynEE1Z3MvbCxKkDm X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR12MB7140 X-Rspam-User: X-Rspamd-Queue-Id: 6FEED4000A X-Rspamd-Server: rspam10 X-Stat-Signature: yea6xp94w8qcperhos77icmsji6u7uty X-HE-Tag: 1750385607-221269 X-HE-Meta: U2FsdGVkX18T0VJjD1QXjNnjY3mza0ZGcL2sEOk/daSqRW4lSsYfEfdbD5hy+n/O2VuB8pa/GO4S3ZeAeuHpa3ny5M8hiXMHID86xTBmWGAmdB2LCXz9ib417eJ1T93J/pwv80Jy5AABmKBl/YZEysDKPdRDIih6Juay4jV9Lir1Ge2LCK0ggiD4pdWgodzgNrYdUWdvFMkDoahQc6MNVmTTDG5rLCR1dXXFih2dpQKqG+WGX9ytYr0bSWKYhRmAHSC/nBZOVJ2q/3mphF7CAllkKz9MyubeEcZthhc8RcW71dp2AFQbhgIlE+bm9UUTGxbzId6S/ChwyW5qUWHfqIWvF6iSlY2DbxO8eskN6QLFQYvGVn6xryep8ZSa2Nu5N8OLWOK2iQsosvuSiQ0xaIBhWy7s/tPFOD2JEjbr4j3Pki3KjNB0+9GNP0cMQOpkf+BVZREaRbUkKrci1x3AY3SiYgQR0WcZCDquLCWwBBY6kXo7LhcZjQPIv5ueNF1d7VkNzg9VoOp/l80GEVcgg92MBj0q8hNdEGn4HgASXOMh17zYkulRrPyEKQMawWa8kujVtF9QFr94HZBaoqSa/Bo4tO/R8RTtYLoxhwPESudcCvtL3GNQSNENm0I7lL5JyXNU1x+qtWCDTL+kXHqWDVK6pitpgL/XIDlxrpDja6PQRu0Iq/O4zr3+7TISEAZI90RNmKS7ns2yRkBRVBl75trqAGlhJ8qyuWIOvIyROIAYpN4SmVWzBPn9elyakogg7u/2Thz8eU4EXDIrJ+O614FV1LbXYxg6sJZwZci5UY6fBszpZWrIcTcC06wSgfpvpFYySIh/MKv6c7FzfXt8ArY+s1HviIUbQd7vzQI3o1c1fe+eiMr5KoTReqN3BWEl3viWi6FaU938r7bXMr6jk0u9kUuCRA0M3ubqHntuXmP1DMhgD0a7vv73p5MLUq7dtBh3hw1TthgGWoElj2N 33RDWLNp 9NX0lOlTWCzOHVIaarlAyXI70jh8MW0ael+yAhtS3tQY1fB8DQg2UmgKC41V4XLktJ5+DHmhJemBo0vNPVHM5lrCWN+tn212lb3YYqB8RuoRRQIEJOxxOh1eBu7+P3msUASeFWAAFMBI/qM9qs/FX7neDtTLSXxRIHbYlBJkN8Vt5rznL2i+QbgQILv6G+u5C+TfRIqGSWmbeFFXorKjRC1CRPJf/flFjyOOcszgtKb806iCAjV9HhV0yB83+ANSLES8zB5ueUnhAV6xpmgHG0kxdaOQImLyPPOHyyKMbZaNmstKzu+ZysfjlSTm1LpHccC6HTNme2CO6w3G58oaeUEUKWWqlRgr1lYsOZuihYolu+OWsMes9qn/J19nEH0UD5D+eYlanl/4UIskvB2dpnXmFyQVpKnjRCK+X83c1oVrEnf/lKEmUwDZSFfObxVmFsIVXX4I+MZ5QlNtN8fxEzdTiRCNrgRnIovQugRSOFr1kse0= 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 21:54, Zi Yan wrote: > 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 up= on 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 = upon >> 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 en= d, >> - struct madvise_behavior *madv_behavior) >> +static int madvise_inject_error(struct madvise_behavior *madv_behavio= r) >> { >> 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_beh= avior *madv_behavior) >> >> #else >> >> -static int madvise_inject_error(unsigned long start, unsigned long en= d, >> - struct madvise_behavior *madv_behavior) >> +static int madvise_inject_error(struct madvise_behavior *madv_behavio= r) >> { >> return 0; >> } > > OK, now I get why you pass struct madvise_behavior to madvise_inject_er= ror() > in Patch 2. The changes make sense to me now. Maybe delay that conversa= tion > in this one. > > > >> @@ -1565,20 +1577,20 @@ static bool process_madvise_remote_valid(int b= ehavior) >> * If a VMA read lock could not be acquired, we return NULL and expec= t 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 *mad= v_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 s= tart, 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. Based on git history, it seems that no one paid attention to madvise_inject_error() and the [start, start + len_in] has never been changed since it was added back from 2009. OK, it seems that Kirill (cc'd) moved start =3D untagged_addr(start); fro= m before madvise_inject_error() to after it at commit 428e106ae1ad ("mm: Introduce untagged_addr_remote()"). It changed code behavior. So memory_failure should get the same range as others, meaning madvise_do_behavior() can just take struct madvise_behavior and the range can be set at the call sites. -- Best Regards, Yan, Zi