Linux wireless drivers development
 help / color / mirror / Atom feed
From: "Rafał Miłecki" <zajec5@gmail.com>
To: Felix Fietkau <nbd@nbd.name>,
	Lorenzo Bianconi <lorenzo@kernel.org>,
	Ryder Lee <ryder.lee@mediatek.com>,
	Shayne Chen <shayne.chen@mediatek.com>,
	"linux-wireless@vger.kernel.org" <linux-wireless@vger.kernel.org>
Subject: Re: Unstable WiFi with mt76 on MT7628AN
Date: Sat, 10 Jul 2021 02:16:00 +0200	[thread overview]
Message-ID: <297df121-d9d0-d9cd-2614-08c11ca1d748@gmail.com> (raw)
In-Reply-To: <7c96d5ee-86c1-8068-1b58-40db6087a24f@gmail.com>

On 04.07.2021 00:16, Rafał Miłecki wrote:
> I decided to start my adventure with mt76. I bought the cheapest router
> I could find: Xiaomi Mi Router 4C and installed OpenWrt 21.02-rc3 on it.

I found & bought another cheap router with mt76 supported WiFi: Netgear
R6220 with MT7621ST (SoC) + MT7603EN (WiFi) + MT7612EN (WiFi). I even
found some possitive comments on mt76 support for MT7603 but it appears
it's the same story. I decided to focus on 2 GHz (MT7603) for now.

***

First I run vendor's firmware and iperf test for 2 hours. Speeds were
verying between 35 Mb/s and 60 Mb/s but it didn't fail even once:

[  3] 7195.0-7196.0 sec  4.12 MBytes  34.6 Mbits/sec
[  3] 7196.0-7197.0 sec  2.54 MBytes  21.3 Mbits/sec
[  3] 7197.0-7198.0 sec  5.50 MBytes  46.1 Mbits/sec
[  3] 7198.0-7199.0 sec  5.62 MBytes  47.2 Mbits/sec
[  3] 7199.0-7200.0 sec  5.50 MBytes  46.1 Mbits/sec
[  3]  0.0-7200.3 sec  37.2 GBytes  44.4 Mbits/sec

***

Then I installed OpenWrt 19.07.7 with mt76 from February 2021. It failed
me almost immediately:

[  3]  0.0- 1.0 sec  6.50 MBytes  54.5 Mbits/sec
[  3]  1.0- 2.0 sec  5.38 MBytes  45.1 Mbits/sec
[  3]  2.0- 3.0 sec  5.88 MBytes  49.3 Mbits/sec
[  3]  3.0- 4.0 sec  5.12 MBytes  43.0 Mbits/sec
[  3]  4.0- 5.0 sec  6.38 MBytes  53.5 Mbits/sec
[  3]  5.0- 6.0 sec  5.88 MBytes  49.3 Mbits/sec
[  3]  6.0- 7.0 sec  6.50 MBytes  54.5 Mbits/sec
[  3]  7.0- 8.0 sec  5.88 MBytes  49.3 Mbits/sec
[  3]  8.0- 9.0 sec  6.88 MBytes  57.7 Mbits/sec
[  3]  9.0-10.0 sec  6.12 MBytes  51.4 Mbits/sec
[  3] 10.0-11.0 sec  6.50 MBytes  54.5 Mbits/sec
[  3] 11.0-12.0 sec  5.75 MBytes  48.2 Mbits/sec
[  3] 12.0-13.0 sec  4.38 MBytes  36.7 Mbits/sec
[  3] 13.0-14.0 sec  1.98 MBytes  16.6 Mbits/sec
[  3] 14.0-15.0 sec  1.80 MBytes  15.1 Mbits/sec
[  3] 15.0-16.0 sec  1.74 MBytes  14.6 Mbits/sec
[  3] 16.0-17.0 sec   509 KBytes  4.17 Mbits/sec
[  3] 17.0-18.0 sec   509 KBytes  4.17 Mbits/sec
[  3] 18.0-19.0 sec  0.00 Bytes  0.00 bits/sec
[  3] 19.0-20.0 sec  0.00 Bytes  0.00 bits/sec
[  3] 20.0-21.0 sec  0.00 Bytes  0.00 bits/sec
[  3] 21.0-22.0 sec  0.00 Bytes  0.00 bits/sec
[  3] 22.0-23.0 sec  0.00 Bytes  0.00 bits/sec
[  3] 23.0-24.0 sec  0.00 Bytes  0.00 bits/sec
[  3] 24.0-25.0 sec  0.00 Bytes  0.00 bits/sec
[  3] 25.0-26.0 sec  0.00 Bytes  0.00 bits/sec
[  3] 26.0-27.0 sec  0.00 Bytes  0.00 bits/sec
[  3] 27.0-28.0 sec  0.00 Bytes  0.00 bits/sec
[  3] 28.0-29.0 sec  0.00 Bytes  0.00 bits/sec
[  3] 29.0-30.0 sec  0.00 Bytes  0.00 bits/sec
[  3] 30.0-31.0 sec  0.00 Bytes  0.00 bits/sec
[  3] 31.0-32.0 sec  2.38 MBytes  19.9 Mbits/sec
[  3] 32.0-33.0 sec  5.62 MBytes  47.2 Mbits/sec
[  3] 33.0-34.0 sec  6.75 MBytes  56.6 Mbits/sec
[  3] 34.0-35.0 sec  5.88 MBytes  49.3 Mbits/sec

