]> git.baikalelectronics.ru Git - kernel.git/commit
sis900: fix TX completion
authorSergej Benilov <sergej.benilov@googlemail.com>
Thu, 20 Jun 2019 09:02:18 +0000 (11:02 +0200)
committerDavid S. Miller <davem@davemloft.net>
Sat, 22 Jun 2019 23:46:32 +0000 (16:46 -0700)
commit86ad8ef26c61e8b7dc871674482521f10a872c2e
treec49fcde6e86125d1cfd1dc5cf0ca8459d1fcd2e8
parentc0e984cb5eebaaa868b65a66ba819e8b8301f7de
sis900: fix TX completion

Since commit f8ba1deffb799544fe6b15e6004b9d8ba0cb7bfe "tcp: refine TSO autosizing",
outbound throughput is dramatically reduced for some connections, as sis900
is doing TX completion within idle states only.

Make TX completion happen after every transmitted packet.

Test:
netperf

before patch:
> netperf -H remote -l -2000000 -- -s 1000000
MIGRATED TCP STREAM TEST from 0.0.0.0 () port 0 AF_INET to 95.223.112.76 () port 0 AF_INET : demo
Recv   Send    Send
Socket Socket  Message  Elapsed
Size   Size    Size     Time     Throughput
bytes  bytes   bytes    secs.    10^6bits/sec

 87380 327680 327680    253.44      0.06

after patch:
> netperf -H remote -l -10000000 -- -s 1000000
MIGRATED TCP STREAM TEST from 0.0.0.0 () port 0 AF_INET to 95.223.112.76 () port 0 AF_INET : demo
Recv   Send    Send
Socket Socket  Message  Elapsed
Size   Size    Size     Time     Throughput
bytes  bytes   bytes    secs.    10^6bits/sec

 87380 327680 327680    5.38       14.89

Thx to Dave Miller and Eric Dumazet for helpful hints

Signed-off-by: Sergej Benilov <sergej.benilov@googlemail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/sis/sis900.c