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 7C297C282EC for ; Tue, 11 Mar 2025 13:07:44 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id A8D0D280004; Tue, 11 Mar 2025 09:07:42 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id A1882280001; Tue, 11 Mar 2025 09:07:42 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 81A34280004; Tue, 11 Mar 2025 09:07:42 -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 583F3280001 for ; Tue, 11 Mar 2025 09:07:42 -0400 (EDT) Received: from smtpin19.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 4054E1CC9BA for ; Tue, 11 Mar 2025 13:07:40 +0000 (UTC) X-FDA: 83209297080.19.3BCAFEE Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by imf22.hostedemail.com (Postfix) with ESMTP id BA1CCC0016 for ; Tue, 11 Mar 2025 13:07:36 +0000 (UTC) Authentication-Results: imf22.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2023-11-20 header.b=Qo4NpkGR; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=LBw5bjQR; arc=pass ("microsoft.com:s=arcselector10001:i=1"); spf=pass (imf22.hostedemail.com: domain of lorenzo.stoakes@oracle.com designates 205.220.165.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=1741698457; 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=HmJ6cO/2/c1YbrXgcZqPFgA7JBDOzjAHJI7BmCpJOMA=; b=k7lMw6S3dRO3gYUdTsJpnv0Pw1lYn6ZFm6J3fFnJY06V250I5oYpnZLhR3bKb7VHWT4EWy elvhwx8A1EJVVskos2dl0+cUhh4N1SviGJSKxMEYs39L2M4/wZ7olCdHNABwkwUdg0FEHg wvq1+E0RsqADXeQTrG5dnd3qFZEsEmE= ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1741698457; a=rsa-sha256; cv=pass; b=wgPZOQbz+n8o/CGSNH14Z5cqGCh9SjqDhf3/CAxuePA05lsm7cWXnUaB6jOMgTekK0u2lO esN2EcLKDYSlQnBKtqqU7l53NMyo+2SJXbEx84zKiLtoEgP4pTMY/bxStsJuedjoHjT8AI baZ+U7gESWg2mdnZTFtpunbXBHOprOc= ARC-Authentication-Results: i=2; imf22.hostedemail.com; dkim=pass header.d=oracle.com header.s=corp-2023-11-20 header.b=Qo4NpkGR; dkim=pass header.d=oracle.onmicrosoft.com header.s=selector2-oracle-onmicrosoft-com header.b=LBw5bjQR; arc=pass ("microsoft.com:s=arcselector10001:i=1"); spf=pass (imf22.hostedemail.com: domain of lorenzo.stoakes@oracle.com designates 205.220.165.32 as permitted sender) smtp.mailfrom=lorenzo.stoakes@oracle.com; dmarc=pass (policy=reject) header.from=oracle.com Received: from pps.filterd (m0333521.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 52B1fukV015707; Tue, 11 Mar 2025 13:07:32 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=HmJ6cO/2/c1YbrXgcZ qPFgA7JBDOzjAHJI7BmCpJOMA=; b=Qo4NpkGREoJskDeSyxDxDgsnvuBSouXLww uJFU2GlB6D1o+wD1FDZ6aRw5lF0LQMwXinO8B3iQEm4pLbVQEFDdptRpI7lxLQPr TW1qbMRd3cuP4h0FjU9MCZiS6SRrrXJe81KMuu2O3IaogeZFfxc3X36tSiUJgz4o 187oklab7YWIZuVrt8I753GSA4mSUNzjGC6nkn5qyvZLPwfKQ9SsYoFn0aJffdf9 by1IdP4i4NrxtTJmZj4GcUY5qF9xz+R0VntdlRaGvxXpHeZFxH5ym+e6GN+Mey5U aYb6wimxvabmBCYPXoMBXFf8gPJjaSQF06Nz5g1r34ECW3WCUbDg== Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 458ctb4v6u-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 11 Mar 2025 13:07:31 +0000 (GMT) Received: from pps.filterd (iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (8.18.1.2/8.18.1.2) with ESMTP id 52BCh6BO014999; Tue, 11 Mar 2025 13:07:30 GMT Received: from nam11-bn8-obe.outbound.protection.outlook.com (mail-bn8nam11lp2174.outbound.protection.outlook.com [104.47.58.174]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 458cbf9ccy-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 11 Mar 2025 13:07:30 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Y/pYfe+h1XhFyxJgiV3AWwfh+i/Py7g0gYk/VvE/6cc258yctic2OKQr4Nhf7uEJbYw3yb3/oQfsXv/VA/6fiTFwvWr4vj1kiEvDvCZ/2pZ+NlDsqAOJsgKEgqWhpy8ZsFJMlyz4HTr2lDU7tVrxy9MUF0bGPQPtkwZWnEdR4HJSbrdHN1JDem16VzqzfWWQJtLwQqNiF8TfigouOl4UypuStALFiKzbIPiZZUamiWtFpPQZdhCcIDtlK5vROfTZt3mvAUAXX/p3B+wvDXWUMb220i1R8olAuGkS8JajmO+K2YMQXC2+u/EOj4TwqzTB3HF5PB3X3JP76IIaB65lnA== 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=HmJ6cO/2/c1YbrXgcZqPFgA7JBDOzjAHJI7BmCpJOMA=; b=BL7UEhH+p7oLbgCQxNgYC/e85T9YyCA+SyHGkwWE5oe8jdjBfUsaoSCsXd1CD1H1M0D+wayOVpTZbQZzTEeqUQ55oEKmAKedmBMrkDIYhLxWf4gi0WSpboI812J/H00tguZEUMa2iOzSDdij5i8ABwQWZXF5QZSKlOoj9d/4MAkLHDC8Y8npSPfEiySKXwV8yRRv4HaZ9F6aHXdDPPGDeRxuM8te8z2gBCqju65vxMwspjexz9w3DlxSvKCckET/5BiHW4vijiWpEsTUaBOuMzyeTyKAdMtDmCJT0FRe9Elohd08gjVEfoDqWav7x1TY2NPgdqtqwpgxx9iZtX3Q3A== 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=HmJ6cO/2/c1YbrXgcZqPFgA7JBDOzjAHJI7BmCpJOMA=; b=LBw5bjQRF1w/+iahMKQtPh6Cz8L9cvk1y2WLssYs1UZ84HcPos0kW+wtWGqcCvXO/AtWrDhRgJL+BilYexs+vadgVetKbV5r6oyecMmeETafVQJdptZrj9FfNGBTJwCP9z54+fCkMx5P/7ljxfOwAa7uYde4efYpw9na+EO37Ls= Received: from MN2PR10MB4112.namprd10.prod.outlook.com (2603:10b6:208:11e::33) by SA2PR10MB4635.namprd10.prod.outlook.com (2603:10b6:806:fb::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8511.18; Tue, 11 Mar 2025 13:07:27 +0000 Received: from MN2PR10MB4112.namprd10.prod.outlook.com ([fe80::3256:3c8c:73a9:5b9c]) by MN2PR10MB4112.namprd10.prod.outlook.com ([fe80::3256:3c8c:73a9:5b9c%7]) with mapi id 15.20.8489.025; Tue, 11 Mar 2025 13:07:27 +0000 Date: Tue, 11 Mar 2025 13:07:25 +0000 From: Lorenzo Stoakes To: SeongJae Park Cc: Andrew Morton , "Liam R. Howlett" , David Hildenbrand , Shakeel Butt , Vlastimil Babka , kernel-team@meta.com, linux-kernel@vger.kernel.org, linux-mm@kvack.org Subject: Re: [PATCH 7/9] mm/madvise: let madvise_{dontneed,free}_single_vma() caller batches tlb flushes Message-ID: References: <20250310172318.653630-1-sj@kernel.org> <20250310172318.653630-8-sj@kernel.org> Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20250310172318.653630-8-sj@kernel.org> X-ClientProxiedBy: LO4P265CA0232.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:315::14) To MN2PR10MB4112.namprd10.prod.outlook.com (2603:10b6:208:11e::33) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MN2PR10MB4112:EE_|SA2PR10MB4635:EE_ X-MS-Office365-Filtering-Correlation-Id: 5c77a863-a189-46e8-2a33-08dd609dac76 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014|7053199007; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?y0iWpfs8FPuZFX3lj2VNt/+v2tiMuRiys3CVVFDs1CqzW4m/K1iBvfLhIa2Z?= =?us-ascii?Q?PoKKlv95k1LvUyN1MSJttBqLfv1/Ah653Fia2d9HObigH+PGKmRv5aCmmlbY?= =?us-ascii?Q?15Gazk4TnciPnx+w6dvSFqdJBHDfb/YBb7AOORf9SWvmyEbiHgArvnku6Skc?= =?us-ascii?Q?Zl1/Ja6FlDX7/2NoWZgK4yYIkPXRxHs4+xlCm0o13KTZmzSd0EfRdqbpp4EN?= =?us-ascii?Q?sfTn9PL/CkOrgNbLzJXP4EfOmCnetXchLYubBAxb1Z69+r3kfTgsxwTQKZmO?= =?us-ascii?Q?2TYI1KeAdZRF52cKcqakXeSt4yIlcgzgxm/W/JmzaED2FDrIX4nMG3R8QPdx?= =?us-ascii?Q?wPxfyrxrG2ihRKF/DF5IogCygI8+VT4389rcWkgqNa04DumNd+M5zgptMO3s?= =?us-ascii?Q?k009nj+6y5oiZirW0fSAXPlKkCFiQp6I8PxMMkKCpu+270k38GT1c4bv/+Fd?= =?us-ascii?Q?yWRLUNt0i29v2pNYDZBNKJuKmm/GVXjhDuzhqMtZIQBXdM+SbuNbHiYhBL8G?= =?us-ascii?Q?B25NTljL/8KHqYnJr6p8Z20u05ZbiBvlXbcKzp3SCcB1nMe8txgg4br+yNLt?= =?us-ascii?Q?8qt9pANeveWwhsX66BlThwzaMf/OxtMLpbP1PbXQ/wEfo5wyyY1ryUKBSa3z?= =?us-ascii?Q?Gqw/c8vxIw/RSowkaqEke5ef9vlUessHrZ05uvSTvWG0sEYDEQJcI6er7opq?= =?us-ascii?Q?jO0FjWsLTC93VKOCvohb8EzgxojTuEFujqOUoODDg/7XBTwFj6pn/vmqC/Z9?= =?us-ascii?Q?A6Nzlrt5U4OEabOkjtKZsXRY6I+7SiHHZdbG0ML/FOsqwueJoC/H/FFOUHvQ?= =?us-ascii?Q?EtPuGE8Bh0gtp0ulpPXwK/QsBuZcZ2xnUhDPApNsRz4CY/Q8VsFdnPCbE7eE?= =?us-ascii?Q?frgsWE8UfqXHVien+DSZVV1CN49Ob5DbyQVHo1uMjxfFqqAfcG56Oa1oIb1e?= =?us-ascii?Q?J8nl6yXzwoeDgAHe/iZ+OoiUNrjeaszk6MZ5qnEWgfJJGUi65dcRjFl5643k?= =?us-ascii?Q?9ySl2gy7vsHpIJyM2ONeuGsiUqqExnQmdwK35g7UbGMNQOrN3xOAelG0o194?= =?us-ascii?Q?btO5i3ONpaPY+j5uT44x+RnF7KdQrIrIHZjWPRKOtQ+ElLU+VZ3CU3HlSOQA?= =?us-ascii?Q?Ue2tP4l2DRlZU9Nx7WUl+xB6ti+yO4mYZeLU9QH2MdNPe2jVXDJx6lCTkVLN?= =?us-ascii?Q?7rQfpekIgcsT+iQX2kzc1sg3zV0DxkRAcv1RZaEpruCxbG8eRdRgDpBUKKLW?= =?us-ascii?Q?xerc/mFO9DX4E6iWGRmy6KXrWZNa6QfD5NzJIFEcCFkd55ZpRDYdXrDHRhJ2?= =?us-ascii?Q?kJ2DQwIVPM8wjIollgp3BXVgy1QSm7yCPK8Uli3I9NzPRiw2t2A6ogJquMXY?= =?us-ascii?Q?AHchKYXIbJ3odfKKNAscmmORqlC2?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MN2PR10MB4112.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014)(7053199007);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?qlzBEmNuxNau8AjH3YPNQVaagtjpVNkJ3kLbgqB0hX6LdUkoLUmBtUU95zO/?= =?us-ascii?Q?IesuLcQ+fFqTcS/TCX8mEmaEkhDRmRSWKdEFxRhxQ7g1IEwNz7lCLrzEgJQf?= =?us-ascii?Q?AJ0h06lEeAQHBn25g3iHHVzYoFEa+y2Z+Rm6M4gQeygGQSer0zwtAoEgaklY?= =?us-ascii?Q?PjKzPwLdjEQXEhvoM8inhEB+FySFz0CIR3KgCUyB6cy/+O6bvjc3ITwQw0mk?= =?us-ascii?Q?PR9AOsgYQWnxd2TxpTYpbGi8FP6TqZu+sR+8OtAPzmEAoIX9ttQJ0Cs6Bpoh?= =?us-ascii?Q?FTkHvPBIjVFhmuFt9t+1VvfKw2Wc1N/v1PSw/Q1Ce6nipZDZ9096z6XXFpn7?= =?us-ascii?Q?X5izjpaBSDJCyyZ8YKfXbpWE14hGh7t8DWm5N4juzkiesWscGTjOiUHGq7yq?= =?us-ascii?Q?334qU6awpsgigPL9OZTZGxdVU/N84LNI4Le1gEvldAtqtICutDK//9Lm98x5?= =?us-ascii?Q?Xc982gPkPMpavpPL/PnJaY2sp+bAN8LG5fjy+kmwPyKtffRSW9LGHz/PPvTi?= =?us-ascii?Q?0ONt1IHB9BODzVSx9RkejbphVTcMOyux5zmcDdcEWfG+Gli3InrEoZpHDgam?= =?us-ascii?Q?cwNIIZEKh4GXGgkpHx2RwEqO5u0h++QSHUlQGWQHpWNduaglO8xUM6OQOLjC?= =?us-ascii?Q?JNqJrd8phsG3YcKktsM3R+Rdse54JpHgtquwSKcz49MoEbSwp2JQWGjNakdW?= =?us-ascii?Q?B9OL4BX3GWajBye265oaVo/D6qDmM5q0dZNFBFninE4hCggwse8OOFhbtgpr?= =?us-ascii?Q?FDCU7wmhj4Q2M4bAMJ7XXN81nrJPYRVDLh2vVQ07wWN58XkU6GMe84lYkXkC?= =?us-ascii?Q?jtfA++xJaejSZBbv5Ixm5bLtWMGV4zfT0M4a0KRGR70wFxCUt81ei4HyblKJ?= =?us-ascii?Q?OtaXtNGXMLQ6HXJrOC1Uyuxrqbv40cqWfY7BxZOPdc6CUHy8JXgYpB2b37Ca?= =?us-ascii?Q?uD2tCMEt4PdrpMllwehvovcCsEIXQUIaalwIC8LFWN+kzAJ4HB+ZqtL331qH?= =?us-ascii?Q?TBehYusVj5/0WVRgOxvMsDRPtB8e66aRzn6w6kPeTnRk6JmZxREJqW37/Wcf?= =?us-ascii?Q?7fXVsB8EmzbbTaSiJt797+hW67iQhIQDmExJeW9Qm1ZxtVXmO7CNNdbw0N3K?= =?us-ascii?Q?su9JAlfCIRjcDU2p2cjODQPakff8MUbivQpYJ63cUZQfmikl1On2k+yDtk6W?= =?us-ascii?Q?TR5ckTYBhF7BkmKF8v5F214u8E/qSfvEgTzlfkiOptUhyCHXPIfRkQBDLb5y?= =?us-ascii?Q?C/w3tThkgSQ3o199ZlFeg5O1La2cp/k+jDq64UoTtSj0gueyGhvCLFniBkXu?= =?us-ascii?Q?FCB+ncimG6wGMvgXzW/IJ27NR1PEnFJZSoKsCm6bfMGEWrMl1UJz+rIpUeRS?= =?us-ascii?Q?eOXpZ1e2mURybosTjFrMRxFDldXABpOIWy2WWCxjdPSv2IHzMd9DL5Fhydfy?= =?us-ascii?Q?RbNSYK3Ge+xPOS6WDSihSAO6omD0yviIpVXPPxrMbMmuyOdy2LQ/q+3C78Jm?= =?us-ascii?Q?ALtzSiZN8qeG2yeHsjRBj3Y+SF1YDnUdT9BLnV8c84rj1KlnuqAx3BhLIQUk?= =?us-ascii?Q?lVBMZwMGT8CiBXWloMKByHiymKKETNj6rD4KpRYd5gC3hZ2CNrbJeeHWwUJ7?= =?us-ascii?Q?mw=3D=3D?= X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: /hfpuMOwnEJDmlR/EjXzZGz8vRUni9g/06ckaLA7nQW4WnD4gxl/cj3n7u+0tMf7XS5fliw/7BiDnbgM6NeRvL3NpwAEB+i+eJ6/KDusv2QZqpytH4c7FAIWe5BadMgIblaH+9bLElQOd2DfCGmGDhHimkfqaU4UKoblMW4kttwIeXcCvKtErL+MKJbXOZVqztwrbm3SFg113Dd2KrnJR/scn87nmonJzho1LMFuLwD6KZCWlLQ8oKL8NhBhR/0irICEdO2GOVBIdYQ2c5aqKvwYPBO0zCQvqdRIsbZp4S3rWEmIyC5ZxkGztOszAfxx2jI4PUGz7hJYs3mExZqwIqVkKmp+iUVMWOZ5bdLxjSDWTI8wVmWxByUOdfB8QgLePLllCc9kM//ufkDrScfiKNbMdWO6uwk0QXXG43hE0nKXCJH65hr1sFh8Uhh02veeC0nJdbn4h9SUjqbd5IDBLQ+juFGEC+0Vj1ETRLQMt7eBFpo7r1hzbfA/gw5InZ8SRHz4iPuivBwl9iNyQHjF4uk/CDP7sMYoTVEtzfXvIpp8vmEOj5FqkM/KBakFWtDFUVJM2NUOPGH5N05zJ/Z8On3KkrEE8P9z4RX/7gCatlU= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5c77a863-a189-46e8-2a33-08dd609dac76 X-MS-Exchange-CrossTenant-AuthSource: MN2PR10MB4112.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Mar 2025 13:07:27.7640 (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: IVBV8u6Up6DHntJjdpYYotB2/0F6B6OzZlgPgDdrhFtK+YlkcJRePPmmZTdcmzforAjBjfEf1Gqh2nHKCYe6J6pkXEjE48PDUL0FdbYdH/s= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA2PR10MB4635 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1093,Hydra:6.0.680,FMLib:17.12.68.34 definitions=2025-03-11_02,2025-03-11_02,2024-11-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 adultscore=0 spamscore=0 mlxlogscore=999 malwarescore=0 suspectscore=0 mlxscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2502100000 definitions=main-2503110084 X-Proofpoint-GUID: MerAMc1qYBWT8kPzk1Co6BZHuFuTBKJw X-Proofpoint-ORIG-GUID: MerAMc1qYBWT8kPzk1Co6BZHuFuTBKJw X-Rspamd-Server: rspam12 X-Rspam-User: X-Rspamd-Queue-Id: BA1CCC0016 X-Stat-Signature: mmmpb61wbdqyoqywaxu3ou53mrifubja X-HE-Tag: 1741698456-533723 X-HE-Meta: U2FsdGVkX1+076fNUVQe7RAxTwtohtplYQ+fxy0ReMsPHhWBhhRWP0xBemWUxyh0rM580+AVKroqzNbkdJfbbGp17Df9N73dElBkdFIx442HrhAA9XXXgKoMDCyAh/WT+QkkouoxEh7vUC9cUCNKRuTh+DfByG4kH1dTWhN0eijeNKMSb7AUylJtgQQC2bzMdiOz187ucz8liDbthmSE9Us5dDBcB5QL75FWvhtp+lMs5fcdk6YvQFQ5d6bVfmlaUc4DI5fijJ/FciULIX0wZhoIY4TgWfba7ZB0k8ePtZMiT2EYp+xly8aa6LR2zp3Afnex+SCxKr/QdqSszjMi42az8Ls72cWMYstFhirmgb/vIY7DjMcEbmYvK4L9txtneZ9KPwPBEdZkitWEn7Wlll7IJ5BKf+l3mRNjQ2oBBrumk3fqkfXemvv8HqzoaIcxmK0s4ni6WfOXwRiHrJFgNTucQe+13wEJDIiasAvugsGldJwPFw1TscBJZLRehL38wcnAwacSLAaOhrjZnGnlRSCxGxsNYXl0GAl7/jtORG7/g7v73qUK7rMOTcB2fXKO5QhW+dYxybdCX0WqZfMR4l7B+T+UkoZYqZ/kAQgKY7Vq0sxV3nnEk6fjE58DdB4Ul5OZuX3+lU7GC6IycqYLW3XNlN3F5s3JkEXHTzQ3f+4NW5U07sRrViE8eKnhhAa68IsEdMtdAnjqABzXJ/WfvJaMg1N6CgxgTJ8m5CxJXSL1XSRzwmHC7UBMZPt0Pnn1TD84NKAF8d03cN6WgJXAuNVmXrMMer87ck2Tn9hDWx1l8C9Eo9p340ZfBu/dOTrMx1ScV28TH/MeZzRdyUsMEBj8yy/MdUFffy/dWVnPflqxQEi1w9gbw28Pl/sS9h1jL/n3gGmwX5dpiPVwep1ZN85Y95JWbT3YRs2JPNMz1L6QAfFdzalOK2K6+GfEKFspojGhuSUHAGF9+Oq41zS VxouGq8R 7QZZz4rOfYa7X9VGjnVz8aKVppl0r07B0+PzPAp10WC9EymEotRqc0GXSIJhHQ3MwD/s2Qg8ZVlyUfTHfiEooTALGFG5n2peFrpx/7G28zrVtt4jqZOBFIPKv8SRU9fOoH8LfwgYSl3VvC0oYzHCeK8e2pXwT75zmzwm/vZzBE5Lb691kDc1x+/oxiHU4yqm8JX1mf1yXE2wf3gIexUnFEx6stETCG5ZKKEVQzQFGrS4uxW/Kn3yZ+2/2+K6FmTxvQ2s9NukUGXdyFTNS4QHeVr93GkVvzhuCp8WKHpnoYPpVksIEiZ/CYEmT3fg0XIgqDiRjVU9z4Jl/cSl5salZkuia3yG8w7kzNwMp2jr3XI/CFABdYIymAzRWs2eCYAh3KRtSV8Mtk0xaFgGP9yCFenhLNL53dDJQX6NZo0gtayuuQ8bv7RTU00yM2LTUSlzykQa3tI7xPg16pg9/5HoFzZuHlSDczPy/IUOqHacF/p7+Mj8RPgzS4pIUbys3B4Z2iqq33jwcV1x9yRxbGUx/bRxJ6ql/OtX9NFZPdFSyc0r0QmFY4kOrV94lsk7AZ5++mJEzSQnJNOnyxzPjUpJUT8gnVbBKC4sbXLTSla/7U/4Euy8r/DP/nGXrpJWjny6C6Y58wSIfEwRJsjQ+Q7VOXlopa92fzywg7ZhE 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: Super super UBER nitty but... pretty sure the subject here should be <= 75 chars right? :P On Mon, Mar 10, 2025 at 10:23:16AM -0700, SeongJae Park wrote: > Update madvise_dontneed_single_vma() and madvise_free_single_vma() > functions so that the caller can pass an mmu_gather object that should > be initialized and will be finished outside, for batched tlb flushes. > Also modify their internal code to support such usage by skipping the > initialization and finishing of self-allocated mmu_gather object if it > received a valid mmu_gather object. > > Signed-off-by: SeongJae Park > --- > mm/internal.h | 3 +++ > mm/madvise.c | 37 +++++++++++++++++++++++++------------ > mm/memory.c | 16 +++++++++++++--- > 3 files changed, 41 insertions(+), 15 deletions(-) > > diff --git a/mm/internal.h b/mm/internal.h > index 0caa64dc2cb7..ce7fb2383f65 100644 > --- a/mm/internal.h > +++ b/mm/internal.h > @@ -438,6 +438,9 @@ void unmap_page_range(struct mmu_gather *tlb, > struct vm_area_struct *vma, > unsigned long addr, unsigned long end, > struct zap_details *details); > +void unmap_vma_single(struct mmu_gather *tlb, struct vm_area_struct *vma, > + unsigned long addr, unsigned long size, > + struct zap_details *details); > int folio_unmap_invalidate(struct address_space *mapping, struct folio *folio, > gfp_t gfp); > > diff --git a/mm/madvise.c b/mm/madvise.c > index ba2a78795207..d7ea71c6422c 100644 > --- a/mm/madvise.c > +++ b/mm/madvise.c > @@ -794,12 +794,19 @@ static const struct mm_walk_ops madvise_free_walk_ops = { > .walk_lock = PGWALK_RDLOCK, > }; > > -static int madvise_free_single_vma(struct vm_area_struct *vma, > - unsigned long start_addr, unsigned long end_addr) > +static int madvise_free_single_vma( > + struct mmu_gather *caller_tlb, struct vm_area_struct *vma, I find this interface horrible, and super confusing. It's not clear at all what's going on here. Why not use your new helper struct to add a field you can thread through here? > + unsigned long start_addr, unsigned long end_addr) > { > struct mm_struct *mm = vma->vm_mm; > struct mmu_notifier_range range; > - struct mmu_gather tlb; > + struct mmu_gather self_tlb; > + struct mmu_gather *tlb; > + > + if (caller_tlb) > + tlb = caller_tlb; > + else > + tlb = &self_tlb; > > /* MADV_FREE works for only anon vma at the moment */ > if (!vma_is_anonymous(vma)) > @@ -815,16 +822,18 @@ static int madvise_free_single_vma(struct vm_area_struct *vma, > range.start, range.end); > > lru_add_drain(); > - tlb_gather_mmu(&tlb, mm); > + if (!caller_tlb) > + tlb_gather_mmu(tlb, mm); Yeah really don't like this. Ideally we'd abstract the mmu_gather struct to the helper struct (which I see you do in a subsequent patch anyway) would be ideal if you could find a way to make that work. But if not, then: if (behavior->batched_tlb) tlb_gather_mmu(&tlb, mm); etc. etc. Would work better. > update_hiwater_rss(mm); > > mmu_notifier_invalidate_range_start(&range); > - tlb_start_vma(&tlb, vma); > + tlb_start_vma(tlb, vma); Also not a fan of making tlb refer to a pointer now when before it didn't... I mean that's more of a nit and maybe unavoidable, but still! I mean yeah ok this is probably unavoidable, ignore. > walk_page_range(vma->vm_mm, range.start, range.end, > - &madvise_free_walk_ops, &tlb); > - tlb_end_vma(&tlb, vma); > + &madvise_free_walk_ops, tlb); > + tlb_end_vma(tlb, vma); > mmu_notifier_invalidate_range_end(&range); > - tlb_finish_mmu(&tlb); > + if (!caller_tlb) > + tlb_finish_mmu(tlb); > > return 0; > } > @@ -848,7 +857,8 @@ static int madvise_free_single_vma(struct vm_area_struct *vma, > * An interface that causes the system to free clean pages and flush > * dirty pages is already available as msync(MS_INVALIDATE). > */ > -static long madvise_dontneed_single_vma(struct vm_area_struct *vma, > +static long madvise_dontneed_single_vma(struct mmu_gather *tlb, > + struct vm_area_struct *vma, > unsigned long start, unsigned long end) > { > struct zap_details details = { > @@ -856,7 +866,10 @@ static long madvise_dontneed_single_vma(struct vm_area_struct *vma, > .even_cows = true, > }; > > - zap_page_range_single(vma, start, end - start, &details); > + if (!tlb) > + zap_page_range_single(vma, start, end - start, &details); Please don't put the negation case first, it's confusing. Swap them! > + else > + unmap_vma_single(tlb, vma, start, end - start, &details); > return 0; > } > > @@ -951,9 +964,9 @@ static long madvise_dontneed_free(struct vm_area_struct *vma, > } > > if (behavior == MADV_DONTNEED || behavior == MADV_DONTNEED_LOCKED) > - return madvise_dontneed_single_vma(vma, start, end); > + return madvise_dontneed_single_vma(NULL, vma, start, end); > else if (behavior == MADV_FREE) > - return madvise_free_single_vma(vma, start, end); > + return madvise_free_single_vma(NULL, vma, start, end); Not to labour the point, but this is also horrid, passing a mystery NULL parameter first... > else > return -EINVAL; > } > diff --git a/mm/memory.c b/mm/memory.c > index 88c478e2ed1a..3256b9713cbd 100644 > --- a/mm/memory.c > +++ b/mm/memory.c > @@ -1995,9 +1995,19 @@ void unmap_vmas(struct mmu_gather *tlb, struct ma_state *mas, > mmu_notifier_invalidate_range_end(&range); > } > > -static void unmap_vma_single(struct mmu_gather *tlb, > - struct vm_area_struct *vma, unsigned long address, > - unsigned long size, struct zap_details *details) > +/** > + * unmap_vma_single - remove user pages in a given range > + * @tlb: pointer to the caller's struct mmu_gather > + * @vma: vm_area_struct holding the applicable pages > + * @address: starting address of the pages > + * @size: number of bytes to remove > + * @details: details of shared cache invalidation > + * > + * @tlb shouldn't be NULL. The range must fit into one VMA. Can we add some VM_WARN_ON[_ONCE]()'s for these conditions please? Thanks for documenting! > + */ > +void unmap_vma_single(struct mmu_gather *tlb, struct vm_area_struct *vma, > + unsigned long address, unsigned long size, > + struct zap_details *details) > { > const unsigned long end = address + size; > struct mmu_notifier_range range; > -- > 2.39.5