git: ixgbe: add tso_pullup function

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

On Mon, Aug 27, 2012 at 1:19 PM, Francois Tigeot
<ftigeot at> wrote:
> commit 857fbe11cb425f03036d582c4f79ae3bbfae92eb
> Author: François Tigeot <ftigeot at>
> 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,

>     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(-)
> --
> DragonFly BSD source repository

Tomorrow Will Never Die

More information about the Commits mailing list