From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id B71EDA04B5; Tue, 27 Oct 2020 15:47:02 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 102C25953; Tue, 27 Oct 2020 15:47:01 +0100 (CET) Received: from git-send-mailer.rdmz.labs.mlnx (unknown [37.142.13.130]) by dpdk.org (Postfix) with ESMTP id 64C8F5937 for ; Tue, 27 Oct 2020 15:47:00 +0100 (CET) From: Bing Zhao To: viacheslavo@nvidia.com, matan@nvidia.com, orika@nvidia.com Cc: dev@dpdk.org, rasland@nvidia.com Date: Tue, 27 Oct 2020 22:46:53 +0800 Message-Id: <1603810014-349985-1-git-send-email-bingz@nvidia.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1602255678-108560-1-git-send-email-bingz@nvidia.com> References: <1602255678-108560-1-git-send-email-bingz@nvidia.com> Subject: [dpdk-dev] [PATCH v2 1/2] common/mlx5: add glue function for domain sync X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" In rdma-core, the "mlx5dv_dr_domain_sync" function was already provided. It is used to flush the rule submission queue. The wrapper function in the glue layer is added for using this. It only supports DR flows right now the same as domain creating and destroying functions. Signed-off-by: Bing Zhao Acked-by: Ori Kam --- drivers/common/mlx5/linux/mlx5_glue.c | 14 ++++++++++++++ drivers/common/mlx5/linux/mlx5_glue.h | 1 + 2 files changed, 15 insertions(+) diff --git a/drivers/common/mlx5/linux/mlx5_glue.c b/drivers/common/mlx5/linux/mlx5_glue.c index 47b7e98..4a76902 100644 --- a/drivers/common/mlx5/linux/mlx5_glue.c +++ b/drivers/common/mlx5/linux/mlx5_glue.c @@ -494,6 +494,19 @@ #endif } +static int +mlx5_glue_dr_sync_domain(void *domain, uint32_t flags) +{ +#ifdef HAVE_MLX5DV_DR + return mlx5dv_dr_domain_sync(domain, flags); +#else + (void)domain; + (void)flags; + errno = ENOTSUP; + return errno; +#endif +} + static struct ibv_cq_ex * mlx5_glue_dv_create_cq(struct ibv_context *context, struct ibv_cq_init_attr_ex *cq_attr, @@ -1331,6 +1344,7 @@ .dr_destroy_flow_tbl = mlx5_glue_dr_destroy_flow_tbl, .dr_create_domain = mlx5_glue_dr_create_domain, .dr_destroy_domain = mlx5_glue_dr_destroy_domain, + .dr_sync_domain = mlx5_glue_dr_sync_domain, .dv_create_cq = mlx5_glue_dv_create_cq, .dv_create_wq = mlx5_glue_dv_create_wq, .dv_query_device = mlx5_glue_dv_query_device, diff --git a/drivers/common/mlx5/linux/mlx5_glue.h b/drivers/common/mlx5/linux/mlx5_glue.h index 42b2f61..a5e7fb3 100644 --- a/drivers/common/mlx5/linux/mlx5_glue.h +++ b/drivers/common/mlx5/linux/mlx5_glue.h @@ -224,6 +224,7 @@ struct mlx5_glue { void *(*dr_create_domain)(struct ibv_context *ctx, enum mlx5dv_dr_domain_type domain); int (*dr_destroy_domain)(void *domain); + int (*dr_sync_domain)(void *domain, uint32_t flags); struct ibv_cq_ex *(*dv_create_cq) (struct ibv_context *context, struct ibv_cq_init_attr_ex *cq_attr, -- 1.8.3.1