This series from Yonatan introduces the NULL MR type and its related verbs. It is used to force local HCA operations to skip the PCI bus access, while keeping track of the processed length in the ibv_sge handling. Meaning, instead of a PCI write access the HCA leaves the target memory untouched, and skips filling that packet section. Similar behavior is done upon send, the HCA skips data which is pointed by that NULL MR and saves PCI bus access. This functionality saves PCI read/write operations and improve performance. The matching kernel part was sent into rdma-next few days ago. PR: https://github.com/linux-rdma/rdma-core/pull/351 Yishai Jason Gunthorpe (1): verbs: Do not use struct ibv_context_ops within the .c files Yishai Hadas (1): Update kernel headers Yonatan Cohen (3): verbs: Replace ibv_mr with verbs_mr verbs: Add alloc_null_mr verb mlx5: Add support for ibv_alloc_null_mr kernel-headers/rdma/mlx5-abi.h | 6 +- kernel-headers/rdma/mlx5_user_ioctl_cmds.h | 73 +++++++++++++++++++++++ libibverbs/cmd.c | 30 +++++----- libibverbs/cmd_dm.c | 18 +++--- libibverbs/cmd_fallback.c | 3 +- libibverbs/device.c | 16 ++--- libibverbs/driver.h | 28 +++++++-- libibverbs/dummy_ops.c | 95 ++++++++++++++++++++---------- libibverbs/ibverbs.h | 14 ++++- libibverbs/man/CMakeLists.txt | 1 + libibverbs/man/ibv_alloc_null_mr.3.md | 55 +++++++++++++++++ libibverbs/verbs.c | 55 +++++++++-------- libibverbs/verbs.h | 84 +++++++++++++------------- providers/bnxt_re/main.h | 2 +- providers/bnxt_re/verbs.c | 10 ++-- providers/bnxt_re/verbs.h | 2 +- providers/cxgb3/iwch.h | 8 +-- providers/cxgb3/verbs.c | 20 +++---- providers/cxgb4/libcxgb4.h | 8 +-- providers/cxgb4/verbs.c | 18 +++--- providers/hfi1verbs/hfiverbs.h | 2 +- providers/hfi1verbs/verbs.c | 18 +++--- providers/hns/hns_roce_u.h | 4 +- providers/hns/hns_roce_u_verbs.c | 22 +++---- providers/i40iw/i40iw_umain.h | 6 +- providers/i40iw/i40iw_uverbs.c | 43 +++++++------- providers/ipathverbs/ipathverbs.h | 2 +- providers/ipathverbs/verbs.c | 18 +++--- providers/mlx4/mlx4.h | 4 +- providers/mlx4/verbs.c | 24 ++++---- providers/mlx5/mlx5.c | 13 ++++ providers/mlx5/mlx5.h | 11 ++-- providers/mlx5/qp.c | 27 +++++++-- providers/mlx5/verbs.c | 52 ++++++++++++---- providers/mthca/ah.c | 2 +- providers/mthca/mthca.h | 2 +- providers/mthca/verbs.c | 36 +++++------ providers/nes/nes_umain.h | 6 +- providers/nes/nes_uverbs.c | 39 ++++++------ providers/ocrdma/ocrdma_main.h | 4 +- providers/ocrdma/ocrdma_verbs.c | 12 ++-- providers/qedr/qelr.h | 2 +- providers/qedr/qelr_main.h | 2 +- providers/qedr/qelr_verbs.c | 18 +++--- providers/qedr/qelr_verbs.h | 2 +- providers/rxe/rxe.c | 19 +++--- providers/vmw_pvrdma/pvrdma.h | 2 +- providers/vmw_pvrdma/verbs.c | 18 +++--- 48 files changed, 611 insertions(+), 345 deletions(-) create mode 100644 libibverbs/man/ibv_alloc_null_mr.3.md -- 1.8.3.1 -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html