automatic DPDK test reports
 help / color / mirror / Atom feed
* |WARNING| pw123950-123953 [PATCH] [v1,6/6] doc/mlx5: update mlx5 doc
@ 2023-02-15 12:09 dpdklab
  0 siblings, 0 replies; only message in thread
From: dpdklab @ 2023-02-15 12:09 UTC (permalink / raw)
  To: test-report; +Cc: dpdk-test-reports

[-- Attachment #1: Type: text/plain, Size: 11934 bytes --]

Test-Label: iol-testing
Test-Status: WARNING
http://dpdk.org/patch/123950

_apply patch failure_

Submitter: Rongwei Liu <rongweil@nvidia.com>
Date: Wednesday, February 15 2023 11:52:51 
Applied on: CommitID:04ed18cd41f12ea1487581731ef56185d902d827
Apply patch set 123950-123953 failed:

Checking patch drivers/net/mlx5/hws/mlx5dr_definer.c...
error: while searching for:
	DR_SET(tag, val, fc->byte_off, 0, fc->bit_mask);
}

static void
mlx5dr_definer_gre_key_set(struct mlx5dr_definer_fc *fc,
			   const void *item_spec,

error: patch failed: drivers/net/mlx5/hws/mlx5dr_definer.c:309
error: while searching for:
	}
}

