PPL Logo

ck-core/ckrdma.h File Reference

Go to the source code of this file.

Data Structures

struct  CkNcpyBufferPost
class  CkNcpyBuffer
struct  NcpyEmInfo
struct  NcpyEmBufferInfo
struct  NcpyBcastRecvPeerAckInfo
struct  NcpyBcastAckInfo
struct  NcpyBcastRootAckInfo
struct  NcpyBcastInterimAckInfo
struct  NcpyROBcastBuffAckInfo
struct  NcpyROBcastAckInfo

Enumerations

enum  CkNcpyMode { MEMCPY, CMA, RDMA }
enum  CkNcpyStatus { incomplete, complete }
enum  ncpyEmApiMode { P2P_SEND, BCAST_SEND, P2P_RECV, BCAST_RECV }

Functions

void CkRdmaDirectAckHandler (void *ack)
void invokeCallback (void *cb, int pe, CkNcpyBuffer &buff)
CkNcpyMode findTransferMode (int srcPe, int destPe)
void invokeSourceCallback (NcpyOperationInfo *info)
void invokeDestinationCallback (NcpyOperationInfo *info)
void enqueueNcpyMessage (int destPe, void *msg)
static CkNcpyBuffer CkSendBuffer (const void *ptr_, CkCallback &cb_, unsigned short int regMode_=CK_BUFFER_REG, unsigned short int deregMode_=CK_BUFFER_DEREG)
static CkNcpyBuffer CkSendBuffer (const void *ptr_, unsigned short int regMode_=CK_BUFFER_REG, unsigned short int deregMode_=CK_BUFFER_DEREG)
envelopeCkRdmaIssueRgets (envelope *env, ncpyEmApiMode emMode, void *forwardMsg=NULL)
void CkRdmaIssueRgets (envelope *env, ncpyEmApiMode emMode, void *forwardMsg, int numops, void **arrPtrs, CkNcpyBufferPost *postStructs)
void handleEntryMethodApiCompletion (NcpyOperationInfo *info)
void handleReverseEntryMethodApiCompletion (NcpyOperationInfo *info)
void CkPackRdmaPtrs (char *msgBuf)
void CkUnpackRdmaPtrs (char *msgBuf)
void getRdmaNumopsAndBufsize (envelope *env, int &numops, int &bufsize)
void CkRdmaEMAckHandler (int destPe, void *ack)
void CkRdmaEMBcastPostAckHandler (void *msg)
void CkRdmaPrepareBcastMsg (envelope *env)
void CkReplaceSourcePtrsInBcastMsg (envelope *env, NcpyBcastInterimAckInfo *bcastAckInfo, int origPe)
const void * getParentBcastAckInfo (void *msg, int &srcPe)
NcpyBcastInterimAckInfoallocateInterimNodeAckObj (envelope *myEnv, envelope *myChildEnv, int pe)
void forwardMessageToChildNodes (envelope *myChildrenMsg, UChar msgType)
void forwardMessageToPeerNodes (envelope *myMsg, UChar msgType)
void handleBcastEntryMethodApiCompletion (NcpyOperationInfo *info)
void handleBcastReverseEntryMethodApiCompletion (NcpyOperationInfo *info)
void deregisterMemFromMsg (envelope *env, bool isRecv)
void handleMsgUsingCMAPostCompletionForSendBcast (envelope *copyenv, envelope *env, CkNcpyBuffer &source)
void processBcastSendEmApiCompletion (NcpyEmInfo *ncpyEmInfo, int destPe)
void CkReplaceSourcePtrsInBcastMsg (envelope *prevEnv, envelope *env, void *bcastAckInfo, int origPe)
void processBcastRecvEmApiCompletion (NcpyEmInfo *ncpyEmInfo, int destPe)
void CkRdmaEMBcastAckHandler (void *ack)
void handleMsgOnChildPostCompletionForRecvBcast (envelope *env)
void handleMsgOnInterimPostCompletionForRecvBcast (envelope *env, NcpyBcastInterimAckInfo *bcastAckInfo, int pe)
 CkpvExtern (int, _numPendingRORdmaTransfers)
