From: Sean Hefty Date: Thu, 17 May 2012 16:50:15 +0000 (-0700) Subject: rstream: Add test option to include more sizes X-Git-Url: https://openfabrics.org/gitweb/?a=commitdiff_plain;h=512bdc76b96eebee6b303172faf5361f8b893181;p=~shefty%2Flibrdmacm.git rstream: Add test option to include more sizes Allow user to specify that a full set of transfer sizes should be tested. Signed-off-by: Sean Hefty --- diff --git a/examples/rstream.c b/examples/rstream.c index ec9b4ff3..3e6d8d58 100644 --- a/examples/rstream.c +++ b/examples/rstream.c @@ -45,11 +45,29 @@ #include #include -static int test_size[] = { - 64, - 4096, - 65536, - 1048576 +struct test_size_param { + int size; + int option; +}; + +static struct test_size_param test_size[] = { + { 1 << 6, 0 }, + { 1 << 7, 1 }, { 1 << 7 + 1 << 6, 1}, + { 1 << 8, 1 }, { 1 << 8 + 1 << 7, 1}, + { 1 << 9, 1 }, { 1 << 9 + 1 << 8, 1}, + { 1 << 10, 1 }, { 1 << 10 + 1 << 9, 1}, + { 1 << 11, 1 }, { 1 << 11 + 1 << 10, 1}, + { 1 << 12, 0 }, { 1 << 12 + 1 << 11, 1}, + { 1 << 13, 1 }, { 1 << 13 + 1 << 12, 1}, + { 1 << 14, 1 }, { 1 << 14 + 1 << 13, 1}, + { 1 << 15, 1 }, { 1 << 15 + 1 << 14, 1}, + { 1 << 16, 0 }, { 1 << 16 + 1 << 15, 1}, + { 1 << 17, 1 }, { 1 << 17 + 1 << 16, 1}, + { 1 << 18, 1 }, { 1 << 18 + 1 << 17, 1}, + { 1 << 19, 1 }, { 1 << 19 + 1 << 18, 1}, + { 1 << 20, 0 }, { 1 << 20 + 1 << 19, 1}, + { 1 << 21, 1 }, { 1 << 21 + 1 << 20, 1}, + { 1 << 22, 1 }, { 1 << 22 + 1 << 21, 1}, }; #define TEST_CNT (sizeof test_size / sizeof test_size[0]) @@ -59,6 +77,7 @@ static int verify; static int flags = MSG_DONTWAIT; static int poll_timeout = 0; static int custom; +static int size_option; static int iterations = 1; static int transfer_size = 1000; static int transfer_count = 1000; @@ -457,7 +476,7 @@ static int run(void) { int i, rs, ret = 0; - buf = malloc(!custom ? test_size[TEST_CNT - 1] : transfer_size); + buf = malloc(!custom ? test_size[TEST_CNT - 1].size : transfer_size); if (!buf) { perror("malloc"); return -1; @@ -472,11 +491,15 @@ static int run(void) printf("name \tbytes \txfers \titers \ttotal \ttime \tGb/sec \tusec/xfer\n"); if (!custom) { for (i = 0; i < TEST_CNT; i++) { - init_latency_test(test_size[i]); + if (test_size[i] > size_option) + continue; + init_latency_test(test_size[i].size); run_test(rs); } for (i = 0; i < TEST_CNT; i++) { - init_bandwidth_test(test_size[i]); + if (test_size[i] > size_option) + continue; + init_bandwidth_test(test_size[i].size); run_test(rs); } } else { @@ -551,8 +574,12 @@ int main(int argc, char **argv) transfer_count = atoi(optarg); break; case 'S': - custom = 1; - transfer_size = atoi(optarg); + if (strncasecmp("all", optarg, 3) { + size_option = 1; + } else { + custom = 1; + transfer_size = atoi(optarg); + } break; case 'p': port = optarg; @@ -567,7 +594,7 @@ int main(int argc, char **argv) printf("\t[-b bind_address]\n"); printf("\t[-I iterations]\n"); printf("\t[-C transfer_count]\n"); - printf("\t[-S transfer_size]\n"); + printf("\t[-S transfer_size or all]\n"); printf("\t[-p port_number]\n"); printf("\t[-T test_option]\n"); printf("\t s|sockets - use standard tcp/ip sockets\n");