|Subject:||Current 2.6.x TSO state|
|From:||"David S. Miller" <davem@xxxxxxxxxxxxx>|
|Date:||Thu, 30 Sep 2004 21:32:21 -0700|
|Cc:||ak@xxxxxxx, jheffner@xxxxxxx, herbert@xxxxxxxxxxxxxxxxxxx|
Attached are the 4 TCP TSO patches I have in my tree. They are relative to Linus's current tree and also available at: bk://kernel.bkbits.net/davem/net-2.6 The quick summary is: diff1) Smooth out TSO ack clocking by calling tcp_trim_head() at tcp_tso_ack() time and making tcp_trim_head() liberate socket send buffer space. diff2) URG fix in tcp_tso_ack() diff3) Add tcp_tso_win_divisor sysctl knob. diff4) Obey MSS in tso handling, shrink tcp_skb_cb Existing known problems requiring a fix in time for 2.6.9-final are: 1) Andi sees performance anomaly to 2.6.5 kernels. Hopefully fixed by diff3 above, merely awaiting retesting by him. 2) John Heffner sees some kind of weird transfer hang, down/up'ing the interface makes transfer finish successfully. He has told me he will spend some time this weekend trying to debug it. Future enhancements which are not as critical as the above: 1) Handle SACK tagging of TSO frames... somehow. I don't have any brilliant ideas currently. We could use bits, to represent sub-TSO SACK regions. This would impose a hard limit of something like 32 for the maximum TSO factor. Another idea is to resegment a TSO frame when SACKs cover portions. This approach is my least favorite because SACKs can be common in the presence of even minor packet reordering. So we'd be splitting up + copying a lot. 2) Leave TSO enabled even during loss events. #1 is pretty much a prerequisite for #2 If we don't do #1 first, most SACKs get entirely ignored. 3) Fix up the packet counting once we have sub-TSO SACK tagging in place. Ok that's enough TSO hacking for me today.
|<Prev in Thread]||Current Thread||[Next in Thread>|