void readonlyUpdateNumops ()
void readonlyAllocateOnSource ()
void readonlyCreateOnSource (CkNcpyBuffer &src)
void readonlyGet (CkNcpyBuffer &src, CkNcpyBuffer &dest, void *refPtr)
void readonlyGetCompleted (NcpyOperationInfo *ncpyOpInfo)
void updatePeerCounterAndPush (envelope *env)
CkArraygetArrayMgrFromMsg (envelope *env)
void sendAckMsgToParent (envelope *env)
void sendRecvDoneMsgToPeers (envelope *env, CkArray *mgr)


Enumeration Type Documentation

enum CkNcpyMode

Enumerator:
MEMCPY 
CMA 
RDMA 

Definition at line 46 of file ckrdma.h.

Enumerator:
incomplete 
complete 

Definition at line 51 of file ckrdma.h.

Enumerator:
P2P_SEND 
BCAST_SEND 
P2P_RECV 
BCAST_RECV 

Definition at line 57 of file ckrdma.h.


Function Documentation

void CkRdmaDirectAckHandler ( void *  ack  ) 

void invokeCallback ( void *  cb,
int  pe,
CkNcpyBuffer buff 
)

Definition at line 376 of file ckrdma.C.

References _ckcallbackgroup.

Referenced by CkRdmaEMBcastAckHandler(), invokeDestinationCallback(), and invokeSourceCallback().

Here is the caller graph for this function:

CkNcpyMode findTransferMode ( int  srcPe,
int  destPe 
)

Definition at line 391 of file ckrdma.C.

References CMA, CmiDoesCMAWork(), CmiNodeOf(), CmiPeOnSamePhysicalNode(), MEMCPY, and RDMA.

Referenced by CkRdmaIssueRgets(), CkNcpyBuffer::get(), CkNcpyBuffer::put(), and readonlyGet().

Here is the call graph for this function:

Here is the caller graph for this function:

void invokeSourceCallback ( NcpyOperationInfo info  ) 

void invokeDestinationCallback ( NcpyOperationInfo info  ) 

Definition at line 318 of file ckrdma.C.

References ncpystruct::ackMode, CkNcpyBuffer::constructDestinationBufferObject, dest, ncpystruct::destAck, ncpystruct::destPe, invokeCallback(), and CkCallback::requiresMsgConstruction().

Referenced by handleDirectApiCompletion().

Here is the call graph for this function:

Here is the caller graph for this function:

void enqueueNcpyMessage ( int  destPe,
void *  msg 
)

Definition at line 402 of file ckrdma.C.

References Converse::CkMyPe(), CmiHandleMessage(), CmiPushPE(), and CmiRankOf().

Referenced by CkRdmaEMAckHandler(), CkRdmaEMBcastAckHandler(), CkRdmaIssueRgets(), handleMsgUsingCMAPostCompletionForSendBcast(), and processBcastSendEmApiCompletion().

Here is the call graph for this function:

Here is the caller graph for this function:

static CkNcpyBuffer CkSendBuffer ( const void *  ptr_,
CkCallback cb_,
unsigned short int  regMode_ = CK_BUFFER_REG,
unsigned short int  deregMode_ = CK_BUFFER_DEREG 
) [inline, static]

Definition at line 285 of file ckrdma.h.

static CkNcpyBuffer CkSendBuffer ( const void *  ptr_,
unsigned short int  regMode_ = CK_BUFFER_REG,
unsigned short int  deregMode_ = CK_BUFFER_DEREG 
) [inline, static]

Definition at line 289 of file ckrdma.h.

envelope* CkRdmaIssueRgets ( envelope env,
ncpyEmApiMode  emMode,
void *  forwardMsg = NULL 
)

void CkRdmaIssueRgets ( envelope env,
ncpyEmApiMode  emMode,
void *  forwardMsg,
int  numops,
void **  arrPtrs,
CkNcpyBufferPost postStructs 
)

void handleEntryMethodApiCompletion ( NcpyOperationInfo info  ) 

Definition at line 678 of file ckrdma.C.

References ncpystruct::ackMode, CkRdmaEMAckHandler(), CmiInvokeRemoteDeregAckHandler(), ncpystruct::destPe, invokeSourceCallback(), ncpystruct::refPtr, ncpystruct::srcDeregMode, and ncpystruct::srcPe.

Referenced by CkRdmaDirectAckHandler().

Here is the call graph for this function:

