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 1DC04C52D7D for ; Wed, 14 Aug 2024 13:06: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=wi0llm+6f3vgmT8JX82VLigwwMTE7K59M07f0wMF3m8=; b=eQ8wBaSbA1G44gqrlIWIeDXYyR qnDPfN9GT9uN1dJXJt5l7VF0Rve6BBdjoKwTinx5TxbiwnqJlU2Q0rWan404D7FK4KOfIYXYrVGSE hxZicw9LzhnnzPa/zfnlk090daRPp6J7Eq7JLWpZ1XvrUbUqYL/0FU+hURcswnejAVqEa4vPFq0GI YaAc6k77rT2uWX6NA59bU9l0H0GNDlZcYvHq7qexbXnoyWZRQENFw7MYflOGLAqMF7qt6YWUZhv3p jhrDpFRXin57DBmRDbKgkcDFRfZlzk9+yyVWRk2CakHbPj7eYCSJQaLWjwr+bBHaD5+ZFm95HULDK NU6/m68w==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1seDhk-000000072L1-32if; Wed, 14 Aug 2024 13:06:20 +0000 Received: from mail-bn7nam10on20628.outbound.protection.outlook.com ([2a01:111:f403:2009::628] helo=NAM10-BN7-obe.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1seDh7-000000072Df-1bdG for linux-arm-kernel@lists.infradead.org; Wed, 14 Aug 2024 13:05:42 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=uZTWaduPl2GnZGccCn6Ise+4/oGqW00e8XqLudW5hY2pLKAuvr9/L81VkCTvbAgasIahk0grpgRGfP6zrd+kQF5BMLIlx7k1wO6M3g/4GBOlJbUN5OHzdUnCURaAkFWkhWX8GAmPSrTXL9cn1jGM6Niqp7ElL4qMAh8gr/XMViAgUJ7LJ1ODhycnz6Xf8zucHkoL00e4Io4C4WqY053PBv4eOBwL8629KI4JUynk8Lbe4li/J4rvma9vmakeutjpaxDdHL+e916qajtnItjFea51lNn5uQuKKi2czVVLJk3YpUILDC46cMFwVStmQHj54QdKGn78iizGy2bGRY4QNA== 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=wi0llm+6f3vgmT8JX82VLigwwMTE7K59M07f0wMF3m8=; b=m+cmNADYUJshp4V3mQNt304vJ51J/R5cD7fg1Ps3AAOaDTshFYUMt1rCjV4KeRibvjdKlDI1IchxBFQmWev8tkrmMi33Ql9+fB1ERQUGO9NLYuY3+j4Zc3CgMtKUL7FIN3bEcwlpfgc74/mjnfUpt7JWXZ+8jhqMqgXJ0fxLA5oC/DWYwlgSP8VC4cQrCW3tpuOmVHcmTWXfF8Uqq1q+vmHOHkVqWYfQxtPnPiZ2SMNpgJ948hbzrm2MdXDHtqF1CwX9Xd6Z1LnMAzQILxsYTWIc6HleJ2J32wXDmOg13PRQIHLh81Bv5ybi/NMUWnhFM4H3pB8Sj1R6+C2d3z8r5Q== 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=wi0llm+6f3vgmT8JX82VLigwwMTE7K59M07f0wMF3m8=; b=SF+UXVc3s3fEMn1sQwj/hwa2BGzKXywS3VXsRCslYN0oJ2y2nztMIbrL6gnTiAkI0zTLDTPkhis802i5hlLAnZcUQPVrIoFauEvitFj/SVtfQyWgwPoO1AqyPW0AinJu/3KTv3gCaiPfN9We3kpzkioMJ+Abf5GhnJzWGZqM/0BH/jCLz4PtYExS72pr0CKISmMXyFmoXHhlTcgwpD5DOwWivQStQoWWclnrBua3QbVN5pn/1qO/96289OBZcEd3g27blR+NpKwSMt+u39tkfa5Qd9DXylTTgS7ZupGALGtFVOMTefRM8kw0dRa23zj/QjeefqwbGfmCxWenKdjKgA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; Received: from DM4PR12MB7767.namprd12.prod.outlook.com (2603:10b6:8:100::16) by SJ0PR12MB6854.namprd12.prod.outlook.com (2603:10b6:a03:47c::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7875.18; Wed, 14 Aug 2024 13:05:29 +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 13:05:27 +0000 Date: Wed, 14 Aug 2024 10:05:25 -0300 From: Jason Gunthorpe To: David Hildenbrand Cc: Peter Xu , 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: <20240814130525.GH2032816@nvidia.com> References: <20240809160909.1023470-1-peterx@redhat.com> <20240809160909.1023470-7-peterx@redhat.com> Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-ClientProxiedBy: BLAPR03CA0026.namprd03.prod.outlook.com (2603:10b6:208:32b::31) To DM4PR12MB7767.namprd12.prod.outlook.com (2603:10b6:8:100::16) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DM4PR12MB7767:EE_|SJ0PR12MB6854:EE_ X-MS-Office365-Filtering-Correlation-Id: 5eae9dd9-2bcc-42ac-4bfd-08dcbc61c44a X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|7416014|376014|366016|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?MddWG+GSaQIrmrY8FSrUUGe0jnmbxPcYmoLYF9eVu4QdNLh+Xhc1gHm1EqLr?= =?us-ascii?Q?vjaB8E2FF5Q0FtnAA2enSRP3bszhRmaSNF4k0FRFKxVX0ayIy06cj6lbFidd?= =?us-ascii?Q?ISC68NfDtp0I5qOnJgdwuEEUBP2LIdrfYvymB162M6di+n+FDMNy1NwMD/xk?= =?us-ascii?Q?lYwcVUJ57BkCvD6fB7PMO9FitUYz9XD4ONyDC1TPBxJjECrrVtfNT4nTQDpw?= =?us-ascii?Q?mMhZymZGrs9IHmfzvqaPi9vxjLcUa2+ySocDypuTCQ9QH8auquaGBEbM2hAh?= =?us-ascii?Q?eIN5Pn+VT855aQv55BKL/irVXoWgkAHsRobJQXC7JLavWWARryI054yJgGzu?= =?us-ascii?Q?4v2CuQi4SAnumDHTwUO5LPtzDDnTj+YydEfcjRLUZWK5+x1sgC/Qd8bvo34o?= =?us-ascii?Q?VbE4lHILESWPRFfsnVEgdrTeYbC1unGPgMa4gRRt0DgHfm1aO2qEDolZzR+k?= =?us-ascii?Q?K0UyMvHVXLMg+F6rsgC5by1bie+zTgNGEnXYpTmbjiFTM+A5r4LRy6xcoVRs?= =?us-ascii?Q?b9Wooosg5l1wJ9fZB0E7B93fuNs8RR3VwAHllCvsKIfkGDnzdTsciXv79B6p?= =?us-ascii?Q?TcDUc0rdzI3BkqNgRfa/SF2bQxo1F0lvOS4WSXBHzELzEaIOpESVWTziUtNB?= =?us-ascii?Q?9l+fzt93C83CAXHH33OyGYELv8PwgqPgc+sE3wTeQN6B+wVdU5nwVe6Zk24q?= =?us-ascii?Q?wicg2AMEgZN1zVG17jx1cx0rEo1nSpD+mx0lb73tCsRnMXCHHdljP/J8RmYm?= =?us-ascii?Q?KN8vFR6HoUciCzhyWavtTO6crDMx6kVGqva5zJlLk1mYWzCdUsyEc0iJehey?= =?us-ascii?Q?y9aygxsj2qQ5SoXaUXaHw+Rbnj5EQPBL7UPUvXQYMl8VSmUEYWEapo9/bxHw?= =?us-ascii?Q?qF2UOtcyznXSvNbtXpDfDhZEUUi4BT1ov6A8GSXG3g1IGCu0q+OUzPRak5+Z?= =?us-ascii?Q?93lWVRKXD2n3DT19xSCXaG6r9ATkQeQb05gxulhKXCon/LUkze6Qoniy+n2Y?= =?us-ascii?Q?zX8HSStVN4oW6wZK63G4M3gD+Ai0quJsPHwUc+FgW/4JgkUl4oc3YWo9cn1t?= =?us-ascii?Q?quJbiCv5W2CDUjs0L0mk9YP1ioUNeSw0Kk9y6JXjzyRLfnH0laeuU3kgIKEO?= =?us-ascii?Q?Dq/dCxsfT47Ie9Q+bquQtso97mobaL73+EJ3snRgfLmCUrRU46Km4L+AjBd7?= =?us-ascii?Q?T6i3uPPM2WjD67VNynlcvartFh8CnsH0LnaeaPIsiY37xOjloEyPAy9oyowG?= =?us-ascii?Q?kM5S10118I5+m71wM7J//eUKGLHvp2NiWAD6/9YQIShl3ta9qVgVtODbcUon?= =?us-ascii?Q?hHqDHjV9oLlOi/C27l2zjHzs2YHIV+7jeZXZdvNonxHOjA=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)(376014)(366016)(1800799024);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?BKdNJ75z7vX4PgTFmhQ55LSDwNpyoj/RCHDlcGnY03B2kiwm3VLFWuXO03Zm?= =?us-ascii?Q?2zWCnQGS96uB6DmUjbt1XBeLH8+k8Q6vUMSvqPXS6nKNsSkedaOUOnEZF/JI?= =?us-ascii?Q?17dV/rP5IQmjJWrrAjNNe7a3L6r3fTCK0PcRl3vbKoNOmqqi/ORXzYtBp4n6?= =?us-ascii?Q?B/VT5gWxUm4UHwvdOJO+GoXWTtxhbARuuHMPp6cfsKugChgNVi5pr8Y3dcwg?= =?us-ascii?Q?c37bXqlqyn5Ns5WnfwvSC7641bqGCTZvh1yTVFlzhQgLDJuws/afzzJctXvy?= =?us-ascii?Q?jas0zayATCxBfJSmu+uUGT4NOUD4W699m7mulk5NC3EeDWioIi76Pbh882R0?= =?us-ascii?Q?sufYY0hXhetNENVGjp2PYsMLYJUphI0AjcCg7D+QUGvTrjbhQB3KGqMIi1Zb?= =?us-ascii?Q?2zXhH9pk3VTXcDTB42ceFgdqQA0l93gnXk6iFzFjX7zrQ1IjLnoYzo3RxBbf?= =?us-ascii?Q?5xGFOY6QE5toeyTLOtVyVHSs6wdTObN2tag+jAjaoH8BTAWWHmDYy9s3FzV0?= =?us-ascii?Q?ynjw19WeoZ2F8QbyxJlDujKTqMGcZFXrCjwlsL2P47EPqiI+pJm/rb4O2bQs?= =?us-ascii?Q?72vVNYg2MMKiy2NeIePV2P139f1eQrOrCD7A9XGwEFi+eI7hBQgeaJEdG3Ja?= =?us-ascii?Q?RRuoJntpVcqIvyNCKES7URM6xLff+mxoClAx3T2XmBr8CPV+6xaRlH1e8F14?= =?us-ascii?Q?5d0RGBrkJDplRTfOKmQFjqoIXRUUknXNlXQurjC5c9si/N8io1Y+99yGF/tK?= =?us-ascii?Q?K/VeXqbIkZIz/MojDfbU8blM4uiLeUMDXIxVSO1TjifVYnxgN2sQClU7cUGu?= =?us-ascii?Q?ZhMoD6GIRmBDIj7O06cBN6+ycaXfzpwwgj4sZjJeNavEe4Ih76woLNo/k39f?= =?us-ascii?Q?pTY/TPDrnh9fQoBQZ6FrET5oz3QR0k9gbRr4knBKONjDmumoo5ZzqvuFC02f?= =?us-ascii?Q?ltZEZ7m8xXd+q10VAHjJIV5ne7XSlQcgy6sh8djFabY6behsKt0gzR/qR087?= =?us-ascii?Q?VAGnQXqQGwHeuetHASptCafhQFq9Uoe7AT3bIuewCxz2h2TO1uNmpcTVNyds?= =?us-ascii?Q?FBpR6HE9+FeS7TxWooi/46d6xRc4+uTBvkV4fZV2yoDqwyVsM2gsp70NBqCQ?= =?us-ascii?Q?QyECNJ4CQVC/g4/Pas3g8cLmkJw18I4PjsCjOr4Q8fptxcF1HR/RPhos4HWz?= =?us-ascii?Q?cGXoLagphE8HC4GjDSSgRvGybtnrRvZ9K8SeBIoA6AU4YN0k/f0HDCzjStuR?= =?us-ascii?Q?sCzdzdpiWJHJgu70yeGoSGioSp5pRMndfQ3LFzOCtejycXWhkNobIJHYkPH+?= =?us-ascii?Q?XKFykp4t9ClOhvZwgwuG4dX3Rp1Scm/Lt7TEmkVjPsRvMaX7o9PjFkVL4VWm?= =?us-ascii?Q?dM5v3NDI08vB/lYXZYaNhbcpRdDuMqMeM1+IbXHjkE9rlL93jKWBsn8NA2LV?= =?us-ascii?Q?yB5FI+rKSXZtxW7nZuFhyOhXq3PCuViJGwQh4ejjIcV8PUHi3w12w7ivUGQS?= =?us-ascii?Q?UIRY6m5OOoOREsZUJB3wfjqdQmhzQAjE2OS/nVbs5w/rjJ2qW9Lv79wbtemR?= =?us-ascii?Q?h4RZXpA9RUBRPuRhrgALB24xvlsUHVc/q9fMWXgt?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5eae9dd9-2bcc-42ac-4bfd-08dcbc61c44a X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB7767.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Aug 2024 13:05:27.2523 (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: LIAk/3wUp02guCg6u98hmbk1FJBaja8nmuVJ6nbt/JGbkWYhmPMDxImDFxBSOxrO X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR12MB6854 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240814_060541_447925_9905E267 X-CRM114-Status: GOOD ( 22.20 ) 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 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. > > Here I chose to follow gup-slow, and I suppose you meant that's also wrong? > > I assume just nobody really noticed, just like nobody noticed that > walk_page_test() skips VM_PFNMAP (but not VM_IO :) ). Like here.. > > And, just curious: is there any use case you're aware of that can benefit > > from caring PRIVATE pfnmaps yet so far, especially in this path? > > In general MAP_PRIVATE pfnmaps is not really useful on things like MMIO. > > There was a discussion (in VM_PAT) some time ago whether we could remove > MAP_PRIVATE PFNMAPs completely [1]. At least some users still use COW > mappings on /dev/mem, although not many (and they might not actually write > to these areas). I've squashed many bugs where kernel drivers don't demand userspace use MAP_SHARED when asking for a PFNMAP, and of course userspace has gained the wrong flags too. I don't know if anyone needs this, but it has crept wrongly into the API. Maybe an interesting place to start is a warning printk about using an obsolete feature and see where things go from there?? Jason