arch/util/machine-xpmem.C File Reference
There are three
options here for synchronization: XPMEM_FENCE is the default.
More...
Go to the source code of this file.
|
Data Structures |
struct | sharedBufHeader |
| This struct is used as the first portion of a shared memory region, followed by data. More...
|
struct | sharedBufData |
struct | OutgoingMsgRec |
struct | XpmemSendQ |
struct | XpmemContext |
Enumerations |
enum | entities { SENDER,
RECEIVER,
SENDER,
RECEIVER
} |
Functions |
void | calculateNodeSizeAndRank (char **) |
void | setupSharedBuffers (void) |
void | initAllSendQs (void) |
void | CmiExitXpmem (void) |
static void | cleanupOnAllSigs (int signo) |
void | CmiInitXpmem (char **argv) |
void | tearDownSharedBuffers (void) |
void | freeSharedBuffers (void) |
static int | CmiValidXpmem (int node, int size) |
int | XpmemRank (int dstnode) |
void | pushSendQ (XpmemSendQ *q, char *msg, int size, int *refcount) |
int | sendMessage (char *msg, int size, int *refcount, sharedBufData *dstBuf, XpmemSendQ *dstSendQ) |
int | flushSendQ (XpmemSendQ *sendQ) |
int | sendMessageRec (OutgoingMsgRec *omg, sharedBufData *dstBuf, XpmemSendQ *dstSendQ) |
void | CmiSendMessageXpmem (char *msg, int size, int dstnode, int *refcount) |
Variables |
static int | XPMEMBUFLEN = (1024*1024*4) |
static int | SENDQSTARTSIZE = 256 |
static int | sendQ_head_index = -1 |
XpmemContext * | xpmemContext = NULL |
static int | xpmem_fd |
static int | pxshm_freed = 0 |
Detailed Description
There are three
options here for synchronization: XPMEM_FENCE is the default.
It uses memory fences XPMEM_OSSPINLOCK will cause OSSpinLock's to be used (available on OSX) XPMEM_LOCK will cause POSIX semaphores to be used
created by Gengbin Zheng, September 2011
Definition in file machine-xpmem.C.