Skip to contentSkip to conversation

RT5370 performance issues

DISCUSSION Marlon Smith 1 participant 1 message Jan 21, 2020

lore
Share & tools
lore
#0 lore raw

Hi everyone,

I'm having some trouble with an RT5370 Wi-Fi module on an embedded Linux system. With just one of these modules connected to an access point, performance is around 30 Mbit/s. However, as soon as a second module is connected to the access point, performance drops to about 3 Mbit/s.

With debug output enabled, there are many copies of this message:

wlan0: release an RX reorder frame due to timeout on earlier frames

which seems to be related to MDPU aggregation. So, I went into rt2800lib.c in the function rt2800_ampdu_action and added the line ret = -ENOTSUPP; to disable support for RX frame aggregation:

	switch (action) {
	case IEEE80211_AMPDU_RX_START:
	case IEEE80211_AMPDU_RX_STOP:
		ret = -ENOTSUPP;
	...

After that change, debug output shows:

wlan0: AddBA Req buf_size=64 for 00:ad:24:ff:6c:a0
wlan0: Rx A-MPDU request on 00:ad:24:ff:6c:a0 tid 0 result -524

and performance seems to be maybe slightly faster but not by much.

I'm using backports, and have tried with version 5.3-rc4 and 4.14-rc2. I've also tried several versions of the device firmware file rt2870.bin; 0.36, 0.33, and 0.22.

Many thanks for any ideas you can offer.

Marlon