25 #include "ompi_config.h"
26 #include <sys/types.h>
30 #include "ompi/class/ompi_free_list.h"
31 #include "opal/mca/event/event.h"
38 #ifdef HAVE_MX_EXTENSIONS_H
39 #include <mx_extensions.h>
47 #define BTL_MX_RECV_MASK 0x00000000000000ffULL
48 #define BTL_MX_PUT_MASK 0xffffffffffffffffULL
89 int32_t mx_connection_retries;
96 #if MX_HAVE_MAPPER_STATE
139 int *num_btl_modules,
140 bool allow_multi_user_threads,
141 bool have_hidden_threads
216 mca_btl_base_tag_t tag
231 mca_btl_base_tag_t tag,
struct mca_btl_mx_module_t ** mx_btls
array of available BTL modules
Definition: btl_mx.h:61
int mca_btl_mx_send(struct mca_btl_base_module_t *btl, struct mca_btl_base_endpoint_t *btl_peer, struct mca_btl_base_descriptor_t *descriptor, mca_btl_base_tag_t tag)
Initiate an asynchronous send.
Definition: btl_mx.c:509
A descriptor that holds the parameters to a send/put/get operation along w/ a callback routine that i...
Definition: btl.h:275
void(* mca_btl_base_module_recv_cb_fn_t)(struct mca_btl_base_module_t *btl, mca_btl_base_tag_t tag, mca_btl_base_descriptor_t *descriptor, void *cbdata)
Callback function that is called asynchronously on receipt of data by the transport layer...
Definition: btl.h:391
Definition: opal_bitmap.h:53
ompi_free_list_t mx_send_user_frags
free list of mx user send fragments
Definition: btl_mx.h:92
int32_t mx_support_self
true if we want to activate the MX support for self communications
Definition: btl_mx.h:78
int mca_btl_mx_add_procs(struct mca_btl_base_module_t *btl, size_t nprocs, struct ompi_proc_t **procs, struct mca_btl_base_endpoint_t **peers, opal_bitmap_t *reachable)
PML->BTL notification of change in the process list.
Definition: btl_mx.c:36
int mca_btl_mx_del_procs(struct mca_btl_base_module_t *btl, size_t nprocs, struct ompi_proc_t **procs, struct mca_btl_base_endpoint_t **peers)
PML->BTL notification of change in the process list.
Definition: btl_mx.c:97
mca_btl_base_module_t ** mca_btl_mx_component_init(int *num_btl_modules, bool allow_multi_user_threads, bool have_hidden_threads)
MX component initialization.
Definition: btl_mx_component.c:424
Definition: mutex_unix.h:53
int mca_btl_mx_ft_event(int state)
Fault Tolerance Event Notification Function.
Definition: btl_mx.c:625
MX BTL component.
Definition: btl_mx.h:54
Remote Open MPI process structure.
Definition: proc.h:56
Macros to help interaction between hwloc and Myrinet Express.
mca_btl_base_descriptor_t * mca_btl_mx_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 descriptor with a segment of the requested size.
Definition: btl_mx.c:170
int32_t mx_posted_request
number of posted MX request
Definition: btl_mx.h:125
int mca_btl_mx_register(struct mca_btl_base_module_t *btl, mca_btl_base_tag_t tag, mca_btl_base_module_recv_cb_fn_t cbfunc, void *cbdata)
Register a callback function that is called on receipt of a fragment.
Definition: btl_mx.c:112
int32_t mx_bonding
true if MX is in charge of doing the device bonding
Definition: btl_mx.h:80
mca_btl_base_descriptor_t * mca_btl_mx_prepare_dst(struct mca_btl_base_module_t *btl, struct mca_btl_base_endpoint_t *peer, struct mca_mpool_base_registration_t *, struct opal_convertor_t *convertor, uint8_t order, size_t reserve, size_t *size, uint32_t flags)
Prepare a descriptor for send/rdma using the supplied convertor.
Definition: btl_mx.c:304
int32_t mx_max_posted_recv
number of posted receives on each NIC
Definition: btl_mx.h:70
mca_btl_base_component_2_0_0_t super
base BTL component
Definition: btl_mx.h:55
int mca_btl_mx_component_progress(void)
MX component progress.
Definition: btl_mx_component.c:577
opal_mutex_t mx_lock
lock for accessing module state
Definition: btl_mx.h:94
int mca_btl_mx_finalize(struct mca_btl_base_module_t *btl)
Cleanup any resources held by the BTL.
Definition: btl_mx.c:610
mx_endpoint_addr_t mx_endpoint_addr
local MX endpoint address
Definition: btl_mx.h:118
int32_t mx_max_btls
number of hcas available to the MX component
Definition: btl_mx.h:58
opal_list_t mx_procs
list of mx proc structures
Definition: btl_mx.h:85
Byte Transfer Layer (BTL)
Definition: ompi_free_list.h:39
mca_btl_base_descriptor_t * mca_btl_mx_prepare_src(struct mca_btl_base_module_t *btl, struct mca_btl_base_endpoint_t *peer, struct mca_mpool_base_registration_t *, struct opal_convertor_t *convertor, uint8_t order, size_t reserve, size_t *size, uint32_t flags)
Prepare a descriptor for send/rdma using the supplied convertor.
Definition: btl_mx.c:219
State of ELAN endpoint connection.
Definition: btl_elan_endpoint.h:33
uint32_t mx_unique_network_id
unique identifier for this BTL, based on the MAC address of the mapper used to route messages...
Definition: btl_mx.h:119
BTL component descriptor.
Definition: btl.h:411
Copyright (c) 2004-2007 The Trustees of Indiana University and Indiana University Research and Techno...
Definition: opal_convertor.h:90
Definition: opal_list.h:147
int mca_btl_mx_free(struct mca_btl_base_module_t *btl, mca_btl_base_descriptor_t *des)
Return a segment allocated by this BTL.
Definition: btl_mx.c:200
int32_t mx_support_sharedmem
true if we want to activate the MX support for shared memory
Definition: btl_mx.h:76
int32_t mx_free_list_num
initial size of free lists
Definition: btl_mx.h:64
BTL Module Interface.
Definition: btl_mx.h:115
opal_mutex_t mx_lock
lock for accessing module state
Definition: btl_mx.h:126
int32_t mx_free_list_max
maximum size of free lists
Definition: btl_mx.h:67
int32_t mx_free_list_inc
number of elements to alloc when growing free lists
Definition: btl_mx.h:73
BTL module interface functions and attributes.
Definition: btl.h:786
int32_t mx_use_unexpected
true if Open MPI is allowed to register an unexpected handler with the MX library ...
Definition: btl_mx.h:82
mx_endpoint_t mx_endpoint
local MX endpoint
Definition: btl_mx.h:117
opal_list_t mx_peers
list of peers
Definition: btl_mx.h:123
ompi_free_list_t mx_send_eager_frags
free list of mx eager send fragments
Definition: btl_mx.h:91
mca_btl_base_module_t super
base BTL interface
Definition: btl_mx.h:116