net/nfp: fix minimum descriptor sizes
authorHeinrich Kuhn <heinrich.kuhn@corigine.com>
Mon, 23 Aug 2021 07:59:21 +0000 (09:59 +0200)
committerFerruh Yigit <ferruh.yigit@intel.com>
Tue, 31 Aug 2021 15:55:22 +0000 (17:55 +0200)
commit96289f2b80e5921a3da54650f382b6944d9b39df
tree325c4521340ee42c5b9cef35c81bbfb3788e09b0
parent924344db1c3d69bc754519934b15279d8af5e61e
net/nfp: fix minimum descriptor sizes

The NFP4000/6000 supports a minimum of 256 Tx/Rx descriptors and not 64.
Before this patch when a DPDK application configured < 256 Tx
descriptors the hardware read/write pointers would be unmasked and not
wrapped at the expected size of the ring. The PMD logic to determine the
amount of free space in the Tx ring is incompatible with the unmasked
hwqueue pointers and this will result in the PMD not updating the
read pointer at all.The knock-on effect is that under high load the
PMD will potentially re-use a Tx descriptor before the hw has had a
chance to process that particular descriptor. This issue can manifest as
a DMA error when the hardware tries to perform a DMA with info from a
partially populated descriptor.

Fixes: defb9a5dd156 ("nfp: introduce driver initialization")
Cc: stable@dpdk.org
Signed-off-by: Heinrich Kuhn <heinrich.kuhn@corigine.com>
Signed-off-by: Simon Horman <simon.horman@corigine.com>
drivers/net/nfp/nfp_rxtx.h