From: Dmitry Yusupov <[EMAIL PROTECTED]>
Date: Fri, 19 Aug 2005 16:55:47 -0700

> 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);

Very interesting, thanks for this.

This patch seems as if it would help only if:

1) SKB is the newest packet in the queue (ie. it is sk->sk_send_head
   and it is the tail SKB in the send queue)
2) the user will tack on some more data "very soon"

I wonder why the user is not able to keep up with filling
the send buffer so that this condition does not occur?

I intend to apply your patch, or something very similar, I just want
to verify some things first, such as if there is a case where the
check needs some more conditions.  Deferring only is valid, for
example, if there are other ACKs which will show up to trigger the end
of the deferral.  For one thing, that means we cannot defer if the
pipe is empty or nearly empty.

Again, thanks a lot.
-
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

Reply via email to