PPL Logo

ck-core/ckrdma.C File Reference

Go to the source code of this file.

Functions

void constructSourceBufferObject (NcpyOperationInfo *info, CkNcpyBuffer &src)
void constructDestinationBufferObject (NcpyOperationInfo *info, CkNcpyBuffer &dest)
void invokeSourceCallback (NcpyOperationInfo *info)
void invokeDestinationCallback (NcpyOperationInfo *info)
void handleDirectApiCompletion (NcpyOperationInfo *info)
void CkRdmaDirectAckHandler (void *ack)
void invokeCallback (void *cb, int pe, CkNcpyBuffer &buff)
CkNcpyMode findTransferMode (int srcPe, int destPe)
void enqueueNcpyMessage (int destPe, void *msg)
void performRgets (char *ref, int numops, int extraSize)
void CkRdmaEMAckHandler (int destPe, void *ack)
void performEmApiMemcpy (CkNcpyBuffer &source, CkNcpyBuffer &dest, ncpyEmApiMode emMode)
void performEmApiCmaTransfer (CkNcpyBuffer &source, CkNcpyBuffer &dest, int child_count, ncpyEmApiMode emMode)
void performEmApiRget (CkNcpyBuffer &source, CkNcpyBuffer &dest, int opIndex, char *ref, int extraSize, ncpyEmApiMode emMode)
void performEmApiNcpyTransfer (CkNcpyBuffer &source, CkNcpyBuffer &dest, int opIndex, int child_count, char *ref, int extraSize, CkNcpyMode ncpyMode, ncpyEmApiMode emMode)
void preprocessRdmaCaseForRgets (int &layerInfoSize, int &ncpyObjSize, int &extraSize, int &totalMsgSize, int &numops)
void setNcpyEmInfo (char *ref, envelope *env, int &msgsize, int &numops, void *forwardMsg, ncpyEmApiMode emMode)
void CkPackRdmaPtrs (char *msgBuf)
void CkUnpackRdmaPtrs (char *msgBuf)
void getRdmaNumopsAndBufsize (envelope *env, int &numops, int &bufsize)
void handleEntryMethodApiCompletion (NcpyOperationInfo *info)
void handleReverseEntryMethodApiCompletion (NcpyOperationInfo *info)
envelopeCkRdmaIssueRgets (envelope *env, ncpyEmApiMode emMode, void *forwardMsg)
void CkRdmaIssueRgets (envelope *env, ncpyEmApiMode emMode, void *forwardMsg, int numops, void **arrPtrs, CkNcpyBufferPost *postStructs)
void CkRdmaPrepareBcastMsg (envelope *env)
const void * getParentBcastAckInfo (void *msg, int &srcPe)
NcpyBcastInterimAckInfoallocateInterimNodeAckObj (envelope *myEnv, envelope *myChildEnv, int pe)
void CkRdmaEMBcastAckHandler (void *ack)
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 CkRdmaEMBcastPostAckHandler (void *msg)
void CkReplaceSourcePtrsInBcastMsg (envelope *env, NcpyBcastInterimAckInfo *bcastAckInfo, int origPe)
void updatePeerCounterAndPush (envelope *env)
void sendRecvDoneMsgToPeers (envelope *env, CkArray *mgr)
void sendAckMsgToParent (envelope *env)
CkArraygetArrayMgrFromMsg (envelope *env)
void handleArrayMsgOnChildPostCompletionForRecvBcast (envelope *env)
void handleGroupMsgOnChildPostCompletionForRecvBcast (envelope *env)
void handleNGMsgOnChildPostCompletionForRecvBcast (envelope *env)
void handleMsgOnChildPostCompletionForRecvBcast (envelope *env)
void handleMsgOnInterimPostCompletionForRecvBcast (envelope *env, NcpyBcastInterimAckInfo *bcastAckInfo, int pe)
 CksvExtern (int, _numPendingRORdmaTransfers)
void readonlyUpdateNumops ()
void readonlyAllocateOnSource ()
void readonlyCreateOnSource (CkNcpyBuffer &src)
void readonlyGet (CkNcpyBuffer &src, CkNcpyBuffer &dest, void *refPtr)
void readonlyGetCompleted (NcpyOperationInfo *ncpyOpInfo)

Variables

CProxy_ckcallback_group _ckcallbackgroup
int _roRdmaDoneHandlerIdx
int _initHandlerIdx
UInt numZerocopyROops
UInt curROIndex
NcpyROBcastAckInforoBcastAckInfo


Function Documentation

void constructSourceBufferObject ( NcpyOperationInfo info,
CkNcpyBuffer src 
)

void constructDestinationBufferObject ( NcpyOperationInfo info,
CkNcpyBuffer dest 
)

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 handleDirectApiCompletion ( NcpyOperationInfo info  ) 

