btl/openib: fix recieve queue source detection
Этот коммит содержится в:
родитель
7c43b566d2
Коммит
38e9611930
@ -520,10 +520,12 @@ static int mca_btl_openib_tune_endpoint(mca_btl_openib_module_t* openib_btl,
|
|||||||
if a user distributes different INI files or parameters for different node/procs,
|
if a user distributes different INI files or parameters for different node/procs,
|
||||||
it is on his own responsibility */
|
it is on his own responsibility */
|
||||||
switch(mca_btl_openib_component.receive_queues_source) {
|
switch(mca_btl_openib_component.receive_queues_source) {
|
||||||
case MCA_BASE_VAR_SOURCE_COMMAND_LINE:
|
case MCA_BASE_VAR_SOURCE_COMMAND_LINE:
|
||||||
case MCA_BASE_VAR_SOURCE_ENV:
|
case MCA_BASE_VAR_SOURCE_ENV:
|
||||||
case MCA_BASE_VAR_SOURCE_MAX:
|
case MCA_BASE_VAR_SOURCE_FILE:
|
||||||
break;
|
case MCA_BASE_VAR_SOURCE_SET:
|
||||||
|
case MCA_BASE_VAR_SOURCE_OVERRIDE:
|
||||||
|
break;
|
||||||
|
|
||||||
/* If the queues configuration was set from command line
|
/* If the queues configuration was set from command line
|
||||||
(with --mca btl_openib_receive_queues parameter) => both sides have a same configuration */
|
(with --mca btl_openib_receive_queues parameter) => both sides have a same configuration */
|
||||||
@ -532,40 +534,38 @@ static int mca_btl_openib_tune_endpoint(mca_btl_openib_module_t* openib_btl,
|
|||||||
not possible that remote side got its queues configuration from command line =>
|
not possible that remote side got its queues configuration from command line =>
|
||||||
(by prio) the configuration was set from INI file or (if not configure)
|
(by prio) the configuration was set from INI file or (if not configure)
|
||||||
by default queues configuration */
|
by default queues configuration */
|
||||||
case MCA_BASE_VAR_SOURCE_FILE:
|
case BTL_OPENIB_RQ_SOURCE_DEVICE_INI:
|
||||||
case MCA_BASE_VAR_SOURCE_SET:
|
if(NULL != values.receive_queues) {
|
||||||
case MCA_BASE_VAR_SOURCE_OVERRIDE:
|
recv_qps = values.receive_queues;
|
||||||
if(NULL != values.receive_queues) {
|
} else {
|
||||||
recv_qps = values.receive_queues;
|
recv_qps = mca_btl_openib_component.default_recv_qps;
|
||||||
} else {
|
}
|
||||||
recv_qps = mca_btl_openib_component.default_recv_qps;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(0 != strcmp(mca_btl_openib_component.receive_queues,
|
if(0 != strcmp(mca_btl_openib_component.receive_queues,
|
||||||
recv_qps)) {
|
recv_qps)) {
|
||||||
opal_show_help("help-mpi-btl-openib.txt",
|
opal_show_help("help-mpi-btl-openib.txt",
|
||||||
"unsupported queues configuration", true,
|
"unsupported queues configuration", true,
|
||||||
opal_process_info.nodename,
|
opal_process_info.nodename,
|
||||||
ibv_get_device_name(openib_btl->device->ib_dev),
|
ibv_get_device_name(openib_btl->device->ib_dev),
|
||||||
(openib_btl->device->ib_dev_attr).vendor_id,
|
(openib_btl->device->ib_dev_attr).vendor_id,
|
||||||
(openib_btl->device->ib_dev_attr).vendor_part_id,
|
(openib_btl->device->ib_dev_attr).vendor_part_id,
|
||||||
mca_btl_openib_component.receive_queues,
|
mca_btl_openib_component.receive_queues,
|
||||||
opal_get_proc_hostname(endpoint->endpoint_proc->proc_opal),
|
opal_get_proc_hostname(endpoint->endpoint_proc->proc_opal),
|
||||||
endpoint->rem_info.rem_vendor_id,
|
endpoint->rem_info.rem_vendor_id,
|
||||||
endpoint->rem_info.rem_vendor_part_id,
|
endpoint->rem_info.rem_vendor_part_id,
|
||||||
recv_qps);
|
recv_qps);
|
||||||
|
|
||||||
return OPAL_ERROR;
|
return OPAL_ERROR;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
/* If the local queues configuration was set
|
/* If the local queues configuration was set
|
||||||
by default queues => check all possible cases for remote side and compare */
|
by default queues => check all possible cases for remote side and compare */
|
||||||
case MCA_BASE_VAR_SOURCE_DEFAULT:
|
case MCA_BASE_VAR_SOURCE_DEFAULT:
|
||||||
if(NULL != values.receive_queues) {
|
if(NULL != values.receive_queues) {
|
||||||
if(0 != strcmp(mca_btl_openib_component.receive_queues,
|
if(0 != strcmp(mca_btl_openib_component.receive_queues,
|
||||||
values.receive_queues)) {
|
values.receive_queues)) {
|
||||||
opal_show_help("help-mpi-btl-openib.txt",
|
opal_show_help("help-mpi-btl-openib.txt",
|
||||||
"unsupported queues configuration", true,
|
"unsupported queues configuration", true,
|
||||||
opal_process_info.nodename,
|
opal_process_info.nodename,
|
||||||
ibv_get_device_name(openib_btl->device->ib_dev),
|
ibv_get_device_name(openib_btl->device->ib_dev),
|
||||||
@ -577,10 +577,10 @@ static int mca_btl_openib_tune_endpoint(mca_btl_openib_module_t* openib_btl,
|
|||||||
endpoint->rem_info.rem_vendor_part_id,
|
endpoint->rem_info.rem_vendor_part_id,
|
||||||
values.receive_queues);
|
values.receive_queues);
|
||||||
|
|
||||||
return OPAL_ERROR;
|
return OPAL_ERROR;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
break;
|
}
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
return OPAL_SUCCESS;
|
return OPAL_SUCCESS;
|
||||||
|
@ -126,10 +126,7 @@ struct mca_btl_openib_qp_info_t {
|
|||||||
(BTL_OPENIB_QP_TYPE(Q) == MCA_BTL_OPENIB_XRC_QP)
|
(BTL_OPENIB_QP_TYPE(Q) == MCA_BTL_OPENIB_XRC_QP)
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
BTL_OPENIB_RQ_SOURCE_DEFAULT,
|
BTL_OPENIB_RQ_SOURCE_DEVICE_INI = MCA_BASE_VAR_SOURCE_MAX,
|
||||||
BTL_OPENIB_RQ_SOURCE_MCA,
|
|
||||||
BTL_OPENIB_RQ_SOURCE_DEVICE_INI,
|
|
||||||
BTL_OPENIB_RQ_SOURCE_MAX
|
|
||||||
} btl_openib_receive_queues_source_t;
|
} btl_openib_receive_queues_source_t;
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
|
@ -1975,9 +1975,7 @@ static int init_one_device(opal_list_t *btl_list, struct ibv_device* ib_dev)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* If the MCA param was specified, skip all the checks */
|
/* If the MCA param was specified, skip all the checks */
|
||||||
if ( MCA_BASE_VAR_SOURCE_COMMAND_LINE ||
|
if (MCA_BASE_VAR_SOURCE_DEFAULT != mca_btl_openib_component.receive_queues_source) {
|
||||||
MCA_BASE_VAR_SOURCE_ENV ==
|
|
||||||
mca_btl_openib_component.receive_queues_source) {
|
|
||||||
goto good;
|
goto good;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1995,7 +1993,7 @@ static int init_one_device(opal_list_t *btl_list, struct ibv_device* ib_dev)
|
|||||||
mca_btl_openib_component.receive_queues =
|
mca_btl_openib_component.receive_queues =
|
||||||
strdup(values.receive_queues);
|
strdup(values.receive_queues);
|
||||||
mca_btl_openib_component.receive_queues_source =
|
mca_btl_openib_component.receive_queues_source =
|
||||||
MCA_BASE_VAR_SOURCE_FILE;
|
BTL_OPENIB_RQ_SOURCE_DEVICE_INI;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user