Here is the caller graph for this function:

void handleReverseEntryMethodApiCompletion ( NcpyOperationInfo info  ) 

void CkPackRdmaPtrs ( char *  msgBuf  ) 

Definition at line 630 of file ckrdma.C.

References p, CkNcpyBuffer::ptr, and PUP::w.

Referenced by CkRdmaIssueRgets(), and CkReplaceSourcePtrsInBcastMsg().

Here is the caller graph for this function:

void CkUnpackRdmaPtrs ( char *  msgBuf  ) 

Definition at line 647 of file ckrdma.C.

References p, CkNcpyBuffer::ptr, size_t, and PUP::w.

Referenced by CkReplaceSourcePtrsInBcastMsg().

Here is the caller graph for this function:

void getRdmaNumopsAndBufsize ( envelope env,
int numops,
int bufsize 
)

Definition at line 666 of file ckrdma.C.

References CkNcpyBuffer::cnt, EnvToUsr(), and PUP::w.

Referenced by CkRdmaIssueRgets().

Here is the call graph for this function:

Here is the caller graph for this function:

void CkRdmaEMAckHandler ( int  destPe,
void *  ack 
)

void CkRdmaEMBcastPostAckHandler ( void *  msg  ) 

void CkRdmaPrepareBcastMsg ( envelope env  ) 

void CkReplaceSourcePtrsInBcastMsg ( envelope env,
NcpyBcastInterimAckInfo bcastAckInfo,
int  origPe 
)

const void* getParentBcastAckInfo ( void *  msg,
int srcPe 
)

Definition at line 975 of file ckrdma.C.

References CkNcpyBuffer::bcastAckInfo, EnvToUsr(), p, CkNcpyBuffer::pe, and source.

Referenced by CkRdmaEMBcastAckHandler(), and sendAckMsgToParent().

Here is the call graph for this function:

Here is the caller graph for this function:

NcpyBcastInterimAckInfo* allocateInterimNodeAckObj ( envelope myEnv,
envelope myChildEnv,
int  pe 
)

void forwardMessageToChildNodes ( envelope myChildrenMsg,
UChar  msgType 
)

Definition at line 1126 of file ckrdma.C.

References CmiForwardNodeBcastMsg(), CmiForwardProcBcastMsg(), ForNodeBocMsg, and envelope::getTotalsize().

Referenced by handleMsgOnInterimPostCompletionForRecvBcast(), handleMsgUsingCMAPostCompletionForSendBcast(), and processBcastSendEmApiCompletion().

Here is the call graph for this function:

Here is the caller graph for this function:

void forwardMessageToPeerNodes ( envelope myMsg,
UChar  msgType 
)

Definition at line 1138 of file ckrdma.C.

References CmiForwardMsgToPeers(), ForBocMsg, and envelope::getTotalsize().

Referenced by CkRdmaEMBcastAckHandler(), CkRdmaIssueRgets(), handleMsgUsingCMAPostCompletionForSendBcast(), and processBcastSendEmApiCompletion().

Here is the call graph for this function:

Here is the caller graph for this function:

void handleBcastEntryMethodApiCompletion ( NcpyOperationInfo info  ) 

Definition at line 1147 of file ckrdma.C.

References ncpystruct::ackMode, CkRdmaEMAckHandler(), ncpystruct::destPe, and ncpystruct::refPtr.

Referenced by CkRdmaDirectAckHandler().

Here is the call graph for this function:

Here is the caller graph for this function:

void handleBcastReverseEntryMethodApiCompletion ( NcpyOperationInfo info  ) 

Definition at line 1155 of file ckrdma.C.

References ncpystruct::ackMode, CmiFree(), CmiInvokeRemoteAckHandler(), ncpystruct::destPe, ncpystruct::freeMe, and ncpystruct::refPtr.

Referenced by CkRdmaDirectAckHandler().

Here is the call graph for this function:

Here is the caller graph for this function:

void deregisterMemFromMsg ( envelope env,
bool  isRecv 
)

void handleMsgUsingCMAPostCompletionForSendBcast ( envelope copyenv,
envelope env,
CkNcpyBuffer source 
)

void processBcastSendEmApiCompletion ( NcpyEmInfo ncpyEmInfo,
int  destPe 
)

