OSHMEM: Fix call prepare_src with a NULL endpoint
see issue: https://svn.open-mpi.org/trac/ompi/ticket/4399 Refs trac:4399 fixed by Igor, reviewed by Alex cmr=v1.7.5:reviewer=ompi-rm1.7 This commit was SVN r31168. The following Trac tickets were found above: Ticket 4399 --> https://svn.open-mpi.org/trac/ompi/ticket/4399
Этот коммит содержится в:
родитель
08fd24f452
Коммит
d8288fa39d
@ -411,10 +411,6 @@ sshmem_mkey_t *mca_spml_yoda_register(void* addr,
|
|||||||
|
|
||||||
yoda_context->registration = NULL;
|
yoda_context->registration = NULL;
|
||||||
if (NULL != ybtl->btl->btl_prepare_src) {
|
if (NULL != ybtl->btl->btl_prepare_src) {
|
||||||
int btl_id;
|
|
||||||
mca_bml_base_btl_t* bml_btl;
|
|
||||||
|
|
||||||
bml_btl = get_next_btl(oshmem_my_proc_id(), &btl_id);
|
|
||||||
|
|
||||||
/* initialize convertor for source descriptor*/
|
/* initialize convertor for source descriptor*/
|
||||||
opal_convertor_copy_and_prepare_for_recv(proc_self->proc_convertor,
|
opal_convertor_copy_and_prepare_for_recv(proc_self->proc_convertor,
|
||||||
@ -442,7 +438,7 @@ sshmem_mkey_t *mca_spml_yoda_register(void* addr,
|
|||||||
|
|
||||||
/* register source memory */
|
/* register source memory */
|
||||||
des = ybtl->btl->btl_prepare_src(ybtl->btl,
|
des = ybtl->btl->btl_prepare_src(ybtl->btl,
|
||||||
bml_btl->btl_endpoint,
|
ybtl->bml_btl->btl_endpoint,
|
||||||
yoda_context->registration,
|
yoda_context->registration,
|
||||||
&convertor,
|
&convertor,
|
||||||
MCA_BTL_NO_ORDER,
|
MCA_BTL_NO_ORDER,
|
||||||
@ -484,7 +480,7 @@ static void mca_spml_yoda_error_handler(struct mca_btl_base_module_t* btl,
|
|||||||
/* make global btl list&map */
|
/* make global btl list&map */
|
||||||
static int create_btl_list(void)
|
static int create_btl_list(void)
|
||||||
{
|
{
|
||||||
int btl_id;
|
int btl_type;
|
||||||
char *btl_name;
|
char *btl_name;
|
||||||
int size;
|
int size;
|
||||||
opal_list_item_t *item;
|
opal_list_item_t *item;
|
||||||
@ -510,12 +506,15 @@ static int create_btl_list(void)
|
|||||||
|
|
||||||
btl_sm = (mca_btl_base_selected_module_t *) item;
|
btl_sm = (mca_btl_base_selected_module_t *) item;
|
||||||
btl_name = btl_sm->btl_component->btl_version.mca_component_name;
|
btl_name = btl_sm->btl_component->btl_version.mca_component_name;
|
||||||
btl_id = btl_name_to_id(btl_name);
|
btl_type = btl_name_to_id(btl_name);
|
||||||
|
|
||||||
SPML_VERBOSE(50, "found btl (%s) btl_id=%d", btl_name, btl_id);
|
SPML_VERBOSE(50, "found btl (%s) btl_type=%s", btl_name, btl_type2str(btl_type));
|
||||||
|
|
||||||
|
/* Note: we setup bml_btl in create_btl_idx() */
|
||||||
|
mca_spml_yoda.btl_type_map[mca_spml_yoda.n_btls].bml_btl = NULL;
|
||||||
mca_spml_yoda.btl_type_map[mca_spml_yoda.n_btls].btl =
|
mca_spml_yoda.btl_type_map[mca_spml_yoda.n_btls].btl =
|
||||||
btl_sm->btl_module;
|
btl_sm->btl_module;
|
||||||
mca_spml_yoda.btl_type_map[mca_spml_yoda.n_btls].btl_type = btl_id;
|
mca_spml_yoda.btl_type_map[mca_spml_yoda.n_btls].btl_type = btl_type;
|
||||||
mca_spml_yoda.n_btls++;
|
mca_spml_yoda.n_btls++;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -601,6 +600,7 @@ static int create_btl_idx(int dst_pe)
|
|||||||
return OSHMEM_ERROR;
|
return OSHMEM_ERROR;
|
||||||
}
|
}
|
||||||
proc->transport_ids[i] = btl_id;
|
proc->transport_ids[i] = btl_id;
|
||||||
|
mca_spml_yoda.btl_type_map[btl_id].bml_btl = bml_btl;
|
||||||
mca_spml_yoda.btl_type_map[btl_id].use_cnt++;
|
mca_spml_yoda.btl_type_map[btl_id].use_cnt++;
|
||||||
}
|
}
|
||||||
return OSHMEM_SUCCESS;
|
return OSHMEM_SUCCESS;
|
||||||
|
@ -55,6 +55,7 @@ enum {
|
|||||||
|
|
||||||
struct yoda_btl {
|
struct yoda_btl {
|
||||||
mca_btl_base_module_t *btl;
|
mca_btl_base_module_t *btl;
|
||||||
|
mca_bml_base_btl_t *bml_btl;
|
||||||
int btl_type;
|
int btl_type;
|
||||||
int use_cnt;
|
int use_cnt;
|
||||||
};
|
};
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user