All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dave Taht <dave.taht@gmail.com>
To: "Toke Høiland-Jørgensen" <toke@toke.dk>
Cc: Johannes Berg <johannes@sipsolutions.net>,
	grundler@google.com, wgong@qti.qualcomm.com,
	wgong@codeaurora.org, ath10k <ath10k@lists.infradead.org>,
	linux-wireless <linux-wireless@vger.kernel.org>
Subject: Re: [PATCH v2 2/2] ath10k: Set sk_pacing_shift to 6 for 11AC WiFi chips
Date: Mon, 3 Sep 2018 07:57:45 -0700	[thread overview]
Message-ID: <CAA93jw6MQD70XatAmjG-OwVa_Rn5Ey-5Ni22iTCPARaH+KjnJA@mail.gmail.com> (raw)
In-Reply-To: <878t4i1z74.fsf@toke.dk>

I have not been on this thread (I have had to shut down my wifi lab
and am not planning on doing any more wifi work in the future). But
for what it's worth:

* tcp_pacing_shift affects the performance of the tcp stack only. I
think 16ms is an outrageous amount, and I'm thinking we actually have
a problem on the other side of the link in getting acks out as I
write. That said,
I don't care all that much compared to the bad old days (
http://blog.cerowrt.org/tags/wifi ) and 16ms
is far better than the seconds it used to be.

That said, I'd rather appreciate a test on HT20 with the same chipset
at a lower rate. The hope was that
we'd achieve flat latency at every rate (see
http://blog.cerowrt.org/post/real_results/ for some lovely pics)

Flent can sample minstrel stats but I think we're SOL on the ath10k.

* The irtt test can measure one way delays pretty accurately so you
can see if the other side is actually the source of this issue.

* Not clear to me if the AP is also running the fq_codel for wifi
code? That, um, er, helps an AP enormously....

* Having an aircap and regular capture of what's going on during these
tests would be useful. Flent is a great test driver, but a tcpdump
taken during a flent test tells the truth via tcptrace and xplot.org.
We can inspect cwnd, rwnd, and look at drops. (actually I usually turn
ECN on so I can see when the codel algorithm is kicking in). Being
able to zoom in on the early ramp would be helpful. Etc.

I'll take a look at them if you'll supply them.

* At some point the ath10k driver also gained NAPI support. (?) I
don't think NAPI is a good fit for wifi. Delays in TCP RX processing
lead to less throughput.

* The firmware is perpetually trying to do more stuff with less
interrupts. Me, I dreamed of a register you could poll for "when will
the air be clear", and a "tx has one ms left to go, give me some more
data" interrupt. The fact we still have a minimum of ~12ms of
uncontrolled buffering bugs me. If we could just hold off submittal
until just before it was needed, we could cut it in half (and further,
by 10s of ms, when the media is contended).

* My general recomendation for contended APs was that they advertise a
reduced TXOP as the number of active stations go up. (this also
applies to the VI/VO queues). Never got around to algorizing it... I
gave up on my links and, disable VO/VI/BK entirely and just tell
hostapd to advertise 2ms. Yep, kills conventional measures of
throughput. Cuts inter-station service time by 2/3s though, and *that*
you can notice and measure with PLT benchmarks and overall feel.

This implies increasing the pacing shift to suit the advertised size
of the txop, not decreasing it - and I have no idea how to get that
from one place to another. Same goes for stuff destined for the VI/VO
queues.

* (also it would be good to see in the capture what the beacon says)

* Powersave has always been a problem...

* Cubic is a terrible tcp for wifi. BBR, however, is possibly worse...
or better. It would be educational to try running BBR on this link at
either shift setting. (seriously!) TCP is not TCP is not TCP....

Lastly... tcp_pacing_shift does not affect the number of other packets
that can get into a given txop given the other buffering - it's one in
the hardware, one ready to go, one being formed, try setting
pacing_shift to to 4 to see what happens....

WARNING: multiple messages have this Message-ID (diff)
From: Dave Taht <dave.taht@gmail.com>
To: "Toke Høiland-Jørgensen" <toke@toke.dk>
Cc: wgong@qti.qualcomm.com,
	linux-wireless <linux-wireless@vger.kernel.org>,
	ath10k <ath10k@lists.infradead.org>,
	grundler@google.com, wgong@codeaurora.org,
	Johannes Berg <johannes@sipsolutions.net>
Subject: Re: [PATCH v2 2/2] ath10k: Set sk_pacing_shift to 6 for 11AC WiFi chips
Date: Mon, 3 Sep 2018 07:57:45 -0700	[thread overview]
Message-ID: <CAA93jw6MQD70XatAmjG-OwVa_Rn5Ey-5Ni22iTCPARaH+KjnJA@mail.gmail.com> (raw)
In-Reply-To: <878t4i1z74.fsf@toke.dk>

I have not been on this thread (I have had to shut down my wifi lab
and am not planning on doing any more wifi work in the future). But
for what it's worth:

