MyWebUniversity.com Home Page
 



OpenSolaris man pages main menu


Direct Access Transport Library Functions
                                     datlmrsyncrdmaread(3DAT)



NAME
     datlmrsyncrdmaread - synchronize local memory with  RDMA
     read on non-coherent memory

SYNOPSIS
     cc [ flag... ] file... -ldat [ library... ]
     #include 

     DATRETURN
         datlmrsyncrdmaread (
         IN DATIAHANDLE iahandle,
         IN const DATLMRTRIPLET *localsegments,
         IN DATVLEN numsegments
         )


PARAMETERS
     iahandle         A handle for an open instance of the IA.


     localsegments    An array of buffer segments.


     numsegments      The   number   of    segments    in    the
                       localsegments argument.


DESCRIPTION
     The datlmrsyncrdmaread() function makes  memory  changes
     visible  to  an incoming RDMA Read operation. This operation
     guarantees consistency by locally flushing the  non-coherent
     cache  prior  to it being retrieved by remote peer RDMA read
     operations.


     The datlmrsyncrdmaread() function is needed if and  only
     if  the  Provider attribute specifies that this operation is
     needed prior to an incoming RDMA Read operation. The  Consu-
     mer  must call datlmrsyncrdmaread() after modifying data
     in a memory range in this region that will be the target  of
     an      incoming      RDMA      Read      operation.     The
     datlmrsyncrdmaread() 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 the
     caller in the localsegments array. After this call returns,
     the RDMA Read operation can safely see the modified contents
     of the memory range. It is permissible to batch synchroniza-
     tions  for multiple RDMA Read operations in a single call by
     passing a localsegments array that  includes  all  modified
     memory  ranges.  The localsegments entries need not contain



SunOS 5.11          Last change: 16 Jul 2004                    1






Direct Access Transport Library Functions
                                     datlmrsyncrdmaread(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 not
     properly synchronized  using  datlmrsyncrdmaread(),  the
     returned contents are undefined.

RETURN VALUES
     DATSUCES              The operation was successful.


     DATINVALIDHANDLE       The DAT handle is invalid.


     DATINVALIDPARAMETER    One of the parameters  is  invalid.
                              For  example, the address range for
                              a local segment  fell  outside  the
                              boundaries   of  the  corresponding
                              Local 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 memory
     call  datlmrsyncrdmaread() 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  be
     assured  that all platform-specific buffer and cache updates
     have been performed, and that the LMR range has  consistency
     with 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 Functions
                                     datlmrsyncrdmaread(3DAT)



ATRIBUTES
     See attributes(5) for descriptions of the  following  attri-
     butes:



     
           ATRIBUTE TYPE               ATRIBUTE VALUE       
    
     Interface Stability          Standard: uDAPL, 1.2        
    
     MT-Level                     Unsafe                      
    


SEE ALSO
     datlmrsyncrdmawrite(3DAT), libdat(3LIB), attributes(5)





































SunOS 5.11          Last change: 16 Jul 2004                    3






Direct Access Transport Library Functions
                                     datlmrsyncrdmaread(3DAT)






















































SunOS 5.11          Last change: 16 Jul 2004                    4






OpenSolaris man pages main menu

Contact us      |       About us      |       Term of use      |       Copyright © 2000-2010 MyWebUniversity.com ™