linux_dsm_epyc7002/drivers/net/ethernet/marvell/mvpp2
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
..
Makefile net: mvpp2: add a debugfs interface for the Header Parser 2018-07-16 00:10:00 -07:00
mvpp2_cls.c net: mvpp2: cls: Add support for ETHER_FLOW 2019-07-08 15:50:06 -07:00
mvpp2_cls.h net: mvpp2: cls: Add steering based on vlan Id and priority. 2019-06-18 22:26:05 -04:00
mvpp2_debugfs.c mvpp2: no need to check return value of debugfs_create functions 2019-08-10 15:25:48 -07:00
mvpp2_main.c mvpp2: percpu buffers 2019-09-02 12:07:46 -07:00
mvpp2_prs.c net: mvpp2: prs: Don't override the sign bit in SRAM parser shift 2019-06-28 14:44:03 -07:00
mvpp2_prs.h net: mvpp2: debugfs: add hit counter stats for Header Parser entries 2018-07-16 00:10:01 -07:00
mvpp2.h mvpp2: percpu buffers 2019-09-02 12:07:46 -07:00