The most recent OpenWrt with mt76 from June 2021 was no better.

***

Then I focused on iw & station info from MT7603 perspective. That is
where I noticed something interesting. With idle wireless (no real
traffic at all) I could see "rx bitrate" reported by MT7603 for my STA
to drop down to 6 Mbit/s regularly.

 > while [ 1 ]; do date; iw dev wlan0 station dump | grep bitrate; sleep 1; done
Fri Jul  9 16:40:42 UTC 2021
         tx bitrate:     72.2 MBit/s MCS 7 short GI
         rx bitrate:     72.2 MBit/s MCS 7 short GI
Fri Jul  9 16:40:43 UTC 2021
         tx bitrate:     72.2 MBit/s MCS 7 short GI
         rx bitrate:     72.2 MBit/s MCS 7 short GI
Fri Jul  9 16:40:44 UTC 2021
         tx bitrate:     72.2 MBit/s MCS 7 short GI
         rx bitrate:     72.2 MBit/s MCS 7 short GI
Fri Jul  9 16:40:45 UTC 2021
         tx bitrate:     72.2 MBit/s MCS 7 short GI
         rx bitrate:     6.0 MBit/s
Fri Jul  9 16:40:46 UTC 2021
         tx bitrate:     39.0 MBit/s MCS 4
         rx bitrate:     6.0 MBit/s
Fri Jul  9 16:40:47 UTC 2021
         tx bitrate:     26.0 MBit/s MCS 3
         rx bitrate:     6.0 MBit/s
Fri Jul  9 16:40:48 UTC 2021
         tx bitrate:     72.2 MBit/s MCS 7 short GI
         rx bitrate:     72.2 MBit/s MCS 7 short GI
Fri Jul  9 16:40:49 UTC 2021
         tx bitrate:     72.2 MBit/s MCS 7 short GI
         rx bitrate:     72.2 MBit/s MCS 7 short GI
Fri Jul  9 16:40:50 UTC 2021
         tx bitrate:     72.2 MBit/s MCS 7 short GI
         rx bitrate:     72.2 MBit/s MCS 7 short GI

Then I started iperf and noticed that iperf slows down exactly when "iw"
reports lower (6 Mbit/s) "rx rate".

I decided to run iperf with "-b 20M" and got something like:

