Thread (27 messages) 27 messages, 3 authors, 2022-11-28

Re: [PATCH v3 00/11] RTW88: Add support for USB variants

From: Sascha Hauer <s.hauer@pengutronix.de>
Date: 2022-11-24 09:20:40
Also in: linux-wireless, lkml

On Thu, Nov 24, 2022 at 09:21:58AM +0100, Sascha Hauer wrote:
On Thu, Nov 24, 2022 at 06:48:23AM +0000, Ping-Ke Shih wrote:
quoted
quoted
-----Original Message-----
From: Sascha Hauer <s.hauer@pengutronix.de>
Sent: Tuesday, November 22, 2022 10:55 PM
To: Bernie Huang <redacted>
Cc: linux-wireless@vger.kernel.org; Ping-Ke Shih <pkshih@realtek.com>; Hans Ulli Kroll
[off-list ref]; Martin Blumenstingl [off-list ref]; netdev@vger.kernel.org;
Kalle Valo [off-list ref]; Yan-Hsuan Chuang [off-list ref]; linux-kernel@vger.kernel.org;
Viktor Petrenko [off-list ref]; Neo Jou [off-list ref]; Bernie Huang [off-list ref];
kernel@pengutronix.de; Johannes Berg [off-list ref]; Alexander Hochbaum [off-list ref];
Da Xue [off-list ref]
Subject: Re: [PATCH v3 00/11] RTW88: Add support for USB variants

On Tue, Nov 22, 2022 at 03:52:15PM +0100, Sascha Hauer wrote:
quoted
This is the third round of adding support for the USB variants to the
RTW88 driver. There are a few changes to the last version which make it
worth looking at this version.

First of all RTL8723du and RTL8821cu are tested working now. The issue
here was that the txdesc checksum calculation was wrong. I found the
correct calculation in various downstream drivers found on github.

The second big issue was that TX packet aggregation was wrong. When
aggregating packets each packet start has to be aligned to eight bytes.
The necessary alignment was added to the total URB length before
checking if there is another packet to aggregate, so the URB length
included that padding after the last packet, which is wrong.  Fixing
this makes the driver work much more reliably.

I added all people to Cc: who showed interest in this driver and I want
to welcome you for testing and reviewing.
There still is a problem with the RTL8822cu chipset I have here.  When
using NetworkManager I immediately lose the connection to the AP after
it has been connected:

[  376.213846] wlan0: authenticate with 76:83:c2:ce:81:b1
[  380.085463] wlan0: send auth to 76:83:c2:ce:81:b1 (try 1/3)
[  380.091446] wlan0: authenticated
[  380.108864] wlan0: associate with 76:83:c2:ce:81:b1 (try 1/3)
[  380.136448] wlan0: RX AssocResp from 76:83:c2:ce:81:b1 (capab=0x1411 status=0 aid=2)
[  380.202955] wlan0: associated
[  380.268140] IPv6: ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready
[  380.275328] wlan0: Connection to AP 76:83:c2:ce:81:b1 lost

That doesn't happen when using plain wpa_supplicant. This seems to go
down to cd96e22bc1da ("rtw88: add beacon filter support"). After being
connected I get a BCN_FILTER_CONNECTION_LOSS beacon. Plain
wpa_supplicant seems to go another code patch and doesn't activate
connection quality monitoring.

The connection to the AP works fluently also with NetworkManager though
when I just ignore the BCN_FILTER_CONNECTION_LOSS beacon.

Any idea what may be wrong here?
Please reference to below patch to see if it can work to you.

https://lore.kernel.org/linux-wireless/20221124064442.28042-1-pkshih@realtek.com/T/#u (local)
Great! That solves this issue \o/
I am also happy to say that this patch is a real performance boost.
Here are some numbers:

RTL8723DU, no patch
===================
tx [  5]   0.00-10.00  sec  1.08 MBytes   903 Kbits/sec    1 sender
rx [  5]   0.00-10.26  sec  10.3 MBytes  8.41 Mbits/sec    0 sender

RTL8723DU, with patch
=====================
tx [  5]   0.00-10.00  sec  34.7 MBytes  29.1 Mbits/sec    9 sender
rx [  5]   0.00-10.05  sec  34.4 MBytes  28.7 Mbits/sec    5 sender

RTL8821CU, no patch
===================
tx [  5]   0.00-10.00  sec  6.01 MBytes  5.04 Mbits/sec    0 sender
rx [  5]   0.00-10.44  sec  53.4 MBytes  42.9 Mbits/sec    0 sender

RTL8821CU, with patch
===================
tx [  5]   0.00-10.00  sec  57.9 MBytes  48.6 Mbits/sec    0 sender
rx [  5]   0.00-10.15  sec  66.3 MBytes  54.8 Mbits/sec  419 sender

RTL8822CU, no patch
===================
tx [  5]   0.00-10.00  sec  11.8 MBytes  9.91 Mbits/sec    1 sender
rx [  5]   0.00-10.18  sec   105 MBytes  86.3 Mbits/sec  805 sender

RTL8822CU, with patch
===================
tx [  5]   0.00-10.01  sec  80.0 MBytes  67.1 Mbits/sec    0 sender
rx [  5]   0.00-10.12  sec   117 MBytes  97.2 Mbits/sec  658 sender

Tested with:

tx: iperf3 -c 192.168.0.57 -i0
rx: iperf3 -c 192.168.0.57 -i0 -R

Especially the RTL8723DU now starts being useful.

Sascha

-- 
Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help