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 AA838D5C0EF for ; Fri, 8 Nov 2024 15:38:51 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 3F3C66B0085; Fri, 8 Nov 2024 10:38:51 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 355AE6B0098; Fri, 8 Nov 2024 10:38:51 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 1CF946B0099; Fri, 8 Nov 2024 10:38:51 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id EEE716B0085 for ; Fri, 8 Nov 2024 10:38:50 -0500 (EST) Received: from smtpin26.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id 9D20CC0DF7 for ; Fri, 8 Nov 2024 15:38:50 +0000 (UTC) X-FDA: 82763334486.26.4B35563 Received: from mail-qk1-f173.google.com (mail-qk1-f173.google.com [209.85.222.173]) by imf16.hostedemail.com (Postfix) with ESMTP id 01B1A180013 for ; Fri, 8 Nov 2024 15:38:11 +0000 (UTC) Authentication-Results: imf16.hostedemail.com; dkim=pass header.d=ziepe.ca header.s=google header.b=L93QsZCJ; spf=pass (imf16.hostedemail.com: domain of jgg@ziepe.ca designates 209.85.222.173 as permitted sender) smtp.mailfrom=jgg@ziepe.ca; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1731080159; 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=7sMW5Kuv5sIzIjhBbBygI9fJdJpSk6eqM7+xgs0I9dY=; b=mviQJENs4kVVfIkvMnoaIcnScbG4TRdQ1kItonVO88fZw5iewygyjkmPyLvExydSHa9y4s 5XCXcgJrwE5Lh4ZbyTghgMpG89gTS06OYMeriYcAJr4A5OMG00qmkM97o2rqEPm5W0s5k7 wfcGsAUAR2KDNZzBnf2HSzKVkUI//dk= ARC-Authentication-Results: i=1; imf16.hostedemail.com; dkim=pass header.d=ziepe.ca header.s=google header.b=L93QsZCJ; spf=pass (imf16.hostedemail.com: domain of jgg@ziepe.ca designates 209.85.222.173 as permitted sender) smtp.mailfrom=jgg@ziepe.ca; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1731080159; a=rsa-sha256; cv=none; b=WdUkJrc4ZYJ7bAj7T631d8aXLfNMrML3eXqZOeEYTNCJ1UIsO5PATeKW3Pj7bxbPyCKkRj Vix5V25rzisG4ET2XpaUNVyp1HWO5N1qAw6+Ekz4aqxZL7/B3P6gpJTUQQwjzIxL6xoxNS 0V5APHPwon9g/qg95bR4CMIB4nsBSKU= Received: by mail-qk1-f173.google.com with SMTP id af79cd13be357-7b148919e82so124647585a.0 for ; Fri, 08 Nov 2024 07:38:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ziepe.ca; s=google; t=1731080328; x=1731685128; darn=kvack.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=7sMW5Kuv5sIzIjhBbBygI9fJdJpSk6eqM7+xgs0I9dY=; b=L93QsZCJ9v2KYPO0E/Ohi9TV0Fzff4E4DTtlEpuo9BwoZLwovciJ/SW4Iji8Fwe0m9 2Tcpf2xlpWRzTbr0fh9kTtZQVr1UpzfyCM9SYgSRX5RZal9KDZEEXVlkfGFL/R5rRCMw yM1VcJ1LcDKBc+wJ81G9WJpEQRAMUnspqjgXDKLGCFC2pSqPtjDKSZ6wmkiIOFAu+a5p DwwTukuX7Q2qZVCGysKHukxoj3gIDZ0yG2KQ/8qu3m4iwuHj9m+RhnByxXN8UFCPPGn5 vn9m/hT31HrnkBMmXgz6BmWtYui/JlieMXtxiCY7NzazxttQoFuja0ijJHIMwVyh87DD Hrcw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1731080328; x=1731685128; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=7sMW5Kuv5sIzIjhBbBygI9fJdJpSk6eqM7+xgs0I9dY=; b=E75H1RbPiRpo3eE9ORGv0vqmpVizPPyA37+t1E14gaqh+xbC16v0Czq8rGjFEXI7cc VdOQxxsF87fCBSsO/pP0GSwBx25ZXEccHj46Qxd6ocH6tjvmNFEieaVrz0T9jbXVrn+m 5/HKLN9imuSE9CDx6jN/bvWRiRwKM2NdJmiBI5J0wi/jDNnu39/KzQhq2M4YFGkZup3d BFLfnvLJz2EZ+yU3yRG8LQhejaTlXhiruwDbb2BE9x04ph/FXEmUPBcxo6hMp+xGYtIe j4NbL7NzSx/qlL476oF7+xhVLgJgSaGoX8okdd8Onc8lgDLq/VAurRaOs9tktnWGU4VF GQBQ== X-Forwarded-Encrypted: i=1; AJvYcCX+JJ8B5dlq9EPrfnS5xyk4C48tr6AcgSPWHwkbIY51qn5dTE+wHUB0vqIxCDihMQzkPmtn0cvFYg==@kvack.org X-Gm-Message-State: AOJu0YzxEbntI9HLhQVmLfT4odCZiORGNvoHK7jzfXHp2SSU09NPkunC zaZ7nmDnZJwmbyOnluTaLIlot5Qwf8GaHk4gVOp+E8a3Me1efnYSVoVNX0kEBVw= X-Google-Smtp-Source: AGHT+IHfTg/iLCK5GxrqZ9aoCzAZ7JH1FinF3HAR4KRwwnugOPp1CtA3KrYQyOs3W/lc98NgBjpBFQ== X-Received: by 2002:a05:620a:1a21:b0:7ac:bb00:cd42 with SMTP id af79cd13be357-7b331dd2d55mr406755285a.27.1731080327649; Fri, 08 Nov 2024 07:38:47 -0800 (PST) Received: from ziepe.ca (hlfxns017vw-142-68-128-5.dhcp-dynamic.fibreop.ns.bellaliant.net. [142.68.128.5]) by smtp.gmail.com with ESMTPSA id af79cd13be357-7b32ac2dd1fsm170869085a.15.2024.11.08.07.38.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 08 Nov 2024 07:38:47 -0800 (PST) Received: from jgg by wakko with local (Exim 4.97) (envelope-from ) id 1t9R4Q-00000002a9N-29Xq; Fri, 08 Nov 2024 11:38:46 -0400 Date: Fri, 8 Nov 2024 11:38:46 -0400 From: Jason Gunthorpe To: Christoph Hellwig Cc: Robin Murphy , Leon Romanovsky , Jens Axboe , Joerg Roedel , Will Deacon , Sagi Grimberg , Keith Busch , Bjorn Helgaas , Logan Gunthorpe , Yishai Hadas , Shameer Kolothum , Kevin Tian , Alex Williamson , Marek Szyprowski , =?utf-8?B?SsOpcsO0bWU=?= Glisse , Andrew Morton , Jonathan Corbet , linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org, linux-block@vger.kernel.org, linux-rdma@vger.kernel.org, iommu@lists.linux.dev, linux-nvme@lists.infradead.org, linux-pci@vger.kernel.org, kvm@vger.kernel.org, linux-mm@kvack.org, matthew.brost@intel.com, Thomas.Hellstrom@linux.intel.com, brian.welty@intel.com, himal.prasad.ghimiray@intel.com, krishnaiah.bommu@intel.com, niranjana.vishwanathapura@intel.com Subject: Re: [PATCH v1 00/17] Provide a new two step DMA mapping API Message-ID: <20241108153846.GO35848@ziepe.ca> References: <3567312e-5942-4037-93dc-587f25f0778c@arm.com> <20241104095831.GA28751@lst.de> <20241105195357.GI35848@ziepe.ca> <20241107083256.GA9071@lst.de> <20241107132808.GK35848@ziepe.ca> <20241107135025.GA14996@lst.de> <20241108150226.GM35848@ziepe.ca> <20241108150500.GA10102@lst.de> <20241108152537.GN35848@ziepe.ca> <20241108152956.GA12130@lst.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20241108152956.GA12130@lst.de> X-Rspamd-Server: rspam09 X-Rspamd-Queue-Id: 01B1A180013 X-Stat-Signature: yy8fh17zzgwpzdw3bbe8597nq3uagr4t X-Rspam-User: X-HE-Tag: 1731080291-177881 X-HE-Meta: U2FsdGVkX1+cRYZVlYW/tE5AJ7A+QPShZwtFINL2Ak5aob08x9/C9ZVporsCUJtVrheDx2tzKwxjGzLCnhgYgvAedRj4PWKZmsDyNYbUuy2tkpNjqaf0Dcep69I/YL91n65vNUSA7ALxOP7TBbsRwiCQyMDJ5WtqWvXwRlHxgSKgMtEQ7VtXrG05mBYdTSZ0575MjWr3M97BVQBsxqt75nlIBXzzutSnjH0ywzfaywh9koQw11rKVDSQV8C/K37AAW4TZ6NBYJrpMvcsyJMrfjujCNv8J87TU/o4wrKf9r5u9QdedgSmXLksaCkG7LXKfQiKsU+JaZwafUDkzDV+RUabL4iRTENjYiA1R4dpM9NB/bxX5PbS5AqTFDnQLMUVA/HpOvEGtcHbDfRR2FxzK745BaKCqkB7unPyQcv5TJxRuqGUbfSkFYpDCUGvsKH6CWqw0LE+/PdyqCko4VIw41VH47avBTswT26LfixF1D3YLewdDe48VFXVR+X/BLi+4ytjPUODq7eWDdr2B5bx+xjVi2Q47i+46eCSGcJk8WHAVopeOx+PT863V24tpDaEZhorzriG1T4zOX26uSLGnlplmMfTvO6cFV3NJxlNM3wnpl7CVXduCaO+wKwGZtaLTsXfuXYOlxpPaPkZiKeRE2Z2inE5y7Oe2ip4ba6IcM3GyvhzXYHOJ9iczkQ3rx1nRt3T+CM8comJ8U3kw09OgDNy9hMZqDUf0kO19LBHRAizh6uUIlXXW7Pbc4r+8OBgBTo6bqIEaH5H8F4ymwILO9VM8QTAACLdQif/bqK1NDHMae/vGRVBMAgaySgNcR3ByDX4J8V0k8rcFZzxYUa/84PI+uqWHAmBg+Aq4mF9O3mLeJp0NOLGui3vqNvw9lyxW8mFoAU26E2cFzp2ttemNCV74m6VnLjDLadVpPPlMUWofVcOun4GJ1+ABQhGMUiZw9aTHb21Knjv+UZmr7b zTnynRJL muUWto4xdbN+h5TOoHdAUSnS/NPgWg+aY8spsyGK9+Bw35MxoM2BYjAoMB1ntATkEmd53D52OggIrj7bdrhDqY5aIFMUXcUVjMdhDjHBg2Q39y+giDS1flsNW7HCgm7OvA46BhVGWvdVp9kI4d2hsSd5XcZm+PH08/PUIM3ntsy007xzwAmFlRVraV7lbp+8kJZvHeRd/5qQ+pr+wg2mhFzmI5UiBjJfkNCYyBSobJ6knCAPFXyV3FzfVAp1aZt6Uao5g62Ue4H4wQIKMXNYJNvDykjr/pgLOhWZd 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, Nov 08, 2024 at 04:29:56PM +0100, Christoph Hellwig wrote: > On Fri, Nov 08, 2024 at 11:25:37AM -0400, Jason Gunthorpe wrote: > > I'm asking how it will work if you change the struct page argument to > > physical, because today dma_direct_map_page() has: > > > > if (is_pci_p2pdma_page(page)) > > return DMA_MAPPING_ERROR; > > > > Which is exactly the sorts of things I'm looking at when when I say to > > get rid of struct page. > > It will have to look up the page from the physical address obviously. > But at least only in the error path. I'm thinking we can largely avoid searching on physical, or at least we can optimize this so there is only one search on physical at the start of the DMA mapping. (since we are now saying all pages are the same type) > > What I'm thinking about is replacing code like the above with something like: > > > > if (p2p_provider) > > return DMA_MAPPING_ERROR; > > > > And the caller is the one that would have done is_pci_p2pdma_page() > > and either passes p2p_provider=NULL or page->pgmap->p2p_provider. > > And where do you get that one from? Which one? The caller must know the p2p properties of what it is doing because it is driving all the P2P logic around what APIs to call. Either because it is already working with struct page and gets it out of the pgmap. Or it is working with non-struct page memory and has a (MMIO address, p2p_provider) tuple that it got from the original driver that gave it the MMIO address. Or it really does have a naked phys_addr_t and it did the search on physical, but only once. Jason