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 !