* tcp_pacing_shift affects the performance of the tcp stack only. I
think 16ms is an outrageous amount, and I'm thinking we actually have
a problem on the other side of the link in getting acks out as I
write. That said,
I don't care all that much compared to the bad old days (
http://blog.cerowrt.org/tags/wifi ) and 16ms
is far better than the seconds it used to be.

That said, I'd rather appreciate a test on HT20 with the same chipset
at a lower rate. The hope was that
we'd achieve flat latency at every rate (see
http://blog.cerowrt.org/post/real_results/ for some lovely pics)

Flent can sample minstrel stats but I think we're SOL on the ath10k.

* The irtt test can measure one way delays pretty accurately so you
can see if the other side is actually the source of this issue.

* Not clear to me if the AP is also running the fq_codel for wifi
code? That, um, er, helps an AP enormously....

* Having an aircap and regular capture of what's going on during these
tests would be useful. Flent is a great test driver, but a tcpdump
taken during a flent test tells the truth via tcptrace and xplot.org.
We can inspect cwnd, rwnd, and look at drops. (actually I usually turn
ECN on so I can see when the codel algorithm is kicking in). Being
able to zoom in on the early ramp would be helpful. Etc.

I'll take a look at them if you'll supply them.

* At some point the ath10k driver also gained NAPI support. (?) I
don't think NAPI is a good fit for wifi. Delays in TCP RX processing
lead to less throughput.

* The firmware is perpetually trying to do more stuff with less
interrupts. Me, I dreamed of a register you could poll for "when will
the air be clear", and a "tx has one ms left to go, give me some more
data" interrupt. The fact we still have a minimum of ~12ms of
uncontrolled buffering bugs me. If we could just hold off submittal
until just before it was needed, we could cut it in half (and further,
by 10s of ms, when the media is contended).

* My general recomendation for contended APs was that they advertise a
reduced TXOP as the number of active stations go up. (this also
applies to the VI/VO queues). Never got around to algorizing it... I
gave up on my links and, disable VO/VI/BK entirely and just tell
hostapd to advertise 2ms. Yep, kills conventional measures of
throughput. Cuts inter-station service time by 2/3s though, and *that*
you can notice and measure with PLT benchmarks and overall feel.

This implies increasing the pacing shift to suit the advertised size
of the txop, not decreasing it - and I have no idea how to get that
from one place to another. Same goes for stuff destined for the VI/VO
queues.

* (also it would be good to see in the capture what the beacon says)

* Powersave has always been a problem...

* Cubic is a terrible tcp for wifi. BBR, however, is possibly worse...
or better. It would be educational to try running BBR on this link at
either shift setting. (seriously!) TCP is not TCP is not TCP....

Lastly... tcp_pacing_shift does not affect the number of other packets
that can get into a given txop given the other buffering - it's one in
the hardware, one ready to go, one being formed, try setting
pacing_shift to to 4 to see what happens....

_______________________________________________
ath10k mailing list
ath10k@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/ath10k

  reply	other threads:[~2018-09-03 19:18 UTC|newest]

