On Wed, Sep 30, 2020 at 07:38:24PM +0300, Leon Romanovsky wrote: > This series improves ODP performance by moving to use the HMM API as of below. > > The get_user_pages_remote() functionality was replaced by HMM: > - No need anymore to allocate and free memory to hold its output per call. > - No need anymore to use the put_page() to unpin the pages. > - The logic to detect contiguous pages is done based on the returned order > from HMM, no need to run per page, and evaluate. > > Moving to use the HMM enables to reduce page faults in the system by using the > snapshot mode. This mode allows existing pages in the CPU to become presented > to the device without faulting. > > This non-faulting mode may be used explicitly by an application with some new > option of advice MR (i.e. PREFETCH_NO_FAULT) and is used upon ODP MR > registration internally as part of initiating the device page table. > > To achieve the above, internal changes in the ODP data structures were done > and some flows were cleaned-up/adapted accordingly. > > Thanks > > Yishai Hadas (4): > IB/core: Improve ODP to use hmm_range_fault() > IB/core: Enable ODP sync without faulting > RDMA/mlx5: Extend advice MR to support non faulting mode > RDMA/mlx5: Sync device with CPU pages upon ODP MR registration Applied to for-next, thanks Jason