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