Thread (37 messages) 37 messages, 5 authors, 2015-01-19

Re: tcp: Do not apply TSO segment limit to non-TSO packets

From: Eric Dumazet <hidden>
Date: 2015-01-02 18:24:03

On Thu, 2015-01-01 at 00:42 +1100, Herbert Xu wrote:
On Thu, Jan 01, 2015 at 12:39:23AM +1100, Herbert Xu wrote:
quoted
Thomas Jarosch reported IPsec TCP stalls when a PMTU event occurs.

In fact the problem was completely unrelated to IPsec.  The bug is
also reproducible if you just disable TSO/GSO.
This raises two interesting questions.

Firstly not many people test non-TSO code paths anymore so bugs
are likely to persist for a long time there.  Perhaps it's time
to remove the non-TSO code path altogether? The GSO code path
should provide enough speed-up in terms of boosting the effective
MTU to offset the cost of copying.
Secondly why are we dealing with hardware TSO segment limits
by limiting the size of the TSO packet in the TCP stack? Surely
in this case GSO is free since there won't be any copying?
It might depends on the device capabilities.

Non TSO/GSO path is known to be better for devices unable to perform TX
checksumming, as we compute the checksum at the time we copy data from
user to kernel (csum_and_copy_from_user() from tcp_sendmsg())).

With BQL+TSQ, having to compute the TX hash means bringing data into cpu
caches a second time right before ndo_start_xmit()

But maybe this gain is very relative in a full blown configuration, with
netfilter / complex qdisc being used.

Thanks Herbert !
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help