From: Tzachi Dar Date: Wed, 24 Nov 2010 11:19:05 +0000 (+0000) Subject: [tools][perftests] Added a -d option to the tests to enable choosing a device... X-Git-Url: https://openfabrics.org/gitweb/?a=commitdiff_plain;h=772862d0235a37e8c1910c733a455dddfdd2cef0;p=~shefty%2Frdma-win.git [tools][perftests] Added a -d option to the tests to enable choosing a device to run on git-svn-id: svn://openib.tc.cornell.edu/gen1@3003 ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86 --- diff --git a/trunk/tools/perftests/user/read_bw/SOURCES b/trunk/tools/perftests/user/read_bw/SOURCES index 3edb8ece..8c8e743e 100644 --- a/trunk/tools/perftests/user/read_bw/SOURCES +++ b/trunk/tools/perftests/user/read_bw/SOURCES @@ -11,7 +11,7 @@ SOURCES=read_bw.rc \ ..\perf_utils.c \ read_bw.c -INCLUDES=..;..\..\..\..\inc;..\..\..\..\inc\user +INCLUDES=..;..\..\..\..\inc;..\..\..\..\inc\user;..\..\..\..\hw\mlx4\user\hca;..\..\..\..\inc\complib RCOPTIONS=/I..\..\win\include diff --git a/trunk/tools/perftests/user/read_bw/read_bw.c b/trunk/tools/perftests/user/read_bw/read_bw.c index dff24417..b2026a0e 100644 --- a/trunk/tools/perftests/user/read_bw/read_bw.c +++ b/trunk/tools/perftests/user/read_bw/read_bw.c @@ -37,6 +37,7 @@ #include "getopt.h" #include "perf_defs.h" #include "get_clock.h" +#include "l2w.h" struct user_parameters { const char *servername; @@ -64,13 +65,14 @@ pp_cq_comp_cb( return ; } -static struct pingpong_context *pp_init_ctx(unsigned size,int port, struct user_parameters *user_parm) +static struct pingpong_context *pp_init_ctx(unsigned size,int port, struct user_parameters *user_parm, char* ib_devguid) { struct pingpong_context *ctx; ib_api_status_t ib_status = IB_SUCCESS; size_t guid_count; ib_net64_t *ca_guid_array; + int guid_index = 0; ctx = malloc(sizeof *ctx); @@ -145,7 +147,28 @@ static struct pingpong_context *pp_init_ctx(unsigned size,int port, struct user_ * Open only the first HCA */ /* Open the CA */ - ib_status = ib_open_ca(ctx->al ,ca_guid_array[0] ,NULL, + if (ib_devguid) + { + unsigned int i = 0; + guid_index = -1; + for (i = 0; i < guid_count; i++) + { + char curr_dev[20]; + sprintf(curr_dev, "0x%016I64x", ntohll(ca_guid_array[i])); + if (!_stricmp(ib_devguid, curr_dev)) + { + guid_index = i; + break; + } + } + if (guid_index == -1) + { + fprintf(stderr,"device with guid %s was not found\n", ib_devguid); + return NULL; + } + } + + ib_status = ib_open_ca(ctx->al ,ca_guid_array[guid_index] ,NULL, NULL, //ca_context &ctx->ca); @@ -445,6 +468,7 @@ static void usage(const char *argv0) printf("\n"); printf("Options:\n"); printf(" -p, --port= listen on/connect to port (default 18515)\n"); + printf(" -d, --ib-dev= use IB device (default first device found)\n"); printf(" -i, --ib-port= use port of IB device (default 1)\n"); printf(" -m, --mtu= mtu size (default 1024)\n"); printf(" -o, --outs= num of outstanding read/atom(default 4)\n"); @@ -582,7 +606,7 @@ int __cdecl main(int argc, char *argv[]) struct pingpong_dest *my_dest; struct pingpong_dest *rem_dest; struct user_parameters user_param; - char *ib_devname = NULL; + char *ib_devguid = NULL; int port = 18515; int ib_port = 1; unsigned size = 65536; @@ -592,6 +616,9 @@ int __cdecl main(int argc, char *argv[]) int i = 0; int duplex = 0; + SYSTEM_INFO si; + GetSystemInfo(&si); + /* init default values to user's parameters */ memset(&user_param, 0, sizeof(struct user_parameters)); user_param.mtu = 0; /* signal choose default by device */ @@ -632,7 +659,7 @@ int __cdecl main(int argc, char *argv[]) break; case 'd': - ib_devname = _strdup(optarg); + ib_devguid = _strdup(optarg); break; case 'm': user_param.mtu = strtol(optarg, NULL, 0); @@ -717,13 +744,9 @@ int __cdecl main(int argc, char *argv[]) srand(GetCurrentProcessId() * GetTickCount()); - //TODO: get pagesize from sysinfo - page_size = 4096; - - //TODO:get the device names - + page_size = si.dwPageSize; - ctx = pp_init_ctx(size,ib_port, &user_param); + ctx = pp_init_ctx(size,ib_port, &user_param, ib_devguid); if (!ctx) return 8; diff --git a/trunk/tools/perftests/user/read_lat/SOURCES b/trunk/tools/perftests/user/read_lat/SOURCES index 554d8707..57c69264 100644 --- a/trunk/tools/perftests/user/read_lat/SOURCES +++ b/trunk/tools/perftests/user/read_lat/SOURCES @@ -11,7 +11,7 @@ SOURCES=read_lat.rc \ ..\perf_utils.c \ read_lat.c -INCLUDES=..;..\..\..\..\inc;..\..\..\..\inc\user +INCLUDES=..;..\..\..\..\inc;..\..\..\..\inc\user;..\..\..\..\hw\mlx4\user\hca;..\..\..\..\inc\complib RCOPTIONS=/I..\..\win\include diff --git a/trunk/tools/perftests/user/read_lat/read_lat.c b/trunk/tools/perftests/user/read_lat/read_lat.c index 0c15f83c..be0cb99a 100644 --- a/trunk/tools/perftests/user/read_lat/read_lat.c +++ b/trunk/tools/perftests/user/read_lat/read_lat.c @@ -38,6 +38,7 @@ #include "getopt.h" #include "perf_defs.h" #include "get_clock.h" +#include "l2w.h" @@ -68,7 +69,7 @@ pp_cq_comp_cb( return ; } -static struct pingpong_context *pp_init_ctx(unsigned size,int port, struct user_parameters *user_parm) +static struct pingpong_context *pp_init_ctx(unsigned size,int port, struct user_parameters *user_parm, char* ib_devguid) { @@ -76,6 +77,7 @@ static struct pingpong_context *pp_init_ctx(unsigned size,int port, struct user_ ib_api_status_t ib_status = IB_SUCCESS; size_t guid_count; ib_net64_t *ca_guid_array; + int guid_index = 0; ctx = malloc(sizeof *ctx); @@ -149,7 +151,28 @@ static struct pingpong_context *pp_init_ctx(unsigned size,int port, struct user_ * Open only the first HCA */ /* Open the CA */ - ib_status = ib_open_ca(ctx->al ,ca_guid_array[0] ,NULL, + if (ib_devguid) + { + unsigned int i = 0; + guid_index = -1; + for (i = 0; i < guid_count; i++) + { + char curr_dev[20]; + sprintf(curr_dev, "0x%016I64x", ntohll(ca_guid_array[i])); + if (!_stricmp(ib_devguid, curr_dev)) + { + guid_index = i; + break; + } + } + if (guid_index == -1) + { + fprintf(stderr,"device with guid %s was not found\n", ib_devguid); + return NULL; + } + } + + ib_status = ib_open_ca(ctx->al ,ca_guid_array[guid_index] ,NULL, NULL, //ca_context &ctx->ca); @@ -456,6 +479,7 @@ static void usage(const char *argv0) printf("\n"); printf("Options:\n"); printf(" -p, --port= listen on/connect to port (default 18515)\n"); + printf(" -d, --ib-dev= use IB device (default first device found)\n"); printf(" -m, --mtu= mtu size (default 256)\n"); printf(" -i, --ib-port= use port of IB device (default 1)\n"); printf(" -s, --size= size of message to exchange (default 1)\n"); @@ -598,7 +622,7 @@ int __cdecl main(int argc, char *argv[]) struct pingpong_dest *my_dest; struct pingpong_dest *rem_dest; struct user_parameters user_param; - char *ib_devname = NULL; + char *ib_devguid = NULL; int port = 18515; int ib_port = 1; unsigned tmp_size,size = 2; @@ -608,6 +632,8 @@ int __cdecl main(int argc, char *argv[]) int i = 0; struct report_options report = {0}; + SYSTEM_INFO si; + GetSystemInfo(&si); /* init default values to user's parameters */ memset(&user_param, 0, sizeof(struct user_parameters)); @@ -665,7 +691,7 @@ int __cdecl main(int argc, char *argv[]) return 0; break; case 'd': - ib_devname = _strdup(optarg); + ib_devguid = _strdup(optarg); break; case 'i': @@ -755,13 +781,9 @@ int __cdecl main(int argc, char *argv[]) srand(GetCurrentProcessId() * GetTickCount()); - //TODO: get pagesize from sysinfo - page_size = 4096; - - //TODO:get the device names - + page_size = si.dwPageSize; - ctx = pp_init_ctx(size,ib_port, &user_param); + ctx = pp_init_ctx(size,ib_port, &user_param, ib_devguid); if (!ctx) return 8; diff --git a/trunk/tools/perftests/user/send_bw/SOURCES b/trunk/tools/perftests/user/send_bw/SOURCES index 274106a1..5db21b62 100644 --- a/trunk/tools/perftests/user/send_bw/SOURCES +++ b/trunk/tools/perftests/user/send_bw/SOURCES @@ -11,7 +11,7 @@ SOURCES=send_bw.rc \ ..\perf_utils.c \ send_bw.c -INCLUDES=..;..\..\..\..\inc;..\..\..\..\inc\user +INCLUDES=..;..\..\..\..\inc;..\..\..\..\inc\user;..\..\..\..\hw\mlx4\user\hca;..\..\..\..\inc\complib RCOPTIONS=/I..\..\win\include diff --git a/trunk/tools/perftests/user/send_bw/send_bw.c b/trunk/tools/perftests/user/send_bw/send_bw.c index 955441a3..7b7e7f5a 100644 --- a/trunk/tools/perftests/user/send_bw/send_bw.c +++ b/trunk/tools/perftests/user/send_bw/send_bw.c @@ -38,6 +38,7 @@ #include "get_clock.h" #include "perf_defs.h" +#include "l2w.h" #define SIGNAL 1 #define MAX_INLINE 400 @@ -74,13 +75,14 @@ pp_cq_comp_cb( static struct pingpong_context *pp_init_ctx(unsigned size,int port, - struct user_parameters *user_parm) + struct user_parameters *user_parm, char* ib_devguid) { struct pingpong_context *ctx; ib_api_status_t ib_status = IB_SUCCESS; size_t guid_count; ib_net64_t *ca_guid_array; + int guid_index = 0; @@ -159,7 +161,28 @@ static struct pingpong_context *pp_init_ctx(unsigned size,int port, * Open only the first HCA */ /* Open the CA */ - ib_status = ib_open_ca(ctx->al ,ca_guid_array[0] ,NULL, + if (ib_devguid) + { + unsigned int i = 0; + guid_index = -1; + for (i = 0; i < guid_count; i++) + { + char curr_dev[20]; + sprintf(curr_dev, "0x%016I64x", ntohll(ca_guid_array[i])); + if (!_stricmp(ib_devguid, curr_dev)) + { + guid_index = i; + break; + } + } + if (guid_index == -1) + { + fprintf(stderr,"device with guid %s was not found\n", ib_devguid); + return NULL; + } + } + + ib_status = ib_open_ca(ctx->al ,ca_guid_array[guid_index] ,NULL, NULL, //ca_context &ctx->ca); @@ -568,6 +591,7 @@ static void usage(const char *argv0) printf("\n"); printf("Options:\n"); printf(" -p, --port= listen on/connect to port (default 18515)\n"); + printf(" -d, --ib-dev= use IB device (default first device found)\n"); printf(" -i, --ib-port= use port of IB device (default 1)\n"); printf(" -c, --connection= connection type RC/UC/UD (default RC)\n"); printf(" -m, --mtu= mtu size (default 1024)\n"); @@ -963,7 +987,7 @@ int __cdecl main(int argc, char *argv[]) struct pingpong_dest *my_dest; struct pingpong_dest *rem_dest; struct user_parameters user_param; - char *ib_devname = NULL; + char *ib_devguid = NULL; int port = 18515; int ib_port = 1; unsigned size = 65536; @@ -973,6 +997,8 @@ int __cdecl main(int argc, char *argv[]) WSADATA wsaData; int iResult; + SYSTEM_INFO si; + GetSystemInfo(&si); /* init default values to user's parameters */ memset(&user_param, 0, sizeof(struct user_parameters)); @@ -1019,7 +1045,7 @@ int __cdecl main(int argc, char *argv[]) ++user_param.use_event; break; case 'd': - ib_devname = _strdup(optarg); + ib_devguid = _strdup(optarg); break; case 'c': if (strcmp("UC",optarg)==0) @@ -1126,14 +1152,11 @@ int __cdecl main(int argc, char *argv[]) srand(GetCurrentProcessId() * GetTickCount()); - //TODO: get pagesize from sysinfo - page_size = 4096; + page_size = si.dwPageSize; - //TODO:get the device names - // init the context - ctx = pp_init_ctx(size, ib_port, &user_param); + ctx = pp_init_ctx(size, ib_port, &user_param, ib_devguid); if (!ctx) return 1; diff --git a/trunk/tools/perftests/user/send_lat/SOURCES b/trunk/tools/perftests/user/send_lat/SOURCES index 86150e1e..2fee7490 100644 --- a/trunk/tools/perftests/user/send_lat/SOURCES +++ b/trunk/tools/perftests/user/send_lat/SOURCES @@ -11,7 +11,7 @@ SOURCES=send_lat.rc \ ..\perf_utils.c \ send_lat.c -INCLUDES=..;..\..\..\..\inc;..\..\..\..\inc\user +INCLUDES=..;..\..\..\..\inc;..\..\..\..\inc\user;..\..\..\..\hw\mlx4\user\hca;..\..\..\..\inc\complib RCOPTIONS=/I..\..\win\include diff --git a/trunk/tools/perftests/user/send_lat/send_lat.c b/trunk/tools/perftests/user/send_lat/send_lat.c index b0a91362..89313142 100644 --- a/trunk/tools/perftests/user/send_lat/send_lat.c +++ b/trunk/tools/perftests/user/send_lat/send_lat.c @@ -38,6 +38,7 @@ #include "getopt.h" #include "get_clock.h" #include "perf_defs.h" +#include "l2w.h" @@ -67,12 +68,13 @@ pp_cq_comp_cb( } -static struct pingpong_context *pp_init_ctx(unsigned int size,int port,struct user_parameters *user_parm) { +static struct pingpong_context *pp_init_ctx(unsigned int size,int port,struct user_parameters *user_parm, char* ib_devguid) { struct pingpong_context *ctx; ib_api_status_t ib_status = IB_SUCCESS; size_t guid_count; ib_net64_t *ca_guid_array; + int guid_index = 0; @@ -156,7 +158,29 @@ static struct pingpong_context *pp_init_ctx(unsigned int size,int port,struct us * Open only the first HCA */ /* Open the CA */ - ib_status = ib_open_ca(ctx->al ,ca_guid_array[0] ,NULL, + if (ib_devguid) + { + unsigned int i = 0; + guid_index = -1; + for (i = 0; i < guid_count; i++) + { + char curr_dev[20]; + sprintf(curr_dev, "0x%016I64x", ntohll(ca_guid_array[i])); + if (!_stricmp(ib_devguid, curr_dev)) + { + guid_index = i; + break; + } + } + if (guid_index == -1) + { + fprintf(stderr,"device with guid %s was not found\n", ib_devguid); + return NULL; + } + } + + + ib_status = ib_open_ca(ctx->al ,ca_guid_array[guid_index] ,NULL, NULL, //ca_context &ctx->ca); @@ -536,6 +560,7 @@ static void usage(const char *argv0) printf("\n"); printf("Options:\n"); printf(" -p, --port= listen on/connect to port (default 18515)\n"); + printf(" -d, --ib-dev= use IB device (default first device found)\n"); printf(" -c, --connection= connection type RC/UC (default RC)\n"); printf(" -m, --mtu= mtu size (default 2048)\n"); printf(" -i, --ib-port= use port of IB device (default 1)\n"); @@ -793,7 +818,7 @@ int __cdecl main(int argc, char *argv[]) struct pingpong_dest *my_dest; struct pingpong_dest *rem_dest; struct user_parameters user_param; - char *ib_devname = NULL; + char *ib_devguid = NULL; int port = 18515; int ib_port = 1; unsigned size = 2; @@ -806,6 +831,9 @@ int __cdecl main(int argc, char *argv[]) struct report_options report = {0}; + SYSTEM_INFO si; + GetSystemInfo(&si); + /* init default values to user's parameters */ memset(&user_param, 0, sizeof(struct user_parameters)); user_param.mtu = 0; @@ -867,7 +895,7 @@ int __cdecl main(int argc, char *argv[]) return 0; break; case 'd': - ib_devname = _strdup(optarg); + ib_devguid = _strdup(optarg); break; case 'i': @@ -967,12 +995,9 @@ int __cdecl main(int argc, char *argv[]) srand(GetCurrentProcessId() * GetTickCount()); - //TODO: get pagesize from sysinfo - page_size = 4096; - - //TODO get the device names + page_size = si.dwPageSize; - ctx = pp_init_ctx( size, ib_port,&user_param); + ctx = pp_init_ctx( size, ib_port,&user_param, ib_devguid); if (!ctx) return 8; diff --git a/trunk/tools/perftests/user/write_bw/SOURCES b/trunk/tools/perftests/user/write_bw/SOURCES index 4e9a6794..08c69a60 100644 --- a/trunk/tools/perftests/user/write_bw/SOURCES +++ b/trunk/tools/perftests/user/write_bw/SOURCES @@ -11,7 +11,7 @@ SOURCES=write_bw.rc \ ..\perf_utils.c \ write_bw.c -INCLUDES=..;..\..\..\..\inc;..\..\..\..\inc\user +INCLUDES=..;..\..\..\..\inc;..\..\..\..\inc\user;..\..\..\..\hw\mlx4\user\hca;..\..\..\..\inc\complib RCOPTIONS=/I..\..\win\include diff --git a/trunk/tools/perftests/user/write_bw/write_bw.c b/trunk/tools/perftests/user/write_bw/write_bw.c index ef2d235e..ae28bbc7 100644 --- a/trunk/tools/perftests/user/write_bw/write_bw.c +++ b/trunk/tools/perftests/user/write_bw/write_bw.c @@ -34,11 +34,11 @@ * $Id$ */ + #include "getopt.h" #include "perf_defs.h" #include "get_clock.h" - - +#include "l2w.h" struct user_parameters { const char *servername; @@ -66,7 +66,7 @@ pp_cq_comp_cb( UNUSED_PARAM( cq_context); return ; } -static struct pingpong_context *pp_init_ctx(unsigned size, int port, struct user_parameters *user_parm) +static struct pingpong_context *pp_init_ctx(unsigned size, int port, struct user_parameters *user_parm, char* ib_devguid) { struct pingpong_context *ctx; @@ -74,6 +74,7 @@ static struct pingpong_context *pp_init_ctx(unsigned size, int port, struct user size_t guid_count; ib_net64_t *ca_guid_array; int counter; + int guid_index = 0; ctx = malloc(sizeof *ctx); if (!ctx){ @@ -159,7 +160,28 @@ static struct pingpong_context *pp_init_ctx(unsigned size, int port, struct user * Open only the first HCA */ /* Open the CA */ - ib_status = ib_open_ca(ctx->al ,ca_guid_array[0] ,NULL, + if (ib_devguid) + { + unsigned int i = 0; + guid_index = -1; + for (i = 0; i < guid_count; i++) + { + char curr_dev[20]; + sprintf(curr_dev, "0x%016I64x", ntohll(ca_guid_array[i])); + if (!_stricmp(ib_devguid, curr_dev)) + { + guid_index = i; + break; + } + } + if (guid_index == -1) + { + fprintf(stderr,"device with guid %s was not found\n", ib_devguid); + return NULL; + } + } + + ib_status = ib_open_ca(ctx->al ,ca_guid_array[guid_index] ,NULL, NULL, //ca_context &ctx->ca); @@ -476,6 +498,7 @@ static void usage(const char *argv0) printf("\n"); printf("Options:\n"); printf(" -p, --port= listen on/connect to port (default 18515)\n"); + printf(" -d, --ib-dev= use IB device (default first device found)\n"); printf(" -i, --ib-port= use port of IB device (default 1)\n"); printf(" -c, --connection= connection type RC/UC (default RC)\n"); printf(" -m, --mtu= mtu size (default 1024)\n"); @@ -650,7 +673,7 @@ int __cdecl main(int argc, char *argv[]) struct pingpong_dest *my_dest; struct pingpong_dest *rem_dest; struct user_parameters user_param; - char *ib_devname = NULL; + char *ib_devguid = NULL; int port = 18515; int ib_port = 1; unsigned size = 65536; @@ -661,6 +684,9 @@ int __cdecl main(int argc, char *argv[]) int duplex = 0; + SYSTEM_INFO si; + GetSystemInfo(&si); + /* init default values to user's parameters */ memset(&user_param, 0, sizeof(struct user_parameters)); user_param.mtu = 0; @@ -705,7 +731,7 @@ int __cdecl main(int argc, char *argv[]) break; case 'd': - ib_devname = _strdup(optarg); + ib_devguid = _strdup(optarg); break; case 'c': if (strcmp("UC",optarg)==0) @@ -814,13 +840,9 @@ int __cdecl main(int argc, char *argv[]) } srand(GetCurrentProcessId() * GetTickCount()); - //TODO: get pagesize from sysinfo - page_size = 4096; - - //TODO get the device names - - - ctx = pp_init_ctx(size, ib_port, &user_param); + page_size = si.dwPageSize; + + ctx = pp_init_ctx(size, ib_port, &user_param, ib_devguid); if (!ctx) return 8; sockfd = pp_open_port(ctx, user_param.servername, ib_port, port,&my_dest,&rem_dest,&user_param); diff --git a/trunk/tools/perftests/user/write_lat/SOURCES b/trunk/tools/perftests/user/write_lat/SOURCES index 77075732..3b7a991f 100644 --- a/trunk/tools/perftests/user/write_lat/SOURCES +++ b/trunk/tools/perftests/user/write_lat/SOURCES @@ -11,7 +11,7 @@ SOURCES=write_lat.rc \ ..\perf_utils.c \ write_lat.c -INCLUDES=..;..\..\..\..\inc;..\..\..\..\inc\user +INCLUDES=..;..\..\..\..\inc;..\..\..\..\inc\user;..\..\..\..\hw\mlx4\user\hca;..\..\..\..\inc\complib RCOPTIONS=/I..\..\win\include diff --git a/trunk/tools/perftests/user/write_lat/write_lat.c b/trunk/tools/perftests/user/write_lat/write_lat.c index 5eb21aff..cbbef9bf 100644 --- a/trunk/tools/perftests/user/write_lat/write_lat.c +++ b/trunk/tools/perftests/user/write_lat/write_lat.c @@ -38,6 +38,7 @@ #include "getopt.h" #include "perf_defs.h" #include "get_clock.h" +#include "l2w.h" @@ -68,7 +69,7 @@ pp_cq_comp_cb( } -static struct pingpong_context *pp_init_ctx(unsigned size, int port, struct user_parameters *user_parm) +static struct pingpong_context *pp_init_ctx(unsigned size, int port, struct user_parameters *user_parm, char* ib_devguid) { @@ -76,6 +77,7 @@ static struct pingpong_context *pp_init_ctx(unsigned size, int port, struct user ib_api_status_t ib_status = IB_SUCCESS; size_t guid_count; ib_net64_t *ca_guid_array; + int guid_index = 0; ctx = malloc(sizeof *ctx); if (!ctx){ @@ -150,7 +152,28 @@ static struct pingpong_context *pp_init_ctx(unsigned size, int port, struct user * Open only the first HCA */ /* Open the CA */ - ib_status = ib_open_ca(ctx->al ,ca_guid_array[0] ,NULL, + if (ib_devguid) + { + unsigned int i = 0; + guid_index = -1; + for (i = 0; i < guid_count; i++) + { + char curr_dev[20]; + sprintf(curr_dev, "0x%016I64x", ntohll(ca_guid_array[i])); + if (!_stricmp(ib_devguid, curr_dev)) + { + guid_index = i; + break; + } + } + if (guid_index == -1) + { + fprintf(stderr,"device with guid %s was not found\n", ib_devguid); + return NULL; + } + } + + ib_status = ib_open_ca(ctx->al ,ca_guid_array[guid_index] ,NULL, NULL, //ca_context &ctx->ca); @@ -465,6 +488,7 @@ static void usage(const char *argv0) printf("\n"); printf("Options:\n"); printf(" -p, --port= listen on/connect to port (default 18515)\n"); + printf(" -d, --ib-dev= use IB device (default first device found)\n"); printf(" -c, --connection= connection type RC/UC (default RC)\n"); printf(" -m, --mtu= mtu size (default 1024)\n"); printf(" -i, --ib-port= use port of IB device (default 1)\n"); @@ -647,7 +671,7 @@ int __cdecl main(int argc, char *argv[]) struct pingpong_dest *my_dest; struct pingpong_dest *rem_dest; struct user_parameters user_param; - char *ib_devname = NULL; + char *ib_devguid = NULL; int port = 18515; int ib_port = 1; unsigned size = 2; @@ -657,6 +681,8 @@ int __cdecl main(int argc, char *argv[]) int iResult; struct report_options report = {0}; + SYSTEM_INFO si; + GetSystemInfo(&si); /* init default values to user's parameters */ memset(&user_param, 0, sizeof(struct user_parameters)); @@ -715,7 +741,7 @@ int __cdecl main(int argc, char *argv[]) return 0; break; case 'd': - ib_devname = _strdup(optarg); + ib_devguid = _strdup(optarg); break; case 'i': @@ -811,13 +837,9 @@ int __cdecl main(int argc, char *argv[]) } srand(GetCurrentProcessId() * GetTickCount()); - //TODO: get pagesize from sysinfo - page_size = 4096; + page_size = si.dwPageSize; - //TODO get the device names - - - ctx = pp_init_ctx( size, ib_port,&user_param); + ctx = pp_init_ctx( size, ib_port,&user_param, ib_devguid); if (!ctx) return 8; sockfd = pp_open_port(ctx, user_param.servername, ib_port, port,&my_dest,&rem_dest,&user_param); @@ -846,4 +868,4 @@ int __cdecl main(int argc, char *argv[]) printf("------------------------------------------------------------------\n"); free(tstamp); return 0; -} +} \ No newline at end of file