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 4AA0FC83F1A for ; Mon, 21 Jul 2025 13:23:23 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id C873E6B0095; Mon, 21 Jul 2025 09:23:22 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id C5F856B0096; Mon, 21 Jul 2025 09:23:22 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id B9C3A6B0098; Mon, 21 Jul 2025 09:23:22 -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 A91E76B0095 for ; Mon, 21 Jul 2025 09:23:22 -0400 (EDT) Received: from smtpin14.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 589DD16065E for ; Mon, 21 Jul 2025 13:23:21 +0000 (UTC) X-FDA: 83688338202.14.43C9C3B Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf06.hostedemail.com (Postfix) with ESMTP id 2E1C8180002 for ; Mon, 21 Jul 2025 13:23:18 +0000 (UTC) Authentication-Results: imf06.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=T3eT+XSs ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1753104199; 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=6M2lfrqiVCmiF0Wc9FAkpPta+B8beY73GHDzTT0mJuM=; b=mR4N4C2Sn1b06YX2ADudNy97BnoM0CpWRtDH/xHJBzyFW8R1xDPZ5BBMvBB810s5CNvPxR Lt0v+6ZXHNSjNCToAJk1afdqUyLo7DXocIIAGS48kribET5IzR/s/SmS4uUznGts4zubyI Sp8zaaAQXgDKNXBfdkE/eFo0rYKwnwo= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1753104199; a=rsa-sha256; cv=none; b=dE+IlHJHOi3iQMY0DoJQopWF7xnKdkQGpszO+NFMZ+HGIDM2kXL3pfav/iENqP+EhzKWjH 3+Mg/le7cwxxZzhKiHcUk+MWyh8JR6hWCFAie5aokOrEAw1i31uVuQaWpAW/r++Y0avw40 9VJXx+BunEqeaywvt+lo9kya/4Knbxs= ARC-Authentication-Results: i=1; imf06.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=T3eT+XSs; spf=none (imf06.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org; dmarc=none DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=In-Reply-To:Content-Type:MIME-Version: References:Message-ID:Subject:Cc:To:From:Date:Sender:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description; bh=6M2lfrqiVCmiF0Wc9FAkpPta+B8beY73GHDzTT0mJuM=; b=T3eT+XSsrzwbV1XqZcbUbrh7LZ H776ohxzo3FqBHlR9iUOMKsWSekI3pZ2M4Q7fI3qVGcz8XFiL3A0Yco+hW77J4VJd3rKMznaLp8yp MhkgVuYw+ssT8lWfZ9qJ5xN1I2wjh7NvJujhQpqfQm5ICcjwsvs0nSZJrBnvpAO6PuAGQZcA87TEN UPVibCOP1YOVHX5l2Zwpe0VC6AATkYZ4hZKzd70J5wAi2Nm0jXmh5tW/s8Uk1NdxUopZSV1scRPsx g0lzFIdaw3LFkEtZ3C62ZL7TK8ZXrnvYG7yTpAuzxv+1TZqlQkkSpJdv1B8ROa/69QRxMtWJapMgs ky127NWw==; Received: from willy by casper.infradead.org with local (Exim 4.98.2 #2 (Red Hat Linux)) id 1udqU5-0000000D9wk-1SEe; Mon, 21 Jul 2025 13:23:13 +0000 Date: Mon, 21 Jul 2025 14:23:13 +0100 From: Matthew Wilcox To: Jason Gunthorpe Cc: Yonatan Maman , =?iso-8859-1?B?Suly9G1l?= Glisse , Andrew Morton , Leon Romanovsky , Lyude Paul , Danilo Krummrich , David Airlie , Simona Vetter , Alistair Popple , Ben Skeggs , Michael Guralnik , Or Har-Toov , Daisuke Matsuda , Shay Drory , linux-mm@kvack.org, linux-rdma@vger.kernel.org, dri-devel@lists.freedesktop.org, nouveau@lists.freedesktop.org, linux-kernel@vger.kernel.org, Gal Shalom Subject: Re: [PATCH v2 1/5] mm/hmm: HMM API to enable P2P DMA for device private pages Message-ID: References: <20250718115112.3881129-1-ymaman@nvidia.com> <20250718115112.3881129-2-ymaman@nvidia.com> <20250718144442.GG2206214@ziepe.ca> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20250718144442.GG2206214@ziepe.ca> X-Rspamd-Queue-Id: 2E1C8180002 X-Rspam-User: X-Rspamd-Server: rspam09 X-Stat-Signature: 5fzncfe9thoia6afqp5rgtykmmckhr1o X-HE-Tag: 1753104198-263092 X-HE-Meta: U2FsdGVkX1/9fBI7PxKi49YLoyR2QhTuMj7zl+ii/639sF6NzYUuA/9627RKsZ30Nb9iaMPhc/o6LEoK2peEaFPKwYDKqDjM+J/9Pru3pomumUw+L6UuSusfbmKrJrJCNSMLOytgIAdO9dpM58qi1f6AJt4ugABvfV7lJ2diJKa+jo+AQF/ILSVccveO4qxNrfITstvVYX+tWMe7C42U6rR2MrIcRsAMgSSV0kFeg7L88zQefXCWmjGXEV6IsBuM/w9XI6DyxevNWCF8S1oEnTw5hOnJtdZTSz8wya415qz0C7vhFXNMDZxNmGvSixLrr7caVZ755BhAyd41So9uO73bLbCoLf6jCSiBvf8uf+edLTrAG43PsM2/A9jin6RvKzDAgOTA0Jlbe0mkLLwNGOuZUZgqfALv1AKliftzzs7FJT8oh0Z87nlx2HVTXnY7u1RfnpHH782W22dxTDW/AzYBkgh0ar6ZoEiz9756y3aAksrzkT/2fL8vrRcE3jzzQj2y4QgG2LvQH+qzT9IXZUvqj5ZfVIlOOq7a/ukCIzxXYlStqgOOMUX5fIc2QhbFoGidlZHdmWSUeK00VvyodsZfgST/TWKjO0XG0TA7H9ttwx15jRXoVAIAUwnx1a9wipkO6XasKSYmfGbk6LaK6S2kzWmUGFTb//4SWF8Uxgksu75JiYCnnYnXIRsE9QGw+CYETgSQSzoAbTtQtF5IrnXJ8Nr6+ZdkXp6RrwGaMuS21W2aLuWKZSdgCuHLrh9oeVxbuT//VVvkU8tt27HE7wukFPlmuHZ0jWqS626arJ5uu2EwCI0Tj33A1M2Lg247CQRMaz+Rh1LThKB/j9Ov1t2vpNPJDqZlSOC/1FSFsfdwWTVFyRa+sh0IIGXT/CQIJ4cACsgP2rAlEYnrhROmX8fzFQ4BzJl9nE5xVRkD9nc7hQJWmDBZbWUZrZBE1SmRrLkm9KKuaT9tc8VHvL+ 88ysTPdb aVdpmRZso32aLKS+5/0lDpzYJW2i6rTsuLzciIxnDPP4YIfbgBl7nsoQC6KJRYO/cXaAzxgukPGi3FKAgh76+x47hFJSYy9djBwUep4mq78GdZsvQ87DX/x8kQR9kebcAoIouGBggwoKCpDj3nDmDHBLrMde2frW+G5GPxhx2Rlpo6Z/hzV3QsPTlHg== 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, Jul 18, 2025 at 11:44:42AM -0300, Jason Gunthorpe wrote: > On Fri, Jul 18, 2025 at 03:17:00PM +0100, Matthew Wilcox wrote: > > On Fri, Jul 18, 2025 at 02:51:08PM +0300, Yonatan Maman wrote: > > > +++ b/include/linux/memremap.h > > > @@ -89,6 +89,14 @@ struct dev_pagemap_ops { > > > */ > > > vm_fault_t (*migrate_to_ram)(struct vm_fault *vmf); > > > > > > + /* > > > + * Used for private (un-addressable) device memory only. Return a > > > + * corresponding PFN for a page that can be mapped to device > > > + * (e.g using dma_map_page) > > > + */ > > > + int (*get_dma_pfn_for_device)(struct page *private_page, > > > + unsigned long *dma_pfn); > > > > This makes no sense. If a page is addressable then it has a PFN. > > If a page is not addressable then it doesn't have a PFN. > > The DEVICE_PRIVATE pages have a PFN, but it is not usable for > anything. OK, then I don't understand what DEVICE PRIVATE means. I thought it was for memory on a PCIe device that isn't even visible through a BAR and so the CPU has no way of addressing it directly. But now you say that it has a PFN, which means it has a physical address, which means it's accessible to the CPU. So what is it? > This is effectively converting from a DEVICE_PRIVATE page to an actual > DMA'able address of some kind. The DEVICE_PRIVATE is just a non-usable > proxy, like a swap entry, for where the real data is sitting. > > Jason >