All of lore.kernel.org
 help / color / mirror / Atom feed
* Throughput regression with `tcp: refine TSO autosizing`
@ 2015-01-29 11:48 Michal Kazior
  2015-01-29 13:14 ` Eric Dumazet
  0 siblings, 1 reply; 107+ messages in thread
From: Michal Kazior @ 2015-01-29 11:48 UTC (permalink / raw)
  To: eric.dumazet; +Cc: linux-wireless, Network Development, eyalpe

Hi,

I'm not subscribed to netdev list and I can't find the message-id so I
can't reply directly to the original thread `BW regression after "tcp:
refine TSO autosizing"`.

I've noticed a big TCP performance drop with ath10k
(drivers/net/wireless/ath/ath10k) on 3.19-rc5. Instead of 500mbps I
get 250mbps in my testbed.

After bisecting I ended up at `tcp: refine TSO autosizing`. Reverting
`tcp: refine TSO autosizing` and `tcp: Do not apply TSO segment limit
to non-TSO packets` (for conflict free reverts) fixes the problem.

My testing setup is as follows:

 a) ath10k AP, github.com/kvalo/ath/tree/master 3.19-rc5, w/ reverts
 b) ath10k STA connected to (a), github.com/kvalo/ath/tree/master
3.19-rc5, w/ reverts
 c) (b) w/o reverts

Devices are 3x3 (AP) and 2x2 (Client) and are RF cabled. 11ac@80MHz
2x2 has 866mbps modulation rate. In practice this should deliver
~700mbps of real UDP traffic.

Here are some numbers:

UDP: (b) -> (a): 672mbps
UDP: (a) -> (b): 687mbps
TCP: (b) -> (a): 526mbps
TCP: (a) -> (b): 500mbps

UDP: (c) -> (a): 669mbps*
UDP: (a) -> (c): 689mbps*
TCP: (c) -> (a): 240mbps**
TCP: (a) -> (c): 490mbps*

* no changes/within error margin
** the performance drop

I'm using iperf:
  UDP: iperf -i1 -s -u vs iperf -i1 -c XX -u -B 200M -P5 -t 20
  TCP: iperf -i1 -s vs iperf -i1 -c XX -P5 -t 20

Result values were obtained at the receiver side.

Iperf reports a few frames lost and out-of-order at each UDP test
start (during first second) but later has no packet loss and no
out-of-order. This shouldn't have any effect on a TCP session, right?

The device delivers batched up tx/rx completions (no way to change
that). I suppose this could be an issue for timing sensitive
algorithms. Also keep in mind 802.11n and 802.11ac devices have frame
aggregation windows so there's an inherent extra (and non-uniform)
latency when compared to, e.g. ethernet devices.

The driver doesn't have GRO. I have an internal patch which implements
it. It improves overall TCP traffic (more stable, up to 600mbps TCP
which is ~100mbps more than without GRO) but the TCP: (c) -> (a)
performance drop remains unaffected regardless.

I've tried applying stretch ACK patchset (v2) on both machines and
re-run the above tests. I got no measurable difference in performance.

I've also run these tests with iwlwifi 7260 (also a 2x2) as (b) and
(c). It didn't seem to be affected by the TSO patch at all (it runs at
~360mbps of TCP regardless of the TSO patch).

Any hints/ideas?


Michał

^ permalink raw reply	[flat|nested] 107+ messages in thread

end of thread, other threads:[~2015-03-31 11:08 UTC | newest]

