Command Section

IBV_REREG_MR(3)         Libibverbs Programmer's Manual         IBV_REREG_MR(3)

NAME
       ibv_rereg_mr - re-register a memory region (MR)

SYNOPSIS
       #include <infiniband/verbs.h>

       int ibv_rereg_mr(struct ibv_mr *mr, int  flags,
                        struct ibv_pd * pd, void  *addr,
                        size_t  length, int  access);

DESCRIPTION
       ibv_rereg_mr() Modifies the attributes of an existing memory region
       (MR) mr.  Conceptually, this call performs the functions deregister
       memory region followed by register memory region.  Where possible,
       resources are reused instead of deallocated and reallocated.

       flags is a bit-mask used to indicate which of the following properties
       of the memory region are being modified. Flags should be a combination
       (bit field) of:

       IBV_REREG_MR_CHANGE_TRANSLATION  Change translation (location and
       length)

       IBV_REREG_MR_CHANGE_PD  Change protection domain

       IBV_REREG_MR_CHANGE_ACCESS  Change access flags

       When IBV_REREG_MR_CHANGE_PD is used, pd represents the new PD this MR
       should be registered to.
       When IBV_REREG_MR_CHANGE_TRANSLATION is used, addr.  represents the
       virtual address (user-space pointer) of the new MR, while length
       represents its length.

       The access and other flags are represented in the field access.  This
       field describes the desired memory protection attributes; it is either
       0 or the bitwise OR of one or more of ibv_access_flags.

RETURN VALUE
       ibv_rereg_mr() returns 0 on success, otherwise an error has occurred,
       enum ibv_rereg_mr_err_code represents the error as of below.
       IBV_REREG_MR_ERR_INPUT - Old MR is valid, an input error was detected
       by libibverbs.
       IBV_REREG_MR_ERR_DONT_FORK_NEW - Old MR is valid, failed via don't fork
       on new address range.
       IBV_REREG_MR_ERR_DO_FORK_OLD - New MR is valid, failed via do fork on
       old address range.
       IBV_REREG_MR_ERR_CMD - MR shouldn't be used, command error.
       IBV_REREG_MR_ERR_CMD_AND_DO_FORK_NEW - MR shouldn't be used, command
       error, invalid fork state on new address range.

NOTES
       Even on a failure, the user still needs to call ibv_dereg_mr on this
       MR.

SEE ALSO
       ibv_reg_mr(3), ibv_dereg_mr(3),

AUTHORS
       Matan Barak <matanb@mellanox.com>

       Yishai Hadas <yishaih@mellanox.com>

libibverbs                        2016-03-13                   IBV_REREG_MR(3)

Command Section

man2web Home...