[dpdk-dev] net/mlx4: revert workaround for broken Verbs
Checks
Commit Message
This workaround was needed to properly handle device removal with old
Mellanox OFED releases that are not supported by this PMD anymore.
Starting from rdma-core v16 this removal issue shouldn't happen when
setting MLX4_DEVICE_FATAL_CLEANUP environment variable to 1.
Set the aforementioned variable to 1.
Reverts: 5f4677c ("net/mlx4: workaround verbs error after plug-out")
Signed-off-by: Matan Azrad <matan@mellanox.com>
---
config/common_base | 1 -
doc/guides/nics/mlx4.rst | 8 --------
drivers/net/mlx4/Makefile | 4 ----
drivers/net/mlx4/mlx4.c | 6 ++++++
drivers/net/mlx4/mlx4_utils.h | 6 ------
5 files changed, 6 insertions(+), 19 deletions(-)
Comments
On Wed, Nov 29, 2017 at 09:21:26AM +0000, Matan Azrad wrote:
> This workaround was needed to properly handle device removal with old
> Mellanox OFED releases that are not supported by this PMD anymore.
>
> Starting from rdma-core v16 this removal issue shouldn't happen when
> setting MLX4_DEVICE_FATAL_CLEANUP environment variable to 1.
>
> Set the aforementioned variable to 1.
>
> Reverts: 5f4677c ("net/mlx4: workaround verbs error after plug-out")
>
> Signed-off-by: Matan Azrad <matan@mellanox.com>
You should expand the commit ID a bit:
Reverts: 5f4677c6ad5e ("net/mlx4: workaround verbs error after plug-out")
Other than that,
Acked-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
Thanks.
Monday, December 4, 2017 6:53 PM, Adrien Mazarguil:
> On Wed, Nov 29, 2017 at 09:21:26AM +0000, Matan Azrad wrote:
> > This workaround was needed to properly handle device removal with old
> > Mellanox OFED releases that are not supported by this PMD anymore.
> >
> > Starting from rdma-core v16 this removal issue shouldn't happen when
> > setting MLX4_DEVICE_FATAL_CLEANUP environment variable to 1.
> >
> > Set the aforementioned variable to 1.
> >
> > Reverts: 5f4677c ("net/mlx4: workaround verbs error after plug-out")
> >
> > Signed-off-by: Matan Azrad <matan@mellanox.com>
>
> You should expand the commit ID a bit:
>
> Reverts: 5f4677c6ad5e ("net/mlx4: workaround verbs error after plug-out")
>
> Other than that,
>
> Acked-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
Applied the next-net-mlx with the above commit log fix, thanks.
>
> Thanks.
>
> --
> Adrien Mazarguil
> 6WIND
@@ -230,7 +230,6 @@ CONFIG_RTE_LIBRTE_FM10K_INC_VECTOR=y
#
CONFIG_RTE_LIBRTE_MLX4_PMD=n
CONFIG_RTE_LIBRTE_MLX4_DEBUG=n
-CONFIG_RTE_LIBRTE_MLX4_DEBUG_BROKEN_VERBS=n
CONFIG_RTE_LIBRTE_MLX4_TX_MP_CACHE=8
#
@@ -92,14 +92,6 @@ These options can be modified in the ``.config`` file.
adds additional run-time checks and debugging messages at the cost of
lower performance.
-- ``CONFIG_RTE_LIBRTE_MLX4_DEBUG_BROKEN_VERBS`` (default **n**)
-
- Mellanox OFED versions earlier than 4.2 may return false errors from
- Verbs object destruction APIs after the device is plugged out.
- Enabling this option replaces assertion checks that cause the program
- to abort with harmless debugging messages as a workaround.
- Relevant only when CONFIG_RTE_LIBRTE_MLX4_DEBUG is enabled.
-
- ``CONFIG_RTE_LIBRTE_MLX4_TX_MP_CACHE`` (default **8**)
Maximum number of cached memory pools (MPs) per TX queue. Each MP from
@@ -82,10 +82,6 @@ ifdef CONFIG_RTE_LIBRTE_MLX4_TX_MP_CACHE
CFLAGS += -DMLX4_PMD_TX_MP_CACHE=$(CONFIG_RTE_LIBRTE_MLX4_TX_MP_CACHE)
endif
-ifeq ($(CONFIG_RTE_LIBRTE_MLX4_DEBUG_BROKEN_VERBS),y)
-CFLAGS += -DMLX4_PMD_DEBUG_BROKEN_VERBS
-endif
-
include $(RTE_SDK)/mk/rte.lib.mk
# Generate and clean-up mlx4_autoconf.h.
@@ -708,6 +708,12 @@ struct mlx4_conf {
rte_mlx4_pmd_init(void)
{
/*
+ * MLX4_DEVICE_FATAL_CLEANUP tells ibv_destroy functions we
+ * want to get success errno value in case of calling them
+ * when the device was removed.
+ */
+ setenv("MLX4_DEVICE_FATAL_CLEANUP", "1", 1);
+ /*
* RDMAV_HUGEPAGES_SAFE tells ibv_fork_init() we intend to use
* huge pages. Calling ibv_fork_init() during init allows
* applications to use fork() safely for purposes other than
@@ -70,13 +70,7 @@
__func__, \
RTE_FMT_TAIL(__VA_ARGS__,)))
#define DEBUG(...) PMD_DRV_LOG(DEBUG, __VA_ARGS__)
-#ifndef MLX4_PMD_DEBUG_BROKEN_VERBS
#define claim_zero(...) assert((__VA_ARGS__) == 0)
-#else /* MLX4_PMD_DEBUG_BROKEN_VERBS */
-#define claim_zero(...) \
- (void)(((__VA_ARGS__) == 0) || \
- DEBUG("Assertion `(" # __VA_ARGS__ ") == 0' failed (IGNORED)."))
-#endif /* MLX4_PMD_DEBUG_BROKEN_VERBS */
#else /* NDEBUG */