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 bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 6BEF1C3DA4A for ; Fri, 16 Aug 2024 17:41:31 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:MIME-Version:In-Reply-To: Content-Type:References:Message-ID:Subject:Cc:To:From:Date:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=4umQplemR+89QkBubgfFWDypoBLwNYMly4mIsImuFms=; b=F5gU1xGN1C3Iz+5J2V2Z0hVPzn bvVeogvs6fGbKIkWRhnaofU3R/tv+txQfnHwDqofu7Q7lF20oIu1nA+Usz2wQjufAF/j6gNrJ4k6b 2cQct5n4Ygs7R98eAbpn/8I0DtHaKKAlJseJUPN+52nMh6mBo3GD2PRQ6K73piMJStWdvpdfOpPV8 CJ9ffSBkXcXpIqYPRqM9Tbh/eptcakKcnnbABL23blhWA+6iRR+zs8cv1OHXwd7vrJqL6/y5BROcR S7RETgIkh/SGd4FelH7k0Qyq/w0ITGw86sgilIkOTfpQ7IihqckCXlcMjksKwGdyyNU2Yb8f6N93f 8Xbq9rRg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1sf0wz-0000000DjWM-2b3F; Fri, 16 Aug 2024 17:41:21 +0000 Received: from mail-dm6nam04on20618.outbound.protection.outlook.com ([2a01:111:f403:2409::618] helo=NAM04-DM6-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1sf0wK-0000000DjOG-1xFo for linux-arm-kernel@lists.infradead.org; Fri, 16 Aug 2024 17:40:42 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=dpJ0iRy4pjrpTkZnTTfK52/DVuQ+gPn0S7W+Pnr0jZ52P4t/uXStLYFs4v0Qj3pHJnFjOnER/58UD4+MT6kNPM7sQm0jf6T2fj/6ovxrCvoLrEWo6v5qFWF4viIQ9LzjBSsrgS4yyqy5H7k26/kzGGPVel71TtJu0IupaYUpjOII3AMEMoSKaIVGWz4po86M/w3yoFlzQEq58A0X55DDfJ8NqEBYYIGct2Nb0QV54bv3oWWgNdAuRwh3m/HPsasUWrn38It3n94EaWlmpn7EskrxBO/HXGCdx9Fm0Rb70sR/YaCvHo5BiJbkN+zMJlNHFODh+DlG5Mw05OiTNsEM9g== 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=4umQplemR+89QkBubgfFWDypoBLwNYMly4mIsImuFms=; b=CFiDQTLaeZMMVAFk5ItZC4u/bsAKjbSnbO1O/Vrjk/acFoeio34vyF86i7iJ4clkzPkILK1+9UlljQm2wq/rGUV8pLqV1bA2jn8x0yVq0CZwvHIrccr1ZStBQAJS3Dlr5OKPAWgVLvNJvYFGVLRnzvrzQZeysB0LvyrcTpDrF/ADuYbWoDhpnsy2Jnx5bA9Eb75SU6rm6cv7CH5V9CD5eYTT8ENiacWu0gOzDYzMgwLSuOIEhLu/Ev2HoPGI6yBmlYS1wih1Yh6GnngFnNbF9OXZDWyoq+YJ2qEfxWuD1trT4ZTTvyaI996bi9BnyMqQQOEAKCemaKiXdsKA3GmjBA== 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=4umQplemR+89QkBubgfFWDypoBLwNYMly4mIsImuFms=; b=Ij5wn8oHXvOwQQEGezUhdrkaXxXiuiX4rfMXJUKGgqmTXzuAjny3rbVCEb21SzgL9Cd2bQbXkdnLZ/fhXXnflYmBqnB/54Lcjc7LOTElfBwZEoCrRza38sxxdN4DN4TSXMVwZi+KOcEyp8AbHulWxHlnqMcO65kpfSN/H3BFIBikxMIsCHj00Xu6E+m50fd83tTObH0+K7buaJTpFQ2h5n1MGp4YV24YGUeMGhY0qqS8eJumr0gB1takFmMCw+etqtdEKp6RM4u17ztW7sC9DAm1PwKBseVZir9hvanlyvG6HuUTf+0xVSdaPF1MomNTlKZRvNph3m1ORc4ozV1X1g== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from CH3PR12MB7763.namprd12.prod.outlook.com (2603:10b6:610:145::10) by SA3PR12MB7999.namprd12.prod.outlook.com (2603:10b6:806:312::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7875.18; Fri, 16 Aug 2024 17:40:33 +0000 Received: from CH3PR12MB7763.namprd12.prod.outlook.com ([fe80::8b63:dd80:c182:4ce8]) by CH3PR12MB7763.namprd12.prod.outlook.com ([fe80::8b63:dd80:c182:4ce8%3]) with mapi id 15.20.7875.016; Fri, 16 Aug 2024 17:40:33 +0000 Date: Fri, 16 Aug 2024 14:38:36 -0300 From: Jason Gunthorpe To: Peter Xu Cc: David Hildenbrand , 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 , Thomas Gleixner , kvm@vger.kernel.org, Dave Hansen , Alex Williamson , Yan Zhao Subject: Re: [PATCH 06/19] mm/pagewalk: Check pfnmap early for folio_walk_start() Message-ID: <20240816173836.GD2032816@nvidia.com> References: <20240809160909.1023470-1-peterx@redhat.com> <20240809160909.1023470-7-peterx@redhat.com> <20240814130525.GH2032816@nvidia.com> <81080764-7c94-463f-80d3-e3b2968ddf5f@redhat.com> Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-ClientProxiedBy: BL1PR13CA0290.namprd13.prod.outlook.com (2603:10b6:208:2bc::25) To CH3PR12MB7763.namprd12.prod.outlook.com (2603:10b6:610:145::10) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH3PR12MB7763:EE_|SA3PR12MB7999:EE_ X-MS-Office365-Filtering-Correlation-Id: 6a503eaf-9006-419d-e853-08dcbe1a879f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|376014; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?6n12RJFwRmhWJcw08bAOIg05RIDm6XsQxYkiZqhXHmQrC3tY6BlBvmfgBmWn?= =?us-ascii?Q?OdkauOJJZCKJ5z2Oyfx06aqnsaDbBw5WKATFTCqkMzaEx+MKM2EYcP8IpCvf?= =?us-ascii?Q?s0iFwLXncoqBuV0f1CsQ/ECr7yB7JQnfN0MZuX0kz8iZKfLmDnv8WeMvyYDu?= =?us-ascii?Q?5o6DWd0SK0wTzyGpAjYl27lO2CudJH1/c/gIDL+4VOxCP8KSYJshm7lEfHC+?= =?us-ascii?Q?2lzIlaYJhkuOB6fLHJQK5+5tUy3T29oZ7HR4NHT0+e8NCsyOSlF8T3qVzPSY?= =?us-ascii?Q?kuu6VCNoQSgk6R/RkxSwcRCPE+qSbx5fmEuYKQ6WDonzNwoVudG2v8GrKU/h?= =?us-ascii?Q?X/FX19Plp6OhX6sipAMSuXUJL1QvPyUeBY3GC6lBAeN4WVjBhGffN5Hv/+vq?= =?us-ascii?Q?TTam8cNqVDelFSY2YkTAbqo2OE0VY9tdN2BesgQYioAoAGeXsiic8LczjCBV?= =?us-ascii?Q?rVbV5aaZbFA+ptg2HLIJr5fWRMnVkyVxvz5rhkhmakysQ1YPiWkihuW5Jn4H?= =?us-ascii?Q?rKhY0fpq0vW5HH164Ld37IKeXwNtUQ31ZM9N1/uxbOu1kNOe7cAR8pnOKpPO?= =?us-ascii?Q?VC4kpYKZasJ7NZW55JvIclNUQBlIee0RAzOB+yCgCDSKMSfJE+YMY5OJdbd/?= =?us-ascii?Q?QIv9ev7bqHaIsXemb7tLW5TN5nfZTWX93YvX9NAXoHUjsXUMksqrBzAPwqN9?= =?us-ascii?Q?a6UdzdzZb4AAEzUTjznuxZyu5Nv/unXeeaHCdDUpD5OlDfyFp7X2U2jQP97O?= =?us-ascii?Q?+OoNa37YrkLqBqb2VJFoR89mPWmNDuzCULwAHvBqDDuoAevg1rf8DMxNhNNk?= =?us-ascii?Q?Ieg+U1u13+MKhVh5+9Ftl3fhXeDuuRT7Rp7tt7K1lH+R4XL7+pF4W/XxI5Gg?= =?us-ascii?Q?Oddm1vvMZl4GCnVW5frIg4YHzcjE/6b9/0MIGf21dwoSsxZMXH65aai3tyte?= =?us-ascii?Q?8DJpv0uXYBPOoHx76q6VAGAdrkkfxMB/qZL0QxOXSXgsFs7egy4SIoKeK+Dy?= =?us-ascii?Q?c+c0X0vBYKwdqDxOTKc+2iSaIDz0RxFaU/lmUF0phDFcsYasNE5q69wR9nTS?= =?us-ascii?Q?OQYsCxLnrZR3ak3zEbyy7+4DaNYuxJspeN1NEk5+hu/jKMsr6uLbyq1X7pFq?= =?us-ascii?Q?HD3SLQfkGMcYfjyePFt5GYcmzRVu/rxMzAwg9YHOnAWs2yNyyzY55RQ+15jB?= =?us-ascii?Q?agTCK4cd+oYtsBPLdYcn7YLsx4rPHLSff5JvRj81qf6I/ANRuNB0VvUlEExl?= =?us-ascii?Q?HSIRoXHMLjYoUCbX4dJxBBo0sIeuywhr60tnGyjnbq+R6CM7DhERSwmX6W6d?= =?us-ascii?Q?6A54vRanugZknbEM1sgPw0Wg4DN+bcCatMKui+kUGY1A2w=3D=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH3PR12MB7763.namprd12.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(376014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?0gWXukuwQkl7zPe6gx/JkGDkz0ewjjY4+lz9E5wvGjRk8iWontDTa5Z/SbtF?= =?us-ascii?Q?JnLl1qmHVpjmnGFETdFQoV2Dc+Qr4sioYVvU5vu80OsqmHwpEDybyAjCizf9?= =?us-ascii?Q?IaIRF3+zKPnMbX+X5RxKpiedZoO5X18EguPcY913RUp55f3WPcz3Wwp2SC3R?= =?us-ascii?Q?Pp4lhtpEfXltFwMrJNixahtVEGk/UsDFBnQ1vxWE4Gs5YOpKwWJS2Zvu5kol?= =?us-ascii?Q?RWji7aqaBHTjorLkPKGZehbe8H+VaVKMllNA3kiJTuLgcgeJtTn6k6Y3uPSb?= =?us-ascii?Q?wLAlf5poiFMNE3jG/ASughki1bH5V1VbkmwQEmARdsuo8bjy6iaH5QKvZie9?= =?us-ascii?Q?JgZ22rQdLA60BnMvJuaFHYnjvz72abvEh+Arnrl6Fzne4JzKBFFWjrCkujZt?= =?us-ascii?Q?tntLvbXEIWgog6nvtGb6AlNDOVa49+YgRyReZCpPWoABXoueCywiY2pICDsy?= =?us-ascii?Q?2xCHhB7pyvzmlTVCmqYy871IKS/XDd6y7zmeXgEeIcRPkWF1UCZOlwb2S3IQ?= =?us-ascii?Q?ZE0A+o4WKu2UvQzyp0O53rklakWDbfFFkeM6w4g4v6O39zj7fm9cYsi4vKNp?= =?us-ascii?Q?aC2NiHUpb7ZhrJFMN5EB+tFaZjPRXeIeMZ+nZs9JRYEyvf9SDvjN2Fxyshn9?= =?us-ascii?Q?lzwMGik0Ih0pL/2QkFd17fIvXT2fmc4ssku9W/U4VvNKeSpMakRDUE5uoRfq?= =?us-ascii?Q?f4FGbFIrncSqKZeL7Epqc/hchU+EY6SACXAnrzipycgT5d8KJzIAG/eCk911?= =?us-ascii?Q?UEZ/i9k9BZjk+Ip6m+TJ3HZ5Y2E6LyTVfdrFoJQdIRnAYVJNrH2E4syL2NK6?= =?us-ascii?Q?gr2rcAH8QoUzvItjmfvW+7e6prAu09Ayf6ROmD6Ry1LLTDfVRp2CbMWVmVvd?= =?us-ascii?Q?0KRL55mNfs63hOUDeHF+HByXffPORvEjd3S8NeHDwN9rA5jGTtw5B5f9tTVt?= =?us-ascii?Q?0NpKflValdjtoRDvDDIF36v66k/XHyHA7Dm7Bue7W/XaipCh3yK/rzg5JHOi?= =?us-ascii?Q?FLK92HFLmWqLK0Ok8gdmUeBR/znzg6ACzkcgW5MS0n/XTt8xJ/TrtCmOu3Qb?= =?us-ascii?Q?VaSalsQTDcXMOnRu1nLvFvW5pSR41j9OAwWGVuv6WyZjWjQNTs/xkys17QHZ?= =?us-ascii?Q?E68SVRBd00zckg0wjLQGd0OIUx0P0M+OzxaomJsnjujnw9aBdY7mpvufYySw?= =?us-ascii?Q?aNkiLZz5vpC4PmVs0c0QCTuAjQz1t3q9DHMOqPqx8xg5ty057Rjlictq8yhm?= =?us-ascii?Q?3Lrepr0lU6w8ETwOkOhJyzpAPSBRROpbEap/gzNWg0dty6hSvV05hXN1EDTl?= =?us-ascii?Q?j0BMmyBKA61ChbubZpvPyLOn1PNisPOxeDHdRHLgq+OrJJ2wt+WSzO53Xmyy?= =?us-ascii?Q?K60Xh+6RiXtkHFAUOgY7w24vNDNBPF1F4Htwzd0gtLSQ8mMaGj2mJVcSI+TN?= =?us-ascii?Q?9y8NI3bX5EOyAh1EqeTGhpXIgLrmJjwpXST57xtk666wyyIUazijQ98eB0Fa?= =?us-ascii?Q?DRiMrNy2k3oBlYABwUQ/zUtKrjDUkEweGXbu9VKMGBO3LUMSmilcbYZh/FG+?= =?us-ascii?Q?vSb3zxu9PZeo1QDPQik=3D?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6a503eaf-9006-419d-e853-08dcbe1a879f X-MS-Exchange-CrossTenant-AuthSource: CH3PR12MB7763.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Aug 2024 17:40:33.4821 (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: QMBwTF6xsFpAdwikPBET5iaodl+yxUfJfFjSe9hxeL7JT9YmM5ZgJYxJTxZqf5bv X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA3PR12MB7999 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240816_104040_538193_6CD60DE4 X-CRM114-Status: GOOD ( 27.10 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org On Fri, Aug 16, 2024 at 10:21:17AM -0400, Peter Xu wrote: > On Fri, Aug 16, 2024 at 11:30:31AM +0200, David Hildenbrand wrote: > > On 14.08.24 15:05, Jason Gunthorpe wrote: > > > On Fri, Aug 09, 2024 at 07:25:36PM +0200, David Hildenbrand wrote: > > > > > > > > > That is in general not what we want, and we still have some places that > > > > > > wrongly hard-code that behavior. > > > > > > > > > > > > In a MAP_PRIVATE mapping you might have anon pages that we can happily walk. > > > > > > > > > > > > vm_normal_page() / vm_normal_page_pmd() [and as commented as a TODO, > > > > > > vm_normal_page_pud()] should be able to identify PFN maps and reject them, > > > > > > no? > > > > > > > > > > Yep, I think we can also rely on special bit. > > > > > > It is more than just relying on the special bit.. > > > > > > VM_PFNMAP/VM_MIXEDMAP should really only be used inside > > > vm_normal_page() because thay are, effectively, support for a limited > > > emulation of the special bit on arches that don't have them. There are > > > a bunch of weird rules that are used to try and make that work > > > properly that have to be followed. > > > > > > On arches with the sepcial bit they should possibly never be checked > > > since the special bit does everything you need. > > > > > > Arguably any place reading those flags out side of vm_normal_page/etc > > > is suspect. > > > > IIUC, your opinion matches mine: VM_PFNMAP/VM_MIXEDMAP and pte_special()/... > > usage should be limited to vm_normal_page/vm_normal_page_pmd/ ... of course, > > GUP-fast is special (one of the reason for "pte_special()" and friends after > > all). > > The issue is at least GUP currently doesn't work with pfnmaps, while > there're potentially users who wants to be able to work on both page + > !page use cases. Besides access_process_vm(), KVM also uses similar thing, > and maybe more; these all seem to be valid use case of reference the vma > flags for PFNMAP and such, so they can identify "it's pfnmap" or more > generic issues like "permission check error on pgtable". Why are those valid compared with calling vm_normal_page() per-page instead? What reason is there to not do something based only on the PFNMAP flag? Jason