Thread overview: 97+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-08-08 10:40 [PATCH v2 0/2] Change sk_pacing_shift in ieee80211_hw for best tx throughput Wen Gong
2018-08-08 10:40 ` Wen Gong
2018-08-08 10:40 ` [PATCH v2 1/2] mac80211: Change sk_pacing_shift saved to ieee80211_hw Wen Gong
2018-08-08 10:40   ` Wen Gong
2018-08-08 10:40 ` [PATCH v2 2/2] ath10k: Set sk_pacing_shift to 6 for 11AC WiFi chips Wen Gong
2018-08-08 10:40   ` Wen Gong
2018-08-08 10:43   ` Toke Høiland-Jørgensen
2018-08-08 10:43     ` Toke Høiland-Jørgensen
2018-08-10  8:05     ` Wen Gong
2018-08-10  8:05       ` Wen Gong
2018-08-10 13:17       ` Toke Høiland-Jørgensen
2018-08-10 13:17         ` Toke Høiland-Jørgensen
2018-08-13  5:37         ` Wen Gong
2018-08-13  5:37           ` Wen Gong
2018-08-13 11:18           ` Toke Høiland-Jørgensen
2018-08-13 11:18             ` Toke Høiland-Jørgensen
2018-08-14  5:55             ` Wen Gong
2018-08-14  5:55               ` Wen Gong
2018-08-17 11:32               ` Toke Høiland-Jørgensen
2018-08-17 11:32                 ` Toke Høiland-Jørgensen
2018-08-30 23:25                 ` Peter Oh
2018-08-30 23:25                   ` Peter Oh
2018-08-31 15:36                   ` Toke Høiland-Jørgensen
2018-08-31 15:36                     ` Toke Høiland-Jørgensen
2018-08-30 23:32           ` Grant Grundler
2018-09-03  9:38             ` Johannes Berg
2018-09-03  9:38               ` Johannes Berg
2018-09-03 11:11               ` Toke Høiland-Jørgensen
2018-09-03 11:11                 ` Toke Høiland-Jørgensen
2018-09-03 11:47                 ` Johannes Berg
2018-09-03 11:47                   ` Johannes Berg
2018-09-03 13:35                   ` Toke Høiland-Jørgensen
2018-09-03 13:35                     ` Toke Høiland-Jørgensen
2018-09-03 14:57                     ` Dave Taht [this message]
2018-09-03 14:57                       ` Dave Taht
2018-09-03 15:35                       ` Dave Taht
2018-09-03 15:35                         ` Dave Taht
2018-09-04 23:43                     ` Grant Grundler
2018-09-04 23:43                       ` Grant Grundler
2018-09-05  7:23                       ` Wen Gong
2018-09-05  7:23                         ` Wen Gong
2018-09-06 10:18                       ` Toke Høiland-Jørgensen
2018-09-06 10:18                         ` Toke Høiland-Jørgensen
2019-02-20 19:15                         ` Grant Grundler
2019-02-20 19:15                           ` Grant Grundler
2019-02-21  4:39                           ` Kalle Valo
2019-02-21  4:39                             ` Kalle Valo
2019-02-21 15:42                           ` Toke Høiland-Jørgensen
2019-02-21 15:42                             ` Toke Høiland-Jørgensen
2019-02-21 16:10                             ` Kalle Valo
2019-02-21 16:10                               ` Kalle Valo
2019-02-21 16:22                               ` Ben Greear
2019-02-21 16:22                                 ` Ben Greear
2019-02-21 16:37                                 ` Toke Høiland-Jørgensen
2019-02-21 16:37                                   ` Toke Høiland-Jørgensen
2019-02-21 16:57                                   ` Ben Greear
2019-02-21 16:57                                     ` Ben Greear
2019-02-21 17:15                                     ` Toke Høiland-Jørgensen
2019-02-21 17:15                                       ` Toke Høiland-Jørgensen
2019-02-21 17:29                                       ` [PATCH] mac80211: Change default tx_sk_pacing_shift to 7 Toke Høiland-Jørgensen
2019-02-21 17:29                                         ` Toke Høiland-Jørgensen
2019-02-22 12:29                                         ` Johannes Berg
2019-02-22 13:06                                           ` Toke Høiland-Jørgensen
2019-02-22 13:06                                             ` Toke Høiland-Jørgensen
2019-02-22 13:07                                             ` Johannes Berg
2019-02-22 13:07                                               ` Johannes Berg
2019-02-22 13:40                                               ` Toke Høiland-Jørgensen
2019-02-22 13:40                                                 ` Toke Høiland-Jørgensen
2019-02-22 19:10                                                 ` Johannes Berg
2019-02-22 19:10                                                   ` Johannes Berg
2019-02-23 11:49                                                   ` Toke Høiland-Jørgensen
2019-02-23 11:49                                                     ` Toke Høiland-Jørgensen
2019-02-21 17:29                                       ` [PATCH v2 2/2] ath10k: Set sk_pacing_shift to 6 for 11AC WiFi chips Ben Greear
2019-02-21 17:29                                         ` Ben Greear
2019-02-21 22:50                                         ` Toke Høiland-Jørgensen
2019-02-21 22:50                                           ` Toke Høiland-Jørgensen
2019-02-21 16:28                               ` Toke Høiland-Jørgensen
2019-02-21 16:28                                 ` Toke Høiland-Jørgensen
2020-04-23  6:31   ` Kalle Valo
2020-04-23  6:31   ` Kalle Valo
2018-08-08 19:00 ` [PATCH v2 0/2] Change sk_pacing_shift in ieee80211_hw for best tx throughput Peter Oh
2018-08-08 19:00   ` Peter Oh
2018-08-09  9:32   ` Arend van Spriel
2018-08-09  9:32     ` Arend van Spriel
2018-08-10 13:20     ` Toke Høiland-Jørgensen
2018-08-10 13:20       ` Toke Høiland-Jørgensen
2018-08-10 19:28       ` Arend van Spriel
2018-08-10 19:28         ` Arend van Spriel
2018-08-10 19:52         ` Ben Greear
2018-08-10 19:52           ` Ben Greear
2018-08-11 19:21           ` Arend van Spriel
2018-08-11 19:21             ` Arend van Spriel
2018-08-20 12:46             ` Toke Høiland-Jørgensen
2018-08-20 12:46               ` Toke Høiland-Jørgensen
2018-08-20 15:14               ` Ben Greear
2018-08-20 15:14                 ` Ben Greear
2018-09-03 18:36 [PATCH v2 2/2] ath10k: Set sk_pacing_shift to 6 for 11AC WiFi chips Kan Yan

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=CAA93jw6MQD70XatAmjG-OwVa_Rn5Ey-5Ni22iTCPARaH+KjnJA@mail.gmail.com \
    --to=dave.taht@gmail.com \
    --cc=ath10k@lists.infradead.org \
    --cc=grundler@google.com \
    --cc=johannes@sipsolutions.net \
    --cc=linux-wireless@vger.kernel.org \
    --cc=toke@toke.dk \
    --cc=wgong@codeaurora.org \
    --cc=wgong@qti.qualcomm.com \
    /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.