common/mlx5: fix relaxed ordering support detection
Relaxed ordering is a PCI optimization that allows reordering
of reads/writes in order to improve performance.
In order to enable this optimization only when relaxed ordering
is supported, it is checked if IBV_ACCESS_RELAXED_ORDERING is
defined in verbs.h.
Since IBV_ACCESS_RELAXED_ORDERING is an enum and not
defined relaxed ordering wasn't enabled even when supported.
This issue is fixed by using AUTOCONF to check if relaxed
ordering is supported and disabling only if it isn't.
Fixes: 53ac93f71a
("net/mlx5: create relaxed ordering memory regions")
Signed-off-by: Shiri Kuzin <shirik@mellanox.com>
Acked-by: Matan Azrad <matan@mellanox.com>
This commit is contained in:
parent
103e2c0226
commit
2b152cc97c
@ -67,6 +67,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 \
|
||||
|
@ -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',
|
||||
|
@ -98,7 +98,7 @@ struct mlx5dv_var { uint32_t page_id; uint32_t length; off_t mmap_off;
|
||||
uint64_t comp_mask; };
|
||||
#endif
|
||||
|
||||
#ifndef IBV_ACCESS_RELAXED_ORDERING
|
||||
#ifndef HAVE_IBV_RELAXED_ORDERING
|
||||
#define IBV_ACCESS_RELAXED_ORDERING 0
|
||||
#endif
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user