From: Peng Zhang <peng1x.zhang@intel.com>
To: dev@dpdk.org
Cc: andrew.rybchenko@oktetlabs.ru, aman.deep.singh@intel.com,
yuying.zhang@intel.com, Peng Zhang <peng1x.zhang@intel.com>,
stable@dpdk.org
Subject: [PATCH v3] app/testpmd: fix incorrect queues state of secondary process
Date: Tue, 6 Sep 2022 22:53:10 +0800 [thread overview]
Message-ID: <20220906145310.8849-1-peng1x.zhang@intel.com> (raw)
In-Reply-To: <20220819100940.657437-1-peng1x.zhang@intel.com>
Primary process could set up queues state correctly when starting port,
while secondary process not. Under multi-process scenario, "stream_init"
function would get wrong queues state for secondary process.
This commit is to get queues state from ethdev which is located in
shared memory.
Fixes: 3c4426db54fc ("app/testpmd: do not poll stopped queues")
Cc: stable@dpdk.org
Signed-off-by: Peng Zhang <peng1x.zhang@intel.com>
---
v3:
- Modify the parameter of rx or tx queue state array
v2:
- Change the way of getting secondary process queues states
---
app/test-pmd/testpmd.c | 22 +++++++++++++++++++---
1 file changed, 19 insertions(+), 3 deletions(-)
diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c
index addcbcac85..977ec4fa28 100644
--- a/app/test-pmd/testpmd.c
+++ b/app/test-pmd/testpmd.c
@@ -75,6 +75,8 @@
#include "testpmd.h"
+#include <ethdev_driver.h>
+
#ifndef MAP_HUGETLB
/* FreeBSD may not have MAP_HUGETLB (in fact, it probably doesn't) */
#define HUGE_FLAG (0x40000)
@@ -2402,10 +2404,24 @@ start_packet_forwarding(int with_tx_first)
if (!pkt_fwd_shared_rxq_check())
return;
- if (stream_init != NULL)
- for (i = 0; i < cur_fwd_config.nb_fwd_streams; i++)
- stream_init(fwd_streams[i]);
+ if (stream_init != NULL) {
+ for (i = 0; i < cur_fwd_config.nb_fwd_streams; i++) {
+ if (rte_eal_process_type() != RTE_PROC_PRIMARY) {
+ struct fwd_stream *fs = fwd_streams[i];
+ struct rte_eth_dev_data *dev_rx_data, *dev_tx_data;
+
+ dev_rx_data = (&rte_eth_devices[fs->rx_port])->data;
+ dev_tx_data = (&rte_eth_devices[fs->tx_port])->data;
+
+ uint8_t rx_state = dev_rx_data->rx_queue_state[fs->rx_queue];
+ ports[fs->rx_port].rxq[fs->rx_queue].state = rx_state;
+ uint8_t tx_state = dev_tx_data->tx_queue_state[fs->tx_queue];
+ ports[fs->tx_port].txq[fs->tx_queue].state = tx_state;
+ }
+ stream_init(fwd_streams[i]);
+ }
+ }
port_fwd_begin = cur_fwd_config.fwd_eng->port_fwd_begin;
if (port_fwd_begin != NULL) {
for (i = 0; i < cur_fwd_config.nb_fwd_ports; i++) {
--
2.25.1
next prev parent reply other threads:[~2022-09-06 7:04 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-06-23 18:15 [PATCH] app/testpmd: fix secondary process cannot dump packet peng1x.zhang
2022-06-23 12:10 ` Andrew Rybchenko
2022-06-29 2:55 ` lihuisong (C)
2022-07-01 11:36 ` Zhang, Peng1X
2022-07-04 2:36 ` lihuisong (C)
2022-07-04 5:28 ` Dmitry Kozlyuk
2022-07-05 10:12 ` Zhang, Peng1X
2022-07-06 2:00 ` lihuisong (C)
2022-07-06 13:40 ` Andrew Rybchenko
2022-06-27 4:53 ` Zhang, Yuying
2022-07-01 9:21 ` Zhang, Yuying
2022-08-19 10:09 ` [PATCH v2] app/testpmd: fix incorrect queues state of secondary process peng1x.zhang
2022-08-24 18:21 ` Singh, Aman Deep
2022-08-26 7:47 ` Zhang, Peng1X
2022-09-06 14:53 ` Peng Zhang [this message]
2022-09-07 1:53 ` [PATCH v3] " lihuisong (C)
2022-09-10 9:21 ` Zhang, Peng1X
2022-09-13 1:26 ` lihuisong (C)
2022-10-17 8:05 ` Andrew Rybchenko
2022-09-29 1:58 ` Zhou, YidingX
2022-10-13 3:01 ` Zhou, YidingX
2022-10-13 3:33 ` Stephen Hemminger
2022-10-14 10:11 ` Zhou, YidingX
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220906145310.8849-1-peng1x.zhang@intel.com \
--to=peng1x.zhang@intel.com \
--cc=aman.deep.singh@intel.com \
--cc=andrew.rybchenko@oktetlabs.ru \
--cc=dev@dpdk.org \
--cc=stable@dpdk.org \
--cc=yuying.zhang@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.