[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20081028.154814.179119403.davem@davemloft.net>
Date: Tue, 28 Oct 2008 15:48:14 -0700 (PDT)
From: David Miller <davem@...emloft.net>
To: ilpo.jarvinen@...sinki.fi
Cc: shemminger@...tta.com, doug.leith@...m.ie, netdev@...r.kernel.org
Subject: Re: FYI - TCP/IP thin stream latency
From: "Ilpo Järvinen" <ilpo.jarvinen@...sinki.fi>
Date: Thu, 23 Oct 2008 15:22:17 +0300 (EEST)
> [PATCH not-now :-)] tcp: collapse more than two on retransmission
>
> I always had thought that collapsing up to two at a time was
> intentional decision to avoid excessive processing if 1 byte
> sized skbs are to be combined for a full mtu, and consecutive
> retransmissions would make the size of the retransmittee
> double each round anyway.
>
> tcp_skb_is_last check is now provided by the loop.
>
> I tried to make the order of tests bit more sensible to make
> it break earlier for things which seem more common case
> (in favor of TSO and SG, though latter is a restriction which
> could be made less strict I think).
>
> Barely compile tested.
>
> Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@...sinki.fi>
Small error:
> +static int tcp_can_collapse(struct sock *sk, struct sk_buff *skb)
> +{
> + if (tcp_skb_pcount(skb) > 1)
> + return 0;
> + /* Once recombining for SACK completes this check could be made
> + * less strict by reusing those parts.
> + */
> + if (skb_shinfo(skb)->nr_frags != 0)
> + return 0;
> + if (skb_cloned(skb))
> + return 0;
> + if (skb == tcp_send_head(sk))
> + return 0;
> + /* Some heurestics for collapsing over SACK'd could be invented */
> + if (TCP_SKB_CB(skb)->sacked & TCPCB_SACKED_ACKED)
> + return 0;
> +
> + return 1;
> +}
For the "skb === tcp_send_head()" test, we're not interested if
"skb" is equal, but rather whether next_skb is equal.
But the structure looks fine and when you send me a tested version
of this patch I'll apply it to net-next-2.6, thanks!
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists