<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 12 (filtered medium)">
<style>
<!--
/* Font Definitions */
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0in;
margin-bottom:.0001pt;
font-size:11.0pt;
font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:blue;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-priority:99;
color:purple;
text-decoration:underline;}
span.EmailStyle17
{mso-style-type:personal-compose;
font-family:"Calibri","sans-serif";
color:windowtext;}
.MsoChpDefault
{mso-style-type:export-only;}
@page WordSection1
{size:8.5in 11.0in;
margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
{page:WordSection1;}
-->
</style>
<!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang=EN-US link=blue vlink=purple>
<div class=WordSection1>
<p class=MsoNormal>Signed-off-by: Irena Gannon (<a
href="mailto:irena@mellanox.co.il">irena@mellanox.co.il</a>) <o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>This patch adds a -d <guid> option to the tests to
enable choosing a device to run on.<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>Index:
D:/Windows/MLNX_VPI/tools/perftests/user/send_bw/send_bw.c<o:p></o:p></p>
<p class=MsoNormal>===================================================================<o:p></o:p></p>
<p class=MsoNormal>---
D:/Windows/MLNX_VPI/tools/perftests/user/send_bw/send_bw.c (revision
6545)<o:p></o:p></p>
<p class=MsoNormal>+++
D:/Windows/MLNX_VPI/tools/perftests/user/send_bw/send_bw.c (revision
6546)<o:p></o:p></p>
<p class=MsoNormal>@@ -38,6 +38,7 @@<o:p></o:p></p>
<p class=MsoNormal> #include "get_clock.h"<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> #include "perf_defs.h"<o:p></o:p></p>
<p class=MsoNormal>+#include "l2w.h"<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> #define SIGNAL 1<o:p></o:p></p>
<p class=MsoNormal> #define MAX_INLINE 400<o:p></o:p></p>
<p class=MsoNormal>@@ -73,13 +74,14 @@<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> static struct pingpong_context *pp_init_ctx(unsigned
size,int port, <o:p></o:p></p>
<p class=MsoNormal>- struct
user_parameters *user_parm)<o:p></o:p></p>
<p class=MsoNormal>+ struct
user_parameters *user_parm, char* ib_devguid)<o:p></o:p></p>
<p class=MsoNormal> {<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> struct pingpong_context *ctx;<o:p></o:p></p>
<p class=MsoNormal> ib_api_status_t ib_status
= IB_SUCCESS; <o:p></o:p></p>
<p class=MsoNormal> size_t guid_count;<o:p></o:p></p>
<p class=MsoNormal> ib_net64_t *ca_guid_array;<o:p></o:p></p>
<p class=MsoNormal>+ int guid_index
= 0;<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>@@ -158,7 +160,28 @@<o:p></o:p></p>
<p class=MsoNormal> * Open only the first HCA<o:p></o:p></p>
<p class=MsoNormal> */<o:p></o:p></p>
<p class=MsoNormal> /* Open the CA */<o:p></o:p></p>
<p class=MsoNormal>- ib_status = ib_open_ca(ctx->al
,ca_guid_array[0] ,NULL,<o:p></o:p></p>
<p class=MsoNormal>+ if (ib_devguid) <o:p></o:p></p>
<p class=MsoNormal>+ {<o:p></o:p></p>
<p class=MsoNormal>+ unsigned int i = 0;<o:p></o:p></p>
<p class=MsoNormal>+ guid_index = -1;<o:p></o:p></p>
<p class=MsoNormal>+ for (i = 0; i < guid_count;
i++)<o:p></o:p></p>
<p class=MsoNormal>+ {<o:p></o:p></p>
<p class=MsoNormal>+ char
curr_dev[20];<o:p></o:p></p>
<p class=MsoNormal>+ sprintf(curr_dev,
"0x%016I64x", ntohll(ca_guid_array[i]));<o:p></o:p></p>
<p class=MsoNormal>+ if
(!_stricmp(ib_devguid, curr_dev))<o:p></o:p></p>
<p class=MsoNormal>+ {<o:p></o:p></p>
<p class=MsoNormal>+ guid_index
= i;<o:p></o:p></p>
<p class=MsoNormal>+ break;<o:p></o:p></p>
<p class=MsoNormal>+ }<o:p></o:p></p>
<p class=MsoNormal>+ }<o:p></o:p></p>
<p class=MsoNormal>+ if (guid_index == -1)<o:p></o:p></p>
<p class=MsoNormal>+ {<o:p></o:p></p>
<p class=MsoNormal>+ fprintf(stderr,"device
with guid %s was not found\n", ib_devguid);<o:p></o:p></p>
<p class=MsoNormal>+ return NULL;<o:p></o:p></p>
<p class=MsoNormal>+ }<o:p></o:p></p>
<p class=MsoNormal>+ }<o:p></o:p></p>
<p class=MsoNormal>+ <o:p></o:p></p>
<p class=MsoNormal>+ ib_status = ib_open_ca(ctx->al
,ca_guid_array[guid_index] ,NULL,<o:p></o:p></p>
<p class=MsoNormal> NULL, //ca_context<o:p></o:p></p>
<p class=MsoNormal> &ctx->ca);<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>@@ -549,6 +572,7 @@<o:p></o:p></p>
<p class=MsoNormal> printf("\n");<o:p></o:p></p>
<p class=MsoNormal> printf("Options:\n");<o:p></o:p></p>
<p class=MsoNormal> printf(" -p,
--port=<port> listen on/connect to port <port> (default
18515)\n");<o:p></o:p></p>
<p class=MsoNormal>+ printf(" -d, --ib-dev=<dev>
use IB device <device guid> (default first device found)\n");<o:p></o:p></p>
<p class=MsoNormal> printf(" -i,
--ib-port=<port> use port <port> of IB device (default
1)\n");<o:p></o:p></p>
<p class=MsoNormal> printf(" -c,
--connection=<RC/UC> connection type RC/UC/UD (default RC)\n");<o:p></o:p></p>
<p class=MsoNormal> printf(" -m,
--mtu=<mtu> mtu size (default 1024)\n");<o:p></o:p></p>
<p class=MsoNormal>@@ -943,7 +967,7 @@<o:p></o:p></p>
<p class=MsoNormal> struct pingpong_dest *my_dest;<o:p></o:p></p>
<p class=MsoNormal> struct pingpong_dest *rem_dest;<o:p></o:p></p>
<p class=MsoNormal> struct user_parameters user_param;<o:p></o:p></p>
<p class=MsoNormal>- char *ib_devname
= NULL;<o:p></o:p></p>
<p class=MsoNormal>+ char *ib_devguid
= NULL;<o:p></o:p></p>
<p class=MsoNormal> int port
= 18515;<o:p></o:p></p>
<p class=MsoNormal> int ib_port
= 1;<o:p></o:p></p>
<p class=MsoNormal> unsigned size
= 65536;<o:p></o:p></p>
<p class=MsoNormal>@@ -953,6 +977,8 @@<o:p></o:p></p>
<p class=MsoNormal> WSADATA wsaData;<o:p></o:p></p>
<p class=MsoNormal> int iResult;<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>+ SYSTEM_INFO si;<o:p></o:p></p>
<p class=MsoNormal>+ GetSystemInfo(&si);<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> /* init default values to user's parameters
*/<o:p></o:p></p>
<p class=MsoNormal> memset(&user_param, 0, sizeof(struct
user_parameters));<o:p></o:p></p>
<p class=MsoNormal>@@ -998,7 +1024,7 @@<o:p></o:p></p>
<p class=MsoNormal> ++user_param.use_event;<o:p></o:p></p>
<p class=MsoNormal> break;<o:p></o:p></p>
<p class=MsoNormal> case 'd':<o:p></o:p></p>
<p class=MsoNormal>- ib_devname =
_strdup(optarg);<o:p></o:p></p>
<p class=MsoNormal>+ ib_devguid =
_strdup(optarg);<o:p></o:p></p>
<p class=MsoNormal> break;<o:p></o:p></p>
<p class=MsoNormal> case 'c':<o:p></o:p></p>
<p class=MsoNormal> if
(strcmp("UC",optarg)==0)<o:p></o:p></p>
<p class=MsoNormal>@@ -1100,14 +1126,11 @@<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> srand(GetCurrentProcessId() *
GetTickCount());<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>- //TODO: get pagesize from sysinfo<o:p></o:p></p>
<p class=MsoNormal>- page_size = 4096;<o:p></o:p></p>
<p class=MsoNormal>+ page_size = si.dwPageSize;<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>- //TODO:get the device names<o:p></o:p></p>
<p class=MsoNormal>- <o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> // init the context<o:p></o:p></p>
<p class=MsoNormal>- ctx = pp_init_ctx(size, ib_port,
&user_param);<o:p></o:p></p>
<p class=MsoNormal>+ ctx = pp_init_ctx(size, ib_port,
&user_param, ib_devguid);<o:p></o:p></p>
<p class=MsoNormal> if (!ctx)<o:p></o:p></p>
<p class=MsoNormal> return 1;<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>Index:
D:/Windows/MLNX_VPI/tools/perftests/user/send_bw/SOURCES<o:p></o:p></p>
<p class=MsoNormal>===================================================================<o:p></o:p></p>
<p class=MsoNormal>--- D:/Windows/MLNX_VPI/tools/perftests/user/send_bw/SOURCES (revision
6545)<o:p></o:p></p>
<p class=MsoNormal>+++ D:/Windows/MLNX_VPI/tools/perftests/user/send_bw/SOURCES (revision
6546)<o:p></o:p></p>
<p class=MsoNormal>@@ -11,7 +11,7 @@<o:p></o:p></p>
<p class=MsoNormal> ..\perf_utils.c \<o:p></o:p></p>
<p class=MsoNormal> send_bw.c <o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>-INCLUDES=..;..\..\..\..\inc;..\..\..\..\inc\user<o:p></o:p></p>
<p class=MsoNormal>+INCLUDES=..;..\..\..\..\inc;..\..\..\..\inc\user;..\..\..\..\hw\mlx4\user\hca;..\..\..\..\inc\complib<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> RCOPTIONS=/I..\..\win\include<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>Index:
D:/Windows/MLNX_VPI/tools/perftests/user/write_bw/SOURCES<o:p></o:p></p>
<p class=MsoNormal>===================================================================<o:p></o:p></p>
<p class=MsoNormal>---
D:/Windows/MLNX_VPI/tools/perftests/user/write_bw/SOURCES (revision 6545)<o:p></o:p></p>
<p class=MsoNormal>+++
D:/Windows/MLNX_VPI/tools/perftests/user/write_bw/SOURCES (revision
6546)<o:p></o:p></p>
<p class=MsoNormal>@@ -11,7 +11,7 @@<o:p></o:p></p>
<p class=MsoNormal> ..\perf_utils.c \<o:p></o:p></p>
<p class=MsoNormal> write_bw.c <o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>-INCLUDES=..;..\..\..\..\inc;..\..\..\..\inc\user<o:p></o:p></p>
<p class=MsoNormal>+INCLUDES=..;..\..\..\..\inc;..\..\..\..\inc\user;..\..\..\..\hw\mlx4\user\hca;..\..\..\..\inc\complib<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> RCOPTIONS=/I..\..\win\include<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>Index:
D:/Windows/MLNX_VPI/tools/perftests/user/write_bw/write_bw.c<o:p></o:p></p>
<p class=MsoNormal>===================================================================<o:p></o:p></p>
<p class=MsoNormal>---
D:/Windows/MLNX_VPI/tools/perftests/user/write_bw/write_bw.c (revision
6545)<o:p></o:p></p>
<p class=MsoNormal>+++
D:/Windows/MLNX_VPI/tools/perftests/user/write_bw/write_bw.c (revision
6546)<o:p></o:p></p>
<p class=MsoNormal>@@ -34,12 +34,12 @@<o:p></o:p></p>
<p class=MsoNormal> * $Id$<o:p></o:p></p>
<p class=MsoNormal> */<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>+<o:p></o:p></p>
<p class=MsoNormal> #include "getopt.h"<o:p></o:p></p>
<p class=MsoNormal> #include "perf_defs.h"<o:p></o:p></p>
<p class=MsoNormal> #include "get_clock.h"<o:p></o:p></p>
<p class=MsoNormal>+#include "l2w.h"<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>-<o:p></o:p></p>
<p class=MsoNormal>-<o:p></o:p></p>
<p class=MsoNormal> struct user_parameters {<o:p></o:p></p>
<p class=MsoNormal> const char *servername;<o:p></o:p></p>
<p class=MsoNormal> int connection_type;<o:p></o:p></p>
<p class=MsoNormal>@@ -66,7 +66,7 @@<o:p></o:p></p>
<p class=MsoNormal> UNUSED_PARAM( cq_context);<o:p></o:p></p>
<p class=MsoNormal> return ;<o:p></o:p></p>
<p class=MsoNormal> }<o:p></o:p></p>
<p class=MsoNormal>-static struct pingpong_context *pp_init_ctx(unsigned size,
int port, struct user_parameters *user_parm)<o:p></o:p></p>
<p class=MsoNormal>+static struct pingpong_context *pp_init_ctx(unsigned size,
int port, struct user_parameters *user_parm, char* ib_devguid)<o:p></o:p></p>
<p class=MsoNormal> {<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> struct pingpong_context *ctx;<o:p></o:p></p>
<p class=MsoNormal>@@ -74,6 +74,7 @@<o:p></o:p></p>
<p class=MsoNormal> size_t guid_count;<o:p></o:p></p>
<p class=MsoNormal> ib_net64_t *ca_guid_array;<o:p></o:p></p>
<p class=MsoNormal> int counter;<o:p></o:p></p>
<p class=MsoNormal>+ int guid_index
= 0;<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> ctx = malloc(sizeof *ctx);<o:p></o:p></p>
<p class=MsoNormal> if (!ctx){<o:p></o:p></p>
<p class=MsoNormal>@@ -159,7 +160,28 @@<o:p></o:p></p>
<p class=MsoNormal> * Open only the first HCA<o:p></o:p></p>
<p class=MsoNormal> */<o:p></o:p></p>
<p class=MsoNormal> /* Open the CA */<o:p></o:p></p>
<p class=MsoNormal>- ib_status = ib_open_ca(ctx->al
,ca_guid_array[0] ,NULL,<o:p></o:p></p>
<p class=MsoNormal>+ if (ib_devguid) <o:p></o:p></p>
<p class=MsoNormal>+ {<o:p></o:p></p>
<p class=MsoNormal>+ unsigned int i = 0;<o:p></o:p></p>
<p class=MsoNormal>+ guid_index = -1;<o:p></o:p></p>
<p class=MsoNormal>+ for (i = 0; i < guid_count;
i++)<o:p></o:p></p>
<p class=MsoNormal>+ {<o:p></o:p></p>
<p class=MsoNormal>+ char
curr_dev[20];<o:p></o:p></p>
<p class=MsoNormal>+ sprintf(curr_dev,
"0x%016I64x", ntohll(ca_guid_array[i]));<o:p></o:p></p>
<p class=MsoNormal>+ if
(!_stricmp(ib_devguid, curr_dev))<o:p></o:p></p>
<p class=MsoNormal>+ {<o:p></o:p></p>
<p class=MsoNormal>+ guid_index
= i;<o:p></o:p></p>
<p class=MsoNormal>+ break;<o:p></o:p></p>
<p class=MsoNormal>+ }<o:p></o:p></p>
<p class=MsoNormal>+ }<o:p></o:p></p>
<p class=MsoNormal>+ if (guid_index == -1)<o:p></o:p></p>
<p class=MsoNormal>+ {<o:p></o:p></p>
<p class=MsoNormal>+ fprintf(stderr,"device
with guid %s was not found\n", ib_devguid);<o:p></o:p></p>
<p class=MsoNormal>+ return NULL;<o:p></o:p></p>
<p class=MsoNormal>+ }<o:p></o:p></p>
<p class=MsoNormal>+ }<o:p></o:p></p>
<p class=MsoNormal>+ <o:p></o:p></p>
<p class=MsoNormal>+ ib_status = ib_open_ca(ctx->al
,ca_guid_array[guid_index] ,NULL,<o:p></o:p></p>
<p class=MsoNormal> NULL, //ca_context<o:p></o:p></p>
<p class=MsoNormal> &ctx->ca);<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>@@ -476,6 +498,7 @@<o:p></o:p></p>
<p class=MsoNormal> printf("\n");<o:p></o:p></p>
<p class=MsoNormal> printf("Options:\n");<o:p></o:p></p>
<p class=MsoNormal> printf(" -p,
--port=<port> listen on/connect to port <port> (default
18515)\n");<o:p></o:p></p>
<p class=MsoNormal>+ printf(" -d, --ib-dev=<dev>
use IB device <device guid> (default first device found)\n");<o:p></o:p></p>
<p class=MsoNormal> printf(" -i,
--ib-port=<port> use port <port> of IB device (default
1)\n");<o:p></o:p></p>
<p class=MsoNormal> printf(" -c,
--connection=<RC/UC> connection type RC/UC (default RC)\n");<o:p></o:p></p>
<p class=MsoNormal> printf(" -m,
--mtu=<mtu> mtu size (default 1024)\n");<o:p></o:p></p>
<p class=MsoNormal>@@ -650,7 +673,7 @@<o:p></o:p></p>
<p class=MsoNormal> struct pingpong_dest *my_dest;<o:p></o:p></p>
<p class=MsoNormal> struct pingpong_dest *rem_dest;<o:p></o:p></p>
<p class=MsoNormal> struct user_parameters user_param;<o:p></o:p></p>
<p class=MsoNormal>- char *ib_devname
= NULL;<o:p></o:p></p>
<p class=MsoNormal>+ char *ib_devguid
= NULL;<o:p></o:p></p>
<p class=MsoNormal> int port
= 18515;<o:p></o:p></p>
<p class=MsoNormal> int ib_port
= 1;<o:p></o:p></p>
<p class=MsoNormal> unsigned size
= 65536;<o:p></o:p></p>
<p class=MsoNormal>@@ -661,6 +684,9 @@<o:p></o:p></p>
<p class=MsoNormal> int duplex
= 0;<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>+ SYSTEM_INFO si;<o:p></o:p></p>
<p class=MsoNormal>+ GetSystemInfo(&si);<o:p></o:p></p>
<p class=MsoNormal>+ <o:p></o:p></p>
<p class=MsoNormal> /* init default values to user's parameters
*/<o:p></o:p></p>
<p class=MsoNormal> memset(&user_param, 0, sizeof(struct
user_parameters));<o:p></o:p></p>
<p class=MsoNormal> user_param.mtu = 0;<o:p></o:p></p>
<p class=MsoNormal>@@ -705,7 +731,7 @@<o:p></o:p></p>
<p class=MsoNormal> break;<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> case 'd':<o:p></o:p></p>
<p class=MsoNormal>- ib_devname =
_strdup(optarg);<o:p></o:p></p>
<p class=MsoNormal>+ ib_devguid =
_strdup(optarg);<o:p></o:p></p>
<p class=MsoNormal> break;<o:p></o:p></p>
<p class=MsoNormal> case 'c':<o:p></o:p></p>
<p class=MsoNormal> if
(strcmp("UC",optarg)==0)<o:p></o:p></p>
<p class=MsoNormal>@@ -814,13 +840,9 @@<o:p></o:p></p>
<p class=MsoNormal> }<o:p></o:p></p>
<p class=MsoNormal> srand(GetCurrentProcessId() *
GetTickCount());<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>- //TODO: get pagesize from sysinfo<o:p></o:p></p>
<p class=MsoNormal>- page_size = 4096;<o:p></o:p></p>
<p class=MsoNormal>-<o:p></o:p></p>
<p class=MsoNormal>- //TODO get the device names<o:p></o:p></p>
<p class=MsoNormal>-<o:p></o:p></p>
<p class=MsoNormal>-<o:p></o:p></p>
<p class=MsoNormal>- ctx = pp_init_ctx(size, ib_port,
&user_param);<o:p></o:p></p>
<p class=MsoNormal>+ page_size = si.dwPageSize;<o:p></o:p></p>
<p class=MsoNormal>+ <o:p></o:p></p>
<p class=MsoNormal>+ ctx = pp_init_ctx(size, ib_port,
&user_param, ib_devguid);<o:p></o:p></p>
<p class=MsoNormal> if (!ctx)<o:p></o:p></p>
<p class=MsoNormal> return 8;<o:p></o:p></p>
<p class=MsoNormal> sockfd = pp_open_port(ctx,
user_param.servername, ib_port,
port,&my_dest,&rem_dest,&user_param);<o:p></o:p></p>
<p class=MsoNormal>Index:
D:/Windows/MLNX_VPI/tools/perftests/user/send_lat/SOURCES<o:p></o:p></p>
<p class=MsoNormal>===================================================================<o:p></o:p></p>
<p class=MsoNormal>---
D:/Windows/MLNX_VPI/tools/perftests/user/send_lat/SOURCES (revision 6545)<o:p></o:p></p>
<p class=MsoNormal>+++
D:/Windows/MLNX_VPI/tools/perftests/user/send_lat/SOURCES (revision 6546)<o:p></o:p></p>
<p class=MsoNormal>@@ -11,7 +11,7 @@<o:p></o:p></p>
<p class=MsoNormal> ..\perf_utils.c \<o:p></o:p></p>
<p class=MsoNormal> send_lat.c <o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>-INCLUDES=..;..\..\..\..\inc;..\..\..\..\inc\user<o:p></o:p></p>
<p class=MsoNormal>+INCLUDES=..;..\..\..\..\inc;..\..\..\..\inc\user;..\..\..\..\hw\mlx4\user\hca;..\..\..\..\inc\complib<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> RCOPTIONS=/I..\..\win\include<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>Index: D:/Windows/MLNX_VPI/tools/perftests/user/send_lat/send_lat.c<o:p></o:p></p>
<p class=MsoNormal>===================================================================<o:p></o:p></p>
<p class=MsoNormal>---
D:/Windows/MLNX_VPI/tools/perftests/user/send_lat/send_lat.c (revision 6545)<o:p></o:p></p>
<p class=MsoNormal>+++
D:/Windows/MLNX_VPI/tools/perftests/user/send_lat/send_lat.c (revision
6546)<o:p></o:p></p>
<p class=MsoNormal>@@ -38,6 +38,7 @@<o:p></o:p></p>
<p class=MsoNormal> #include "getopt.h"<o:p></o:p></p>
<p class=MsoNormal> #include "get_clock.h"<o:p></o:p></p>
<p class=MsoNormal> #include "perf_defs.h"<o:p></o:p></p>
<p class=MsoNormal>+#include "l2w.h"<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>@@ -67,12 +68,13 @@<o:p></o:p></p>
<p class=MsoNormal> }<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>-static struct pingpong_context *pp_init_ctx(unsigned int
size,int port,struct user_parameters *user_parm) {<o:p></o:p></p>
<p class=MsoNormal>+static struct pingpong_context *pp_init_ctx(unsigned int
size,int port,struct user_parameters *user_parm, char* ib_devguid) {<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> struct pingpong_context *ctx;<o:p></o:p></p>
<p class=MsoNormal> ib_api_status_t ib_status
= IB_SUCCESS; <o:p></o:p></p>
<p class=MsoNormal> size_t guid_count;<o:p></o:p></p>
<p class=MsoNormal> ib_net64_t *ca_guid_array;<o:p></o:p></p>
<p class=MsoNormal>+ int guid_index
= 0;<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>@@ -156,7 +158,29 @@<o:p></o:p></p>
<p class=MsoNormal> * Open only the first HCA<o:p></o:p></p>
<p class=MsoNormal> */<o:p></o:p></p>
<p class=MsoNormal> /* Open the CA */<o:p></o:p></p>
<p class=MsoNormal>- ib_status = ib_open_ca(ctx->al
,ca_guid_array[0] ,NULL,<o:p></o:p></p>
<p class=MsoNormal>+ if (ib_devguid) <o:p></o:p></p>
<p class=MsoNormal>+ {<o:p></o:p></p>
<p class=MsoNormal>+ unsigned int i = 0;<o:p></o:p></p>
<p class=MsoNormal>+ guid_index = -1;<o:p></o:p></p>
<p class=MsoNormal>+ for (i = 0; i < guid_count;
i++)<o:p></o:p></p>
<p class=MsoNormal>+ {<o:p></o:p></p>
<p class=MsoNormal>+ char
curr_dev[20];<o:p></o:p></p>
<p class=MsoNormal>+ sprintf(curr_dev,
"0x%016I64x", ntohll(ca_guid_array[i]));<o:p></o:p></p>
<p class=MsoNormal>+ if
(!_stricmp(ib_devguid, curr_dev))<o:p></o:p></p>
<p class=MsoNormal>+ {<o:p></o:p></p>
<p class=MsoNormal>+ guid_index
= i;<o:p></o:p></p>
<p class=MsoNormal>+ break;<o:p></o:p></p>
<p class=MsoNormal>+ }<o:p></o:p></p>
<p class=MsoNormal>+ }<o:p></o:p></p>
<p class=MsoNormal>+ if (guid_index == -1)<o:p></o:p></p>
<p class=MsoNormal>+ {<o:p></o:p></p>
<p class=MsoNormal>+ fprintf(stderr,"device
with guid %s was not found\n", ib_devguid);<o:p></o:p></p>
<p class=MsoNormal>+ return NULL;<o:p></o:p></p>
<p class=MsoNormal>+ }<o:p></o:p></p>
<p class=MsoNormal>+ }<o:p></o:p></p>
<p class=MsoNormal>+<o:p></o:p></p>
<p class=MsoNormal>+ <o:p></o:p></p>
<p class=MsoNormal>+ ib_status = ib_open_ca(ctx->al
,ca_guid_array[guid_index] ,NULL,<o:p></o:p></p>
<p class=MsoNormal> NULL, //ca_context<o:p></o:p></p>
<p class=MsoNormal> &ctx->ca);<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>@@ -536,6 +560,7 @@<o:p></o:p></p>
<p class=MsoNormal> printf("\n");<o:p></o:p></p>
<p class=MsoNormal> printf("Options:\n");<o:p></o:p></p>
<p class=MsoNormal> printf(" -p,
--port=<port> listen on/connect to port <port> (default
18515)\n");<o:p></o:p></p>
<p class=MsoNormal>+ printf(" -d,
--ib-dev=<dev> use IB device <device guid> (default first
device found)\n");<o:p></o:p></p>
<p class=MsoNormal> printf(" -c,
--connection=<RC/UC> connection type RC/UC (default RC)\n");<o:p></o:p></p>
<p class=MsoNormal> printf(" -m,
--mtu=<mtu> mtu size (default 2048)\n");<o:p></o:p></p>
<p class=MsoNormal> printf(" -i,
--ib-port=<port> use port <port> of IB device (default
1)\n");<o:p></o:p></p>
<p class=MsoNormal>@@ -793,7 +818,7 @@<o:p></o:p></p>
<p class=MsoNormal> struct pingpong_dest *my_dest;<o:p></o:p></p>
<p class=MsoNormal> struct pingpong_dest *rem_dest;<o:p></o:p></p>
<p class=MsoNormal> struct user_parameters user_param;<o:p></o:p></p>
<p class=MsoNormal>- char *ib_devname
= NULL;<o:p></o:p></p>
<p class=MsoNormal>+ char *ib_devguid
= NULL;<o:p></o:p></p>
<p class=MsoNormal> int port
= 18515;<o:p></o:p></p>
<p class=MsoNormal> int ib_port
= 1;<o:p></o:p></p>
<p class=MsoNormal> unsigned size
= 2;<o:p></o:p></p>
<p class=MsoNormal>@@ -806,6 +831,9 @@<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> struct report_options report = {0};<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>+ SYSTEM_INFO si;<o:p></o:p></p>
<p class=MsoNormal>+ GetSystemInfo(&si);<o:p></o:p></p>
<p class=MsoNormal>+<o:p></o:p></p>
<p class=MsoNormal> /* init default values to user's parameters
*/<o:p></o:p></p>
<p class=MsoNormal> memset(&user_param, 0, sizeof(struct
user_parameters));<o:p></o:p></p>
<p class=MsoNormal> user_param.mtu = 0;<o:p></o:p></p>
<p class=MsoNormal>@@ -867,7 +895,7 @@<o:p></o:p></p>
<p class=MsoNormal> return 0;<o:p></o:p></p>
<p class=MsoNormal> break;<o:p></o:p></p>
<p class=MsoNormal> case 'd':<o:p></o:p></p>
<p class=MsoNormal>- ib_devname =
_strdup(optarg);<o:p></o:p></p>
<p class=MsoNormal>+ ib_devguid =
_strdup(optarg);<o:p></o:p></p>
<p class=MsoNormal> break;<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> case 'i':<o:p></o:p></p>
<p class=MsoNormal>@@ -967,12 +995,9 @@<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> srand(GetCurrentProcessId() *
GetTickCount());<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>- //TODO: get pagesize from sysinfo<o:p></o:p></p>
<p class=MsoNormal>- page_size = 4096;<o:p></o:p></p>
<p class=MsoNormal>-<o:p></o:p></p>
<p class=MsoNormal>- //TODO get the device names<o:p></o:p></p>
<p class=MsoNormal>+ page_size = si.dwPageSize;<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>- ctx = pp_init_ctx( size,
ib_port,&user_param);<o:p></o:p></p>
<p class=MsoNormal>+ ctx = pp_init_ctx( size,
ib_port,&user_param, ib_devguid);<o:p></o:p></p>
<p class=MsoNormal> if (!ctx)<o:p></o:p></p>
<p class=MsoNormal> return 8;<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>Index: D:/Windows/MLNX_VPI/tools/perftests/user/write_lat/SOURCES<o:p></o:p></p>
<p class=MsoNormal>===================================================================<o:p></o:p></p>
<p class=MsoNormal>---
D:/Windows/MLNX_VPI/tools/perftests/user/write_lat/SOURCES (revision 6545)<o:p></o:p></p>
<p class=MsoNormal>+++
D:/Windows/MLNX_VPI/tools/perftests/user/write_lat/SOURCES (revision 6546)<o:p></o:p></p>
<p class=MsoNormal>@@ -11,7 +11,7 @@<o:p></o:p></p>
<p class=MsoNormal> ..\perf_utils.c \<o:p></o:p></p>
<p class=MsoNormal> write_lat.c <o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>-INCLUDES=..;..\..\..\..\inc;..\..\..\..\inc\user<o:p></o:p></p>
<p class=MsoNormal>+INCLUDES=..;..\..\..\..\inc;..\..\..\..\inc\user;..\..\..\..\hw\mlx4\user\hca;..\..\..\..\inc\complib<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> RCOPTIONS=/I..\..\win\include<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>Index: D:/Windows/MLNX_VPI/tools/perftests/user/write_lat/write_lat.c<o:p></o:p></p>
<p class=MsoNormal>===================================================================<o:p></o:p></p>
<p class=MsoNormal>---
D:/Windows/MLNX_VPI/tools/perftests/user/write_lat/write_lat.c (revision 6545)<o:p></o:p></p>
<p class=MsoNormal>+++
D:/Windows/MLNX_VPI/tools/perftests/user/write_lat/write_lat.c (revision
6546)<o:p></o:p></p>
<p class=MsoNormal>@@ -38,6 +38,7 @@<o:p></o:p></p>
<p class=MsoNormal> #include "getopt.h"<o:p></o:p></p>
<p class=MsoNormal> #include "perf_defs.h"<o:p></o:p></p>
<p class=MsoNormal> #include "get_clock.h"<o:p></o:p></p>
<p class=MsoNormal>+#include "l2w.h"<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>@@ -68,7 +69,7 @@<o:p></o:p></p>
<p class=MsoNormal> }<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>-static struct pingpong_context *pp_init_ctx(unsigned size,
int port, struct user_parameters *user_parm)<o:p></o:p></p>
<p class=MsoNormal>+static struct pingpong_context *pp_init_ctx(unsigned size,
int port, struct user_parameters *user_parm, char* ib_devguid)<o:p></o:p></p>
<p class=MsoNormal> {<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>@@ -76,6 +77,7 @@<o:p></o:p></p>
<p class=MsoNormal> ib_api_status_t ib_status
= IB_SUCCESS; <o:p></o:p></p>
<p class=MsoNormal> size_t guid_count;<o:p></o:p></p>
<p class=MsoNormal> ib_net64_t *ca_guid_array;<o:p></o:p></p>
<p class=MsoNormal>+ int guid_index
= 0;<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> ctx = malloc(sizeof *ctx);<o:p></o:p></p>
<p class=MsoNormal> if (!ctx){<o:p></o:p></p>
<p class=MsoNormal>@@ -150,7 +152,28 @@<o:p></o:p></p>
<p class=MsoNormal> * Open only the first HCA<o:p></o:p></p>
<p class=MsoNormal> */<o:p></o:p></p>
<p class=MsoNormal> /* Open the CA */<o:p></o:p></p>
<p class=MsoNormal>- ib_status = ib_open_ca(ctx->al
,ca_guid_array[0] ,NULL,<o:p></o:p></p>
<p class=MsoNormal>+ if (ib_devguid) <o:p></o:p></p>
<p class=MsoNormal>+ {<o:p></o:p></p>
<p class=MsoNormal>+ unsigned int i = 0;<o:p></o:p></p>
<p class=MsoNormal>+ guid_index = -1;<o:p></o:p></p>
<p class=MsoNormal>+ for (i = 0; i < guid_count;
i++)<o:p></o:p></p>
<p class=MsoNormal>+ {<o:p></o:p></p>
<p class=MsoNormal>+ char
curr_dev[20];<o:p></o:p></p>
<p class=MsoNormal>+ sprintf(curr_dev,
"0x%016I64x", ntohll(ca_guid_array[i]));<o:p></o:p></p>
<p class=MsoNormal>+ if
(!_stricmp(ib_devguid, curr_dev))<o:p></o:p></p>
<p class=MsoNormal>+ {<o:p></o:p></p>
<p class=MsoNormal>+ guid_index
= i;<o:p></o:p></p>
<p class=MsoNormal>+ break;<o:p></o:p></p>
<p class=MsoNormal>+ }<o:p></o:p></p>
<p class=MsoNormal>+ }<o:p></o:p></p>
<p class=MsoNormal>+ if (guid_index == -1)<o:p></o:p></p>
<p class=MsoNormal>+ {<o:p></o:p></p>
<p class=MsoNormal>+ fprintf(stderr,"device
with guid %s was not found\n", ib_devguid);<o:p></o:p></p>
<p class=MsoNormal>+ return NULL;<o:p></o:p></p>
<p class=MsoNormal>+ }<o:p></o:p></p>
<p class=MsoNormal>+ }<o:p></o:p></p>
<p class=MsoNormal>+ <o:p></o:p></p>
<p class=MsoNormal>+ ib_status = ib_open_ca(ctx->al
,ca_guid_array[guid_index] ,NULL,<o:p></o:p></p>
<p class=MsoNormal> NULL, //ca_context<o:p></o:p></p>
<p class=MsoNormal> &ctx->ca);<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>@@ -465,6 +488,7 @@<o:p></o:p></p>
<p class=MsoNormal> printf("\n");<o:p></o:p></p>
<p class=MsoNormal> printf("Options:\n");<o:p></o:p></p>
<p class=MsoNormal> printf(" -p,
--port=<port> listen on/connect to port <port> (default
18515)\n");<o:p></o:p></p>
<p class=MsoNormal>+ printf(" -d, --ib-dev=<dev>
use IB device <device guid> (default first device found)\n");<o:p></o:p></p>
<p class=MsoNormal> printf(" -c,
--connection=<RC/UC> connection type RC/UC (default RC)\n");<o:p></o:p></p>
<p class=MsoNormal> printf(" -m,
--mtu=<mtu> mtu size (default 1024)\n");<o:p></o:p></p>
<p class=MsoNormal> printf(" -i,
--ib-port=<port> use port <port> of IB device (default
1)\n");<o:p></o:p></p>
<p class=MsoNormal>@@ -647,7 +671,7 @@<o:p></o:p></p>
<p class=MsoNormal> struct pingpong_dest *my_dest;<o:p></o:p></p>
<p class=MsoNormal> struct pingpong_dest *rem_dest;<o:p></o:p></p>
<p class=MsoNormal> struct user_parameters user_param;<o:p></o:p></p>
<p class=MsoNormal>- char *ib_devname
= NULL;<o:p></o:p></p>
<p class=MsoNormal>+ char *ib_devguid
= NULL;<o:p></o:p></p>
<p class=MsoNormal> int port
= 18515;<o:p></o:p></p>
<p class=MsoNormal> int ib_port
= 1;<o:p></o:p></p>
<p class=MsoNormal> unsigned size
= 2;<o:p></o:p></p>
<p class=MsoNormal>@@ -657,6 +681,8 @@<o:p></o:p></p>
<p class=MsoNormal> int iResult;
<o:p></o:p></p>
<p class=MsoNormal> struct report_options report = {0};<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>+ SYSTEM_INFO si;<o:p></o:p></p>
<p class=MsoNormal>+ GetSystemInfo(&si);<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> /* init default values to user's parameters
*/<o:p></o:p></p>
<p class=MsoNormal> memset(&user_param, 0, sizeof(struct
user_parameters));<o:p></o:p></p>
<p class=MsoNormal>@@ -715,7 +741,7 @@<o:p></o:p></p>
<p class=MsoNormal> return 0;<o:p></o:p></p>
<p class=MsoNormal> break;<o:p></o:p></p>
<p class=MsoNormal> case 'd':<o:p></o:p></p>
<p class=MsoNormal>- ib_devname =
_strdup(optarg);<o:p></o:p></p>
<p class=MsoNormal>+ ib_devguid =
_strdup(optarg);<o:p></o:p></p>
<p class=MsoNormal> break;<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> case 'i':<o:p></o:p></p>
<p class=MsoNormal>@@ -811,13 +837,9 @@<o:p></o:p></p>
<p class=MsoNormal> }<o:p></o:p></p>
<p class=MsoNormal> srand(GetCurrentProcessId() *
GetTickCount());<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>- //TODO: get pagesize from sysinfo<o:p></o:p></p>
<p class=MsoNormal>- page_size = 4096;<o:p></o:p></p>
<p class=MsoNormal>+ page_size = si.dwPageSize;<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>- //TODO get the device names<o:p></o:p></p>
<p class=MsoNormal>- <o:p></o:p></p>
<p class=MsoNormal>-<o:p></o:p></p>
<p class=MsoNormal>- ctx = pp_init_ctx( size,
ib_port,&user_param);<o:p></o:p></p>
<p class=MsoNormal>+ ctx = pp_init_ctx( size,
ib_port,&user_param, ib_devguid);<o:p></o:p></p>
<p class=MsoNormal> if (!ctx)<o:p></o:p></p>
<p class=MsoNormal> return 8;<o:p></o:p></p>
<p class=MsoNormal> sockfd = pp_open_port(ctx,
user_param.servername, ib_port,
port,&my_dest,&rem_dest,&user_param);<o:p></o:p></p>
<p class=MsoNormal>@@ -846,4 +868,4 @@<o:p></o:p></p>
<p class=MsoNormal> printf("------------------------------------------------------------------\n");<o:p></o:p></p>
<p class=MsoNormal> free(tstamp);<o:p></o:p></p>
<p class=MsoNormal> return 0;<o:p></o:p></p>
<p class=MsoNormal>-}<o:p></o:p></p>
<p class=MsoNormal>+}<o:p></o:p></p>
<p class=MsoNormal>\ No newline at end of file<o:p></o:p></p>
<p class=MsoNormal>Index: D:/Windows/MLNX_VPI/tools/perftests/user/read_bw/SOURCES<o:p></o:p></p>
<p class=MsoNormal>===================================================================<o:p></o:p></p>
<p class=MsoNormal>--- D:/Windows/MLNX_VPI/tools/perftests/user/read_bw/SOURCES (revision
6545)<o:p></o:p></p>
<p class=MsoNormal>+++ D:/Windows/MLNX_VPI/tools/perftests/user/read_bw/SOURCES (revision
6546)<o:p></o:p></p>
<p class=MsoNormal>@@ -11,7 +11,7 @@<o:p></o:p></p>
<p class=MsoNormal> ..\perf_utils.c \<o:p></o:p></p>
<p class=MsoNormal> read_bw.c <o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>-INCLUDES=..;..\..\..\..\inc;..\..\..\..\inc\user<o:p></o:p></p>
<p class=MsoNormal>+INCLUDES=..;..\..\..\..\inc;..\..\..\..\inc\user;..\..\..\..\hw\mlx4\user\hca;..\..\..\..\inc\complib<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> RCOPTIONS=/I..\..\win\include<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>Index: D:/Windows/MLNX_VPI/tools/perftests/user/read_bw/read_bw.c<o:p></o:p></p>
<p class=MsoNormal>===================================================================<o:p></o:p></p>
<p class=MsoNormal>---
D:/Windows/MLNX_VPI/tools/perftests/user/read_bw/read_bw.c (revision 6545)<o:p></o:p></p>
<p class=MsoNormal>+++ D:/Windows/MLNX_VPI/tools/perftests/user/read_bw/read_bw.c (revision
6546)<o:p></o:p></p>
<p class=MsoNormal>@@ -37,6 +37,7 @@<o:p></o:p></p>
<p class=MsoNormal> #include "getopt.h"<o:p></o:p></p>
<p class=MsoNormal> #include "perf_defs.h"<o:p></o:p></p>
<p class=MsoNormal> #include "get_clock.h"<o:p></o:p></p>
<p class=MsoNormal>+#include "l2w.h"<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> struct user_parameters {<o:p></o:p></p>
<p class=MsoNormal> const char *servername;<o:p></o:p></p>
<p class=MsoNormal>@@ -64,13 +65,14 @@<o:p></o:p></p>
<p class=MsoNormal> return ;<o:p></o:p></p>
<p class=MsoNormal> }<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>-static struct pingpong_context *pp_init_ctx(unsigned
size,int port, struct user_parameters *user_parm)<o:p></o:p></p>
<p class=MsoNormal>+static struct pingpong_context *pp_init_ctx(unsigned
size,int port, struct user_parameters *user_parm, char* ib_devguid)<o:p></o:p></p>
<p class=MsoNormal> {<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> struct pingpong_context *ctx;<o:p></o:p></p>
<p class=MsoNormal> ib_api_status_t ib_status
= IB_SUCCESS; <o:p></o:p></p>
<p class=MsoNormal> size_t guid_count;<o:p></o:p></p>
<p class=MsoNormal> ib_net64_t *ca_guid_array;<o:p></o:p></p>
<p class=MsoNormal>+ int guid_index
= 0;<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> ctx = malloc(sizeof *ctx);<o:p></o:p></p>
<p class=MsoNormal>@@ -145,7 +147,28 @@<o:p></o:p></p>
<p class=MsoNormal> * Open only the first HCA<o:p></o:p></p>
<p class=MsoNormal> */<o:p></o:p></p>
<p class=MsoNormal> /* Open the CA */<o:p></o:p></p>
<p class=MsoNormal>- ib_status = ib_open_ca(ctx->al
,ca_guid_array[0] ,NULL,<o:p></o:p></p>
<p class=MsoNormal>+ if (ib_devguid) <o:p></o:p></p>
<p class=MsoNormal>+ {<o:p></o:p></p>
<p class=MsoNormal>+ unsigned int i = 0;<o:p></o:p></p>
<p class=MsoNormal>+ guid_index = -1;<o:p></o:p></p>
<p class=MsoNormal>+ for (i = 0; i < guid_count;
i++)<o:p></o:p></p>
<p class=MsoNormal>+ {<o:p></o:p></p>
<p class=MsoNormal>+ char
curr_dev[20];<o:p></o:p></p>
<p class=MsoNormal>+ sprintf(curr_dev,
"0x%016I64x", ntohll(ca_guid_array[i]));<o:p></o:p></p>
<p class=MsoNormal>+ if
(!_stricmp(ib_devguid, curr_dev))<o:p></o:p></p>
<p class=MsoNormal>+ {<o:p></o:p></p>
<p class=MsoNormal>+ guid_index
= i;<o:p></o:p></p>
<p class=MsoNormal>+ break;<o:p></o:p></p>
<p class=MsoNormal>+ }<o:p></o:p></p>
<p class=MsoNormal>+ }<o:p></o:p></p>
<p class=MsoNormal>+ if (guid_index == -1)<o:p></o:p></p>
<p class=MsoNormal>+ {<o:p></o:p></p>
<p class=MsoNormal>+ fprintf(stderr,"device
with guid %s was not found\n", ib_devguid);<o:p></o:p></p>
<p class=MsoNormal>+ return NULL;<o:p></o:p></p>
<p class=MsoNormal>+ }<o:p></o:p></p>
<p class=MsoNormal>+ }<o:p></o:p></p>
<p class=MsoNormal>+ <o:p></o:p></p>
<p class=MsoNormal>+ ib_status = ib_open_ca(ctx->al
,ca_guid_array[guid_index] ,NULL,<o:p></o:p></p>
<p class=MsoNormal> NULL, //ca_context<o:p></o:p></p>
<p class=MsoNormal> &ctx->ca);<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>@@ -445,6 +468,7 @@<o:p></o:p></p>
<p class=MsoNormal> printf("\n");<o:p></o:p></p>
<p class=MsoNormal> printf("Options:\n");<o:p></o:p></p>
<p class=MsoNormal> printf(" -p, --port=<port>
listen on/connect to port <port> (default 18515)\n");<o:p></o:p></p>
<p class=MsoNormal>+ printf(" -d, --ib-dev=<dev>
use IB device <device guid> (default first device found)\n");<o:p></o:p></p>
<p class=MsoNormal> printf(" -i, --ib-port=<port>
use port <port> of IB device (default 1)\n");<o:p></o:p></p>
<p class=MsoNormal> printf(" -m, --mtu=<mtu>
mtu size (default 1024)\n");<o:p></o:p></p>
<p class=MsoNormal> printf(" -o, --outs=<num>
num of outstanding read/atom(default 4)\n");<o:p></o:p></p>
<p class=MsoNormal>@@ -582,7 +606,7 @@<o:p></o:p></p>
<p class=MsoNormal> struct pingpong_dest *my_dest;<o:p></o:p></p>
<p class=MsoNormal> struct pingpong_dest *rem_dest;<o:p></o:p></p>
<p class=MsoNormal> struct user_parameters user_param;<o:p></o:p></p>
<p class=MsoNormal>- char *ib_devname
= NULL;<o:p></o:p></p>
<p class=MsoNormal>+ char *ib_devguid
= NULL;<o:p></o:p></p>
<p class=MsoNormal> int port
= 18515;<o:p></o:p></p>
<p class=MsoNormal> int ib_port
= 1;<o:p></o:p></p>
<p class=MsoNormal> unsigned size
= 65536;<o:p></o:p></p>
<p class=MsoNormal>@@ -592,6 +616,9 @@<o:p></o:p></p>
<p class=MsoNormal> int i
= 0;<o:p></o:p></p>
<p class=MsoNormal> int duplex
= 0;<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>+ SYSTEM_INFO si;<o:p></o:p></p>
<p class=MsoNormal>+ GetSystemInfo(&si);<o:p></o:p></p>
<p class=MsoNormal>+<o:p></o:p></p>
<p class=MsoNormal> /* init default values to user's parameters
*/<o:p></o:p></p>
<p class=MsoNormal> memset(&user_param, 0, sizeof(struct
user_parameters));<o:p></o:p></p>
<p class=MsoNormal> user_param.mtu = 0; /* signal choose default
by device */<o:p></o:p></p>
<p class=MsoNormal>@@ -632,7 +659,7 @@<o:p></o:p></p>
<p class=MsoNormal> break;<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> case 'd':<o:p></o:p></p>
<p class=MsoNormal>- ib_devname =
_strdup(optarg);<o:p></o:p></p>
<p class=MsoNormal>+ ib_devguid =
_strdup(optarg);<o:p></o:p></p>
<p class=MsoNormal> break;<o:p></o:p></p>
<p class=MsoNormal> case 'm':<o:p></o:p></p>
<p class=MsoNormal> user_param.mtu
= strtol(optarg, NULL, 0);<o:p></o:p></p>
<p class=MsoNormal>@@ -717,13 +744,9 @@<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> srand(GetCurrentProcessId() *
GetTickCount());<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>- //TODO: get pagesize from sysinfo<o:p></o:p></p>
<p class=MsoNormal>- page_size = 4096;<o:p></o:p></p>
<p class=MsoNormal>+ page_size = si.dwPageSize;<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>- //TODO:get the device names<o:p></o:p></p>
<p class=MsoNormal>-<o:p></o:p></p>
<p class=MsoNormal>-<o:p></o:p></p>
<p class=MsoNormal>- ctx = pp_init_ctx(size,ib_port,
&user_param);<o:p></o:p></p>
<p class=MsoNormal>+ ctx = pp_init_ctx(size,ib_port,
&user_param, ib_devguid);<o:p></o:p></p>
<p class=MsoNormal> if (!ctx)<o:p></o:p></p>
<p class=MsoNormal> return 8;<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>Index:
D:/Windows/MLNX_VPI/tools/perftests/user/read_lat/SOURCES<o:p></o:p></p>
<p class=MsoNormal>===================================================================<o:p></o:p></p>
<p class=MsoNormal>---
D:/Windows/MLNX_VPI/tools/perftests/user/read_lat/SOURCES (revision 6545)<o:p></o:p></p>
<p class=MsoNormal>+++
D:/Windows/MLNX_VPI/tools/perftests/user/read_lat/SOURCES (revision 6546)<o:p></o:p></p>
<p class=MsoNormal>@@ -11,7 +11,7 @@<o:p></o:p></p>
<p class=MsoNormal> ..\perf_utils.c \<o:p></o:p></p>
<p class=MsoNormal> read_lat.c <o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>-INCLUDES=..;..\..\..\..\inc;..\..\..\..\inc\user<o:p></o:p></p>
<p class=MsoNormal>+INCLUDES=..;..\..\..\..\inc;..\..\..\..\inc\user;..\..\..\..\hw\mlx4\user\hca;..\..\..\..\inc\complib<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> RCOPTIONS=/I..\..\win\include<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>Index:
D:/Windows/MLNX_VPI/tools/perftests/user/read_lat/read_lat.c<o:p></o:p></p>
<p class=MsoNormal>===================================================================<o:p></o:p></p>
<p class=MsoNormal>---
D:/Windows/MLNX_VPI/tools/perftests/user/read_lat/read_lat.c (revision 6545)<o:p></o:p></p>
<p class=MsoNormal>+++
D:/Windows/MLNX_VPI/tools/perftests/user/read_lat/read_lat.c (revision 6546)<o:p></o:p></p>
<p class=MsoNormal>@@ -38,6 +38,7 @@<o:p></o:p></p>
<p class=MsoNormal> #include "getopt.h"<o:p></o:p></p>
<p class=MsoNormal> #include "perf_defs.h"<o:p></o:p></p>
<p class=MsoNormal> #include "get_clock.h"<o:p></o:p></p>
<p class=MsoNormal>+#include "l2w.h"<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>@@ -68,7 +69,7 @@<o:p></o:p></p>
<p class=MsoNormal> return ;<o:p></o:p></p>
<p class=MsoNormal> }<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>-static struct pingpong_context *pp_init_ctx(unsigned
size,int port, struct user_parameters *user_parm)<o:p></o:p></p>
<p class=MsoNormal>+static struct pingpong_context *pp_init_ctx(unsigned
size,int port, struct user_parameters *user_parm, char* ib_devguid)<o:p></o:p></p>
<p class=MsoNormal> {<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>@@ -76,6 +77,7 @@<o:p></o:p></p>
<p class=MsoNormal> ib_api_status_t ib_status
= IB_SUCCESS; <o:p></o:p></p>
<p class=MsoNormal> size_t guid_count;<o:p></o:p></p>
<p class=MsoNormal> ib_net64_t *ca_guid_array;<o:p></o:p></p>
<p class=MsoNormal>+ int guid_index
= 0;<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> ctx = malloc(sizeof *ctx);<o:p></o:p></p>
<p class=MsoNormal>@@ -149,7 +151,28 @@<o:p></o:p></p>
<p class=MsoNormal> * Open only the first HCA<o:p></o:p></p>
<p class=MsoNormal> */<o:p></o:p></p>
<p class=MsoNormal> /* Open the CA */<o:p></o:p></p>
<p class=MsoNormal>- ib_status = ib_open_ca(ctx->al
,ca_guid_array[0] ,NULL,<o:p></o:p></p>
<p class=MsoNormal>+ if (ib_devguid) <o:p></o:p></p>
<p class=MsoNormal>+ {<o:p></o:p></p>
<p class=MsoNormal>+ unsigned int i = 0;<o:p></o:p></p>
<p class=MsoNormal>+ guid_index = -1;<o:p></o:p></p>
<p class=MsoNormal>+ for (i = 0; i < guid_count;
i++)<o:p></o:p></p>
<p class=MsoNormal>+ {<o:p></o:p></p>
<p class=MsoNormal>+ char
curr_dev[20];<o:p></o:p></p>
<p class=MsoNormal>+ sprintf(curr_dev,
"0x%016I64x", ntohll(ca_guid_array[i]));<o:p></o:p></p>
<p class=MsoNormal>+ if
(!_stricmp(ib_devguid, curr_dev))<o:p></o:p></p>
<p class=MsoNormal>+ {<o:p></o:p></p>
<p class=MsoNormal>+ guid_index
= i;<o:p></o:p></p>
<p class=MsoNormal>+ break;<o:p></o:p></p>
<p class=MsoNormal>+ }<o:p></o:p></p>
<p class=MsoNormal>+ }<o:p></o:p></p>
<p class=MsoNormal>+ if (guid_index == -1)<o:p></o:p></p>
<p class=MsoNormal>+ {<o:p></o:p></p>
<p class=MsoNormal>+ fprintf(stderr,"device
with guid %s was not found\n", ib_devguid);<o:p></o:p></p>
<p class=MsoNormal>+ return NULL;<o:p></o:p></p>
<p class=MsoNormal>+ }<o:p></o:p></p>
<p class=MsoNormal>+ }<o:p></o:p></p>
<p class=MsoNormal>+ <o:p></o:p></p>
<p class=MsoNormal>+ ib_status = ib_open_ca(ctx->al
,ca_guid_array[guid_index] ,NULL,<o:p></o:p></p>
<p class=MsoNormal> NULL, //ca_context<o:p></o:p></p>
<p class=MsoNormal> &ctx->ca);<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>@@ -456,6 +479,7 @@<o:p></o:p></p>
<p class=MsoNormal> printf("\n");<o:p></o:p></p>
<p class=MsoNormal> printf("Options:\n");<o:p></o:p></p>
<p class=MsoNormal> printf(" -p,
--port=<port> listen on/connect to port <port> (default
18515)\n");<o:p></o:p></p>
<p class=MsoNormal>+ printf(" -d,
--ib-dev=<dev> use IB device <device guid> (default first
device found)\n");<o:p></o:p></p>
<p class=MsoNormal> printf(" -m,
--mtu=<mtu> mtu size (default 256)\n");<o:p></o:p></p>
<p class=MsoNormal> printf(" -i,
--ib-port=<port> use port <port> of IB device (default
1)\n");<o:p></o:p></p>
<p class=MsoNormal> printf(" -s,
--size=<size> size of message to exchange (default
1)\n");<o:p></o:p></p>
<p class=MsoNormal>@@ -598,7 +622,7 @@<o:p></o:p></p>
<p class=MsoNormal> struct pingpong_dest *my_dest;<o:p></o:p></p>
<p class=MsoNormal> struct pingpong_dest *rem_dest;<o:p></o:p></p>
<p class=MsoNormal> struct user_parameters user_param;<o:p></o:p></p>
<p class=MsoNormal>- char *ib_devname
= NULL;<o:p></o:p></p>
<p class=MsoNormal>+ char *ib_devguid
= NULL;<o:p></o:p></p>
<p class=MsoNormal> int port
= 18515;<o:p></o:p></p>
<p class=MsoNormal> int ib_port
= 1;<o:p></o:p></p>
<p class=MsoNormal> unsigned tmp_size,size
= 2;<o:p></o:p></p>
<p class=MsoNormal>@@ -608,6 +632,8 @@<o:p></o:p></p>
<p class=MsoNormal> int i
= 0;<o:p></o:p></p>
<p class=MsoNormal> struct report_options report = {0};<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>+ SYSTEM_INFO si;<o:p></o:p></p>
<p class=MsoNormal>+ GetSystemInfo(&si);<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> /* init default values to user's parameters
*/<o:p></o:p></p>
<p class=MsoNormal> memset(&user_param, 0, sizeof(struct
user_parameters));<o:p></o:p></p>
<p class=MsoNormal>@@ -665,7 +691,7 @@<o:p></o:p></p>
<p class=MsoNormal> return 0;<o:p></o:p></p>
<p class=MsoNormal> break;<o:p></o:p></p>
<p class=MsoNormal> case 'd':<o:p></o:p></p>
<p class=MsoNormal>- ib_devname =
_strdup(optarg);<o:p></o:p></p>
<p class=MsoNormal>+ ib_devguid =
_strdup(optarg);<o:p></o:p></p>
<p class=MsoNormal> break;<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> case 'i':<o:p></o:p></p>
<p class=MsoNormal>@@ -755,13 +781,9 @@<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> srand(GetCurrentProcessId() *
GetTickCount());<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>- //TODO: get pagesize from sysinfo<o:p></o:p></p>
<p class=MsoNormal>- page_size = 4096;<o:p></o:p></p>
<p class=MsoNormal>+ page_size = si.dwPageSize;<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal>- //TODO:get the device names<o:p></o:p></p>
<p class=MsoNormal>-<o:p></o:p></p>
<p class=MsoNormal>-<o:p></o:p></p>
<p class=MsoNormal>- ctx = pp_init_ctx(size,ib_port,
&user_param);<o:p></o:p></p>
<p class=MsoNormal>+ ctx = pp_init_ctx(size,ib_port,
&user_param, ib_devguid);<o:p></o:p></p>
<p class=MsoNormal> if (!ctx)<o:p></o:p></p>
<p class=MsoNormal> return 8;<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
</div>
</body>
</html>