On Fri, Mar 08, 2024 at 04:23:42PM -0400, Jason Gunthorpe wrote: > > The DMA API callers really need to know what is P2P or not for > > various reasons. And they should generally have that information > > available, either from pin_user_pages that needs to special case > > it or from the in-kernel I/O submitter that build it from P2P and > > normal memory. > > I think that is a BIO thing. RDMA just calls with FOLL_PCI_P2PDMA and > shoves the resulting page list into in a scattertable. It never checks > if any returned page is P2P - it has no reason to care. dma_map_sg() > does all the work. Right now it does, but that's not really a good interface. If we have a pin_user_pages variant that only pins until the next relevant P2P boundary and tells you about we can significantly simplify the overall interface.