Relaxed Ordering is a PCI optimization that allows reordering of reads/writes in order to improve performance.
in order to support devices that don't enable this optimization we define IBV_ACCESS_RELAXED_ORDERING as 0. currently the optimization wasn't activated since we always defined IBV_ACCESS_RELAXED_ORDERING as 0. this issue is fixed by only setting IBV_ACCESS_RELAXED_ORDERING as 0 when the optimization is unsupported Fixes: 2c4a59c5789a ("net/mlx5: create relaxed ordering memory regions") Signed-off-by: Shiri Kuzin <shi...@mellanox.com> Reviewed-by: Asaf Penso <as...@mellanox.com> --- drivers/common/mlx5/Makefile | 5 +++++ drivers/common/mlx5/meson.build | 2 ++ drivers/common/mlx5/mlx5_glue.h | 2 +- 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/drivers/common/mlx5/Makefile b/drivers/common/mlx5/Makefile index 26267c9..a5c9ed2 100644 --- a/drivers/common/mlx5/Makefile +++ b/drivers/common/mlx5/Makefile @@ -68,6 +68,11 @@ mlx5_autoconf.h.new: FORCE mlx5_autoconf.h.new: $(RTE_SDK)/buildtools/auto-config-h.sh $Q $(RM) -f -- '$@' $Q sh -- '$<' '$@' \ + HAVE_IBV_RELAXED_ORDERING \ + infiniband/verbs.h \ + enum IBV_ACCESS_RELAXED_ORDERING \ + $(AUTOCONF_OUTPUT) + $Q sh -- '$<' '$@' \ HAVE_IBV_DEVICE_STRIDING_RQ_SUPPORT \ infiniband/mlx5dv.h \ enum MLX5DV_CQE_RES_FORMAT_CSUM_STRIDX \ diff --git a/drivers/common/mlx5/meson.build b/drivers/common/mlx5/meson.build index 347d282..2ac159a 100644 --- a/drivers/common/mlx5/meson.build +++ b/drivers/common/mlx5/meson.build @@ -94,6 +94,8 @@ has_member_args = [ # [ "MACRO to define if found", "header for the search", # "symbol to search" ] has_sym_args = [ + [ 'HAVE_IBV_RELAXED_ORDERING', 'infiniband/verbs.h', + 'IBV_ACCESS_RELAXED_ORDERING ' ], [ 'HAVE_IBV_DEVICE_STRIDING_RQ_SUPPORT', 'infiniband/mlx5dv.h', 'MLX5DV_CQE_RES_FORMAT_CSUM_STRIDX' ], [ 'HAVE_IBV_DEVICE_TUNNEL_SUPPORT', 'infiniband/mlx5dv.h', diff --git a/drivers/common/mlx5/mlx5_glue.h b/drivers/common/mlx5/mlx5_glue.h index 184c410..81d6a22 100644 --- a/drivers/common/mlx5/mlx5_glue.h +++ b/drivers/common/mlx5/mlx5_glue.h @@ -98,7 +98,7 @@ uint64_t comp_mask; }; #endif -#ifndef IBV_ACCESS_RELAXED_ORDERING +#ifndef HAVE_IBV_RELAXED_ORDERING #define IBV_ACCESS_RELAXED_ORDERING 0 #endif -- 1.8.3.1