[dpdk-dev] [PATCH v2 1/4] net/mlx5: fix memory event on secondary process
Shahaf Shuler
shahafs at mellanox.com
Tue Mar 26 13:28:02 CET 2019
Monday, March 25, 2019 9:16 PM, Yongseok Koh:
> Subject: [dpdk-dev] [PATCH v2 1/4] net/mlx5: fix memory event on
> secondary process
>
> As the memory event is propagated to secondary processes, the event is
> processed redundantly. This should be processed once because the data
> structure used for MR and the event is global across the processes.
>
> Fixes: 974f1e7ef146 ("net/mlx5: add new memory region support")
> Cc: stable at dpdk.org
>
> Signed-off-by: Yongseok Koh <yskoh at mellanox.com>
Acked-by: Shahaf Shuler <shahafs at mellanox.com>
> ---
> drivers/net/mlx5/mlx5.c | 5 +++--
> drivers/net/mlx5/mlx5_mr.c | 2 ++
> 2 files changed, 5 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/net/mlx5/mlx5.c b/drivers/net/mlx5/mlx5.c index
> ae4b71695e..dd29eba955 100644
> --- a/drivers/net/mlx5/mlx5.c
> +++ b/drivers/net/mlx5/mlx5.c
> @@ -157,9 +157,10 @@ mlx5_prepare_shared_data(void)
> if (rte_eal_process_type() == RTE_PROC_PRIMARY) {
> LIST_INIT(&mlx5_shared_data-
> >mem_event_cb_list);
> rte_rwlock_init(&mlx5_shared_data-
> >mem_event_rwlock);
> +
> rte_mem_event_callback_register("MLX5_MEM_EVENT_CB",
> +
> mlx5_mr_mem_event_cb,
> + NULL);
> }
> -
> rte_mem_event_callback_register("MLX5_MEM_EVENT_CB",
> - mlx5_mr_mem_event_cb,
> NULL);
> }
> rte_spinlock_unlock(&mlx5_shared_data_lock);
> }
> diff --git a/drivers/net/mlx5/mlx5_mr.c b/drivers/net/mlx5/mlx5_mr.c index
> 700d83d1bc..d336a77e40 100644
> --- a/drivers/net/mlx5/mlx5_mr.c
> +++ b/drivers/net/mlx5/mlx5_mr.c
> @@ -891,6 +891,8 @@ mlx5_mr_mem_event_cb(enum rte_mem_event
> event_type, const void *addr,
> struct mlx5_priv *priv;
> struct mlx5_dev_list *dev_list = &mlx5_shared_data-
> >mem_event_cb_list;
>
> + /* Must be called from the primary process. */
> + assert(rte_eal_process_type() == RTE_PROC_PRIMARY);
> switch (event_type) {
> case RTE_MEM_EVENT_FREE:
> rte_rwlock_write_lock(&mlx5_shared_data-
> >mem_event_rwlock);
> --
> 2.11.0
More information about the dev
mailing list