net/mlx5: introduce buffer size parameter for hairpin
authorBing Zhao <bingz@mellanox.com>
Tue, 24 Mar 2020 12:59:01 +0000 (20:59 +0800)
committerFerruh Yigit <ferruh.yigit@intel.com>
Tue, 21 Apr 2020 11:57:05 +0000 (13:57 +0200)
commit1ad9a3d09fc222a99af4c734788eaf0bdbafb6ae
tree787ce78d7cab8c152a1bf33856586604ba5f5013
parentd801c39559b346f26e3d3a8e16a92bb19e0165b9
net/mlx5: introduce buffer size parameter for hairpin

When creating a hairpin queue, the total data size and the maximal
number of packets are interrelated. The differ is the stride size.
Larger buffer size means big packet like jumbo could be supported,
but in the meanwhile, it will introduce more cache misses and have a
side effect on the performance.
Now a new device parameter "hp_buf_log_sz" is introduced for
applications to set the total data buffer size (the logarithm value).
Then the maximal number of packets will also be calculated
automatically by this value.
Applications could also change this value to a larger one in order
to support larger packets in hairpin case. A smaller value will be
beneficial for memory consumption.
If it is not set, the default value will be used.

Signed-off-by: Bing Zhao <bingz@mellanox.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
drivers/net/mlx5/mlx5.c
drivers/net/mlx5/mlx5.h
drivers/net/mlx5/mlx5_defs.h
drivers/net/mlx5/mlx5_rxq.c
drivers/net/mlx5/mlx5_txq.c