mt76: use a per rx queue page fragment cache
authorFelix Fietkau <nbd@nbd.name>
Fri, 13 Jul 2018 14:26:15 +0000 (16:26 +0200)
committerFelix Fietkau <nbd@nbd.name>
Wed, 19 Sep 2018 10:31:44 +0000 (12:31 +0200)
commitc12128ce44b04a987c4eb0f733cc99c4dd50d45a
tree84bd4a01b7571716251cdf573ee7d8bb66dcd318
parent8842d485cbadaef6724dd4138367e7ddf3ef9dcf
mt76: use a per rx queue page fragment cache

Using the NAPI or netdev frag cache along with other drivers can lead to
32 KiB pages being held for a long time, despite only being used for
very few page fragments.

This can happen if the driver grabs one or two fragments for rx ring
refill, while other drivers use (and free up) the remaining fragments.
The 32 KiB higher-order page can only be freed once all users have freed
their fragments.

Depending on the traffic patterns, this can waste a lot of memory and
look a lot like a memory leak.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
drivers/net/wireless/mediatek/mt76/dma.c
drivers/net/wireless/mediatek/mt76/mt76.h
drivers/net/wireless/mediatek/mt76/usb.c