git: ixgbe: add tso_pullup function

Sepherosa Ziehau sepherosa at gmail.com
Mon Aug 27 18:39:24 PDT 2012


On Mon, Aug 27, 2012 at 1:19 PM, Francois Tigeot
<ftigeot at crater.dragonflybsd.org> wrote:
>
> commit 857fbe11cb425f03036d582c4f79ae3bbfae92eb
> Author: François Tigeot <ftigeot at wolfpond.org>
> Date:   Sat Aug 25 17:25:26 2012 +0200
>
>     ixgbe: add tso_pullup function
>
>     * This routine rearranges mbuf chains to get more continuous bytes,
>       potentially increasing tcp send performance
>
>     * Single TCP streams are now able to push slightly more than 4Gb/s
>       under the right circumstances

Grr, does it really helpful?  I believe the m_pullup() will not be
executed if the segments are from tcp_output().  We currently don't
pass TSO information to VLAN.  If the TSO information was delivered to
VLAN, the only case that the m_pullup would be executed on the
segments from tcp_output() was that software vlan tag insertion was
used.  That's the main reason I put __predict_false() on the m_len
testing; it probably should be false.  BTW, I planned to increase
max_linkhdr from 16 to 20 after 3.2 release (currently we will not
have enough time to give it a comprehensive test) to address the
software VLAN TSO issue.

And could you measure the CPU utilization?  Also please try changing
net.inet.tcp.sosend_agglim to a higher value and measure CPU
utilization again.  I didn't measure any difference on 1Gbps network,
once net.inet.tcp.sosend_agglim reaches 3.

Best Regards,
sephe

>
>     Taken-from: Sepherosa Ziehau's work on the igb(4) driver
>
> Summary of changes:
>  sys/dev/netif/ixgbe/ixgbe.c |   38 ++++++++++++++++++++++++++++++++++++++
>  1 files changed, 38 insertions(+), 0 deletions(-)
>
> http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/857fbe11cb425f03036d582c4f79ae3bbfae92eb
>
>
> --
> DragonFly BSD source repository



-- 
Tomorrow Will Never Die





More information about the Commits mailing list