1
1

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
Этот коммит содержится в:
Ralph Castain 2014-02-16 03:19:08 +00:00
родитель 14ba81d166
Коммит 14bb7a117c
3 изменённых файлов: 12 добавлений и 9 удалений

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

@ -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,