The machine layer of Converse consist of few common files to all architectures, shown in this module, which are:
More...The machine layer of Converse consist of few common files to all architectures, shown in this module, which are:
These files describe the common characteristics of all implementations, and provide converse, and every language built on top of it the same functional interface in all machines, however different they are.
In addition to these common files, there are files called "machine.C" which are the real implementation for the different architectures. Every file is in a different directory, and get selected for compilation at compile time through the "build" script. With this implementation, only one single machine layer can be compiled into the runtime system. Changing architecture needs a different compilation.
typedef struct CmiStateStruct * CmiState |
typedef struct CmiNodeStateStruct CmiNodeState |
typedef struct CircQueueStruct * CircQueue |
typedef struct PCQueueStruct * PCQueue |
typedef struct FreeNodePoolStruct * FreeNodePool |
typedef struct MPSCQueueStruct * MPSCQueue |
typedef struct MPMCDataNodeStruct * MPMCDataNode |
typedef struct FreeMPMCNodePoolStruct * FreeMPMCNodePool |
typedef struct MPMCQueueStruct * MPMCQueue |
typedef struct _PersistentRequestMsg PersistentRequestMsg |
typedef struct _PersistentReqGrantedMsg PersistentReqGrantedMsg |
typedef struct _PersistentDestroyMsg PersistentDestroyMsg |
void CmiPushImmediateMsg | ( | void * | msg | ) |
Definition at line 35 of file immediate.C.
References CmiLock(), and CmiUnlock().
Referenced by CmiHandleImmediate(), CmiNotifyCommThd(), CmiPushNode(), CmiPushPE(), CmiSendNodeSelf(), and CmiSendSelf().
void CmiDelayImmediate | ( | void | ) |
Definition at line 55 of file immediate.C.
References _immRunning, CQdCreate(), and currentImmediateMsg.
Referenced by CldAskLoadHandler(), and CkNodeReductionMgr::RecvMsg().
void CmiHandleImmediateMessage | ( | void * | msg | ) |
Definition at line 74 of file immediate.C.
References _immRunning, CQdProcess(), h, CmiHandlerInfo::hdlr, and CmiHandlerInfo::userPtr.
Referenced by CmiHandleImmediate().
void CmiHandleImmediate | ( | void | ) |
Definition at line 100 of file immediate.C.
References _immediateReady, _immRunning, CmiHandleImmediateMessage(), CmiPushImmediateMsg(), CmiTryLock(), CmiUnlock(), currentImmediateMsg, and msg.
Referenced by AdvanceCommunication(), CmiSendNodeSelf(), CmiSendSelf(), and SendMsgBuf().
Definition at line 706 of file machine-smp.C.
References CdsFifo_Create(), CmiIdleLock_init(), CmiStateStruct::curPolledIdx, CmiStateStruct::idle, CmiStateStruct::localqueue, CmiStateStruct::myGrpIdx, CmiStateStruct::pe, CmiStateStruct::rank, and CmiStateStruct::recv.
Referenced by call_startfn(), and CmiStartThreads().
void CommunicationServerInit | ( | void | ) |
Definition at line 3713 of file convcore.C.
References CQdCpvInit().
Referenced by call_startfn().
CmiState CmiGetState | ( | void | ) |
Definition at line 112 of file machine-smp.C.
References Cmi_default_state, and Cmi_state_key.
Referenced by CmiGetNonLocal(), CmiGetNonLocalNodeQ(), CmiMyPe(), CmiMyPeGlobal(), CmiMyRank(), CmiMyRecvQueue(), CmiPushPE(), CmiState_hasMessage(), ConverseRunPE(), LrtsSendFunc(), and PumpMsgsBlocking().
void CmiYield | ( | void | ) |
Definition at line 124 of file machine-smp.C.
void CommunicationServerThread | ( | int | sleepTime | ) |
static DWORD WINAPI call_startfn | ( | LPVOID | vindex | ) | [static] |
Definition at line 154 of file machine-smp.C.
References _Cmi_mynodesize, Cmi_state_key, CommunicationServerInit(), CommunicationServerThread(), ConverseRunPE(), index, int, and PerrorExit().
Referenced by CmiStartThreads().
Definition at line 189 of file machine-smp.C.
References entered_barrier_count, entrance_semaphore, exit_semaphore, and exited_barrier_count.
Referenced by CmiNodeAllBarrier(), and CmiNodeBarrier().
static void CmiStartThreads | ( | char ** | argv | ) | [static] |
Definition at line 206 of file machine-smp.C.
References _Cmi_mynode, _Cmi_mynodesize, call_startfn(), calloc(), Cmi_commthread, Cmi_nodestart, Cmi_state_key, CmiCreateLock(), CmiMemLock_lock, cmiMemoryLock, CmiStateInit(), comm_mutex, entrance_semaphore, exit_semaphore, and PerrorExit().
static void CmiDestroyLocks | ( | void | ) | [static] |
Definition at line 251 of file machine-smp.C.
References CmiDestroyLock(), CmiMemLock_lock, cmiMemoryLock, comm_mutex, entrance_semaphore, and exit_semaphore.
void CharmScheduler | ( | void | ) |
CmiNodeLock CmiCreateLock | ( | void | ) |
Definition at line 309 of file machine-smp.C.
References malloc().
Referenced by _initCharm(), bgq_topo_init(), CkNodeReductionMgr::CkNodeReductionMgr(), CldModuleGeneralInit(), CmiInitCPUAffinity(), CmiIsomallocBlockListPup(), CmiNodeStateInit(), CmiStartThreads(), ConverseInit(), craynid_init(), CsdInit(), FEM_Init(), FuncCkLoop::init(), LBDatabase::initnodeFn(), LBTopoInit(), LrtsInitCpuTopo(), mempool_init(), NodeGroup::NodeGroup(), PCQueueCreate(), CkNodeReductionMgr::pup(), SendMsgBuf(), ST_RecursivePartition_getTreeInfo(), and TopoManager_init().
void CmiDestroyLock | ( | CmiNodeLock | lk | ) |
Definition at line 317 of file machine-smp.C.
References free().
Referenced by CmiDestroyLocks(), CkLocMgr::~CkLocMgr(), CkNodeReductionMgr::~CkNodeReductionMgr(), FuncCkLoop::~FuncCkLoop(), and NodeGroup::~NodeGroup().
void CmiCommLock | ( | void | ) |
Definition at line 377 of file machine-smp.C.
References CmiAbort(), and CmiLock().
void CmiCommUnlock | ( | void | ) |
Definition at line 383 of file machine-smp.C.
References CmiAbort(), and CmiUnlock().
void StartInteropScheduler | ( | void | ) |
Definition at line 37 of file conv-interoperate.C.
References CmiMyPe(), CmiMyRank(), CmiNodeAllBarrier(), CommunicationServerThread(), CsdScheduler(), LrtsDrainResources(), and memory_order_relaxed.
static void* call_startfn | ( | void * | vindex | ) | [static] |
Definition at line 410 of file machine-smp.C.
References _cleanUp, _Cmi_mynode, _Cmi_mynodesize, CharmLibInterOperate, ckExitComplete, Cmi_mystate, Cmi_nodestart, Cmi_state_key, CmiMyRank(), CmiNodeAllBarrier(), CmiStateInit(), CommunicationServer(), CommunicationServerInit(), CommunicationServerThread(), ConverseRunPE(), CsdScheduler(), index, size_t, and StartInteropScheduler().
void PerrorExit | ( | const char * | ) |
void CmiNodeBarrier | ( | void | ) |
Definition at line 573 of file machine-smp.C.
References CmiNodeBarrierCount().
Referenced by _initCharm(), _initDone(), CkRestartMain(), CkResumeRestartMain(), ConverseCommonExit(), topo_callback(), and traceCommonInit().
void CmiNodeAllBarrier | ( | void | ) |
Definition at line 580 of file machine-smp.C.
References Cmi_commthread, and CmiNodeBarrierCount().
Referenced by _initCharm(), call_startfn(), CharmLibExit(), CmiAssignOnce(), CmiGetNonLocalNodeQ(), CmiInitCPUAffinity(), CmiInitMemAffinity(), CmiInitNotifyCommThdScheme(), CmiMemoryInit(), CommunicationServer(), ConverseExit(), ConverseRunPE(), CsdInit(), InitCallTable::enumerateInitCalls(), init_ranges(), LrtsInitCpuTopo(), meta_init(), SendMsgBuf(), StartCharmScheduler(), StartInteropScheduler(), and traceCommonInit().
Definition at line 598 of file machine-smp.C.
References CmiIdleLock::hasMessages, and CmiStateStruct::idle.
Referenced by CmiState_hasMessage().
static void CmiIdleLock_init | ( | CmiIdleLock * | l | ) | [static] |
Definition at line 604 of file machine-smp.C.
References CmiIdleLock::hasMessages, CmiIdleLock::isSleeping, and CmiIdleLock::sem.
Referenced by CmiStateInit().
static void CmiIdleLock_sleep | ( | CmiIdleLock * | l, | |
int | msTimeout | |||
) | [static] |
Definition at line 610 of file machine-smp.C.
References CmiIdleLock::hasMessages, CmiIdleLock::isSleeping, and CmiIdleLock::sem.
Referenced by CmiGetNonLocalNodeQ().
static void CmiIdleLock_addMessage | ( | CmiIdleLock * | l | ) | [static] |
Definition at line 619 of file machine-smp.C.
References CmiIdleLock::hasMessages, CmiIdleLock::isSleeping, and CmiIdleLock::sem.
Referenced by CmiPushNode(), and CmiPushPE().
static void CmiIdleLock_checkMessage | ( | CmiIdleLock * | l | ) | [static] |
Definition at line 626 of file machine-smp.C.
References CmiIdleLock::hasMessages.
Referenced by CmiGetNonLocal(), and CmiGetNonLocalNodeQ().
static void getTimespec | ( | int | msFromNow, | |
struct timespec * | dest | |||
) | [static] |
Definition at line 641 of file machine-smp.C.
static void CmiIdleLock_wakeup | ( | CmiIdleLock * | l | ) | [static] |
Definition at line 676 of file machine-smp.C.
void CmiNodeStateInit | ( | CmiNodeState * | nodeState | ) |
Definition at line 727 of file machine-smp.C.
References CmiCreateLock(), CmiNodeStateStruct::CmiNodeRecvLock, CmiNodeStateStruct::delayedImmQ, CmiNodeStateStruct::immQ, CmiNodeStateStruct::immRecvLock, CmiNodeStateStruct::immSendLock, MPMCQueueCreate(), and CmiNodeStateStruct::NodeRecv.
Referenced by ConverseInit().
static PCQueue PCQueueCreate | ( | void | ) | [static] |
Definition at line 109 of file pcqueue.h.
References calloc(), CmiCreateLock(), PCQueueStruct::head, PCQueueStruct::len, PCQueueStruct::lock, malloc(), and PCQueueStruct::tail.
Referenced by cpd_memory_single_pup(), PPCAtomicQueueInit(), and SendMsgBuf().
static void PCQueueDestroy | ( | PCQueue | Q | ) | [static] |
Definition at line 126 of file pcqueue.h.
References free(), PCQueueStruct::head, CircQueueStruct::next, and PCQueueStruct::tail.
Referenced by cpd_memory_single_pup().
Definition at line 137 of file pcqueue.h.
References PCQueueStruct::len, and memory_order_acquire.
Referenced by PumpMsgsBlocking(), and SendMsgBuf().
Definition at line 142 of file pcqueue.h.
References PCQueueStruct::len, and memory_order_acquire.
Referenced by EnqueueMsg(), PPCAtomicQueueEmpty(), and PumpMsgs().
static char * PCQueueTop | ( | PCQueue | Q | ) | [static] |
Definition at line 147 of file pcqueue.h.
References CmiLock(), CmiUnlock(), CircQueueStruct::data, data, PCQueueStruct::head, PCQueueStruct::len, PCQueueStruct::lock, memory_order_acquire, memory_order_relaxed, and CircQueueStruct::pull.
static char * PCQueuePop | ( | PCQueue | Q | ) | [static] |
Definition at line 166 of file pcqueue.h.
References CmiLock(), CmiUnlock(), CircQueueStruct::data, data, free(), PCQueueStruct::head, PCQueueStruct::len, PCQueueStruct::lock, memory_order_acquire, memory_order_relaxed, memory_order_release, and CircQueueStruct::pull.
Referenced by cpd_memory_single_pup(), PPCAtomicDequeue(), and SendMsgBuf().
static void PCQueuePush | ( | PCQueue | Q, | |
char * | data | |||
) | [static] |
Definition at line 209 of file pcqueue.h.
References calloc(), CmiLock(), CmiUnlock(), CircQueueStruct::data, PCQueueStruct::len, PCQueueStruct::lock, memory_order_relaxed, memory_order_release, CircQueueStruct::next, CircQueueStruct::push, and PCQueueStruct::tail.
Referenced by cpd_memory_single_pup(), EnqueueMsg(), MPIPostOneBuffer(), and PPCAtomicEnqueue().
void ReportOverflow | ( | ) |
Definition at line 465 of file pcqueue.h.
Referenced by MPMCQueuePush(), and MPSCQueuePush().
Definition at line 498 of file pcqueue.h.
Referenced by MPSCQueueEmpty(), MPSCQueueLength(), and QueueFull().
Definition at line 512 of file pcqueue.h.
References WrappedDifference().
Referenced by MPMCQueuePush(), and MPSCQueuePush().
static DataNode DataNodeCreate | ( | void | ) | [static] |
Definition at line 527 of file pcqueue.h.
References malloc().
Referenced by get_free_node().
static FreeNodePool FreeNodePoolCreate | ( | void | ) | [static] |
Definition at line 536 of file pcqueue.h.
References malloc(), memory_order_relaxed, FreeNodePoolStruct::nodes, FreeNodePoolStruct::pull, FreeNodePoolStruct::push, and PUP::u.
Referenced by MPSCQueueCreate().
static void FreeNodePoolDestroy | ( | FreeNodePool | q | ) | [static] |
Definition at line 552 of file pcqueue.h.
References free(), memory_order_acquire, n, and FreeNodePoolStruct::nodes.
Referenced by MPSCQueueDestroy().
static DataNode get_free_node | ( | FreeNodePool | q | ) | [static] |
Definition at line 566 of file pcqueue.h.
References DataNodeCreate(), memory_order_acquire, memory_order_relaxed, memory_order_release, FreeNodePoolStruct::nodes, FreeNodePoolStruct::pull, and FreeNodePoolStruct::push.
Referenced by get_push_node().
static void add_free_node | ( | FreeNodePool | q, | |
DataNode | available | |||
) | [static] |
Definition at line 589 of file pcqueue.h.
References free(), memory_order_acquire, memory_order_relaxed, memory_order_release, FreeNodePoolStruct::nodes, and FreeNodePoolStruct::push.
Referenced by check_mem_reclamation().
static MPSCQueue MPSCQueueCreate | ( | void | ) | [static] |
Definition at line 609 of file pcqueue.h.
References MPSCQueueStruct::freeNodePool, FreeNodePoolCreate(), malloc(), memory_order_relaxed, MPSCQueueStruct::nodes, MPSCQueueStruct::pull, MPSCQueueStruct::push, and PUP::u.
static void MPSCQueueDestroy | ( | MPSCQueue | Q | ) | [static] |
Definition at line 627 of file pcqueue.h.
References free(), MPSCQueueStruct::freeNodePool, FreeNodePoolDestroy(), memory_order_acquire, and MPSCQueueStruct::nodes.
Definition at line 643 of file pcqueue.h.
Referenced by check_mem_reclamation(), get_pop_node(), get_push_node(), mpmc_check_mem_reclamation(), mpmc_get_pop_node(), and mpmc_get_push_node().
Definition at line 649 of file pcqueue.h.
References MPSCQueueStruct::freeNodePool, get_free_node(), get_node_index(), memory_order_acquire, memory_order_release, and MPSCQueueStruct::nodes.
Referenced by MPSCQueuePush().
Definition at line 670 of file pcqueue.h.
References get_node_index(), memory_order_relaxed, and MPSCQueueStruct::nodes.
Referenced by MPSCQueuePop(), and MPSCQueueTop().
Definition at line 678 of file pcqueue.h.
References add_free_node(), MPSCQueueStruct::freeNodePool, get_node_index(), memory_order_relaxed, and MPSCQueueStruct::nodes.
Referenced by MPSCQueuePop().
Definition at line 690 of file pcqueue.h.
References memory_order_relaxed, MPSCQueueStruct::pull, MPSCQueueStruct::push, and WrappedDifference().
Definition at line 697 of file pcqueue.h.
References memory_order_relaxed, MPSCQueueStruct::pull, MPSCQueueStruct::push, and WrappedDifference().
static char* MPSCQueueTop | ( | MPSCQueue | Q | ) | [static] |
Definition at line 704 of file pcqueue.h.
References get_pop_node(), memory_order_acquire, MPSCQueueStruct::pull, and MPSCQueueStruct::push.
static char* MPSCQueuePop | ( | MPSCQueue | Q | ) | [static] |
Definition at line 719 of file pcqueue.h.
References check_mem_reclamation(), get_pop_node(), memory_order_acquire, MPSCQueueStruct::pull, and MPSCQueueStruct::push.
static void MPSCQueuePush | ( | MPSCQueue | Q, | |
char * | data | |||
) | [static] |
Definition at line 745 of file pcqueue.h.
References get_push_node(), memory_order_release, MPSCQueueStruct::pull, MPSCQueueStruct::push, QueueFull(), ReportOverflow(), and PUP::u.
static MPMCDataNode MPMCDataNodeCreate | ( | void | ) | [static] |
Definition at line 837 of file pcqueue.h.
References MPMCDataNodeStruct::data, malloc(), memory_order_relaxed, MPMCDataNodeStruct::num_popped, and PUP::u.
Referenced by mpmc_get_free_node(), and mpmc_get_push_node().
static FreeMPMCNodePool FreeMPMCNodePoolCreate | ( | void | ) | [static] |
Definition at line 848 of file pcqueue.h.
References malloc(), memory_order_relaxed, FreeMPMCNodePoolStruct::nodes, FreeMPMCNodePoolStruct::pull, FreeMPMCNodePoolStruct::push, and PUP::u.
Referenced by MPMCQueueCreate().
static void FreeMPMCNodePoolDestroy | ( | FreeMPMCNodePool | q | ) | [static] |
Definition at line 864 of file pcqueue.h.
References MPMCDataNodeStruct::data, free(), memory_order_relaxed, n, and FreeMPMCNodePoolStruct::nodes.
Referenced by MPMCQueueDestroy().
static MPMCDataNode mpmc_get_free_node | ( | FreeMPMCNodePool | q | ) | [static] |
Definition at line 879 of file pcqueue.h.
References memory_order_acquire, memory_order_relaxed, memory_order_release, MPMCDataNodeCreate(), FreeMPMCNodePoolStruct::nodes, FreeMPMCNodePoolStruct::pull, and FreeMPMCNodePoolStruct::push.
static void mpmc_add_free_node | ( | FreeMPMCNodePool | q, | |
MPMCDataNode | available | |||
) | [static] |
Definition at line 899 of file pcqueue.h.
References MPMCDataNodeStruct::data, free(), memory_order_acquire, memory_order_relaxed, memory_order_release, FreeMPMCNodePoolStruct::nodes, and FreeMPMCNodePoolStruct::push.
Referenced by mpmc_check_mem_reclamation().
static MPMCQueue MPMCQueueCreate | ( | void | ) | [static] |
Definition at line 919 of file pcqueue.h.
References MPMCQueueStruct::freeMPMCNodePool, FreeMPMCNodePoolCreate(), malloc(), memory_order_relaxed, MPMCQueueStruct::nodes, MPMCQueueStruct::pull, MPMCQueueStruct::push, and PUP::u.
Referenced by CmiNodeStateInit().
static void MPMCQueueDestroy | ( | MPMCQueue | Q | ) | [static] |
Definition at line 937 of file pcqueue.h.
References MPMCDataNodeStruct::data, free(), MPMCQueueStruct::freeMPMCNodePool, FreeMPMCNodePoolDestroy(), memory_order_relaxed, n, and MPMCQueueStruct::nodes.
static MPMCDataNode mpmc_get_push_node | ( | MPMCQueue | Q, | |
unsigned int | push_idx | |||
) | [static] |
Definition at line 957 of file pcqueue.h.
References free(), get_node_index(), MPMCDataNodeCreate(), and MPMCQueueStruct::nodes.
Referenced by MPMCQueuePush().
static MPMCDataNode mpmc_get_pop_node | ( | MPMCQueue | Q, | |
unsigned int | pull_idx | |||
) | [inline, static] |
Definition at line 983 of file pcqueue.h.
References get_node_index(), memory_order_relaxed, and MPMCQueueStruct::nodes.
Referenced by MPMCQueuePop(), and MPMCQueueTop().
static void mpmc_check_mem_reclamation | ( | MPMCQueue | Q, | |
unsigned int | pull_idx, | |||
MPMCDataNode | node | |||
) | [static] |
Definition at line 991 of file pcqueue.h.
References MPMCQueueStruct::freeMPMCNodePool, get_node_index(), memory_order_relaxed, mpmc_add_free_node(), MPMCQueueStruct::nodes, MPMCDataNodeStruct::num_popped, and PUP::u.
Referenced by MPMCQueuePop().
Definition at line 1005 of file pcqueue.h.
References memory_order_relaxed, MPMCQueueStruct::pull, and MPMCQueueStruct::push.
Referenced by CmiGetNonLocalNodeQ().
Definition at line 1010 of file pcqueue.h.
References memory_order_relaxed, MPMCQueueStruct::pull, and MPMCQueueStruct::push.
static char* MPMCQueueTop | ( | MPMCQueue | Q | ) | [static] |
Definition at line 1015 of file pcqueue.h.
References MPMCDataNodeStruct::data, memory_order_acquire, mpmc_get_pop_node(), MPMCQueueStruct::pull, and MPMCQueueStruct::push.
static char* MPMCQueuePop | ( | MPMCQueue | Q | ) | [static] |
Definition at line 1032 of file pcqueue.h.
References MPMCDataNodeStruct::data, memory_order_acquire, memory_order_relaxed, memory_order_release, mpmc_check_mem_reclamation(), mpmc_get_pop_node(), MPMCQueueStruct::pull, and MPMCQueueStruct::push.
Referenced by CmiGetNonLocalNodeQ().
static void MPMCQueuePush | ( | MPMCQueue | Q, | |
void * | data | |||
) | [static] |
Definition at line 1060 of file pcqueue.h.
References MPMCDataNodeStruct::data, memory_order_acquire, memory_order_release, mpmc_get_push_node(), MPMCQueueStruct::pull, MPMCQueueStruct::push, QueueFull(), ReportOverflow(), and PUP::u.
Referenced by CmiPushNode(), and CmiSendNodeSelf().
CpvDeclare | ( | PersistentSendsTable * | , | |
persistentSendsTableHead | ||||
) |
CpvDeclare | ( | PersistentSendsTable * | , | |
persistentSendsTableTail | ||||
) |
CpvDeclare | ( | int | , | |
persistentSendsTableCount | ||||
) |
CpvDeclare | ( | PersistentReceivesTable * | , | |
persistentReceivesTableHead | ||||
) |
CpvDeclare | ( | PersistentReceivesTable * | , | |
persistentReceivesTableTail | ||||
) |
CpvDeclare | ( | int | , | |
persistentReceivesTableCount | ||||
) |
CpvDeclare | ( | PersistentHandle * | , | |
phs | ||||
) |
CpvDeclare | ( | int | , | |
phsSize | ||||
) |
CpvDeclare | ( | int | , | |
curphs | ||||
) |
void initRecvSlot | ( | PersistentReceivesTable * | slot | ) |
void initSendSlot | ( | PersistentSendsTable * | slot | ) |
void swapSendSlotBuffers | ( | PersistentSendsTable * | slot | ) |
Definition at line 77 of file persist-comm.C.
void swapRecvSlotBuffers | ( | PersistentReceivesTable * | slot | ) |
Definition at line 95 of file persist-comm.C.
PersistentHandle getFreeSendSlot | ( | void | ) |
Definition at line 113 of file persist-comm.C.
References initSendSlot(), and malloc().
Referenced by CmiCreateCompressPersistent(), CmiCreateCompressPersistentSize(), CmiCreatePersistent(), and CmiRegisterReceivePersistent().
PersistentHandle getFreeRecvSlot | ( | void | ) |
Definition at line 129 of file persist-comm.C.
References initRecvSlot(), and malloc().
Referenced by CmiCreateReceiverPersistent(), and persistentRequestHandler().
PersistentHandle CmiCreateCompressPersistent | ( | int | destPE, | |
int | maxBytes, | |||
int | compressStart, | |||
int | type | |||
) |
Definition at line 161 of file persist-comm.C.
References CmiAlloc(), CmiMyPe(), CmiNodeOf(), Converse::CmiSyncSendAndFree(), _PersistentRequestMsg::compressStart, _PersistentRequestMsg::dataType, getFreeSendSlot(), h, _PersistentRequestMsg::maxBytes, msg, persistentRequestHandlerIdx, _PersistentRequestMsg::requestorPE, and _PersistentRequestMsg::sourceHandler.
Referenced by CmiCreateCompressNodePersistent().
PersistentHandle CmiCreateCompressPersistentSize | ( | int | destPE, | |
int | maxBytes, | |||
int | compressStart, | |||
int | compressSize, | |||
int | type | |||
) |
Definition at line 192 of file persist-comm.C.
References CmiAlloc(), CmiMyPe(), CmiNodeOf(), Converse::CmiSyncSendAndFree(), _PersistentRequestMsg::compressStart, _PersistentRequestMsg::dataType, getFreeSendSlot(), h, _PersistentRequestMsg::maxBytes, msg, persistentRequestHandlerIdx, _PersistentRequestMsg::requestorPE, and _PersistentRequestMsg::sourceHandler.
Referenced by CmiCreateCompressNodePersistentSize().
PersistentHandle CmiCreatePersistent | ( | int | destPE, | |
int | maxBytes | |||
) |
Definition at line 222 of file persist-comm.C.
References CmiAlloc(), CmiMyPe(), CmiNodeOf(), Converse::CmiSyncSendAndFree(), getFreeSendSlot(), h, _PersistentRequestMsg::maxBytes, msg, persistentRequestHandlerIdx, _PersistentRequestMsg::requestorPE, and _PersistentRequestMsg::sourceHandler.
Referenced by CmiCreateNodePersistent().
static void persistentNoDecompressHandler | ( | void * | msg | ) | [static] |
Definition at line 250 of file persist-comm.C.
References CldRestoreHandler(), CmiHandleMessage(), and size.
Referenced by CmiPersistentInit().
static void persistentDecompressHandler | ( | void * | msg | ) | [static] |
Definition at line 265 of file persist-comm.C.
References CldRestoreHandler(), CmiHandleMessage(), CmiPrintf(), decompressChar(), decompressFloatingPoint(), decompressLz4(), decompressZlib(), free(), int, malloc(), originalSize, and size.
Referenced by CmiPersistentInit().
int CompressPersistentMsg | ( | PersistentHandle | h, | |
int | size, | |||
void ** | m | |||
) |
Definition at line 331 of file persist-comm.C.
References CldSwitchHandler(), CmiAlloc(), CmiFree(), CmiPrintf(), CmiReference(), compressChar(), dest, int, msg, persistentDecompressHandlerIdx, and persistentNoDecompressHandlerIdx.
int CompressPersistentMsg | ( | PersistentHandle | h, | |
int | size, | |||
void * | msg | |||
) |
Definition at line 392 of file persist-comm.C.
References CldRestoreHandler(), CldSwitchHandler(), CmiAlloc(), CmiFree(), CmiPrintf(), CmiReference(), compressChar(), compressFloatingPoint(), compressLz4(), compressZlib(), decompressChar(), dest, free(), int, LZ4_compressBound(), malloc(), persistentDecompressHandlerIdx, and persistentNoDecompressHandlerIdx.
PersistentHandle CmiCreateNodePersistent | ( | int | destNode, | |
int | maxBytes | |||
) |
Definition at line 524 of file persist-comm.C.
References CmiCreatePersistent(), and CmiNodeFirst().
PersistentHandle CmiCreateCompressNodePersistent | ( | int | destNode, | |
int | maxBytes, | |||
int | start, | |||
int | type | |||
) |
Definition at line 531 of file persist-comm.C.
References CmiCreateCompressPersistent(), and CmiNodeFirst().
PersistentHandle CmiCreateCompressNodePersistentSize | ( | int | destNode, | |
int | maxBytes, | |||
int | start, | |||
int | compressSize, | |||
int | type | |||
) |
Definition at line 539 of file persist-comm.C.
References CmiCreateCompressPersistentSize(), and CmiNodeFirst().
static void persistentRequestHandler | ( | void * | env | ) | [static] |
Definition at line 548 of file persist-comm.C.
References buf, CmiAlloc(), CmiFree(), Converse::CmiSyncSendAndFree(), _PersistentRequestMsg::compressStart, _PersistentRequestMsg::dataType, getFreeRecvSlot(), h, malloc(), _PersistentRequestMsg::maxBytes, msg, persistentReqGrantedHandlerIdx, _PersistentRequestMsg::requestorPE, and _PersistentRequestMsg::sourceHandler.
Referenced by CmiPersistentInit().
static void persistentReqGrantedHandler | ( | void * | env | ) | [static] |
Definition at line 590 of file persist-comm.C.
References _PersistentReqGrantedMsg::buf, CmiFree(), CmiNodeOf(), _PersistentReqGrantedMsg::destDataHandler, _PersistentReqGrantedMsg::destHandler, h, LrtsSendPersistentMsg(), msg, and _PersistentReqGrantedMsg::sourceHandler.
Referenced by CmiPersistentInit().
PersistentReq CmiCreateReceiverPersistent | ( | int | maxBytes | ) |
Definition at line 624 of file persist-comm.C.
References PersistentReq::bufPtr, CmiMyPe(), getFreeRecvSlot(), h, malloc(), PersistentReq::maxBytes, PersistentReq::myHand, and PersistentReq::pe.
PersistentHandle CmiRegisterReceivePersistent | ( | PersistentReq | recvHand | ) |
Definition at line 651 of file persist-comm.C.
References PersistentReq::bufPtr, getFreeSendSlot(), h, PersistentReq::maxBytes, PersistentReq::myHand, and PersistentReq::pe.
void persistentDestroyHandler | ( | void * | env | ) |
Definition at line 677 of file persist-comm.C.
References CmiFree(), _PersistentDestroyMsg::destHandlerIndex, free(), h, and msg.
Referenced by CmiPersistentInit().
void CmiDestroyPersistent | ( | PersistentHandle | h | ) |
Definition at line 708 of file persist-comm.C.
References CmiAlloc(), Converse::CmiSyncSendAndFree(), _PersistentDestroyMsg::destHandlerIndex, free(), msg, and persistentDestroyHandlerIdx.
void CmiDestroyAllPersistent | ( | void | ) |
Definition at line 739 of file persist-comm.C.
References free().
void CmiPersistentInit | ( | void | ) |
Definition at line 767 of file persist-comm.C.
References CmiRegisterHandler(), persistentDecompressHandler(), persistentDecompressHandlerIdx, persistentDestroyHandler(), persistentDestroyHandlerIdx, persistentNoDecompressHandler(), persistentNoDecompressHandlerIdx, persistentReqGrantedHandler(), persistentReqGrantedHandlerIdx, persistentRequestHandler(), and persistentRequestHandlerIdx.
Referenced by ConverseCommonInit().
void CmiUsePersistentHandle | ( | PersistentHandle * | p, | |
int | n | |||
) |
Definition at line 807 of file persist-comm.C.
References CmiAbort().
void CmiPersistentOneSend | ( | void | ) |
Definition at line 822 of file persist-comm.C.
Referenced by _skipCldEnqueue().
int _immediateReady = 0 |
int _immRunning = 0 |
Definition at line 17 of file immediate.C.
Referenced by CmiDelayImmediate(), CmiHandleImmediate(), CmiHandleImmediateMessage(), and CmiSendNodeSelf().
void* currentImmediateMsg = NULL [static] |
Definition at line 25 of file immediate.C.
Referenced by CmiDelayImmediate(), and CmiHandleImmediate().
struct CmiStateStruct Cmi_default_state [static] |
Definition at line 97 of file machine-smp.C.
Referenced by CmiDestroyLocks(), and CmiStartThreads().
Definition at line 99 of file machine-smp.C.
Referenced by CmiDestroyLocks(), and CmiStartThreads().
static CmiNodeLock comm_mutex [static] |
Definition at line 101 of file machine-smp.C.
Referenced by CmiDestroyLocks(), CmiStartThreads(), and ConverseInit().
static pthread_key_t Cmi_state_key = 0xFFFFFFFF [static] |
Definition at line 106 of file machine-smp.C.
Referenced by call_startfn(), CmiGetState(), and CmiStartThreads().
static CmiState Cmi_state_vector = 0 [static] |
Definition at line 107 of file machine-smp.C.
volatile LONG entered_barrier_count[CMI_NUM_NODE_BARRIER_TYPES] = {0} [static] |
volatile LONG exited_barrier_count[CMI_NUM_NODE_BARRIER_TYPES] = {0} [static] |
HANDLE entrance_semaphore[CMI_NUM_NODE_BARRIER_TYPES] [static] |
Definition at line 183 of file machine-smp.C.
Referenced by CmiDestroyLocks(), CmiNodeBarrierCount(), and CmiStartThreads().
HANDLE exit_semaphore[CMI_NUM_NODE_BARRIER_TYPES] [static] |
Definition at line 184 of file machine-smp.C.
Referenced by CmiDestroyLocks(), CmiNodeBarrierCount(), and CmiStartThreads().
int _Cmi_sleepOnIdle = 0 |
Definition at line 273 of file machine-smp.C.
Referenced by _initCharm(), CmiGetNonLocalNodeQ(), CmiPushNode(), CmiPushPE(), and ConverseCommonInit().
CMK_THREADLOCAL struct CmiStateStruct Cmi_mystate [static] |
Definition at line 341 of file machine-smp.C.
Referenced by ampiInit(), CkCheckpointMgr::Checkpoint(), CkMemCheckPT::isMaster(), VerboseProgress_t::printLast(), and VerboseSurfProgress_t::printLast().
pthread_cond_t barrier_cond = PTHREAD_COND_INITIALIZER |
Definition at line 342 of file machine-smp.C.
pthread_mutex_t barrier_mutex = PTHREAD_MUTEX_INITIALIZER |
Definition at line 343 of file machine-smp.C.
int comm_mutex_isLocked = 0 [static] |
Definition at line 376 of file machine-smp.C.
pthread_t* _Cmi_mypidlist |
Definition at line 463 of file machine-smp.C.
FILE* debugLog |
Definition at line 282 of file convcore.C.
Referenced by check_and_set_queue_parameters(), and ConverseInit().
Definition at line 283 of file convcore.C.
Referenced by check_and_set_queue_parameters(), and ConverseInit().
Definition at line 287 of file convcore.C.
Definition at line 60 of file persist-comm.C.
Referenced by CmiCreateCompressPersistent(), CmiCreateCompressPersistentSize(), CmiCreatePersistent(), and CmiPersistentInit().
Definition at line 61 of file persist-comm.C.
Referenced by CmiPersistentInit(), and persistentRequestHandler().
Definition at line 62 of file persist-comm.C.
Referenced by CmiDestroyPersistent(), and CmiPersistentInit().
Definition at line 63 of file persist-comm.C.
Referenced by CmiPersistentInit(), and CompressPersistentMsg().
Definition at line 64 of file persist-comm.C.
Referenced by CmiPersistentInit(), and CompressPersistentMsg().