From: Majd Dibbiny <[email protected]> Overview: Memory Windows(MW) is a method to raise the remote privileges of memory range within a Memory Region(MR).
A MW is allocated using ibv_alloc_mw, and for it to be useful it should be bound to a MR. A MW can be bound to a MR according to it's type: 1. Type 1 MW: Using ibv_bind_mw verb. 2. Type 2 MW: Posting a send work request with opcode IBV_WR_BIND_MW to a QP. The bind operation generates a new R_key with the new permissions for the MW. The advantages of MWs is the light weight generation of R_key with changing permissions. MW type 1's R_key can be invalidated by binding the MW to a MR where the length of the MW is zero. MW type 2 R_key can be invalidated by posting a send work request(WR), where the immediate data contains the MW's R_key and the opcode is on of the following: 1. IBV_WR_LOCAL_INV: to invalidate a local MW's R_key. 2. IBV_WR_SEND_WITH_INV: to invalidate a remote MW's R_key. When done, the user can unbind and deallocate the MW using ibv_dealloc_mw. For more detailed information, please refer to the manual pages. In this patch set we have three patches: Patch #1: Alignes the ibv_post_send manual page according the the header files. This update is necessary to add the MW related information afterwards. Patch #2: Adds the MW support. Patch #3: Adds Send with invalidate. This patch is necessary to the MW support to allow the users to remotely invalidate MW type 2 R_keys. Majd Dibbiny (3): Update ibv_post_send manual page Add Memory Windows support Add Send with invalidate support Makefile.am | 7 ++- include/infiniband/driver.h | 6 +++ include/infiniband/kern-abi.h | 23 ++++++++++ include/infiniband/verbs.h | 84 +++++++++++++++++++++++++++++++++---- man/ibv_alloc_mw.3 | 49 ++++++++++++++++++++++ man/ibv_bind_mw.3 | 91 +++++++++++++++++++++++++++++++++++++++++ man/ibv_inc_rkey.3 | 29 +++++++++++++ man/ibv_post_send.3 | 33 +++++++++++++++ src/cmd.c | 37 +++++++++++++++++ src/libibverbs.map | 3 + 10 files changed, 351 insertions(+), 11 deletions(-) create mode 100644 man/ibv_alloc_mw.3 create mode 100644 man/ibv_bind_mw.3 create mode 100644 man/ibv_inc_rkey.3 -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
