<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii">
<META NAME="Generator" CONTENT="MS Exchange Server version 6.5.7652.24">
<TITLE>[PATCH] perftest rdma_lat.c bug fix</TITLE>
</HEAD>
<BODY>
<!-- Converted from text/rtf format -->
<UL DIR=LTR>
<P DIR=LTR><FONT COLOR="#000080" SIZE=2 FACE="Arial">Perftest: fix bug rdma_lat.c. Messages up to 400 bytes will be sent Inline.</FONT></P>

<P DIR=LTR><FONT COLOR="#000080" SIZE=2 FACE="Arial">Signed-off-by: Oren Meron <orenmeron@dev.mellanox.co.il></FONT></P>

<P DIR=LTR><FONT COLOR="#000080" SIZE=2 FACE="Arial">--- a/</FONT><A HREF="file:///git/?p=~orenmeron/perftest.git;a=blob;f=rdma_lat.c;h=7df0801b7b39c4482539fd86051e99c8743dd469;hb=ebe29bbf864cba7c01cd98e71266dd556fccbc14"><U><FONT COLOR="#000080" SIZE=2 FACE="Arial">rdma_lat.c</FONT></U></A><FONT COLOR="#000080" SIZE=2 FACE="Arial"> </FONT></P>

<P DIR=LTR><FONT COLOR="#000080" SIZE=2 FACE="Arial">+++ b/</FONT><A HREF="file:///git/?p=~orenmeron/perftest.git;a=blob;f=rdma_lat.c;h=68c91208454bceaada39cbc1aca1688fae5c3f40;hb=9cb3794d20a9a8f9c8c62b4b3c03aedf49d01d61"><U><FONT COLOR="#000080" SIZE=2 FACE="Arial">rdma_lat.c</FONT></U></A><FONT COLOR="#000080" SIZE=2 FACE="Arial"> </FONT></P>

<P DIR=LTR><FONT COLOR="#000080" SIZE=2 FACE="Arial">@@ </FONT><A HREF="file:///git/?p=~orenmeron/perftest.git;a=blob;f=rdma_lat.c;h=7df0801b7b39c4482539fd86051e99c8743dd469;hb=ebe29bbf864cba7c01cd98e71266dd556fccbc14"><U><FONT COLOR="#000080" SIZE=2 FACE="Arial">-58,6</FONT></U></A><FONT COLOR="#000080" SIZE=2 FACE="Arial"> </FONT><A HREF="file:///git/?p=~orenmeron/perftest.git;a=blob;f=rdma_lat.c;h=68c91208454bceaada39cbc1aca1688fae5c3f40;hb=9cb3794d20a9a8f9c8c62b4b3c03aedf49d01d61"><U><FONT COLOR="#000080" SIZE=2 FACE="Arial">+58,7</FONT></U></A><FONT COLOR="#000080" SIZE=2 FACE="Arial"> @@ </FONT></P>

<P DIR=LTR><FONT COLOR="#000080" SIZE=2 FACE="Arial">#include "get_clock.h" </FONT></P>

<P DIR=LTR><FONT COLOR="#000080" SIZE=2 FACE="Arial">#define PINGPONG_RDMA_WRID 3 </FONT></P>

<P DIR=LTR><FONT COLOR="#000080" SIZE=2 FACE="Arial">+#define MAX_INLINE 400 </FONT></P>

<P DIR=LTR><FONT COLOR="#000080" SIZE=2 FACE="Arial">static int page_size; </FONT></P>

<P DIR=LTR><FONT COLOR="#000080" SIZE=2 FACE="Arial">static pid_t pid; </FONT></P>

<P DIR=LTR><FONT COLOR="#000080" SIZE=2 FACE="Arial">@@ </FONT><A HREF="file:///git/?p=~orenmeron/perftest.git;a=blob;f=rdma_lat.c;h=7df0801b7b39c4482539fd86051e99c8743dd469;hb=ebe29bbf864cba7c01cd98e71266dd556fccbc14"><U><FONT COLOR="#000080" SIZE=2 FACE="Arial">-602,7</FONT></U></A><FONT COLOR="#000080" SIZE=2 FACE="Arial"> </FONT><A HREF="file:///git/?p=~orenmeron/perftest.git;a=blob;f=rdma_lat.c;h=68c91208454bceaada39cbc1aca1688fae5c3f40;hb=9cb3794d20a9a8f9c8c62b4b3c03aedf49d01d61"><U><FONT COLOR="#000080" SIZE=2 FACE="Arial">+603,7</FONT></U></A><FONT COLOR="#000080" SIZE=2 FACE="Arial"> @@ static struct pingpong_context *pp_init_ctx(void *ptr, struct pp_data *data) </FONT></P>

<P DIR=LTR><FONT COLOR="#000080" SIZE=2 FACE="Arial">.max_recv_wr = 1, </FONT></P>

<P DIR=LTR><FONT COLOR="#000080" SIZE=2 FACE="Arial">.max_send_sge = 1, </FONT></P>

<P DIR=LTR><FONT COLOR="#000080" SIZE=2 FACE="Arial">.max_recv_sge = 1, </FONT></P>

<P DIR=LTR><FONT COLOR="#000080" SIZE=2 FACE="Arial">- .max_inline_data = 0 </FONT></P>

<P DIR=LTR><FONT COLOR="#000080" SIZE=2 FACE="Arial">+ .max_inline_data = MAX_INLINE </FONT></P>

