Linux wireless drivers development
 help / color / mirror / Atom feed
From: petrosilius <petrosilius@posteo.de>
To: Koen Vandeputte <koen.vandeputte@citymesh.com>,
	linux-wireless@vger.kernel.org
Subject: Re: [Bugreport] ath9k dynack not working/low performance on 5 & 10MHz Bandwidth
Date: Tue,  9 Nov 2021 11:55:51 +0000	[thread overview]
Message-ID: <79ae2f1b-66cb-9182-a639-8fbb6f1fabd9@posteo.de> (raw)
In-Reply-To: <a7e37fa2-5fe7-6a39-d72d-9e3723540331@citymesh.com>

Hi Koen,

did you find time to look further into this?

regards,

julian

On 13.07.21 16:34, Koen Vandeputte wrote:
>
> On 22.06.21 20:54, Petrosilius wrote:
>> On 22.06.21 14:03, Koen Vandeputte wrote:
>>> Thanks for confirming that.
>>>
>>> What would really help is a small table showing this:
>>>
>>> Real physical distance? (in m)
>>> ack_to reported while stressing the link:
>>>
>>> 20MHz: xx
>>> 10 MHz: yy
>>> 5 MHz: zz
>>>
>>> I'll try to simulate the issue somewhere in the next days.
>>>
>>>
>>> Please do note that ongoing effort is currently going on to improve
>>> dynack on lower distances.
>>>
>>> It was observed and reported by me to Lorenzo that ack_to was way
>>> higher than fixed settings when
>>> real distance is <6km
>>>
>>> Some testing patches were cooked and tested in the field last month
>>> covering long and short distances (1km up to 24km)
>>> and these are matching fixed distance ack_to very close now. (speeds
>>> using dynack were also higher than fixed settings)
>>> It's not finalized yet.
>>>
>>> Also do note that dynack only shows (any) benefit when having links 
>>> >3km
>>> Below that, timing jitter and processing time seems to have more
>>> influence on ack_to than actual distance.
>>>
>>> Regards,
>>>
>>> Koen
>>>
>> Here the testresults
>>
>> real physical distance: 1m
>>
>> BW: 20mhz
>> ackto: 50
>> iperf3
>> [ ID] Interval           Transfer     Bitrate         Retr
>> [  5]   0.00-10.00  sec  86.4 MBytes  72.4 Mbits/sec 0             
>> sender
>> [  5]   0.00-10.01  sec  86.0 MBytes  72.0 Mbits/sec
>> receiver
>>
>> BW: 5mhz
>> ackto: 50
>> iperf3
>> [ ID] Interval           Transfer     Bitrate         Retr
>> [  5]   0.00-10.01  sec  45.2 KBytes  37.0 Kbits/sec 14             
>> sender
>> [  5]   0.00-10.07  sec  5.66 KBytes  4.60 Kbits/sec
>> receiver
>>
>> BW: 10mhz
>> ackto: 50
>> iperf3
>> [ ID] Interval           Transfer     Bitrate         Retr
>> [  5]   0.00-10.00  sec   127 KBytes   104 Kbits/sec 30             
>> sender
>> [  5]   0.00-14.10  sec   107 KBytes  62.4 Kbits/sec
>> receiver
>>
>> Also longer iperf3 tests didnt change anything on this behaviour.
>>
>> After this test we were actually able to get the ack_to doing something
>> for 5mhz (ack_to 641 - ~12MBit iperf3) and 10mhz (ack_to 258 - ~14MBit
>> iperf3) by doing some random wifi-restarts (using openwrt 'wifi'
>> command) and reboots, but this is not really reproducible.
>>
>> We got the gutfeeling that there might be some issue reseting of the
>> dynack part when changing the bandwidths. This might explain, why for
>> the test above the ack_to doesnt change at all from the 50 of the 20Mhz
>> BW. Or is this normal behaviour that the ack_to doesnt change after a
>> bandwidth change?
>>
>> Another observation: Is it normal that 'iw dev' doesnt show 5 & 10 MHz,
>> but always 20 MHz? (We verified that we actually get 5/10MHz Channels by
>> checking visibility of the AP with other clients).
>>
>> To rule out a hardware problem: We used the same hardware successfully
>> on a 8km/20MHz link with dynack.
>>
>> Regards,
>>
>> Julian
>>
> I can simulate the issue.
>
> The problem is that IBSS starts at the highest value (to guarantee 
> connection), but it takes forever to get enough valid samples to 
> actually reach the optimal value through EWMA:
>
> [   48.060768] ath: phy0: ACK timeout 600 slottime 298
> [   51.155507] wlan0: Trigger new scan to find an IBSS to join
> [   53.104609] wlan0: Selected IBSS BSSID ac:c5:2a:a3:61:c9 based on 
> configured SSID
> [   53.160471] ath: phy0: rx sample 46297 [h 0-t 1]
> [   53.160522] ath: phy0: {74:4d:28:14:d9:94} tx sample 46163 [dur 
> 72][h 0-t 1]
> [   53.160533] ath: phy0: ack_ts 46297 st_ts 46163 st_dur 72 [0-0]
> [   53.160542] ath: phy0: 74:4d:28:14:d9:94 to 465 [62]
> [   53.160550] ath: phy0: ACK timeout 465 slottime 231
> [   53.165973] ath: phy0: rx sample 51368 [h 1-t 2]
> [   53.166027] ath: phy0: {74:4d:28:14:d9:94} tx sample 51098 [dur 
> 208][h 1-t 2]
> [   53.166038] ath: phy0: ack_ts 51368 st_ts 51098 st_dur 208 [1-1]
> [   53.166047] ath: phy0: 74:4d:28:14:d9:94 to 364 [62]
> [   53.170739] ath: phy0: rx sample 56568 [h 2-t 3]
> [   53.170791] ath: phy0: {74:4d:28:14:d9:94} tx sample 56222 [dur 
> 284][h 2-t 3]
> [   53.170801] ath: phy0: ack_ts 56568 st_ts 56222 st_dur 284 [2-2]
> [   53.170811] ath: phy0: 74:4d:28:14:d9:94 to 288 [62]
> [   54.169095] ath: phy0: rx sample 1054919 [h 3-t 4]
> [   54.169148] ath: phy0: {74:4d:28:14:d9:94} tx sample 1054598 [dur 
> 260][h 3-t 4]
> [   54.169159] ath: phy0: ack_ts 1054919 st_ts 1054598 st_dur 260 [3-3]
> [   54.169169] ath: phy0: 74:4d:28:14:d9:94 to 231 [61]
> [   54.173970] ath: phy0: rx sample 1059800 [h 4-t 5]
> [   54.174024] ath: phy0: {74:4d:28:14:d9:94} tx sample 1059511 [dur 
> 228][h 4-t 5]
> [   54.174035] ath: phy0: ack_ts 1059800 st_ts 1059511 st_dur 228 [4-4]
> [   54.174044] ath: phy0: 74:4d:28:14:d9:94 to 188 [61]
> ...
> [  326.925123] ath: phy0: ACK timeout 156 slottime 76
> ...
> [  653.145142] ath: phy0: ACK timeout 132 slottime 64
> ...
> [  926.928758] ath: phy0: ACK timeout 114 slottime 55
>
> (static optimal value is 28 .. so it will take a lot longer ..)
>
>
> Above log is with an iperf session running in the background. :-s
>
> Will look further into this ..
>
> Regards,
>
> Koen
>

      parent reply	other threads:[~2021-11-09 11:56 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-06-18 11:13 [Bugreport] ath9k dynack not working/low performance on 5 & 10MHz Bandwidth Petrosilius
2021-06-22  9:54 ` Koen Vandeputte
2021-06-22 10:12   ` Petrosilius
2021-06-22 10:40     ` Sebastian Gottschall
2021-06-22 11:54       ` Koen Vandeputte
2021-07-08 22:02       ` Peter Seiderer
2021-06-22 11:52     ` Koen Vandeputte
2021-06-22 11:53       ` Petrosilius
2021-06-22 12:03         ` Koen Vandeputte
2021-06-22 18:54           ` Petrosilius
2021-06-22 21:01             ` Koen Vandeputte
2021-07-13 14:34             ` Koen Vandeputte
2021-07-14  5:38               ` Sebastian Gottschall
2021-11-09 11:55               ` petrosilius [this message]

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=79ae2f1b-66cb-9182-a639-8fbb6f1fabd9@posteo.de \
    --to=petrosilius@posteo.de \
    --cc=koen.vandeputte@citymesh.com \
    --cc=linux-wireless@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