Memory Window allows the application to have more flexible control over remote access to its memory. It is available only on physical functions or native machines. The two types of Memory Windows supported are: type 1 and type 2B.
Memory Window is intended for situations where the application wants to:
- Grant and revoke remote access rights to a registered region in a dynamic fashion with less of a performance penalty.
- Grant different remote access rights to different remote agents and/or grant those rights over different ranges within registered region.
MW Experimental vs. RDMA-Core Verbs, Variables and Capabilities
Experimental Verbs | RDMA-Core | ||
---|---|---|---|
Verbs | |||
ibv_exp_bind_mw | ibv_bind_mw | ||
ibv_exp_post_send | bind_mw | ibv_wr_bind_mw | |
ibv_exp_reg_mr | IBV_EXP_ACCESS_MW_BIND | ibv_reg_mr | IBV_ACCESS_MW_BIND |
Capabilities and Device Attributes | |||
IBV_EXP_DEVICE_MEM_WINDOW | IBV_DEVICE_MEM_WINDOW | ||
IBV_EXP_DEVICE_MW_TYPE_2A | IBV_DEVICE_MEM_WINDOW_TYPE_2A | ||
IBV_EXP_DEVICE_MW_TYPE_2B | IBV_DEVICE_MEM_WINDOW_TYPE_2B | ||
IBV_DEVICE_MEM_MGT_EXTENSIONS | |||
Environmental Variables | |||
MLX5_SHUT_UP_MW | In RDMA-Core, it is possible to not use MW feature with the new post send API (ibv_posr_wr) |
Relevant Man Pages
ibv_wr_post: https://github.com/linux-rdma/rdma-core/blob/master/libibverbs/man/ibv_wr_post.3.md
ibv_bind_mw: https://github.com/linux-rdma/rdma-core/blob/master/libibverbs/man/ibv_bind_mw.3