Re: [RFC PATCH 00/28] Removing struct page from P2PDMA

2019-07-02 Thread Jason Gunthorpe
On Fri, Jun 28, 2019 at 01:35:42PM -0600, Logan Gunthorpe wrote: > > However, I'd feel more comfortable about that assumption if we had > > code to support the IOMMU case, and know for sure it doesn't require > > more info :( > > The example I posted *does* support the IOMMU case. That was case

Re: [RFC PATCH 00/28] Removing struct page from P2PDMA

2019-06-28 Thread Logan Gunthorpe
On 2019-06-28 7:38 a.m., Christoph Hellwig wrote: > On Thu, Jun 27, 2019 at 12:00:35PM -0600, Logan Gunthorpe wrote: >>> It is not. (c) is fundamentally very different as it is not actually >>> an operation that ever goes out to the wire at all, and which is why the >>> actual physical address

Re: [RFC PATCH 00/28] Removing struct page from P2PDMA

2019-06-27 Thread Jason Gunthorpe
On Thu, Jun 27, 2019 at 10:49:43AM -0600, Logan Gunthorpe wrote: > > I don't think a GPU/FPGA driver will be involved, this would enter the > > block layer through the O_DIRECT path or something generic.. This the > > general flow I was suggesting to Dan earlier > > I would say the O_DIRECT path

Re: [RFC PATCH 00/28] Removing struct page from P2PDMA

2019-06-27 Thread Christoph Hellwig
On Wed, Jun 26, 2019 at 02:45:38PM -0600, Logan Gunthorpe wrote: > > The bar info would give the exporting struct device and any other info > > we need to make the iommu mapping. > > Well, the IOMMU mapping is the normal thing the mapping driver will > always do. We'd really just need the

Re: [RFC PATCH 00/28] Removing struct page from P2PDMA

2019-06-27 Thread Christoph Hellwig
On Wed, Jun 26, 2019 at 12:31:08PM -0600, Logan Gunthorpe wrote: > > we have a hole behind len where we could store flag. Preferably > > optionally based on a P2P or other magic memory types config > > option so that 32-bit systems with 32-bit phys_addr_t actually > > benefit from the smaller and

Re: [RFC PATCH 00/28] Removing struct page from P2PDMA

2019-06-26 Thread Christoph Hellwig
On Tue, Jun 25, 2019 at 01:54:21PM -0600, Logan Gunthorpe wrote: > Well whether it's dma_addr_t, phys_addr_t, pfn_t the result isn't all > that different. You still need roughly the same 'if' hooks for any > backed memory that isn't in the linear mapping and you can't get a > kernel mapping for

Re: [RFC PATCH 00/28] Removing struct page from P2PDMA

2019-06-25 Thread Christoph Hellwig
On Mon, Jun 24, 2019 at 10:07:56AM -0600, Logan Gunthorpe wrote: > > For one passing a dma_addr_t through the block layer is a layering > > violation, and one that I think will also bite us in practice. > > The host physical to PCIe bus address mapping can have offsets, and > > those offsets

Re: [RFC PATCH 00/28] Removing struct page from P2PDMA

2019-06-25 Thread Christoph Hellwig
On Mon, Jun 24, 2019 at 10:10:16AM -0600, Logan Gunthorpe wrote: > Yes, that's correct. The intent was to invert it so the dma_map could > happen at the start of the process so that P2PDMA code could be called > with all the information it needs to make it's decision on how to map; > without

Re: [RFC PATCH 00/28] Removing struct page from P2PDMA

2019-06-24 Thread Logan Gunthorpe
On 2019-06-24 12:54 p.m., Jason Gunthorpe wrote: > On Mon, Jun 24, 2019 at 12:28:33PM -0600, Logan Gunthorpe wrote: > >>> Sounded like this series does generate the dma_addr for the correct >>> device.. >> >> This series doesn't generate any DMA addresses with dma_map(). The >> current p2pdma

Re: [RFC PATCH 00/28] Removing struct page from P2PDMA

2019-06-20 Thread Logan Gunthorpe
On 2019-06-20 5:40 p.m., Dan Williams wrote: > This seems to be the most salient point. I was missing the fact that > this replaces custom hacks and "special" pages with an explicit "just > pass this pre-mapped address down the stack". It's functionality that > might plausibly be used outside