<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=us-ascii">
<META content="MSHTML 6.00.2900.2873" name=GENERATOR></HEAD>
<BODY>
<DIV><FONT face=Arial size=2><SPAN class=228261311-12072006>Hi
Fab,</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN class=228261311-12072006></SPAN></FONT><FONT
face=Arial size=2><SPAN class=228261311-12072006></SPAN></FONT><FONT face=Arial
size=2><SPAN class=228261311-12072006></SPAN></FONT> </DIV>
<DIV><FONT face=Arial size=2><SPAN class=228261311-12072006>The following patch
does two things:</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN class=228261311-12072006>1) It adds a new
environment variable (IBWSD_INITIAL_CQ_SIZE) that controls the number of QPs
that will use the same CQ.</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN class=228261311-12072006>2) It sets the
default value from 100 to 500. We believe that this will allow the users to work
on bigger Clusters while the increase in memory is negligible for a modern
system.</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN
class=228261311-12072006></SPAN></FONT> </DIV>
<DIV><FONT face=Arial size=2><SPAN
class=228261311-12072006>Thanks</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN
class=228261311-12072006>Tzachi</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN
class=228261311-12072006></SPAN></FONT> </DIV>
<DIV><FONT face=Arial size=2><SPAN class=228261311-12072006>Index:
user/ibsp_iblow.c<BR>===================================================================<BR>---
user/ibsp_iblow.c (revision 420)<BR>+++ user/ibsp_iblow.c (working
copy)<BR>@@ -582,7 +582,7 @@<BR> STAT_INC( thread_num
);<BR> <BR> /* Completion queue */<BR>- cq_create.size =
IB_INIT_CQ_SIZE;<BR>+ cq_create.size = g_initial_cq_size *
IB_CQ_SIZE;<BR> <BR> cq_create.pfn_comp_cb =
NULL;<BR> cq_create.h_wait_obj = cq_tinfo->cq_waitobj;<BR>Index:
user/ibspdefines.h<BR>===================================================================<BR>---
user/ibspdefines.h (revision 420)<BR>+++ user/ibspdefines.h (working
copy)<BR>@@ -77,7 +77,6 @@<BR> * for 100 QPs per CQ.<BR>
*/<BR> #define IB_CQ_SIZE (QP_ATTRIB_SQ_DEPTH +
QP_ATTRIB_RQ_DEPTH)<BR>-#define IB_INIT_CQ_SIZE (IB_CQ_SIZE *
100)<BR> <BR> /* CM timeouts */<BR> #define
CM_MIN_LOCAL_TIMEOUT (18)<BR>Index:
user/ibspdll.c<BR>===================================================================<BR>---
user/ibspdll.c (revision 420)<BR>+++ user/ibspdll.c (working
copy)<BR>@@ -54,6 +54,7 @@<BR> uint32_t g_max_poll =
500;<BR> uint32_t g_sa_timeout =
500;<BR> uint32_t g_sa_retries =
4;<BR>+uint32_t g_initial_cq_size =
500;<BR> int g_connect_err =
WSAEADDRNOTAVAIL;<BR> <BR> <BR>@@ -135,6 +136,10
@@<BR> if( i )<BR> g_connect_err =
WSAEHOSTUNREACH;<BR> <BR>+ i = GetEnvironmentVariable(
"IBWSD_INITIAL_CQ_SIZE", env_var, sizeof(env_var) );<BR>+ if( i
&& i <= 16 )<BR>+ g_initial_cq_size = _tcstoul(
env_var, NULL, 10 ); <BR>+<BR> if( init_globals()
)<BR> return FALSE;<BR> <BR>Index:
user/ibspdll.h<BR>===================================================================<BR>---
user/ibspdll.h (revision 420)<BR>+++ user/ibspdll.h (working
copy)<BR>@@ -61,6 +61,7 @@<BR> extern
uint32_t g_max_poll;<BR> extern
uint32_t g_sa_timeout;<BR> extern
uint32_t g_sa_retries;<BR>+extern
uint32_t g_initial_cq_size;<BR> /* Allow users to control SA
timeouts behavior - fall back on IPoIB or fail. */<BR> extern
int g_connect_err;<BR> <BR></SPAN></FONT></DIV></BODY></HTML>