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 E966FC0218D for ; Wed, 29 Jan 2025 16:19:28 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 7A96A28004C; Wed, 29 Jan 2025 11:19:28 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 75A1B28004A; Wed, 29 Jan 2025 11:19:28 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 5AC9428004C; Wed, 29 Jan 2025 11:19:28 -0500 (EST) 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 3458528004A for ; Wed, 29 Jan 2025 11:19:28 -0500 (EST) Received: from smtpin11.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id D334AC0EDE for ; Wed, 29 Jan 2025 16:19:27 +0000 (UTC) X-FDA: 83060999574.11.9DC43AF Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by imf16.hostedemail.com (Postfix) with ESMTP id 8B0D318000D for ; Wed, 29 Jan 2025 16:19:24 +0000 (UTC) Authentication-Results: imf16.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2023-11-20 header.b=Pn4Si15K; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=IC53rfoD; spf=pass (imf16.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=pass ("microsoft.com:s=arcselector10001:i=1") ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1738167564; 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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=dFgH4FJgcowvkeTwgH4L5NZlo8fjguiJ4C/pKzXuhOE=; b=dUMBfPZOEY1vSMqzWO84Og+Sx+xPMBB0Zxy2qhkMPZ79MqPWmTqfJOYmOAmAluDBLLLnVi UOP2bwTQiUxfnFQrX6aUhWlRqgCBtuCuThUE1dlStx2ZO8kwnNIX9361ZReZxHg7r4oYAS F7TupVlWFloztJuAAYZDfRvvmp8J2Eg= ARC-Authentication-Results: i=2; imf16.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2023-11-20 header.b=Pn4Si15K; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=IC53rfoD; spf=pass (imf16.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=pass ("microsoft.com:s=arcselector10001:i=1") ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1738167564; a=rsa-sha256; cv=pass; b=d37B1+fKnCZxDCQ3YGAJwx7U4vzW3DaImimKMSWYMIVrchLp1AlR/3Oabf4dlvBFgChb9r cfz1w3UkkCQDilzP6oo8PJL5x419XxQfwvQBqjnlcoMkTTezgnvBKBZ0DMhRLyqLmUEerL ZrVtLunWB97STuzBqe09DlXFcuEN1GQ= Received: from pps.filterd (m0246630.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 50TFsI58003551; Wed, 29 Jan 2025 16:19:22 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=cc :content-type:date:from:in-reply-to:message-id:mime-version :references:subject:to; s=corp-2023-11-20; bh=dFgH4FJgcowvkeTwgH 4L5NZlo8fjguiJ4C/pKzXuhOE=; b=Pn4Si15KQoPiqClxp/S2DEvEc93bB4ct0I 4/Abx0kV1hqqDRLhg97yidaUkBTsL5mwDiErYg0BlJOx0S+spVFU4upr6AAHk05K +2x3cFoE2cRhSdO6CslISctxTJvJSnRPuDj6Q6zkNjJk9C3Ge1yz/UZLHGey/dt4 iIv28EZNZB5SZ/nPyt9yTmCoDbVcT5s3xzWxYhHrJX/P6fR3KJfDk6n4bOfKC8Hg ROcdEfhfv1zRLwSO/3M3cfvrILgqx17TnJqvw8RpST+Yx/5ilLdLBFuA0YJaUN3q MeydgzvI0eoi15mRWfWJBLhz1UCnzw0chDN6ar4oXivu3O0/6Okw== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 44fqcp827j-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 29 Jan 2025 16:19:22 +0000 (GMT) Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 50TFOtH4015707; Wed, 29 Jan 2025 16:19:21 GMT Received: from nam02-sn1-obe.outbound.protection.outlook.com (mail-sn1nam02lp2042.outbound.protection.outlook.com [104.47.57.42]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 44cpd9nryk-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 29 Jan 2025 16:19:21 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=tvU/ACvntFDYuV13qnwgIntr8qZVC0UtmorDYHOnREPaStALhTlQrJfxCekP8CHxkJHlL+3tL2z6zfYaQhuCyWjIv+WjUT6dk3cINbkdohfjqoG5bEcl1pnq7RyxRJWjoODNLpgeOesxoQlh/HHo2JD9j5OniRD7CvveJjc3Q0EbNAZ0fOo/JxejbaYZF8xL9t64S5dlAHf8ZO59rdjSzQpp8LZG4Gh3sTEMLVdvhTpZD0/B7sWC71kRCkEV5zTmXlxdO+NU0MlxPAyYYAL6GEXP2OKyzrIx1f/bTwsU95cqeGoNJZ5X4l4UOETa9y4thEKWFCsnSnrBwWzx0PsKKg== 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=dFgH4FJgcowvkeTwgH4L5NZlo8fjguiJ4C/pKzXuhOE=; b=cI+WXo3jtL2OQ8fkOH7KdLE7SAMuPjGZ5TXRRbpNE0u+4IxD15pa3wDx0WqEQxpSnTNAoTZN590QV6JtqYMnNJIAMXLeiCdJq7tldP3gIvqNE5RVe8Xu5RR0bkrcH8INx1oG9291ft7FBGJ2KjU2LuKGmdHGrkz5q0v81kOZOFLyb5AKfWDrfWC/kpXoi1z6wAlAv5pi34GTRxrfMEXH12sF8d2f+JAXYpx8I2N2aQIXGC+3auEH72cAua3PmDPGj77titlS8uufAoRxYjlk5dAjjni/8fwR8b61s8Vx6rKnLxfkiK0jNBDU2uexnjZ231ftZp6qmBgxB1BvZjFs0w== 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=dFgH4FJgcowvkeTwgH4L5NZlo8fjguiJ4C/pKzXuhOE=; b=IC53rfoD5blBeOt33oZS4sbLvb1JVe18Ucakvhdiw7sDXQ5pvu4XKOZt+h0NcmHv4f9G/ghfPL+R2xJyGT6d0ccmn+LsFe87jgqodJp+uNc1357HMTPE3/lN/52Stc7B4vsizWjFvvwn5YA+L7amA40Nba5AFf2bCKTFQlsQexU= Received: from MN2PR10MB3374.namprd10.prod.outlook.com (2603:10b6:208:12b::29) by LV3PR10MB7820.namprd10.prod.outlook.com (2603:10b6:408:1b4::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8377.23; Wed, 29 Jan 2025 16:19:18 +0000 Received: from MN2PR10MB3374.namprd10.prod.outlook.com ([fe80::eab5:3c8c:1b35:4348]) by MN2PR10MB3374.namprd10.prod.outlook.com ([fe80::eab5:3c8c:1b35:4348%3]) with mapi id 15.20.8398.014; Wed, 29 Jan 2025 16:19:18 +0000 Date: Wed, 29 Jan 2025 16:19:15 +0000 From: Lorenzo Stoakes To: Vlastimil Babka Cc: Andrew Morton , "Liam R . Howlett" , Jann Horn , linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH 5/5] mm: completely abstract unnecessary adj_start calculation Message-ID: <01c63720-a5f2-419a-96ff-54e32d71a14d@lucifer.local> References: Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-ClientProxiedBy: LO4P123CA0110.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:192::7) To MN2PR10MB3374.namprd10.prod.outlook.com (2603:10b6:208:12b::29) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MN2PR10MB3374:EE_|LV3PR10MB7820:EE_ X-MS-Office365-Filtering-Correlation-Id: ce4762aa-3b48-4f3a-4e86-08dd4080ae2f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|376014|366016; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?pt5SfmuEaVY8YUbg6MXfFsqS3EaSEdretaLoLe3KyutmP51PhdIPIG/bov1w?= =?us-ascii?Q?DxU54/OAo5t+Q+l0KXPtrjlP/SHLuRIIWfdCGude2hPx1DjNtf38fsvKATpH?= =?us-ascii?Q?JBsN85BYoKbSobEu0sVSlmQsCaM5SuLgCil+2aJaLf2hdTaTxg2tzvZ3My3w?= =?us-ascii?Q?UDzdeczcSqaxqfR+W+DDt/2bZ8kvrbAidvTH8qSGtR7hjZm5omvPGaV3frRD?= =?us-ascii?Q?0ZNZrembXUy+Vzwz4IgGzLuEkCqRE4NXA7VD70xYu5K41qBqsK5EVsV7JBAX?= =?us-ascii?Q?eFoBLylMmHTM9hfOyJICF0IXLkg9E8xgbUoGI9aZBxXKSNqgxBq6xVM2/yng?= =?us-ascii?Q?UeZ484Gl2O0u23fgZ+yLabYhDhY9FeQt7yPpRsDBN9wiu+F/kdkLZlPTfth4?= =?us-ascii?Q?8na1TA4Hfgu/OAQYl0+gsEJawpOZ7b8rkFSTfzXbMd/MaFeFlJYG4xCGRsFs?= =?us-ascii?Q?JBVyaIHItpbq6HlY5APPvyh7bFA5LHVc0arlcbJLo4Qf+tk2I+O82PVJDu8U?= =?us-ascii?Q?9wGxJZ1mHKRnuwY1PGNypSd9GQhDe0QIHAdhK3FTcqxfKT1AdodoR/x5S8ts?= =?us-ascii?Q?g12kTHvkse++i2JUZddQoHP1J4kE/RliiBxcwn/owwPyPLPVoKySfbVF14mz?= =?us-ascii?Q?A1wXQlVkmOd6SsCbIALHJIIn6IlGC7lMP9w1yolKacSWIgVE4RkfWFzROBma?= =?us-ascii?Q?kqdLr447VuH3lXsojhTRNK00Aky5kKf06flmVL2dZTl38dAkfsye3VdczDxL?= =?us-ascii?Q?8yphpVBn5MdrVFGYTU8W02fEfQdLeEShXQbcyp+4Yep8MP+FUaK9np8GraaP?= =?us-ascii?Q?3Gt91TEqJG1cc8XqIyR7kpKz3KcafYJLr01m5dzxYvZ7HeAriCvKGOHP1kNx?= =?us-ascii?Q?U6J830MAo+k/2efUarA+X1tgy8OfY5oKwm7C76n05a1uoOmNPVH55bWt2S4x?= =?us-ascii?Q?xKcJYuWuwr3P85lMnR1uE4BNcIho2hW4hO2P0txTuLMfen1qI+RAHQ+zn4gB?= =?us-ascii?Q?g8GaCVwrDv8+o+0wFgX5zzcAIud9tNueYiDzo0TPxP8tghfdRJNfBpAgPCl7?= =?us-ascii?Q?GFaPEWNfuR+iV/L98RsE9FBwFk9ira9vo3cDA07V4LzyGeruG3CmbXGoaky8?= =?us-ascii?Q?4B0j1O/p/hvccIZAUnZY0Gf8a//+6ZZ8Oxj/f8NG5A0SmMj9BkS0CN2aUyAQ?= =?us-ascii?Q?E5AF6nAw0cLjZUA6m6AdZcl+he0kWTTbpIWSNOxk4BFZGXyhnBVDng4V66Xe?= =?us-ascii?Q?ifAxopkWhIuCBPNyyV2c/m+ddmBkBXwAYxZQSxv/lHpR+Pu5+UWE1iff1AHo?= =?us-ascii?Q?MrL449R0RcZ0Ep4IVvfIayNRypgSsYqFm4DrlIFYBAhe0dJgno51kx5AUuhy?= =?us-ascii?Q?VvPnFSfbLPALd3GVwE33iNJLGWbK?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MN2PR10MB3374.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(376014)(366016);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?PkqgEjqo5Cf6QdzAVNBMz/HDJOGhckVh3WYGr6fF4f/oTgJeCCL0RowzD3Le?= =?us-ascii?Q?ho9121yTK3UGU2PqLXwRkbrsI9H4SMzZ9o9yGRY669pd9y3eNURmnSpOGZRR?= =?us-ascii?Q?gdjLdXZ3LN3eAOaFttz2dtx/OeMoEtqg/kCdiUldGfxXh1U8TF93sqBcCMLL?= =?us-ascii?Q?om8ZConMmhRNaJ6oZMfZSdRjjlGvlURsUrqoRhAOmNfuRYrasKapTtCXTVPL?= =?us-ascii?Q?8HVhFDTQApKXUCyUlRSsS8QdcBwJ5jsr+f7jBkt4K0XeAUGSQGvPp+iZyikQ?= =?us-ascii?Q?qTaJ1HbjnAKUTUrschudrbaASoDqGzkZfH05svlVUTTWLyPx3SQeCNvBf4s8?= =?us-ascii?Q?X3p+hNpb2Am9SLCFDzYxR7gTZiVFPvL5zV/4ccnOi14XigkmhhEN/y/s9qyb?= =?us-ascii?Q?u596B0gG3z3AEN0DttINKtXBgx7ysXbw090HptAzU5zqlM/s0ERsOuf86Qyj?= =?us-ascii?Q?KQxdwCDSeiHO3iJRFcOKf1KPwYtnehTeYthJGPiopdMnU8ORUiYKpajyXQTL?= =?us-ascii?Q?h3Rml7zTzhyhgDUsW8xoEcr4XsNGM0IS06VeEJSphJ9hyg2TmjuymsgGlzZU?= =?us-ascii?Q?LZrudlxAsTOpWqPHjGYyOcPvP1XiAB8zu0sAJO/WUKUGDafpT3L1T/L/PWvM?= =?us-ascii?Q?R+yskkfILCqrN30JdcDSFj4OJ9LXFGTjgV1SvuiJv5EkwbZuCt/7rGYClnTx?= =?us-ascii?Q?SyIgnnUGOOycIZ/ZDXPMu2+f826p6I6K8cKHQ2bnVJjK+EFGAElPSbR66+PK?= =?us-ascii?Q?o02o4IYOGyMpX6IeZNbSfOR8UeJfRMGy87tp2U/vqSS9yWLyQ0htmjscyp7N?= =?us-ascii?Q?ZX6Nfw1ec+uRPdxS2IdLtoiJPE3pmiVNejmb8ja1pOeGar8NrwpclnT6EH+s?= =?us-ascii?Q?mHR79hGRDPuOk7Yum4xJFVvJ6Uu5DvlVVY+GcmTDPUbZKk1GJYYORhaoevmf?= =?us-ascii?Q?5ZzI99A3jc+5UPzKbbP9jsZ5U2XXnhevBytVoDA5PNjw3B5bx08LOQSALlh/?= =?us-ascii?Q?lS3pPQYCh+LZgdusoly/LY3wZinoEYZROAMCu7z0INjr10pBhjL6UZCZ7KAM?= =?us-ascii?Q?ForQS7z8xRqKMdhsW0s0ViH/7xBeMVCALb1TrDzDyYR+Oxy6QzwKLi4nvCPc?= =?us-ascii?Q?l3ool8ELiVoGGXYWKjZ9tEcOo19MOOqQJmHlltVn/25luknTfXx4Fi+uR8A2?= =?us-ascii?Q?lmEkn6+bLfNpxvQzPhU8AIEbqYmtvuAURryYxSn9xtc0YV17GbHUDZOpWtGI?= =?us-ascii?Q?Q4FV/F49nWteOC4F3gkG71KQUdxeVhgbVMml8tzhvi1vV5YCQ8XcKXD86BL8?= =?us-ascii?Q?jxF0wAXQ8KvjfiNFLQG6kji6LJSKrve3sXaeXG4a4ZJZxxlw4dNI8XuiLraA?= =?us-ascii?Q?THCz3Y3j/2TKRY3HW8J8WefyEDqyqq2maXamRUH5n+3vxDLDkv5wRFc+CLhb?= =?us-ascii?Q?4NboBT3Nev0Kot1BzgNEiktX+1rah0o5v7wGeRHpXgsgPQnnZWnrNPEsiyid?= =?us-ascii?Q?ztf8Iw3cEdy+ae5H2MQLZjmOIYIemkw3zWts4JJg0p7T5zJNvpOiKfDG7gw+?= =?us-ascii?Q?Idok4V8B9minyYthMCbfVR2YDarAv16v3jNhu3ORRzxzZV/tBXRPPI9tdoVK?= =?us-ascii?Q?aw=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: hBHkm/O7RTqrzjURKOw7j7C5FZimPFeoCbB5d5BspFTKt26yOVSSPm5J61Dn1hQpNL3CO1XtPLc4CT1NxE9TN5n3mie2mqleKV2p47EOUnzvcZWopWu6EVOZXd03K039to2/TlMWg+X+ZHli3n3BcxTVJpiIxmHp8rIuXe4POmaUXs5aGbNYGV54OM50LPya9VSaZMY1VdomilnXzZpUJUuP4ByI9GeQtsWAE9frSNy86qBe9QiA2yHdpnREpfxGIp7CFxSRVp5Lp0AekpZLsM2MGaMVWgGIYdEA565wZRtPXy6F85NmkSJpgvYrNVuXwMW1sNyPo4cGyK8HtXlwTJ1TrRs3zM3htuZdeLFq6cIPEF3EdYtC6TdDDAWpRS1xGsmQg2UizEHhVX1OJlqdEhAtRanl4zy3gpKjqjvUBcyPLhvM4kUDt6iNDl2bz4qTPYKL8qLM3Did8RGFiEATZZWr8W+D/Bgptl6Uk2eXm5Lkmn2WK+R5z8KrnlTZNRz+uOBmDNZsgISXVsGTunQgnO+XVvDOKBlR5XgMtBlLrag3FfXxpgfN/+HIk7BqQYdMV7NIcgBqOuGTF5NEsqu4dfSI+a40+a3oLo/7FWV0iC4= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: ce4762aa-3b48-4f3a-4e86-08dd4080ae2f X-MS-Exchange-CrossTenant-AuthSource: MN2PR10MB3374.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Jan 2025 16:19:18.0524 (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: UTwmp5d8kQ2kHVN4ikaFMLmQC+aazmlC2zit+lFSY/0v3owfVuhuVJQOO8KUOGBlDFNymfS0j7G5iXqYaB0ht7pkP51N24gthreB0j8jxgY= X-MS-Exchange-Transport-CrossTenantHeadersStamped: LV3PR10MB7820 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1057,Hydra:6.0.680,FMLib:17.12.68.34 definitions=2025-01-29_03,2025-01-29_01,2024-11-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 mlxscore=0 spamscore=0 malwarescore=0 mlxlogscore=999 bulkscore=0 phishscore=0 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2411120000 definitions=main-2501290131 X-Proofpoint-GUID: HN3UzYUPpzIvK-o0PELfnnjQtCNnm4pe X-Proofpoint-ORIG-GUID: HN3UzYUPpzIvK-o0PELfnnjQtCNnm4pe X-Rspam-User: X-Rspamd-Server: rspam09 X-Rspamd-Queue-Id: 8B0D318000D X-Stat-Signature: fypq7bdda4g9dhkxg5d1u4p4sk6rg7rs X-HE-Tag: 1738167564-147764 X-HE-Meta: U2FsdGVkX1/H7AsNuWvTqyYDVKYwAMYf5fQ/D9M/FloFpz2kWP8TmFAR4GaGeDOjxExyn5rSGUg+5kCY8srsvxqCOC/joCxmdtdu5cQL0jiQHnYXw/xjV/WzJCudxQu1MiRrmjZXpymEbeVG26KM6sYKbz+3BREEurMfvhCCmI6kl7ZDZtmS0shChUWK3OBH757Fm1mn1HHpZNmxvTLMjO73cdQm3958zb0f0bV600mPZCmNMNnmdleSrI1h7SFe5nxCm9MLa2+Xz2MzayNvLNG2doZOIAivIyJAWg1EZ/mxdwKHDkaK+W28ZpSSlehkEvnuFzb9b7ZBK5u7TerMQReRgYxui6GVCKvYTpjfdEQE+90I0+S7ueViqfdsH/AJKXGVsb9eS3H72q2q/E2WMwDRLKKvCANbpFh4BjL7mtoouHB9npoRC/PCOKoqltoLsbQ5Kq4Gwk4lUbQY9k4ZLx27+Uz1Qd6GeKrZ9AZUx+tCmlz4awhPsSHQAPE5AxGsE5lAEONGP726aAxoagfXMxmgi14bo7WutxSqbo8z9I87aPlyqHVCNjaRyiqthZ3gcTru94Lu+F2Jkh4UFHIb6agn2LXxXelN2CxGR1hE9g9jONpJOOhFxrW/OEaoOhFRPe16DP3JjVrz86lX+qxd0/1FipdPbkTxzJHCoI4b9EeEBiiN46EKGWC29iz7RUENeqOPC3p59lrLzr0JhWJvpTm3opwH8IsOSu/IPuB49F59VEs3iIA/5/aOdpOaxWJUTNLyYnVUWtYkhQOCZkE+FG10nVcFrAkIEtfRzDsWt7a+1rgZI6RZDer9CvmgGQRW8NhPUqcB7fXJ/RcOVkgZVlDSSe6kbEi4Uy04XlCiK1QqyxUWJx8GXDFcHd9kveLRpj49zRihKXwIQRqjNTlgnL3M525Uo3/XVgYllyP3BObPNLL17yhch7gEznMomBHY+Q5M+z46FrH5bcFZBjG WjVyTueF d/eTJHDjUhrYDGFacXF2OJngFrcZvRjLQfW5Maw588FslnFt+2HojAKfczi64BaXRQTpuCv86XqtyRaGxGZgWT81TB5fsmdd1z0qeaiC+OOaTY/LvPa6DWMKO7FRHqI1vbOWQp+8Ld4o2f62j4vio2eEGLVjodI61+2jtaW0TW7c0+djxbVtY/HbFnOPwKljldQxvkWw/5MVCocKESwY88VGMHCHn4u+uq98TMNOosV1u/aIIOYzKzU5ygbnWjL5fbS5MLGNJLzTakS/l/mRi5Um5JWMrQtzq2Q39h+qsRFexHTLrgsGF7XVYCqzmWV0ONgQIZcoWAvTeZ0n7LBkhQzc7VZer+9VHno5bivj+XiXhgPzmNQ5+uLZNEWTHQEYz0gqqTAgZr3qGDd80c4Ny1m6hHTIw22GuHJ+3CrYsGlUJQxvR6w1Evlu3Q9kjwMJdpfz8QokQHVksRFDSXou3YWf3LaTDV/25/LmNWBIQcmAQ/IXavNYja+ITOhHxAihhmqHeTF7Xudr/RJuNe5Y8mBOjA4ttR5Wchv9bYbfNXwI+ym5yKOc86SeFqxVfa7OQZX3/xtfcW1TSvhTIsV4uA5qk4IVP+15A3PriwiaEtw0VEL4= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000068, 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 Wed, Jan 29, 2025 at 04:42:06PM +0100, Vlastimil Babka wrote: > On 1/27/25 16:50, Lorenzo Stoakes wrote: > > The adj_start calculation has been a constant source of confusion in the > > VMA merge code. > > > > There are two cases to consider, one where we adjust the start of the > > vmg->middle VMA (i.e. the __VMG_FLAG_ADJUST_MIDDLE_START merge flag is > > set), in which case adj_start is calculated as: > > > > (1) adj_start = vmg->end - vmg->middle->vm_start > > > > And the case where we adjust the start of the vmg->next VMA (i.e.t he > > __VMG_FLAG_ADJUST_NEXT_START merge flag is set), in which case adj_start is > > calculated as: > > > > (2) adj_start = -(vmg->middle->vm_end - vmg->end) > > > > We apply (1) thusly: > > > > vmg->middle->vm_start = > > vmg->middle->vm_start + vmg->end - vmg->middle->vm_start > > > > Which simplifies to: > > > > vmg->middle->vm_start = vmg->end > > > > Similarly, we apply (2) as: > > > > vmg->next->vm_start = > > vmg->next->vm_start + -(vmg->middle->vm_end - vmg->end) > > > > Noting that for these VMAs to be mergeable vmg->middle->vm_end == > > vmg->next->vm_start and so this simplifies to: > > > > vmg->next->vm_start = > > vmg->next->vm_start + -(vmg->next->vm_start - vmg->end) > > > > Which simplifies to: > > > > vmg->next->vm_start = vmg->end > > > > Therefore in each case, we simply need to adjust the start of the VMA to > > vmg->end (!) and can do away with this adj_start calculation. The only > > caveat is that we must ensure we update the vm_pgoff field correctly. > > > > We therefore abstract this entire calculation to a new function > > vmg_adjust_set_range() which performs this calculation and sets the > > adjusted VMA's new range using the general vma_set_range() function. > > > > We also must update vma_adjust_trans_huge() which expects the > > now-abstracted adj_start parameter. It turns out this is wholly > > unnecessary. > > > > In vma_adjust_trans_huge() the relevant code is: > > > > if (adjust_next > 0) { > > struct vm_area_struct *next = find_vma(vma->vm_mm, vma->vm_end); > > unsigned long nstart = next->vm_start; > > nstart += adjust_next; > > split_huge_pmd_if_needed(next, nstart); > > } > > > > The only case where this is relevant is when __VMG_FLAG_ADJUST_MIDDLE_START > > is specified (in which case adj_next would have been positive), i.e. the > > one in which the vma specified is vmg->prev and this the sought 'next' VMA > > would be vmg->middle. > > > > We can therefore eliminate the find_vma() invocation altogether and simply > > provide the vmg->middle VMA in this instance, or NULL otherwise. > > > > Again we have an adj_next offset calculation: > > > > next->vm_start + vmg->end - vmg->middle->vm_start > > > > Where next == vmg->middle this simplifies to vmg->end as previously > > demonstrated. > > > > Therefore nstart is equal to vmg->end, which is already passed to > > vma_adjust_trans_huge() via the 'end' parameter and so this code (rather > > delightfully) simplifies to: > > > > if (next) > > split_huge_pmd_if_needed(next, end); > > > > With these changes in place, it becomes silly for commit_merge() to return > > vmg->target, as it is always the same and threaded through vmg, so we > > finally change commit_merge() to return an error value once again. > > > > This patch has no change in functional behaviour. > > > > Signed-off-by: Lorenzo Stoakes > > Yeah this makes the preparations worth it. Nice! > > Reviewed-by: Vlastimil Babka Thanks! > > > +/* > > + * Actually perform the VMA merge operation. > > + * > > + * On success, returns the merged VMA. Otherwise returns NULL. > > Needs updating? Ah yeah you're right, will fix! > > > + */ > > +static int commit_merge(struct vma_merge_struct *vmg) > > +{ > > + struct vm_area_struct *vma; > > + struct vma_prepare vp; > > + bool adj_middle = vmg->merge_flags & __VMG_FLAG_ADJUST_MIDDLE_START; > > > > - vma_iter_config(vmg->vmi, vmg->next->vm_start + adj_start, > > - vmg->next->vm_end); > > + if (vmg->merge_flags & __VMG_FLAG_ADJUST_NEXT_START) { > > + /* In this case we manipulate middle and return next. */ > > Also we don't return next anymore? At least not here. > vma_merge_existing_range() does, but here it's rather "the target is next"? Yeah we should reword as you say, will fix! > > > + vma = vmg->middle; > > + vma_iter_config(vmg->vmi, vmg->end, vmg->next->vm_end); > > } else {