[dpdk-stable] patch 'test: fix ring PMD initialisation' has been queued to stable release 20.11.4
Xueming Li
xuemingl at nvidia.com
Wed Nov 10 07:31:24 CET 2021
Hi,
FYI, your patch has been queued to stable release 20.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/12/21. 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/steevenlee/dpdk
This queued commit can be viewed at:
https://github.com/steevenlee/dpdk/commit/e9f391e952889dc47ebe53a005ee8ff55725cf31
Thanks.
Xueming Li <xuemingl at nvidia.com>
---
>From e9f391e952889dc47ebe53a005ee8ff55725cf31 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
Cc: Xueming Li <xuemingl at nvidia.com>
[ 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 f4a92c9be6..1ff540f4c4 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"
@@ -159,12 +160,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 724acbc315..db06c7d5c7 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"
@@ -158,12 +159,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 21fcc1bc4c..03b26dd26d 100644
--- a/app/test/test_pdump.c
+++ b/app/test/test_pdump.c
@@ -147,11 +147,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.33.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2021-11-10 14:17:10.770243814 +0800
+++ 0200-test-fix-ring-PMD-initialisation.patch 2021-11-10 14:17:02.010744945 +0800
@@ -1 +1 @@
-From b66412f24f17fcba5a248888bf4b3c1f5d6880de Mon Sep 17 00:00:00 2001
+From e9f391e952889dc47ebe53a005ee8ff55725cf31 Mon Sep 17 00:00:00 2001
@@ -4,0 +5,3 @@
+Cc: Xueming Li <xuemingl at nvidia.com>
+
+[ upstream commit b66412f24f17fcba5a248888bf4b3c1f5d6880de ]
@@ -19 +21,0 @@
-Cc: stable at dpdk.org
@@ -157 +159 @@
-index b49fcfb3f1..ea03056b47 100644
+index 21fcc1bc4c..03b26dd26d 100644
More information about the stable
mailing list