On Wed, Nov 23, 2016 at 9:27 AM, Bart Van Assche
On 11/23/2016 09:13 AM, Logan Gunthorpe wrote:
> IMO any memory that has been registered for a P2P transaction should be
> locked from being evicted. So if there's a get_user_pages call it needs
> to be pinned until the put_page. The main issue being with the RDMA
> case: handling an eviction when a chunk of memory has been registered as
> an MR would be very tricky. The MR may be relied upon by another host
> and the kernel would have to inform user-space the MR was invalid then
> user-space would have to tell the remote application.
Are you aware that the Linux kernel already supports ODP (On Demand Paging)?
See also the output of git grep -nHi on.demand.paging. See also
I don't think that was designed for the case where the backing memory
is a special/static physical address range rather than anonymous
"System RAM", right?
I think we should handle the graphics P2P concerns separately from the
general P2P-DMA case since the latter does not require the higher
order memory management facilities. Using ZONE_DEVICE/DAX mappings to
avoid changes to every driver that wants to support P2P-DMA separately
from typical DMA still seems the path of least resistance.