[TOOLS] fix send_bw test for UD.
[mirror/winof/.git] / tools / perftests / user / send_lat / send_lat.c
index 9d04122..d519c1c 100644 (file)
@@ -462,7 +462,8 @@ static int pp_connect_ctx(struct pingpong_context *ctx, int port, int my_psn,
 }
 
 static SOCKET pp_open_port(struct pingpong_context *ctx, const char * servername,
-                       int ib_port, int port, struct pingpong_dest **p_rem_dest,struct user_parameters *user_parm)
+                       int ib_port, int port, struct pingpong_dest **p_my_dest,
+                       struct pingpong_dest **p_rem_dest,struct user_parameters *user_parm)
 {
        struct pingpong_dest    *my_dest;
        struct pingpong_dest    *rem_dest;
@@ -513,7 +514,7 @@ static SOCKET pp_open_port(struct pingpong_context *ctx, const char * servername
                my_dest[i].rkey = ctx->rkey;
                my_dest[i].vaddr = (uintptr_t)ctx->buf + ctx->size;
 
-               printf("  local address:  LID %#04x, QPN %#06x, PSN %#06x "
+               printf("  local address:  LID %#04x, QPN %#06x, PSN %#06x, "
                "RKey %#08x VAddr %#016Lx\n",
                my_dest[i].lid, my_dest[i].qpn, my_dest[i].psn,
                my_dest[i].rkey, my_dest[i].vaddr);
@@ -537,6 +538,7 @@ static SOCKET pp_open_port(struct pingpong_context *ctx, const char * servername
                        return INVALID_SOCKET;
        }
        *p_rem_dest = rem_dest;
+       *p_my_dest = my_dest;
        return sockfd;
 }
 
@@ -645,13 +647,6 @@ int run_iter(struct pingpong_context *ctx, struct user_parameters *user_param,
        iters = user_param->iters;
        tx_depth = user_param->tx_depth;
 
-
-       if (user_param->connection_type==UD) {
-               if (size > 2048) {
-                       size = 2048;
-               }
-       }
-
        ///send //
        if (user_param->connection_type==UD) {
                ctx->list.vaddr = (uintptr_t) ctx->buf + 40;
@@ -698,8 +693,8 @@ int run_iter(struct pingpong_context *ctx, struct user_parameters *user_param,
                        p_wc_free = &wc;
                        p_wc_done = NULL;
                        p_wc_free->p_next = NULL;
-                       //printf("rcnt %d\n",rcnt);
-                       //printf("scnt %d\n",scnt);
+                       PERF_DEBUG("rcnt %d\n",rcnt);
+                       PERF_DEBUG("scnt %d\n",scnt);
                        /*Server is polling on recieve first */
                        ++rcnt;
                        if (ib_post_recv(qp, &rwr, &bad_wr_recv)) {
@@ -753,8 +748,8 @@ int run_iter(struct pingpong_context *ctx, struct user_parameters *user_param,
                if (scnt < iters ) {
                        ib_send_wr_t            *bad_wr;
 
-                       //printf("rcnt1 %d\n",rcnt);
-                       //printf("scnt1 %d\n",scnt);
+                       PERF_DEBUG("rcnt1 %d\n",rcnt);
+                       PERF_DEBUG("scnt1 %d\n",scnt);
                        if (ccnt == (tx_depth - 2) || (user_param->signal_comp == SIGNAL)
                            || (scnt == (iters - 1)) ) {
                                ccnt = 0;
@@ -780,8 +775,8 @@ int run_iter(struct pingpong_context *ctx, struct user_parameters *user_param,
                        ib_wc_t wc;
                        ib_wc_t *p_wc_done,*p_wc_free;
 
-                       //printf("rcnt2 %d\n",rcnt);
-                       //printf("scnt2 %d\n",scnt);
+                       PERF_DEBUG("rcnt2 %d\n",rcnt);
+                       PERF_DEBUG("scnt2 %d\n",scnt);
                        p_wc_free = &wc;
                        p_wc_done = NULL;
                        p_wc_free->p_next = NULL;
@@ -849,6 +844,7 @@ int __cdecl main(int argc, char *argv[])
 {
 
        struct pingpong_context *ctx;
+       struct pingpong_dest     *my_dest;
        struct pingpong_dest     *rem_dest;
        struct user_parameters  user_param;
        char                            *ib_devname = NULL;
@@ -1018,11 +1014,16 @@ int __cdecl main(int argc, char *argv[])
                return 1;
        }
 
-
-       if (user_param.all == ALL) {
-               /*since we run all sizes lets allocate big enough buffer */
+       
+       if (user_param.all == ALL && user_param.connection_type!=UD) {
+               /*since we run all sizes */
+               printf("test\n");
                size = 8388608; /*2^23 */
+       } else if (user_param.connection_type==UD ) {
+               printf("Max msg size in UD is 2048 changing to 2048\n");
+               size = 2048;
        }
+       
        srand(GetCurrentProcessId() * GetTickCount());
 
        //TODO: get pagesize from sysinfo
@@ -1034,7 +1035,7 @@ int __cdecl main(int argc, char *argv[])
        if (!ctx)
                return 8;
 
-       sockfd = pp_open_port(ctx, user_param.servername, ib_port, port,&rem_dest,&user_param);
+       sockfd = pp_open_port(ctx, user_param.servername, ib_port, port,&my_dest,&rem_dest,&user_param);
        if (sockfd == INVALID_SOCKET)
                return 9;