1
1
This commit was SVN r8580.
Этот коммит содержится в:
Tim Woodall 2005-12-21 15:11:40 +00:00
родитель 1f9a559245
Коммит 3c170c410c
3 изменённых файлов: 27 добавлений и 20 удалений

Просмотреть файл

@ -25,25 +25,26 @@
static void mca_bml_base_endpoint_construct(mca_bml_base_endpoint_t* proc)
static void mca_bml_base_endpoint_construct(mca_bml_base_endpoint_t* ep)
{
proc->btl_proc = NULL;
proc->btl_rdma_offset = 0;
proc->btl_flags = 0;
ep->btl_proc = NULL;
ep->btl_rdma_offset = 0;
ep->btl_max_send_size = 0;
ep->btl_flags = 0;
OBJ_CONSTRUCT(&proc->btl_lock, opal_mutex_t);
OBJ_CONSTRUCT(&proc->btl_eager, mca_bml_base_btl_array_t);
OBJ_CONSTRUCT(&proc->btl_send, mca_bml_base_btl_array_t);
OBJ_CONSTRUCT(&proc->btl_rdma, mca_bml_base_btl_array_t);
OBJ_CONSTRUCT(&ep->btl_lock, opal_mutex_t);
OBJ_CONSTRUCT(&ep->btl_eager, mca_bml_base_btl_array_t);
OBJ_CONSTRUCT(&ep->btl_send, mca_bml_base_btl_array_t);
OBJ_CONSTRUCT(&ep->btl_rdma, mca_bml_base_btl_array_t);
}
static void mca_bml_base_endpoint_destruct(mca_bml_base_endpoint_t* proc)
static void mca_bml_base_endpoint_destruct(mca_bml_base_endpoint_t* ep)
{
OBJ_DESTRUCT(&proc->btl_lock);
OBJ_DESTRUCT(&proc->btl_eager);
OBJ_DESTRUCT(&proc->btl_send);
OBJ_DESTRUCT(&proc->btl_rdma);
OBJ_DESTRUCT(&ep->btl_lock);
OBJ_DESTRUCT(&ep->btl_eager);
OBJ_DESTRUCT(&ep->btl_send);
OBJ_DESTRUCT(&ep->btl_rdma);
}

Просмотреть файл

@ -204,13 +204,14 @@ static inline mca_bml_base_btl_t* mca_bml_base_btl_array_find(
*/
struct mca_bml_base_endpoint_t {
mca_pml_proc_t super;
struct ompi_proc_t *btl_proc; /**< back-pointer to ompi_proc_t */
opal_mutex_t btl_lock; /**< lock to protect against concurrent access */
int btl_flags; /**< prefered method of accessing this peer */
size_t btl_rdma_offset; /**< max of min rdma size for available rmda btls */
mca_bml_base_btl_array_t btl_eager; /**< array of btls to use for first fragments */
mca_bml_base_btl_array_t btl_send; /**< array of btls to use for remaining fragments */
mca_bml_base_btl_array_t btl_rdma; /**< array of btls that support (prefer) rdma */
struct ompi_proc_t *btl_proc; /**< back-pointer to ompi_proc_t */
opal_mutex_t btl_lock; /**< lock to protect against concurrent access */
int btl_flags; /**< prefered method of accessing this peer */
size_t btl_rdma_offset; /**< max of min rdma size for available rmda btls */
size_t btl_max_send_size; /**< min of max send size for available send btls */
mca_bml_base_btl_array_t btl_eager; /**< array of btls to use for first fragments */
mca_bml_base_btl_array_t btl_send; /**< array of btls to use for remaining fragments */
mca_bml_base_btl_array_t btl_rdma; /**< array of btls that support (prefer) rdma */
};
typedef struct mca_bml_base_endpoint_t mca_bml_base_endpoint_t;

Просмотреть файл

@ -248,6 +248,7 @@ int mca_bml_r2_add_procs(
mca_bml_base_btl_array_reserve(&bml_endpoint->btl_eager, mca_bml_r2.num_btl_modules);
mca_bml_base_btl_array_reserve(&bml_endpoint->btl_send, mca_bml_r2.num_btl_modules);
mca_bml_base_btl_array_reserve(&bml_endpoint->btl_rdma, mca_bml_r2.num_btl_modules);
bml_endpoint->btl_max_send_size = -1;
bml_endpoint->btl_proc = proc;
proc->proc_pml = (struct mca_pml_proc_t*) bml_endpoint;
@ -368,6 +369,10 @@ int mca_bml_r2_add_procs(
*bml_btl_new = *bml_btl;
}
/* set endpoint max send size as min of available btls */
if(bml_endpoint->btl_max_send_size > btl->btl_max_send_size)
bml_endpoint->btl_max_send_size = btl->btl_max_send_size;
/* check flags - is rdma prefered */
if(btl->btl_flags & (MCA_BTL_FLAGS_PUT|MCA_BTL_FLAGS_GET) &&
proc->proc_arch == ompi_proc_local_proc->proc_arch) {