On Thu, 2006-05-18 at 18:01 +0300, Dotan Barak wrote:
> Hi.
> 
> Here is a patch to fix this issue in the test.
> I couldn't find the parameters for executing this test. can you please send 
> me an a command line example which i can use?
> thanks
> 
> 

[EMAIL PROTECTED] perftest]# rping -?
rping -c|s [-vVd] [-S size] [-C count] -a addr -p port
        -c              client side
        -s              server side
        -v              display ping data to stdout
        -V              verbosity
        -d              debug printfs
        -S size         ping data size
        -C count        ping count times
        -a addr         address
        -p port         port

To ping 100 packets of size 100 and see something, run this on the
server:

# rping -s -S100 -a 0.0.0.0 -p 9999

and this on the client:

# rping -c -Vv -S 100 -C 100 -a <remote rdma ip address> -p 9999

I just noticed that the usage is wrong.  -V _validates_ the ping/pong data. 

patch comments below:

> 
> 
> Added checks to the return values of all of the functions that may fail
> (in order to add this test to the regression system).
> 
> Signed-off-by: Dotan Barak <[EMAIL PROTECTED]>
> 

<snip>

>  
>  static int rping_accept(struct rping_cb *cb)
> @@ -545,7 +554,9 @@ static void *cm_thread(void *arg)
>                       fprintf(stderr, "rdma_get_cm_event err %d\n", ret);
>                       exit(ret);
>               }
> -             rping_cma_event_handler(event->id, event);
> +             ret = rping_cma_event_handler(event->id, event);
> +             if (ret)
> +                     exit(ret);
>               rdma_ack_cm_event(event);

Won't the process hang on exit if all the events are not acked?  I seem
to remember this happening when I was debugging this program originally.
If it will hang, then fix the patch to ack the events before exiting...


>       }
>  }
> @@ -559,7 +570,7 @@ static void *cq_thread(void *arg)
>       
>       DEBUG_LOG("cq_thread started.\n");
>  
> -     while (1) {     
> +     while (1) {
>               ret = ibv_get_cq_event(cb->channel, &ev_cq, &ev_ctx);
>               if (ret) {
>                       fprintf(stderr, "Failed to get cq event!\n");
> @@ -574,7 +585,9 @@ static void *cq_thread(void *arg)
>                       fprintf(stderr, "Failed to set notify!\n");
>                       exit(ret);
>               }
> -             rping_cq_event_handler(cb);
> +             ret = rping_cq_event_handler(cb);
> +             if (ret);
> +                     exit(ret);
>               ibv_ack_cq_events(cb->cq, 1);

Same comment.



_______________________________________________
openib-general mailing list
[email protected]
http://openib.org/mailman/listinfo/openib-general

To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general

Reply via email to