void CkReplaceSourcePtrsInBcastMsg ( envelope prevEnv,
envelope env,
void *  bcastAckInfo,
int  origPe 
)

Definition at line 1250 of file ckrdma.C.

References CkNcpyBuffer::bcastAckInfo, CkPackMessage(), CkPackRdmaPtrs(), CkUnpackMessage(), CkUnpackRdmaPtrs(), EnvToUsr(), p, CkNcpyBuffer::pe, and source.

Referenced by handleMsgOnInterimPostCompletionForRecvBcast(), handleMsgUsingCMAPostCompletionForSendBcast(), and processBcastSendEmApiCompletion().

Here is the call graph for this function:

Here is the caller graph for this function:

void processBcastRecvEmApiCompletion ( NcpyEmInfo ncpyEmInfo,
int  destPe 
)

Definition at line 1303 of file ckrdma.C.

References _topoTree, CmiSpanningTreeInfo::child_count, CkRdmaEMBcastPostAckHandler(), CmiFree(), CmiInvokeBcastPostAckHandler(), NcpyEmInfo::msg, and PUP::t.

Referenced by CkRdmaEMAckHandler().

Here is the call graph for this function:

Here is the caller graph for this function:

void CkRdmaEMBcastAckHandler ( void *  ack  ) 

void handleMsgOnChildPostCompletionForRecvBcast ( envelope env  ) 

void handleMsgOnInterimPostCompletionForRecvBcast ( envelope env,
NcpyBcastInterimAckInfo bcastAckInfo,
int  pe 
)

CkpvExtern ( int  ,
_numPendingRORdmaTransfers   
)

void readonlyUpdateNumops (  ) 

Definition at line 1559 of file ckrdma.C.

References numZerocopyROops.

void readonlyAllocateOnSource (  ) 

Definition at line 1565 of file ckrdma.C.

References _topoTree, CmiSpanningTreeInfo::child_count, CmiAlloc(), NcpyROBcastAckInfo::counter, NcpyROBcastAckInfo::isRoot, NcpyROBcastAckInfo::numChildren, NcpyROBcastAckInfo::numops, numZerocopyROops, CmiSpanningTreeInfo::parent, and PUP::t.

Referenced by _processRODataMsg(), and _sendReadonlies().

Here is the call graph for this function:

Here is the caller graph for this function:

void readonlyCreateOnSource ( CkNcpyBuffer src  ) 

void readonlyGet ( CkNcpyBuffer src,
CkNcpyBuffer dest,
void *  refPtr 
)

void readonlyGetCompleted ( NcpyOperationInfo ncpyOpInfo  ) 

void updatePeerCounterAndPush ( envelope env  ) 

Definition at line 1394 of file ckrdma.C.

References _topoTree, CkNcpyBuffer::bcastAckInfo, CkPackMessage(), CkUnpackMessage(), CmiNodeFirst(), CmiPushPE(), CmiRankOf(), EnvToUsr(), p, CkNcpyBuffer::pe, CkNcpyBuffer::ref, source, and PUP::t.

Referenced by _deliverForBocMsg().

Here is the call graph for this function:

Here is the caller graph for this function:

CkArray* getArrayMgrFromMsg ( envelope env  ) 

Definition at line 1477 of file ckrdma.C.

References _getCkLocalBranchFromGroupID(), and envelope::getArrayMgr().

Referenced by CkRdmaEMBcastAckHandler(), handleArrayMsgOnChildPostCompletionForRecvBcast(), handleMsgOnInterimPostCompletionForRecvBcast(), and CkArray::recvBroadcast().

Here is the call graph for this function:

Here is the caller graph for this function:

void sendAckMsgToParent ( envelope env  ) 

Definition at line 1467 of file ckrdma.C.

References CmiInvokeBcastAckHandler(), getParentBcastAckInfo(), and CkNcpyBuffer::ref.

Referenced by CkRdmaEMBcastAckHandler(), CkRdmaEMBcastPostAckHandler(), CkRdmaIssueRgets(), and processBcastSendEmApiCompletion().

Here is the call graph for this function:

Here is the caller graph for this function:

void sendRecvDoneMsgToPeers ( envelope env,
CkArray mgr 
)


Generated on Mon Sep 21 07:58:45 2020 for Charm++ by  doxygen 1.5.5