Definition at line 330 of file ckrdma.C.

References CmiFree(), ncpystruct::freeMe, invokeDestinationCallback(), and invokeSourceCallback().

Referenced by CkRdmaDirectAckHandler().

Here is the call graph for this function:

Here is the caller graph for this function:

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 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:

void performRgets ( char *  ref,
int  numops,
int  extraSize 
)

Definition at line 423 of file ckrdma.C.

References CmiIssueRget(), and NcpyEmBufferInfo::ncpyOpInfo.

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 performEmApiMemcpy ( CkNcpyBuffer source,
CkNcpyBuffer dest,
ncpyEmApiMode  emMode 
)

Definition at line 496 of file ckrdma.C.

References BCAST_RECV, BCAST_SEND, CkNcpyBuffer::bcastAckInfo, CkNcpyBuffer::cb, CkNcpyBuffer::CkRdmaEMBcastAckHandler, CkNcpyBuffer::memcpyGet(), P2P_RECV, P2P_SEND, and CkCallback::send().

Referenced by performEmApiNcpyTransfer().

Here is the call graph for this function:

Here is the caller graph for this function:

void performEmApiCmaTransfer ( CkNcpyBuffer source,
CkNcpyBuffer dest,
int  child_count,
ncpyEmApiMode  emMode 
)

void performEmApiRget ( CkNcpyBuffer source,
CkNcpyBuffer dest,
int  opIndex,
char *  ref,
int  extraSize,
ncpyEmApiMode  emMode 
)

void performEmApiNcpyTransfer ( CkNcpyBuffer source,
CkNcpyBuffer dest,
int  opIndex,
int  child_count,
char *  ref,
int  extraSize,
CkNcpyMode  ncpyMode,
ncpyEmApiMode  emMode 
)

Definition at line 584 of file ckrdma.C.

References CMA, MEMCPY, CkNcpyBuffer::performEmApiCmaTransfer, performEmApiMemcpy(), CkNcpyBuffer::performEmApiRget, and RDMA.

Here is the call graph for this function:

void preprocessRdmaCaseForRgets ( int layerInfoSize,
int ncpyObjSize,
int extraSize,
int totalMsgSize,
int numops 
)

Definition at line 602 of file ckrdma.C.

References getNcpyOpInfoTotalSize().

Referenced by CkRdmaIssueRgets().

Here is the call graph for this function:

Here is the caller graph for this function:

void setNcpyEmInfo ( char *  ref,
envelope env,
int msgsize,
int numops,
void *  forwardMsg,
ncpyEmApiMode  emMode 
)

Definition at line 616 of file ckrdma.C.

References Converse::CkMyPe(), NcpyEmInfo::counter, NcpyEmInfo::forwardMsg, NcpyEmInfo::mode, NcpyEmInfo::msg, NcpyEmInfo::numOps, and NcpyEmInfo::pe.

Referenced by CkRdmaIssueRgets().

Here is the call graph for this function:

Here is the caller graph for this function:

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

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

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

void CkRdmaPrepareBcastMsg ( envelope env  ) 

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 CkRdmaEMBcastAckHandler ( void *  ack  ) 

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 CkRdmaEMBcastPostAckHandler ( void *  msg  ) 

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

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:

void sendRecvDoneMsgToPeers ( envelope env,
CkArray mgr 
)

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:

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 handleArrayMsgOnChildPostCompletionForRecvBcast ( envelope env  ) 

Definition at line 1486 of file ckrdma.C.

References CmiHandleMessage(), ForBocMsg, CkArray::forwardZCMsgToOtherElems(), getArrayMgrFromMsg(), CkArray::getRecvBroadcastEpIdx(), envelope::getsetArrayEp(), sendRecvDoneMsgToPeers(), and envelope::setMsgtype().

Referenced by handleMsgOnChildPostCompletionForRecvBcast().

Here is the call graph for this function:

Here is the caller graph for this function:

void handleGroupMsgOnChildPostCompletionForRecvBcast ( envelope env  ) 

Definition at line 1503 of file ckrdma.C.

References CmiHandleMessage(), and sendRecvDoneMsgToPeers().

Referenced by handleMsgOnChildPostCompletionForRecvBcast().

Here is the call graph for this function:

Here is the caller graph for this function:

void handleNGMsgOnChildPostCompletionForRecvBcast ( envelope env  ) 

Definition at line 1516 of file ckrdma.C.

References CmiHandleMessage().

Referenced by handleMsgOnChildPostCompletionForRecvBcast().

Here is the call graph for this function:

Here is the caller graph for this function:

void handleMsgOnChildPostCompletionForRecvBcast ( envelope env  ) 

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

CksvExtern ( 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  ) 


Variable Documentation

CProxy_ckcallback_group _ckcallbackgroup


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