patch 'test: fix ring PMD initialisation' has been queued to stable release 19.11.11

christian.ehrhardt at canonical.com christian.ehrhardt at canonical.com
Tue Nov 30 17:35:09 CET 2021


Hi,

FYI, your patch has been queued to stable release 19.11.11

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before December 10th 2021. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/cpaelzer/dpdk-stable-queue

This queued commit can be viewed at:
https://github.com/cpaelzer/dpdk-stable-queue/commit/7c712c51061e6d5c39746ff941e135f149813a0f

Thanks.

Christian Ehrhardt <christian.ehrhardt at canonical.com>

---
>From 7c712c51061e6d5c39746ff941e135f149813a0f Mon Sep 17 00:00:00 2001
From: Konstantin Ananyev <konstantin.ananyev at intel.com>
Date: Tue, 26 Oct 2021 12:19:43 +0100
Subject: [PATCH] test: fix ring PMD initialisation

[ upstream commit b66412f24f17fcba5a248888bf4b3c1f5d6880de ]

(bitratestats_autotest|latencystats_autotest|pdump_autotest) tests
generate a log of error messages like that:

test_packet_forward() line 104: Error sending packet to port 0
Send pkts Failed

These tests use of app/test/sample_packet_forward.* code.
This code creates a portid from a ring, but doesn't properly
configure/start it.
The fix adds code to configure/start given port before usage.

Fixes: 7a0935239b9e ("ethdev: make fast-path functions to use new flat array")
Fixes: a52966cd48fd ("test: add helpers using ring PMD Rx/Tx")

Reported-by: David Marchand <david.marchand at redhat.com>
Signed-off-by: Konstantin Ananyev <konstantin.ananyev at intel.com>
Tested-by: David Marchand <david.marchand at redhat.com>
---
 app/test/sample_packet_forward.c | 29 +++++++++++++++++++++++++++++
 app/test/sample_packet_forward.h |  3 +++
 app/test/test_bitratestats.c     | 12 +++++++++++-
 app/test/test_latencystats.c     | 12 +++++++++++-
 app/test/test_pdump.c            | 12 ++++++++++--
 5 files changed, 64 insertions(+), 4 deletions(-)

diff --git a/app/test/sample_packet_forward.c b/app/test/sample_packet_forward.c
index 61384b3d9b..aa897274d8 100644
--- a/app/test/sample_packet_forward.c
+++ b/app/test/sample_packet_forward.c
@@ -15,6 +15,35 @@
 
 #include "sample_packet_forward.h"
 
+/*
+ * heper function: configure and start test device
+ */
+int
+test_dev_start(uint16_t port, struct rte_mempool *mp)
+{
+	int32_t rc;
+	struct rte_eth_conf pconf;
+
+	memset(&pconf, 0, sizeof(pconf));
+
+	rc =  rte_eth_dev_configure(port, NUM_QUEUES, NUM_QUEUES, &pconf);
+	if (rc != 0)
+		return rc;
+
+	rc = rte_eth_rx_queue_setup(port, 0, RING_SIZE, SOCKET_ID_ANY,
+		NULL, mp);
+	if (rc != 0)
+		return rc;
+
+	rc = rte_eth_tx_queue_setup(port, 0, RING_SIZE, SOCKET_ID_ANY,
+		NULL);
+	if (rc != 0)
+		return rc;
+
+	rc = rte_eth_dev_start(port);
+	return rc;
+}
+
 /* Sample test to create virtual rings and tx,rx portid from rings */
 int
 test_ring_setup(struct rte_ring **ring, uint16_t *portid)
diff --git a/app/test/sample_packet_forward.h b/app/test/sample_packet_forward.h
index 6789217de3..af0b1d9924 100644
--- a/app/test/sample_packet_forward.h
+++ b/app/test/sample_packet_forward.h
@@ -21,6 +21,9 @@ struct rte_ring;
 /* Sample test to create virtual rings and tx,rx portid from rings */
 int test_ring_setup(struct rte_ring **ring, uint16_t *portid);
 
+/* configure and start device created by test_ring_setup */
+int test_dev_start(uint16_t port, struct rte_mempool *mp);
+
 /* Sample test to free the virtual rings */
 void test_ring_free(struct rte_ring *rxtx);
 
diff --git a/app/test/test_bitratestats.c b/app/test/test_bitratestats.c
index 3a7d9c037a..33b04c0369 100644
--- a/app/test/test_bitratestats.c
+++ b/app/test/test_bitratestats.c
@@ -11,6 +11,7 @@
 #include <rte_memzone.h>
 #include <rte_metrics.h>
 #include <rte_bitrate.h>
+#include <rte_ethdev.h>
 
 #include "sample_packet_forward.h"
 #include "test.h"
