Direct Access Transport Library Functions
dat_lmr_sync_rdma_read(3DAT)
NAME
dat_lmr_sync_rdma_read - synchronize local memory with RDMA
read on non-coherent memory
SYNOPSIS
cc [ flag... ] file... -ldat [ library... ]
#include
DAT_RETURN
dat_lmr_sync_rdma_read (
IN DAT_IA_HANDLE ia_handle,
IN const DAT_LMR_TRIPLET *local_segments,
IN DAT_VLEN num_segments
)PARAMETERS
ia_handle A handle for an open instance of the IA.
local_segments An array of buffer segments.
num_segments The number of segments in the
local_segments argument.
DESCRIPTION
The dat_lmr_sync_rdma_read() function makes memory changes
visible to an incoming RDMA Read operation. This operationguarantees consistency by locally flushing the non-coherent
cache prior to it being retrieved by remote peer RDMA read operations.The dat_lmr_sync_rdma_read() function is needed if and only
if the Provider attribute specifies that this operation isneeded prior to an incoming RDMA Read operation. The Consu-
mer must call dat_lmr_sync_rdma_read() after modifying data
in a memory range in this region that will be the target of an incoming RDMA Read operation. Thedat_lmr_sync_rdma_read() function must be called after the
Consumer has modified the memory range but before the RDMA Read operation begins. The memory range that will be accessed by the RDMA read operation must be supplied by thecaller in the local_segments array. After this call returns,
the RDMA Read operation can safely see the modified contentsof the memory range. It is permissible to batch synchroniza-
tions for multiple RDMA Read operations in a single call bypassing a local_segments array that includes all modified
memory ranges. The local_segments entries need not contain
SunOS 5.11 Last change: 16 Jul 2004 1
Direct Access Transport Library Functionsdat_lmr_sync_rdma_read(3DAT)
the same LMR and need not be in the same Protection Zone. If the Provider attribute specifying that this operation is required attempts to read from a memory range that is notproperly synchronized using dat_lmr_sync_rdma_read(), the
returned contents are undefined.RETURN VALUES
DAT_SUCCESS The operation was successful.
DAT_INVALID_HANDLE The DAT handle is invalid.
DAT_INVALID_PARAMETER One of the parameters is invalid.
For example, the address range for a local segment fell outside the boundaries of the correspondingLocal Memory Region or the LMR han-
dle was invalid.USAGE
Determining when an RDMA Read will start and what memory range it will read is the Consumer's responsibility. One possibility is to have the Consumer that is modifying memorycall dat_lmr_sync_rdma_read() and then post a Send DTO mes-
sage that identifies the range in the body of the Send. The Consumer wanting to perform the RDMA Read can receive this message and know when it is safe to initiate the RDMA Read operation. This call ensures that the Provider receives a coherent view of the buffer contents upon a subsequent remote RDMA Read operation. After the call completes, the Consumer can beassured that all platform-specific buffer and cache updates
have been performed, and that the LMR range has consistencywith the Provider hardware. Any subsequent write by the Con-
sumer can void this consistency. The Provider is not required to detect such access. The action performed on the cache before the RDMA Read depends on the cache type:o I/O noncoherent cache will be invalidated. o CPU noncoherent cache will be flushed.
SunOS 5.11 Last change: 16 Jul 2004 2
Direct Access Transport Library Functionsdat_lmr_sync_rdma_read(3DAT)
ATTRIBUTES
See attributes(5) for descriptions of the following attri-
butes:____________________________________________________________
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
|_____________________________|_____________________________|
| Interface Stability | Committed ||_____________________________|_____________________________|
| MT-Level | Unsafe |
|_____________________________|_____________________________|
| Standard | uDAPL, 1.2 ||_____________________________|_____________________________|
SEE ALSO
dat_lmr_sync_rdma_write(3DAT), libdat(3LIB), attributes(5)
SunOS 5.11 Last change: 16 Jul 2004 3
Direct Access Transport Library Functionsdat_lmr_sync_rdma_read(3DAT)
SunOS 5.11 Last change: 16 Jul 2004 4