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;
|
||||
OPAL_LIST_FOREACH(cmp, &orte_oob_base.actives, mca_base_component_list_item_t) {
|
||||
c3 = (mca_oob_base_component_t *) cmp->cli_component;
|
||||
if (c3->priority < component->priority) {
|
||||
if (c3->priority > component->priority) {
|
||||
continue;
|
||||
}
|
||||
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
|
||||
*/
|
||||
reachable = false;
|
||||
pr = NULL;
|
||||
OPAL_LIST_FOREACH(cli, &orte_oob_base.actives, mca_base_component_list_item_t) {
|
||||
component = (mca_oob_base_component_t*)cli->cli_component;
|
||||
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
|
||||
* so we don't waste this time again
|
||||
*/
|
||||
pr = OBJ_NEW(orte_oob_base_peer_t);
|
||||
if (OPAL_SUCCESS != (rc = opal_hash_table_set_value_uint64(&orte_oob_base.peers, ui64, (void*)pr))) {
|
||||
ORTE_ERROR_LOG(rc);
|
||||
msg->status = ORTE_ERR_ADDRESSEE_UNKNOWN;
|
||||
ORTE_RML_SEND_COMPLETE(msg);
|
||||
OBJ_RELEASE(cd);
|
||||
return;
|
||||
if (NULL == pr) {
|
||||
pr = OBJ_NEW(orte_oob_base_peer_t);
|
||||
if (OPAL_SUCCESS != (rc = opal_hash_table_set_value_uint64(&orte_oob_base.peers, ui64, (void*)pr))) {
|
||||
ORTE_ERROR_LOG(rc);
|
||||
msg->status = ORTE_ERR_ADDRESSEE_UNKNOWN;
|
||||
ORTE_RML_SEND_COMPLETE(msg);
|
||||
OBJ_RELEASE(cd);
|
||||
return;
|
||||
}
|
||||
}
|
||||
/* mark that this component can reach the peer */
|
||||
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
|
||||
},
|
||||
0, // reserve space for an assigned index
|
||||
100, // default priority of this transport
|
||||
30, // default priority of this transport
|
||||
component_available,
|
||||
component_startup,
|
||||
component_shutdown,
|
||||
|
Загрузка…
Ссылка в новой задаче
Block a user