From: "Ilpo_Järvinen" <[EMAIL PROTECTED]> Date: Fri, 21 Dec 2007 20:55:28 +0200 (EET)
> [PATCH] [TCP]: Force TSO splits to MSS boundaries > > If snd_wnd - snd_nxt wasn't multiple of MSS, skb was split on > odd boundary by the callers of tcp_window_allows. > > We try really hard to avoid unnecessary modulos. Therefore the > old caller side check "if (skb->len < limit)" was too wide as > well because limit is not bound in any way to skb->len and can > cause spurious testing for trimming in the middle of the queue > while we only wanted that to happen at the tail of the queue. > A simple additional caller side check for tcp_write_queue_tail > would likely have resulted 2 x modulos because the limit would > have to be first calculated from window, however, doing that > unnecessary modulo is not mandatory. After a minor change to > the algorithm, simply determine first if the modulo is needed > at all and at that point immediately decide also from which > value it should be calculated from. > > This approach also kills some duplicated code. > > Signed-off-by: Ilpo Järvinen <[EMAIL PROTECTED]> Looks good, patch applied, thanks. With respect to code duplicateion, tcp_push_one() is essentially the inner loop of tcp_write_xmit() :-) -- 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