]> git.baikalelectronics.ru Git - kernel.git/commit
mt76: mt7915: clean up station stats polling and rate control update
authorFelix Fietkau <nbd@nbd.name>
Sun, 26 Jul 2020 18:45:58 +0000 (20:45 +0200)
committerFelix Fietkau <nbd@nbd.name>
Thu, 24 Sep 2020 16:10:14 +0000 (18:10 +0200)
commitf508f161a0d49d6045fc583774d156c8b82c7f77
treea7b92df7576ff5e6716e6c70d699bf4fcfb90aa1
parent48a64e7a4be8f3c0ed1cfb9437abfaba6bb6c9a8
mt76: mt7915: clean up station stats polling and rate control update

Queueing a per-sta work item from the tx free path can become very expensive
under load. This work is only supposed to pull rate control stats every
second and deal with rate control changes.

Additionally, the rate control update code was wrong, because it was
confusing bit masks and bit numbers in test_bit.

Fix this by introducing a dedicated device work item for rate control
updates, and by polling station stats from the phy mac work.
Stations requiring polling or rate control updates are added to lists
protected by dev->sta_poll_lock.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
drivers/net/wireless/mediatek/mt76/mt7915/debugfs.c
drivers/net/wireless/mediatek/mt76/mt7915/init.c
drivers/net/wireless/mediatek/mt76/mt7915/mac.c
drivers/net/wireless/mediatek/mt76/mt7915/main.c
drivers/net/wireless/mediatek/mt76/mt7915/mt7915.h