Direct Access Transport Library Functions
dat_lmr_sync_rdma_write(3DAT)
NAME
dat_lmr_sync_rdma_write - synchronize local memory with RDMA
write on non-coherent memory
SYNOPSIS
cc [ flag... ] file... -ldat [ library... ]
#include
DAT_RETURN
dat_lmr_sync_rdma_write (
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_write() function makes effects of an
incoming RDMA Write operation visible to the Consumer. This operation guarantees consistency by locally invalidating thenon-coherent cache whose buffer has been populated by remote
peer RDMA write operations.The dat_lmr_sync_rdma_write() function is needed if and only
if the Provider attribute specifies that this operation is needed after an incoming RDMA Write operation. The Consumermust call dat_lmr_sync_rdma_write() before reading data from
a memory range in this region that was the target of anincoming RDMA Write operation. The dat_lmr_sync_rdma_write()
function must be called after the RDMA Write operation com-
pletes, and the memory range that was modified by the RDMAWrite must be supplied by the caller in the local_ segments
array. After this call returns, the Consumer may safely see the modified contents of the memory range. It is permissible to batch synchronizations of multiple RDMA Write operationsin a single call by passing a local_segments array that
includes all modified memory ranges. The local_segments
entries need not contain the same LMR and need not be in the same Protection Zone.SunOS 5.11 Last change: 16 Jul 2004 1
Direct Access Transport Library Functionsdat_lmr_sync_rdma_write(3DAT)
The Consumer must also use dat_lmr_sync_rdma_write() when
performing local writes to a memory range that was or will be the target of incoming RDMA writes. After performing the local write, the Consumer must calldat_lmr_sync_rdma_write() before the RDMA Write is ini-
tiated. Conversely, after an RDMA Write completes, the Con-
sumer must call dat_lmr_sync_rdma_write() before performing
a local write to the same range. If the Provider attribute specifies that this operation is needed and the Consumer attempts to read from a memory range in an LMR without properly synchronizing usingdat_lmr_sync_rdma_write(), the returned contents are unde-
fined. If the Consumer attempts to write to a memory range without properly synchronizing, the contents of the memory range become 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 Write completes and determiningwhich memory range was modified is the Consumer's responsi-
bility. One possibility is for the RDMA Write initiator topost a Send DTO message after each RDMA Write that identi-
fies the range in the body of the Send. The Consumer at the target of the RDMA Write can receive the message and knowwhen and how to call dat_lmr_sync_rdma_write().
This call ensures that the Provider receives a coherent view of the buffer contents after a subsequent remote RDMA Write 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 read by the Con-
sumer can void this consistency. The Provider is not required to detect such access.SunOS 5.11 Last change: 16 Jul 2004 2
Direct Access Transport Library Functionsdat_lmr_sync_rdma_write(3DAT)
The action performed on the cache before the RDMA Write depends on the cache type:o I/O noncoherent cache will be flushed. o CPU noncoherent cache will be invalidated.
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_read(3DAT), libdat(3LIB), attributes(5)
SunOS 5.11 Last change: 16 Jul 2004 3
Direct Access Transport Library Functionsdat_lmr_sync_rdma_write(3DAT)
SunOS 5.11 Last change: 16 Jul 2004 4