OpenMPI 0.1.1

- Main Page
- Related Pages
- Modules
- Data Structures
- Files

- File List
- Globals

Data Structures | Macros | Typedefs | Functions | Variables
btl_vader.h File Reference
`#include "ompi_config.h"`
`#include <stddef.h>`
`#include <stdlib.h>`
`#include <string.h>`
`#include <xpmem.h>`
`#include "opal/include/opal/align.h"`
`#include "opal/class/opal_free_list.h"`
`#include "opal/sys/atomic.h"`
`#include "ompi/mca/btl/btl.h"`
`#include "ompi/mca/mpool/mpool.h"`
`#include "ompi/mca/mpool/base/base.h"`
`#include "ompi/mca/mpool/sm/mpool_sm.h"`
`#include "ompi/mca/common/sm/common_sm.h"`
`#include "ompi/mca/rcache/rcache.h"`
`#include "ompi/mca/rcache/base/base.h"`

Go to the source code of this file.

## Data Structures
struct | mca_btl_vader_component_t
| Shared Memory (VADER) BTL module. More...
struct | mca_btl_vader_t
| VADER BTL Interface. More...

## Macros
#define | min(a, b) ((a) < (b) ? (a) : (b))
#define | VADER_CACHE_LINE_PAD 128
#define | VADER_MAX_ADDRESS ((uintptr_t)0x7ffffffff000)
#define | VIRTUAL2RELATIVE(VADDR) ((intptr_t)(VADDR) - (intptr_t)mca_btl_vader_component.shm_bases[mca_btl_vader_component.my_smp_rank])
#define | RELATIVE2VIRTUAL(OFFSET) ((intptr_t)(OFFSET) + (intptr_t)mca_btl_vader_component.shm_bases[mca_btl_vader_component.my_smp_rank])

## Typedefs
typedef struct mca_btl_vader_component_t | mca_btl_vader_component_t
typedef struct mca_btl_vader_t | mca_btl_vader_t

## Functions
static mca_mpool_base_registration_t * | vader_get_registation (int peer_smp_rank, void *rem_ptr, size_t size, int flags)
static void | vader_return_registration (mca_mpool_base_registration_t *reg, int peer_smp_rank)
static void * | vader_reg_to_ptr (mca_mpool_base_registration_t *reg, void *rem_ptr)
static void | vader_memmove (void *dst, void *src, size_t size)
int | mca_btl_vader_send (struct mca_btl_base_module_t *btl, struct mca_btl_base_endpoint_t *endpoint, struct mca_btl_base_descriptor_t *descriptor, mca_btl_base_tag_t tag)
| Initiate a send to the peer. More...
int | mca_btl_vader_sendi (struct mca_btl_base_module_t *btl, struct mca_btl_base_endpoint_t *endpoint, struct opal_convertor_t *convertor, void *header, size_t header_size, size_t payload_size, uint8_t order, uint32_t flags, mca_btl_base_tag_t tag, mca_btl_base_descriptor_t **descriptor)
| Initiate an inline send to the peer. More...
int | mca_btl_vader_put (struct mca_btl_base_module_t *btl, struct mca_btl_base_endpoint_t *endpoint, struct mca_btl_base_descriptor_t *des)
| Initiate an synchronous put. More...
int | mca_btl_vader_get (struct mca_btl_base_module_t *btl, struct mca_btl_base_endpoint_t *endpoint, struct mca_btl_base_descriptor_t *des)
| Initiate an synchronous get. More...
mca_btl_base_descriptor_t * | mca_btl_vader_alloc (struct mca_btl_base_module_t *btl, struct mca_btl_base_endpoint_t *endpoint, uint8_t order, size_t size, uint32_t flags)
| Allocate a segment. More...

## Variables
int | mca_btl_vader_memcpy_limit
int | mca_btl_vader_log_align
int | mca_btl_vader_max_inline_send
OMPI_MODULE_DECLSPEC mca_btl_vader_component_t | mca_btl_vader_component
OMPI_MODULE_DECLSPEC mca_btl_vader_t | mca_btl_vader

