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 00DB1C0218A for ; Tue, 28 Jan 2025 16:42:45 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 33CFC28023D; Tue, 28 Jan 2025 11:42:45 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 2EBFF28023C; Tue, 28 Jan 2025 11:42:45 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 1659228023D; Tue, 28 Jan 2025 11:42:45 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id E6E2C28023C for ; Tue, 28 Jan 2025 11:42:44 -0500 (EST) Received: from smtpin16.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 6AB4CAEB79 for ; Tue, 28 Jan 2025 16:42:44 +0000 (UTC) X-FDA: 83057429448.16.A6BD812 Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by imf20.hostedemail.com (Postfix) with ESMTP id 15D9B1C0015 for ; Tue, 28 Jan 2025 16:42:40 +0000 (UTC) Authentication-Results: imf20.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2023-11-20 header.b=Yl38c2jN; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=XSNNZp2c; spf=pass (imf20.hostedemail.com: domain of lorenzo.stoakes@oracle.com designates 205.220.177.32 as permitted sender) smtp.mailfrom=lorenzo.stoakes@oracle.com; arc=pass ("microsoft.com:s=arcselector10001:i=1"); 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=1738082561; 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=qdV04kZ+CRRtid0BWj+CfxYfynSlpFcx/qaMIRYfaA8=; b=5LpjsIgDErkcyO1/+U7WcWVLDS2/hjG4NI0BK6xXat2bBEmHK2gXEv8eBbImNlJQWeB3qQ faHgUIt1K1iraSf6+STdZUibTGtRWh2G8eNY5VjjFz13lwasnfkzGeR/DFajsCooAPLWz0 gxGJAw4B7iFz2xV1TLyRySKhfmjLw10= ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1738082561; a=rsa-sha256; cv=pass; b=ooX1gUC6dVNOdYAhtXFYu3JUW/+WCuG2TOvNowrOjGnh7UVlCDvaDYtDPbanKsZhISRErX +k1x2VmequjJFuyiu3ocfHg3rMJe0Z5rPsU4vwubUIvG/eT5Ko3YQ48jQHpcI2vgreyTBM HDNX+5mX9+3W5JdBvBshjo8fyqv5tGk= ARC-Authentication-Results: i=2; imf20.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2023-11-20 header.b=Yl38c2jN; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=XSNNZp2c; spf=pass (imf20.hostedemail.com: domain of lorenzo.stoakes@oracle.com designates 205.220.177.32 as permitted sender) smtp.mailfrom=lorenzo.stoakes@oracle.com; arc=pass ("microsoft.com:s=arcselector10001:i=1"); 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 50SGMqrB022201; Tue, 28 Jan 2025 16:42:39 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=qdV04kZ+CRRtid0BWj +CfxYfynSlpFcx/qaMIRYfaA8=; b=Yl38c2jNmUzTRLfcI7vs+hBw7NCW4d5nMr 2/G5vsDDWP8FwCByoGaNjtehfFObTwY1NaG3SfHe6fUxUgt4qa5agNpvJ51640kx N0D00qp7453Abj/7plwNYoSfJs/N22FR6zKHGCkeDZRqj8+bvvx8YiUpKqsp3bIE LRbhgtf31W5/JbJ13kQYQRhvRGXWjCwXFhArP01GQmN9wVaWPX/FyK4sqqkKDw02 iWfZsNuzKWD8qib6LjHhtDaNHJzK9JRyjKsrnWjbHkAgvpAE/ieGVTh4ZyFrnc2I cY+pX43RnkJFe2q2HZWT8NUwpeKkBxqIuNxairJMztbnlj6QOGyA== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 44f0mwredm-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 28 Jan 2025 16:42:39 +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 50SG2Hff013788; Tue, 28 Jan 2025 16:42:38 GMT Received: from nam12-bn8-obe.outbound.protection.outlook.com (mail-bn8nam12lp2174.outbound.protection.outlook.com [104.47.55.174]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 44cpd8bdbh-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 28 Jan 2025 16:42:37 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=eJ7JR8uPZ1eaKl39Zhy1UzQJwjlZCtZF/jen88CC8BahsPIE4aanisMRvt1+k6jLeHiHo5m06CdTqfLuHLUE6zwGG3CS+S0Zj2hacx6msjbiaBZ3N3W4Ynq1Lm1rwiujmc/gFwH3Oc1yUGdXkPM2qaRZDtvG21VtIxF/xcxbhPh2IrATvn0bfo5D9Pq+36A95LWsaHnDpq2xcB468zBhpnqTBPR2O1GYaCi/AwjBUrMBU1kmVk7me3A08fM9czjt7gYn7rhWuV0NqzJyxyx885goqVtQz1eincIxwVbt0yGFy0q7hc8PZ8yrcZO9O/5C24AjBYav2AwdhWlQawBZNA== 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=qdV04kZ+CRRtid0BWj+CfxYfynSlpFcx/qaMIRYfaA8=; b=ugiCc0Gd4PyXfQzHLPlUaGL/uXDlbDlIjtUjVZ0Fbbkd+pvQHvu7BB1PUwHJuPWBS8Tpm0P8/+1XoqHpEsI+/46fwKYe+0zITQBXdLFF2xJ4V6YFDBObXmXUOhro7fcReee9K22fSQmIjRkVjvg7TL09QxS1oO1/09afOipvACGroFPboK09QVBF2YkOt6dLquXPfkb9IeDRelKR8u38H5qo6SdPcy9PtqB6WR9+rGbM1+hnBlKovIV6dv5vMbASgLd33L6YPg5rNv4VTWp2JxrGopQFCHEosbPv3QJXO4v9DyW+zdVB+tqWUsxQLhdDV5rDj5Km7Q2lvD3YWGYndQ== 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=qdV04kZ+CRRtid0BWj+CfxYfynSlpFcx/qaMIRYfaA8=; b=XSNNZp2c2chmUTDh1m9Eisl+WnENnV2yu2Q7kMvKn5IwgFccqCam42qzkDuFi1Gyc02z2xuKO/9u6Hq7JCOvkCd+p2bS0B0IeyAVf0doWm8EHGwtVsOKHZMRNhcdFdvAo/B6dyifrHpM8CnXA1sROL4O84o5B8fjfENWPzxAju0= Received: from BYAPR10MB3366.namprd10.prod.outlook.com (2603:10b6:a03:14f::25) by BY5PR10MB4195.namprd10.prod.outlook.com (2603:10b6:a03:201::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8398.17; Tue, 28 Jan 2025 16:42:34 +0000 Received: from BYAPR10MB3366.namprd10.prod.outlook.com ([fe80::baf2:dff1:d471:1c9]) by BYAPR10MB3366.namprd10.prod.outlook.com ([fe80::baf2:dff1:d471:1c9%6]) with mapi id 15.20.8377.021; Tue, 28 Jan 2025 16:42:34 +0000 Date: Tue, 28 Jan 2025 16:42:31 +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 2/5] mm: further refactor commit_merge() Message-ID: <02121957-af65-4616-abdf-d2eed227bcb4@lucifer.local> References: <0bbb2efbdc2ac2af2f6d73679cbb0811544d0647.1737929364.git.lorenzo.stoakes@oracle.com> <09484ff8-1b0c-4101-a793-e869aa8a6eeb@suse.cz> Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-ClientProxiedBy: LNXP265CA0012.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:5e::24) To BYAPR10MB3366.namprd10.prod.outlook.com (2603:10b6:a03:14f::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BYAPR10MB3366:EE_|BY5PR10MB4195:EE_ X-MS-Office365-Filtering-Correlation-Id: 27a9c0d7-b6d3-459c-955a-08dd3fbac447 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?KDgy2hoBR4VJ4oIsr3TyxhicgEYWSRLrFpDAZtt6qJgFFdSTCYFHfjnc1+fE?= =?us-ascii?Q?4T/qZru5wXS38KqZ+5L99ewyU7/Cxi9BcC4KmvL7ULIKn9kvofI1DJPjeX+f?= =?us-ascii?Q?XXFQDCBX+NUQLO4V+nX7qiOF44CITfl26puSyKNt/pmbejy0evEHeLOqVXde?= =?us-ascii?Q?I4dLcjBKqEfq3qhlRRFCmnT3Oa1tcinumY94VmVsHTbxbGi6TabLZONh75tt?= =?us-ascii?Q?F1lyrZBJV3ds7rEP5vAOrzfE4JpdD7WheXYpAkxkdD6WwJwy9UfKibXV/V96?= =?us-ascii?Q?L9YPAeBq2TFE46y3IodkWJbDPzRqpoBrX5YtBIdmoOdaiaALlDZEpUzNa8pA?= =?us-ascii?Q?igMCEpzf9KotxqToLUEidWU4Y4s8WXz1S1O03fXZjkI9d2/zpwWB/29XMujB?= =?us-ascii?Q?k29wCrynZfjwdvPhz2YMbzZcz3eL7ACkCVngzBRJfvhsWgG1WCuwHb5XcfCd?= =?us-ascii?Q?4pZn/CWhHZaNGomiPoiSKHyjvSrhI1N6SJedaw4ZNnMMy2hiyQJWmRKBnSB7?= =?us-ascii?Q?V+We8EIzqEuOId+cMMsu2kjP8m6aUMbNoyq6Ul233udc6HW05kqpGVlqEkLZ?= =?us-ascii?Q?FlCFhuATY2c49TUOyBmCeBQgPJ/MOfjqvV3llNqpnJPrx1X0eeYG7LzheRfb?= =?us-ascii?Q?eum6Qlw2PdQNm3kgf7o6ruxsA1dp9BxqvEFahw6ycgmuw7Vdv6MwjBx0KOcp?= =?us-ascii?Q?o66PQqtzKX6XZ0BQV/onDM851J6TUJ/ipm0tjy5QHdWmN2RdubbaVRq4p2G0?= =?us-ascii?Q?plWCrNjI49TFf++0YQDOcGJz1ocOBLrgG4ju5WQYBA2cEys0eJHXEV6nEUW4?= =?us-ascii?Q?XvAboAo6RPZKaE8tbUMCdHGwO89L15QYvBVJ3rBaLz8x91uuOmqdJaKbpF4n?= =?us-ascii?Q?eh6/3FeVl2xv/ZND7iRAF/sjcQzcTD0XgoVnEB88fFgJ/nrfYBWNLNPfjGCl?= =?us-ascii?Q?fgemgpn2/AQH7GiDogO17P6SmIMtngyA15kgrv1PGj8/juWrKvfAUPsUOFzD?= =?us-ascii?Q?rGd9Gd671EvGxfEn8QlM61/Gs8xnWJBgnVcQ08ocBMf9M8e1MVZI/etGY2yQ?= =?us-ascii?Q?bxJnfs8z13rms2laJPNZgxJVQ3tSuFGKEET5JDd+FofmhBGd+Cc/eYcIhSlh?= =?us-ascii?Q?7HCd3LlRsFlv06vBTIvSvZx6NA+uNKjXcPGzqqL7UvVdB2C8hHwgIyi3kcWa?= =?us-ascii?Q?TFIQR4Vn6BC07dMWWSpFR3s2idpjZDf3/mCc+N78FBn37pKatDL0TBd9b/Xz?= =?us-ascii?Q?w7iLwK5HpuQtJSdL1ndkYFLbJLG7ME7SP8jUsq7/zJhBxx8yedzeqz0Idgyk?= =?us-ascii?Q?0SB1uC2GDtAP8aZhFjt3HGp/ecHvunm3K/oq7hhncIyPCyJoHYy8KPDHvk9J?= =?us-ascii?Q?NEkPHPDn/0jW4NlQXlOUcGDELQtr?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BYAPR10MB3366.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(366016)(376014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?kG8pJTrC1c9l3Bg9FiY8zGJw9L7+v897A282dl563kI5eLrV13NfwbL0NcBz?= =?us-ascii?Q?BdVj75LUOEWHsWrxncCeotpuJLhNov0wLWC/Xv4B/QZSRHaEslMQstjkdSCg?= =?us-ascii?Q?xZPV1g2xXV++jB5VRaCaKKEoDrHPdnXeskDEUxvUkc0Fx7NCMz/yQE2x8pUp?= =?us-ascii?Q?e5vzbGqiBYdUgXp970+BzcwWTrpLKUSExwjvnw7Jb0O0zXDSL6wGPzFIeGPz?= =?us-ascii?Q?BMvcGB8rfdnJfDcroV+zNsYHKFCfFIQ3OSWRJmAQ8eteQ871GYreZhkUj0cc?= =?us-ascii?Q?R2wppe4VzjUkTi5Ax/o/Ng5S2UlbBiOsYcuJ6FGH+VlsOxVuhw3/D0jVS/oI?= =?us-ascii?Q?GtbdKKin49xqjblcBLfwVpr3ESyAG4HJ6q1m+1eWVDOZxcOWmBgtWeu3zvF4?= =?us-ascii?Q?QrVmcBIh/yWhBiT9oEiLZZrfhs6/q8O2O4wj8xADioZZXgfpDDr0IdWZ6lb4?= =?us-ascii?Q?ua6/HVjsCZ2ebQ3yfGeJ9MROSdidrIgSsZTkgKFbJ7Q9ak8rhoP5bP9uCl2+?= =?us-ascii?Q?uXLtgWpxKaeo0DaycW7Vj86a9jnGbgs5/wd3xIvYTDBKpBCXivz33ydQp3c6?= =?us-ascii?Q?ELJ81uj1HOND/he7/6EBLA6zQuZHgQokgT6be39P+VREG9mmzVmSBcER2MwS?= =?us-ascii?Q?HNeJXLk9v2BQ5GVWxRwVM8wdnLi4O5UB1Z2+ewBVcvkV7l16Wht/zCbScGwn?= =?us-ascii?Q?nTmFndhb1NGwn085jz5TLsiCD5qt8ZcO99ESOurowWH0QqXgc1OJ3oh56TRk?= =?us-ascii?Q?teViMrQRKtnB+YqV4yG/twW3wG3GNRvTEUswT2GZ9ovDG7FZGeRxA25V0ASs?= =?us-ascii?Q?46I1dkP5Q/OjhQzSIPRi4jVlnciKQjNuLH3kJE89Oot98SIDPbUd51XX9Sw8?= =?us-ascii?Q?segZMCrtXsSJ8izMYg8yVja8F9vylbZi3QfdFWPCKWQ7pm4gK6QMYNEZ0i3a?= =?us-ascii?Q?k/U2DEkR7Z5KwIiIz2yPuSaclhyPf1PIyHllwXULTBUkT8xnX/udjiN6nqF7?= =?us-ascii?Q?xUFT39La3R0xZuUb1gOycyHzYNiA8HZFUNKTuMsp6Tz0hdGCsXmH2hHUj3Bw?= =?us-ascii?Q?85Mxn+CArK0xPFSieSnPjDk2bNZdHQqNbwhRGGt2HMvPfE/43bkERgzoy7kX?= =?us-ascii?Q?5thQi/a8jYQDIJgsDChdWAfKEFVIpC9xgqLfZ2a62gidvPI7pIZufihlcqwE?= =?us-ascii?Q?oGjgmupcPQWnVk02nYTzm5Xi5OMLmGF2W0+qeXd9GeMqTx34vOw4FxdYRcWd?= =?us-ascii?Q?v061FwRjonhkrC5iNJl/vrf8X65qFAHOtUa++N4Xo96aQ/3sxXK9Bv4AWkLd?= =?us-ascii?Q?1GEG5xZJaX3aSi+VDBlTLsmt7Gjk36Y53f6bYGy6I7Qj7B4dedAKiPcyIqM9?= =?us-ascii?Q?U3Pk8uj6I0n3pmLywGYrNzsts0Uoz3SghO72UKaLZQjx7K2UJMk5JPl/Lbl9?= =?us-ascii?Q?rehxKLzEqQ37So2p/M4zCMqFnLqKhEffdbhpiNL1UdYWo/tCkfnsJ8UZTbx1?= =?us-ascii?Q?hGc8fYY2vIaAJL+wI7GvwbXWJneSyUsSZCGGRLTMooGo2zxzFTLZtwpuLjLY?= =?us-ascii?Q?7HRtAIL3Ui0AZ5XRHVLCKvqKBevs1PxFTh0Ew5do05SIdMs1bgedteD2w0pv?= =?us-ascii?Q?ew=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: NiU8fPCaDNUIHelJyRdsuGawRq5ophDaq9sYuN6MCDCyHdpQwk7S0DzT0tqioIiJzBy5VzwFH8gDwCANTWd9en/HEE8afVox0bVKWsJwm+Gj3jBDQniQ2lyyFtuBcrE48po0OwXtWyDAme2ludm9aYT/wgjPdHORcge5l4l0OJX03SzELswJnWbuMdkhPiKxg/KzUq+KumQhsitHuslx2yIoiZwtaUhIGMbzeb2fWaLrnIE2ADq13gaVZnCm8B6I29KAJpOhQHtXFjpn2gM3kfXKcWpMEYBSVuhQZzi5PkCu67wwkARZno42DDdxXz+RuDjBeg6dVY3/O+hrfXrPe+Z1RK7/Qu3PF7dYuCiBwsHtRa891dO+hexIAJWQ8eBQ778Tgxdy+Z+jrv+wMfbmzjBWaRoaunSTtSddTSJw/WugIAJBTF0+aeoT4TL29wXFuO++DQaJuSicvM/wzv2rbVXaRnAcIK1UPt9eUL0fhHcdaZS3Dn5VP3Xf7eX9iO1OD+L6jyWADbNTSklXmizp/hTVfyQeDPWR66GxeXs+WIYghqFonfvaGWur3os+THoIKYuCwaEk5AahBxupdzOyYGS/TvhButSaeivBd3er9rQ= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 27a9c0d7-b6d3-459c-955a-08dd3fbac447 X-MS-Exchange-CrossTenant-AuthSource: BYAPR10MB3366.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Jan 2025 16:42:34.7849 (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: OIXmJ+tqV4/mThrXSwuGR8x6tTDRQLWR8ueDm+zF1zlnfV25IMBCzpRG+29YTQiGC04/GCXD7ezt7CLSPWs3D3gJOtGV9AP/LyNfZMpzTvk= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR10MB4195 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-28_04,2025-01-27_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-2501280123 X-Proofpoint-GUID: zeq5DMa_cyMuqKlvtSNQ1-4zjIZg6dDD X-Proofpoint-ORIG-GUID: zeq5DMa_cyMuqKlvtSNQ1-4zjIZg6dDD X-Rspamd-Queue-Id: 15D9B1C0015 X-Stat-Signature: ne36ky7zypg18rbd1fdpc6q93xyha3gp X-Rspam-User: X-Rspamd-Server: rspam12 X-HE-Tag: 1738082560-372716 X-HE-Meta: U2FsdGVkX19P8hjr0/vdDxEDdn9YUFl4IjigWrJyqDqo6C856PVvjlXwIyAxlZnw7JsiPHpNYspQ9s7edIq+EQBieOrW+MHpKfRyPXfvfpsEcE8+WxHtxG9I57bICN/OtsG0FHun0DM1l2e9AgOphJ5U98bUpjZMZ//imcDXq/s2eExoGEWSzMcrcuyAV8AstQ176pfzZiWEVNN/d/YkO9QilZZMKyFefvBViJ31T2iiAj8rsNKmmKB+bUADOlhTVUuUHbr2uUEP9d29d0JBIo2x/VKyX6m5hcU8LijovP7pcAEnJLrDgH51d4Gl48ADVRgisglh7sWYItVtCaU9M6hQcttnjp0x+aw7TaFTcCNVV07rEq32rmpqu7ymb7CVMChHvbUn2BS4SEGFBA7RQXHwG1/KnrvBK/yWGF4sEYKf7EkF2BciVGq19SR2bfJylcihWmsINLa3/cCEMYtQIHwzPKPD+9sOTkJyKRh0V9JamJuSowR9UoWc27DRXoFrFriZ8XnfSzLtOvA219Xp8e0yTb9MEoJz0OGXpA4/InsXrkWH/lVuTlqdkSqHOvh/biTMfsP4JGM3h4Niz7ubucbv8Buf8abA3NN8zXMFeQsc79j1W0ohtG80tzvt3oGuhBTLADqysNZkC33WtnwtxbF2r5bqQYKibagGZyJG9qSD66+38vSrCrG/eAAtb7BDa44gsgkXiCG/cvbRPdZCTvswqpYcRMUEVyawbbULzPaQA8U7GlIsolSA5RUaq2KNoXXPRULj5qHh80r/WXZ2iP5eYZmdFWNoBOgGNu0PrAcqL32j+Dtu4teEhkAKYl+f7E+vBeX8GXKELHkfv2zsN9dRc+mduVItPJKBXeLFBx7Ofq1liGNnmJ39jwbNr7Pw7eakwHEXWz6mmDdm4qvLmJTJv9vfc6Ov7mfetfqjqV48FUNABhwEIwz/L0Lr5A97F9uszhoRsd6AML7FL+V zeGr4rGl pyuc/7UFTaG7PmaQz+07o17NuIP4usgYg05cI1UrJd86XovveDofHK534JuWcHsGyyFMa4Mtd2UVLcjRNeJIVSvG1o5Zb8CoWmpPfzXzF+yQOdcrdWejbbzOYiD6iHriEUcyIxfkX4WXS6lCBFzg9/Ac1IL1qB99v/nSS5QsUIFhXFulJTWJ0mZf6qAqegxN1b5U5fVd/EwowuwCjqQy3zqTj/ABKc5eJ2G1jtt6nTWKLwrj9OKKAdC+OypZfuoY1PkgvQU/LD9VrP6nTzEEUx8lYfK+bJeTLLGO6Gi6VX221e8JGV3nyMcxaMVoicjQiWAmQpx2P1fAwldTyThfTU+X/iXL3JWuEv6va0Qn3/w0thk1B1MvEP8WsW3cSalKgsL9S+b+ZWElXfoIyZV7IMQ+5Mpe6BGvxwbFfPweczRHCCu8nZiFVAjmJRnW9aS/NzdFh/JgvWqrcHyKg941X4Z78mAItOZYPKy4kAXsp6CZVGMPCBy68twDgm5ThlgkormMvSmbHne/UM4uXSKxtTlCPSch7i/SfThnukdSdsl4tbCeq5z5KDIwaTmLKSACnxZvw39ALRrz45bE= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000019, 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, Jan 28, 2025 at 04:07:00PM +0000, Lorenzo Stoakes wrote: > On Tue, Jan 28, 2025 at 04:45:01PM +0100, Vlastimil Babka wrote: > > On 1/27/25 16:50, Lorenzo Stoakes wrote: > > > --- a/mm/vma.h > > > +++ b/mm/vma.h > > > @@ -67,6 +67,16 @@ enum vma_merge_flags { > > > * at the gap. > > > */ > > > VMG_FLAG_JUST_EXPAND = 1 << 0, > > > + /* > > > + * Internal flag used during the merge operation to indicate we will > > > + * remove vmg->middle. > > > + */ > > > + __VMG_FLAG_REMOVE_MIDDLE = 1 << 1, > > > + /* > > > + * Internal flag used during the merge operationr to indicate we will > > > + * remove vmg->next. > > > + */ > > > + __VMG_FLAG_REMOVE_NEXT = 1 << 2, > > > }; > > > > Hm this is actually kinda weird? It's an enum, but the values of it are > > defined as different bits. And then struct vma_merge_struct has a "enum > > vma_merge_flags merge_flags;" but we don't store to it a single "enum > > vma_merge_flags" value defined above, but a combination of those. Is that > > even legal to do in C? > > Yes it's legal to do. And we already did it. And other parts of the kernel do > it. > > I get that it breaks a switch (enum val) { case ... } statement but we don't do > that. > > > > > AFAIK the more common pattern is enum that has normal incremental values > > that are used for the shifts. > > > > But I don't think we need all of this at all here? Just have bitfields in > > struct vma_merge_struct? > > > > bool just_expand : 1; > > bool remove_middle : 1; > > I find that ugly, and it necessitates the addition of a new field for every new > flag. > > It also prevents any masking stuff going forward and clutters everything. > > It also makes the interface confusiing, because now you have users having to > know there's a field that lets you do X rather than just a simple flags field > that can encapsulate all state. > > And some of those fields are now internal... > > If you were to insist we have to change this, then I'd pefer a set of defines > and the but then it'd be a question of whether we typedef something for that or > just pass an unsigned long. > > I prefer having the type safety of the enum even if it pedantically 'not > correct'. > > C doesn't give you many sane choices for this. I am doing my part to make rust > more of a thing in mm which will help on this front ;) > Actually, looking more closely, this is not a common pattern and the weirdness you say is confusing. The alternative of a bare flags field sucks badly, so while I dislike the aesthetics of the bitfields, the fact you can't mask, the fact it's not a clean 'state parameter' now, it's probably marginally better overall vs. alternatives. C doesn't help you here very much... some other languages have a concept of a 'flags enum' or at least a specifically-typed value that can be used this way. We can add comments to make this less sucky like: /* Flags which callers can use to modify merge behaviour */ bool just_expand :1; /* Internal flags set during merge process */ bool __blahdy_blah :1; TL;DR - will convert to bitfields, you're right I'm wrong, beer + pizzas in Prague soon! ;) > > ... > > > > > /* > > > diff --git a/tools/testing/vma/vma.c b/tools/testing/vma/vma.c > > > index 3c0572120e94..8cce67237d86 100644 > > > --- a/tools/testing/vma/vma.c > > > +++ b/tools/testing/vma/vma.c > > > @@ -154,6 +154,9 @@ static void vmg_set_range(struct vma_merge_struct *vmg, unsigned long start, > > > vmg->end = end; > > > vmg->pgoff = pgoff; > > > vmg->flags = flags; > > > + > > > + vmg->merge_flags = VMG_FLAG_DEFAULT; > > > + vmg->target = NULL; > > > } > > > > > > /* > > >