Subject: Re: TCP and BBR: reproducibly low cwnd and bandwidth

From: Eric Dumazet <[email-masked]>
Date: Sat, 17 Feb 2018 10:52:51 -0800

On Sat, 2018-02-17 at 11:01 +0100, Oleksandr Natalenko wrote:
> Hi.
> 
> On pátek 16. února 2018 23:59:52 CET Eric Dumazet wrote:
> > Well, no effect  here on e1000e (1 Gbit) at least
> > 
> > # ethtool -K eth3 sg off
> > Actual changes:
> > scatter-gather: off
> > tx-scatter-gather: off
> > tcp-segmentation-offload: off
> > tx-tcp-segmentation: off [requested on]
> > tx-tcp6-segmentation: off [requested on]
> > generic-segmentation-offload: off [requested on]
> > 
> > # tc qd replace dev eth3 root pfifo_fast
> > # ./super_netperf 1 -H 7.7.7.84 -- -K cubic
> >     941
> > # ./super_netperf 1 -H 7.7.7.84 -- -K bbr
> >     941
> > # tc qd replace dev eth3 root fq
> > # ./super_netperf 1 -H 7.7.7.84 -- -K cubic
> >     941
> > # ./super_netperf 1 -H 7.7.7.84 -- -K bbr
> >     941
> > # tc qd replace dev eth3 root fq_codel
> > # ./super_netperf 1 -H 7.7.7.84 -- -K cubic
> >     941
> > # ./super_netperf 1 -H 7.7.7.84 -- -K bbr
> >     941
> > #
> 
> That really looks strange to me. I'm able to reproduce the effect caused by 
> disabling scatter-gather even on the VM (using iperf3, as usual):

This must be some race condition in the code I added in TCP for self-
pacing, when a sort timeout is programmed.

Disabling SG means TCP cooks 1-MSS packets.

I will take a look, probably after the (long) week-end : Tuesday.

Thanks !