Merge branch 'tcp-improving-RACK-cpu-performance'
authorDavid S. Miller <davem@davemloft.net>
Fri, 6 Oct 2017 04:24:48 +0000 (21:24 -0700)
committerDavid S. Miller <davem@davemloft.net>
Fri, 6 Oct 2017 04:24:48 +0000 (21:24 -0700)
commitcec451ce60e50dba6d4136b7d1e62a5900cd264f
treecb70c1552a2c58cc5b8f63bd8e85b7fdc3b33497
parentb1fb67fa501c4787035317f84db6caf013385581
parentbef06223083b81d2064824afe2bc85be416ab73a
Merge branch 'tcp-improving-RACK-cpu-performance'

Yuchung Cheng says:

====================
tcp: improving RACK cpu performance

This patch set improves the CPU consumption of the RACK TCP loss
recovery algorithm, in particular for high-speed networks. Currently,
for every ACK in recovery RACK can potentially iterate over all sent
packets in the write queue. On large BDP networks with non-trivial
losses the RACK write queue walk CPU usage becomes unreasonably high.

This patch introduces a new queue in TCP that keeps only skbs sent and
not yet (s)acked or marked lost, in time order instead of sequence
order.  With that, RACK can examine this time-sorted list and only
check packets that were sent recently, within the reordering window,
per ACK. This is the fastest way without any write queue walks. The
number of skbs examined per ACK is reduced by orders of magnitude.
====================

Signed-off-by: David S. Miller <davem@davemloft.net>