* [dpdk-stable] [PATCH v1 01/72] mlx5: fix relaxed ordering DevX flow [not found] <20201027232335.31427-1-ophirmu@nvidia.com> @ 2020-10-27 23:22 ` Ophir Munk [not found] ` <20201210150648.8784-1-talshn@nvidia.com> 2020-10-27 23:22 ` [dpdk-stable] [PATCH v1 02/72] net/mlx5: fix flow sample definitions Ophir Munk ` (4 subsequent siblings) 5 siblings, 1 reply; 19+ messages in thread From: Ophir Munk @ 2020-10-27 23:22 UTC (permalink / raw) To: dev, Raslan Darawsheh Cc: Ophir Munk, Matan Azrad, Tal Shnaiderman, Thomas Monjalon, stable From: Tal Shnaiderman <talshn@nvidia.com> The current DevX implementation of the relaxed ordering feature is enabling relaxed ordering usage only if both relaxed ordering read AND write are supported. In that case both relaxed ordering read and write are activated. This commit will optimize the usage of relaxed ordering by enabling it when the read OR write features are supported. Each relaxed ordering type will be activated according to it's own capability bit. This will align the DevX flow with the verbs implementation of ibv_reg_mr when using the flag IBV_ACCESS_RELAXED_ORDERING Fixes: 53ac93f71ad1 ("net/mlx5: create relaxed ordering memory regions") Fixes: d4322061770b ("net/mlx5: synchronize flow counter pool creation") Cc: stable@dpdk.org Signed-off-by: Tal Shnaiderman <talshn@nvidia.com> --- drivers/common/mlx5/mlx5_devx_cmds.c | 8 ++++---- drivers/common/mlx5/mlx5_devx_cmds.h | 3 ++- drivers/net/mlx5/linux/mlx5_os.c | 12 ++++++++---- drivers/net/mlx5/mlx5.h | 3 ++- drivers/net/mlx5/mlx5_flow.c | 3 ++- drivers/vdpa/mlx5/mlx5_vdpa_lm.c | 3 ++- drivers/vdpa/mlx5/mlx5_vdpa_mem.c | 3 ++- 7 files changed, 22 insertions(+), 13 deletions(-) diff --git a/drivers/common/mlx5/mlx5_devx_cmds.c b/drivers/common/mlx5/mlx5_devx_cmds.c index 8aee12d..27eff5f 100644 --- a/drivers/common/mlx5/mlx5_devx_cmds.c +++ b/drivers/common/mlx5/mlx5_devx_cmds.c @@ -267,10 +267,10 @@ mlx5_devx_cmd_mkey_create(void *ctx, MLX5_SET(mkc, mkc, pd, attr->pd); MLX5_SET(mkc, mkc, mkey_7_0, attr->umem_id & 0xFF); MLX5_SET(mkc, mkc, translations_octword_size, translation_size); - if (attr->relaxed_ordering == 1) { - MLX5_SET(mkc, mkc, relaxed_ordering_write, 0x1); - MLX5_SET(mkc, mkc, relaxed_ordering_read, 0x1); - } + MLX5_SET(mkc, mkc, relaxed_ordering_write, + attr->relaxed_ordering_write); + MLX5_SET(mkc, mkc, relaxed_ordering_read, + attr->relaxed_ordering_read); MLX5_SET64(mkc, mkc, start_addr, attr->addr); MLX5_SET64(mkc, mkc, len, attr->size); mkey->obj = mlx5_glue->devx_obj_create(ctx, in, in_size_dw * 4, out, diff --git a/drivers/common/mlx5/mlx5_devx_cmds.h b/drivers/common/mlx5/mlx5_devx_cmds.h index abbea67..25cf12e 100644 --- a/drivers/common/mlx5/mlx5_devx_cmds.h +++ b/drivers/common/mlx5/mlx5_devx_cmds.h @@ -20,7 +20,8 @@ struct mlx5_devx_mkey_attr { uint32_t pd; uint32_t log_entity_size; uint32_t pg_access:1; - uint32_t relaxed_ordering:1; + uint32_t relaxed_ordering_write:1; + uint32_t relaxed_ordering_read:1; struct mlx5_klm *klm_array; int klm_num; }; diff --git a/drivers/net/mlx5/linux/mlx5_os.c b/drivers/net/mlx5/linux/mlx5_os.c index c890998..25897d9 100644 --- a/drivers/net/mlx5/linux/mlx5_os.c +++ b/drivers/net/mlx5/linux/mlx5_os.c @@ -1078,10 +1078,14 @@ mlx5_dev_spawn(struct rte_device *dpdk_dev, goto error; } /* Check relax ordering support. */ - if (config->hca_attr.relaxed_ordering_write && - config->hca_attr.relaxed_ordering_read && - !haswell_broadwell_cpu) - sh->cmng.relaxed_ordering = 1; + sh->cmng.relaxed_ordering_read = 0; + sh->cmng.relaxed_ordering_write = 0; + if (!haswell_broadwell_cpu) { + sh->cmng.relaxed_ordering_write = + config->hca_attr.relaxed_ordering_write; + sh->cmng.relaxed_ordering_read = + config->hca_attr.relaxed_ordering_read; + } /* Check for LRO support. */ if (config->dest_tir && config->hca_attr.lro_cap && config->dv_flow_en) { diff --git a/drivers/net/mlx5/mlx5.h b/drivers/net/mlx5/mlx5.h index 88bbd31..c148e8e 100644 --- a/drivers/net/mlx5/mlx5.h +++ b/drivers/net/mlx5/mlx5.h @@ -455,7 +455,8 @@ struct mlx5_flow_counter_mng { uint8_t pending_queries; uint16_t pool_index; uint8_t query_thread_on; - bool relaxed_ordering; + bool relaxed_ordering_read; + bool relaxed_ordering_write; bool counter_fallback; /* Use counter fallback management. */ LIST_HEAD(mem_mngs, mlx5_counter_stats_mem_mng) mem_mngs; LIST_HEAD(stat_raws, mlx5_counter_stats_raw) free_stat_raws; diff --git a/drivers/net/mlx5/mlx5_flow.c b/drivers/net/mlx5/mlx5_flow.c index 082d886..89d6d70 100644 --- a/drivers/net/mlx5/mlx5_flow.c +++ b/drivers/net/mlx5/mlx5_flow.c @@ -7221,7 +7221,8 @@ mlx5_flow_create_counter_stat_mem_mng(struct mlx5_dev_ctx_shared *sh) mkey_attr.pg_access = 0; mkey_attr.klm_array = NULL; mkey_attr.klm_num = 0; - mkey_attr.relaxed_ordering = sh->cmng.relaxed_ordering; + mkey_attr.relaxed_ordering_write = sh->cmng.relaxed_ordering_write; + mkey_attr.relaxed_ordering_read = sh->cmng.relaxed_ordering_read; mem_mng->dm = mlx5_devx_cmd_mkey_create(sh->ctx, &mkey_attr); if (!mem_mng->dm) { mlx5_glue->devx_umem_dereg(mem_mng->umem); diff --git a/drivers/vdpa/mlx5/mlx5_vdpa_lm.c b/drivers/vdpa/mlx5/mlx5_vdpa_lm.c index 273c46f..6c4284f 100644 --- a/drivers/vdpa/mlx5/mlx5_vdpa_lm.c +++ b/drivers/vdpa/mlx5/mlx5_vdpa_lm.c @@ -43,7 +43,8 @@ mlx5_vdpa_dirty_bitmap_set(struct mlx5_vdpa_priv *priv, uint64_t log_base, .pg_access = 1, .klm_array = NULL, .klm_num = 0, - .relaxed_ordering = 0, + .relaxed_ordering_read = 0, + .relaxed_ordering_write = 0, }; struct mlx5_devx_virtq_attr attr = { .type = MLX5_VIRTQ_MODIFY_TYPE_DIRTY_BITMAP_PARAMS, diff --git a/drivers/vdpa/mlx5/mlx5_vdpa_mem.c b/drivers/vdpa/mlx5/mlx5_vdpa_mem.c index b6c7cb8..f8861d5 100644 --- a/drivers/vdpa/mlx5/mlx5_vdpa_mem.c +++ b/drivers/vdpa/mlx5/mlx5_vdpa_mem.c @@ -223,7 +223,8 @@ mlx5_vdpa_mem_register(struct mlx5_vdpa_priv *priv) mkey_attr.pg_access = 1; mkey_attr.klm_array = NULL; mkey_attr.klm_num = 0; - mkey_attr.relaxed_ordering = 0; + mkey_attr.relaxed_ordering_read = 0; + mkey_attr.relaxed_ordering_write = 0; entry->mkey = mlx5_devx_cmd_mkey_create(priv->ctx, &mkey_attr); if (!entry->mkey) { DRV_LOG(ERR, "Failed to create direct Mkey."); -- 2.8.4 ^ permalink raw reply [flat|nested] 19+ messages in thread
[parent not found: <20201210150648.8784-1-talshn@nvidia.com>]
* [dpdk-stable] [PATCH v2 01/33] net/mlx5: fix folding constant array error [not found] ` <20201210150648.8784-1-talshn@nvidia.com> @ 2020-12-10 15:06 ` Tal Shnaiderman [not found] ` <20201213102056.11380-1-talshn@nvidia.com> 2020-12-10 15:06 ` [dpdk-stable] [PATCH v2 04/33] net/mlx5: fix freeing packet pacing Tal Shnaiderman 2020-12-10 15:06 ` [dpdk-stable] [PATCH v2 11/33] net/mlx5: fix adding destroy flow action wrapper Tal Shnaiderman 2 siblings, 1 reply; 19+ messages in thread From: Tal Shnaiderman @ 2020-12-10 15:06 UTC (permalink / raw) To: dev; +Cc: thomas, matan, rasland, ophirmu, stable Before this commit the PMD used: const int elt_n = 8 const int *stack[elt_n]; In Windows clang compiler complains: net/mlx5/mlx5_flow.c:215:19: error: variable length array folded to constant array as an extension [-Werror,-Wgnu-folding-constant] Fix it by using a constant macro definition instead of a variable: #define MLX5_RSS_EXP_ELT_N 8 const int *stack[MLX5_RSS_EXP_ELT_N]; Fixes: c7870bfe09dc ("ethdev: move RSS expansion code to mlx5 driver") Cc: stable@dpdk.org Signed-off-by: Tal Shnaiderman <talshn@nvidia.com> Signed-off-by: Ophir Munk <ophirmu@nvidia.com> Acked-by: Matan Azrad <matan@nvidia.com> --- drivers/net/mlx5/mlx5_flow.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/drivers/net/mlx5/mlx5_flow.c b/drivers/net/mlx5/mlx5_flow.c index 82e24d7067..bf86aaaa39 100644 --- a/drivers/net/mlx5/mlx5_flow.c +++ b/drivers/net/mlx5/mlx5_flow.c @@ -212,6 +212,8 @@ mlx5_flow_expand_rss_item_complete(const struct rte_flow_item *item) return ret; } +#define MLX5_RSS_EXP_ELT_N 8 + /** * Expand RSS flows into several possible flows according to the RSS hash * fields requested and the driver capabilities. @@ -242,13 +244,12 @@ mlx5_flow_expand_rss(struct mlx5_flow_expand_rss *buf, size_t size, const struct mlx5_flow_expand_node graph[], int graph_root_index) { - const int elt_n = 8; const struct rte_flow_item *item; const struct mlx5_flow_expand_node *node = &graph[graph_root_index]; const int *next_node; - const int *stack[elt_n]; + const int *stack[MLX5_RSS_EXP_ELT_N]; int stack_pos = 0; - struct rte_flow_item flow_items[elt_n]; + struct rte_flow_item flow_items[MLX5_RSS_EXP_ELT_N]; unsigned int i; size_t lsize; size_t user_pattern_size = 0; @@ -261,10 +262,10 @@ mlx5_flow_expand_rss(struct mlx5_flow_expand_rss *buf, size_t size, memset(&missed_item, 0, sizeof(missed_item)); lsize = offsetof(struct mlx5_flow_expand_rss, entry) + - elt_n * sizeof(buf->entry[0]); + MLX5_RSS_EXP_ELT_N * sizeof(buf->entry[0]); if (lsize <= size) { buf->entry[0].priority = 0; - buf->entry[0].pattern = (void *)&buf->entry[elt_n]; + buf->entry[0].pattern = (void *)&buf->entry[MLX5_RSS_EXP_ELT_N]; buf->entries = 0; addr = buf->entry[0].pattern; } @@ -367,7 +368,7 @@ mlx5_flow_expand_rss(struct mlx5_flow_expand_rss *buf, size_t size, /* Go deeper. */ if (node->next) { next_node = node->next; - if (stack_pos++ == elt_n) { + if (stack_pos++ == MLX5_RSS_EXP_ELT_N) { rte_errno = E2BIG; return -rte_errno; } -- 2.16.1.windows.4 ^ permalink raw reply [flat|nested] 19+ messages in thread
[parent not found: <20201213102056.11380-1-talshn@nvidia.com>]
* [dpdk-stable] [PATCH v3 01/32] net/mlx5: fix folding constant array error [not found] ` <20201213102056.11380-1-talshn@nvidia.com> @ 2020-12-13 10:20 ` Tal Shnaiderman [not found] ` <20201213205005.7300-1-talshn@nvidia.com> 2020-12-13 10:20 ` [dpdk-stable] [PATCH v3 04/32] net/mlx5: fix freeing packet pacing Tal Shnaiderman 2020-12-13 10:20 ` [dpdk-stable] [PATCH v3 11/32] net/mlx5: fix adding destroy flow action wrapper Tal Shnaiderman 2 siblings, 1 reply; 19+ messages in thread From: Tal Shnaiderman @ 2020-12-13 10:20 UTC (permalink / raw) To: dev; +Cc: thomas, matan, rasland, ophirmu, stable Before this commit the PMD used: const int elt_n = 8 const int *stack[elt_n]; In Windows clang compiler complains: net/mlx5/mlx5_flow.c:215:19: error: variable length array folded to constant array as an extension [-Werror,-Wgnu-folding-constant] Fix it by using a constant macro definition instead of a variable: #define MLX5_RSS_EXP_ELT_N 8 const int *stack[MLX5_RSS_EXP_ELT_N]; Fixes: c7870bfe09dc ("ethdev: move RSS expansion code to mlx5 driver") Cc: stable@dpdk.org Signed-off-by: Tal Shnaiderman <talshn@nvidia.com> Signed-off-by: Ophir Munk <ophirmu@nvidia.com> --- drivers/net/mlx5/mlx5_flow.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/drivers/net/mlx5/mlx5_flow.c b/drivers/net/mlx5/mlx5_flow.c index 82e24d7067..bf86aaaa39 100644 --- a/drivers/net/mlx5/mlx5_flow.c +++ b/drivers/net/mlx5/mlx5_flow.c @@ -212,6 +212,8 @@ mlx5_flow_expand_rss_item_complete(const struct rte_flow_item *item) return ret; } +#define MLX5_RSS_EXP_ELT_N 8 + /** * Expand RSS flows into several possible flows according to the RSS hash * fields requested and the driver capabilities. @@ -242,13 +244,12 @@ mlx5_flow_expand_rss(struct mlx5_flow_expand_rss *buf, size_t size, const struct mlx5_flow_expand_node graph[], int graph_root_index) { - const int elt_n = 8; const struct rte_flow_item *item; const struct mlx5_flow_expand_node *node = &graph[graph_root_index]; const int *next_node; - const int *stack[elt_n]; + const int *stack[MLX5_RSS_EXP_ELT_N]; int stack_pos = 0; - struct rte_flow_item flow_items[elt_n]; + struct rte_flow_item flow_items[MLX5_RSS_EXP_ELT_N]; unsigned int i; size_t lsize; size_t user_pattern_size = 0; @@ -261,10 +262,10 @@ mlx5_flow_expand_rss(struct mlx5_flow_expand_rss *buf, size_t size, memset(&missed_item, 0, sizeof(missed_item)); lsize = offsetof(struct mlx5_flow_expand_rss, entry) + - elt_n * sizeof(buf->entry[0]); + MLX5_RSS_EXP_ELT_N * sizeof(buf->entry[0]); if (lsize <= size) { buf->entry[0].priority = 0; - buf->entry[0].pattern = (void *)&buf->entry[elt_n]; + buf->entry[0].pattern = (void *)&buf->entry[MLX5_RSS_EXP_ELT_N]; buf->entries = 0; addr = buf->entry[0].pattern; } @@ -367,7 +368,7 @@ mlx5_flow_expand_rss(struct mlx5_flow_expand_rss *buf, size_t size, /* Go deeper. */ if (node->next) { next_node = node->next; - if (stack_pos++ == elt_n) { + if (stack_pos++ == MLX5_RSS_EXP_ELT_N) { rte_errno = E2BIG; return -rte_errno; } -- 2.16.1.windows.4 ^ permalink raw reply [flat|nested] 19+ messages in thread
[parent not found: <20201213205005.7300-1-talshn@nvidia.com>]
* [dpdk-stable] [PATCH v4 01/32] net/mlx5: fix folding constant array error [not found] ` <20201213205005.7300-1-talshn@nvidia.com> @ 2020-12-13 20:49 ` Tal Shnaiderman [not found] ` <20201228095436.14996-1-talshn@nvidia.com> 2020-12-13 20:49 ` [dpdk-stable] [PATCH v4 04/32] net/mlx5: fix freeing packet pacing Tal Shnaiderman 2020-12-13 20:49 ` [dpdk-stable] [PATCH v4 11/32] net/mlx5: fix adding destroy flow action wrapper Tal Shnaiderman 2 siblings, 1 reply; 19+ messages in thread From: Tal Shnaiderman @ 2020-12-13 20:49 UTC (permalink / raw) To: dev; +Cc: thomas, matan, rasland, ophirmu, stable Before this commit the PMD used: const int elt_n = 8 const int *stack[elt_n]; In Windows clang compiler complains: net/mlx5/mlx5_flow.c:215:19: error: variable length array folded to constant array as an extension [-Werror,-Wgnu-folding-constant] Fix it by using a constant macro definition instead of a variable: #define MLX5_RSS_EXP_ELT_N 8 const int *stack[MLX5_RSS_EXP_ELT_N]; Fixes: c7870bfe09dc ("ethdev: move RSS expansion code to mlx5 driver") Cc: stable@dpdk.org Signed-off-by: Tal Shnaiderman <talshn@nvidia.com> Signed-off-by: Ophir Munk <ophirmu@nvidia.com> Acked-by: Matan Azrad <matan@nvidia.com> --- drivers/net/mlx5/mlx5_flow.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/drivers/net/mlx5/mlx5_flow.c b/drivers/net/mlx5/mlx5_flow.c index 82e24d7067..bf86aaaa39 100644 --- a/drivers/net/mlx5/mlx5_flow.c +++ b/drivers/net/mlx5/mlx5_flow.c @@ -212,6 +212,8 @@ mlx5_flow_expand_rss_item_complete(const struct rte_flow_item *item) return ret; } +#define MLX5_RSS_EXP_ELT_N 8 + /** * Expand RSS flows into several possible flows according to the RSS hash * fields requested and the driver capabilities. @@ -242,13 +244,12 @@ mlx5_flow_expand_rss(struct mlx5_flow_expand_rss *buf, size_t size, const struct mlx5_flow_expand_node graph[], int graph_root_index) { - const int elt_n = 8; const struct rte_flow_item *item; const struct mlx5_flow_expand_node *node = &graph[graph_root_index]; const int *next_node; - const int *stack[elt_n]; + const int *stack[MLX5_RSS_EXP_ELT_N]; int stack_pos = 0; - struct rte_flow_item flow_items[elt_n]; + struct rte_flow_item flow_items[MLX5_RSS_EXP_ELT_N]; unsigned int i; size_t lsize; size_t user_pattern_size = 0; @@ -261,10 +262,10 @@ mlx5_flow_expand_rss(struct mlx5_flow_expand_rss *buf, size_t size, memset(&missed_item, 0, sizeof(missed_item)); lsize = offsetof(struct mlx5_flow_expand_rss, entry) + - elt_n * sizeof(buf->entry[0]); + MLX5_RSS_EXP_ELT_N * sizeof(buf->entry[0]); if (lsize <= size) { buf->entry[0].priority = 0; - buf->entry[0].pattern = (void *)&buf->entry[elt_n]; + buf->entry[0].pattern = (void *)&buf->entry[MLX5_RSS_EXP_ELT_N]; buf->entries = 0; addr = buf->entry[0].pattern; } @@ -367,7 +368,7 @@ mlx5_flow_expand_rss(struct mlx5_flow_expand_rss *buf, size_t size, /* Go deeper. */ if (node->next) { next_node = node->next; - if (stack_pos++ == elt_n) { + if (stack_pos++ == MLX5_RSS_EXP_ELT_N) { rte_errno = E2BIG; return -rte_errno; } -- 2.16.1.windows.4 ^ permalink raw reply [flat|nested] 19+ messages in thread
[parent not found: <20201228095436.14996-1-talshn@nvidia.com>]
* [dpdk-stable] [PATCH v5 01/32] net/mlx5: fix folding constant array error [not found] ` <20201228095436.14996-1-talshn@nvidia.com> @ 2020-12-28 9:54 ` Tal Shnaiderman 2020-12-28 9:54 ` [dpdk-stable] [PATCH v5 04/32] net/mlx5: fix freeing packet pacing Tal Shnaiderman 2020-12-28 9:54 ` [dpdk-stable] [PATCH v5 11/32] net/mlx5: fix adding destroy flow action wrapper Tal Shnaiderman 2 siblings, 0 replies; 19+ messages in thread From: Tal Shnaiderman @ 2020-12-28 9:54 UTC (permalink / raw) To: dev; +Cc: thomas, matan, rasland, ophirmu, stable Before this commit the PMD used: const int elt_n = 8 const int *stack[elt_n]; In Windows clang compiler complains: net/mlx5/mlx5_flow.c:215:19: error: variable length array folded to constant array as an extension [-Werror,-Wgnu-folding-constant] Fix it by using a constant macro definition instead of a variable: #define MLX5_RSS_EXP_ELT_N 8 const int *stack[MLX5_RSS_EXP_ELT_N]; Fixes: c7870bfe09dc ("ethdev: move RSS expansion code to mlx5 driver") Cc: stable@dpdk.org Signed-off-by: Tal Shnaiderman <talshn@nvidia.com> Signed-off-by: Ophir Munk <ophirmu@nvidia.com> Acked-by: Matan Azrad <matan@nvidia.com> --- drivers/net/mlx5/mlx5_flow.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/drivers/net/mlx5/mlx5_flow.c b/drivers/net/mlx5/mlx5_flow.c index 82e24d7067..bf86aaaa39 100644 --- a/drivers/net/mlx5/mlx5_flow.c +++ b/drivers/net/mlx5/mlx5_flow.c @@ -212,6 +212,8 @@ mlx5_flow_expand_rss_item_complete(const struct rte_flow_item *item) return ret; } +#define MLX5_RSS_EXP_ELT_N 8 + /** * Expand RSS flows into several possible flows according to the RSS hash * fields requested and the driver capabilities. @@ -242,13 +244,12 @@ mlx5_flow_expand_rss(struct mlx5_flow_expand_rss *buf, size_t size, const struct mlx5_flow_expand_node graph[], int graph_root_index) { - const int elt_n = 8; const struct rte_flow_item *item; const struct mlx5_flow_expand_node *node = &graph[graph_root_index]; const int *next_node; - const int *stack[elt_n]; + const int *stack[MLX5_RSS_EXP_ELT_N]; int stack_pos = 0; - struct rte_flow_item flow_items[elt_n]; + struct rte_flow_item flow_items[MLX5_RSS_EXP_ELT_N]; unsigned int i; size_t lsize; size_t user_pattern_size = 0; @@ -261,10 +262,10 @@ mlx5_flow_expand_rss(struct mlx5_flow_expand_rss *buf, size_t size, memset(&missed_item, 0, sizeof(missed_item)); lsize = offsetof(struct mlx5_flow_expand_rss, entry) + - elt_n * sizeof(buf->entry[0]); + MLX5_RSS_EXP_ELT_N * sizeof(buf->entry[0]); if (lsize <= size) { buf->entry[0].priority = 0; - buf->entry[0].pattern = (void *)&buf->entry[elt_n]; + buf->entry[0].pattern = (void *)&buf->entry[MLX5_RSS_EXP_ELT_N]; buf->entries = 0; addr = buf->entry[0].pattern; } @@ -367,7 +368,7 @@ mlx5_flow_expand_rss(struct mlx5_flow_expand_rss *buf, size_t size, /* Go deeper. */ if (node->next) { next_node = node->next; - if (stack_pos++ == elt_n) { + if (stack_pos++ == MLX5_RSS_EXP_ELT_N) { rte_errno = E2BIG; return -rte_errno; } -- 2.16.1.windows.4 ^ permalink raw reply [flat|nested] 19+ messages in thread
* [dpdk-stable] [PATCH v5 04/32] net/mlx5: fix freeing packet pacing [not found] ` <20201228095436.14996-1-talshn@nvidia.com> 2020-12-28 9:54 ` [dpdk-stable] [PATCH v5 " Tal Shnaiderman @ 2020-12-28 9:54 ` Tal Shnaiderman 2020-12-28 9:54 ` [dpdk-stable] [PATCH v5 11/32] net/mlx5: fix adding destroy flow action wrapper Tal Shnaiderman 2 siblings, 0 replies; 19+ messages in thread From: Tal Shnaiderman @ 2020-12-28 9:54 UTC (permalink / raw) To: dev; +Cc: thomas, matan, rasland, ophirmu, stable From: Ophir Munk <ophirmu@nvidia.com> Packet pacing is allocated under condition #ifdef HAVE_MLX5DV_PP_ALLOC. In a similar way - free packet pacing index under the same condition. This update is required to successfully compile under operating systems which do not support packet pacing. Fixes: aef1e20ebeb2 ("net/mlx5: allocate packet pacing context") Cc: stable@dpdk.org Signed-off-by: Ophir Munk <ophirmu@nvidia.com> Acked-by: Matan Azrad <matan@nvidia.com> --- drivers/net/mlx5/mlx5_txpp.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/drivers/net/mlx5/mlx5_txpp.c b/drivers/net/mlx5/mlx5_txpp.c index 2438bf1f1d..21675ab17a 100644 --- a/drivers/net/mlx5/mlx5_txpp.c +++ b/drivers/net/mlx5/mlx5_txpp.c @@ -57,11 +57,16 @@ mlx5_txpp_create_event_channel(struct mlx5_dev_ctx_shared *sh) static void mlx5_txpp_free_pp_index(struct mlx5_dev_ctx_shared *sh) { +#ifdef HAVE_MLX5DV_PP_ALLOC if (sh->txpp.pp) { mlx5_glue->dv_free_pp(sh->txpp.pp); sh->txpp.pp = NULL; sh->txpp.pp_id = 0; } +#else + RTE_SET_USED(sh); + DRV_LOG(ERR, "Freeing pacing index is not supported."); +#endif } /* Allocate Packet Pacing index from kernel via mlx5dv call. */ -- 2.16.1.windows.4 ^ permalink raw reply [flat|nested] 19+ messages in thread
* [dpdk-stable] [PATCH v5 11/32] net/mlx5: fix adding destroy flow action wrapper [not found] ` <20201228095436.14996-1-talshn@nvidia.com> 2020-12-28 9:54 ` [dpdk-stable] [PATCH v5 " Tal Shnaiderman 2020-12-28 9:54 ` [dpdk-stable] [PATCH v5 04/32] net/mlx5: fix freeing packet pacing Tal Shnaiderman @ 2020-12-28 9:54 ` Tal Shnaiderman 2 siblings, 0 replies; 19+ messages in thread From: Tal Shnaiderman @ 2020-12-28 9:54 UTC (permalink / raw) To: dev; +Cc: thomas, matan, rasland, ophirmu, stable From: Ophir Munk <ophirmu@nvidia.com> Glue function destroy_flow_action() was wrapped by OS specific operation mlx5_flow_os_destroy_flow_action(). It was skipped in file mlx5.c. Fixes: b293fbf9672b ("net/mlx5: add OS specific flow actions operations") Cc: stable@dpdk.org Signed-off-by: Ophir Munk <ophirmu@nvidia.com> Acked-by: Matan Azrad <matan@nvidia.com> --- drivers/net/mlx5/mlx5.c | 7 ++++--- drivers/net/mlx5/mlx5_flow_dv.c | 6 +++--- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/drivers/net/mlx5/mlx5.c b/drivers/net/mlx5/mlx5.c index 84123f8e3d..60301d3244 100644 --- a/drivers/net/mlx5/mlx5.c +++ b/drivers/net/mlx5/mlx5.c @@ -38,6 +38,7 @@ #include "mlx5_autoconf.h" #include "mlx5_mr.h" #include "mlx5_flow.h" +#include "mlx5_flow_os.h" #include "rte_pmd_mlx5.h" /* Device parameter to enable RX completion queue compression. */ @@ -415,8 +416,8 @@ mlx5_flow_aso_age_mng_close(struct mlx5_dev_ctx_shared *sh) for (j = 0; j < MLX5_COUNTERS_PER_POOL; ++j) if (pool->actions[j].dr_action) claim_zero - (mlx5_glue->destroy_flow_action - (pool->actions[j].dr_action)); + (mlx5_flow_os_destroy_flow_action + (pool->actions[j].dr_action)); mlx5_free(pool); } mlx5_free(sh->aso_age_mng->pools); @@ -523,7 +524,7 @@ mlx5_flow_counters_mng_close(struct mlx5_dev_ctx_shared *sh) if (cnt->action) claim_zero - (mlx5_glue->destroy_flow_action + (mlx5_flow_os_destroy_flow_action (cnt->action)); if (fallback && MLX5_POOL_GET_CNT (pool, j)->dcs_when_free) diff --git a/drivers/net/mlx5/mlx5_flow_dv.c b/drivers/net/mlx5/mlx5_flow_dv.c index c31737652c..78b5a6b338 100644 --- a/drivers/net/mlx5/mlx5_flow_dv.c +++ b/drivers/net/mlx5/mlx5_flow_dv.c @@ -11117,11 +11117,11 @@ flow_dv_sample_remove_cb(struct mlx5_cache_list *list __rte_unused, struct mlx5_priv *priv = dev->data->dev_private; if (cache_resource->verbs_action) - claim_zero(mlx5_glue->destroy_flow_action + claim_zero(mlx5_flow_os_destroy_flow_action (cache_resource->verbs_action)); if (cache_resource->ft_type == MLX5DV_FLOW_TABLE_TYPE_FDB) { if (cache_resource->default_miss) - claim_zero(mlx5_glue->destroy_flow_action + claim_zero(mlx5_flow_os_destroy_flow_action (cache_resource->default_miss)); } if (cache_resource->normal_path_tbl) @@ -11174,7 +11174,7 @@ flow_dv_dest_array_remove_cb(struct mlx5_cache_list *list __rte_unused, MLX5_ASSERT(cache_resource->action); if (cache_resource->action) - claim_zero(mlx5_glue->destroy_flow_action + claim_zero(mlx5_flow_os_destroy_flow_action (cache_resource->action)); for (; i < cache_resource->num_of_dest; i++) flow_dv_sample_sub_actions_release(dev, -- 2.16.1.windows.4 ^ permalink raw reply [flat|nested] 19+ messages in thread
* [dpdk-stable] [PATCH v4 04/32] net/mlx5: fix freeing packet pacing [not found] ` <20201213205005.7300-1-talshn@nvidia.com> 2020-12-13 20:49 ` [dpdk-stable] [PATCH v4 " Tal Shnaiderman @ 2020-12-13 20:49 ` Tal Shnaiderman 2020-12-13 20:49 ` [dpdk-stable] [PATCH v4 11/32] net/mlx5: fix adding destroy flow action wrapper Tal Shnaiderman 2 siblings, 0 replies; 19+ messages in thread From: Tal Shnaiderman @ 2020-12-13 20:49 UTC (permalink / raw) To: dev; +Cc: thomas, matan, rasland, ophirmu, stable From: Ophir Munk <ophirmu@nvidia.com> Packet pacing is allocated under condition #ifdef HAVE_MLX5DV_PP_ALLOC. In a similar way - free packet pacing index under the same condition. This update is required to successfully compile under operating systems which do not support packet pacing. Fixes: aef1e20ebeb2 ("net/mlx5: allocate packet pacing context") Cc: stable@dpdk.org Signed-off-by: Ophir Munk <ophirmu@nvidia.com> Acked-by: Matan Azrad <matan@nvidia.com> --- drivers/net/mlx5/mlx5_txpp.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/drivers/net/mlx5/mlx5_txpp.c b/drivers/net/mlx5/mlx5_txpp.c index 2438bf1f1d..21675ab17a 100644 --- a/drivers/net/mlx5/mlx5_txpp.c +++ b/drivers/net/mlx5/mlx5_txpp.c @@ -57,11 +57,16 @@ mlx5_txpp_create_event_channel(struct mlx5_dev_ctx_shared *sh) static void mlx5_txpp_free_pp_index(struct mlx5_dev_ctx_shared *sh) { +#ifdef HAVE_MLX5DV_PP_ALLOC if (sh->txpp.pp) { mlx5_glue->dv_free_pp(sh->txpp.pp); sh->txpp.pp = NULL; sh->txpp.pp_id = 0; } +#else + RTE_SET_USED(sh); + DRV_LOG(ERR, "Freeing pacing index is not supported."); +#endif } /* Allocate Packet Pacing index from kernel via mlx5dv call. */ -- 2.16.1.windows.4 ^ permalink raw reply [flat|nested] 19+ messages in thread
* [dpdk-stable] [PATCH v4 11/32] net/mlx5: fix adding destroy flow action wrapper [not found] ` <20201213205005.7300-1-talshn@nvidia.com> 2020-12-13 20:49 ` [dpdk-stable] [PATCH v4 " Tal Shnaiderman 2020-12-13 20:49 ` [dpdk-stable] [PATCH v4 04/32] net/mlx5: fix freeing packet pacing Tal Shnaiderman @ 2020-12-13 20:49 ` Tal Shnaiderman 2 siblings, 0 replies; 19+ messages in thread From: Tal Shnaiderman @ 2020-12-13 20:49 UTC (permalink / raw) To: dev; +Cc: thomas, matan, rasland, ophirmu, stable From: Ophir Munk <ophirmu@nvidia.com> Glue function destroy_flow_action() was wrapped by OS specific operation mlx5_flow_os_destroy_flow_action(). It was skipped in file mlx5.c. Fixes: b293fbf9672b ("net/mlx5: add OS specific flow actions operations") Cc: stable@dpdk.org Signed-off-by: Ophir Munk <ophirmu@nvidia.com> Acked-by: Matan Azrad <matan@nvidia.com> --- drivers/net/mlx5/mlx5.c | 5 +++-- drivers/net/mlx5/mlx5_flow_dv.c | 6 +++--- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/drivers/net/mlx5/mlx5.c b/drivers/net/mlx5/mlx5.c index 84123f8e3d..ea5cf80ac1 100644 --- a/drivers/net/mlx5/mlx5.c +++ b/drivers/net/mlx5/mlx5.c @@ -38,6 +38,7 @@ #include "mlx5_autoconf.h" #include "mlx5_mr.h" #include "mlx5_flow.h" +#include "mlx5_flow_os.h" #include "rte_pmd_mlx5.h" /* Device parameter to enable RX completion queue compression. */ @@ -415,7 +416,7 @@ mlx5_flow_aso_age_mng_close(struct mlx5_dev_ctx_shared *sh) for (j = 0; j < MLX5_COUNTERS_PER_POOL; ++j) if (pool->actions[j].dr_action) claim_zero - (mlx5_glue->destroy_flow_action + (mlx5_flow_os_destroy_flow_action (pool->actions[j].dr_action)); mlx5_free(pool); } @@ -523,7 +524,7 @@ mlx5_flow_counters_mng_close(struct mlx5_dev_ctx_shared *sh) if (cnt->action) claim_zero - (mlx5_glue->destroy_flow_action + (mlx5_flow_os_destroy_flow_action (cnt->action)); if (fallback && MLX5_POOL_GET_CNT (pool, j)->dcs_when_free) diff --git a/drivers/net/mlx5/mlx5_flow_dv.c b/drivers/net/mlx5/mlx5_flow_dv.c index c31737652c..78b5a6b338 100644 --- a/drivers/net/mlx5/mlx5_flow_dv.c +++ b/drivers/net/mlx5/mlx5_flow_dv.c @@ -11117,11 +11117,11 @@ flow_dv_sample_remove_cb(struct mlx5_cache_list *list __rte_unused, struct mlx5_priv *priv = dev->data->dev_private; if (cache_resource->verbs_action) - claim_zero(mlx5_glue->destroy_flow_action + claim_zero(mlx5_flow_os_destroy_flow_action (cache_resource->verbs_action)); if (cache_resource->ft_type == MLX5DV_FLOW_TABLE_TYPE_FDB) { if (cache_resource->default_miss) - claim_zero(mlx5_glue->destroy_flow_action + claim_zero(mlx5_flow_os_destroy_flow_action (cache_resource->default_miss)); } if (cache_resource->normal_path_tbl) @@ -11174,7 +11174,7 @@ flow_dv_dest_array_remove_cb(struct mlx5_cache_list *list __rte_unused, MLX5_ASSERT(cache_resource->action); if (cache_resource->action) - claim_zero(mlx5_glue->destroy_flow_action + claim_zero(mlx5_flow_os_destroy_flow_action (cache_resource->action)); for (; i < cache_resource->num_of_dest; i++) flow_dv_sample_sub_actions_release(dev, -- 2.16.1.windows.4 ^ permalink raw reply [flat|nested] 19+ messages in thread
* [dpdk-stable] [PATCH v3 04/32] net/mlx5: fix freeing packet pacing [not found] ` <20201213102056.11380-1-talshn@nvidia.com> 2020-12-13 10:20 ` [dpdk-stable] [PATCH v3 01/32] " Tal Shnaiderman @ 2020-12-13 10:20 ` Tal Shnaiderman 2020-12-13 10:20 ` [dpdk-stable] [PATCH v3 11/32] net/mlx5: fix adding destroy flow action wrapper Tal Shnaiderman 2 siblings, 0 replies; 19+ messages in thread From: Tal Shnaiderman @ 2020-12-13 10:20 UTC (permalink / raw) To: dev; +Cc: thomas, matan, rasland, ophirmu, stable From: Ophir Munk <ophirmu@nvidia.com> Packet pacing is allocated under condition #ifdef HAVE_MLX5DV_PP_ALLOC. In a similar way - free packet pacing index under the same condition. This update is required to successfully compile under operating systems which do not support packet pacing. Fixes: aef1e20ebeb2 ("net/mlx5: allocate packet pacing context") Cc: stable@dpdk.org Signed-off-by: Ophir Munk <ophirmu@nvidia.com> Acked-by: Matan Azrad <matan@nvidia.com> --- drivers/net/mlx5/mlx5_txpp.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/drivers/net/mlx5/mlx5_txpp.c b/drivers/net/mlx5/mlx5_txpp.c index 2438bf1f1d..21675ab17a 100644 --- a/drivers/net/mlx5/mlx5_txpp.c +++ b/drivers/net/mlx5/mlx5_txpp.c @@ -57,11 +57,16 @@ mlx5_txpp_create_event_channel(struct mlx5_dev_ctx_shared *sh) static void mlx5_txpp_free_pp_index(struct mlx5_dev_ctx_shared *sh) { +#ifdef HAVE_MLX5DV_PP_ALLOC if (sh->txpp.pp) { mlx5_glue->dv_free_pp(sh->txpp.pp); sh->txpp.pp = NULL; sh->txpp.pp_id = 0; } +#else + RTE_SET_USED(sh); + DRV_LOG(ERR, "Freeing pacing index is not supported."); +#endif } /* Allocate Packet Pacing index from kernel via mlx5dv call. */ -- 2.16.1.windows.4 ^ permalink raw reply [flat|nested] 19+ messages in thread
* [dpdk-stable] [PATCH v3 11/32] net/mlx5: fix adding destroy flow action wrapper [not found] ` <20201213102056.11380-1-talshn@nvidia.com> 2020-12-13 10:20 ` [dpdk-stable] [PATCH v3 01/32] " Tal Shnaiderman 2020-12-13 10:20 ` [dpdk-stable] [PATCH v3 04/32] net/mlx5: fix freeing packet pacing Tal Shnaiderman @ 2020-12-13 10:20 ` Tal Shnaiderman 2 siblings, 0 replies; 19+ messages in thread From: Tal Shnaiderman @ 2020-12-13 10:20 UTC (permalink / raw) To: dev; +Cc: thomas, matan, rasland, ophirmu, stable From: Ophir Munk <ophirmu@nvidia.com> Glue function destroy_flow_action() was wrapped by OS specific operation mlx5_flow_os_destroy_flow_action(). It was skipped in file mlx5.c. Fixes: b293fbf9672b ("net/mlx5: add OS specific flow actions operations") Cc: stable@dpdk.org Signed-off-by: Ophir Munk <ophirmu@nvidia.com> Acked-by: Matan Azrad <matan@nvidia.com> --- drivers/net/mlx5/mlx5.c | 5 +++-- drivers/net/mlx5/mlx5_flow_dv.c | 6 +++--- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/drivers/net/mlx5/mlx5.c b/drivers/net/mlx5/mlx5.c index 84123f8e3d..ea5cf80ac1 100644 --- a/drivers/net/mlx5/mlx5.c +++ b/drivers/net/mlx5/mlx5.c @@ -38,6 +38,7 @@ #include "mlx5_autoconf.h" #include "mlx5_mr.h" #include "mlx5_flow.h" +#include "mlx5_flow_os.h" #include "rte_pmd_mlx5.h" /* Device parameter to enable RX completion queue compression. */ @@ -415,7 +416,7 @@ mlx5_flow_aso_age_mng_close(struct mlx5_dev_ctx_shared *sh) for (j = 0; j < MLX5_COUNTERS_PER_POOL; ++j) if (pool->actions[j].dr_action) claim_zero - (mlx5_glue->destroy_flow_action + (mlx5_flow_os_destroy_flow_action (pool->actions[j].dr_action)); mlx5_free(pool); } @@ -523,7 +524,7 @@ mlx5_flow_counters_mng_close(struct mlx5_dev_ctx_shared *sh) if (cnt->action) claim_zero - (mlx5_glue->destroy_flow_action + (mlx5_flow_os_destroy_flow_action (cnt->action)); if (fallback && MLX5_POOL_GET_CNT (pool, j)->dcs_when_free) diff --git a/drivers/net/mlx5/mlx5_flow_dv.c b/drivers/net/mlx5/mlx5_flow_dv.c index c31737652c..78b5a6b338 100644 --- a/drivers/net/mlx5/mlx5_flow_dv.c +++ b/drivers/net/mlx5/mlx5_flow_dv.c @@ -11117,11 +11117,11 @@ flow_dv_sample_remove_cb(struct mlx5_cache_list *list __rte_unused, struct mlx5_priv *priv = dev->data->dev_private; if (cache_resource->verbs_action) - claim_zero(mlx5_glue->destroy_flow_action + claim_zero(mlx5_flow_os_destroy_flow_action (cache_resource->verbs_action)); if (cache_resource->ft_type == MLX5DV_FLOW_TABLE_TYPE_FDB) { if (cache_resource->default_miss) - claim_zero(mlx5_glue->destroy_flow_action + claim_zero(mlx5_flow_os_destroy_flow_action (cache_resource->default_miss)); } if (cache_resource->normal_path_tbl) @@ -11174,7 +11174,7 @@ flow_dv_dest_array_remove_cb(struct mlx5_cache_list *list __rte_unused, MLX5_ASSERT(cache_resource->action); if (cache_resource->action) - claim_zero(mlx5_glue->destroy_flow_action + claim_zero(mlx5_flow_os_destroy_flow_action (cache_resource->action)); for (; i < cache_resource->num_of_dest; i++) flow_dv_sample_sub_actions_release(dev, -- 2.16.1.windows.4 ^ permalink raw reply [flat|nested] 19+ messages in thread
* [dpdk-stable] [PATCH v2 04/33] net/mlx5: fix freeing packet pacing [not found] ` <20201210150648.8784-1-talshn@nvidia.com> 2020-12-10 15:06 ` [dpdk-stable] [PATCH v2 01/33] net/mlx5: fix folding constant array error Tal Shnaiderman @ 2020-12-10 15:06 ` Tal Shnaiderman 2020-12-10 15:06 ` [dpdk-stable] [PATCH v2 11/33] net/mlx5: fix adding destroy flow action wrapper Tal Shnaiderman 2 siblings, 0 replies; 19+ messages in thread From: Tal Shnaiderman @ 2020-12-10 15:06 UTC (permalink / raw) To: dev; +Cc: thomas, matan, rasland, ophirmu, stable From: Ophir Munk <ophirmu@nvidia.com> Packet pacing is allocated under condition #ifdef HAVE_MLX5DV_PP_ALLOC. In a similar way - free packet pacing index under the same condition. This update is required to successfully compile under operating systems which do not support packet pacing. Fixes: aef1e20ebeb2 ("net/mlx5: allocate packet pacing context") Cc: stable@dpdk.org Signed-off-by: Ophir Munk <ophirmu@nvidia.com> Acked-by: Matan Azrad <matan@nvidia.com> --- drivers/net/mlx5/mlx5_txpp.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/drivers/net/mlx5/mlx5_txpp.c b/drivers/net/mlx5/mlx5_txpp.c index 2438bf1f1d..21675ab17a 100644 --- a/drivers/net/mlx5/mlx5_txpp.c +++ b/drivers/net/mlx5/mlx5_txpp.c @@ -57,11 +57,16 @@ mlx5_txpp_create_event_channel(struct mlx5_dev_ctx_shared *sh) static void mlx5_txpp_free_pp_index(struct mlx5_dev_ctx_shared *sh) { +#ifdef HAVE_MLX5DV_PP_ALLOC if (sh->txpp.pp) { mlx5_glue->dv_free_pp(sh->txpp.pp); sh->txpp.pp = NULL; sh->txpp.pp_id = 0; } +#else + RTE_SET_USED(sh); + DRV_LOG(ERR, "Freeing pacing index is not supported."); +#endif } /* Allocate Packet Pacing index from kernel via mlx5dv call. */ -- 2.16.1.windows.4 ^ permalink raw reply [flat|nested] 19+ messages in thread
* [dpdk-stable] [PATCH v2 11/33] net/mlx5: fix adding destroy flow action wrapper [not found] ` <20201210150648.8784-1-talshn@nvidia.com> 2020-12-10 15:06 ` [dpdk-stable] [PATCH v2 01/33] net/mlx5: fix folding constant array error Tal Shnaiderman 2020-12-10 15:06 ` [dpdk-stable] [PATCH v2 04/33] net/mlx5: fix freeing packet pacing Tal Shnaiderman @ 2020-12-10 15:06 ` Tal Shnaiderman 2 siblings, 0 replies; 19+ messages in thread From: Tal Shnaiderman @ 2020-12-10 15:06 UTC (permalink / raw) To: dev; +Cc: thomas, matan, rasland, ophirmu, stable From: Ophir Munk <ophirmu@nvidia.com> Glue function destroy_flow_action() was wrapped by OS specific operation mlx5_flow_os_destroy_flow_action(). It was skipped in file mlx5.c. Fixes: b293fbf9672b ("net/mlx5: add OS specific flow actions operations") Cc: stable@dpdk.org Signed-off-by: Ophir Munk <ophirmu@nvidia.com> Acked-by: Matan Azrad <matan@nvidia.com> --- drivers/net/mlx5/mlx5.c | 5 +++-- drivers/net/mlx5/mlx5_flow_dv.c | 6 +++--- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/drivers/net/mlx5/mlx5.c b/drivers/net/mlx5/mlx5.c index 84123f8e3d..ea5cf80ac1 100644 --- a/drivers/net/mlx5/mlx5.c +++ b/drivers/net/mlx5/mlx5.c @@ -38,6 +38,7 @@ #include "mlx5_autoconf.h" #include "mlx5_mr.h" #include "mlx5_flow.h" +#include "mlx5_flow_os.h" #include "rte_pmd_mlx5.h" /* Device parameter to enable RX completion queue compression. */ @@ -415,7 +416,7 @@ mlx5_flow_aso_age_mng_close(struct mlx5_dev_ctx_shared *sh) for (j = 0; j < MLX5_COUNTERS_PER_POOL; ++j) if (pool->actions[j].dr_action) claim_zero - (mlx5_glue->destroy_flow_action + (mlx5_flow_os_destroy_flow_action (pool->actions[j].dr_action)); mlx5_free(pool); } @@ -523,7 +524,7 @@ mlx5_flow_counters_mng_close(struct mlx5_dev_ctx_shared *sh) if (cnt->action) claim_zero - (mlx5_glue->destroy_flow_action + (mlx5_flow_os_destroy_flow_action (cnt->action)); if (fallback && MLX5_POOL_GET_CNT (pool, j)->dcs_when_free) diff --git a/drivers/net/mlx5/mlx5_flow_dv.c b/drivers/net/mlx5/mlx5_flow_dv.c index c31737652c..78b5a6b338 100644 --- a/drivers/net/mlx5/mlx5_flow_dv.c +++ b/drivers/net/mlx5/mlx5_flow_dv.c @@ -11117,11 +11117,11 @@ flow_dv_sample_remove_cb(struct mlx5_cache_list *list __rte_unused, struct mlx5_priv *priv = dev->data->dev_private; if (cache_resource->verbs_action) - claim_zero(mlx5_glue->destroy_flow_action + claim_zero(mlx5_flow_os_destroy_flow_action (cache_resource->verbs_action)); if (cache_resource->ft_type == MLX5DV_FLOW_TABLE_TYPE_FDB) { if (cache_resource->default_miss) - claim_zero(mlx5_glue->destroy_flow_action + claim_zero(mlx5_flow_os_destroy_flow_action (cache_resource->default_miss)); } if (cache_resource->normal_path_tbl) @@ -11174,7 +11174,7 @@ flow_dv_dest_array_remove_cb(struct mlx5_cache_list *list __rte_unused, MLX5_ASSERT(cache_resource->action); if (cache_resource->action) - claim_zero(mlx5_glue->destroy_flow_action + claim_zero(mlx5_flow_os_destroy_flow_action (cache_resource->action)); for (; i < cache_resource->num_of_dest; i++) flow_dv_sample_sub_actions_release(dev, -- 2.16.1.windows.4 ^ permalink raw reply [flat|nested] 19+ messages in thread
* [dpdk-stable] [PATCH v1 02/72] net/mlx5: fix flow sample definitions [not found] <20201027232335.31427-1-ophirmu@nvidia.com> 2020-10-27 23:22 ` [dpdk-stable] [PATCH v1 01/72] mlx5: fix relaxed ordering DevX flow Ophir Munk @ 2020-10-27 23:22 ` Ophir Munk 2020-10-27 23:22 ` [dpdk-stable] [PATCH v1 06/72] net/mlx5: fix freeing packet pacing Ophir Munk ` (3 subsequent siblings) 5 siblings, 0 replies; 19+ messages in thread From: Ophir Munk @ 2020-10-27 23:22 UTC (permalink / raw) To: dev, Raslan Darawsheh Cc: Ophir Munk, Matan Azrad, Tal Shnaiderman, Thomas Monjalon, stable Flow sampling is dependent on rdma-core support. The definitions which enable sampling code are HAVE_MLX5_DR_CREATE_ACTION_FLOW_SAMPLE and HAVE_MLX5_DR_CREATE_ACTION_DEST_ARRAY. This commit expands these definitions to more functions which use sampling logic and structs: flow_dv_sample_resource_register, flow_dv_dest_array_resource_register, flow_dv_sample_resource_release, flow_dv_dest_array_resource_release. Hence any system without the required rdma-core support will not compile or execute redundant sampling code. Fixes: eb7368b0109a ("net/mlx5: update translate function for sample action") Fixes: e8a1d23ae9a8 ("net/mlx5: update translate function for mirror") Cc: stable@dpdk.org Signed-off-by: Ophir Munk <ophirmu@nvidia.com> --- drivers/net/mlx5/mlx5_flow_dv.c | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/drivers/net/mlx5/mlx5_flow_dv.c b/drivers/net/mlx5/mlx5_flow_dv.c index dafe07f..2560559 100644 --- a/drivers/net/mlx5/mlx5_flow_dv.c +++ b/drivers/net/mlx5/mlx5_flow_dv.c @@ -8629,6 +8629,7 @@ flow_dv_sample_resource_register(struct rte_eth_dev *dev, void **sample_dv_actions, struct rte_flow_error *error) { +#ifdef HAVE_MLX5_DR_CREATE_ACTION_FLOW_SAMPLE struct mlx5_flow_dv_sample_resource *cache_resource; struct mlx5dv_dr_flow_sampler_attr sampler_attr; struct mlx5_priv *priv = dev->data->dev_private; @@ -8746,6 +8747,17 @@ flow_dv_sample_resource_register(struct rte_eth_dev *dev, dev_flow->handle->dvh.rix_sample); dev_flow->handle->dvh.rix_sample = 0; return -rte_errno; +#else + RTE_SET_USED(dev); + RTE_SET_USED(attr); + RTE_SET_USED(resource); + RTE_SET_USED(dev_flow); + RTE_SET_USED(sample_dv_actions); + RTE_SET_USED(error); + DRV_LOG(ERR, "Sample resource registration is not supported."); + rte_errno = ENOTSUP; + return -ENOTSUP; +#endif /* HAVE_MLX5_DR_CREATE_ACTION_FLOW_SAMPLE */ } /** @@ -8772,6 +8784,7 @@ flow_dv_dest_array_resource_register(struct rte_eth_dev *dev, struct mlx5_flow *dev_flow, struct rte_flow_error *error) { +#ifdef HAVE_MLX5_DR_CREATE_ACTION_DEST_ARRAY struct mlx5_flow_dv_dest_array_resource *cache_resource; struct mlx5dv_dr_action_dest_attr *dest_attr[MLX5_MAX_DEST_NUM] = { 0 }; struct mlx5dv_dr_action_dest_reformat dest_reformat[MLX5_MAX_DEST_NUM]; @@ -8894,6 +8907,16 @@ flow_dv_dest_array_resource_register(struct rte_eth_dev *dev, dev_flow->handle->dvh.rix_dest_array); dev_flow->handle->dvh.rix_dest_array = 0; return -rte_errno; +#else + RTE_SET_USED(dev); + RTE_SET_USED(attr); + RTE_SET_USED(resource); + RTE_SET_USED(dev_flow); + RTE_SET_USED(error); + DRV_LOG(ERR, "Dest array resource registration is not supported."); + rte_errno = ENOTSUP; + return -ENOTSUP; +#endif /* HAVE_MLX5_DR_CREATE_ACTION_DEST_ARRAY */ } /** @@ -10758,6 +10781,7 @@ static int flow_dv_sample_resource_release(struct rte_eth_dev *dev, struct mlx5_flow_handle *handle) { +#ifdef HAVE_MLX5_DR_CREATE_ACTION_FLOW_SAMPLE struct mlx5_priv *priv = dev->data->dev_private; uint32_t idx = handle->dvh.rix_sample; struct mlx5_flow_dv_sample_resource *cache_resource; @@ -10807,6 +10831,12 @@ flow_dv_sample_resource_release(struct rte_eth_dev *dev, return 0; } return 1; +#else + RTE_SET_USED(dev); + RTE_SET_USED(handle); + DRV_LOG(ERR, "Sample resource release is not supported."); + return 0; +#endif /* HAVE_MLX5_DR_CREATE_ACTION_FLOW_SAMPLE */ } /** @@ -10824,6 +10854,7 @@ static int flow_dv_dest_array_resource_release(struct rte_eth_dev *dev, struct mlx5_flow_handle *handle) { +#ifdef HAVE_MLX5_DR_CREATE_ACTION_DEST_ARRAY struct mlx5_priv *priv = dev->data->dev_private; struct mlx5_flow_dv_dest_array_resource *cache_resource; struct mlx5_flow_sub_actions_idx *mdest_act_res; @@ -10875,6 +10906,12 @@ flow_dv_dest_array_resource_release(struct rte_eth_dev *dev, return 0; } return 1; +#else + RTE_SET_USED(dev); + RTE_SET_USED(handle); + DRV_LOG(ERR, "Dest array resource release is not supported."); + return 0; +#endif /* ifdef HAVE_MLX5_DR_CREATE_ACTION_DEST_ARRAY */ } /** -- 2.8.4 ^ permalink raw reply [flat|nested] 19+ messages in thread
* [dpdk-stable] [PATCH v1 06/72] net/mlx5: fix freeing packet pacing [not found] <20201027232335.31427-1-ophirmu@nvidia.com> 2020-10-27 23:22 ` [dpdk-stable] [PATCH v1 01/72] mlx5: fix relaxed ordering DevX flow Ophir Munk 2020-10-27 23:22 ` [dpdk-stable] [PATCH v1 02/72] net/mlx5: fix flow sample definitions Ophir Munk @ 2020-10-27 23:22 ` Ophir Munk 2020-10-27 23:23 ` [dpdk-stable] [PATCH v1 62/72] net/mlx5/linux: fix add OS dest_devx_tir action Ophir Munk ` (2 subsequent siblings) 5 siblings, 0 replies; 19+ messages in thread From: Ophir Munk @ 2020-10-27 23:22 UTC (permalink / raw) To: dev, Raslan Darawsheh Cc: Ophir Munk, Matan Azrad, Tal Shnaiderman, Thomas Monjalon, stable Packet pacing is allocated under condition #ifdef HAVE_MLX5DV_PP_ALLOC. In a similar way - free packet pacing index under the same condition. This update is required to successfully compile under operating systems which do not support packet pacing. Fixes: aef1e20ebeb2 ("net/mlx5: allocate packet pacing context") Cc: stable@dpdk.org Signed-off-by: Ophir Munk <ophirmu@nvidia.com> Acked-by: Matan Azrad <matan@nvidia.com> --- drivers/net/mlx5/mlx5_txpp.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/drivers/net/mlx5/mlx5_txpp.c b/drivers/net/mlx5/mlx5_txpp.c index 37355fa..3a16f87 100644 --- a/drivers/net/mlx5/mlx5_txpp.c +++ b/drivers/net/mlx5/mlx5_txpp.c @@ -57,11 +57,16 @@ mlx5_txpp_create_event_channel(struct mlx5_dev_ctx_shared *sh) static void mlx5_txpp_free_pp_index(struct mlx5_dev_ctx_shared *sh) { +#ifdef HAVE_MLX5DV_PP_ALLOC if (sh->txpp.pp) { mlx5_glue->dv_free_pp(sh->txpp.pp); sh->txpp.pp = NULL; sh->txpp.pp_id = 0; } +#else + RTE_SET_USED(sh); + DRV_LOG(ERR, "Freeing pacing index is not supported."); +#endif } /* Allocate Packet Pacing index from kernel via mlx5dv call. */ -- 2.8.4 ^ permalink raw reply [flat|nested] 19+ messages in thread
* [dpdk-stable] [PATCH v1 62/72] net/mlx5/linux: fix add OS dest_devx_tir action [not found] <20201027232335.31427-1-ophirmu@nvidia.com> ` (2 preceding siblings ...) 2020-10-27 23:22 ` [dpdk-stable] [PATCH v1 06/72] net/mlx5: fix freeing packet pacing Ophir Munk @ 2020-10-27 23:23 ` Ophir Munk 2020-10-27 23:23 ` [dpdk-stable] [PATCH v1 70/72] common/mlx5: fix Windows warnings on missing enum Ophir Munk 2020-10-27 23:23 ` [dpdk-stable] [PATCH v1 71/72] net/mlx5: fix Windows warnings on get_if_name Ophir Munk 5 siblings, 0 replies; 19+ messages in thread From: Ophir Munk @ 2020-10-27 23:23 UTC (permalink / raw) To: dev, Raslan Darawsheh Cc: Ophir Munk, Matan Azrad, Tal Shnaiderman, Thomas Monjalon, stable Wrap glue call dv_create_flow_action_dest_devx_tir() with an OS API. Fixes: b293fbf9672b ("net/mlx5: add OS specific flow actions operations") Cc: stable@dpdk.org Signed-off-by: Ophir Munk <ophirmu@nvidia.com> --- drivers/net/mlx5/linux/mlx5_flow_os.h | 26 ++++++++++++++++++++++++++ drivers/net/mlx5/mlx5_devx.c | 7 +++---- 2 files changed, 29 insertions(+), 4 deletions(-) diff --git a/drivers/net/mlx5/linux/mlx5_flow_os.h b/drivers/net/mlx5/linux/mlx5_flow_os.h index 7706b3b..6f3b732 100644 --- a/drivers/net/mlx5/linux/mlx5_flow_os.h +++ b/drivers/net/mlx5/linux/mlx5_flow_os.h @@ -367,6 +367,32 @@ mlx5_flow_os_create_flow_action_default_miss(void **action) } /** + * Create flow action: dest_devx_tir + * + * @param[in] tir + * Pointer to DevX tir object + * @param[out] action + * Pointer to a valid action on success, NULL otherwise. + * + * @return + * 0 on success, or -1 on failure and errno is set. + */ +static inline int +mlx5_flow_os_create_flow_action_dest_devx_tir(struct mlx5_devx_obj *tir, + void **action) +{ +#ifdef HAVE_IBV_FLOW_DV_SUPPORT + *action = mlx5_glue->dv_create_flow_action_dest_devx_tir(tir->obj); + return (*action) ? 0 : -1; +#else + /* If no DV support - skip the operation and return success */ + RTE_SET_USED(tir); + *action = 0; + return 0; +#endif +} + +/** * Destroy flow action. * * @param[in] action diff --git a/drivers/net/mlx5/mlx5_devx.c b/drivers/net/mlx5/mlx5_devx.c index 23d4190..1aff17c 100644 --- a/drivers/net/mlx5/mlx5_devx.c +++ b/drivers/net/mlx5/mlx5_devx.c @@ -23,7 +23,7 @@ #include "mlx5_utils.h" #include "mlx5_devx.h" #include "mlx5_flow.h" - +#include "mlx5_flow_os.h" /** * Modify RQ vlan stripping offload @@ -855,9 +855,8 @@ mlx5_devx_hrxq_new(struct rte_eth_dev *dev, struct mlx5_hrxq *hrxq, goto error; } #ifdef HAVE_IBV_FLOW_DV_SUPPORT - hrxq->action = mlx5_glue->dv_create_flow_action_dest_devx_tir - (hrxq->tir->obj); - if (!hrxq->action) { + if (mlx5_flow_os_create_flow_action_dest_devx_tir(hrxq->tir, + &hrxq->action)) { rte_errno = errno; goto error; } -- 2.8.4 ^ permalink raw reply [flat|nested] 19+ messages in thread
* [dpdk-stable] [PATCH v1 70/72] common/mlx5: fix Windows warnings on missing enum [not found] <20201027232335.31427-1-ophirmu@nvidia.com> ` (3 preceding siblings ...) 2020-10-27 23:23 ` [dpdk-stable] [PATCH v1 62/72] net/mlx5/linux: fix add OS dest_devx_tir action Ophir Munk @ 2020-10-27 23:23 ` Ophir Munk 2020-10-27 23:23 ` [dpdk-stable] [PATCH v1 71/72] net/mlx5: fix Windows warnings on get_if_name Ophir Munk 5 siblings, 0 replies; 19+ messages in thread From: Ophir Munk @ 2020-10-27 23:23 UTC (permalink / raw) To: dev, Raslan Darawsheh Cc: Ophir Munk, Matan Azrad, Tal Shnaiderman, Thomas Monjalon, stable From: Tal Shnaiderman <talshn@nvidia.com> This commit replaces included file mlx5_glue.h with file mlx5_prm.h in file mlx5_common_mp.h. The new inclusion defines 'enum ibv_wq_state' which is used in file mlx5_common_mp.h and causes Windows compilation warnings if not declared in advance. Fixes: 9d60f54569fd ("common/mlx5: remove inclusion of Verbs header files") Cc: stable@dpdk.org Signed-off-by: Tal Shnaiderman <talshn@nvidia.com> --- drivers/common/mlx5/mlx5_common_mp.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/common/mlx5/mlx5_common_mp.h b/drivers/common/mlx5/mlx5_common_mp.h index 6829141..dc6563c 100644 --- a/drivers/common/mlx5/mlx5_common_mp.h +++ b/drivers/common/mlx5/mlx5_common_mp.h @@ -6,7 +6,7 @@ #ifndef RTE_PMD_MLX5_COMMON_MP_H_ #define RTE_PMD_MLX5_COMMON_MP_H_ -#include <mlx5_glue.h> +#include <mlx5_prm.h> #include <rte_eal.h> #include <rte_string_fns.h> -- 2.8.4 ^ permalink raw reply [flat|nested] 19+ messages in thread
* [dpdk-stable] [PATCH v1 71/72] net/mlx5: fix Windows warnings on get_if_name [not found] <20201027232335.31427-1-ophirmu@nvidia.com> ` (4 preceding siblings ...) 2020-10-27 23:23 ` [dpdk-stable] [PATCH v1 70/72] common/mlx5: fix Windows warnings on missing enum Ophir Munk @ 2020-10-27 23:23 ` Ophir Munk 2020-10-28 7:34 ` Thomas Monjalon 5 siblings, 1 reply; 19+ messages in thread From: Ophir Munk @ 2020-10-27 23:23 UTC (permalink / raw) To: dev, Raslan Darawsheh Cc: Ophir Munk, Matan Azrad, Tal Shnaiderman, Thomas Monjalon, stable From: Tal Shnaiderman <talshn@nvidia.com> Windows warns on missing function prototype get_if_name. To fix it - move the prototype to shared file mlx5.h and add missing definition IF_NAMESIZE to Windows mlx5_os.h file. Fixes: e9c0b96e3526 ("net/mlx5: move Linux ifname function") Cc: stable@dpdk.org Signed-off-by: Tal Shnaiderman <talshn@nvidia.com> --- drivers/net/mlx5/linux/mlx5_os.h | 4 ---- drivers/net/mlx5/mlx5.h | 1 + drivers/net/mlx5/windows/mlx5_os.h | 3 +++ 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/net/mlx5/linux/mlx5_os.h b/drivers/net/mlx5/linux/mlx5_os.h index 759def2..e9cd511 100644 --- a/drivers/net/mlx5/linux/mlx5_os.h +++ b/drivers/net/mlx5/linux/mlx5_os.h @@ -17,8 +17,4 @@ enum { #define PCI_DRV_FLAGS (RTE_PCI_DRV_INTR_LSC | \ RTE_PCI_DRV_INTR_RMV | \ RTE_PCI_DRV_PROBE_AGAIN) - -/* mlx5_ethdev_os.c */ - -int mlx5_get_ifname(const struct rte_eth_dev *dev, char (*ifname)[IF_NAMESIZE]); #endif /* RTE_PMD_MLX5_OS_H_ */ diff --git a/drivers/net/mlx5/mlx5.h b/drivers/net/mlx5/mlx5.h index b1385b8..6475fcc 100644 --- a/drivers/net/mlx5/mlx5.h +++ b/drivers/net/mlx5/mlx5.h @@ -976,6 +976,7 @@ int mlx5_dev_configure_rss_reta(struct rte_eth_dev *dev); /* mlx5_ethdev_os.c */ +int mlx5_get_ifname(const struct rte_eth_dev *dev, char (*ifname)[IF_NAMESIZE]); unsigned int mlx5_ifindex(const struct rte_eth_dev *dev); int mlx5_get_mac(struct rte_eth_dev *dev, uint8_t (*mac)[RTE_ETHER_ADDR_LEN]); int mlx5_get_mtu(struct rte_eth_dev *dev, uint16_t *mtu); diff --git a/drivers/net/mlx5/windows/mlx5_os.h b/drivers/net/mlx5/windows/mlx5_os.h index 563cfa4..d21d4f2 100644 --- a/drivers/net/mlx5/windows/mlx5_os.h +++ b/drivers/net/mlx5/windows/mlx5_os.h @@ -21,4 +21,7 @@ enum { #ifndef ETOOMANYREFS #define ETOOMANYREFS 109 /* Too many references: cannot splice */ #endif +#ifndef IF_NAMESIZE +#define IF_NAMESIZE 128 +#endif #endif /* RTE_PMD_MLX5_OS_H_ */ -- 2.8.4 ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [dpdk-stable] [PATCH v1 71/72] net/mlx5: fix Windows warnings on get_if_name 2020-10-27 23:23 ` [dpdk-stable] [PATCH v1 71/72] net/mlx5: fix Windows warnings on get_if_name Ophir Munk @ 2020-10-28 7:34 ` Thomas Monjalon 0 siblings, 0 replies; 19+ messages in thread From: Thomas Monjalon @ 2020-10-28 7:34 UTC (permalink / raw) To: Ophir Munk; +Cc: dev, Raslan Darawsheh, Matan Azrad, Tal Shnaiderman, stable 28/10/2020 00:23, Ophir Munk: > From: Tal Shnaiderman <talshn@nvidia.com> > > Windows warns on missing function prototype get_if_name. To fix it - > move the prototype to shared file mlx5.h and add missing definition > IF_NAMESIZE to Windows mlx5_os.h file. > > Fixes: e9c0b96e3526 ("net/mlx5: move Linux ifname function") > Cc: stable@dpdk.org > > Signed-off-by: Tal Shnaiderman <talshn@nvidia.com> > --- [...] > --- a/drivers/net/mlx5/windows/mlx5_os.h > +++ b/drivers/net/mlx5/windows/mlx5_os.h > @@ -21,4 +21,7 @@ enum { > #ifndef ETOOMANYREFS > #define ETOOMANYREFS 109 /* Too many references: cannot splice */ > #endif > +#ifndef IF_NAMESIZE > +#define IF_NAMESIZE 128 > +#endif Should be in EAL. ^ permalink raw reply [flat|nested] 19+ messages in thread
end of thread, other threads:[~2020-12-28 9:55 UTC | newest] Thread overview: 19+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- [not found] <20201027232335.31427-1-ophirmu@nvidia.com> 2020-10-27 23:22 ` [dpdk-stable] [PATCH v1 01/72] mlx5: fix relaxed ordering DevX flow Ophir Munk [not found] ` <20201210150648.8784-1-talshn@nvidia.com> 2020-12-10 15:06 ` [dpdk-stable] [PATCH v2 01/33] net/mlx5: fix folding constant array error Tal Shnaiderman [not found] ` <20201213102056.11380-1-talshn@nvidia.com> 2020-12-13 10:20 ` [dpdk-stable] [PATCH v3 01/32] " Tal Shnaiderman [not found] ` <20201213205005.7300-1-talshn@nvidia.com> 2020-12-13 20:49 ` [dpdk-stable] [PATCH v4 " Tal Shnaiderman [not found] ` <20201228095436.14996-1-talshn@nvidia.com> 2020-12-28 9:54 ` [dpdk-stable] [PATCH v5 " Tal Shnaiderman 2020-12-28 9:54 ` [dpdk-stable] [PATCH v5 04/32] net/mlx5: fix freeing packet pacing Tal Shnaiderman 2020-12-28 9:54 ` [dpdk-stable] [PATCH v5 11/32] net/mlx5: fix adding destroy flow action wrapper Tal Shnaiderman 2020-12-13 20:49 ` [dpdk-stable] [PATCH v4 04/32] net/mlx5: fix freeing packet pacing Tal Shnaiderman 2020-12-13 20:49 ` [dpdk-stable] [PATCH v4 11/32] net/mlx5: fix adding destroy flow action wrapper Tal Shnaiderman 2020-12-13 10:20 ` [dpdk-stable] [PATCH v3 04/32] net/mlx5: fix freeing packet pacing Tal Shnaiderman 2020-12-13 10:20 ` [dpdk-stable] [PATCH v3 11/32] net/mlx5: fix adding destroy flow action wrapper Tal Shnaiderman 2020-12-10 15:06 ` [dpdk-stable] [PATCH v2 04/33] net/mlx5: fix freeing packet pacing Tal Shnaiderman 2020-12-10 15:06 ` [dpdk-stable] [PATCH v2 11/33] net/mlx5: fix adding destroy flow action wrapper Tal Shnaiderman 2020-10-27 23:22 ` [dpdk-stable] [PATCH v1 02/72] net/mlx5: fix flow sample definitions Ophir Munk 2020-10-27 23:22 ` [dpdk-stable] [PATCH v1 06/72] net/mlx5: fix freeing packet pacing Ophir Munk 2020-10-27 23:23 ` [dpdk-stable] [PATCH v1 62/72] net/mlx5/linux: fix add OS dest_devx_tir action Ophir Munk 2020-10-27 23:23 ` [dpdk-stable] [PATCH v1 70/72] common/mlx5: fix Windows warnings on missing enum Ophir Munk 2020-10-27 23:23 ` [dpdk-stable] [PATCH v1 71/72] net/mlx5: fix Windows warnings on get_if_name Ophir Munk 2020-10-28 7:34 ` Thomas Monjalon
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).