sdk_dpaa: rework private bpool seeding per CPU per interface
authorCamelia Groza <camelia.groza@nxp.com>
Tue, 8 Jun 2021 10:33:42 +0000 (13:33 +0300)
committerCamelia Groza <camelia.groza@nxp.com>
Tue, 8 Jun 2021 14:42:10 +0000 (17:42 +0300)
commitef3f2cfc6010c13feb40cfb7fd7490832cf86f45
tree7117b55df96cb697b8f2c82c98b8cc6c5908e58f
parent1de9639b1a87417fde25efa9fa08c8c39a6a5d9f
sdk_dpaa: rework private bpool seeding per CPU per interface

The dpa_bp introduction has modified the existing design of buffer
pool seeding. The most notable (and unintended) change was that
instead of placing in the buffer pool an allotment of buffers for
each CPU, for each interface, only an allotment for each CPU was
performed. With this, the possibility that in certain scenarios,
each interface can draw from the buffer pool enough buffers to
drain it completely, but not enough to trigger a refill. This may
result in a complete stall of the reception on the interface.

The current patch reintroduces the initial design, that makes sure
each probed interface contributes to the common buffer pool an
allotment of buffers for each CPU, removing the above mentioned
issue.

In consequence, the per buffer pool seed_cb() callback is removed.
The seeding is now done at net device probe.

Reported-by: Radu Bulie <radu-andrei.bulie@nxp.com>
Signed-off-by: Madalin Bucur <madalin.bucur@nxp.com>
Signed-off-by: Camelia Groza <camelia.groza@nxp.com>
drivers/net/ethernet/freescale/sdk_dpaa/Kconfig
drivers/net/ethernet/freescale/sdk_dpaa/dpaa_eth.c
drivers/net/ethernet/freescale/sdk_dpaa/dpaa_eth.h
drivers/net/ethernet/freescale/sdk_dpaa/dpaa_eth_common.c
drivers/net/ethernet/freescale/sdk_dpaa/dpaa_eth_sg.c
drivers/net/ethernet/freescale/sdk_dpaa/dpaa_ethtool.c