On Tue, 2016-11-01 at 08:15 +0000, Ilya Lesokhin wrote: > Hi, > I've notice that tcp_can_collapse() returns false if > skb_shinfo(skb)->nr_frags != 0. > Is there a reason why we want to base the collapse decision in retransmission > on whether > the data is located in a frag or the linear part? > > The relevant commit is > tcp: collapse more than two on retransmission > ('4a17fc3add594fcc1c778e93a95b6ecf47f630e5') > > Thanks, > Ilya
Good point. I am guessing you see this after commit 3613b3dbd1ade9a6a626dae1f608c57638eb5e8a ("tcp: prepare skbs for better sack shifting") ? Problem is that the left skb might have no skb_availroom() anyway... We could theoretically use the same helpers we use at sack shifting, but are these collapse events frequent enough we should care ? Thanks !