net/mlx5: fix hairpin queue capacity
authorBing Zhao <bingz@mellanox.com>
Wed, 19 Feb 2020 08:28:39 +0000 (16:28 +0800)
committerFerruh Yigit <ferruh.yigit@intel.com>
Wed, 19 Feb 2020 17:09:28 +0000 (18:09 +0100)
commitc288d7b5ebc645e45c0477e6f0263020c033abc2
tree7eeaf461d90ba736beb203741e3aefe5d1bd5893
parent5e4154cec49cb30c82c19c13fb62827e13563019
net/mlx5: fix hairpin queue capacity

The hairpin TX/RX queue depth and packet size is fixed in the past.
When the firmware has some fix or improvement, the PMD will not
make full use of it. And also, 32 packets for a single queue will not
guarantee a good performance for hairpin flows. It will make the
stride size larger and for small packets, it is a waste of memory.
The recommended stride size is 64B now.

The parameter of hairpin queue setup needs to be adjusted.
1. A proper buffer size should support the standard jumbo frame with
9KB, and also more than 1 jumbo frame packet for performance.
2. Number of packets of a single queue should be the maximum
supported value (total buffer size / stride size).

There is no need to support the max capacity of total buffer size
because the memory consumption should also be taken into
consideration.

Fixes: e79c9be91515 ("net/mlx5: support Rx hairpin queues")
Cc: stable@dpdk.org
Signed-off-by: Bing Zhao <bingz@mellanox.com>
Acked-by: Ori Kam <orika@mellanox.com>
drivers/net/mlx5/mlx5_defs.h
drivers/net/mlx5/mlx5_rxq.c
drivers/net/mlx5/mlx5_txq.c