User Manual
Rev 2.3-1.0.1
Mellanox Technologies
155
ibv_exp_rereg_mr returns 0 on success, or the value of an errno on failure (which indicates the
error reason). In case of an error, the MR is in undefined state. The user needs to call
ibv_dereg_mr in order to release it.
Please note that if the MR (Memory Region) is created as a Shared MR and a translation is
requested, after the call, the MR is no longer a shared MR. Moreover
, Re-registration of MRs that
uses Mellanox PeerDirect™ technology are not supported.
3.2.7.4 Memory Window
Memory Window allows the application to have a more flexible control over remote access to its
memory
. It is available only on physical functions / native machines The two types of Memory
Windows supported are: type 1 and type 2B.
Memory Windows are 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 dif
ferent ranges within registered region
For further information, please refer to the InfiniBand specification document.
Memory Windows API cannot co-work with peer memory clients (PeerDirect).
3.2.7.5 User-Mode Memory Registration (UMR)
User-mode Memory Registration (UMR) is currently at beta level.
User-mode Memory Registration (UMR) is a fast registration mode which uses send queue. The
UMR support enables the usage of RDMA operations and scatters the data at the remote side
through the definition of appropriate memory keys on the remote side.
UMR enables the user to:
• Create indirect memory keys from previously registered memory regions, including cre-
ation of KLM's from previous KLM's. There are not data alignment or length restrictions
associated with the memory regions used to define the new KLM's.
@access: If IBV_EXP_REREG_MR_CHANGE_ACCESS is set in flags, this field
specifies the new memory access rights, otherwise, this param-
eter is ignored. Could be one of the following:
IBV_ACCESS_LOCAL_WRITE
IBV_ACCESS_REMOTE_WRITE
IBV_ACCESS_REMOTE_READ
IBV_ACCESS_ALLOCATE_MR /* Let the library allocate the
memory for * the user, tries to get contiguous pages */
@attr: Future extensions