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 55223C71148 for ; Fri, 13 Jun 2025 16:10:05 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E36496B0092; Fri, 13 Jun 2025 12:10:04 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id E0DD56B0093; Fri, 13 Jun 2025 12:10:04 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id CFC5B6B0098; Fri, 13 Jun 2025 12:10:04 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id AF12D6B0092 for ; Fri, 13 Jun 2025 12:10:04 -0400 (EDT) Received: from smtpin23.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 791A7BDBFA for ; Fri, 13 Jun 2025 16:10:04 +0000 (UTC) X-FDA: 83550863928.23.506DB7D Received: from NAM12-BN8-obe.outbound.protection.outlook.com (mail-bn8nam12on2089.outbound.protection.outlook.com [40.107.237.89]) by imf30.hostedemail.com (Postfix) with ESMTP id AFD4D80005 for ; Fri, 13 Jun 2025 16:10:01 +0000 (UTC) Authentication-Results: imf30.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b=AMidsXQE; arc=pass ("microsoft.com:s=arcselector10001:i=1"); spf=pass (imf30.hostedemail.com: domain of jgg@nvidia.com designates 40.107.237.89 as permitted sender) smtp.mailfrom=jgg@nvidia.com; dmarc=pass (policy=reject) header.from=nvidia.com ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1749831001; 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=7Me1OK0T7Wi6m3dgbrr+54UjwR+LC0P0OZFxJ4jIYu8=; b=f+v6FkPanULW2cOyt2xc+dRgtqe16FQuliWY2JwYql2HU5iI8A6Wyw3zZwLTJCZO8VkRh4 3cAjKxYH8Q3fj8ukZ3PRjRfqTHOBzZNpYQ6GPW2sYOe6pmPP+tvbHszdZPdAzbcK+1QLoa lrYW7Cpu3QkeLqe98eo4HwS+NjUH/oM= ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1749831001; a=rsa-sha256; cv=pass; b=XQwm0TgqhzXufNACp8oN49UaSyfU7Ir4NFmFwCiY0e+0eLU34bfRhkbXl+IN0zsbi5uRPh qSy3pGD13XqMDMVuocgzceHQfTD7W/25W/pJsYXnVJpkTJww+4iWDDE2Y4Gz9QUhpqUZaW cvRWLhzWN8OruvOJP+PvpVI+gxdq6Ww= ARC-Authentication-Results: i=2; imf30.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b=AMidsXQE; arc=pass ("microsoft.com:s=arcselector10001:i=1"); spf=pass (imf30.hostedemail.com: domain of jgg@nvidia.com designates 40.107.237.89 as permitted sender) smtp.mailfrom=jgg@nvidia.com; dmarc=pass (policy=reject) header.from=nvidia.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=xJsHgPsgwLm9FIeCRS4klBIFUjkURvU5josQ5t0rQZGUA5L/qaxUzO4f+8+gNezFW2CbqinzNvlHBANSQIAIUURx9Qy6d0jX1aMXx9Hd+KZd0OHuUuZ5PpBET2lejXoDQXgEfeIjrfmEWxn96yPkAUaN7w/SXILowoxmlHlSORtsHlLenQunjbcT3uImXxmIx/SYlE6Mii0KCJ31o3RytemEMbwC/aOm7eSsXs8X0mcWJlJ7P0GNXhaQNBCDgl2y0TJTerQwZJ3V60NpREGgfSjCV9JsOEAGyLUMTFLGIPq6zIUoApEQ9qwx33EtZbLSpyGvXWR8VwItXktRxTE7AQ== 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=7Me1OK0T7Wi6m3dgbrr+54UjwR+LC0P0OZFxJ4jIYu8=; b=myx52dP4ZETBs+AZNL4ZmZpSNo1kzmV7zg6DiSYbDK2ZCi9HnOjQfFc1bVR9oilTUpH1TuUQDA7kdpnEn1KCtSgPxZ0HciR6eyUQTiAUEZHrlQH40aGwnEN2G3QTpC2ys0kmTnoS5YMoTAnUMxpJsD+6L+pz6NFIywnfvWYe2eqWVvyF9/4KIJV0ZpPklZC92LGhauwvVRpmMHm1XjDjs1dPhIlOc7lsXrnuJRqwd/eo/H/CxGQF4d6U67NhfotW5251Pz6TBAurXEfo1pJzqHzWfhV8WD4W+zBqIk1oXkQTWskLppzSOGQCp5gJ/MF+rrtY0PmvG0rBOGKxb3hdWA== 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=7Me1OK0T7Wi6m3dgbrr+54UjwR+LC0P0OZFxJ4jIYu8=; b=AMidsXQE+PtbF7fakUfXZK11zSc5ISEIrFD8R5PaH8gPz7dncqTupXHJr387vBzu0HyGpYyfIdh4KETZ+FfFlW+ieVYNhidG1IkYsgCrTMsq2kNz0II7RE/QwE5kM2He3IldtBMGbAtKyrUYeqkI4MXwtNp5RJkP8rjVSnLb8IJfPfvL2Xp+TTDQWcYFYcU1rovRtXGZijjdKvYx/W9oQJ5Zs9IUsFvjiIyBDdu5+FVGrRKBiJgSKVnQuZzxvdoiyyjzqx8tnAMtXFDoKxzYcXGKqR0ULGUH8KiaLFGWO+buRZQnGGI+/rKAoDiHol4sFO/Eujc4NV99sl2XpWv09A== Received: from CH3PR12MB8659.namprd12.prod.outlook.com (2603:10b6:610:17c::13) by SA1PR12MB9545.namprd12.prod.outlook.com (2603:10b6:806:45b::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8835.23; Fri, 13 Jun 2025 16:09:58 +0000 Received: from CH3PR12MB8659.namprd12.prod.outlook.com ([fe80::6eb6:7d37:7b4b:1732]) by CH3PR12MB8659.namprd12.prod.outlook.com ([fe80::6eb6:7d37:7b4b:1732%7]) with mapi id 15.20.8835.023; Fri, 13 Jun 2025 16:09:58 +0000 Date: Fri, 13 Jun 2025 13:09:56 -0300 From: Jason Gunthorpe To: Peter Xu Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org, kvm@vger.kernel.org, Andrew Morton , Alex Williamson , Zi Yan , Alex Mastro , David Hildenbrand , Nico Pache Subject: Re: [PATCH 5/5] vfio-pci: Best-effort huge pfnmaps with !MAP_FIXED mappings Message-ID: <20250613160956.GN1174925@nvidia.com> References: <20250613134111.469884-1-peterx@redhat.com> <20250613134111.469884-6-peterx@redhat.com> <20250613142903.GL1174925@nvidia.com> Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-ClientProxiedBy: YT1PR01CA0046.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:2e::15) To CH3PR12MB8659.namprd12.prod.outlook.com (2603:10b6:610:17c::13) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH3PR12MB8659:EE_|SA1PR12MB9545:EE_ X-MS-Office365-Filtering-Correlation-Id: 0ef3a2f5-9208-4626-e607-08ddaa94be62 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?+wUjEt9aykkGDcvS7gCVHrqQdq77+XYOOlGpvvPaH2Mp5623avr73PbIgrpt?= =?us-ascii?Q?E3b4QrqHPAlOOhUln6SGaXyKj8UcKMtuMZ7URe9RErvrMCZslwfUtPGVp/FX?= =?us-ascii?Q?V5LofEWbznVdwmlh34m456HCDbEl8QDfBRzphCeiUwEy3VjM9jLpwwTXWjoC?= =?us-ascii?Q?j+RAaZVmUBFu0DFn6b10fP2yY2Pq3mIEt6O8Vw+PPRW1RrUZDczQ2rS/DCbE?= =?us-ascii?Q?swOW/tLGaxMm+5d269/XQOpBqHAbW5SW7bWjzT/kG0m80fDgDnqJA+UxACQn?= =?us-ascii?Q?CpYgXXNThTZKMUzVuIPJSZNhULYLVhevOM0ssH+VhqCaLv+Mziy3l+kbb8zD?= =?us-ascii?Q?sb0FydIi7vnN10pzwqQpAxjzWlCIMZxtF+bdHNvVFpk0IzvrJIYYbbHjom9b?= =?us-ascii?Q?TfY/jJKsusL/eU2CJJDR43jOibh7UjSa/vhvpTowaAGkuBZYer/w+Ry2iZnV?= =?us-ascii?Q?qoV2B3xSiQqD9KeJYPFUkVTk2nfut8/u37LfH2yXMoiuGMB5pGrcgbwYHsZL?= =?us-ascii?Q?q8UZGQUfN+rf9w0mQAhh+GtCd7ht/1c9sx+lVQfdIz2OOPpoR5x0seOl8qo8?= =?us-ascii?Q?qf/atvWIniY+tdS+NSpKUSxtp7Vvzf5ot7ZywgFw1uZJ5aHCwaMcErO2k1Ty?= =?us-ascii?Q?Jo36m/AzUQMa5HFF+3bOw3GU44ri5a0v6aDw8wuRLM4SzKdsvauRAlpPNUxN?= =?us-ascii?Q?H2ab9KC4Z3dEWt7pyRjNbNjAHreghLw5NA6rWR2h32AZWvsjEwagcwV+Tqzf?= =?us-ascii?Q?XWAdwCnoBevj7mWYh29QFbjybXniPyYVnC2H2sogEiYtOessw2E5EfXQRyoJ?= =?us-ascii?Q?irzEGda6COcPVDBLIU8OUK0aFEriET8YcvvL+qysZ+4MzU1Mcv/vp2yReHB0?= =?us-ascii?Q?uwqMA/JJUZsdVCFrQntHAzoHQ3gmi22Mybs1/CwPCyDdtuqR3OBfOe3jmQiq?= =?us-ascii?Q?YI/Cr6mBgw6YdeO0v+ZO8M/OlekVfXHhy2k4gu/eeUPqMRQO6yHMD1DElY91?= =?us-ascii?Q?4hcIC/DtWTkgM9lT7t6h8OWcb6JKYpt0gFhsIiYvu3e2Y/sPDWNcNItz3f1z?= =?us-ascii?Q?qvEYZkfx8VSVxWyybIGuL2f+Gef4XhZ5ifyENFA19N+gX2yGhN9NcR6z8S3p?= =?us-ascii?Q?4ZikYQrBOdy1AQdYoTxtZjBWPSFinYv0wn96VyhfOjIJx4vYjv9xKC6Z69rg?= =?us-ascii?Q?wX5zFDTHDuVq8bMi6LgacSipFIkEhxw0VjZ8UPpMUUUfpIilVTMtps/l0KoQ?= =?us-ascii?Q?lljD9RfJkwvfTXVqlTDz5YZ8pzNh0eZF2mwzVwO8o5Ovd3JU5APHnVGeDIIj?= =?us-ascii?Q?2UZDuAvOygafMGtcfa7zlUAY5uG8P94BAHG39alFUnKatdEe/fdX0QMgEj9y?= =?us-ascii?Q?rYC3uoqGx/qmBb9ybT1CSsDV4njUx6QtGPKHxMwErviM0HyLGGGC4/xtJ1Cg?= =?us-ascii?Q?UUzdXm6UIic=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH3PR12MB8659.namprd12.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?S3nye/4lx1UiXEBdo9Nw9MAdbI9o4KawR//6hzHg5kSLSoySStJtabUb9uvT?= =?us-ascii?Q?ADrJ52ehjfUnrwX/PydfPk8tik9Nm3TnmzH1miC1J2KwJ6a94QTJ9dT72f8g?= =?us-ascii?Q?BJWz3O1bdueW1PMpVizfCzGt5AMDFiWh3+CCHybCihuNFcTIkEa9tlQhhtRo?= =?us-ascii?Q?2fqhMTnqu5mfTTKoWh1QjTYpT/hZhZrMdWiUueyB83u9ShGErt5vfeaJVXR/?= =?us-ascii?Q?Kf5iuQ7i/cYXuZJq/kID0TJEc59q0pm86+EYnVCwpQrTu+LZuSqLdMkkMi9x?= =?us-ascii?Q?6xHRq3Mjj6uNMIwF4icQB+qTrWLJ4UA5+amIsbVAroXqQ9nk3dXV6bH1YtEP?= =?us-ascii?Q?gWhp2iXmMfKhyWBCJZzwQJlZNr49Eq+iQhviEn4+6dtGbFVwCxdUfwDtIZ5m?= =?us-ascii?Q?ihDA780falGgrqsGQns508rzkmaxLr6BBQDK7JHKKjlAm6dq60UpSRzYtHv2?= =?us-ascii?Q?DcAR3QK/+2hJ3OsOSreiHiH9bzdsN6pkSHaDnX0ZzArx67erVKHP7mpCk/Kg?= =?us-ascii?Q?U6WUuqeeUfKHHNjMMFnGx543kUkSMaEiB4eVAfeInzDQIqP3Ov7XF4z5G64q?= =?us-ascii?Q?kK5u656oVWByvpw/wq7pbJP1K8kTykAPkxzc0ffQT+JbNRQUpS65TkqzMmT4?= =?us-ascii?Q?C/vTp9FqEMhB+4Xfc8ReLjfMJ0CgQpvDUCbDHs+c+g1Ntq8tYSFoM0Pz6zxS?= =?us-ascii?Q?mIFXOn4WJKzkKukXlHcWP9JYsRN62XoGmA6t5Y2Fjnwa6gI7WDdNjGkYm2DA?= =?us-ascii?Q?E0AluD7murfvzswDamvC8JUH2Rh3gRDfj1B2tNPfzhbEj+uvVl4UPiSQmvNK?= =?us-ascii?Q?5mb49CG4J5XEEY1AP8obB1+nD5aMzDgssRtIs1M8reVsYgWUQjw942t0PzX4?= =?us-ascii?Q?hYAFdPHpTQydwXDfkRLDAeOlu/qW0/n8iWA4LZpPvIonxyYx1JGiMHkK/AsA?= =?us-ascii?Q?SWFqcy4807g5FQi1frQD14vf1zVxxQOgv27eDNggz24A70ySEfBFPynquX9k?= =?us-ascii?Q?m6kncQYhySOBna4FDPOxFOXkkV8zH5oYfibrk6L6k7igjrVrQKA0m5SncYod?= =?us-ascii?Q?oeOvgx2b6z3v5/hlc234qB9OiST9JnAvFlCKLHPEpgkgqEQhiJPrGfA42azQ?= =?us-ascii?Q?EdnazecRs4+JZ6FzLt95Z9kRGaicJTaD/6q9dsCvWPUBhTdWm27Dxn/qSxlI?= =?us-ascii?Q?XF20/wK5JLpsILfNgYvn7SfZpx9kEqeX/mAfp2Q6T0+YSeumPTv3lwAEe1H8?= =?us-ascii?Q?Vo6xGYvflI7zD0z+fEO6auIbZsYm9bmYmgT7zJVnC88mS0NIkEQ8/P3lxOD0?= =?us-ascii?Q?YkhgM5oSKrWOYmnYqi3ETNWgUbPW77w8EWZFhHOhbXG+xTyoKKIOSc5IdnV2?= =?us-ascii?Q?gPiSuFMS/p+vWhQNh8xQtoNl7cwtBMezd/8BRDj0NjJtQYnZJD2hbGy5mXhq?= =?us-ascii?Q?y/NGJxzDi38PH/8/vikzbLbxZmaX4tsHDYl00Ebmrpy8fO8JQP3s6disohIV?= =?us-ascii?Q?k4wQh/9BwYABlsNxzg+3UY5fmVshOVXvzYlTIryfsmmU0cQeD0Eu6hfZBeXI?= =?us-ascii?Q?2/NQ9J3qrjfPQ3PiI3oYwv1+DRYKuM7TKsndBvAv?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0ef3a2f5-9208-4626-e607-08ddaa94be62 X-MS-Exchange-CrossTenant-AuthSource: CH3PR12MB8659.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Jun 2025 16:09:58.6106 (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: BYxuf79BUkpewVrO7kpT2JZwScRBhNqBjIFeTh8E3jJXcKke99+Fm8LioNduHDqx X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB9545 X-Rspam-User: X-Rspamd-Server: rspam11 X-Rspamd-Queue-Id: AFD4D80005 X-Stat-Signature: q33exanyb651135mgazubg69s6ycu5ga X-HE-Tag: 1749831001-414231 X-HE-Meta: U2FsdGVkX18qxJzVNQeXFBFYar12JCxvnRG1bDfMLqRaRBQw5HnnxtHSylIBu5qO5jxuZ2+MjjUOWj334fjQPX5kWV+Uact8jW8H2k9X0icrgs4MnRHFCGPVT3v0bJ5lIUpLpfIe27dvGy/ELPy/Oojc44J+mRBPk50RzHBDiMfiSN7mRijX+ZLf2bEUKGh/RxYW2rOPAjsVOazxetv8ktYgdUFHqoxdEOR/YvdkLtdJ0phu76hb5AmImR0YnyuNZSP7P28SzOUfDIaIBzQrvziNOZI/e93KJvwBQDSES99UXr9JvEIW3x5+gpdcpa0xdJYKlaj3FWJ3pgkA3wuC04o2lmXvZJkWTkiTGn1jHMmq67lPhs9mG28hLjSCQG38uat6CJvHcD1h6yjYBBVnt9Iel2bkkb6VbQSdZeGZNFXue0OT5DlLJKtyDTCSEpg16WEsL/xb7C4wVXAnjIVh0nQ03/gftwd3FHJ2gTqmf2aPuqR3695RGtYXw/rOfNSfc7lmZyoUSR06igdTOMS+sUGdpIJ91jh+nhvQP1SUPW2VpI/VDvIVB5mgQbNuwyibM4+I0rnTLi8DjZeEj+QbqkDVfIUH9OqHspRgfXNuDED0exX7Yl5sq2S3N5iw2mhSvilJFFnbDmDWbngFuzSbeVMIjRq6wewQRF6QvUMJfp4dFtLlvocRsoazl4YV65sXlseQsUMyKDZI+Jj/iLvsuMmLKI333B+3a7T9xhGQD1MVKBzTQtpdpkck0z9r+AiqQBphVL6b/VkKKjVlX2vd/ASOrivNZEk82GJH6WBZgtuIkA2p8/jX7mj5J8yVsuAfa1cdMqviWAt/ND/JHzEf7R0WdrCN+stsqnua1AX2sLAxo3xFkJHc1m18U4ao4ofv2GaHnGWnxq8ZtSaLZyH4rKKKIfpTOoI2sya9HcFsh98kT/+lRnt4D5G7IZfkUkurIqPYyoNwv3SPzXf7CYg NeiY/KlX NUKOiMpGuITrMZQIw8RHXPfYM5i98G09S5w28cE7IExbcLN2a2d70kkae8xaBTeo5MbtF+kS6fI3X2zFGQtrjcEkqvUfpCzknempk7pmoIq6YxrIStCCs0uibtEP6sLukwpXev10lPMAg7kxYQ5rNRh+SCHEt5rYIEg/bVYOZGcBAY2IKXdStApcbFjYofVYPJsmh8kdNwJC5RNkoyPz7flqVBKIfSusRtO0ZHbHgSOZXnJwns2tQV7A406ezfCzM6lLNOeQuQxwABPhN/upzsuW5NRnx+z3V83C57DiEKcurAOPFlUVvrlM9dZrSbkRgASq0sB/dlGB78gaXeOZ75tqjjCBDDnzugIgS2L6UPD6/gFq4g0sJ66iU1M+vcOL7+dIcqYYK3UGjLJv1pfMW3xBIBWnCgA7InwVRH8aabTVbU+kahInYNzN95koN2xOzO4Y81Hf38vv70NzEXBCaeDGeB17dS6ADRApMbm9RgHaJ43FRH3KRfuBzAT2xnwQcRO5nLt11P/8cuUG7qPMqNT17ofhY4HLe3KQZ 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 Fri, Jun 13, 2025 at 11:26:40AM -0400, Peter Xu wrote: > On Fri, Jun 13, 2025 at 11:29:03AM -0300, Jason Gunthorpe wrote: > > On Fri, Jun 13, 2025 at 09:41:11AM -0400, Peter Xu wrote: > > > > > + /* Choose the alignment */ > > > + if (IS_ENABLED(CONFIG_ARCH_SUPPORTS_PUD_PFNMAP) && phys_len >= PUD_SIZE) { > > > + ret = mm_get_unmapped_area_aligned(file, addr, len, phys_addr, > > > + flags, PUD_SIZE, 0); > > > + if (ret) > > > + return ret; > > > + } > > > + > > > + if (phys_len >= PMD_SIZE) { > > > + ret = mm_get_unmapped_area_aligned(file, addr, len, phys_addr, > > > + flags, PMD_SIZE, 0); > > > + if (ret) > > > + return ret; > > > + } > > > > Hurm, we have contiguous pages now, so PMD_SIZE is not so great, eg on > > 4k ARM with we can have a 16*2M=32MB contiguity, and 16k ARM uses > > contiguity to get a 32*16k=1GB option. > > > > Forcing to only align to the PMD or PUD seems suboptimal.. > > Right, however the cont-pte / cont-pmd are still not supported in huge > pfnmaps in general? It'll definitely be nice if someone could look at that > from ARM perspective, then provide support of both in one shot. Maybe leave behind a comment about this. I've been poking around if somone would do the ARM PFNMAP support but can't report any commitment. > > > +fallback: > > > + return mm_get_unmapped_area(current->mm, file, addr, len, pgoff, flags); > > > > Why not put this into mm_get_unmapped_area_vmflags() and get rid of > > thp_get_unmapped_area_vmflags() too? > > > > Is there any reason the caller should have to do a retry? > > We would still need thp_get_unmapped_area_vmflags() because that encodes > PMD_SIZE for THPs; we need the flexibility of providing any size alignment > as a generic helper. There is only one caller for thp_get_unmapped_area_vmflags(), just open code PMD_SIZE there and thin this whole thing out. It reads better like that anyhow: } else if (IS_ENABLED(CONFIG_TRANSPARENT_HUGEPAGE) && !file && !addr /* no hint */ && IS_ALIGNED(len, PMD_SIZE)) { /* Ensures that larger anonymous mappings are THP aligned. */ addr = mm_get_unmapped_area_aligned(file, 0, len, pgoff, flags, vm_flags, PMD_SIZE); > That was ok, however that loses some flexibility when the caller wants to > try with different alignments, exactly like above: currently, it was trying > to do a first attempt of PUD mapping then fallback to PMD if that fails. Oh, that's a good point, I didn't notice that subtle bit. But then maybe that is showing the API is just wrong and the core code should be trying to find the best alignment not the caller. Like we can have those PUD/PMD size ifdefs inside the mm instead of in VFIO? VFIO would just pass the BAR size, implying the best alignment, and the core implementation will try to get the largest VMA alignment that snaps to an arch supported page contiguity, testing each of the arches page size possibilities in turn. That sounds like a much better API than pushing this into drivers?? Jason