On Tue, Oct 06, 2020 at 12:49:56PM -0300, Jason Gunthorpe wrote: > On Tue, Oct 06, 2020 at 11:22:14AM +0200, Daniel Vetter wrote: > > > > For reinstanting the pages you need: > > > > - dma_resv_lock, this prevents anyone else from issuing new moves or > > anything like that > > - dma_resv_get_excl + dma_fence_wait to wait for any pending moves to > > finish. gpus generally don't wait on the cpu, but block the dependent > > dma operations from being scheduled until that fence fired. But for rdma > > odp I think you need the cpu wait in your worker here. > > Reinstating is not really any different that the first insertion, so > then all this should be needed in every case? Yes. Without move_notify we pin the dma-buf into system memory, so it can't move, and hence you also don't have to chase it. But with move_notify this all becomes possible. -Daniel -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch