1ibv_alloc_null_mr(3)    Libibverbs Programmer’s Manual    ibv_alloc_null_mr(3)
2
3
4

NAME

6       ibv_alloc_null_mr - allocate a null memory region (MR)
7

SYNOPSIS

9              #include <infiniband/verbs.h>
10
11              struct ibv_mr *ibv_alloc_null_mr(struct ibv_pd *pd);
12

DESCRIPTION

14       ibv_alloc_null_mr() allocates a null memory region (MR) that is associ‐
15       ated with the protection domain pd.
16
17       A null MR discards all data written to it,  and  always  returns  0  on
18       read.   It has the maximum length and only the lkey is valid, the MR is
19       not exposed as an rkey.
20
21       A device should implement the null MR in a way that bypasses PCI trans‐
22       fers, internally discarding or sourcing 0 data.  This provides a way to
23       avoid PCI bus transfers by using a scatter/gather list in  commands  if
24       applications  do  not  intend  to access the data, or need data to be 0
25       filled.
26
27       Specifically upon ibv_post_send() the device skips PCI read cycles  and
28       upon  ibv_post_recv()  the  device skips PCI write cycles which finally
29       improves performance.
30
31       ibv_dereg_mr() deregisters  the  MR.   The  use  of  ibv_rereg_mr()  or
32       ibv_bind_mw() with this MR is invalid.
33

RETURN VALUE

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

SEE ALSO

39       ibv_reg_mr(3), ibv_dereg_mr(3),
40

AUTHOR

42       Yonatan Cohen <yonatanc@mellanox.com>
43
44
45
46libibverbs                         2018-6-1               ibv_alloc_null_mr(3)
Impressum