Sync some patches from upstream about bugfix, modifies are as follow: - app/testpmd: fix crash in multi-process forwarding - net/hns3: fix offload flag of IEEE 1588 - net/hns3: fix read Rx timestamp handle - net/hns3: fix double free for Rx/Tx queue - net/hns3: fix variable overflow - net/hns3: enable PFC for all user priorities - ring: add telemetry command for ring info - ring: add telemetry command to list rings - net/hns3: support power monitor - net/hns3: disable SCTP verification tag for RSS hash input - app/testpmd: fix RSS algorithm choice
86 lines
3.0 KiB
Diff
86 lines
3.0 KiB
Diff
From 6568baa18852528dafc7559b43fad1dc9f0ff717 Mon Sep 17 00:00:00 2001
|
|
From: Dengdui Huang <huangdengdui@huawei.com>
|
|
Date: Tue, 30 Jan 2024 09:32:49 +0800
|
|
Subject: [PATCH 429/431] app/testpmd: fix crash in multi-process forwarding
|
|
|
|
[ upstream commit b3a33138f317d1c651cd86f423cc703176eb7b07 ]
|
|
|
|
On multi-process scenario, each process creates flows based on the
|
|
number of queues. When nbcore is greater than 1, multiple cores may
|
|
use the same queue to forward packet, like:
|
|
dpdk-testpmd -a BDF --proc-type=auto -- -i --rxq=4 --txq=4
|
|
--nb-cores=2 --num-procs=2 --proc-id=0
|
|
testpmd> start
|
|
mac packet forwarding - ports=1 - cores=2 - streams=4 - NUMA support
|
|
enabled, MP allocation mode: native
|
|
Logical Core 2 (socket 0) forwards packets on 2 streams:
|
|
RX P=0/Q=0 (socket 0) -> TX P=0/Q=0 (socket 0) peer=02:00:00:00:00:00
|
|
RX P=0/Q=1 (socket 0) -> TX P=0/Q=1 (socket 0) peer=02:00:00:00:00:00
|
|
Logical Core 3 (socket 0) forwards packets on 2 streams:
|
|
RX P=0/Q=0 (socket 0) -> TX P=0/Q=0 (socket 0) peer=02:00:00:00:00:00
|
|
RX P=0/Q=1 (socket 0) -> TX P=0/Q=1 (socket 0) peer=02:00:00:00:00:00
|
|
|
|
After this commit, the result will be:
|
|
dpdk-testpmd -a BDF --proc-type=auto -- -i --rxq=4 --txq=4
|
|
--nb-cores=2 --num-procs=2 --proc-id=0
|
|
testpmd> start
|
|
io packet forwarding - ports=1 - cores=2 - streams=2 - NUMA support
|
|
enabled, MP allocation mode: native
|
|
Logical Core 2 (socket 0) forwards packets on 1 streams:
|
|
RX P=0/Q=0 (socket 2) -> TX P=0/Q=0 (socket 2) peer=02:00:00:00:00:00
|
|
Logical Core 3 (socket 0) forwards packets on 1 streams:
|
|
RX P=0/Q=1 (socket 2) -> TX P=0/Q=1 (socket 2) peer=02:00:00:00:00:00
|
|
|
|
Fixes: a550baf24af9 ("app/testpmd: support multi-process")
|
|
Cc: stable@dpdk.org
|
|
|
|
Signed-off-by: Dengdui Huang <huangdengdui@huawei.com>
|
|
Acked-by: Chengwen Feng <fengchengwen@huawei.com>
|
|
Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
|
|
Signed-off-by: chenyi <chenyi211@huawei.com>
|
|
---
|
|
app/test-pmd/config.c | 6 +-----
|
|
1 file changed, 1 insertion(+), 5 deletions(-)
|
|
|
|
diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c
|
|
index fbb0cabf3d..dac6be0daf 100644
|
|
--- a/app/test-pmd/config.c
|
|
+++ b/app/test-pmd/config.c
|
|
@@ -3385,7 +3385,6 @@ rss_fwd_config_setup(void)
|
|
queueid_t nb_q;
|
|
streamid_t sm_id;
|
|
int start;
|
|
- int end;
|
|
|
|
nb_q = nb_rxq;
|
|
if (nb_q > nb_txq)
|
|
@@ -3393,7 +3392,7 @@ rss_fwd_config_setup(void)
|
|
cur_fwd_config.nb_fwd_lcores = (lcoreid_t) nb_fwd_lcores;
|
|
cur_fwd_config.nb_fwd_ports = nb_fwd_ports;
|
|
cur_fwd_config.nb_fwd_streams =
|
|
- (streamid_t) (nb_q * cur_fwd_config.nb_fwd_ports);
|
|
+ (streamid_t) (nb_q / num_procs * cur_fwd_config.nb_fwd_ports);
|
|
|
|
if (cur_fwd_config.nb_fwd_streams < cur_fwd_config.nb_fwd_lcores)
|
|
cur_fwd_config.nb_fwd_lcores =
|
|
@@ -3415,7 +3414,6 @@ rss_fwd_config_setup(void)
|
|
* the 2~3 queue for secondary process.
|
|
*/
|
|
start = proc_id * nb_q / num_procs;
|
|
- end = start + nb_q / num_procs;
|
|
rxp = 0;
|
|
rxq = start;
|
|
for (sm_id = 0; sm_id < cur_fwd_config.nb_fwd_streams; sm_id++) {
|
|
@@ -3434,8 +3432,6 @@ rss_fwd_config_setup(void)
|
|
continue;
|
|
rxp = 0;
|
|
rxq++;
|
|
- if (rxq >= end)
|
|
- rxq = start;
|
|
}
|
|
}
|
|
|
|
--
|
|
2.33.0
|
|
|