The Windows support is now back in bussiness.
This commit was SVN r15599.
Этот коммит содержится в:
родитель
c6d2e03cdd
Коммит
c961cb5749
@ -600,7 +600,7 @@ __ompi_ddt_create_from_packed_description( void** packed_buffer,
|
||||
#if SIZEOF_PTRDIFF_T == 4
|
||||
array_of_disp[i] = opal_swap_bytes4(array_of_disp[i]);
|
||||
#elif SIZEOF_PTRDIFF_T == 8
|
||||
array_of_disp[i] = opal_swap_bytes8(array_of_disp[i]);
|
||||
array_of_disp[i] = (MPI_Aint)opal_swap_bytes8(array_of_disp[i]);
|
||||
#else
|
||||
#error "Unknown size of ptrdiff_t"
|
||||
#endif
|
||||
|
@ -1305,7 +1305,7 @@ setup_rdma(ompi_osc_rdma_module_t *module)
|
||||
MPI_SUM,
|
||||
module->m_comm);
|
||||
if (OMPI_SUCCESS != ret) goto cleanup;
|
||||
module->m_setup_info->num_btls_expected = local;
|
||||
module->m_setup_info->num_btls_expected = (int32_t)local;
|
||||
/* end fill in information about remote peers */
|
||||
|
||||
/* send our contact info to everyone... */
|
||||
|
@ -139,7 +139,8 @@ orte_gpr_replica_register_subscription(orte_gpr_replica_subscription_t **subptr,
|
||||
}
|
||||
key_mode = ORTE_GPR_REPLICA_KEYMODE((subscription->values[i])->addr_mode);
|
||||
if (0x00 == key_mode) { /* default key address mode to OR */
|
||||
key_mode = subscription->values[i]->addr_mode = subscription->values[i]->addr_mode | ORTE_GPR_KEYS_OR;
|
||||
subscription->values[i]->addr_mode = subscription->values[i]->addr_mode | ORTE_GPR_KEYS_OR;
|
||||
key_mode = (orte_gpr_replica_addr_mode_t)subscription->values[i]->addr_mode;
|
||||
}
|
||||
ival->addr_mode = ORTE_GPR_REPLICA_REMOVE_OVERWRITE(subscription->values[i]->addr_mode);
|
||||
|
||||
|
@ -180,7 +180,6 @@ int mca_oob_tcp_msg_complete(mca_oob_tcp_msg_t* msg, orte_process_name_t * peer)
|
||||
OPAL_THREAD_LOCK(&msg->msg_lock);
|
||||
msg->msg_complete = true;
|
||||
if(NULL != msg->msg_cbfunc) {
|
||||
opal_list_item_t* item;
|
||||
OPAL_THREAD_UNLOCK(&msg->msg_lock);
|
||||
|
||||
#if defined(__WINDOWS__)
|
||||
@ -216,6 +215,8 @@ int mca_oob_tcp_msg_complete(mca_oob_tcp_msg_t* msg, orte_process_name_t * peer)
|
||||
|
||||
/* dispatch any completed events */
|
||||
if ((msg->msg_flags & ORTE_RML_FLAG_RECURSIVE_CALLBACK) == 0) {
|
||||
opal_list_item_t* item;
|
||||
|
||||
OPAL_THREAD_LOCK(&mca_oob_tcp_component.tcp_lock);
|
||||
opal_list_remove_item(&mca_oob_tcp_component.tcp_msg_completed, (opal_list_item_t*)msg);
|
||||
MCA_OOB_TCP_MSG_RETURN(msg);
|
||||
|
@ -371,7 +371,6 @@ static int orte_pls_process_fill_exec_path( char ** exec_path )
|
||||
|
||||
static void orte_pls_process_wait_daemon(pid_t pid, int status, void* cbdata)
|
||||
{
|
||||
orte_pls_daemon_info_t *info = (orte_pls_daemon_info_t*) cbdata;
|
||||
int rc;
|
||||
unsigned long deltat;
|
||||
orte_buffer_t ack;
|
||||
|
@ -61,8 +61,6 @@ ORTE_DECLSPEC int orte_rml_base_unpack_tag(orte_buffer_t *buffer,
|
||||
void *dest,
|
||||
orte_std_cntr_t *num_vals,
|
||||
orte_data_type_t type);
|
||||
|
||||
|
||||
/*
|
||||
* Internal functions
|
||||
*/
|
||||
|
@ -72,7 +72,7 @@ orte_rml_oob_recv(orte_process_name_t* peer,
|
||||
flags |= ORTE_RML_FLAG_RECURSIVE_CALLBACK;
|
||||
|
||||
msg->msg_data = malloc(sizeof(struct iovec) * (count + 1));
|
||||
msg->msg_data[0].iov_base = &msg->msg_header;
|
||||
msg->msg_data[0].iov_base = (ompi_iov_base_ptr_t)&msg->msg_header;
|
||||
msg->msg_data[0].iov_len = sizeof(orte_rml_oob_msg_header_t);
|
||||
for (i = 0 ; i < count ; ++i) {
|
||||
msg->msg_data[i + 1].iov_base = iov[i].iov_base;
|
||||
@ -121,7 +121,7 @@ orte_rml_oob_recv_nb(orte_process_name_t* peer,
|
||||
msg->msg_cbdata = cbdata;
|
||||
|
||||
msg->msg_data = malloc(sizeof(struct iovec) * (count + 1));
|
||||
msg->msg_data[0].iov_base = &msg->msg_header;
|
||||
msg->msg_data[0].iov_base = (ompi_iov_base_ptr_t)&msg->msg_header;
|
||||
msg->msg_data[0].iov_len = sizeof(orte_rml_oob_msg_header_t);
|
||||
for (i = 0 ; i < count ; ++i) {
|
||||
msg->msg_data[i + 1].iov_base = iov[i].iov_base;
|
||||
@ -152,7 +152,7 @@ orte_rml_oob_recv_buffer(orte_process_name_t* peer,
|
||||
|
||||
msg->msg_data = malloc(sizeof(struct iovec) * 2);
|
||||
|
||||
msg->msg_data[0].iov_base = &msg->msg_header;
|
||||
msg->msg_data[0].iov_base = (ompi_iov_base_ptr_t)&msg->msg_header;
|
||||
msg->msg_data[0].iov_len = sizeof(orte_rml_oob_msg_header_t);
|
||||
|
||||
msg->msg_data[1].iov_base = NULL;
|
||||
@ -197,7 +197,7 @@ orte_rml_oob_recv_buffer_nb(orte_process_name_t* peer,
|
||||
|
||||
msg->msg_data = malloc(sizeof(struct iovec) * 2);
|
||||
|
||||
msg->msg_data[0].iov_base = &msg->msg_header;
|
||||
msg->msg_data[0].iov_base = (ompi_iov_base_ptr_t)&msg->msg_header;
|
||||
msg->msg_data[0].iov_len = sizeof(orte_rml_oob_msg_header_t);
|
||||
|
||||
msg->msg_data[1].iov_base = NULL;
|
||||
|
@ -84,7 +84,7 @@ orte_rml_oob_send(orte_process_name_t* peer,
|
||||
return ORTE_ERR_ADDRESSEE_UNKNOWN;
|
||||
}
|
||||
msg->msg_data = malloc(sizeof(struct iovec) * (count + 1));
|
||||
msg->msg_data[0].iov_base = &msg->msg_header;
|
||||
msg->msg_data[0].iov_base = (ompi_iov_base_ptr_t)&msg->msg_header;
|
||||
msg->msg_data[0].iov_len = sizeof(orte_rml_oob_msg_header_t);
|
||||
bytes += msg->msg_data[0].iov_len;
|
||||
for (i = 0 ; i < count ; ++i) {
|
||||
@ -154,7 +154,7 @@ orte_rml_oob_send_nb(orte_process_name_t* peer,
|
||||
|
||||
msg->msg_data = malloc(sizeof(struct iovec) * (count + 1));
|
||||
|
||||
msg->msg_data[0].iov_base = &msg->msg_header;
|
||||
msg->msg_data[0].iov_base = (ompi_iov_base_ptr_t)&msg->msg_header;
|
||||
msg->msg_data[0].iov_len = sizeof(orte_rml_oob_msg_header_t);
|
||||
bytes += msg->msg_data[0].iov_len;
|
||||
for (i = 0 ; i < count ; ++i) {
|
||||
@ -246,7 +246,7 @@ orte_rml_oob_send_buffer_nb(orte_process_name_t* peer,
|
||||
return ORTE_ERR_ADDRESSEE_UNKNOWN;
|
||||
}
|
||||
|
||||
msg->msg_data[0].iov_base = &msg->msg_header;
|
||||
msg->msg_data[0].iov_base = (ompi_iov_base_ptr_t)&msg->msg_header;
|
||||
msg->msg_data[0].iov_len = sizeof(orte_rml_oob_msg_header_t);
|
||||
bytes += msg->msg_data[0].iov_len;
|
||||
|
||||
|
@ -24,21 +24,19 @@ int
|
||||
orte_routed_tree_update_route(orte_process_name_t *target,
|
||||
orte_process_name_t *route)
|
||||
{
|
||||
if (target->cellid == ORTE_CELLID_INVALID ||
|
||||
target->jobid == ORTE_JOBID_INVALID ||
|
||||
if (target->jobid == ORTE_JOBID_INVALID ||
|
||||
target->vpid == ORTE_VPID_INVALID) {
|
||||
return ORTE_ERR_BAD_PARAM;
|
||||
}
|
||||
|
||||
OPAL_OUTPUT_VERBOSE((1, orte_routed_base_output,
|
||||
"routed_tree_update: [%ld,%ld,%ld] --> [%ld,%ld,%ld]",
|
||||
ORTE_NAME_ARGS(target),
|
||||
ORTE_NAME_ARGS(route)));
|
||||
"routed_tree_update: [%s] --> [%s]",
|
||||
ORTE_NAME_PRINT(target),
|
||||
ORTE_NAME_PRINT(route)));
|
||||
|
||||
|
||||
/* exact match */
|
||||
if (target->cellid != ORTE_CELLID_WILDCARD &&
|
||||
target->jobid != ORTE_JOBID_WILDCARD &&
|
||||
if (target->jobid != ORTE_JOBID_WILDCARD &&
|
||||
target->vpid != ORTE_VPID_WILDCARD) {
|
||||
opal_list_item_t *item;
|
||||
orte_routed_tree_entry_t *entry;
|
||||
@ -63,8 +61,7 @@ orte_routed_tree_update_route(orte_process_name_t *target,
|
||||
}
|
||||
|
||||
/* vpid wildcard */
|
||||
if (target->cellid != ORTE_CELLID_WILDCARD &&
|
||||
target->jobid != ORTE_JOBID_WILDCARD &&
|
||||
if (target->jobid != ORTE_JOBID_WILDCARD &&
|
||||
target->vpid == ORTE_VPID_WILDCARD) {
|
||||
opal_list_item_t *item;
|
||||
orte_routed_tree_entry_t *entry;
|
||||
@ -74,7 +71,7 @@ orte_routed_tree_update_route(orte_process_name_t *target,
|
||||
item = opal_list_get_next(item)) {
|
||||
entry = (orte_routed_tree_entry_t*) item;
|
||||
|
||||
if (0 == orte_ns.compare_fields(ORTE_NS_CMP_CELLID|ORTE_NS_CMP_JOBID,
|
||||
if (0 == orte_ns.compare_fields(ORTE_NS_CMP_JOBID,
|
||||
target, &entry->target)) {
|
||||
entry->route = *route;
|
||||
return ORTE_SUCCESS;
|
||||
@ -88,35 +85,8 @@ orte_routed_tree_update_route(orte_process_name_t *target,
|
||||
return ORTE_SUCCESS;
|
||||
}
|
||||
|
||||
/* vpid & jobid wildcard */
|
||||
if (target->cellid != ORTE_CELLID_WILDCARD &&
|
||||
target->jobid == ORTE_JOBID_WILDCARD &&
|
||||
target->vpid == ORTE_VPID_WILDCARD) {
|
||||
opal_list_item_t *item;
|
||||
orte_routed_tree_entry_t *entry;
|
||||
|
||||
for (item = opal_list_get_first(&orte_routed_tree_module.jobid_wildcard_list) ;
|
||||
item != opal_list_get_end(&orte_routed_tree_module.jobid_wildcard_list) ;
|
||||
item = opal_list_get_next(item)) {
|
||||
entry = (orte_routed_tree_entry_t*) item;
|
||||
|
||||
if (0 == orte_ns.compare_fields(ORTE_NS_CMP_CELLID,
|
||||
target, &entry->target)) {
|
||||
entry->route = *route;
|
||||
return ORTE_SUCCESS;
|
||||
}
|
||||
}
|
||||
|
||||
entry = OBJ_NEW(orte_routed_tree_entry_t);
|
||||
entry->target = *target;
|
||||
entry->route = *route;
|
||||
opal_list_append(&orte_routed_tree_module.jobid_wildcard_list, &entry->super);
|
||||
return ORTE_SUCCESS;
|
||||
}
|
||||
|
||||
/* wildcard */
|
||||
if (target->cellid == ORTE_CELLID_WILDCARD &&
|
||||
target->jobid == ORTE_JOBID_WILDCARD &&
|
||||
if (target->jobid == ORTE_JOBID_WILDCARD &&
|
||||
target->vpid == ORTE_VPID_WILDCARD) {
|
||||
orte_routed_tree_module.full_wildcard_entry.route = *route;
|
||||
return ORTE_SUCCESS;
|
||||
@ -146,42 +116,14 @@ orte_routed_tree_get_route(orte_process_name_t *target)
|
||||
}
|
||||
}
|
||||
|
||||
/* check vpid-wildcard matches */
|
||||
for (item = opal_list_get_first(&orte_routed_tree_module.vpid_wildcard_list) ;
|
||||
item != opal_list_get_end(&orte_routed_tree_module.vpid_wildcard_list) ;
|
||||
item = opal_list_get_next(item)) {
|
||||
orte_routed_tree_entry_t *entry =
|
||||
(orte_routed_tree_entry_t*) item;
|
||||
|
||||
if (0 == orte_ns.compare_fields(ORTE_NS_CMP_CELLID|ORTE_NS_CMP_JOBID,
|
||||
target, &entry->target)) {
|
||||
ret = entry->route;
|
||||
goto found;
|
||||
}
|
||||
}
|
||||
|
||||
/* check vpid & jobid-wildcard matches */
|
||||
for (item = opal_list_get_first(&orte_routed_tree_module.jobid_wildcard_list) ;
|
||||
item != opal_list_get_end(&orte_routed_tree_module.jobid_wildcard_list) ;
|
||||
item = opal_list_get_next(item)) {
|
||||
orte_routed_tree_entry_t *entry =
|
||||
(orte_routed_tree_entry_t*) item;
|
||||
|
||||
if (0 == orte_ns.compare_fields(ORTE_NS_CMP_CELLID,
|
||||
target, &entry->target)) {
|
||||
ret = entry->route;
|
||||
goto found;
|
||||
}
|
||||
}
|
||||
|
||||
ret = orte_routed_tree_module.full_wildcard_entry.route;
|
||||
|
||||
found:
|
||||
|
||||
OPAL_OUTPUT_VERBOSE((1, orte_routed_base_output,
|
||||
"routed_tree_get([%ld,%ld,%ld]) --> [%ld,%ld,%ld]",
|
||||
ORTE_NAME_ARGS(target),
|
||||
ORTE_NAME_ARGS(&ret)));
|
||||
"routed_tree_get([%s]) --> [%s]",
|
||||
ORTE_NAME_PRINT(target),
|
||||
ORTE_NAME_PRINT(&ret)));
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
@ -72,11 +72,9 @@ routed_tree_init(int* priority)
|
||||
OBJ_CONSTRUCT(&orte_routed_tree_module.vpid_wildcard_list, opal_list_t);
|
||||
OBJ_CONSTRUCT(&orte_routed_tree_module.jobid_wildcard_list, opal_list_t);
|
||||
|
||||
orte_routed_tree_module.full_wildcard_entry.target.cellid = ORTE_CELLID_WILDCARD;
|
||||
orte_routed_tree_module.full_wildcard_entry.target.jobid = ORTE_JOBID_WILDCARD;
|
||||
orte_routed_tree_module.full_wildcard_entry.target.vpid = ORTE_VPID_WILDCARD;
|
||||
|
||||
orte_routed_tree_module.full_wildcard_entry.route.cellid = ORTE_CELLID_INVALID;
|
||||
orte_routed_tree_module.full_wildcard_entry.route.jobid = ORTE_JOBID_INVALID;
|
||||
orte_routed_tree_module.full_wildcard_entry.route.vpid = ORTE_VPID_INVALID;
|
||||
|
||||
|
@ -48,6 +48,7 @@ static int fork_hnp(void);
|
||||
|
||||
static void set_handler_default(int sig)
|
||||
{
|
||||
#if !defined(__WINDOWS__)
|
||||
struct sigaction act;
|
||||
|
||||
act.sa_handler = SIG_DFL;
|
||||
@ -55,6 +56,7 @@ static void set_handler_default(int sig)
|
||||
sigemptyset(&act.sa_mask);
|
||||
|
||||
sigaction(sig, &act, (struct sigaction *)0);
|
||||
#endif /* !defined(__WINDOWS__) */
|
||||
}
|
||||
|
||||
int
|
||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user