Overview ======== Today rdma applications can register memory region (MR), deregister and reregister it. This patch set introduce a new ibv_advise_mr() verb that will be used to give advice or directions to the kernel about an address range that belongs to a MR. Motivation ========== Performance - applications that are aware of future access patterns can use this verb in order to leverage this knowledge to improve system or application performance. One example is for pre-fetching a range part of an on-demand paging MR. On-demand-paging (ODP) is a technique to alleviate much of the shortcomings of memory registration. The main idea is that applications no longer pin down the underlying physical pages of the address space and need not track the validity of the mappings. Rather, the HCA requests the latest translations from the OS when pages are not present, and the OS invalidates translations which are no longer valid due to mapping changes. Pre-fetching ODP address ranges, therefore make them present before the actual IO is conducted. This would provide a way to reduce latency by overlapping paging-in and either compute time or IO to other ranges. This RFC patch set includes the following: - Detailed man page for the new ibv_advise_mr verb. - The initial code implementation for the new verb in libibverbs to demonstrate the expected code and usage. Moni, Aviad, Yishai. Moni Shoua (3): Update kernel headers verbs: Add helper for command interface verbs: Introduce ibv_advise_mr verb kernel-headers/rdma/ib_user_ioctl_cmds.h | 8 ++ kernel-headers/rdma/ib_user_ioctl_verbs.h | 9 +++ libibverbs/CMakeLists.txt | 1 + libibverbs/cmd_ioctl.h | 3 + libibverbs/cmd_mr.c | 57 ++++++++++++++ libibverbs/driver.h | 10 +++ libibverbs/dummy_ops.c | 11 +++ libibverbs/libibverbs.map.in | 1 + libibverbs/man/CMakeLists.txt | 1 + libibverbs/man/ibv_advise_mr.3.md | 125 ++++++++++++++++++++++++++++++ libibverbs/verbs.h | 28 +++++++ libibverbs/verbs_api.h | 6 ++ 12 files changed, 260 insertions(+) create mode 100644 libibverbs/cmd_mr.c create mode 100644 libibverbs/man/ibv_advise_mr.3.md -- 1.8.3.1