<br><font size=2 face="sans-serif">Hello, Roland,</font>
<br>
<br><font size=2 face="sans-serif">I have a question about below code.
Why IPOIB_NUM_WC was set to 4 by default? If there is no particular reason,
I would like to submit a patch to make this value tunable.</font>
<br>
<br><font size=2 face="sans-serif">I found some interesting result on different
drivers when making this number tunable. In some case, netperf could even
get up to 30% throughout on ehca, but mthca only gets around 2%. I can
post a patch and test result if you are interested. </font>
<br>
<br><font size=2 face="sans-serif">Also I noticed that mthca sends IB_CQ_NEXT_COMP
with completion entry==0 pretty often, in my netperf test, more than 30%
time.</font>
<br>
<br><font size=2 face="sans-serif">void ipoib_ib_completion(struct ib_cq
*cq, void *dev_ptr)</font>
<br><font size=2 face="sans-serif">{</font>
<br><font size=2 face="sans-serif">        struct net_device
*dev = (struct net_device *) dev_ptr;</font>
<br><font size=2 face="sans-serif">        struct ipoib_dev_priv
*priv = netdev_priv(dev);</font>
<br><font size=2 face="sans-serif">        int n, i;</font>
<br>
<br><font size=2 face="sans-serif">        ib_req_notify_cq(cq,
IB_CQ_NEXT_COMP);</font>
<br><font size=2 face="sans-serif">        do {</font>
<br><font size=2 face="sans-serif">           
    n = ib_poll_cq(cq, IPOIB_NUM_WC, priv->ibwc);</font>
<br><font size=2 face="sans-serif">           
    for (i = 0; i < n; ++i)</font>
<br><font size=2 face="sans-serif">           
            ipoib_ib_handle_wc(dev, priv->ibwc
+ i);</font>
<br><font size=2 face="sans-serif">        } while
(n == IPOIB_NUM_WC);</font>
<br><font size=2 face="sans-serif">}</font>
<br><font size=2 face="sans-serif"><br>
Thanks<br>
Shirley Ma<br>
IBM Linux Technology Center<br>
15300 SW Koll Parkway<br>
Beaverton, OR 97006-6063<br>
Phone(Fax): (503) 578-7638<br>
<br>
</font>