netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Sujith Manoharan <sujith@msujith.org>
To: Eric Dumazet <eric.dumazet@gmail.com>
Cc: netdev@vger.kernel.org
Subject: Re: TCP performance regression
Date: Mon, 11 Nov 2013 13:49:27 +0530	[thread overview]
Message-ID: <21120.37647.979237.40802@gargle.gargle.HOWL> (raw)
In-Reply-To: <1384152853.16391.19.camel@edumazet-glaptop2.roam.corp.google.com>

Eric Dumazet wrote:
> Hmm... apparently ath9k uses :
> 
> #define ATH_AMPDU_LIMIT_MAX        (64 * 1024 - 1)

This is the maximum AMPDU size, specified in the
802.11 standard.

> And mentions a 4ms time frame :
> 
> max_4ms_framelen = ATH_AMPDU_LIMIT_MAX;

The 4ms limitation is a FCC limitation and is used
for regulatory compliance.

> So prior to "tcp: TSQ can use a dynamic limit", the ~128KB bytes TCP
> could queue per TCP socket on qdisc/NIC would happen to please ath9k

Ok.

> ath9k can set rts_aggr_limit to 8*1024 :
> 
>  if (AR_SREV_9160_10_OR_LATER(ah) || AR_SREV_9100(ah))
>   pCap->rts_aggr_limit = ATH_AMPDU_LIMIT_MAX; 
>  else
>   pCap->rts_aggr_limit = (8 * 1024);

The RTS limit is required for some old chips which had HW bugs and
the above code is a workaround.

> A timer would be definitely needed, and it should be rather small (1 or
> 2 ms)
> 
> If TCP socket is application limited, it seems ath9k can delay the last
> block by a too long time.

I am not really clear on how this regression can be fixed in the driver
since the majority of the transmission/aggregation logic is present in the
TX completion path.

Sujith

  reply	other threads:[~2013-11-11  8:23 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-11-11  5:30 TCP performance regression Sujith Manoharan
2013-11-11  5:55 ` Eric Dumazet
2013-11-11  6:07   ` Sujith Manoharan
2013-11-11  6:54     ` Eric Dumazet
2013-11-11  8:19       ` Sujith Manoharan [this message]
2013-11-11 14:27         ` Eric Dumazet
2013-11-11 14:39           ` Eric Dumazet
2013-11-11 16:44             ` Eric Dumazet
2013-11-11 15:05           ` David Laight
2013-11-11 15:29             ` Eric Dumazet
2013-11-11 15:43               ` David Laight
2013-11-11 16:17                 ` Eric Dumazet
2013-11-11 16:35                   ` David Laight
2013-11-11 17:41                     ` Eric Dumazet
2013-11-12  7:42                     ` Willy Tarreau
2013-11-12 14:16                       ` Eric Dumazet
2013-11-14  9:54                       ` Dave Taht
2013-11-11 16:13           ` Sujith Manoharan
2013-11-11 16:38             ` Felix Fietkau
2013-11-11 17:38               ` Eric Dumazet
2013-11-11 17:44                 ` Felix Fietkau
2013-11-11 18:03                 ` Dave Taht
2013-11-11 18:29                   ` Sujith Manoharan
2013-11-11 18:31                   ` Dave Taht
2013-11-11 19:11                     ` Ben Greear
2013-11-11 19:24                       ` Dave Taht

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=21120.37647.979237.40802@gargle.gargle.HOWL \
    --to=sujith@msujith.org \
    --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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).