[mpich2-commits] r7415 - in mpich2/trunk/src/mpid/ch3: channels/nemesis/nemesis/netmod/tcp include src util/ftb
buntinas at mcs.anl.gov
buntinas at mcs.anl.gov
Thu Nov 4 15:24:56 CDT 2010
Author: buntinas
Date: 2010-11-04 15:24:55 -0500 (Thu, 04 Nov 2010)
New Revision: 7415
Modified:
mpich2/trunk/src/mpid/ch3/channels/nemesis/nemesis/netmod/tcp/socksm.c
mpich2/trunk/src/mpid/ch3/channels/nemesis/nemesis/netmod/tcp/tcp_impl.h
mpich2/trunk/src/mpid/ch3/channels/nemesis/nemesis/netmod/tcp/tcp_send.c
mpich2/trunk/src/mpid/ch3/include/mpidftb.h
mpich2/trunk/src/mpid/ch3/src/ch3u_handle_connection.c
mpich2/trunk/src/mpid/ch3/src/mpid_abort.c
mpich2/trunk/src/mpid/ch3/util/ftb/ftb.c
Log:
Modified what and where FTB events are thrown to reflect draft standard MPI FTB events
Modified: mpich2/trunk/src/mpid/ch3/channels/nemesis/nemesis/netmod/tcp/socksm.c
===================================================================
--- mpich2/trunk/src/mpid/ch3/channels/nemesis/nemesis/netmod/tcp/socksm.c 2010-11-04 16:54:46 UTC (rev 7414)
+++ mpich2/trunk/src/mpid/ch3/channels/nemesis/nemesis/netmod/tcp/socksm.c 2010-11-04 20:24:55 UTC (rev 7415)
@@ -491,10 +491,7 @@
}
CHECK_EINTR (offset, writev(sc->fd, iov, iov_cnt));
- if (offset == -1 && errno != EAGAIN) {
- MPIDU_Ftb_publish(MPIDU_FTB_EV_COMMUNICATION, "");
- MPIU_ERR_SETANDJUMP1(mpi_errno, MPI_ERR_OTHER, "**write", "**write %s", MPIU_Strerror(errno));
- }
+ MPIU_ERR_CHKANDJUMP1(offset == -1 && errno != EAGAIN, mpi_errno, MPI_ERR_OTHER, "**write", "**write %s", MPIU_Strerror(errno));
MPIU_ERR_CHKANDJUMP1(offset != buf_size, mpi_errno, MPI_ERR_OTHER, "**write", "**write %s", MPIU_Strerror(errno));
/* FIXME log appropriate error */
/* FIXME-Z1 socket is just connected and we are sending a few bytes. So, there should not */
@@ -543,10 +540,7 @@
buf_size = sizeof(hdr) + sizeof(port_info);
CHECK_EINTR (offset, writev(sc->fd, iov, iov_cnt));
- if (offset == -1 && errno != EAGAIN) {
- MPIDU_Ftb_publish(MPIDU_FTB_EV_COMMUNICATION, "");
- MPIU_ERR_SETANDJUMP1(mpi_errno, MPI_ERR_OTHER, "**write", "**write %s", MPIU_Strerror(errno));
- }
+ MPIU_ERR_CHKANDJUMP1(offset == -1 && errno != EAGAIN, mpi_errno, MPI_ERR_OTHER, "**write", "**write %s", MPIU_Strerror(errno));
MPIU_ERR_CHKANDJUMP1(offset != buf_size, mpi_errno, MPI_ERR_OTHER, "**write", "**write %s", MPIU_Strerror(errno));
/* FIXME log appropriate error */
/* FIXME-Z1 socket is just connected and we are sending a few bytes. So, there should not */
@@ -591,7 +585,6 @@
goto fn_exit;
}
if (nread == -1 && errno != EAGAIN) {
- MPIDU_Ftb_publish(MPIDU_FTB_EV_COMMUNICATION, "");
MPIU_ERR_SETANDJUMP1(mpi_errno, MPI_ERR_OTHER, "**read", "**read %s", MPIU_Strerror(errno));
}
MPIU_ERR_CHKANDJUMP1(nread != hdr_len, mpi_errno, MPI_ERR_OTHER, "**read", "**read %s", MPIU_Strerror(errno)); /* FIXME-Z1 */
@@ -611,7 +604,6 @@
}
CHECK_EINTR (nread, readv(sc->fd, iov, iov_cnt));
if (nread == -1 && errno != EAGAIN) {
- MPIDU_Ftb_publish(MPIDU_FTB_EV_COMMUNICATION, "");
MPIU_ERR_SETANDJUMP1(mpi_errno, MPI_ERR_OTHER, "**read", "**read %s", MPIU_Strerror(errno));
}
MPIU_ERR_CHKANDJUMP1(nread != hdr.datalen, mpi_errno, MPI_ERR_OTHER, "**read", "**read %s", MPIU_Strerror(errno)); /* FIXME-Z1 */
@@ -674,7 +666,6 @@
CHECK_EINTR (nread, readv(sc->fd, iov, iov_cnt));
if (nread == -1 && errno != EAGAIN) {
- MPIDU_Ftb_publish(MPIDU_FTB_EV_COMMUNICATION, "");
MPIU_ERR_SETANDJUMP1(mpi_errno, MPI_ERR_OTHER, "**read", "**read %s", MPIU_Strerror(errno));
}
MPIU_ERR_CHKANDJUMP1(nread != hdr.datalen, mpi_errno, MPI_ERR_OTHER, "**read", "**read %s", MPIU_Strerror(errno)); /* FIXME-Z1 */
@@ -723,10 +714,7 @@
pkt.datalen = 0;
CHECK_EINTR (offset, write(fd, &pkt, pkt_len));
- if (offset == -1 && errno != EAGAIN) {
- MPIDU_Ftb_publish(MPIDU_FTB_EV_COMMUNICATION, "");
- MPIU_ERR_SETANDJUMP1(mpi_errno, MPI_ERR_OTHER, "**write", "**write %s", MPIU_Strerror(errno));
- }
+ MPIU_ERR_CHKANDJUMP1(offset == -1 && errno != EAGAIN, mpi_errno, MPI_ERR_OTHER, "**write", "**write %s", MPIU_Strerror(errno));
MPIU_ERR_CHKANDJUMP1(offset != pkt_len, mpi_errno, MPI_ERR_OTHER, "**write", "**write %s", MPIU_Strerror(errno)); /* FIXME-Z1 */
fn_exit:
return mpi_errno;
@@ -754,10 +742,7 @@
MPIDI_FUNC_ENTER(MPID_STATE_RECV_CMD_PKT);
CHECK_EINTR (nread, read(fd, &pkt, pkt_len));
- if (nread == -1 && errno != EAGAIN) {
- MPIDU_Ftb_publish(MPIDU_FTB_EV_COMMUNICATION, "");
- MPIU_ERR_SETANDJUMP1(mpi_errno, MPI_ERR_OTHER, "**read", "**read %s", MPIU_Strerror(errno));
- }
+ MPIU_ERR_CHKANDJUMP1(nread == -1 && errno != EAGAIN, mpi_errno, MPI_ERR_OTHER, "**read", "**read %s", MPIU_Strerror(errno));
MPIU_ERR_CHKANDJUMP2(nread != pkt_len, mpi_errno, MPI_ERR_OTHER, "**read", "**read %d %s", nread, MPIU_Strerror(errno)); /* FIXME-Z1 */
MPIU_Assert(pkt.datalen == 0);
MPIU_Assert(pkt.pkt_type == MPIDI_NEM_TCP_SOCKSM_PKT_ID_ACK ||
@@ -871,13 +856,8 @@
sock_addr = &(vc_tcp->sock_id);
CHECK_EINTR(sc->fd, socket(AF_INET, SOCK_STREAM, 0));
- if (sc->fd == -1) {
- if (errno == ENOBUFS || errno == ENOMEM) {
- MPIDU_Ftb_publish(MPIDU_FTB_EV_RESOURCES, "socket");
- }
- MPIDU_FTB_COMMERR(MPIDU_FTB_EV_COMMUNICATION, vc);
- MPIU_ERR_SETANDJUMP2(mpi_errno, MPI_ERR_OTHER, "**sock_create", "**sock_create %s %d", MPIU_Strerror(errno), errno);
- }
+ MPIU_ERR_CHKANDJUMP2(sc->fd == -1, mpi_errno, MPI_ERR_OTHER, "**sock_create", "**sock_create %s %d", MPIU_Strerror(errno), errno);
+
plfd->fd = sc->fd;
MPIU_DBG_MSG_FMT(NEM_SOCK_DET, VERBOSE, (MPIU_DBG_FDEST, "sc->fd=%d, plfd->events=%d, plfd->revents=%d, vc=%p, sc=%p", sc->fd, plfd->events, plfd->revents, vc, sc));
mpi_errno = MPID_nem_tcp_set_sockopts(sc->fd);
@@ -886,10 +866,7 @@
MPIU_DBG_MSG_FMT(NEM_SOCK_DET, VERBOSE, (MPIU_DBG_FDEST, "connecting to 0x%08X:%d", sock_addr->sin_addr.s_addr, sock_addr->sin_port));
rc = connect(sc->fd, (SA*)sock_addr, sizeof(*sock_addr));
/* connect should not be called with CHECK_EINTR macro */
- if (rc < 0 && errno != EINPROGRESS) {
- MPIDU_FTB_COMMERR(rc == ENETUNREACH ? MPIDU_FTB_EV_UNREACHABLE : MPIDU_FTB_EV_COMMUNICATION, vc);
- MPIU_ERR_SETANDJUMP2(mpi_errno, MPI_ERR_OTHER, "**sock_connect", "**sock_connect %d %s", errno, MPIU_Strerror(errno));
- }
+ MPIU_ERR_CHKANDJUMP2(rc < 0 && errno != EINPROGRESS, mpi_errno, MPI_ERR_OTHER, "**sock_connect", "**sock_connect %d %s", errno, MPIU_Strerror(errno));
if (rc == 0) {
CHANGE_STATE(sc, CONN_STATE_TC_C_CNTD);
@@ -1022,13 +999,8 @@
goto fn_exit;
CHECK_EINTR(rc, close(sc->fd));
- if (rc == -1 && errno != EAGAIN && errno != EBADF) {
- if (sc_vc)
- MPIDU_FTB_COMMERR(MPIDU_FTB_EV_COMMUNICATION, sc_vc);
- else
- MPIDU_Ftb_publish(MPIDU_FTB_EV_COMMUNICATION, "");
+ if (rc == -1 && errno != EAGAIN && errno != EBADF)
MPIU_ERR_SET1(mpi_errno, MPI_ERR_OTHER, "**close", "**close %s", MPIU_Strerror(errno));
- }
mpi_errno = cleanup_and_free_sc_plfd(sc);
if (mpi_errno) MPIU_ERR_POP(mpi_errno);
@@ -1611,7 +1583,6 @@
if (bytes_recvd == -1 && errno == EAGAIN) /* handle this fast */
goto fn_exit;
- MPIDU_FTB_COMMERR(MPIDU_FTB_EV_COMMUNICATION, sc_vc);
if (bytes_recvd == 0) {
MPIU_ERR_SETANDJUMP(mpi_errno, MPI_ERR_OTHER, "**sock_closed");
} else {
@@ -1673,7 +1644,7 @@
fn_fail: /* comm related failures jump here */
{
int cleanup_errno = MPI_SUCCESS;
- MPIDU_FTB_COMMERR(MPIDU_FTB_EV_COMMUNICATION, sc_vc);
+
cleanup_errno = MPID_nem_tcp_cleanup_on_error(sc_vc); /* QUIESCENT */
if (cleanup_errno) {
MPIU_ERR_SET(cleanup_errno, MPI_ERR_OTHER, "**tcp_cleanup_fail");
@@ -1822,7 +1793,6 @@
CHECK_EINTR(n, poll(MPID_nem_tcp_plfd_tbl, num_polled, 0));
if (n == -1) {
- MPIDU_Ftb_publish(MPIDU_FTB_EV_COMMUNICATION, "");
MPIU_ERR_SETANDJUMP1(mpi_errno, MPI_ERR_OTHER, "**poll", "**poll %s", MPIU_Strerror(errno));
}
/* MPIU_DBG_MSG_FMT(NEM_SOCK_DET, VERBOSE, (MPIU_DBG_FDEST, "some sc fd poll event")); */
@@ -1852,7 +1822,6 @@
#ifdef HAVE_ERROR_CHECKING
int pg_rank = it_sc->vc->pg_rank; /* vc goes away on cleanup */
#endif
- MPIDU_FTB_COMMERR(MPIDU_FTB_EV_COMMUNICATION, it_sc->vc);
cleanup_errno = MPID_nem_tcp_cleanup_on_error(it_sc->vc);
if (cleanup_errno) {
MPIU_ERR_SET(cleanup_errno, MPI_ERR_OTHER, "**tcp_cleanup_fail");
@@ -1860,7 +1829,6 @@
}
MPIU_ERR_SET2(mpi_errno, MPI_ERR_OTHER, "**comm_fail", "**comm_fail %d %s", pg_rank, err_str);
} else {
- MPIDU_Ftb_publish(MPIDU_FTB_EV_COMMUNICATION, "");
cleanup_errno = close_cleanup_and_free_sc_plfd(it_sc);
if (cleanup_errno) {
MPIU_ERR_SET(cleanup_errno, MPI_ERR_OTHER, "**tcp_cleanup_fail");
@@ -1937,8 +1905,7 @@
continue;
else if (errno == EWOULDBLOCK)
break; /* no connection in the listen queue. get out of here.(N1) */
- if (errno == ENOBUFS || errno == ENOMEM)
- MPIDU_Ftb_publish(MPIDU_FTB_EV_RESOURCES, "sock_accept");
+
MPIU_ERR_SETANDJUMP1(mpi_errno, MPI_ERR_OTHER, "**sock_accept", "**sock_accept %s", MPIU_Strerror(errno));
}
else {
Modified: mpich2/trunk/src/mpid/ch3/channels/nemesis/nemesis/netmod/tcp/tcp_impl.h
===================================================================
--- mpich2/trunk/src/mpid/ch3/channels/nemesis/nemesis/netmod/tcp/tcp_impl.h 2010-11-04 16:54:46 UTC (rev 7414)
+++ mpich2/trunk/src/mpid/ch3/channels/nemesis/nemesis/netmod/tcp/tcp_impl.h 2010-11-04 20:24:55 UTC (rev 7415)
@@ -187,18 +187,6 @@
#define MPIDI_CH3I_HOST_DESCRIPTION_KEY "description"
#define MPIDI_CH3I_IFNAME_KEY "ifname"
-/* convenience macro for publishing FTB communication error events */
-#define MPIDU_FTB_COMMERR(event_name, vc) do { \
- int ret_ = -1; \
- char bc_[1024] = ""; /* FIXME: How do we find the max length of a bc? */ \
- char ifname_[1024] = ""; \
- \
- if (vc && vc->pg) /* pg can be null for temp VCs (dynamic processes) */ \
- ret_ = vc->pg->getConnInfo((vc)->pg_rank, bc_, sizeof(bc_), (vc)->pg); \
- if (!ret_) \
- ret_ = MPIU_Str_get_string_arg(bc_, MPIDI_CH3I_IFNAME_KEY, ifname_, sizeof(ifname_)); \
- MPIDU_Ftb_publish((event_name), ifname_); \
- } while(0)
/* tcp-local packet types */
Modified: mpich2/trunk/src/mpid/ch3/channels/nemesis/nemesis/netmod/tcp/tcp_send.c
===================================================================
--- mpich2/trunk/src/mpid/ch3/channels/nemesis/nemesis/netmod/tcp/tcp_send.c 2010-11-04 16:54:46 UTC (rev 7414)
+++ mpich2/trunk/src/mpid/ch3/channels/nemesis/nemesis/netmod/tcp/tcp_send.c 2010-11-04 20:24:55 UTC (rev 7415)
@@ -99,7 +99,7 @@
CHECK_EINTR(offset, writev(vc_tcp->sc->fd, iov, sreq->dev.iov_count));
if (offset == 0) {
int cleanup_errno = MPI_SUCCESS;
- MPIDU_FTB_COMMERR(MPIDU_FTB_EV_COMMUNICATION, vc);
+
MPIU_ERR_SET(mpi_errno, MPI_ERR_OTHER, "**sock_closed");
MPIU_ERR_SET1(mpi_errno, MPI_ERR_OTHER, "**comm_fail", "**comm_fail %d", vc->pg_rank);
cleanup_errno = MPID_nem_tcp_cleanup_on_error(vc);
@@ -115,7 +115,7 @@
break;
} else {
int cleanup_errno = MPI_SUCCESS;
- MPIDU_FTB_COMMERR(MPIDU_FTB_EV_COMMUNICATION, vc);
+
MPIU_ERR_SET1(mpi_errno, MPI_ERR_OTHER, "**writev", "**writev %s", MPIU_Strerror (errno));
MPIU_ERR_SET1(mpi_errno, MPI_ERR_OTHER, "**comm_fail", "**comm_fail %d", vc->pg_rank);
cleanup_errno = MPID_nem_tcp_cleanup_on_error(vc);
@@ -265,7 +265,7 @@
CHECK_EINTR(offset, writev(sc->fd, iov, 2));
if (offset == 0) {
int cleanup_errno = MPI_SUCCESS;
- MPIDU_FTB_COMMERR(MPIDU_FTB_EV_COMMUNICATION, vc);
+
MPIU_ERR_SET(mpi_errno, MPI_ERR_OTHER, "**sock_closed");
MPIU_ERR_SET1(mpi_errno, MPI_ERR_OTHER, "**comm_fail", "**comm_fail %d", vc->pg_rank);
cleanup_errno = MPID_nem_tcp_cleanup_on_error(vc);
@@ -278,7 +278,7 @@
offset = 0;
else {
int cleanup_errno = MPI_SUCCESS;
- MPIDU_FTB_COMMERR(MPIDU_FTB_EV_COMMUNICATION, vc);
+
MPIU_ERR_SET1(mpi_errno, MPI_ERR_OTHER, "**writev", "**writev %s", MPIU_Strerror (errno));
MPIU_ERR_SET1(mpi_errno, MPI_ERR_OTHER, "**comm_fail", "**comm_fail %d", vc->pg_rank);
cleanup_errno = MPID_nem_tcp_cleanup_on_error(vc);
@@ -405,7 +405,7 @@
CHECK_EINTR(offset, writev(sc->fd, iov, 2));
if (offset == 0) {
int cleanup_errno = MPI_SUCCESS;
- MPIDU_FTB_COMMERR(MPIDU_FTB_EV_COMMUNICATION, vc);
+
MPIU_ERR_SET(mpi_errno, MPI_ERR_OTHER, "**sock_closed");
MPIU_ERR_SET1(mpi_errno, MPI_ERR_OTHER, "**comm_fail", "**comm_fail %d", vc->pg_rank);
cleanup_errno = MPID_nem_tcp_cleanup_on_error(vc);
@@ -418,7 +418,7 @@
offset = 0;
else {
int cleanup_errno = MPI_SUCCESS;
- MPIDU_FTB_COMMERR(MPIDU_FTB_EV_COMMUNICATION, vc);
+
MPIU_ERR_SET1(mpi_errno, MPI_ERR_OTHER, "**writev", "**writev %s", MPIU_Strerror (errno));
MPIU_ERR_SET1(mpi_errno, MPI_ERR_OTHER, "**comm_fail", "**comm_fail %d", vc->pg_rank);
cleanup_errno = MPID_nem_tcp_cleanup_on_error(vc); /* ignoring return code */
@@ -540,7 +540,7 @@
CHECK_EINTR(offset, writev(sc->fd, iov, 2));
if (offset == 0) {
int cleanup_errno = MPI_SUCCESS;
- MPIDU_FTB_COMMERR(MPIDU_FTB_EV_COMMUNICATION, vc);
+
MPIU_ERR_SET(mpi_errno, MPI_ERR_OTHER, "**sock_closed");
MPIU_ERR_SET1(mpi_errno, MPI_ERR_OTHER, "**comm_fail", "**comm_fail %d", vc->pg_rank);
cleanup_errno = MPID_nem_tcp_cleanup_on_error(vc);
@@ -553,7 +553,7 @@
offset = 0;
else {
int cleanup_errno = MPI_SUCCESS;
- MPIDU_FTB_COMMERR(MPIDU_FTB_EV_COMMUNICATION, vc);
+
MPIU_ERR_SET1(mpi_errno, MPI_ERR_OTHER, "**writev", "**writev %s", MPIU_Strerror (errno));
MPIU_ERR_SET1(mpi_errno, MPI_ERR_OTHER, "**comm_fail", "**comm_fail %d", vc->pg_rank);
cleanup_errno = MPID_nem_tcp_cleanup_on_error(vc);
@@ -698,7 +698,7 @@
CHECK_EINTR(offset, writev(vc_tcp->sc->fd, iov, iov_n));
if (offset == 0) {
int cleanup_errno = MPI_SUCCESS;
- MPIDU_FTB_COMMERR(MPIDU_FTB_EV_COMMUNICATION, vc);
+
MPIU_ERR_SET(mpi_errno, MPI_ERR_OTHER, "**sock_closed");
MPIU_ERR_SET1(mpi_errno, MPI_ERR_OTHER, "**comm_fail", "**comm_fail %d", vc->pg_rank);
cleanup_errno = MPID_nem_tcp_cleanup_on_error(vc);
@@ -711,7 +711,7 @@
offset = 0;
else {
int cleanup_errno = MPI_SUCCESS;
- MPIDU_FTB_COMMERR(MPIDU_FTB_EV_COMMUNICATION, vc);
+
MPIU_ERR_SET1(mpi_errno, MPI_ERR_OTHER, "**writev", "**writev %s", MPIU_Strerror (errno));
MPIU_ERR_SET1(mpi_errno, MPI_ERR_OTHER, "**comm_fail", "**comm_fail %d", vc->pg_rank);
cleanup_errno = MPID_nem_tcp_cleanup_on_error(vc);
Modified: mpich2/trunk/src/mpid/ch3/include/mpidftb.h
===================================================================
--- mpich2/trunk/src/mpid/ch3/include/mpidftb.h 2010-11-04 16:54:46 UTC (rev 7414)
+++ mpich2/trunk/src/mpid/ch3/include/mpidftb.h 2010-11-04 20:24:55 UTC (rev 7415)
@@ -8,20 +8,26 @@
#define MPICH2_FTB_H_INCLUDED
/* FTB events we can throw */
-#define MPIDU_FTB_EV_OTHER "OTHER"
-#define MPIDU_FTB_EV_RESOURCES "RESOURCES"
-#define MPIDU_FTB_EV_UNREACHABLE "UNREACHABLE"
-#define MPIDU_FTB_EV_COMMUNICATION "COMUNICATION"
-#define MPIDU_FTB_EV_ABORT "ABORT"
+#define MPIDU_FTB_EV_OTHER "FTB_MPICH_OTHER"
+#define MPIDU_FTB_EV_RESOURCES "FTB_MPICH_RESOURCES"
+#define MPIDU_FTB_EV_UNREACHABLE "FTB_MPI_PROCS_UNREACHABLE"
+#define MPIDU_FTB_EV_COMMUNICATION "FTB_MPI_PROCS_COMM_ERROR"
+#define MPIDU_FTB_EV_ABORT "FTB_MPI_PROCS_ABORTED"
#ifdef ENABLE_FTB
+struct MPIDI_VC;
+
/* prototypes */
int MPIDU_Ftb_init(void);
void MPIDU_Ftb_publish(const char *event_name, const char *event_payload);
+void MPIDU_Ftb_publish_vc(const char *event_name, struct MPIDI_VC *vc);
+void MPIDU_Ftb_publish_me(const char *event_name);
void MPIDU_Ftb_finalize(void);
#else /* ENABLE_FTB */
#define MPIDU_Ftb_init() (MPI_SUCCESS)
#define MPIDU_Ftb_publish(event_name, event_payload) do {} while(0)
+#define MPIDU_Ftb_publish_vc(event_name, vc) do {} while(0)
+#define MPIDU_Ftb_publish_me(event_name) do {} while(0)
#define MPIDU_Ftb_finalize() do {} while(0)
#endif /* ENABLE_FTB */
Modified: mpich2/trunk/src/mpid/ch3/src/ch3u_handle_connection.c
===================================================================
--- mpich2/trunk/src/mpid/ch3/src/ch3u_handle_connection.c 2010-11-04 16:54:46 UTC (rev 7414)
+++ mpich2/trunk/src/mpid/ch3/src/ch3u_handle_connection.c 2010-11-04 20:24:55 UTC (rev 7415)
@@ -74,6 +74,7 @@
MPIU_DBG_MSG(CH3_DISCONNECT,TYPICAL, "Connection closed prematurely.");
+ MPIDU_Ftb_publish_vc(MPIDU_FTB_EV_UNREACHABLE, vc);
MPIDI_CHANGE_VC_STATE(vc, MORIBUND);
break;
@@ -97,6 +98,7 @@
MPIU_DBG_MSG_D(CH3_DISCONNECT,TYPICAL, "Connection closed prematurely during close protocol. "
"Outstanding close operations = %d", MPIDI_Outstanding_close_ops);
+ MPIDU_Ftb_publish_vc(MPIDU_FTB_EV_UNREACHABLE, vc);
MPIDI_CHANGE_VC_STATE(vc, MORIBUND);
/* MT: this is not thread safe */
Modified: mpich2/trunk/src/mpid/ch3/src/mpid_abort.c
===================================================================
--- mpich2/trunk/src/mpid/ch3/src/mpid_abort.c 2010-11-04 16:54:46 UTC (rev 7414)
+++ mpich2/trunk/src/mpid/ch3/src/mpid_abort.c 2010-11-04 20:24:55 UTC (rev 7415)
@@ -80,9 +80,9 @@
}
}
- MPIDU_Ftb_publish(MPIDU_FTB_EV_ABORT, error_msg);
+ MPIDU_Ftb_publish_me(MPIDU_FTB_EV_ABORT);
MPIDU_Ftb_finalize();
-
+
#ifdef HAVE_DEBUGGER_SUPPORT
MPIR_DebuggerSetAborting( error_msg );
#endif
Modified: mpich2/trunk/src/mpid/ch3/util/ftb/ftb.c
===================================================================
--- mpich2/trunk/src/mpid/ch3/util/ftb/ftb.c 2010-11-04 16:54:46 UTC (rev 7414)
+++ mpich2/trunk/src/mpid/ch3/util/ftb/ftb.c 2010-11-04 20:24:55 UTC (rev 7415)
@@ -93,6 +93,36 @@
return;
}
+/* convenience function for publishing events associated with a particular vc */
+#undef FUNCNAME
+#define FUNCNAME MPIDU_Ftb_publish_vc
+#undef FCNAME
+#define FCNAME MPIDI_QUOTE(FUNCNAME)
+void MPIDU_Ftb_publish_vc(const char *event_name, struct MPIDI_VC *vc)
+{
+ char payload[FTB_MAX_PAYLOAD_DATA] = "";
+
+ if (vc && vc->pg) /* pg can be null for temp VCs (dynamic processes) */
+ MPIU_Snprintf(payload, sizeof(payload), "[id: {%s:{%d}}]", (char*)vc->pg->id, vc->pg_rank);
+ MPIDU_Ftb_publish(event_name, payload);
+ return;
+}
+
+/* convenience function for publishing events associated with this process */
+#undef FUNCNAME
+#define FUNCNAME MPIDU_Ftb_publish_me
+#undef FCNAME
+#define FCNAME MPIDI_QUOTE(FUNCNAME)
+void MPIDU_Ftb_publish_me(const char *event_name)
+{
+ char payload[FTB_MAX_PAYLOAD_DATA] = "";
+
+ MPIU_Snprintf(payload, sizeof(payload), "[id: {%s:{%d}}]", (char *)MPIDI_Process.my_pg->id, MPIDI_Process.my_pg_rank);
+ MPIDU_Ftb_publish(event_name, payload);
+ return;
+}
+
+
/* MPIDU_Ftb_finalize has no return code for the same reasons that
MPIDU_Ftb_publish doesn't. */
More information about the mpich2-commits
mailing list