On 9.5.2023. 9:56, Alexander Bluhm wrote:
> On Sun, May 07, 2023 at 09:00:31PM +0200, Alexander Bluhm wrote:
>> Not sure if I addressed all corner cases already. I think IPsec
>> is missing.
> Updated diff:
> - parts have been commited
> - works with IPsec now
> - some bugs fixed
> - sysctl net.inet.tcp.tso
> - netstat TSO counter
>
> If you test this, recompile sysctl and netstat with new kernel
> headers. Then you can see, whether the diff has an effect on your
> setup.
>
> # netstat -s -p tcp | grep TSO
> 79 output TSO packets software chopped
> 0 output TSO packets hardware processed
> 840 output TSO packets generated
> 0 output TSO packets dropped
>
> If you run into problems, disable the feature, and report if the
> problem goes away. This helps to locate the bug.
>
> # sysctl net.inet.tcp.tso=0
> net.inet.tcp.tso: 1 -> 0
>
> I would like to keep the sysctl for now. It makes performance
> comparison easier. When we add hardware TSO it can be a quick
> workaround for driver problems.
>
> When this has been tested a bit, I think it is ready for commit.
> Remaining issues can be handled in tree. My tests pass, I am not
> aware of TCP problems.
Hi,
I've tested this with few iperf3/tcpbench clients. While generating
traffic disabling and enabling net.inet.tcp.tso and the difference in
performance compared to hw TSO is small, but visible ...
netstat -s -p tcp | grep TSO
61559792 output TSO packets software chopped
0 output TSO packets hardware processed
685352918 output TSO packets generated
0 output TSO packets dropped
PID TID PRI NICE SIZE RES STATE WAIT TIME CPU COMMAND
79516 543359 59 0 0K 1384K onproc/0 - 11:35 42.68% softnet
50096 165854 10 0 5432K 7400K sleep/1 netlock 7:16 38.92% iperf3
60190 204914 10 0 5440K 7316K sleep/2 netlock 7:03 37.89% iperf3
72560 588715 10 0 5428K 7408K sleep/3 netlock 7:17 37.16% iperf3
30689 450329 10 0 5436K 7424K sleep/1 netlock 7:16 37.06% iperf3
66203 324544 10 0 5440K 7352K sleep/3 netlock 4:30 29.83% iperf3
88977 447186 10 0 5432K 7376K sleep/5 netlock 4:34 29.74% iperf3
6101 488471 10 0 5444K 7412K sleep/5 netlock 4:34 28.76% iperf3
2186 575957 10 0 5436K 7376K sleep/2 netlock 4:32 28.12% iperf3
77920 442144 10 0 0K 1384K sleep/1 bored 7:00 22.27% softnet
48409 243224 14 0 0K 1384K sleep/2 netlock 6:29 21.14% softnet
91863 516055 10 0 0K 1384K sleep/4 bored 6:09 21.09% softnet
67265 156637 -22 0 0K 1384K run/0 - 0:17 0.10%
softclock