[ewg] [PATCH v3 ofed-1.3] rdma_lat: Add option to support devices with different inline max values.

Steve Wise swise at opengridcomputing.com
Wed Feb 6 06:48:06 PST 2008


Can we please pull this into ofed-1.3?

Thanks,

Steve.

Steve Wise wrote:
> rdma_lat: Add option to support devices with different inline max values.
> 
> Currently the max inline value is hard-coded and too big for the
> chelsio device.  This patch allows specifying the max inline as a
> command line param.
> 
> Signed-off-by: Steve Wise <swise at opengridcomputing.com>
> ---
> 
>  rdma_lat.c |   13 ++++++++++---
>  1 files changed, 10 insertions(+), 3 deletions(-)
> 
> diff --git a/rdma_lat.c b/rdma_lat.c
> index 68c9120..30cb4a3 100755
> --- a/rdma_lat.c
> +++ b/rdma_lat.c
> @@ -60,6 +60,7 @@
>  #define PINGPONG_RDMA_WRID	3
>  #define MAX_INLINE 400
>  
> +static int inline_size = MAX_INLINE;
>  static int page_size;
>  static pid_t pid;
>  
> @@ -603,7 +604,7 @@ static struct pingpong_context *pp_init_ctx(void *ptr, struct pp_data *data)
>  			.max_recv_wr  = 1,
>  			.max_send_sge = 1,
>  			.max_recv_sge = 1,
> -			.max_inline_data = MAX_INLINE
> +			.max_inline_data = inline_size,
>  		},
>  		.qp_type = IBV_QPT_RC
>  	};
> @@ -915,6 +916,7 @@ static void usage(const char *argv0)
>  	printf("  -s, --size=<size>      size of message to exchange (default 1)\n");
>  	printf("  -t, --tx-depth=<dep>   size of tx queue (default 50)\n");
>  	printf("  -n, --iters=<iters>    number of exchanges (at least 2, default 1000)\n");
> +	printf("  -I, --inline_size=<size>  max size of message to be sent in inline mode (default 400)\n");
>  	printf("  -C, --report-cycles    report times in cpu cycle units (default microseconds)\n");
>  	printf("  -H, --report-histogram print out all results (default print summary only)\n");
>  	printf("  -U, --report-unsorted  (implies -H) print out unsorted results (default sorted)\n");
> @@ -1036,6 +1038,7 @@ int main(int argc, char *argv[])
>  			{ .name = "size",           .has_arg = 1, .val = 's' },
>  			{ .name = "iters",          .has_arg = 1, .val = 'n' },
>  			{ .name = "tx-depth",       .has_arg = 1, .val = 't' },
> +			{ .name = "inline_size",     .has_arg = 1, .val = 'I' },
>  			{ .name = "report-cycles",  .has_arg = 0, .val = 'C' },
>  			{ .name = "report-histogram",.has_arg = 0, .val = 'H' },
>  			{ .name = "report-unsorted",.has_arg = 0, .val = 'U' },
> @@ -1043,7 +1046,7 @@ int main(int argc, char *argv[])
>  			{ 0 }
>  		};
>  
> -		c = getopt_long(argc, argv, "p:d:i:s:n:t:CHUc", long_options, NULL);
> +		c = getopt_long(argc, argv, "p:d:i:s:n:t:I:CHUc", long_options, NULL);
>  		if (c == -1)
>  			break;
>  
> @@ -1087,6 +1090,10 @@ int main(int argc, char *argv[])
>  
>  				break;
>  
> +			case 'I':
> +				inline_size = strtol(optarg, NULL, 0);
> +				break;
> +
>  			case 'C':
>  				report.cycles = 1;
>  				break;
> @@ -1192,7 +1199,7 @@ int main(int argc, char *argv[])
>  	ctx->wr.sg_list    = &ctx->list;
>  	ctx->wr.num_sge    = 1;
>  	ctx->wr.opcode     = IBV_WR_RDMA_WRITE;
> -	if (ctx->size > MAX_INLINE || ctx->size == 0) {
> +	if (ctx->size > inline_size || ctx->size == 0) {
>  		ctx->wr.send_flags = IBV_SEND_SIGNALED;
>  	} else {
>  		ctx->wr.send_flags = IBV_SEND_SIGNALED | IBV_SEND_INLINE;
> _______________________________________________
> ewg mailing list
> ewg at lists.openfabrics.org
> http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg




More information about the ewg mailing list