1
1

The Windows support is now back in bussiness.

This commit was SVN r15599.
Этот коммит содержится в:
George Bosilca 2007-07-25 03:55:34 +00:00
родитель c6d2e03cdd
Коммит c961cb5749
11 изменённых файлов: 26 добавлений и 85 удалений

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

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