All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ben Greear <greearb@candelatech.com>
To: Eric Dumazet <eric.dumazet@gmail.com>
Cc: "netdev@vger.kernel.org" <netdev@vger.kernel.org>
Subject: Re: Make TCP work better with re-ordered frames?
Date: Wed, 18 May 2016 08:46:10 -0700	[thread overview]
Message-ID: <573C8E42.8090102@candelatech.com> (raw)
In-Reply-To: <1463585133.18194.119.camel@edumazet-glaptop3.roam.corp.google.com>

On 05/18/2016 08:25 AM, Eric Dumazet wrote:
> On Wed, 2016-05-18 at 08:07 -0700, Ben Greear wrote:
>>
>> On 05/18/2016 07:29 AM, Eric Dumazet wrote:
>>> On Wed, 2016-05-18 at 07:00 -0700, Ben Greear wrote:
>>>> We are investigating a system that has fairly poor TCP throughput
>>>> with the 3.17 and 4.0 kernels, but evidently it worked pretty well
>>>> with 3.14 (I should be able to verify 3.14 later today).
>>>>
>>>> One thing I notice is that a UDP download test shows lots of reordered
>>>> frames, so I am thinking maybe TCP is running slow because of this.
>>>>
>>>> (We see about 800Mbps UDP download, but only 500Mbps TCP, even when
>>>>     using 100 concurrent TCP streams.)
>>>>
>>>> Is there some way to tune the TCP stack to better handle reordered frames?
>>>
>>> Nothing yet. Are you the sender or the receiver ?
>>>
>>> You really want to avoid reorders as much as possible.
>>>
>>> Are you telling us something broke in networking layers between 3.14 and
>>> 3.17 leadings to reorders ?
>>
>> I am both sender and receiver, through an access-controller and wifi AP as DUT.
>> The sender is Intel 1G NIC, so I suspect it is not causing reordering, which
>> indicates most likely DUT is to blame.
>>
>> Using several off-the-shelf APs in our lab we do not see this problem.
>>
>> I am not certain yet what is the difference, but customer reports 600+Mbps
>> with their older code, and best I can get is around 500Mbps with newer stuff.
>>
>> Lots of stuff changed though (ath10k firmware, user-space at least slightly,
>> kernel, etc), so possibly the regression is elsewhere.
>>
>
> You possibly could send me some pcap (limited to the headers, using -s
> 128 for example) and limited to few flows, not the whole of them ;)
>
> TCP reorders are tricky for the receiver : It sends a lot of SACK (one
> for every incoming packet, instead of the normal rule of sending one ACK
> for two incoming packets)
>
> Increasing number of ACK might impact half-duplex networks, but also
> considerably increase cpu processing time.

I will work on captures...do you care if it is from transmitter or receiver's perspective?

Thanks,
Ben

>
>
>


-- 
Ben Greear <greearb@candelatech.com>
Candela Technologies Inc  http://www.candelatech.com

  reply	other threads:[~2016-05-18 15:46 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-05-18 14:00 Make TCP work better with re-ordered frames? Ben Greear
2016-05-18 14:29 ` Eric Dumazet
2016-05-18 15:07   ` Ben Greear
2016-05-18 15:25     ` Eric Dumazet
2016-05-18 15:46       ` Ben Greear [this message]
2016-05-18 16:02         ` Eric Dumazet
2016-05-18 18:17           ` Yuchung Cheng

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=573C8E42.8090102@candelatech.com \
    --to=greearb@candelatech.com \
    --cc=eric.dumazet@gmail.com \
    --cc=netdev@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.