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 0559BC5AD49 for ; Wed, 28 May 2025 17:59:23 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 80B8A6B007B; Wed, 28 May 2025 13:59:23 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 7BC516B0082; Wed, 28 May 2025 13:59:23 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 685716B0083; Wed, 28 May 2025 13:59:23 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 4943D6B007B for ; Wed, 28 May 2025 13:59:23 -0400 (EDT) Received: from smtpin26.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 856F51411BC for ; Wed, 28 May 2025 17:59:22 +0000 (UTC) X-FDA: 83493078564.26.B0E2E9A Received: from NAM12-MW2-obe.outbound.protection.outlook.com (mail-mw2nam12on2052.outbound.protection.outlook.com [40.107.244.52]) by imf12.hostedemail.com (Postfix) with ESMTP id A331F40010 for ; Wed, 28 May 2025 17:59:19 +0000 (UTC) Authentication-Results: imf12.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b=W9iGgAvX; spf=pass (imf12.hostedemail.com: domain of jgg@nvidia.com designates 40.107.244.52 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=1748455159; 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=2kAqxDfbp0LeYo97fcorTMZ0AT2jFbuC4D8h8siZe0M=; b=c+ULJcrYSK+5KhwQW7ymrH6Yz/DGz3G/I7u4PO1iqplHvolK3LSAEr6frQCFDMAP6GIxro Bed6yZnhAg+tukTZFkixYFNYEPuWdmd3Gv2dzMUPZy5QKyHK2B28ZbtBpQOBeyyJZgjeM3 i8/OlrVMMyR+VojQ4kyPQrBGftbUq5Y= ARC-Authentication-Results: i=2; imf12.hostedemail.com; dkim=pass header.d=Nvidia.com header.s=selector2 header.b=W9iGgAvX; spf=pass (imf12.hostedemail.com: domain of jgg@nvidia.com designates 40.107.244.52 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=1748455159; a=rsa-sha256; cv=pass; b=3PXsWBWSOWsr/lK0rKQFKtSwnp3ql7wZbQsZUa105IC30G4pZVBu9LnWeneQdeQgUXN8Eo l+NaFFptOzptbbRdui8SBUAVzxBHqe7Fxj+Xxu4ps2e4sNytf7PJ04rFqOERCt5I49mA2G cfAeKz+RkMWH1zEupNZf6Zc6eTVobgw= ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=cqArHbW3w4XsyllAV12NHq03FFOQQWjC451lPmSIhX0DiVcmV3LsNaLLrXk7MLlLH5a0Np7l492IJ7WhZZRpb6q7jcruNQnCSevFO/HaO66ZBQoaHeFolLNjlO/l9RmKE6zQVwWqLIkZG+BKa16gz8gNqEw8ZCTI3OAsk+Cz5HPq3aN1PwE22aijk1CMGOX2LFXuFEK6eoB/43Q1uHipxELvzH5vnw2QYKpL9tu9ytt47HsZqgXsHLzMGar7CFRj4myyk/vHs2rRAT4JvJFyUis5vNKr7KIEnz5linEa0ml19UYZOXPAcQdwicn97t4sVIm34lLtNQMMDWyCczE3yQ== 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=2kAqxDfbp0LeYo97fcorTMZ0AT2jFbuC4D8h8siZe0M=; b=Vs11AWaQSk8RBZQKyEdHrFr7L9vqlOtyCyBEzV2UODTA0kcG7ytg/7lVOwA+IuQwOyegDAe4GSjZaVNMLfN55bSuhhpLIr9Qq/+34f/Uzy5zUKSSY+KjSgBYBTUO1/SYj7bG6cRCctFKP2ZRjYWmqxRISF9o38d32VV//GbLaZcupzJnMwvpbQOslEV6Px+Xz8GvpHALd0c/dS8AV5gv0w9bF1/U9CAAe0C/PrzOVENQVZRMr1vkN5JMjnxSQWHaUmhz1wKAyjaLo8n3C/0l7crTOnGtQWjC5rt7GIN45g5f/mxsHvHm9Dt3W4bbxmC6lqf4MfhoYuXbQgVhECjePA== 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=2kAqxDfbp0LeYo97fcorTMZ0AT2jFbuC4D8h8siZe0M=; b=W9iGgAvXVMI/cO1TL6GvB1soyciMgNM/4rsetwxcOuYPo+vz5byBPWgfUG+EO64EIDQL60llE95cPFmsMLtNttS296jDQ1F5/1hEEJ/ypTURlMg29HazWsmVcXHpmVQXsqGnj/tw9D1h047cN4tMOgbHTYJi6niBo4KwuWo7jMdvKvYEgOXoCwQmmCAwGGe528qIQpnTsFCmlXC2smz4U68TaMGPDQIxBGaUwIRB5I9J2EfaBBdRR1JY3vI9QQHXCnDAZPAy14ZJOt6YcoG6xVJzXp/LPxAdQ+6f+pkFIfIlIvGD4/2tnbepf4bX7FuBkZsSlyOOR4I6Ok3R4Qw/qQ== Received: from CH3PR12MB8659.namprd12.prod.outlook.com (2603:10b6:610:17c::13) by IA0PPF8CAB220A1.namprd12.prod.outlook.com (2603:10b6:20f:fc04::bd9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8678.31; Wed, 28 May 2025 17:59:16 +0000 Received: from CH3PR12MB8659.namprd12.prod.outlook.com ([fe80::6eb6:7d37:7b4b:1732]) by CH3PR12MB8659.namprd12.prod.outlook.com ([fe80::6eb6:7d37:7b4b:1732%6]) with mapi id 15.20.8769.022; Wed, 28 May 2025 17:59:16 +0000 Date: Wed, 28 May 2025 14:59:15 -0300 From: Jason Gunthorpe To: David Hildenbrand Cc: Peter Xu , Jinjiang Tu , akpm@linux-foundation.org, lorenzo.stoakes@oracle.com, Liam.Howlett@oracle.com, vbabka@suse.cz, rppt@kernel.org, surenb@google.com, mhocko@suse.com, linux-mm@kvack.org, wangkefeng.wang@huawei.com Subject: Re: [PATCH] mm: fix COW mapping handing in generic_access_phys Message-ID: <20250528175915.GB61950@nvidia.com> References: <0d4f0180-52e6-47c9-b141-54e7e7c86880@redhat.com> <5b9f5952-9979-426f-857a-dffa9b7963af@redhat.com> <20250528162915.GR61950@nvidia.com> <8b307f83-6a16-46c1-b71b-64af9ca0f592@redhat.com> <20250528174754.GA61950@nvidia.com> Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20250528174754.GA61950@nvidia.com> X-ClientProxiedBy: MN0PR05CA0005.namprd05.prod.outlook.com (2603:10b6:208:52c::20) To CH3PR12MB8659.namprd12.prod.outlook.com (2603:10b6:610:17c::13) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CH3PR12MB8659:EE_|IA0PPF8CAB220A1:EE_ X-MS-Office365-Filtering-Correlation-Id: 316a0d37-1b64-4380-e543-08dd9e115ca4 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|7416014|376014|1800799024; X-Microsoft-Antispam-Message-Info: =?us-ascii?Q?vTPXM158subQ6G9C+ChkqP00iE5riXt7qnTSkSDBmnmPu3ZwTnimdGdW4SM2?= =?us-ascii?Q?0dB5WebpaRztrPpIQ4WbX88yacBt0z5q1iQyVgtAvFmMTd/u7tkCNNf4zUx2?= =?us-ascii?Q?rfChsuMGX97YEUvdG+Y/lrN7SiuCfiqL2pHvQu2Yl3oB1f97ZCQUUsMP/aUZ?= =?us-ascii?Q?AWqLa4q5pHVo2uArzkM7oSNnv4MxVFdvnNkEywcHmks207Va9qCcSHqmz1vs?= =?us-ascii?Q?/FkzDMCaMSux6oL1JeHThaGVNBa9No8C6NM+MJmSJ5Ej1tsObIhF1FXPkZDu?= =?us-ascii?Q?qeupBwT0jwvJ1NptltcqUDNTxzMsShr1sW/CQS2P/dnw91zva79ypMgYWghT?= =?us-ascii?Q?9ecFFdjQ+GDhs0vEEAq7rIqrHb0c/3ul0iaVPnY9VEXgJO9VWpWTwVEEMDED?= =?us-ascii?Q?kk7pxtGz0uvYevvvrRXMd53BgsylPVqk8mW/RkivpRj8qXJ4tV0ZHfw5WcqP?= =?us-ascii?Q?2/omgqsfWXty8X//jiYmqbzlVbqtGHueX4hH8tSPahKixxG3i5cCbiZ1+vjq?= =?us-ascii?Q?cqDR1Stup7hEZ2tbojAQw1VJCSdKgvS4SFCLJ7Wzcto0Kl94Jl3Z5Vh3RFJr?= =?us-ascii?Q?wc3+L19pk6/5qsZ20hwOjkCZqX+WaGm99MbVKBKrbYr4ZxWgM29ABsKXAbDs?= =?us-ascii?Q?+5hCwgGALTO3kF33spJ8x5v/g9yzHPITFQOekCtWqJpPNNRvlZu0Mbj3TtBs?= =?us-ascii?Q?VU5YFNjkowd1MPG3SXjvjmAGKLAEOLa7yFCqePPr2xW6d/AjjoiRBXSS6WhL?= =?us-ascii?Q?JFjlqB1kbT0YUrzd8Z/mXU5rjjYI7QxujodxwmnwxRwyiqUXDDxAuNx6/6pb?= =?us-ascii?Q?xfqHK3s3IWkbq7zFD9m9FLv6uqLvEQmj6DaiMhqVAFQolf3ag4DRShK+bSZd?= =?us-ascii?Q?q+YQfgAcAO8tgpBeSi3ACibvhR13QFcFUwvpt7fWBlpsjzQ4LRHGoiABvuXD?= =?us-ascii?Q?CudFWUR72He5u+JtDImNLueU6Ej+CiZYfm9fUVzlbZRliYRsGSJ4gwsq8pwB?= =?us-ascii?Q?2OF95G2Qg2HQwpX1O83AJDC2NFGLzlUB34LtDjd9IxbivSU+OCpuIQQ08MrH?= =?us-ascii?Q?uc0bn+Hpw/uQTbvh8MI7Vs80RhD5MK7JssRf5kpU4qkIHL860Dz1QY8Ucrj5?= =?us-ascii?Q?lO23wOE6veU1Y3CZLT23YFC8Pqzwhlg6YJ4DjP6TX5KGHedFWg5H3zdredc8?= =?us-ascii?Q?LADmPrZ5cY0qpR/W8hDMVasZOXOqe0fUbDbS/zG3gATfmX/SnEnHuiKG70j1?= =?us-ascii?Q?mHGwe2gELKSPNRMMpu1lGwrFCndr6WWtCChIetQp+zxJoVerm6SSFs/F4qO6?= =?us-ascii?Q?JRAnAD87Y9c+fL3DeuiwyoB079ojweE52h4L9ahUSGLCCuYwaRSNbmOILYe8?= =?us-ascii?Q?ReB9JmJFI4J1d0avWt+ri8zhcw9wXDrKyMqZunh2PRxP6BtiVQy4rHBc2/BR?= =?us-ascii?Q?oTWpQRUAnm0=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)(366016)(7416014)(376014)(1800799024);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?augMrE28ouPEnIPI1yp7Byrk4q4jxkMTM6Kk/6ZKEcajKsDUkMzp+O8cOQXf?= =?us-ascii?Q?tk+CcOMcfqu5GmCMu0Rp4OWGIKVlVlIUlpUi6n177FhKiIQRerqyM2VMNt2s?= =?us-ascii?Q?6MgqEOr6SInWX1sNpz2qcGXeXRhQZhc3NstvMCONZY0eMUoK7JZemW0RxBgA?= =?us-ascii?Q?odUjBc0bjqhLtkfJ3lTJmyxDBXnTHSaeAmpLx3rFJ/dLuMjufhSLqihq367W?= =?us-ascii?Q?8joLBnVVEIbEmJwkTAsIA/00FjO9BeiuAGTzlSibhzvlDwln+swr7Pmddc2b?= =?us-ascii?Q?6zGmn6BoswhvELN+iPPbK7fBVrvXsutS/lK4UYGPiGCoQNzMyyCGrH+fRyqj?= =?us-ascii?Q?HN6bGKd4RD5QyZQHONUmcs+e0Q70zmb3Bcs1aYYtZfYjh97aBQWwnWiNDcnj?= =?us-ascii?Q?MxFcEEgULhARrFE4LA8cdAlCuiLU6hbWUWXgvjOqiLTYtE5GzRIaq878HS08?= =?us-ascii?Q?D10Pi4D4Y8RZn67NGaLTSpUyo/krMBV7So9DzF4nHodyDB0M3E+YDUvF/HKB?= =?us-ascii?Q?FzdbOHpCt0bIoDAo0+sv4ivOMIxxMTSdMXSfU9P1J6y6Zd1OQ6go+8kXPOqx?= =?us-ascii?Q?3wlJDZhPRIo7VDWwZQOVQ4sXZuvPgGqgnBaH9tNtZOoDFVyrSxVAkcgYv9FK?= =?us-ascii?Q?kPysqvPpWpoMQbnWb864M/cHG2tiqq9Q0IgptyGT9LL0Tmtuxjgni6cfBhST?= =?us-ascii?Q?8ad0MqHhyzCQeyEVibRLR2MyjXLoMiWE+bJDn86mVOGVGIeVTGl5g9DeoeGQ?= =?us-ascii?Q?P8s+Wp9DsT5wVP1GNVT1Sp35DaKy16BbYiksC+hnpTNAHsrsbDhIQxXxuPHe?= =?us-ascii?Q?I4un0jv8Cd5KANOm8oGYrUix5m1Y4p5pb+l27NRRpfoUeaM5a6C0kFW7Smyx?= =?us-ascii?Q?ghn9oolTvo3OTbzJzA+hW3jpqGkzNB5Lxs7ILWOWs6VPZiF3HTpEARcUhMS6?= =?us-ascii?Q?giLDGFR5b3OK6Hiu/tUHLKIlIcbaaRt8lad/ldUt4aXmkJqwtnGKt2e390Dy?= =?us-ascii?Q?l/gANRK9P8kRJMEZQEXXWqTkQgIr97CXS+h4ckLmE2vngw1OlY6GToxwrknA?= =?us-ascii?Q?/hyqmZm+elVzKQqNhzNMdcXuDCG77QN5FyuWXKjsqpxWZyA0KZAD8LFaat0G?= =?us-ascii?Q?9geklXfZ0CObJBikX+feJJe5Jsy7TEBu7r+9uaiTQzL0LOp4TiE6qzhHvbF5?= =?us-ascii?Q?6vt/N64jFfFZhOizXaVRxJ2oSKmxcUWRczNEh5yvb7ayjd2PBGh4OMNPnxzs?= =?us-ascii?Q?9ly40cpfzoEfAHG7b298MMzIS2afHBiCF5pCB4ttvookh7u+fSl5LtYc7JIS?= =?us-ascii?Q?ef/5hlpyhaATYogu7IJTIMOBGFOC2ukJXb1uGCdp2xj11cW8AQVqfAaGU4Iv?= =?us-ascii?Q?q9aZQi55+q32qYYWfQtNIvjrTohALV25J6AoWBlnc13WhP8JspASfYFTJ8+A?= =?us-ascii?Q?FczVEUjDkJR4Zqd729jvbk060GgfO6zT/R8ZiHplIDMShdC7EO2CuB9WV5J1?= =?us-ascii?Q?eYFJAUJV70GVOSMRZBJDTZsiW/20LblFGwsEvVCykW1VWdgTNEMbpUuB6xk4?= =?us-ascii?Q?3IAA6RRIY8VZ6lK9c2Qk2Rot+RAdWA5pHvy/VDLN?= X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-Network-Message-Id: 316a0d37-1b64-4380-e543-08dd9e115ca4 X-MS-Exchange-CrossTenant-AuthSource: CH3PR12MB8659.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 May 2025 17:59:16.4070 (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: +H5nIY1+MtW/iETouJR/aSu9HPlH97x0eDdDervBY6OJm60LIWwi3LZHRasFnRWc X-MS-Exchange-Transport-CrossTenantHeadersStamped: IA0PPF8CAB220A1 X-Rspamd-Queue-Id: A331F40010 X-Stat-Signature: ejkwymiyoh6odwk3dk836cnib6w847re X-Rspam-User: X-Rspamd-Server: rspam04 X-HE-Tag: 1748455159-90235 X-HE-Meta: U2FsdGVkX1/BadRUDuDF4yji7P2UvC5F/MGlxZbUqIiHfub35Yn8/ICBNJwXUjCIR+kCu39LLq1E/ovDqbcsTZlfUfuMnwNYhf7Fd8pDI0s2YdopOPz76dhV63KVeUCiLy0r/AMdTWrmdG/nrFwaTqElCiqqByh+RL6apWAUJc66U4rV+eUnAluvASam/uXi8/WQhNccVJuPe6ic3/Ia8N0KDSIcE+D5pluJcTY4Upcvki7VK9f7MoYDSvwMq0TpfW51UkeUY+nb/mAjoZ6L5vtnY2iaecCEjxt32Zl9bll02oZkD5CSce39sOQ//FkHpJvDiMyCalhCXL6hVGKX27FPWE3cAl3Z0PGvHsx8/TW9DkUDl2SFI8Fe84a7KbGMg4XUX0nJKEm2ux+GmEK7coKqbv6Q2Jj30lkSAg70KuSamABrTOf4kwEldN/WvMfNtn2lBjp76q/2DcZZIdOj93ORlFKxct0j8WrXEzpB1WVFU+wZPLtyMYGYMfGf7e4JGTPV7KAKcJ61LmqDViNXcVx8sIeju/gGXXzvWwVuh+MQMcANCEUL25V1XGvcFdQYjm1qDQUhr8J/IlXDQ12O9s9hAdxV9PZm2VVSsW6EfSgVa2hOxRx9obpy6s4otjOQ6ViCFxvhxRtsiw8b/Ib62nw+zbpg20YvN0M6yFTIVGR0AkcVZMHYfmWKfsceE+n3+bPAC/9kuet6ZLMBDf6qOf5w2rCbXJ5/6/fOJP3y7wqU0uFjx87FYlJWoFVRcD5XE8APnWgdgNYujRK0duRxo3lZ7rNP4NxGvR9/TC4vAsDU7kbFa1JIZMJTIeouVfq7aviBkhEkhKFV0euhfuPcuNHu9NifD4c5F29pgmOxyndbFL7zjLELlWiJpfhE5nhgVEpM80WmtWjgJvr42Jbxs+i/NJ6iMMTveYE3gvg0aN0ecamJTL0RmMaE3l0BLoUGujOR1+RD/BWWRAogXa5 gqbZ73ZS BtCmU2EW3JYHEktfBW5AJTgN9VMltJkmwX7CpaSFfLxDwK1nKQMQBPJ8CQKy/RqIPL7TvSWtLcpoLDJaSFxESEwYVtx4azYkyEJYwczpqj9VCfNhS0Ygn3e2UXvzGpbGCuZ/TpIUeDfKTZBax6Iql3X6Qnml1f1eeyAimQwcZowUE/u7RuTmcaV/xKVACLHsL23v+xoVzRvTU4p283GxYVmdcdt5mM8aSgqEI7glY0trcP1/wh7pmCrMYWT1OubCXBYdXAdkruFC2kifz63KuFgta6qi9WtzNyLVzsQsx9xz1qdhxoBLHlq5DDoqvOk+VPolRDw1HnsU9+R9O66/mRx/2Mq/U3UaLaFDSlNarNczHRhjA5qIQnGyuZw2N9mgkItqyuQH4aQjLZg1fIo3Eq68fkemwuAc2zG7nUYNM80YQHNwwNQMMgD7RYpx29Wdw6K5ZnImPJTzd/T2ePdRYWaNPGFs0WZZnJvVH3xQ5SlLmdD95Ycaf+bixzQvSmKYjmUC9 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 Wed, May 28, 2025 at 02:47:54PM -0300, Jason Gunthorpe wrote: > On Wed, May 28, 2025 at 07:32:59PM +0200, David Hildenbrand wrote: > > On 28.05.25 18:29, Jason Gunthorpe wrote: > > > On Wed, May 28, 2025 at 12:06:07PM -0400, Peter Xu wrote: > > > > #define VM_PFNMAP 0x00000400 /* Page-ranges managed without "struct page", just pure PFN */ > > > > > > > > I'm not confident to blame any driver yet to have those special cases for > > > > VM_PFNMAP, because it only says "managed without struct page", it didn't > > > > say "it must not contain struct page".. Hence it hints the core mm "please > > > > do not manage these mappings with struct page at all". Still sounds fair > > > > contract, even if not ideal. > > > > > > I think it is pretty clear, if a VMA has VM_PFNMAP then nothing must > > > ever try to obtain a struct page from any PTEs in it, for any reason, > > > even if things in it might have a struct page. In practice it means > > > nothing can call vm_normal_page() on a VM_PFNMAP. > > > > No, not until we remove any COW mappings of VM_PFNMAP. > > I stand by the statement, the COW mapping thing is broken. Just > because it is wrong doesn't mean it is allowed to call > vm_normal_page() on VM_PFNMAP. I guess I got this backwards in my memory, the vm_normal_page() thing is specifically to fix the COW nastyness on VM_PFNMAP. So it is OK to call vm_normal_page() on both kinds of VMAs and it will return NULL if you are not allowed to touch the struct page. This is still what GUP should be doing, vm_normal_page() and if no struct page comes back then failure. It should never try to get a struct page some other way. Yes, GUP fast will be inconsistent with GUP slow on non-special arches, but that is unfixable without taking a performance hit. Jason