Blob Blame History Raw
.\" Automatically generated by Pandoc 1.19.2.4
.\"
.TH "ibv_alloc_null_mr" "3" "2018\-6\-1" "libibverbs" "Libibverbs Programmer\[aq]s Manual"
.hy
.SH NAME
.PP
ibv_alloc_null_mr \- allocate a null memory region (MR)
.SH SYNOPSIS
.IP
.nf
\f[C]
#include\ <infiniband/verbs.h>

struct\ ibv_mr\ *ibv_alloc_null_mr(struct\ ibv_pd\ *pd);
\f[]
.fi
.SH DESCRIPTION
.PP
\f[B]ibv_alloc_null_mr()\f[] allocates a null memory region (MR) that is
associated with the protection domain \f[I]pd\f[].
.PP
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.
.PP
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.
.PP
Specifically upon \f[B]ibv_post_send()\f[] the device skips PCI read
cycles and upon \f[B]ibv_post_recv()\f[] the device skips PCI write
cycles which finally improves performance.
.PP
\f[B]ibv_dereg_mr()\f[] deregisters the MR.
The use of ibv_rereg_mr() or ibv_bind_mw() with this MR is invalid.
.SH RETURN VALUE
.PP
\f[B]ibv_alloc_null_mr()\f[] returns a pointer to the allocated MR, or
NULL if the request fails.
.SH SEE ALSO
.PP
\f[B]ibv_reg_mr\f[](3), \f[B]ibv_dereg_mr\f[](3),
.SH AUTHOR
.PP
Yonatan Cohen <yonatanc@mellanox.com>