DragonFly BSD
DragonFly commits List (threaded) for 2012-08
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

Re: git: ixgbe: add tso_pullup function

From: Sepherosa Ziehau <sepherosa@xxxxxxxxx>
Date: Tue, 28 Aug 2012 09:39:24 +0800

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

>     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

[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]