Clean up a few memory leaks - more to go...
This commit was SVN r7134.
Этот коммит содержится в:
родитель
f4de8776a6
Коммит
76e622a552
@ -3,14 +3,14 @@
|
||||
* All rights reserved.
|
||||
* Copyright (c) 2004-2005 The Trustees of the University of Tennessee.
|
||||
* All rights reserved.
|
||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
* University of Stuttgart. All rights reserved.
|
||||
* Copyright (c) 2004-2005 The Regents of the University of California.
|
||||
* All rights reserved.
|
||||
* $COPYRIGHT$
|
||||
*
|
||||
*
|
||||
* Additional copyrights may follow
|
||||
*
|
||||
*
|
||||
* $HEADER$
|
||||
*/
|
||||
|
||||
@ -25,20 +25,26 @@
|
||||
|
||||
|
||||
#define SIZE_OF_CHAR (sizeof(char) * 8)
|
||||
#define DEFAULT_BITMAP_SIZE 64
|
||||
|
||||
static void orte_bitmap_construct(orte_bitmap_t *bm);
|
||||
static void orte_bitmap_destruct(orte_bitmap_t *bm);
|
||||
|
||||
OBJ_CLASS_INSTANCE(orte_bitmap_t, opal_object_t,
|
||||
OBJ_CLASS_INSTANCE(orte_bitmap_t, opal_object_t,
|
||||
orte_bitmap_construct, orte_bitmap_destruct);
|
||||
|
||||
|
||||
static void
|
||||
orte_bitmap_construct(orte_bitmap_t *bm)
|
||||
static void
|
||||
orte_bitmap_construct(orte_bitmap_t *bm)
|
||||
{
|
||||
bm->legal_numbits = 0;
|
||||
bm->array_size = 0;
|
||||
bm->bitmap = NULL;
|
||||
size_t size;
|
||||
|
||||
size = DEFAULT_BITMAP_SIZE / SIZE_OF_CHAR;
|
||||
|
||||
bm->array_size = size + ((size % SIZE_OF_CHAR == 0) ? 0 : 1);
|
||||
bm->bitmap = (unsigned char *) malloc(bm->array_size);
|
||||
bm->legal_numbits = SIZE_OF_CHAR*bm->array_size;
|
||||
memset(bm->bitmap, 0, bm->array_size);
|
||||
}
|
||||
|
||||
|
||||
@ -51,38 +57,12 @@ orte_bitmap_destruct(orte_bitmap_t *bm)
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
orte_bitmap_init(orte_bitmap_t *bm, size_t size)
|
||||
{
|
||||
size_t actual_size;
|
||||
|
||||
if (NULL == bm) {
|
||||
ORTE_ERROR_LOG(ORTE_ERR_BAD_PARAM);
|
||||
return ORTE_ERR_BAD_PARAM;
|
||||
}
|
||||
|
||||
actual_size = size / SIZE_OF_CHAR;
|
||||
|
||||
actual_size += (size % SIZE_OF_CHAR == 0) ? 0 : 1;
|
||||
bm->bitmap = (unsigned char *) malloc(actual_size);
|
||||
if (NULL == bm->bitmap) {
|
||||
ORTE_ERROR_LOG(ORTE_ERR_OUT_OF_RESOURCE);
|
||||
return ORTE_ERR_OUT_OF_RESOURCE;
|
||||
}
|
||||
|
||||
bm->array_size = actual_size;
|
||||
bm->legal_numbits = SIZE_OF_CHAR*actual_size;
|
||||
orte_bitmap_clear_all_bits(bm);
|
||||
return ORTE_SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
orte_bitmap_resize(orte_bitmap_t *bm, size_t bit)
|
||||
{
|
||||
size_t index, new_size, i;
|
||||
|
||||
index = bit / SIZE_OF_CHAR;
|
||||
index = bit / SIZE_OF_CHAR;
|
||||
index += (bit % SIZE_OF_CHAR == 0) ? 0 : 1;
|
||||
|
||||
if (index >= bm->array_size) {
|
||||
@ -90,28 +70,28 @@ orte_bitmap_resize(orte_bitmap_t *bm, size_t bit)
|
||||
/* We need to allocate more space for the bitmap, since we are
|
||||
out of range. We dont throw any error here, because this is
|
||||
valid and we simply expand the bitmap */
|
||||
|
||||
|
||||
new_size = (index / bm->array_size + 1 ) * bm->array_size;
|
||||
|
||||
/* New size is just a multiple of the original size to fit in
|
||||
the index. */
|
||||
|
||||
|
||||
bm->bitmap = (unsigned char *) realloc(bm->bitmap, new_size);
|
||||
if (NULL == bm->bitmap) {
|
||||
ORTE_ERROR_LOG(ORTE_ERR_OUT_OF_RESOURCE);
|
||||
return ORTE_ERR_OUT_OF_RESOURCE;
|
||||
}
|
||||
|
||||
|
||||
/* zero out the new elements */
|
||||
for (i = bm->array_size; i < new_size; ++i) {
|
||||
bm->bitmap[i] = 0;
|
||||
}
|
||||
|
||||
|
||||
/* Update the array_size */
|
||||
bm->array_size = new_size;
|
||||
bm->legal_numbits = new_size*SIZE_OF_CHAR;
|
||||
}
|
||||
|
||||
|
||||
return ORTE_SUCCESS;
|
||||
}
|
||||
|
||||
@ -131,8 +111,8 @@ orte_bitmap_set_bit(orte_bitmap_t *bm, size_t bit)
|
||||
ORTE_ERROR_LOG(rc);
|
||||
return rc;
|
||||
}
|
||||
|
||||
index = bit / SIZE_OF_CHAR;
|
||||
|
||||
index = bit / SIZE_OF_CHAR;
|
||||
offset = bit % SIZE_OF_CHAR;
|
||||
|
||||
/* Now set the bit */
|
||||
@ -150,7 +130,7 @@ orte_bitmap_clear_bit(orte_bitmap_t *bm, size_t bit)
|
||||
|
||||
if (NULL == bm) {
|
||||
ORTE_ERROR_LOG(ORTE_ERR_BAD_PARAM);
|
||||
return ORTE_ERR_BAD_PARAM;
|
||||
return ORTE_ERR_BAD_PARAM;
|
||||
}
|
||||
|
||||
/* make sure the bitmap covers the requested bit */
|
||||
@ -158,11 +138,11 @@ orte_bitmap_clear_bit(orte_bitmap_t *bm, size_t bit)
|
||||
ORTE_ERROR_LOG(rc);
|
||||
return rc;
|
||||
}
|
||||
|
||||
index = bit / SIZE_OF_CHAR;
|
||||
|
||||
index = bit / SIZE_OF_CHAR;
|
||||
offset = bit % SIZE_OF_CHAR;
|
||||
|
||||
/* now clear the bit */
|
||||
|
||||
/* now clear the bit */
|
||||
bm->bitmap[index] &= ~(1 << offset);
|
||||
return ORTE_SUCCESS;
|
||||
}
|
||||
@ -172,20 +152,20 @@ int
|
||||
orte_bitmap_is_set_bit(orte_bitmap_t *bm, size_t bit)
|
||||
{
|
||||
size_t index, offset;
|
||||
|
||||
|
||||
if ((bit > bm->legal_numbits - 1) || (NULL == bm)) {
|
||||
ORTE_ERROR_LOG(ORTE_ERR_BAD_PARAM);
|
||||
return ORTE_ERR_BAD_PARAM;
|
||||
}
|
||||
|
||||
index = bit / SIZE_OF_CHAR;
|
||||
index = bit / SIZE_OF_CHAR;
|
||||
offset = bit % SIZE_OF_CHAR;
|
||||
|
||||
|
||||
if (index >= bm->array_size) {
|
||||
ORTE_ERROR_LOG(ORTE_ERR_BAD_PARAM);
|
||||
return ORTE_ERR_BAD_PARAM;
|
||||
}
|
||||
|
||||
|
||||
if (0 != (bm->bitmap[index] & (1 << offset))) {
|
||||
return (int) true;
|
||||
}
|
||||
@ -211,12 +191,12 @@ int
|
||||
orte_bitmap_set_all_bits(orte_bitmap_t *bm)
|
||||
{
|
||||
size_t i;
|
||||
|
||||
|
||||
if (NULL == bm) {
|
||||
ORTE_ERROR_LOG(ORTE_ERR_BAD_PARAM);
|
||||
return ORTE_ERR_BAD_PARAM;
|
||||
}
|
||||
|
||||
|
||||
for (i = 0; i < bm->array_size; ++i) {
|
||||
bm->bitmap[i] = ~((char) 0);
|
||||
}
|
||||
@ -255,7 +235,7 @@ orte_bitmap_find_and_set_first_unset_bit(orte_bitmap_t *bm, size_t *position)
|
||||
++(*position);
|
||||
temp >>= 1;
|
||||
}
|
||||
|
||||
|
||||
/* Now set the bit number */
|
||||
bm->bitmap[i] |= (bm->bitmap[i] + 1);
|
||||
|
||||
|
@ -3,14 +3,14 @@
|
||||
* All rights reserved.
|
||||
* Copyright (c) 2004-2005 The Trustees of the University of Tennessee.
|
||||
* All rights reserved.
|
||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
* University of Stuttgart. All rights reserved.
|
||||
* Copyright (c) 2004-2005 The Regents of the University of California.
|
||||
* All rights reserved.
|
||||
* $COPYRIGHT$
|
||||
*
|
||||
*
|
||||
* Additional copyrights may follow
|
||||
*
|
||||
*
|
||||
* $HEADER$
|
||||
*
|
||||
*/
|
||||
@ -49,26 +49,15 @@ struct orte_bitmap_t {
|
||||
unsigned char *bitmap; /**< The actual bitmap array of characters */
|
||||
size_t array_size; /**< The actual array size that maintains the bitmap */
|
||||
size_t legal_numbits; /**< The number of bits which are legal (the
|
||||
actual bitmap may contain more bits, since
|
||||
it needs to be rounded to the nearest
|
||||
char */
|
||||
actual bitmap may contain more bits, since
|
||||
it needs to be rounded to the nearest
|
||||
char */
|
||||
};
|
||||
|
||||
typedef struct orte_bitmap_t orte_bitmap_t;
|
||||
|
||||
OMPI_DECLSPEC OBJ_CLASS_DECLARATION(orte_bitmap_t);
|
||||
|
||||
/**
|
||||
* Initializes the bitmap and sets its size. This must be called
|
||||
* before the bitmap can be actually used
|
||||
*
|
||||
* @param bitmap The input bitmap (IN)
|
||||
* @param size The initial size of the bitmap in terms of bits (IN)
|
||||
* @return ORTE error code or success
|
||||
*
|
||||
*/
|
||||
OMPI_DECLSPEC int orte_bitmap_init (orte_bitmap_t *bm, size_t size);
|
||||
|
||||
|
||||
/**
|
||||
* Sizes the bitmap to ensure it has at least the specified number of
|
||||
@ -94,7 +83,7 @@ OMPI_DECLSPEC int orte_bitmap_resize(orte_bitmap_t *bm, size_t bit);
|
||||
* @return OMPI error code or success
|
||||
*
|
||||
*/
|
||||
OMPI_DECLSPEC int orte_bitmap_set_bit(orte_bitmap_t *bm, size_t bit);
|
||||
OMPI_DECLSPEC int orte_bitmap_set_bit(orte_bitmap_t *bm, size_t bit);
|
||||
|
||||
|
||||
/**
|
||||
@ -130,8 +119,8 @@ OMPI_DECLSPEC int orte_bitmap_is_set_bit(orte_bitmap_t *bm, size_t bit);
|
||||
|
||||
* @return err ORTE_SUCCESS on success
|
||||
*/
|
||||
OMPI_DECLSPEC int orte_bitmap_find_and_set_first_unset_bit(orte_bitmap_t *bm,
|
||||
size_t *position);
|
||||
OMPI_DECLSPEC int orte_bitmap_find_and_set_first_unset_bit(orte_bitmap_t *bm,
|
||||
size_t *position);
|
||||
|
||||
|
||||
/**
|
||||
@ -139,7 +128,7 @@ OMPI_DECLSPEC int orte_bitmap_find_and_set_first_unset_bit(orte_bitmap_t *bm,
|
||||
*
|
||||
* @param bitmap The input bitmap (IN)
|
||||
* @return ORTE error code if bm is NULL
|
||||
*
|
||||
*
|
||||
*/
|
||||
OMPI_DECLSPEC int orte_bitmap_clear_all_bits(orte_bitmap_t *bm);
|
||||
|
||||
@ -169,5 +158,5 @@ static inline int orte_bitmap_size(orte_bitmap_t *bm)
|
||||
#if defined(c_plusplus) || defined(__cplusplus)
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
#endif
|
||||
|
@ -275,10 +275,7 @@ orte_gpr_base_module_t *orte_gpr_replica_init(bool *allow_multi_user_threads, bo
|
||||
}
|
||||
orte_gpr_replica_globals.num_acted_upon = 0;
|
||||
|
||||
if (ORTE_SUCCESS != (rc = orte_bitmap_init(&(orte_gpr_replica_globals.srch_itag), 64))) {
|
||||
ORTE_ERROR_LOG(rc);
|
||||
return NULL;
|
||||
}
|
||||
OBJ_CONSTRUCT(&(orte_gpr_replica_globals.srch_itag), orte_bitmap_t);
|
||||
|
||||
if (orte_gpr_replica_globals.debug) {
|
||||
opal_output(0, "nb receive setup");
|
||||
@ -316,31 +313,50 @@ int orte_gpr_replica_finalize(void)
|
||||
size_t i, j;
|
||||
orte_gpr_replica_segment_t** seg;
|
||||
orte_gpr_replica_trigger_t** trig;
|
||||
orte_gpr_replica_subscription_t** subs;
|
||||
orte_gpr_replica_callbacks_t* cb;
|
||||
orte_gpr_replica_local_subscriber_t **lsubs;
|
||||
orte_gpr_replica_local_trigger_t **ltrigs;
|
||||
|
||||
if (orte_gpr_replica_globals.debug) {
|
||||
opal_output(0, "finalizing gpr replica");
|
||||
}
|
||||
|
||||
seg = (orte_gpr_replica_segment_t**)(orte_gpr_replica.segments)->addr;
|
||||
for (i=0, j=0; j < orte_gpr_replica.num_segs &&
|
||||
i < (orte_gpr_replica.segments)->size; i++) {
|
||||
if (NULL != seg[i]) {
|
||||
j++;
|
||||
OBJ_RELEASE(seg[i]);
|
||||
}
|
||||
if (NULL != orte_gpr_replica.segments) {
|
||||
seg = (orte_gpr_replica_segment_t**)(orte_gpr_replica.segments)->addr;
|
||||
for (i=0, j=0; j < orte_gpr_replica.num_segs &&
|
||||
i < (orte_gpr_replica.segments)->size; i++) {
|
||||
if (NULL != seg[i]) {
|
||||
j++;
|
||||
OBJ_RELEASE(seg[i]);
|
||||
}
|
||||
}
|
||||
OBJ_RELEASE(orte_gpr_replica.segments);
|
||||
}
|
||||
OBJ_RELEASE(orte_gpr_replica.segments);
|
||||
|
||||
trig = (orte_gpr_replica_trigger_t**)(orte_gpr_replica.triggers)->addr;
|
||||
for (i=0, j=0; j < orte_gpr_replica.num_trigs &&
|
||||
i < (orte_gpr_replica.triggers)->size; i++) {
|
||||
if (NULL != trig[i]) {
|
||||
j++;
|
||||
OBJ_RELEASE(trig[i]);
|
||||
}
|
||||
if (NULL != orte_gpr_replica.triggers) {
|
||||
trig = (orte_gpr_replica_trigger_t**)(orte_gpr_replica.triggers)->addr;
|
||||
for (i=0, j=0; j < orte_gpr_replica.num_trigs &&
|
||||
i < (orte_gpr_replica.triggers)->size; i++) {
|
||||
if (NULL != trig[i]) {
|
||||
j++;
|
||||
OBJ_RELEASE(trig[i]);
|
||||
}
|
||||
}
|
||||
OBJ_RELEASE(orte_gpr_replica.triggers);
|
||||
}
|
||||
|
||||
if (NULL != orte_gpr_replica.subscriptions) {
|
||||
subs = (orte_gpr_replica_subscription_t**)(orte_gpr_replica.subscriptions)->addr;
|
||||
for (i=0, j=0; j < orte_gpr_replica.num_subs &&
|
||||
i < (orte_gpr_replica.subscriptions)->size; i++) {
|
||||
if (NULL != subs[i]) {
|
||||
j++;
|
||||
OBJ_RELEASE(subs[i]);
|
||||
}
|
||||
}
|
||||
OBJ_RELEASE(orte_gpr_replica.subscriptions);
|
||||
}
|
||||
OBJ_RELEASE(orte_gpr_replica.triggers);
|
||||
|
||||
while (NULL != (cb = (orte_gpr_replica_callbacks_t*)opal_list_remove_first(&orte_gpr_replica.callbacks))) {
|
||||
OBJ_RELEASE(cb);
|
||||
@ -348,6 +364,31 @@ int orte_gpr_replica_finalize(void)
|
||||
OBJ_DESTRUCT(&orte_gpr_replica.callbacks);
|
||||
|
||||
|
||||
/* clear the local subscriptions and triggers */
|
||||
lsubs = (orte_gpr_replica_local_subscriber_t**)(orte_gpr_replica_globals.local_subscriptions)->addr;
|
||||
if (NULL != orte_gpr_replica_globals.local_subscriptions) {
|
||||
for (i=0, j=0; j < orte_gpr_replica_globals.num_local_subs &&
|
||||
i < (orte_gpr_replica_globals.local_subscriptions)->size; i++) {
|
||||
if (NULL != lsubs[i]) {
|
||||
j++;
|
||||
OBJ_RELEASE(lsubs[i]);
|
||||
}
|
||||
}
|
||||
OBJ_RELEASE(orte_gpr_replica_globals.local_subscriptions);
|
||||
}
|
||||
|
||||
ltrigs = (orte_gpr_replica_local_trigger_t**)(orte_gpr_replica_globals.local_triggers)->addr;
|
||||
if (NULL != orte_gpr_replica_globals.local_triggers) {
|
||||
for (i=0, j=0; j < orte_gpr_replica_globals.num_local_trigs &&
|
||||
i < (orte_gpr_replica_globals.local_triggers)->size; i++) {
|
||||
if (NULL != ltrigs[i]) {
|
||||
j++;
|
||||
OBJ_RELEASE(ltrigs[i]);
|
||||
}
|
||||
}
|
||||
OBJ_RELEASE(orte_gpr_replica_globals.local_triggers);
|
||||
}
|
||||
|
||||
/* clean up the globals */
|
||||
|
||||
if (NULL != orte_gpr_replica_globals.srch_cptr) {
|
||||
@ -358,6 +399,10 @@ int orte_gpr_replica_finalize(void)
|
||||
OBJ_RELEASE(orte_gpr_replica_globals.overwritten);
|
||||
}
|
||||
|
||||
if (NULL != orte_gpr_replica_globals.sub_ptrs) {
|
||||
OBJ_RELEASE(orte_gpr_replica_globals.sub_ptrs);
|
||||
}
|
||||
|
||||
if (NULL != orte_gpr_replica_globals.srch_ival) {
|
||||
OBJ_RELEASE(orte_gpr_replica_globals.srch_ival);
|
||||
}
|
||||
@ -366,6 +411,8 @@ int orte_gpr_replica_finalize(void)
|
||||
OBJ_RELEASE(orte_gpr_replica_globals.acted_upon);
|
||||
}
|
||||
|
||||
OBJ_DESTRUCT(&(orte_gpr_replica_globals.srch_itag));
|
||||
|
||||
/* All done */
|
||||
if (orte_gpr_replica_globals.isolate) {
|
||||
return ORTE_SUCCESS;
|
||||
|
@ -715,7 +715,7 @@ int mca_oob_tcp_init(void)
|
||||
int rc;
|
||||
opal_list_item_t* item;
|
||||
char *tmp, *tmp2, *tmp3;
|
||||
size_t num_tokens;
|
||||
size_t i, num_tokens;
|
||||
|
||||
/* random delay to stagger connections back to seed */
|
||||
#if defined(WIN32)
|
||||
@ -860,6 +860,11 @@ int mca_oob_tcp_init(void)
|
||||
}
|
||||
|
||||
free(segment);
|
||||
for(i=0; i < num_tokens; i++) {
|
||||
free(tokens[i]);
|
||||
tokens[i] = NULL;
|
||||
}
|
||||
if (NULL != tokens) free(tokens);
|
||||
free(values[0].byteobject.bytes);
|
||||
free(values[1].strptr);
|
||||
|
||||
@ -951,7 +956,8 @@ char* mca_oob_tcp_get_addr(void)
|
||||
if(ptr != contact_info) {
|
||||
ptr += sprintf(ptr, ";");
|
||||
}
|
||||
ptr += sprintf(ptr, "tcp://%s:%d", inet_ntoa(addr.sin_addr), ntohs(mca_oob_tcp_component.tcp_listen_port));
|
||||
ptr += sprintf(ptr, "tcp://%s:%d", inet_ntoa(addr.sin_addr),
|
||||
ntohs(mca_oob_tcp_component.tcp_listen_port));
|
||||
}
|
||||
return contact_info;
|
||||
}
|
||||
|
@ -126,6 +126,8 @@ int orte_rmgr_base_proc_stage_gate_init(orte_jobid_t job)
|
||||
if (ORTE_SUCCESS != (rc = orte_schema.get_std_trigger_name(&trig_name,
|
||||
trig_names[i], job))) {
|
||||
ORTE_ERROR_LOG(rc);
|
||||
free(tokens[0]);
|
||||
free(segment);
|
||||
free(trig_keys[0]);
|
||||
free(trig_keys[1]);
|
||||
return rc;
|
||||
@ -137,6 +139,8 @@ int orte_rmgr_base_proc_stage_gate_init(orte_jobid_t job)
|
||||
segment, tokens, 2, trig_keys,
|
||||
orte_rmgr_base_proc_stage_gate_mgr, NULL))) {
|
||||
ORTE_ERROR_LOG(rc);
|
||||
free(tokens[0]);
|
||||
free(segment);
|
||||
free(trig_name);
|
||||
free(trig_keys[0]);
|
||||
free(trig_keys[1]);
|
||||
@ -155,6 +159,9 @@ int orte_rmgr_base_proc_stage_gate_init(orte_jobid_t job)
|
||||
if (ORTE_SUCCESS != (rc = orte_schema.get_std_trigger_name(&trig_name,
|
||||
ORTE_NUM_ABORTED_TRIGGER, job))) {
|
||||
ORTE_ERROR_LOG(rc);
|
||||
free(tokens[0]);
|
||||
free(segment);
|
||||
free(trig_keys[0]);
|
||||
return rc;
|
||||
}
|
||||
trig_level = 1;
|
||||
@ -165,10 +172,14 @@ int orte_rmgr_base_proc_stage_gate_init(orte_jobid_t job)
|
||||
segment, tokens, 1, trig_keys, &trig_level,
|
||||
orte_rmgr_base_proc_stage_gate_mgr_abort, NULL))) {
|
||||
ORTE_ERROR_LOG(rc);
|
||||
free(tokens[0]);
|
||||
free(segment);
|
||||
free(trig_name);
|
||||
free(trig_keys[0]);
|
||||
return rc;
|
||||
}
|
||||
free(tokens[0]);
|
||||
free(segment);
|
||||
free(trig_name);
|
||||
free(trig_keys[0]);
|
||||
|
||||
|
@ -95,8 +95,10 @@ orte_sds_base_basic_contact_universe(void)
|
||||
pid = getpid();
|
||||
if (0 > asprintf(&orte_universe_info.name, "%s-%d", universe, (int)pid)) {
|
||||
opal_output(0, "orte_init: failed to create unique universe name");
|
||||
free(universe);
|
||||
return ret;
|
||||
}
|
||||
free(universe);
|
||||
} else { /* user-specified name - abort */
|
||||
opal_output(0, "orte_init: could not contact the specified universe name %s",
|
||||
orte_universe_info.name);
|
||||
|
@ -3,14 +3,14 @@
|
||||
* All rights reserved.
|
||||
* Copyright (c) 2004-2005 The Trustees of the University of Tennessee.
|
||||
* All rights reserved.
|
||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
||||
* University of Stuttgart. All rights reserved.
|
||||
* Copyright (c) 2004-2005 The Regents of the University of California.
|
||||
* All rights reserved.
|
||||
* $COPYRIGHT$
|
||||
*
|
||||
*
|
||||
* Additional copyrights may follow
|
||||
*
|
||||
*
|
||||
* $HEADER$
|
||||
*/
|
||||
|
||||
@ -86,7 +86,7 @@ int orte_init_stage1(bool infrastructure)
|
||||
if (ORTE_SUCCESS != (ret = orte_proc_info())) {
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
/* Ensure the universe_info structure is instantiated and initialized */
|
||||
if (ORTE_SUCCESS != (ret = orte_univ_info())) {
|
||||
return ret;
|
||||
@ -99,9 +99,9 @@ int orte_init_stage1(bool infrastructure)
|
||||
ORTE_ERROR_LOG(ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Open the name services to ensure access to local functions
|
||||
* Open the name services to ensure access to local functions
|
||||
*/
|
||||
if (OMPI_SUCCESS != (ret = orte_ns_base_open())) {
|
||||
return ret;
|
||||
@ -111,9 +111,9 @@ int orte_init_stage1(bool infrastructure)
|
||||
if (ORTE_SUCCESS != (ret = orte_errmgr_base_open())) {
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
/***** ERROR LOGGING NOW AVAILABLE *****/
|
||||
|
||||
|
||||
/* check for debug flag */
|
||||
if (0 > (ret = mca_base_param_register_int("orte", "debug", NULL, NULL, 0))) {
|
||||
ORTE_ERROR_LOG(ret);
|
||||
@ -125,7 +125,7 @@ int orte_init_stage1(bool infrastructure)
|
||||
}
|
||||
|
||||
/*
|
||||
* Initialize the event library
|
||||
* Initialize the event library
|
||||
*/
|
||||
if (OMPI_SUCCESS != (ret = opal_event_init())) {
|
||||
ORTE_ERROR_LOG(ret);
|
||||
@ -199,7 +199,7 @@ int orte_init_stage1(bool infrastructure)
|
||||
}
|
||||
|
||||
/*
|
||||
* Name Server
|
||||
* Name Server
|
||||
*/
|
||||
if (OMPI_SUCCESS != (ret = orte_ns_base_select())) {
|
||||
ORTE_ERROR_LOG(ret);
|
||||
@ -207,13 +207,13 @@ int orte_init_stage1(bool infrastructure)
|
||||
}
|
||||
|
||||
/*
|
||||
* Registry
|
||||
* Registry
|
||||
*/
|
||||
if (ORTE_SUCCESS != (ret = orte_gpr_base_select())) {
|
||||
ORTE_ERROR_LOG(ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
/* set contact info for ns/gpr */
|
||||
if(NULL != orte_process_info.ns_replica_uri) {
|
||||
orte_rml.set_uri(orte_process_info.ns_replica_uri);
|
||||
@ -235,7 +235,7 @@ int orte_init_stage1(bool infrastructure)
|
||||
if (orte_process_info.seed) {
|
||||
orte_universe_info.seed_uri = orte_rml.get_uri();
|
||||
}
|
||||
|
||||
|
||||
/* setup my session directory */
|
||||
if (ORTE_SUCCESS != (ret = orte_ns.get_jobid_string(&jobid_str, orte_process_info.my_name))) {
|
||||
ORTE_ERROR_LOG(ret);
|
||||
@ -245,7 +245,7 @@ int orte_init_stage1(bool infrastructure)
|
||||
ORTE_ERROR_LOG(ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
if (orte_debug_flag) {
|
||||
opal_output(0, "[%lu,%lu,%lu] setting up session dir with",
|
||||
ORTE_NAME_ARGS(orte_process_info.my_name));
|
||||
@ -303,8 +303,8 @@ int orte_init_stage1(bool infrastructure)
|
||||
free(contact_path);
|
||||
}
|
||||
|
||||
/*
|
||||
* setup the resource manager
|
||||
/*
|
||||
* setup the resource manager
|
||||
*/
|
||||
|
||||
if (ORTE_SUCCESS != (ret = orte_rmgr_base_open())) {
|
||||
@ -316,7 +316,7 @@ int orte_init_stage1(bool infrastructure)
|
||||
ORTE_ERROR_LOG(ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* setup the state-of-health monitor
|
||||
*/
|
||||
@ -329,9 +329,9 @@ int orte_init_stage1(bool infrastructure)
|
||||
ORTE_ERROR_LOG(ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
/* if we are a singleton or the seed, setup the infrastructure for our job */
|
||||
|
||||
|
||||
if(orte_process_info.singleton || orte_process_info.seed) {
|
||||
char *site, *resource;
|
||||
|
||||
@ -339,7 +339,7 @@ int orte_init_stage1(bool infrastructure)
|
||||
ORTE_ERROR_LOG(ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
/* If there is no existing cellid, create one */
|
||||
my_cellid = 0; /* JJH Assertion/Repair until cellid's are fixed */
|
||||
ret = orte_ns.get_cell_info(my_cellid, &site, &resource);
|
||||
@ -350,7 +350,7 @@ int orte_init_stage1(bool infrastructure)
|
||||
ORTE_ERROR_LOG(ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
if(my_cellid != 0) { /* JJH Assertion/Repair until cellid's are fixed */
|
||||
my_cellid = 0;
|
||||
}
|
||||
@ -359,7 +359,7 @@ int orte_init_stage1(bool infrastructure)
|
||||
ORTE_ERROR_LOG(ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
if (ORTE_SUCCESS != (ret = orte_ns.get_cellid(&my_cellid, orte_process_info.my_name))) {
|
||||
ORTE_ERROR_LOG(ret);
|
||||
return ret;
|
||||
@ -372,7 +372,7 @@ int orte_init_stage1(bool infrastructure)
|
||||
* really know that info for a singleton, we make the assumption
|
||||
* that the allocation is unity and place a structure on the
|
||||
* registry for it
|
||||
*
|
||||
*
|
||||
* THIS ONLY SHOULD BE DONE FOR SINGLETONS - DO NOT DO IT
|
||||
* FOR ANY OTHER CASE
|
||||
*/
|
||||
@ -389,11 +389,11 @@ int orte_init_stage1(bool infrastructure)
|
||||
ORTE_ERROR_LOG(ORTE_ERR_OUT_OF_RESOURCE);
|
||||
return ORTE_ERR_OUT_OF_RESOURCE;
|
||||
}
|
||||
|
||||
|
||||
rds_item->site = strdup("Singleton");
|
||||
rds_item->name = strdup(orte_system_info.nodename);
|
||||
rds_item->cellid = my_cellid;
|
||||
|
||||
|
||||
/* Set up data structure for RAS item */
|
||||
ras_item->node_name = strdup(rds_item->name);
|
||||
ras_item->node_arch = strdup("unknown");
|
||||
@ -413,7 +413,7 @@ int orte_init_stage1(bool infrastructure)
|
||||
new_attr->keyval.type = ORTE_STRING;
|
||||
new_attr->keyval.value.strptr = strdup(ras_item->node_name);
|
||||
opal_list_append(&(rds_item->attributes), &new_attr->super);
|
||||
|
||||
|
||||
new_attr = OBJ_NEW(orte_rds_cell_attr_t);
|
||||
if (NULL == new_attr) {
|
||||
ORTE_ERROR_LOG(ORTE_ERR_OUT_OF_RESOURCE);
|
||||
@ -423,7 +423,7 @@ int orte_init_stage1(bool infrastructure)
|
||||
new_attr->keyval.type = ORTE_CELLID;
|
||||
new_attr->keyval.value.cellid = rds_item->cellid;
|
||||
opal_list_append(&(rds_item->attributes), &new_attr->super);
|
||||
|
||||
|
||||
opal_list_append(&rds_single_host, &rds_item->super);
|
||||
|
||||
/* Store into registry */
|
||||
@ -438,11 +438,11 @@ int orte_init_stage1(bool infrastructure)
|
||||
ORTE_ERROR_LOG(ret);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
OBJ_DESTRUCT(&single_host);
|
||||
OBJ_DESTRUCT(&rds_single_host);
|
||||
}
|
||||
|
||||
|
||||
/* set the rest of the infrastructure */
|
||||
if (ORTE_SUCCESS != (ret = orte_rmgr_base_set_job_slots(my_jobid,1))) {
|
||||
ORTE_ERROR_LOG(ret);
|
||||
@ -554,7 +554,7 @@ orte_err2str(int errnum)
|
||||
case ORTE_ERR_TYPE_MISMATCH:
|
||||
retval = "Type mismatch";
|
||||
break;
|
||||
default:
|
||||
default:
|
||||
retval = NULL;
|
||||
}
|
||||
|
||||
|
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
Загрузка…
x
Ссылка в новой задаче
Block a user