Thread overview: 107+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-01-29 11:48 Throughput regression with `tcp: refine TSO autosizing` Michal Kazior
2015-01-29 13:14 ` Eric Dumazet
2015-01-30 10:29   ` Arend van Spriel
2015-01-30 13:19     ` Eric Dumazet
2015-01-30 13:19       ` Eric Dumazet
2015-01-30 13:47       ` Arend van Spriel
2015-01-30 14:37         ` Eric Dumazet
     [not found]         ` <CAA93jw5fqhz0Hiw74L2GXgtZ9JsMg+NtYydKxKzGDrvQcZn4hA@mail.gmail.com>
     [not found]           ` <CAA93jw7b0E9jjQYXrEPzjLLC9j8xNC0TFYXpWVtgFameJaNBdw@mail.gmail.com>
     [not found]             ` <1422741065.199624134@apps.rackspace.com>
     [not found]               ` <CAPp0ZBb2nkA6Y0s=W0kw=zvyn0wi0NMBRsBCw_xcD61ScOmgQg@mail.gmail.com>
     [not found]                 ` <CAA_e5Z46Bu+zZZFzf_ejzA35Gw3g1_OG85yv6yd7MpbwZcE-nw@mail.gmail.com>
2015-02-01  8:45                   ` Fwd: " Dave Taht
2015-02-01 10:47                     ` Jonathan Morton
2015-02-01 14:43                       ` dpreed
2015-02-01 23:34                         ` Andrew McGregor
2015-02-02  4:04                           ` [Cerowrt-devel] " Avery Pennarun
2015-02-02  4:04                             ` Avery Pennarun
2015-02-02 15:25                             ` Jim Gettys
2015-02-02  4:21                         ` Avery Pennarun
2015-02-02  7:07                           ` David Lang
2015-02-02  7:07                             ` David Lang
2015-01-30 13:39   ` Michal Kazior
2015-01-30 13:39     ` Michal Kazior
2015-01-30 14:40     ` Eric Dumazet
2015-01-30 14:40       ` Eric Dumazet
2015-02-02 10:27       ` Michal Kazior
2015-02-02 10:27         ` Michal Kazior
2015-02-02 18:52         ` Eric Dumazet
2015-02-02 21:25           ` Ben Greear
2015-02-02 23:06             ` Eric Dumazet
2015-02-02 23:06               ` Eric Dumazet
2015-02-03  9:00               ` Michal Kazior
2015-02-03  9:00                 ` Michal Kazior
2015-02-03  1:18           ` Eric Dumazet
2015-02-03  1:18             ` Eric Dumazet
2015-02-03 11:50             ` Michal Kazior
2015-02-03 14:27               ` Eric Dumazet
2015-02-03 14:27                 ` Eric Dumazet
2015-02-03 15:03                 ` Eric Dumazet
2015-02-03 15:03                   ` Eric Dumazet
2015-02-04 11:35                 ` Michal Kazior
2015-02-04 11:57                   ` Eric Dumazet
2015-02-04 11:57                     ` Eric Dumazet
2015-02-04 12:22                     ` Michal Kazior
2015-02-04 12:38                       ` Eric Dumazet
2015-02-04 12:53                         ` Michal Kazior
2015-02-04 12:55                           ` Johannes Berg
2015-02-04 13:16                           ` Eric Dumazet
2015-02-04 13:29                             ` Eric Dumazet
2015-02-04 21:11                               ` Eric Dumazet
2015-02-04 21:11                                 ` Eric Dumazet
2015-02-05  6:46                                 ` Michal Kazior
2015-02-05  6:46                                   ` Michal Kazior
2015-02-05 13:03                                   ` Eric Dumazet
2015-02-05 13:03                                     ` Eric Dumazet
2015-02-05  8:38                                 ` Michal Kazior
2015-02-05 12:57                                   ` Eric Dumazet
2015-02-05 13:19                                     ` Eric Dumazet
2015-02-05 13:33                                       ` Eric Dumazet
2015-02-05 13:33                                         ` Eric Dumazet
2015-02-05 13:44                                       ` Michal Kazior
2015-02-05 14:41                                         ` Eric Dumazet
2015-02-05 14:41                                           ` Eric Dumazet
2015-02-05 17:10                                           ` Eric Dumazet
2015-02-06  9:42                                             ` Michal Kazior
2015-02-06 13:40                                               ` Eric Dumazet
2015-02-06 13:40                                                 ` Eric Dumazet
2015-02-06 13:53                                                 ` Eric Dumazet
2015-02-06 13:53                                                   ` Eric Dumazet
2015-02-06 14:09                                                   ` Michal Kazior
2015-02-09 13:47                                                     ` Michal Kazior
2015-02-09 15:11                                                       ` Eric Dumazet
2015-02-10 10:33                                                         ` Michal Kazior
2015-02-10 12:54                                                           ` Eric Dumazet
2015-02-10 13:05                                                             ` Eric Dumazet
2015-02-10 13:14                                                           ` Eric Dumazet
2015-02-11  8:33                                                             ` Michal Kazior
2015-02-11 13:17                                                               ` Eric Dumazet
2015-02-11 13:17                                                                 ` Eric Dumazet
2015-02-12  7:16                                                                 ` Michal Kazior
2015-02-12  7:16                                                                   ` Michal Kazior
2015-02-10 14:19                                                           ` Johannes Berg
2015-02-10 15:09                                                             ` Eric Dumazet
2015-02-11  8:57                                                             ` Michal Kazior
2015-02-11  8:57                                                               ` Michal Kazior
2015-02-12  7:48                                                               ` Michal Kazior
2015-02-12  8:33                                                                 ` Dave Taht
2015-02-24 10:24                                                                 ` Johannes Berg
2015-02-24 10:24                                                                   ` Johannes Berg
2015-02-24 10:30                                                                   ` Johannes Berg
2015-02-24 10:59                                                                     ` Johannes Berg
2015-03-31 11:08                                                         ` Johannes Berg
2015-02-06 14:10                                                   ` Eric Dumazet
2015-02-06 14:31                                                     ` David Laight
2015-02-06 14:31                                                       ` David Laight
2015-02-06 15:02                                                       ` Eric Dumazet
2015-02-06 15:02                                                         ` Eric Dumazet
2015-02-06 14:08                                                 ` Michal Kazior
2015-02-06 14:08                                                   ` Michal Kazior
2015-02-06 14:35                                                   ` Eric Dumazet
2015-02-06 14:35                                                     ` Eric Dumazet
2015-02-06 17:48                                                     ` Rick Jones
2015-02-06 17:48                                                       ` Rick Jones
2015-02-05 14:48                                         ` Eric Dumazet
2015-02-05 14:48                                           ` Eric Dumazet
2015-02-06  9:39                                           ` Nicolas Cavallari
2015-02-06  9:39                                             ` Nicolas Cavallari
2015-02-05 19:50                                         ` Dave Taht
2015-02-06  9:57                                           ` Michal Kazior
2015-02-06  9:57                                             ` Michal Kazior
2015-02-03  8:44           ` Michal Kazior

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.