1dat_lmr_sync_rdma_reDaidr(e3cDtATA)ccess Transport LibrarydFautn_cltmiro_nssync_rdma_read(3DAT)
2
3
4

NAME

6       dat_lmr_sync_rdma_read  -  synchronize  local  memory with RDMA read on
7       non-coherent memory
8

SYNOPSIS

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

PARAMETERS

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

DESCRIPTION

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

RETURN VALUES

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

USAGE

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

ATTRIBUTES

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

SEE ALSO

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)
Impressum