<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>