For jumbo traffic, if cong. window is big, than TSO defer will not
happen that often. Hence, most of the traffic will be non-TSO and that
is why we saw performance degradation on our setup. This was the case
for 10G network where we tend to set tcp window very big, i.e. 1M+
This patch forces to defer even more. I'm not sure if this is clean
enough, but here goes results:
Without patch:
OS on Tx system TSO Throughput CPU idle
------------------- ------- ----------- ----------
2.6.13-rc6 ON 5.93Gb/s 58%
OFF 6.16Gb/s 52%
With patch:
OS on Tx system TSO Throughput CPU idle
------------------- ------- ----------- ----------
2.6.13-rc6 ON 6.59Gb/s 57%
(patched) OFF 6.16Gb/s 52%
Signed-off-by: Dmitry Yusupov <[EMAIL PROTECTED]>
diff --git a/net/ipv4/tcp_output.c b/net/ipv4/tcp_output.c
--- a/net/ipv4/tcp_output.c
+++ b/net/ipv4/tcp_output.c
@@ -925,10 +925,6 @@ static int tcp_tso_should_defer(struct s
limit = min(send_win, cong_win);
- /* If sk_send_head can be sent fully now, just do it. */
- if (skb->len <= limit)
- return 0;
-
if (sysctl_tcp_tso_win_divisor) {
u32 chunk = min(tp->snd_wnd, tp->snd_cwnd * tp->mss_cache);
On Thu, 2005-08-11 at 16:15 -0700, David S. Miller wrote:
> From: "Leonid Grossman" <[EMAIL PROTECTED]>
> Date: Thu, 11 Aug 2005 19:05:22 -0400
>
> > Basically, it looks like with SuperTSO most of the traffic in our tests
> > comes down to the driver with mss 0 (TSO is mostly "off").
> > With the original TSO, is was always "on" (see below).
> > Could you describe how SuperTSO algorithm for switching TSO "on" and
> > "off" works, it seems to be fairly complex for us to mess with? For a
> > fast network with extremely low error rate, I'd expect TSO to be on.
>
> We build packets as large as the user gives us in sendmsg(),
> then when ACK's come in openning up the window we either
> send as much as we can at that moment, or we defer to wait
> for more space so we can build larger TSO frames.
>
> The logic for that decision is in:
>
> net/ipv4/tcp_output.c:tcp_tso_should_defer()
>
> Keep also in mind that if there is packet loss, TSO is disabled
> completely.
>
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html