ramips: ethernet: use own page_frag_cache
authorFelix Fietkau <nbd@nbd.name>
Thu, 12 Jul 2018 15:19:07 +0000 (17:19 +0200)
committerFelix Fietkau <nbd@nbd.name>
Fri, 13 Jul 2018 14:39:49 +0000 (16:39 +0200)
commit16a9ddfe64e2dc80328c3b7ac81d5d87a7da9233
treea736b9332c93db2d0b9292c6f5ec33522d8c3651
parent0e6cfb6919149267202c6dbaf9e5aab3ab6d6b1d
ramips: ethernet: use own page_frag_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 fragment.
This can happen if the ethernet 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, which only happens after the rings of all
drivers holding the fragments have wrapped around.

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>
target/linux/ramips/files-4.14/drivers/net/ethernet/mtk/mtk_eth_soc.c
target/linux/ramips/files-4.14/drivers/net/ethernet/mtk/mtk_eth_soc.h