oracular (3) ibv_alloc_null_mr.3.gz

Provided by: libibverbs-dev_52.0-2ubuntu1_amd64 bug

NAME

       ibv_alloc_null_mr - allocate a null memory region (MR)

SYNOPSIS

              #include <infiniband/verbs.h>

              struct ibv_mr *ibv_alloc_null_mr(struct ibv_pd *pd);

DESCRIPTION

       ibv_alloc_null_mr() allocates a null memory region (MR) that is associated with the protection domain pd.

       A  null  MR discards all data written to it, and always returns 0 on read.  It has the maximum length and
       only the lkey is valid, the MR is not exposed as an rkey.

       A device should implement the null MR in a way that bypasses  PCI  transfers,  internally  discarding  or
       sourcing  0  data.   This  provides  a  way  to avoid PCI bus transfers by using a scatter/gather list in
       commands if applications do not intend to access the data, or need data to be 0 filled.

       Specifically upon ibv_post_send() the device skips PCI read cycles and upon  ibv_post_recv()  the  device
       skips PCI write cycles which finally improves performance.

       ibv_dereg_mr() deregisters the MR.  The use of ibv_rereg_mr() or ibv_bind_mw() with this MR is invalid.

RETURN VALUE

       ibv_alloc_null_mr() returns a pointer to the allocated MR, or NULL if the request fails.

SEE ALSO

       ibv_reg_mr(3), ibv_dereg_mr(3),

AUTHOR

       Yonatan Cohen <yonatanc@mellanox.com>