linux_dsm_epyc7002/drivers/net/ethernet/marvell
Matteo Croce 7d04b0b13b mvpp2: percpu buffers
Every mvpp2 unit can use up to 8 buffers mapped by the BM (the HW buffer
manager). The HW will place the frames in the buffer pool depending on the
frame size: short (< 128 bytes), long (< 1664) or jumbo (up to 9856).

As any unit can have up to 4 ports, the driver allocates only 2 pools,
one for small and one long frames, and share them between ports.
When the first port MTU is set higher than 1664 bytes, a third pool is
allocated for jumbo frames.

This shared allocation makes impossible to use percpu allocators,
and creates contention between HW queues.

If possible, i.e. if the number of possible CPU are less than 8 and jumbo
frames are not used, switch to a new scheme: allocate 8 per-cpu pools for
short and long frames and bind every pool to an RXQ.

When the first port MTU is set higher than 1664 bytes, the allocation
scheme is reverted to the old behaviour (3 shared pools), and when all
ports MTU are lowered, the per-cpu buffers are allocated again.

Signed-off-by: Matteo Croce <mcroce@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2019-09-02 12:07:46 -07:00
..
mvpp2 mvpp2: percpu buffers 2019-09-02 12:07:46 -07:00
octeontx2 treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
Kconfig treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
Makefile octeontx2-af: Add Marvell OcteonTX2 RVU AF driver 2018-10-10 10:06:01 -07:00
mv643xx_eth.c net: Use skb_frag_off accessors 2019-07-30 14:21:32 -07:00
mvmdio.c drivers/net/ethernet/marvell/mvmdio.c: Fix non OF case 2019-08-05 13:30:48 -07:00
mvneta_bm.c net: mvneta: use devm_platform_ioremap_resource() to simplify code 2019-08-21 13:52:33 -07:00
mvneta_bm.h net: mvneta: Allocate page for the descriptor 2018-07-28 22:12:55 -07:00
mvneta.c net: mvneta: use devm_platform_ioremap_resource() to simplify code 2019-07-25 17:28:11 -07:00
pxa168_eth.c pxa168_eth: use devm_platform_ioremap_resource() to simplify code 2019-08-21 13:52:33 -07:00
skge.c skge: no need to check return value of debugfs_create functions 2019-08-10 15:25:48 -07:00
skge.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
sky2.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2019-09-02 11:20:17 -07:00
sky2.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00