<P DIR=LTR><FONT COLOR="#000080" SIZE=2 FACE="Arial">}, </FONT></P>

<P DIR=LTR><FONT COLOR="#000080" SIZE=2 FACE="Arial">.qp_type = IBV_QPT_RC </FONT></P>

<P DIR=LTR><FONT COLOR="#000080" SIZE=2 FACE="Arial">}; </FONT></P>

<P DIR=LTR><FONT COLOR="#000080" SIZE=2 FACE="Arial">@@ </FONT><A HREF="file:///git/?p=~orenmeron/perftest.git;a=blob;f=rdma_lat.c;h=7df0801b7b39c4482539fd86051e99c8743dd469;hb=ebe29bbf864cba7c01cd98e71266dd556fccbc14"><U><FONT COLOR="#000080" SIZE=2 FACE="Arial">-640,7</FONT></U></A><FONT COLOR="#000080" SIZE=2 FACE="Arial"> </FONT><A HREF="file:///git/?p=~orenmeron/perftest.git;a=blob;f=rdma_lat.c;h=68c91208454bceaada39cbc1aca1688fae5c3f40;hb=9cb3794d20a9a8f9c8c62b4b3c03aedf49d01d61"><U><FONT COLOR="#000080" SIZE=2 FACE="Arial">+641,7</FONT></U></A><FONT COLOR="#000080" SIZE=2 FACE="Arial"> @@ static struct pingpong_context *pp_init_ctx(void *ptr, struct pp_data *data) </FONT></P>

<P DIR=LTR><FONT COLOR="#000080" SIZE=2 FACE="Arial">} </FONT></P>

<P DIR=LTR><FONT COLOR="#000080" SIZE=2 FACE="Arial">} </FONT></P>

<P DIR=LTR><FONT COLOR="#000080" SIZE=2 FACE="Arial">- return ctx; </FONT></P>

<P DIR=LTR><FONT COLOR="#000080" SIZE=2 FACE="Arial">+ return ctx; </FONT></P>

<P DIR=LTR><FONT COLOR="#000080" SIZE=2 FACE="Arial">} </FONT></P>

<P DIR=LTR><FONT COLOR="#000080" SIZE=2 FACE="Arial">static int pp_connect_ctx(struct pingpong_context *ctx, struct pp_data *data) </FONT></P>

<P DIR=LTR><FONT COLOR="#000080" SIZE=2 FACE="Arial">@@ </FONT><A HREF="file:///git/?p=~orenmeron/perftest.git;a=blob;f=rdma_lat.c;h=7df0801b7b39c4482539fd86051e99c8743dd469;hb=ebe29bbf864cba7c01cd98e71266dd556fccbc14"><U><FONT COLOR="#000080" SIZE=2 FACE="Arial">-1191,7</FONT></U></A><FONT COLOR="#000080" SIZE=2 FACE="Arial"> </FONT><A HREF="file:///git/?p=~orenmeron/perftest.git;a=blob;f=rdma_lat.c;h=68c91208454bceaada39cbc1aca1688fae5c3f40;hb=9cb3794d20a9a8f9c8c62b4b3c03aedf49d01d61"><U><FONT COLOR="#000080" SIZE=2 FACE="Arial">+1192,11</FONT></U></A><FONT COLOR="#000080" SIZE=2 FACE="Arial"> @@ int main(int argc, char *argv[]) </FONT></P>

<P DIR=LTR><FONT COLOR="#000080" SIZE=2 FACE="Arial">ctx->wr.sg_list = &ctx->list; </FONT></P>

<P DIR=LTR><FONT COLOR="#000080" SIZE=2 FACE="Arial">ctx->wr.num_sge = 1; </FONT></P>

<P DIR=LTR><FONT COLOR="#000080" SIZE=2 FACE="Arial">ctx->wr.opcode = IBV_WR_RDMA_WRITE; </FONT></P>

<P DIR=LTR><FONT COLOR="#000080" SIZE=2 FACE="Arial">- ctx->wr.send_flags = IBV_SEND_SIGNALED | IBV_SEND_INLINE; </FONT></P>

<P DIR=LTR><FONT COLOR="#000080" SIZE=2 FACE="Arial">+ if (ctx->size > MAX_INLINE || ctx->size == 0) { </FONT></P>

<P DIR=LTR><FONT COLOR="#000080" SIZE=2 FACE="Arial">+ ctx->wr.send_flags = IBV_SEND_SIGNALED; </FONT></P>

<P DIR=LTR><FONT COLOR="#000080" SIZE=2 FACE="Arial">+ } else { </FONT></P>

<P DIR=LTR><FONT COLOR="#000080" SIZE=2 FACE="Arial">+ ctx->wr.send_flags = IBV_SEND_SIGNALED | IBV_SEND_INLINE; </FONT></P>

<P DIR=LTR><FONT COLOR="#000080" SIZE=2 FACE="Arial">+ } </FONT></P>

<P DIR=LTR><FONT COLOR="#000080" SIZE=2 FACE="Arial">ctx->wr.next = NULL; </FONT></P>

<P DIR=LTR><FONT COLOR="#000080" SIZE=2 FACE="Arial">scnt = 0;</FONT></P>
<BR>
</UL>
<P DIR=LTR><B><I><FONT COLOR="#000080" SIZE=2 FACE="Arial">Oren   Meron</FONT></I></B></P>

<P DIR=LTR><B><I><FONT COLOR="#000080" SIZE=2 FACE="Arial">Performance</FONT></I></B><I></I></P>

</BODY>
</HTML>