PPL Logo

arch/net/machine-ibud.c File Reference

ibverbs unreliable datagram implementation of Converse NET version

contains only ibverbs specific code for:

More...

Go to the source code of this file.

Data Structures

struct  ibudstruct
struct  infiPacketHeader
struct  infiAddr
 Represents a qp used to send messages to another node There is one for each remote node. More...
struct  infiPacketStruct
struct  infiContext
struct  infiOtherNodeData
struct  CmiIdleState
struct  infiBuffer
struct  infiCmiChunkMetaDataStruct
struct  infiBufferPool
 At the moment it is a simple pool with just a list of buffers TODO; extend it to make it an element in a linklist of pools. More...
struct  infiCmiChunkPool

Typedefs

typedef struct infiPacketStructinfiPacket
typedef struct
infiCmiChunkMetaDataStruct 
infiCmiChunkMetaData

Enumerations

enum  { INFI_HEADER_DATA = 21, INFI_DATA }

Functions

const char * ibv_wc_status_str (enum ibv_wc_status status)
void infi_unregAndFreeMeta (void *md)
static void * getInfiCmiChunk (int dataSize)
void * infi_CmiAlloc (int size)
void infi_CmiFree (void *ptr)
static void initInfiCmiChunkPools ()
 There are INFINUMPOOLS of memory.
void postInitialRecvs (struct infiBufferPool *recvBufferPool, int numRecvs, int sizePerBuffer)
 Post the buffers as recv work requests.
struct infiBufferPoolallocateInfiBufferPool (int numRecvs, int sizePerBuffer)
void infiPostInitialRecvs ()
static CmiIdleStateCmiNotifyGetState (void)
static void CmiNotifyStillIdle (CmiIdleState *s)
static void CmiNotifyBeginIdle (CmiIdleState *s)
static void CommunicationServer_lock (int toBuffer)
static void CommunicationServer_nolock (int withDelayMs)
void CmiNotifyIdle (void)
int CheckSocketsReady (int withDelayMs)
static infiPacket newPacket ()
static void EnqueuePacket (OtherNode node, infiPacket packet, int size, struct ibv_mr *dataKey)
 Packetize this data and send it.
static void EnqueueDataPacket (OutgoingMsg ogm, char *data, int size, OtherNode node, int rank, int broot)
void DeliverViaNetwork (OutgoingMsg ogm, OtherNode node, int rank, unsigned int broot, int copy)
static void ServiceCharmrun_nolock ()
static void handoverMessage (char *newmsg, int total_size, int rank, int broot, int toBuffer)
static void processMessage (int nodeNo, int len, char *msg, const int toBuffer)
void processSendWC (struct ibv_wc *sendWC)
void processRecvWC (struct ibv_wc *recvWC, const int toBuffer)
static int pollCq (const int toBuffer, struct ibv_cq *cq)
static uint16_t getLocalLid (struct ibv_context *dev_context, int port)
struct infiAddrinitinfiAddr (int node, int lid, int qpn, int psn)
struct infiOtherNodeDatainitinfiData (int node, int lid, int qpn, int psn)
void CmiHandleImmediate ()
static void CommunicationServer (int sleepTime, int where)
static void sendBarrierMessage (int pe)
static void recvBarrierMessage ()
int CmiBarrier ()
int CmiBarrierZero ()
void createqp (struct ibv_device *dev)
void createah ()
void CmiMachineInit (char **argv)
void CmiCommunicationInit (char **argv)
void CmiMachineExit ()

Variables

enum ibv_mtu mtu = IBV_MTU_2048
static int mtu_size
static int maxrecvbuffers
static int maxtokens
static int firstBinSize
static int blockThreshold
static int blockAllocRatio
static int packetsize
struct ibudstruct ibud
static struct infiContextcontext
static const char *const __ibv_wc_status_str []
infiCmiChunkPool infiCmiChunkPools [INFINUMPOOLS]


Detailed Description

ibverbs unreliable datagram implementation of Converse NET version

contains only ibverbs specific code for:

Eric Shook and Esteban Meneses - Jul 22, 2008

Definition in file machine-ibud.c.


Generated on Sat May 26 08:08:05 2012 for Charm++ by  doxygen 1.5.5