## Function Documentation

mca_btl_base_descriptor_t* mca_btl_vader_alloc | ( | struct mca_btl_base_module_t * | btl,
|  | struct mca_btl_base_endpoint_t * | endpoint,
|  | uint8_t | order,
|  | size_t | size,
|  | uint32_t | flags
| ) |  |

Allocate a segment.

Parameters

  btl | (IN) BTL module
  size | (IN) Request segment size.

References mca_btl_base_descriptor_t::des_dst, mca_btl_base_descriptor_t::des_flags, mca_btl_base_descriptor_t::des_src, mca_btl_base_descriptor_t::des_src_cnt, mca_btl_vader_component_t::eager_limit, mca_btl_base_descriptor_t::order, and mca_btl_base_segment_t::seg_len.

Referenced by mca_btl_vader_sendi().

int mca_btl_vader_get | ( | struct mca_btl_base_module_t * | btl,
|  | struct mca_btl_base_endpoint_t * | endpoint,
|  | struct mca_btl_base_descriptor_t * | des
| ) |  |

Initiate an synchronous get.

Parameters

  btl | (IN) BTL module
  endpoint | (IN) BTL addressing information
  descriptor | (IN) Description of the data to be transferred

References mca_btl_base_descriptor_t::des_dst, mca_btl_base_descriptor_t::des_src, mca_btl_base_endpoint_t::peer_smp_rank, mca_btl_base_segment_t::seg_key, and mca_btl_base_segment_t::seg_len.

int mca_btl_vader_put | ( | struct mca_btl_base_module_t * | btl,
|  | struct mca_btl_base_endpoint_t * | endpoint,
|  | struct mca_btl_base_descriptor_t * | des
| ) |  |

Initiate an synchronous put.

Parameters

  btl | (IN) BTL module
  endpoint | (IN) BTL addressing information
  descriptor | (IN) Description of the data to be transferred

References mca_btl_base_descriptor_t::des_dst, mca_btl_base_descriptor_t::des_flags, mca_btl_base_descriptor_t::des_src, mca_btl_base_endpoint_t::peer_smp_rank, mca_btl_base_segment_t::seg_key, and mca_btl_base_segment_t::seg_len.

int mca_btl_vader_send | ( | struct mca_btl_base_module_t * | btl,
|  | struct mca_btl_base_endpoint_t * | endpoint,
|  | struct mca_btl_base_descriptor_t * | descriptor,
|  | mca_btl_base_tag_t | tag
| ) |  |

Initiate a send to the peer.

Parameters

  btl | (IN) BTL module
  peer | (IN) BTL peer addressing

References mca_btl_vader_component_t::active_sends, mca_btl_base_descriptor_t::des_flags, opal_list_append, mca_btl_base_endpoint_t::peer_smp_rank, mca_btl_base_segment_t::seg_addr, and mca_btl_base_segment_t::seg_len.

int mca_btl_vader_sendi | ( | struct mca_btl_base_module_t * | btl,
|  | struct mca_btl_base_endpoint_t * | endpoint,
|  | struct opal_convertor_t * | convertor,
|  | void * | header,
|  | size_t | header_size,
|  | size_t | payload_size,
|  | uint8_t | order,
|  | uint32_t | flags,
|  | mca_btl_base_tag_t | tag,
|  | mca_btl_base_descriptor_t ** | descriptor
| ) |  |

Initiate an inline send to the peer.

Parameters

  btl | (IN) BTL module
  peer | (IN) BTL peer addressing

References mca_btl_vader_component_t::active_sends, mca_btl_vader_component_t::eager_limit, mca_btl_vader_alloc(), opal_list_append, mca_btl_base_endpoint_t::peer_smp_rank, and mca_btl_base_segment_t::seg_addr.