Messages in this thread | | | From | Dan Williams <> | Date | Tue, 18 Apr 2017 14:36:06 -0700 | Subject | Re: [RFC 0/8] Copy Offload with Peer-to-Peer PCI Memory |
| |
On Tue, Apr 18, 2017 at 2:22 PM, Jason Gunthorpe <jgunthorpe@obsidianresearch.com> wrote: > On Tue, Apr 18, 2017 at 02:11:33PM -0700, Dan Williams wrote: >> > I think this opens an even bigger can of worms.. >> >> No, I don't think it does. You'd only shim when the target page is >> backed by a device, not host memory, and you can figure this out by a >> is_zone_device_page()-style lookup. > > The bigger can of worms is how do you meaningfully stack dma_ops.
This goes back to my original comment to make this capability a function of the pci bridge itself. The kernel has an implementation of a dynamically created bridge device that injects its own dma_ops for the devices behind the bridge. See vmd_setup_dma_ops() in drivers/pci/host/vmd.c.
> What does the p2p provider do when it detects a p2p page?
Check to see if the arch requires this offset translation that Ben brought up and if not provide the physical address as the patches are doing now.
| |