[  3] 465.0-466.0 sec  2.38 MBytes  20.0 Mbits/sec
[  3] 466.0-467.0 sec  2.38 MBytes  20.0 Mbits/sec
[  3] 467.0-468.0 sec  2.38 MBytes  20.0 Mbits/sec
[  3] 468.0-469.0 sec  2.38 MBytes  20.0 Mbits/sec
[  3] 469.0-470.0 sec  2.38 MBytes  20.0 Mbits/sec
[  3] 470.0-471.0 sec  2.38 MBytes  20.0 Mbits/sec
[  3] 471.0-472.0 sec  2.38 MBytes  20.0 Mbits/sec
[  3] 472.0-473.0 sec  1.08 MBytes  9.05 Mbits/sec	← "iw" on MT7603 reported lower "rx bitrate" at that moment
[  3] 473.0-474.0 sec  1.55 MBytes  13.0 Mbits/sec
[  3] 474.0-475.0 sec  1.37 MBytes  11.5 Mbits/sec
[  3] 475.0-476.0 sec  1.18 MBytes  9.90 Mbits/sec
[  3] 476.0-477.0 sec   954 KBytes  7.82 Mbits/sec
[  3] 477.0-478.0 sec  0.00 Bytes  0.00 bits/sec
[  3] 478.0-479.0 sec  0.00 Bytes  0.00 bits/sec
[  3] 479.0-480.0 sec  0.00 Bytes  0.00 bits/sec
[  3] 480.0-481.0 sec  0.00 Bytes  0.00 bits/sec
[  3] 481.0-482.0 sec  1.06 MBytes  8.86 Mbits/sec
[  3] 482.0-483.0 sec   255 KBytes  2.09 Mbits/sec
[  3] 483.0-484.0 sec   954 KBytes  7.82 Mbits/sec
[  3] 484.0-485.0 sec  1.93 MBytes  16.2 Mbits/sec
[  3] 485.0-486.0 sec  3.36 MBytes  28.2 Mbits/sec
[  3] 486.0-487.0 sec  6.96 MBytes  58.4 Mbits/sec
[  3] 487.0-488.0 sec  6.90 MBytes  57.9 Mbits/sec
[  3] 488.0-489.0 sec  6.96 MBytes  58.4 Mbits/sec
[  3] 489.0-490.0 sec  5.78 MBytes  48.5 Mbits/sec
[  3] 490.0-491.0 sec  5.07 MBytes  42.5 Mbits/sec
[  3] 491.0-492.0 sec  2.38 MBytes  20.0 Mbits/sec
[  3] 492.0-493.0 sec  2.38 MBytes  20.0 Mbits/sec
[  3] 493.0-494.0 sec  2.38 MBytes  20.0 Mbits/sec
[  3] 494.0-495.0 sec  2.38 MBytes  20.0 Mbits/sec
[  3] 495.0-496.0 sec  2.38 MBytes  20.0 Mbits/sec
[  3] 496.0-497.0 sec  2.38 MBytes  20.0 Mbits/sec
[  3] 497.0-498.0 sec  2.38 MBytes  20.0 Mbits/sec
[  3] 498.0-499.0 sec  2.38 MBytes  20.0 Mbits/sec
[  3] 499.0-500.0 sec  2.38 MBytes  20.0 Mbits/sec

For few times iperf speed recovered after slow down (as in above log)
but after few successes it has failed and slow down ended up in a
totally stalled traffic.

Then I decided to run iperf with "-b 10M" and got a kind of success:

[  3] 16590.0-16591.0 sec  1.19 MBytes  10.0 Mbits/sec
[  3] 16591.0-16592.0 sec  1.19 MBytes  10.0 Mbits/sec
[  3] 16592.0-16593.0 sec  1.19 MBytes  10.0 Mbits/sec
[  3] 16593.0-16594.0 sec  1.19 MBytes  10.0 Mbits/sec
[  3] 16594.0-16595.0 sec  1.19 MBytes  10.0 Mbits/sec
[  3] 16595.0-16596.0 sec  1.19 MBytes  10.0 Mbits/sec
[  3] 16596.0-16597.0 sec  1.19 MBytes  10.0 Mbits/sec
[  3] 16597.0-16598.0 sec  1.19 MBytes  10.0 Mbits/sec
[  3] 16598.0-16599.0 sec  1.19 MBytes  10.0 Mbits/sec
[  3] 16599.0-16600.0 sec  1.19 MBytes  10.0 Mbits/sec
[  3] 16600.0-16601.0 sec  1.19 MBytes  10.0 Mbits/sec
[  3]  0.0-16601.3 sec  19.3 GBytes  10.0 Mbits/sec

I had iperf running for 4,5 hours with only 1 slow down but that was
very stable after all and I reached a record of stable WiFi time!

***

So it seems there are two problems I managed to narrown down:

1. On MT7603 "rx bitrate" of STA drops 72.2 → 6 MBit/s regularly
2. When catching up with traffic (after slow down) WiFi occasionally stalls

  parent reply	other threads:[~2021-07-10  0:16 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-07-03 22:16 Unstable WiFi with mt76 on MT7628AN Rafał Miłecki
2021-07-03 22:19 ` Rafał Miłecki
2021-07-07 20:53   ` Rafał Miłecki
2021-07-04  7:36 ` Rafał Miłecki
2021-07-06 22:34   ` Rafał Miłecki
2021-07-10  0:16 ` Rafał Miłecki [this message]
2021-07-10 16:53   ` Rafał Miłecki

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=297df121-d9d0-d9cd-2614-08c11ca1d748@gmail.com \
    --to=zajec5@gmail.com \
    --cc=linux-wireless@vger.kernel.org \
    --cc=lorenzo@kernel.org \
    --cc=nbd@nbd.name \
    --cc=ryder.lee@mediatek.com \
    --cc=shayne.chen@mediatek.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox