1dat_lmr_sync_rdma_reDaidr(e3cDtATA)ccess Transport LibrarydFautn_cltmiro_nssync_rdma_read(3DAT)
2
3
4
6 dat_lmr_sync_rdma_read - synchronize local memory with RDMA read on
7 non-coherent memory
8
10 cc [ flag... ] file... -ldat [ library... ]
11 #include <dat/udat.h>
12
13 DAT_RETURN
14 dat_lmr_sync_rdma_read (
15 IN DAT_IA_HANDLE ia_handle,
16 IN const DAT_LMR_TRIPLET *local_segments,
17 IN DAT_VLEN num_segments
18 )
19
20
22 ia_handle A handle for an open instance of the IA.
23
24
25 local_segments An array of buffer segments.
26
27
28 num_segments The number of segments in the local_segments argu‐
29 ment.
30
31
33 The dat_lmr_sync_rdma_read() function makes memory changes visible to
34 an incoming RDMA Read operation. This operation guarantees consistency
35 by locally flushing the non-coherent cache prior to it being retrieved
36 by remote peer RDMA read operations.
37
38
39 The dat_lmr_sync_rdma_read() function is needed if and only if the
40 Provider attribute specifies that this operation is needed prior to an
41 incoming RDMA Read operation. The Consumer must call
42 dat_lmr_sync_rdma_read() after modifying data in a memory range in this
43 region that will be the target of an incoming RDMA Read operation. The
44 dat_lmr_sync_rdma_read() function must be called after the Consumer has
45 modified the memory range but before the RDMA Read operation begins.
46 The memory range that will be accessed by the RDMA read operation must
47 be supplied by the caller in the local_segments array. After this call
48 returns, the RDMA Read operation can safely see the modified contents
49 of the memory range. It is permissible to batch synchronizations for
50 multiple RDMA Read operations in a single call by passing a local_seg‐
51 ments array that includes all modified memory ranges. The local_seg‐
52 ments entries need not contain the same LMR and need not be in the same
53 Protection Zone.
54
55
56 If the Provider attribute specifying that this operation is required
57 attempts to read from a memory range that is not properly synchronized
58 using dat_lmr_sync_rdma_read(), the returned contents are undefined.
59
61 DAT_SUCCESS The operation was successful.
62
63
64 DAT_INVALID_HANDLE The DAT handle is invalid.
65
66
67 DAT_INVALID_PARAMETER One of the parameters is invalid. For example,
68 the address range for a local segment fell
69 outside the boundaries of the corresponding
70 Local Memory Region or the LMR handle was
71 invalid.
72
73
75 Determining when an RDMA Read will start and what memory range it will
76 read is the Consumer's responsibility. One possibility is to have the
77 Consumer that is modifying memory call dat_lmr_sync_rdma_read() and
78 then post a Send DTO message that identifies the range in the body of
79 the Send. The Consumer wanting to perform the RDMA Read can receive
80 this message and know when it is safe to initiate the RDMA Read opera‐
81 tion.
82
83
84 This call ensures that the Provider receives a coherent view of the
85 buffer contents upon a subsequent remote RDMA Read operation. After the
86 call completes, the Consumer can be assured that all platform-specific
87 buffer and cache updates have been performed, and that the LMR range
88 has consistency with the Provider hardware. Any subsequent write by the
89 Consumer can void this consistency. The Provider is not required to
90 detect such access.
91
92
93 The action performed on the cache before the RDMA Read depends on the
94 cache type:
95
96 o I/O noncoherent cache will be invalidated.
97
98 o CPU noncoherent cache will be flushed.
99
101 See attributes(5) for descriptions of the following attributes:
102
103
104
105
106 ┌─────────────────────────────┬─────────────────────────────┐
107 │ ATTRIBUTE TYPE │ ATTRIBUTE VALUE │
108 ├─────────────────────────────┼─────────────────────────────┤
109 │Interface Stability │Standard: uDAPL, 1.2 │
110 ├─────────────────────────────┼─────────────────────────────┤
111 │MT-Level │Unsafe │
112 └─────────────────────────────┴─────────────────────────────┘
113
115 dat_lmr_sync_rdma_write(3DAT), libdat(3LIB), attributes(5)
116
117
118
119SunOS 5.11 16 Jul 2004 dat_lmr_sync_rdma_read(3DAT)