Add timers for active connections and print results. Allow polling or wait on conn event.
Signed-off-by: Arlin Davis <[email protected]> --- test/dtest/dtest.c | 34 ++++++++++++++++++++++++---------- 1 files changed, 24 insertions(+), 10 deletions(-) diff --git a/test/dtest/dtest.c b/test/dtest/dtest.c index 6ff7798..f1f0f2b 100755 --- a/test/dtest/dtest.c +++ b/test/dtest/dtest.c @@ -183,6 +183,7 @@ struct dt_time { double rdma_rd_total; double rtt; double close; + double conn; }; struct dt_time time; @@ -197,6 +198,7 @@ static int verbose = 0; static int polling = 0; static int poll_count = 0; static int rdma_wr_poll_count = 0; +static int conn_poll_count = 0; static int rdma_rd_poll_count[MAX_RDMA_RD] = { 0 }; static int delay = 0; static int buf_len = RDMA_BUFFER_SIZE; @@ -617,6 +619,9 @@ complete: } printf("%d: EP create: %10.2lf usec\n", getpid(), time.epc); printf("%d: EP free: %10.2lf usec\n", getpid(), time.epf); + if (!server) + printf("%d: connect: %10.2lf usec, poll_cnt=%d\n", + getpid(), time.conn, conn_poll_count); printf("%d: TOTAL: %10.2lf usec\n", getpid(), time.total); #if defined(_WIN32) || defined(_WIN64) @@ -843,6 +848,9 @@ DAT_RETURN connect_ep(char *hostname, DAT_CONN_QUAL conn_id) /* setup receive rdma buffer to initial string to be overwritten */ strcpy((char *)rbuf, "blah, blah, blah\n"); + /* clear event structure */ + memset(&event, 0, sizeof(DAT_EVENT)); + if (server) { /* SERVER */ /* create the service point for server listen */ @@ -962,6 +970,7 @@ DAT_RETURN connect_ep(char *hostname, DAT_CONN_QUAL conn_id) pdata[i] = i + 1; LOGPRINTF("%d Connecting to server\n", getpid()); + start = get_time(); ret = dat_ep_connect(h_ep, &remote_addr, conn_id, @@ -979,14 +988,18 @@ DAT_RETURN connect_ep(char *hostname, DAT_CONN_QUAL conn_id) printf("%d Waiting for connect response\n", getpid()); - ret = dat_evd_wait(h_conn_evd, DAT_TIMEOUT_INFINITE, 1, &event, &nmore); - if (ret != DAT_SUCCESS) { - fprintf(stderr, "%d Error dat_evd_wait: %s\n", - getpid(), DT_RetToString(ret)); - return (ret); - } else - LOGPRINTF("%d dat_evd_wait for h_conn_evd completed\n", - getpid()); + if (polling) + while (DAT_GET_TYPE(dat_evd_dequeue(h_conn_evd, &event)) == + DAT_QUEUE_EMPTY) + conn_poll_count++; + else + ret = dat_evd_wait(h_conn_evd, DAT_TIMEOUT_INFINITE, + 1, &event, &nmore); + + if (!server) { + stop = get_time(); + time.conn += ((stop - start) * 1.0e6); + } #ifdef TEST_REJECT_WITH_PRIVATE_DATA if (event.event_number != DAT_CONNECTION_EVENT_PEER_REJECTED) { @@ -1012,8 +1025,9 @@ DAT_RETURN connect_ep(char *hostname, DAT_CONN_QUAL conn_id) #endif if (event.event_number != DAT_CONNECTION_EVENT_ESTABLISHED) { - fprintf(stderr, "%d Error unexpected conn event : %s\n", - getpid(), DT_EventToSTr(event.event_number)); + fprintf(stderr, "%d Error unexpected conn event : 0x%x %s\n", + getpid(), event.event_number, + DT_EventToSTr(event.event_number)); return (DAT_ABORT); } -- 1.5.2.5 _______________________________________________ general mailing list [email protected] http://lists.openfabrics.org/cgi-bin/mailman/listinfo/general To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general