@@ -145,12 +146,21 @@ test_bit_packet_forward(void)
 		printf("allocate mbuf pool Failed\n");
 		return TEST_FAILED;
 	}
+	ret = test_dev_start(portid, mp);
+	if (ret < 0) {
+		printf("test_dev_start(%hu, %p) failed, error code: %d\n",
+			portid, mp, ret);
+		return TEST_FAILED;
+	}
+
 	ret = test_packet_forward(pbuf, portid, QUEUE_ID);
 	if (ret < 0)
 		printf("send pkts Failed\n");
+
+	rte_eth_dev_stop(portid);
 	test_put_mbuf_to_pool(mp, pbuf);
 
-	return TEST_SUCCESS;
+	return (ret >= 0) ? TEST_SUCCESS : TEST_FAILED;
 }
 
 static int
diff --git a/app/test/test_latencystats.c b/app/test/test_latencystats.c
index fcc9e83558..0f2a346209 100644
--- a/app/test/test_latencystats.c
+++ b/app/test/test_latencystats.c
@@ -6,6 +6,7 @@
 #include <stdint.h>
 #include <string.h>
 
+#include <rte_ethdev.h>
 #include <rte_latencystats.h>
 #include "rte_lcore.h"
 #include "rte_metrics.h"
@@ -155,12 +156,21 @@ static int test_latency_packet_forward(void)
 		printf("allocate mbuf pool Failed\n");
 		return TEST_FAILED;
 	}
+	ret = test_dev_start(portid, mp);
+	if (ret < 0) {
+		printf("test_dev_start(%hu, %p) failed, error code: %d\n",
+			portid, mp, ret);
+		return TEST_FAILED;
+	}
+
 	ret = test_packet_forward(pbuf, portid, QUEUE_ID);
 	if (ret < 0)
 		printf("send pkts Failed\n");
+
+	rte_eth_dev_stop(portid);
 	test_put_mbuf_to_pool(mp, pbuf);
 
-	return TEST_SUCCESS;
+	return (ret >= 0) ? TEST_SUCCESS : TEST_FAILED;
 }
 
 static struct
diff --git a/app/test/test_pdump.c b/app/test/test_pdump.c
index af206968b3..e377cfb5da 100644
--- a/app/test/test_pdump.c
+++ b/app/test/test_pdump.c
@@ -152,11 +152,19 @@ send_pkts(void *empty)
 	ret = test_get_mbuf_from_pool(&mp, pbuf, poolname);
 	if (ret < 0)
 		printf("get_mbuf_from_pool failed\n");
-	do {
+
+	ret = test_dev_start(portid, mp);
+	if (ret < 0)
+		printf("test_dev_start(%hu, %p) failed, error code: %d\n",
+			portid, mp, ret);
+
+	while (ret >= 0 && flag_for_send_pkts) {
 		ret = test_packet_forward(pbuf, portid, QUEUE_ID);
 		if (ret < 0)
 			printf("send pkts Failed\n");
-	} while (flag_for_send_pkts);
+	};
+
+	rte_eth_dev_stop(portid);
 	test_put_mbuf_to_pool(mp, pbuf);
 	return empty;
 }
-- 
2.34.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-11-30 16:50:11.924866813 +0100
+++ 0105-test-fix-ring-PMD-initialisation.patch	2021-11-30 16:50:05.906874381 +0100
@@ -1 +1 @@
-From b66412f24f17fcba5a248888bf4b3c1f5d6880de Mon Sep 17 00:00:00 2001
+From 7c712c51061e6d5c39746ff941e135f149813a0f Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit b66412f24f17fcba5a248888bf4b3c1f5d6880de ]
+
@@ -19 +20,0 @@
-Cc: stable at dpdk.org
@@ -87 +88 @@
-index f4a92c9be6..1ff540f4c4 100644
+index 3a7d9c037a..33b04c0369 100644
@@ -98 +99 @@
-@@ -159,12 +160,21 @@ test_bit_packet_forward(void)
+@@ -145,12 +146,21 @@ test_bit_packet_forward(void)
@@ -122 +123 @@
-index 724acbc315..db06c7d5c7 100644
+index fcc9e83558..0f2a346209 100644
@@ -133 +134 @@
-@@ -158,12 +159,21 @@ static int test_latency_packet_forward(void)
+@@ -155,12 +156,21 @@ static int test_latency_packet_forward(void)
@@ -157 +158 @@
-index b49fcfb3f1..ea03056b47 100644
+index af206968b3..e377cfb5da 100644
@@ -160 +161 @@
-@@ -147,11 +147,19 @@ send_pkts(void *empty)
+@@ -152,11 +152,19 @@ send_pkts(void *empty)


More information about the stable mailing list