static int
mlx5dr_definer_conv_items_to_hl(struct mlx5dr_context *ctx,
				struct mlx5dr_match_template *mt,

error: patch failed: drivers/net/mlx5/hws/mlx5dr_definer.c:1750
error: while searching for:
			item_flags |= cd.tunnel ? MLX5_FLOW_ITEM_INNER_IPV6_ROUTING_EXT :
						  MLX5_FLOW_ITEM_OUTER_IPV6_ROUTING_EXT;
			break;
		default:
			DR_LOG(ERR, "Unsupported item type %d", items->type);
			rte_errno = ENOTSUP;

error: patch failed: drivers/net/mlx5/hws/mlx5dr_definer.c:1877
Checking patch drivers/net/mlx5/mlx5.c...
Hunk #1 succeeded at 1027 (offset -6 lines).
Checking patch drivers/net/mlx5/mlx5.h...
Hunk #1 succeeded at 2238 (offset -17 lines).
Checking patch drivers/net/mlx5/mlx5_flow.h...
Hunk #1 succeeded at 1225 (offset -4 lines).
Checking patch drivers/net/mlx5/mlx5_flow_dv.c...
Hunk #1 succeeded at 10588 (offset -80 lines).
Checking patch drivers/net/mlx5/mlx5_flow_flex.c...
error: while searching for:
	MLX5_ASSERT(mlx5_flex_index(priv, tp) >= 0);
	for (i = 0; i < tp->mapnum; i++) {
		struct mlx5_flex_pattern_field *map = tp->map + i;
		uint32_t id = map->reg_id;
		uint32_t def = (RTE_BIT64(map->width) - 1) << map->shift;
		uint32_t val, msk;

		/* Skip placeholders for DUMMY fields. */
		if (id == MLX5_INVALID_SAMPLE_REG_ID) {
			pos += map->width;
			continue;
		}
		val = mlx5_flex_get_bitfield(spec, pos, map->width, map->shift);
		msk = mlx5_flex_get_bitfield(mask, pos, map->width, map->shift);
		MLX5_ASSERT(map->width);
		MLX5_ASSERT(id < tp->devx_fp->num_samples);
		if (tp->tunnel_mode == FLEX_TUNNEL_MODE_MULTI && is_inner) {
			uint32_t num_samples = tp->devx_fp->num_samples / 2;

			MLX5_ASSERT(tp->devx_fp->num_samples % 2 == 0);
			MLX5_ASSERT(id < num_samples);
			id += num_samples;
		}
		if (attr->ext_sample_id)
			sample_id = tp->devx_fp->sample_ids[id].sample_id;
		else

error: patch failed: drivers/net/mlx5/mlx5_flow_flex.c:240
Checking patch drivers/net/mlx5/mlx5_flow_hw.c...
Hunk #1 succeeded at 4331 (offset -8 lines).
error: while searching for:
		case RTE_FLOW_ITEM_TYPE_ICMP6_ECHO_REPLY:
		case RTE_FLOW_ITEM_TYPE_CONNTRACK:
		case RTE_FLOW_ITEM_TYPE_IPV6_ROUTING_EXT:
			break;
		case RTE_FLOW_ITEM_TYPE_INTEGRITY:
			/*

error: patch failed: drivers/net/mlx5/mlx5_flow_hw.c:4743
Hunk #3 succeeded at 4839 (offset -12 lines).
error: while searching for:
			return NULL;
		}
	}
	__atomic_fetch_add(&it->refcnt, 1, __ATOMIC_RELAXED);
	LIST_INSERT_HEAD(&priv->flow_hw_itt, it, next);
	return it;

error: patch failed: drivers/net/mlx5/mlx5_flow_hw.c:4890
Hunk #5 succeeded at 4918 (offset -36 lines).
error: while searching for:
				    MLX5_FLOW_ITEM_INNER_IPV6_ROUTING_EXT))
		mlx5_free_srh_flex_parser(dev);
	LIST_REMOVE(template, next);
	claim_zero(mlx5dr_match_template_destroy(template->mt));
	mlx5_free(template);
	return 0;

error: patch failed: drivers/net/mlx5/mlx5_flow_hw.c:4925
Applying patch drivers/net/mlx5/hws/mlx5dr_definer.c with 3 rejects...
Rejected hunk #1.
Rejected hunk #2.
Rejected hunk #3.
Applied patch drivers/net/mlx5/mlx5.c cleanly.
Applied patch drivers/net/mlx5/mlx5.h cleanly.
Applied patch drivers/net/mlx5/mlx5_flow.h cleanly.
Applied patch drivers/net/mlx5/mlx5_flow_dv.c cleanly.
Applying patch drivers/net/mlx5/mlx5_flow_flex.c with 1 reject...
Hunk #1 applied cleanly.
Rejected hunk #2.
Applying patch drivers/net/mlx5/mlx5_flow_hw.c with 3 rejects...
Hunk #1 applied cleanly.
Rejected hunk #2.
Hunk #3 applied cleanly.
Rejected hunk #4.
Hunk #5 applied cleanly.
Rejected hunk #6.
diff a/drivers/net/mlx5/hws/mlx5dr_definer.c b/drivers/net/mlx5/hws/mlx5dr_definer.c	(rejected hunks)
@@ -309,6 +309,43 @@ mlx5dr_definer_ipv6_routing_ext_set(struct mlx5dr_definer_fc *fc,
 	DR_SET(tag, val, fc->byte_off, 0, fc->bit_mask);
 }
 
+static void
+mlx5dr_definer_flex_parser_set(struct mlx5dr_definer_fc *fc,
+			       const void *item,
+			       uint8_t *tag, bool is_inner)
+{
+	const struct rte_flow_item_flex *flex = item;
+	uint32_t byte_off, val, idx;
+	int ret;
+
+	val = 0;
+	byte_off = MLX5_BYTE_OFF(definer_hl, flex_parser.flex_parser_0);
+	idx = fc->fname - MLX5DR_DEFINER_FNAME_FLEX_PARSER_0;
+	byte_off -= idx * sizeof(uint32_t);
+	ret = mlx5_flex_get_parser_value_per_byte_off(flex, flex->handle, byte_off,
+						      false, is_inner, &val);
+	if (ret == -1 || !val)
+		return;
+
+	DR_SET(tag, val, fc->byte_off, 0, fc->bit_mask);
+}
+
+static void
+mlx5dr_definer_flex_parser_inner_set(struct mlx5dr_definer_fc *fc,
+				     const void *item,
+				     uint8_t *tag)
+{
+	mlx5dr_definer_flex_parser_set(fc, item, tag, true);
+}
+
+static void
+mlx5dr_definer_flex_parser_outer_set(struct mlx5dr_definer_fc *fc,
+				     const void *item,
+				     uint8_t *tag)
+{
+	mlx5dr_definer_flex_parser_set(fc, item, tag, false);
+}
+
 static void
 mlx5dr_definer_gre_key_set(struct mlx5dr_definer_fc *fc,
 			   const void *item_spec,
@@ -1750,6 +1787,47 @@ mlx5dr_definer_check_item_range_supp(struct rte_flow_item *item)
 	}
 }
 
+static int
+mlx5dr_definer_conv_item_flex_parser(struct mlx5dr_definer_conv_data *cd,
+				     struct rte_flow_item *item,
+				     int item_idx)
+{
+	uint32_t base_off = MLX5_BYTE_OFF(definer_hl, flex_parser.flex_parser_0);
+	const struct rte_flow_item_flex *v, *m;
+	enum mlx5dr_definer_fname fname;
+	struct mlx5dr_definer_fc *fc;
+	uint32_t i, mask, byte_off;
+	bool is_inner = cd->tunnel;
+	int ret;
+
+	m = item->mask;
+	v = item->spec;
+	mask = 0;
+	for (i = 0; i < MLX5_GRAPH_NODE_SAMPLE_NUM; i++) {
+		byte_off = base_off - i * sizeof(uint32_t);
+		ret = mlx5_flex_get_parser_value_per_byte_off(m, v->handle, byte_off,
+							      true, is_inner, &mask);
+		if (ret == -1) {
+			rte_errno = EINVAL;
+			return rte_errno;
+		}
+
+		if (!mask)
+			continue;
+
+		fname = MLX5DR_DEFINER_FNAME_FLEX_PARSER_0;
+		fname += (enum mlx5dr_definer_fname)i;
+		fc = &cd->fc[fname];
+		fc->byte_off = byte_off;
+		fc->item_idx = item_idx;
+		fc->tag_set = cd->tunnel ? &mlx5dr_definer_flex_parser_inner_set :
+					   &mlx5dr_definer_flex_parser_outer_set;
+		fc->tag_mask_set = &mlx5dr_definer_ones_set;
+		fc->bit_mask = mask;
+	}
+	return 0;
+}
+
 static int
 mlx5dr_definer_conv_items_to_hl(struct mlx5dr_context *ctx,
 				struct mlx5dr_match_template *mt,
@@ -1877,6 +1955,11 @@ mlx5dr_definer_conv_items_to_hl(struct mlx5dr_context *ctx,
 			item_flags |= cd.tunnel ? MLX5_FLOW_ITEM_INNER_IPV6_ROUTING_EXT :
 						  MLX5_FLOW_ITEM_OUTER_IPV6_ROUTING_EXT;
 			break;
+		case RTE_FLOW_ITEM_TYPE_FLEX:
+			ret = mlx5dr_definer_conv_item_flex_parser(&cd, items, i);
+			item_flags |= cd.tunnel ? MLX5_FLOW_ITEM_INNER_FLEX :
+						  MLX5_FLOW_ITEM_OUTER_FLEX;
+			break;
 		default:
 			DR_LOG(ERR, "Unsupported item type %d", items->type);
 			rte_errno = ENOTSUP;
diff a/drivers/net/mlx5/mlx5_flow_flex.c b/drivers/net/mlx5/mlx5_flow_flex.c	(rejected hunks)
@@ -240,26 +333,17 @@ mlx5_flex_flow_translate_item(struct rte_eth_dev *dev,
 	MLX5_ASSERT(mlx5_flex_index(priv, tp) >= 0);
 	for (i = 0; i < tp->mapnum; i++) {
 		struct mlx5_flex_pattern_field *map = tp->map + i;
-		uint32_t id = map->reg_id;
-		uint32_t def = (RTE_BIT64(map->width) - 1) << map->shift;
-		uint32_t val, msk;
+		uint32_t val, msk, def;
+		int id = mlx5_flex_get_sample_id(tp, i, &pos, is_inner, &def);
 
-		/* Skip placeholders for DUMMY fields. */
-		if (id == MLX5_INVALID_SAMPLE_REG_ID) {
-			pos += map->width;
+		if (id == -1)
 			continue;
-		}
+		MLX5_ASSERT(id < (int)tp->devx_fp->num_samples);
+		if (id >= (int)tp->devx_fp->num_samples ||
+		    id >= MLX5_GRAPH_NODE_SAMPLE_NUM)
+			return;
 		val = mlx5_flex_get_bitfield(spec, pos, map->width, map->shift);
 		msk = mlx5_flex_get_bitfield(mask, pos, map->width, map->shift);
-		MLX5_ASSERT(map->width);
-		MLX5_ASSERT(id < tp->devx_fp->num_samples);
-		if (tp->tunnel_mode == FLEX_TUNNEL_MODE_MULTI && is_inner) {
-			uint32_t num_samples = tp->devx_fp->num_samples / 2;
-
-			MLX5_ASSERT(tp->devx_fp->num_samples % 2 == 0);
-			MLX5_ASSERT(id < num_samples);
-			id += num_samples;
-		}
 		if (attr->ext_sample_id)
 			sample_id = tp->devx_fp->sample_ids[id].sample_id;
 		else
diff a/drivers/net/mlx5/mlx5_flow_hw.c b/drivers/net/mlx5/mlx5_flow_hw.c	(rejected hunks)
@@ -4743,6 +4773,7 @@ flow_hw_pattern_validate(struct rte_eth_dev *dev,
 		case RTE_FLOW_ITEM_TYPE_ICMP6_ECHO_REPLY:
 		case RTE_FLOW_ITEM_TYPE_CONNTRACK:
 		case RTE_FLOW_ITEM_TYPE_IPV6_ROUTING_EXT:
+		case RTE_FLOW_ITEM_TYPE_FLEX:
 			break;
 		case RTE_FLOW_ITEM_TYPE_INTEGRITY:
 			/*
@@ -4890,6 +4922,19 @@ flow_hw_pattern_template_create(struct rte_eth_dev *dev,
 			return NULL;
 		}
 	}
+	for (i = 0; items[i].type != RTE_FLOW_ITEM_TYPE_END; ++i) {
+		if (items[i].type == RTE_FLOW_ITEM_TYPE_FLEX) {
+			const struct rte_flow_item_flex *spec =
+				(const struct rte_flow_item_flex *)items[i].spec;
+			struct rte_flow_item_flex_handle *handle = spec->handle;
+
+			if (flow_hw_flex_item_acquire(dev, handle, &it->flex_item)) {
+				claim_zero(mlx5dr_match_template_destroy(it->mt));
+				mlx5_free(it);
+				return NULL;
+			}
+		}
+	}
 	__atomic_fetch_add(&it->refcnt, 1, __ATOMIC_RELAXED);
 	LIST_INSERT_HEAD(&priv->flow_hw_itt, it, next);
 	return it;
@@ -4925,6 +4970,7 @@ flow_hw_pattern_template_destroy(struct rte_eth_dev *dev __rte_unused,
 				    MLX5_FLOW_ITEM_INNER_IPV6_ROUTING_EXT))
 		mlx5_free_srh_flex_parser(dev);
 	LIST_REMOVE(template, next);
+	flow_hw_flex_item_release(dev, &template->flex_item);
 	claim_zero(mlx5dr_match_template_destroy(template->mt));
 	mlx5_free(template);
 	return 0;
Checking patch drivers/common/mlx5/mlx5_prm.h...
error: while searching for:
	MLX5_MODI_GTPU_FIRST_EXT_DW_0 = 0x76,
	MLX5_MODI_HASH_RESULT = 0x81,
	MLX5_MODI_OUT_IPV6_NEXT_HDR = 0x4A,
};

/* Total number of metadata reg_c's. */

error: patch failed: drivers/common/mlx5/mlx5_prm.h:761
Checking patch drivers/net/mlx5/mlx5_flow.h...
error: drivers/net/mlx5/mlx5_flow.h: does not match index
Checking patch drivers/net/mlx5/mlx5_flow_dv.c...
error: drivers/net/mlx5/mlx5_flow_dv.c: does not match index
Checking patch drivers/net/mlx5/mlx5_flow_hw.c...
error: drivers/net/mlx5/mlx5_flow_hw.c: does not match index
Applying patch drivers/common/mlx5/mlx5_prm.h with 1 reject...
Rejected hunk #1.
diff a/drivers/common/mlx5/mlx5_prm.h b/drivers/common/mlx5/mlx5_prm.h	(rejected hunks)
@@ -761,6 +761,7 @@ enum mlx5_modification_field {
 	MLX5_MODI_GTPU_FIRST_EXT_DW_0 = 0x76,
 	MLX5_MODI_HASH_RESULT = 0x81,
 	MLX5_MODI_OUT_IPV6_NEXT_HDR = 0x4A,
+	MLX5_MODI_INVALID = INT_MAX,
 };
 
 /* Total number of metadata reg_c's. */
Checking patch drivers/net/mlx5/mlx5_flow_dv.c...
error: drivers/net/mlx5/mlx5_flow_dv.c: does not match index
Checking patch doc/guides/nics/mlx5.rst...
error: while searching for:
- Sub-Function.
- Matching on represented port.
- Matching on IPv6 routing extension header.


Limitations

error: patch failed: doc/guides/nics/mlx5.rst:107
Hunk #2 succeeded at 282 (offset -11 lines).
Applying patch doc/guides/nics/mlx5.rst with 1 reject...
Rejected hunk #1.
Hunk #2 applied cleanly.
diff a/doc/guides/nics/mlx5.rst b/doc/guides/nics/mlx5.rst	(rejected hunks)
@@ -107,6 +107,7 @@ Features
 - Sub-Function.
 - Matching on represented port.
 - Matching on IPv6 routing extension header.
+- Modify flex item field.
 
 
 Limitations

https://lab.dpdk.org/results/dashboard/patchsets/25407/

UNH-IOL DPDK Community Lab

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2023-02-15 12:09 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-02-15 12:09 |WARNING| pw123950-123953 [PATCH] [v1,6/6] doc/mlx5: update mlx5 doc dpdklab

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).