• Sergej Benilov's avatar
    sis900: fix TX completion · d2bbc75a
    Sergej Benilov authored
    [ Upstream commit 8ac8a01092b2added0749ef937037bf1912e13e3 ]
    
    Since commit 605ad7f1 "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: default avatarSergej Benilov <sergej.benilov@googlemail.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
    d2bbc75a
sis900.c 72.4 KB