lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
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

Powered by Openwall GNU/*/Linux Powered by OpenVZ