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 E932EC52D7B for ; Wed, 14 Aug 2024 12:37:28 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 832696B0085; Wed, 14 Aug 2024 08:37:28 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 808ED6B0088; Wed, 14 Aug 2024 08:37:28 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 683166B0089; Wed, 14 Aug 2024 08:37:28 -0400 (EDT) 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 4BFF26B0085 for ; Wed, 14 Aug 2024 08:37:28 -0400 (EDT) Received: from smtpin01.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id D72C8A80CA for ; Wed, 14 Aug 2024 12:37:27 +0000 (UTC) X-FDA: 82450801734.01.6C53C58 Received: from NAM12-DM6-obe.outbound.protection.outlook.com (mail-dm6nam12on2068.outbound.protection.outlook.com [40.107.243.68]) by imf21.hostedemail.com (Postfix) with ESMTP id E5CA91C0005 for ; Wed, 14 Aug 2024 12:37:24 +0000 (UTC) Authentication-Results: imf21.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b=W+Uwk3UQ; spf=pass (imf21.hostedemail.com: domain of jgg@nvidia.com designates 40.107.243.68 as permitted sender) smtp.mailfrom=jgg@nvidia.com; dmarc=pass (policy=reject) header.from=nvidia.com; arc=pass ("microsoft.com:s=arcselector10001:i=1") ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1723639008; a=rsa-sha256; cv=pass; b=siiuddi/kLDQ1FsC+OuN4C69kYFpQ60RHjjZCiVKkEkoNedSy2kJTngAqc+WO7teJa8Tbw +C2nH0lXLSGmdshNJCwu4FaJppNu/yuKeOhXt3t8y0rN7on3QyZOpLVjRwJDtWcQc6Q8Z0 M6S7irizfIJgpUKmgdeadEJfUk3Lu3c= ARC-Authentication-Results: i=2; imf21.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b=W+Uwk3UQ; spf=pass (imf21.hostedemail.com: domain of jgg@nvidia.com designates 40.107.243.68 as permitted sender) smtp.mailfrom=jgg@nvidia.com; dmarc=pass (policy=reject) header.from=nvidia.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=1723639008; 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=8c+68+qcFrF9XEinE1+B2F7HpeFycmCYHze14VEYae8=; b=vQ2Gtn7CFuHPrvFVdvJSNK9Gjup5wRaJyoWqDEqzuNbU09BqcBzl/ZFHK/pVCQiPMiy7Jc cqxd5BqAlqKeO8ZKpGGNd0nrsD4WVoizoFbZsCB06yEN5xRseH3uCRniB2HZBqGL64ZWB5 QNNiq6kxXJf+h0a1FvQS9Bokds94dgY= ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=D2Th1EF0szfo30hV/m62m9YwVB4+X4renbFkyrLo1ON6ktutIskHzQ5T6NAc87KF8vvazTeQRJ7j0bvrQR3U1sSvwREO0YI0MaNhQlDZX1hNQWFioGjJp0ftHpL5TukdlOblvXlU5tIh/8kddoryHewtzJHtrDfiIHWxprdYk9kFuunHzjOCazd7SeW6333Q78yFLY1rJL2EnB0eSqX+SjTC6c9xeiXnjfICTk7uaHssyOgkihzxO564r/V0sFlTq6pJa/oyJGz8GLuFXrOqnhBrS34B22DoTmygSb0gvvcr6tF36DTMEabjAYaUmh5hd8qBJ2v1xMar/zP07lhUIw== 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=8c+68+qcFrF9XEinE1+B2F7HpeFycmCYHze14VEYae8=; b=KS1hf3qPIdAO59hP4NdSlYvEHOrfuhLmOk9KopClQTr/UXj6DIiqk4ps8ReAfyKuCbUr76gMzsFfuZ+AZunhWKDOJdpEq2iL6lDxB5Z94QGbDVtfoPKg10DuqvCiwN09bAPqw6ev9TNi3mnQ0V564A40vQ+NNB/SelLDogoQhOUPAgwDCKZQLVy/BnxbuZUmKFC8pfO2tckrFakoCk4yhed7pWS/sMLi/d4I5o8UVug8mReazaN7kKlemH2eYqQtLOiLT5zMsTVrSwg8yDxfsjPiHhGbob3LcRz4RrECzTjaJfiDLg7qvLIHmFLar0C+NQK3j8iztZqyKNgaf5mO4w== 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=8c+68+qcFrF9XEinE1+B2F7HpeFycmCYHze14VEYae8=; b=W+Uwk3UQAD7L/Ezl56X3FXHf4s5SmcQTtT2yu0u+hDcFfDsXBrJy6P9MBnWRbnpBUwVI4xqk1VYeN9/viT6fs0xJ8SJFOBVigh0GgJ3HuE1Kycow70w1zBsdkYzyvZmWTPvgt1ZPWTGqQ5eFutZxeMIwHKtE0PGsoXY00xNIWFY2SiADmg4e8smdolmqq6vsbLnaE0CNEINH+fcao+1C3HY1sHcfo9/xG79LvDct20bkQ//pv68i8fg9SJWiX8LWHIPLIBAP9c/SPwMe8EpwpGyf5MA57YNEQlXfkRVPmfeTk+5y7mJiaN2rlsNwhdg3hi0VPL6KezrXWVsnuhZZHg== Received: from DM4PR12MB7767.namprd12.prod.outlook.com (2603:10b6:8:100::16) by SA1PR12MB7175.namprd12.prod.outlook.com (2603:10b6:806:2b2::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7849.20; Wed, 14 Aug 2024 12:37:17 +0000 Received: from DM4PR12MB7767.namprd12.prod.outlook.com ([fe80::55c8:54a0:23b5:3e52]) by DM4PR12MB7767.namprd12.prod.outlook.com ([fe80::55c8:54a0:23b5:3e52%3]) with mapi id 15.20.7849.021; Wed, 14 Aug 2024 12:37:17 +0000 Date: Wed, 14 Aug 2024 09:37:15 -0300 From: Jason Gunthorpe To: Peter Xu Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Sean Christopherson , Oscar Salvador , Axel Rasmussen , linux-arm-kernel@lists.infradead.org, x86@kernel.org, Will Deacon , Gavin Shan , Paolo Bonzini , Zi Yan , Andrew Morton , Catalin Marinas , Ingo Molnar , Alistair Popple , Borislav Petkov , David Hildenbrand , Thomas Gleixner , kvm@vger.kernel.org, Dave Hansen , Alex Williamson , Yan Zhao Subject: Re: [PATCH 00/19] mm: Support huge pfnmaps Message-ID: <20240814123715.GB2032816@nvidia.com> References: <20240809160909.1023470-1-peterx@redhat.com> Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20240809160909.1023470-1-peterx@redhat.com> X-ClientProxiedBy: BN9PR03CA0942.namprd03.prod.outlook.com (2603:10b6:408:108::17) To DM4PR12MB7767.namprd12.prod.outlook.com (2603:10b6:8:100::16) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM4PR12MB7767:EE_|SA1PR12MB7175:EE_ X-MS-Office365-Filtering-Correlation-Id: e2a09231-85d5-477d-fc4a-08dcbc5dd4ef X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|366016|376014|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?XZITxWUJO95SBwMru13DUVUM1EmekcmllAIerAFdmEzK5IyvGk74uuqmAAK+?= =?us-ascii?Q?N9jkHBD1l2X0XT1AbecLEsA4gZuogOX7i9tPuIQP+XSElZGcusvhsjZW4OP+?= =?us-ascii?Q?ixPu8DJg7jApuENyOuU+ChAtafhDqjsDiFHiyUp/HZnsB3oBgv/6afynRcdM?= =?us-ascii?Q?kt1EHYKmxRUvo5FTie9BrZRwtX9mmCjVv6292TgYq6eK8vltcIwP+4fI+Yqv?= =?us-ascii?Q?SH/GoCGo6U/APiqnuEKc3xWs9PUPPcoyqGk0V756JuxjSdHjY7DMJbeeHKHp?= =?us-ascii?Q?TtvnwHwibSubsK+l8EJuTPZ/sl8PyzX269/u2wpCANvoXjUYe2iXxqpEK5xF?= =?us-ascii?Q?YlkAyivA53ri5C9qPpXNKQWrQm2h91oFFcKLQ8RTdVS7cvsQMpA6314Csy2I?= =?us-ascii?Q?KEb9YVLIauCKRAxXM0fkw2wNSM09v5uiKuJpcz7xcbmo2p5udbB4CNPaujSu?= =?us-ascii?Q?yuFuEHPlSnwOP+HPy8yh9yLgbq7nBgy84RLpNwna1Wm3DOQRBUzumXZqIRVc?= =?us-ascii?Q?HDPm9V+l7inKG5Ri9lrYPTmNhf6fM2b4JKCBNG6D5uyXRmmj0kN8kYji1CIM?= =?us-ascii?Q?s66ysKhyMBjPb/4l9eRNxdVRNlLXxeTPXffzEIVcU85tw7049GSL0acdEAjm?= =?us-ascii?Q?efoY521B/xLf2CZ1TqqHpm81+4+Ed0Tnx4eg5V1WpEI1J7GuBDLQRDKj21fF?= =?us-ascii?Q?UTGw2O/Ib72XYGCfmXmCM6U6hAebjHyXFge2zEY+tsNNg/gTjIoC6fBLtDbA?= =?us-ascii?Q?hAH0rn9+KKYu6G6/Z10euhyNG2MYa1zAIh1nzUxxvQZXA3Z65yZu4pUnBF2e?= =?us-ascii?Q?pAjFUT/mhrchInWvTsr/cYus9lhDjaWfI5W0GIjA9r9faqhjx5ws+yejigkD?= =?us-ascii?Q?K8fNUnmrLTY5bfHVl5SFN6O7j3K6/DYoHpacJw2Geg7HDIRW9SJnQEzTGwq/?= =?us-ascii?Q?35z6bdbEWjCvtvZcxabLcnImvaIeGZBL7RSjBRqTt9V66/HmoJdtGqq/E+jU?= =?us-ascii?Q?wzhPcMChamCQdK3Za7nZmD4B0I/x3jcjPqNIPZF4LttvcSoGRd45N/ALjosQ?= =?us-ascii?Q?lTMzJo492cQXAG5ebPxAl3HI1heX9+Em51GWu2h0tVe6nstzhHys21HizEdl?= =?us-ascii?Q?+qZdFFJOKHd/wV62fdwwruWNn3UXuv+z8YveJPcALp5Ux/Pvfmec0BD8l2wc?= =?us-ascii?Q?lpJ1G2OWqAsuPeCHg8jICkcmrWlUPj5P6zJgrB62hbHWSCJe+g3wR1rIfEyw?= =?us-ascii?Q?sUWkK9At4LhCseB/99OWH2Nyhr7/+XVGxDi7PMZpxQiPaK9X7Rq9BRtkJvB0?= =?us-ascii?Q?PmZU383pAeIxEekl+IKe61MW6eH59AAlRNPVTziHbXHNcg=3D=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM4PR12MB7767.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(7416014)(366016)(376014)(1800799024);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?IScOCySLwnlnyLnTEMOT2oiKWHlzNw8ZfHtrtUSe7WG3alqTSmerjXJDe8GS?= =?us-ascii?Q?xUPBIRu0AJXfiqpqRe+8NYScbddU37L0vLIWwCsVn2EFSH7KTZ0/jykeRdhi?= =?us-ascii?Q?byblbmCAuv1ia4GkUu5m9Pe2yKM50pT9fb0TfX7hvikSd1b8QlT22Tmy/SqZ?= =?us-ascii?Q?aKUOR8hAQliJ8m5rcND6rkS/5t0i1XuU0xzdSmjVMZuDodCrTfqELOKRwGxm?= =?us-ascii?Q?93TaNwV+p0bJ2y5RC5xpHIgKSZE5CPb89IBW3Dq4vwYiDK9yB9/rO7qSw/M5?= =?us-ascii?Q?VxpUTyWRMsgC0Ajae5X5YWqUECbbuz1HJ/dKViBBPHSAqKpmXOLRIYuBHTHz?= =?us-ascii?Q?0YmzHR3UCB1/O4Pr7ZnkiwKxVWoP6k9qCyCrvyUHFoUOrl3p3oCndtA6svPr?= =?us-ascii?Q?5bTSIA5w8ZIGFxpY3lhKxpAW3/10MxRRMUkSs83gnZrbK/G+PCXrfYTAFHpq?= =?us-ascii?Q?NGwSD1m+niF8KA2YaHX3TvTfLHtaYS+z5nj7NJzEtjEFhQqzCR76/vcEIpMI?= =?us-ascii?Q?GksOeXH1iCCfOg12IpLNiX5irPAc/XkbBsfhCKBY8zSMaPUnIeAz/rZOkWFw?= =?us-ascii?Q?o8JftYPdJ0H5mAuw2bYNMzDn2U+5ScckWtDP3G05pYknzipSPfXvA2C5BxTo?= =?us-ascii?Q?66KnmC3GrYkzvHKfkaSiDzzVAusLAAP9A40qz/N1H6+SFGsaF3XjKtJUVXUQ?= =?us-ascii?Q?gRwo8GzTR6YpSpCNd2F31mtfrUsPVOonOdv2ta6zZQgm+1iNMtOTTRZXEo++?= =?us-ascii?Q?N0uNwWhfEc6/qQm6mj8gqUbGlLJEAelz0bGiTgQnK5CKKQur8vctOhjKtKva?= =?us-ascii?Q?diDydZ3EeBSdEFZVXjCleHT4ZOfjlTr5eGBkmwKNluOjfRJoRPI3iHi+ttrz?= =?us-ascii?Q?5tVFaRtQsYcTniadHL4MfAnSK2a817cHz7GNFSSWJONQoWWRDYjAMhJRLtkv?= =?us-ascii?Q?IXxqYVOSeASeuhem/FaHSQBwZ5OUuFUVZYR6XYzp447Ltlrdqsm7em7Jfcfy?= =?us-ascii?Q?KxEfJ+qq8M7L16tAVD3Tpc/z0UpePjHRDAb5+5QPiyNy0t/28LbjurqCMmrd?= =?us-ascii?Q?4jZXYGe8qkq0jvxyBzdzjh4HjLcUIp3IDfBByuVgHh3QeJ0g/keDPl6lZWGa?= =?us-ascii?Q?9du471UcIFBo3XMz5L9wnMeg/5mG3PPXdO6ZuF/2MktaLGyYc7ygi1Yksno2?= =?us-ascii?Q?i0g/rctL1nmwKBciZzU2w0F7qIvkup3ehGIt3qO3/kptrSrytkMkmjakfaAC?= =?us-ascii?Q?1NwO9QBnA1ij/XQu13QRuTyZTGrOxF6+kyDSPmG8WhN8Q6MyNb3zus1w8vAT?= =?us-ascii?Q?u2Am0mEsggv4TIQn3ZcM7vafgFFGK+wZNkpJbv+++Fq11iFejoIYGjkkXNC3?= =?us-ascii?Q?mt6EMBcwfnm29SA21yfrjZfzbBdmE7HOY6563NSJknH2ymTu9oAIr6WVsJbm?= =?us-ascii?Q?5YsmPjlSkyFw9knR8wIslm54thzPmCydy4rQAhfS3CSHwtFDgPcTMAztE05s?= =?us-ascii?Q?Ftib4lAzojW93lGNFu6oz3P1Fr3/B38hFr+9rirhoPWHazvG7C+0bjPg0xyc?= =?us-ascii?Q?yfKG+5UArXfOO4LC4ZPYDHk2bSwGWBjaV1NLDLWj?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: e2a09231-85d5-477d-fc4a-08dcbc5dd4ef X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB7767.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Aug 2024 12:37:17.1704 (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: 8Whs+wNOX73nbZ9aXnWmQwiB9JsgiqLhoHx1HbWu9uYIHYF/HqaHGHgbL/K6m0aG X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA1PR12MB7175 X-Stat-Signature: fq8orgm98ar4wmrqrouk45659hdtg1f4 X-Rspamd-Queue-Id: E5CA91C0005 X-Rspam-User: X-Rspamd-Server: rspam10 X-HE-Tag: 1723639044-630823 X-HE-Meta: U2FsdGVkX18TPMTKyJX7XNzhI/x60ewXuElOcLrK7txQhVGWxsaIVO6HdI8HN7pJeEfgjjMof+VUPphccbPZ5gd0+C8G10UDQ78Pzpiiw90OEKpiIiEQEPktkbTqFRh1Dcu7POaPVbxqjl67nTW5Nhtl2tENM38sIoNjdy6Ac2Xa9dQ9fFiJYDvUe+LHkoPfPDUisYBphTOZ9SykYy0JtFGnWzSELwsRZP3tlC33CIzEbh0w/WemkXFGvsdQfuFLIZChARA4gTtrKbkfMcLHAiTXbnTZbVj5CvFAj/t3yWgV8VK23hKuJ2E9PkTgSDcZGQ5+F+QqoDDU/u/qTyHU2y8Shp0n3+GWH4gkmBFfE9ACcQ5n57ZVX7m98iQF+ZWJxElIBoouHHkd5ANNHBxsRFRZPtXHRNVYqjmt/pysuxb+1MyAdfnKblKwuUdZ9oKZj9Z3T5Swm4Tr7WUWB9EedHfeQCyr3pH8brOJziRqzEdtYZ7ao0bk+dussj/l3l9RLOoNAqlGQn6dENuhSBwqi3bMtFcMZyC5+uDDKBJalMWCH5p15yxJKrkL13uCmmgunem4MMGI0rCREJLD66PnEZIhaaep8/7b9BEJutdtNiluVxd5FqGD41WWZccX4T8XlhwUIReVO2nJdNCvqIWbeEQPErzg99ozCCnPFSOXActvo5GIEEzbQgrAV+R49SQwYvcedZAYYfcxQp/MvvGZKr/0sZqXCkIvpl3TlTHMT4x+U6TuMCYbkcL9cnnoRlksC+y5o3FmG6JIY/Le/Me5/E9/g5j/2Vq0io2p5KFkJVjhpwzL7Je81puNlkYs5gMwDnD5kdedmF8DLQRDrX4x0rXEyWn5Ip4GnStpfn3NSCt18mvrZPth3tlqanTxWs5UkBYhHAhBgHRs7blq/gDk6WiPkdvrwx+dLqjDWuTGW5nTstiVe8m2s+wjCfo0fuiR2gsnNhFEOZOV9yUcKVd b2cyYMLE KL7xSWuFRKgbYlU8pwYArts25JNhLC2Fdodo+mUqBe9p8yUl1jPCtGHh2bUvbM//Wa9bx94upl3NsA1/VpBInwlBtWuSyRKUWHEjGkIPOstqzvDMzUZhUAnLGpqWIkIHePy3de4T4Bb7UvN4NFFPoYniCBBgAjxOsMhAz2ouwb1UKf7wOpAxWbqCa7ZIx0kJ7UdpqDQLvpR1Ia04Rcy0R9vfR/dBm9RPWxYZJy/rAopZufPp1pMFg6pm4mjXCjrGagMt+h1ub8b9FSg68JgplxMvMR23G7ALQF+8T 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, Aug 09, 2024 at 12:08:50PM -0400, Peter Xu wrote: > Overview > ======== > > This series is based on mm-unstable, commit 98808d08fc0f of Aug 7th latest, > plus dax 1g fix [1]. Note that this series should also apply if without > the dax 1g fix series, but when without it, mprotect() will trigger similar > errors otherwise on PUD mappings. > > This series implements huge pfnmaps support for mm in general. Huge pfnmap > allows e.g. VM_PFNMAP vmas to map in either PMD or PUD levels, similar to > what we do with dax / thp / hugetlb so far to benefit from TLB hits. Now > we extend that idea to PFN mappings, e.g. PCI MMIO bars where it can grow > as large as 8GB or even bigger. FWIW, I've started to hear people talk about needing this in the VFIO context with VMs. vfio/iommufd will reassemble the contiguous range from the 4k PFNs to setup the IOMMU, but KVM is not able to do it so reliably. There is a notable performance gap with two dimensional paging between 4k and 1G entries in the KVM table. The platforms are being architected with the assumption that 1G TLB entires will be used throughout the hypervisor environment. > Currently, only x86_64 (1G+2M) and arm64 (2M) are supported. There is definitely interest here in extending ARM to support the 1G size too, what is missing? > The other trick is how to allow gup-fast working for such huge mappings > even if there's no direct sign of knowing whether it's a normal page or > MMIO mapping. This series chose to keep the pte_special solution, so that > it reuses similar idea on setting a special bit to pfnmap PMDs/PUDs so that > gup-fast will be able to identify them and fail properly. Make sense > More architectures / More page sizes > ------------------------------------ > > Currently only x86_64 (2M+1G) and arm64 (2M) are supported. > > For example, if arm64 can start to support THP_PUD one day, the huge pfnmap > on 1G will be automatically enabled. Oh that sounds like a bigger step.. > VFIO is so far the only consumer for the huge pfnmaps after this series > applied. Besides above remap_pfn_range() generic optimization, device > driver can also try to optimize its mmap() on a better VA alignment for > either PMD/PUD sizes. This may, iiuc, normally require userspace changes, > as the driver doesn't normally decide the VA to map a bar. But I don't > think I know all the drivers to know the full picture. How does alignment work? In most caes I'm aware of the userspace does not use MAP_FIXED so the expectation would be for the kernel to automatically select a high alignment. I suppose your cases are working because qemu uses MAP_FIXED and naturally aligns the BAR addresses? > - x86_64 + AMD GPU > - Needs Alex's modified QEMU to guarantee proper VA alignment to make > sure all pages to be mapped with PUDs Oh :( Jason