dwww Home | Manual pages | Find package

ibv_alloc_null_mr(3)    Libibverbs Programmer’s Manual    ibv_alloc_null_mr(3)

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 associ-
       ated 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 trans-
       fers, 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>

libibverbs                         2018-6-1               ibv_alloc_null_mr(3)

Generated by dwww version 1.14 on Fri Jan 24 06:33:06 CET 2025.