From cfeeecd381f3f0fa7ee3d19f902975a77c5100e8 Mon Sep 17 00:00:00 2001 From: George Bosilca Date: Sat, 7 Jan 2017 13:17:17 -0500 Subject: [PATCH] Remove the tcp_local field from the TCP component. Instead use the OPAL process name to get the name of the local process. Signed-off-by: George Bosilca --- opal/mca/btl/tcp/btl_tcp.c | 6 ++---- opal/mca/btl/tcp/btl_tcp.h | 1 - opal/mca/btl/tcp/btl_tcp_endpoint.c | 9 +++------ opal/mca/btl/tcp/btl_tcp_proc.c | 12 ++++++------ opal/mca/btl/tcp/btl_tcp_proc.h | 11 ----------- 5 files changed, 11 insertions(+), 28 deletions(-) diff --git a/opal/mca/btl/tcp/btl_tcp.c b/opal/mca/btl/tcp/btl_tcp.c index a3cfd9daf6..ac6289cf1f 100644 --- a/opal/mca/btl/tcp/btl_tcp.c +++ b/opal/mca/btl/tcp/btl_tcp.c @@ -156,10 +156,8 @@ int mca_btl_tcp_del_procs(struct mca_btl_base_module_t* btl, OPAL_THREAD_LOCK(&tcp_btl->tcp_endpoints_mutex); for( i = 0; i < nprocs; i++ ) { mca_btl_tcp_endpoint_t* tcp_endpoint = endpoints[i]; - if(tcp_endpoint->endpoint_proc != mca_btl_tcp_proc_local()) { - opal_list_remove_item(&tcp_btl->tcp_endpoints, (opal_list_item_t*)tcp_endpoint); - OBJ_RELEASE(tcp_endpoint); - } + opal_list_remove_item(&tcp_btl->tcp_endpoints, (opal_list_item_t*)tcp_endpoint); + OBJ_RELEASE(tcp_endpoint); opal_progress_event_users_decrement(); } OPAL_THREAD_UNLOCK(&tcp_btl->tcp_endpoints_mutex); diff --git a/opal/mca/btl/tcp/btl_tcp.h b/opal/mca/btl/tcp/btl_tcp.h index 6f7b48d717..c78bd30174 100644 --- a/opal/mca/btl/tcp/btl_tcp.h +++ b/opal/mca/btl/tcp/btl_tcp.h @@ -107,7 +107,6 @@ struct mca_btl_tcp_component_t { uint32_t tcp_num_btls; /**< number of interfaces available to the TCP component */ unsigned int tcp_num_links; /**< number of logical links per physical device */ struct mca_btl_tcp_module_t **tcp_btls; /**< array of available BTL modules */ - struct mca_btl_tcp_proc_t* tcp_local; /**< local proc struct */ int tcp_free_list_num; /**< initial size of free lists */ int tcp_free_list_max; /**< maximum size of free lists */ int tcp_free_list_inc; /**< number of elements to alloc when growing free lists */ diff --git a/opal/mca/btl/tcp/btl_tcp_endpoint.c b/opal/mca/btl/tcp/btl_tcp_endpoint.c index 935bf4b277..9cd97e34b2 100644 --- a/opal/mca/btl/tcp/btl_tcp_endpoint.c +++ b/opal/mca/btl/tcp/btl_tcp_endpoint.c @@ -150,7 +150,6 @@ mca_btl_tcp_endpoint_dump(int level, opal_socklen_t obtlen; opal_socklen_t addrlen = sizeof(inaddr); mca_btl_tcp_frag_t* item; - mca_btl_tcp_proc_t* this_proc = mca_btl_tcp_proc_local(); used += snprintf(&outmsg[used], DEBUG_LENGTH - used, "%s: ", msg); if (used >= DEBUG_LENGTH) goto out; @@ -280,7 +279,7 @@ out: opal_output_verbose(level, opal_btl_base_framework.framework_output, "[%s:%d:%s][%s -> %s] %s", fname, lineno, funcname, - (NULL != this_proc ? OPAL_NAME_PRINT(mca_btl_tcp_proc_local()->proc_opal->proc_name) : "unknown"), + OPAL_NAME_PRINT(opal_proc_local_get()->proc_name), (NULL != btl_endpoint->endpoint_proc ? OPAL_NAME_PRINT(btl_endpoint->endpoint_proc->proc_opal->proc_name) : "unknown remote"), outmsg); } @@ -408,8 +407,7 @@ mca_btl_tcp_endpoint_send_blocking(mca_btl_base_endpoint_t* btl_endpoint, static int mca_btl_tcp_endpoint_send_connect_ack(mca_btl_base_endpoint_t* btl_endpoint) { /* send process identifier to remote endpoint */ - mca_btl_tcp_proc_t* btl_proc = mca_btl_tcp_proc_local(); - opal_process_name_t guid = btl_proc->proc_opal->proc_name; + opal_process_name_t guid = opal_proc_local_get()->proc_name; OPAL_PROCESS_NAME_HTON(guid); if(mca_btl_tcp_endpoint_send_blocking(btl_endpoint, &guid, sizeof(guid)) != @@ -422,7 +420,6 @@ static int mca_btl_tcp_endpoint_send_connect_ack(mca_btl_base_endpoint_t* btl_en static void *mca_btl_tcp_endpoint_complete_accept(int fd, int flags, void *context) { mca_btl_base_endpoint_t* btl_endpoint = (mca_btl_base_endpoint_t*)context; - mca_btl_tcp_proc_t* this_proc = mca_btl_tcp_proc_local(); struct timeval now = {0, 0}; int cmpval; @@ -451,7 +448,7 @@ static void *mca_btl_tcp_endpoint_complete_accept(int fd, int flags, void *conte } cmpval = opal_compare_proc(btl_endpoint->endpoint_proc->proc_opal->proc_name, - this_proc->proc_opal->proc_name); + opal_proc_local_get()->proc_name); if((btl_endpoint->endpoint_sd < 0) || (btl_endpoint->endpoint_state != MCA_BTL_TCP_CONNECTED && cmpval < 0)) { diff --git a/opal/mca/btl/tcp/btl_tcp_proc.c b/opal/mca/btl/tcp/btl_tcp_proc.c index f7decc44ff..8b9ae395db 100644 --- a/opal/mca/btl/tcp/btl_tcp_proc.c +++ b/opal/mca/btl/tcp/btl_tcp_proc.c @@ -163,10 +163,6 @@ mca_btl_tcp_proc_t* mca_btl_tcp_proc_create(opal_proc_t* proc) break; } - if(NULL == mca_btl_tcp_component.tcp_local && (proc == opal_proc_local_get())) { - mca_btl_tcp_component.tcp_local = btl_proc; - } - /* convert the OPAL addr_family field to OS constants, * so we can check for AF_INET (or AF_INET6) and don't have * to deal with byte ordering anymore. @@ -745,8 +741,8 @@ mca_btl_tcp_proc_t* mca_btl_tcp_proc_lookup(const opal_process_name_t *name) mca_btl_base_endpoint_t *endpoint; opal_proc_t *opal_proc; - BTL_VERBOSE(("adding tcp proc for unknown peer {.jobid = 0x%x, .vpid = 0x%x}", - name->jobid, name->vpid)); + BTL_VERBOSE(("adding tcp proc for unknown peer {%s}", + OPAL_NAME_PRINT(*name))); opal_proc = opal_proc_for_name (*name); if (NULL == opal_proc) { @@ -761,6 +757,7 @@ mca_btl_tcp_proc_t* mca_btl_tcp_proc_lookup(const opal_process_name_t *name) if (NULL != endpoint && NULL == proc) { /* get the proc and continue on (could probably just break here) */ proc = endpoint->endpoint_proc; + break; } } } @@ -808,6 +805,9 @@ void mca_btl_tcp_proc_accept(mca_btl_tcp_proc_t* btl_proc, struct sockaddr* addr return; } OPAL_THREAD_UNLOCK(&btl_proc->proc_lock); + opal_output(0, "btl: tcp: Incoming connection from %s does not match known addresses for peer %s. Drop !\n", + opal_net_get_hostname((struct sockaddr*)addr), + OPAL_NAME_PRINT(btl_proc->proc_opal->proc_name)); /* No further use of this socket. Close it */ CLOSE_THE_SOCKET(sd); } diff --git a/opal/mca/btl/tcp/btl_tcp_proc.h b/opal/mca/btl/tcp/btl_tcp_proc.h index 5e56cd7dea..d316134e2b 100644 --- a/opal/mca/btl/tcp/btl_tcp_proc.h +++ b/opal/mca/btl/tcp/btl_tcp_proc.h @@ -111,16 +111,5 @@ int mca_btl_tcp_proc_remove(mca_btl_tcp_proc_t*, mca_btl_base_endpoint_t*); void mca_btl_tcp_proc_accept(mca_btl_tcp_proc_t*, struct sockaddr*, int); bool mca_btl_tcp_proc_tosocks(mca_btl_tcp_addr_t*, struct sockaddr_storage*); -/** - * Inlined function to return local TCP proc instance. - */ - -static inline mca_btl_tcp_proc_t* mca_btl_tcp_proc_local(void) -{ - if(NULL == mca_btl_tcp_component.tcp_local) - mca_btl_tcp_component.tcp_local = mca_btl_tcp_proc_create(opal_proc_local_get()); - return mca_btl_tcp_component.tcp_local; -} - END_C_DECLS #endif