[OpenAFS-devel] rx -nojumbo bug issue

Avinesh Kumar avinesh@gmail.com
Thu, 30 Oct 2008 15:21:57 +0530


------=_Part_7232_13561923.1225360317512
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

Hi,

I was looking at the delta rx-allow-jumbogram-disabling-really-20080822.
The code changes as suggested in rx_user.c, I don't believe that it would
help.

     pp->maxDgramPackets =
     MIN(rxi_nDgramPackets,
-        rxi_AdjustDgramPackets(RX_MAX_FRAGS, pp->ifMTU));
+        rxi_AdjustDgramPackets(rxi_nSendFrags, pp->ifMTU));
     pp->ifDgramPackets =
     MIN(rxi_nDgramPackets,
-        rxi_AdjustDgramPackets(RX_MAX_FRAGS, pp->ifMTU));
+        rxi_AdjustDgramPackets(rxi_nSendFrags, pp->ifMTU));
     pp->maxDgramPackets = 1;
     /* Initialize slow start parameters */
     pp->MTU = MIN(pp->natMTU, pp->maxMTU);

First of all maxDgramPackets/ifDgramPackets would get minimum of
rxi_nDgramPackets
and the return value of rxi_AdjustDgramPackets(). When -nojumbo is
specified, rxi_nDgramPackets
would be set to 1 and so will maxDgramPackets/ifDgramPackets; even if
rxi_AdjustDgramPackets()
suggests that it would fit more rx_packets.

I believe rxi_AdjustDgramPackets() just tells number of rx_packet that can
be packed together (jumbogram)
given the MTU and has no side-effects.

Also, just after these calculations, we are explicitly setting
    pp->maxDgramPackets = 1;

Let me know if I am wrong. I am not sure of the significance of
maxDgramPackets/ifDgramPackets,
can anyone shed some light on this.

- Avinesh

------=_Part_7232_13561923.1225360317512
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

Hi,<br><br>I was looking at the delta rx-allow-jumbogram-disabling-really-20080822.<br>The code changes as suggested in rx_user.c, I don&#39;t believe that it would help.<br><br>&nbsp;&nbsp;&nbsp;&nbsp; pp-&gt;maxDgramPackets =<br>&nbsp;&nbsp;&nbsp;&nbsp; MIN(rxi_nDgramPackets,<br>
-&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; rxi_AdjustDgramPackets(RX_MAX_FRAGS, pp-&gt;ifMTU));<br>+&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; rxi_AdjustDgramPackets(rxi_nSendFrags, pp-&gt;ifMTU));<br>&nbsp;&nbsp;&nbsp;&nbsp; pp-&gt;ifDgramPackets =<br>&nbsp;&nbsp;&nbsp;&nbsp; MIN(rxi_nDgramPackets,<br>-&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; rxi_AdjustDgramPackets(RX_MAX_FRAGS, pp-&gt;ifMTU));<br>
+&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; rxi_AdjustDgramPackets(rxi_nSendFrags, pp-&gt;ifMTU));<br>&nbsp;&nbsp;&nbsp;&nbsp; pp-&gt;maxDgramPackets = 1;<br>&nbsp;&nbsp;&nbsp;&nbsp; /* Initialize slow start parameters */<br>&nbsp;&nbsp;&nbsp;&nbsp; pp-&gt;MTU = MIN(pp-&gt;natMTU, pp-&gt;maxMTU);<br><br>First of all maxDgramPackets/ifDgramPackets would get minimum of&nbsp; rxi_nDgramPackets<br>
and the return value of rxi_AdjustDgramPackets(). When -nojumbo is specified, rxi_nDgramPackets<br>would be set to 1 and so will maxDgramPackets/ifDgramPackets; even if rxi_AdjustDgramPackets()<br>suggests that it would fit more rx_packets. <br>
<br>I believe rxi_AdjustDgramPackets() just tells number of rx_packet that can be packed together (jumbogram)<br>given the MTU and has no side-effects.<br><br>Also, just after these calculations, we are explicitly setting <br>
&nbsp;&nbsp;&nbsp; pp-&gt;maxDgramPackets = 1;<br><br>Let me know if I am wrong. I am not sure of the significance of maxDgramPackets/ifDgramPackets,<br>can anyone shed some light on this.<br><br>- Avinesh<br>

------=_Part_7232_13561923.1225360317512--