Fix bugs in the oob base - ensure we get the components in high-to-low priority, and that we correctly track reachability via all components. Adjust the priority of the tcp component to leave headroom for others
Refs trac:267 This commit was SVN r30740. The following Trac tickets were found above: Ticket 267 --> https://svn.open-mpi.org/trac/ompi/ticket/267
Этот коммит содержится в:
родитель
14ba81d166
Коммит
14bb7a117c
@ -93,7 +93,7 @@ int orte_oob_base_select(void)
|
|||||||
added = false;
|
added = false;
|
||||||
OPAL_LIST_FOREACH(cmp, &orte_oob_base.actives, mca_base_component_list_item_t) {
|
OPAL_LIST_FOREACH(cmp, &orte_oob_base.actives, mca_base_component_list_item_t) {
|
||||||
c3 = (mca_oob_base_component_t *) cmp->cli_component;
|
c3 = (mca_oob_base_component_t *) cmp->cli_component;
|
||||||
if (c3->priority < component->priority) {
|
if (c3->priority > component->priority) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
opal_output_verbose(5, orte_oob_base_framework.framework_output,
|
opal_output_verbose(5, orte_oob_base_framework.framework_output,
|
||||||
|
@ -76,6 +76,7 @@ void orte_oob_base_send_nb(int fd, short args, void *cbdata)
|
|||||||
* it can reach it
|
* it can reach it
|
||||||
*/
|
*/
|
||||||
reachable = false;
|
reachable = false;
|
||||||
|
pr = NULL;
|
||||||
OPAL_LIST_FOREACH(cli, &orte_oob_base.actives, mca_base_component_list_item_t) {
|
OPAL_LIST_FOREACH(cli, &orte_oob_base.actives, mca_base_component_list_item_t) {
|
||||||
component = (mca_oob_base_component_t*)cli->cli_component;
|
component = (mca_oob_base_component_t*)cli->cli_component;
|
||||||
if (NULL != component->is_reachable) {
|
if (NULL != component->is_reachable) {
|
||||||
@ -83,13 +84,15 @@ void orte_oob_base_send_nb(int fd, short args, void *cbdata)
|
|||||||
/* there is a way to reach this peer - record it
|
/* there is a way to reach this peer - record it
|
||||||
* so we don't waste this time again
|
* so we don't waste this time again
|
||||||
*/
|
*/
|
||||||
pr = OBJ_NEW(orte_oob_base_peer_t);
|
if (NULL == pr) {
|
||||||
if (OPAL_SUCCESS != (rc = opal_hash_table_set_value_uint64(&orte_oob_base.peers, ui64, (void*)pr))) {
|
pr = OBJ_NEW(orte_oob_base_peer_t);
|
||||||
ORTE_ERROR_LOG(rc);
|
if (OPAL_SUCCESS != (rc = opal_hash_table_set_value_uint64(&orte_oob_base.peers, ui64, (void*)pr))) {
|
||||||
msg->status = ORTE_ERR_ADDRESSEE_UNKNOWN;
|
ORTE_ERROR_LOG(rc);
|
||||||
ORTE_RML_SEND_COMPLETE(msg);
|
msg->status = ORTE_ERR_ADDRESSEE_UNKNOWN;
|
||||||
OBJ_RELEASE(cd);
|
ORTE_RML_SEND_COMPLETE(msg);
|
||||||
return;
|
OBJ_RELEASE(cd);
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
/* mark that this component can reach the peer */
|
/* mark that this component can reach the peer */
|
||||||
opal_bitmap_set_bit(&pr->addressable, component->idx);
|
opal_bitmap_set_bit(&pr->addressable, component->idx);
|
||||||
|
@ -111,7 +111,7 @@ mca_oob_tcp_component_t mca_oob_tcp_component = {
|
|||||||
MCA_BASE_METADATA_PARAM_CHECKPOINT
|
MCA_BASE_METADATA_PARAM_CHECKPOINT
|
||||||
},
|
},
|
||||||
0, // reserve space for an assigned index
|
0, // reserve space for an assigned index
|
||||||
100, // default priority of this transport
|
30, // default priority of this transport
|
||||||
component_available,
|
component_available,
|
||||||
component_startup,
|
component_startup,
|
||||||
component_shutdown,
|
component_shutdown,
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user