equal
deleted
inserted
replaced
|
1 .\" -*- nroff -*- |
|
2 .\" |
|
3 .TH IBV_SHARE_PD 3 2012-02-29 libibverbs "Libibverbs Programmer's Manual" |
|
4 .SH "NAME" |
|
5 ibv_share_pd \- share a protection domain (PD). |
|
6 .SH "SYNOPSIS" |
|
7 .nf |
|
8 .B #include <infiniband/verbs.h> |
|
9 .sp |
|
10 .BI "struct ibv_pd *ibv_share_pd(struct ibv_context " "*context" ", " |
|
11 .BI " struct ibv_shpd " "*shpd" ", uint64_t " "share_key"); |
|
12 .sp |
|
13 .fi |
|
14 .SH "DESCRIPTION" |
|
15 .B ibv_share_pd() |
|
16 shares the protection domain specified by a unique identifier |
|
17 .I shpd |
|
18 for the RDMA device context |
|
19 .I context\fR. |
|
20 .I share_key |
|
21 is the 64 bit key used to generate the unique identifier |
|
22 .I shpd\fR. |
|
23 .I ibv_pd\fRs created using |
|
24 .B ibv_share_pd() |
|
25 can be deallocated using |
|
26 .B ibv_dealloc_pd()\fR. |
|
27 Libibverbs keeps track of each instance of the shared PD and removes the PD from RDMA device when the last instance of the shared PD is deallocated. |
|
28 .SH "RETURN VALUE" |
|
29 .B ibv_share_pd() |
|
30 returns a pointer to the shared pd or NULL if the request fails. |
|
31 |
|
32 .SH "NOTES" |
|
33 Even though the same PD is shared by multiple contexts of an RDMA device or processes, the life span of each resource created in an 'ibv_pd' linked to a context or process is limited by the life span of that instance of 'ibv_pd'. e.g. The life span of an MR |
|
34 .I mr1 |
|
35 created under ibv_pd |
|
36 .I pd1 |
|
37 (which is an instance of shared PD |
|
38 .I shPD1\fR) |
|
39 will end whenever |
|
40 .I pd1 |
|
41 is deallocated, even though underlying |
|
42 .I shPD1 |
|
43 may continue to live on. |
|
44 .PP |
|
45 Sharing PD is not supported among 'ibv_context' created for different RDMA devices. |
|
46 .SH "SEE ALSO" |
|
47 .BR ibv_alloc_shpd (3), |
|
48 .BR ibv_dealloc_pd (3) |
|
49 |
|
50 .SH "AUTHORS" |
|
51 .TP |
|
52 Arun Kaimalettu <gotoarunk at gmail dot com> |