Skip to content

Commit 36f30e4

Browse files
yishaihjgunthorpe
authored andcommitted
IB/core: Improve ODP to use hmm_range_fault()
Move to use hmm_range_fault() instead of get_user_pags_remote() to improve performance in a few aspects: This includes: - Dropping the need to allocate and free memory to hold its output - No need any more to use put_page() to unpin the pages - The logic to detect contiguous pages is done based on the returned order, no need to run per page and evaluate. In addition, moving to use hmm_range_fault() enables to reduce page faults in the system with it's snapshot mode, this will be introduced in next patches from this series. As part of this, cleanup some flows and use the required data structures to work with hmm_range_fault(). Link: https://lore.kernel.org/r/20200930163828.1336747-2-leon@kernel.org Signed-off-by: Yishai Hadas <yishaih@nvidia.com> Signed-off-by: Leon Romanovsky <leonro@nvidia.com> Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
1 parent 2ee9bf3 commit 36f30e4

4 files changed

Lines changed: 128 additions & 196 deletions

File tree

drivers/infiniband/Kconfig

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ config INFINIBAND_ON_DEMAND_PAGING
4848
depends on INFINIBAND_USER_MEM
4949
select MMU_NOTIFIER
5050
select INTERVAL_TREE
51+
select HMM_MIRROR
5152
default y
5253
help
5354
On demand paging support for the InfiniBand subsystem.

0 commit comments

Comments
 (0)