All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ben Greear <greearb@candelatech.com>
To: Eric Dumazet <edumazet@google.com>
Cc: netdev <netdev@vger.kernel.org>
Subject: Re: net: tso: add UDP segmentation support: adds regression for ax200 upload
Date: Thu, 17 Dec 2020 09:56:33 -0800	[thread overview]
Message-ID: <adbee2ec-c6ba-7a17-eb98-1c53365fa911@candelatech.com> (raw)
In-Reply-To: <CANn89iKpa1y2SKJuR9kRi=AZs94sj+-tzRs+2D0vmxh+ahEcGA@mail.gmail.com>

On 12/17/20 2:11 AM, Eric Dumazet wrote:
> On Thu, Dec 17, 2020 at 12:59 AM Ben Greear <greearb@candelatech.com> wrote:
>>
>> On 12/16/20 3:09 PM, Ben Greear wrote:
>>> Hello Eric,
>>>
>>> The patch below evidently causes TCP throughput to be about 50Mbps instead of 700Mbps
>>> when using ax200 to upload tcp traffic.
>>>
>>> When I disable TSO, performance goes back up to around 700Mbps.
>>
>> As a followup, when I revert the patch, upload speed goes to ~900Mbps,
>> so even better than just disabling TSO (I left TSO enabled after reverting the patch).
>>
>> Thanks,
>> Ben
>>
> 
> Thanks for the report !
> 
> It seems drivers/net/wireless/intel/iwlwifi/pcie/tx.c:iwl_fill_data_tbs_amsdu()
> calls tso_build_hdr() with extra bytes (SNAP header),
> it is not yet clear to me what is broken :/

Your patch is guessing tcp vs udp by looking at header length
from what I could tell.  So if something uses a different size,
it probably gets confused?

> 
> Can you confirm which driver is used for ax200 ?
> 
> I see tso_build_hdr() also being used from
> drivers/net/wireless/intel/iwlwifi/queue/tx.c

I tested against the un-modified ax200 5.10.0 kernel driver, and it has the issue.

The ax200 backports release/core56 driver acts a bit different (poorer performance over all than
in-kernel driver), but has similar upstream issues that are mitigated by
disabling TSO.

Thanks,
Ben

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

  reply	other threads:[~2020-12-17 17:57 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-12-16 23:09 net: tso: add UDP segmentation support: adds regression for ax200 upload Ben Greear
2020-12-16 23:59 ` Ben Greear
2020-12-17 10:11   ` Eric Dumazet
2020-12-17 17:56     ` Ben Greear [this message]
2020-12-17 18:07       ` Eric Dumazet
2020-12-17 18:13         ` Ben Greear
2020-12-17 18:20           ` Eric Dumazet
2020-12-17 20:40             ` Ben Greear
2020-12-18 20:16               ` Jakub Kicinski
2020-12-19 15:18                 ` Johannes Berg
2020-12-19 16:55                   ` Ben Greear
2020-12-21 18:46                     ` Eric Dumazet
2020-12-21 18:54                       ` Jakub Kicinski
2020-12-21 19:04                       ` Eric Dumazet
2020-12-21 19:14                         ` Eric Dumazet
2020-12-21 20:01                           ` Rainer Suhm
2020-12-24 17:48                             ` Ben Greear
2021-01-19  8:53                           ` Johannes Berg
2021-01-19 10:02                             ` Eric Dumazet
2021-01-25 14:57                               ` Johannes Berg
2021-01-25 14:58                                 ` Eric Dumazet

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=adbee2ec-c6ba-7a17-eb98-1c53365fa911@candelatech.com \
    --to=greearb@candelatech.com \
    --cc=edumazet@google.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.