Re: Enabling peer to peer device transactions for PCIe devices

From: Serguei Sagalovitch
Date: Mon Nov 28 2016 - 14:35:34 EST


On 2016-11-28 01:20 PM, Logan Gunthorpe wrote:

On 28/11/16 09:57 AM, Jason Gunthorpe wrote:
On PeerDirect, we have some kind of a middle-ground solution for pinning
GPU memory. We create a non-ODP MR pointing to VRAM but rely on
user-space and the GPU not to migrate it. If they do, the MR gets
destroyed immediately.
That sounds horrible. How can that possibly work? What if the MR is
being used when the GPU decides to migrate? I would not support that
upstream without a lot more explanation..
Yup, this was our experience when playing around with PeerDirect. There
was nothing we could do if the GPU decided to invalidate the P2P
mapping.
As soon as PeerDirect mapping is called then GPU must not "move" the
such memory. It is by PeerDirect design. It is similar how it is works
with system memory and RDMA MR: when "get_user_pages" is called then the
memory is pinned.