loopback_virtio_user_server_mode_cbdma: testpmd can't loop packets after start dpdk-pdump app Immediately
[email protected]
Acked-by Ferruh Yigithttps://bugs.dpdk.org/show_bug.cgi?id=1181
Bug ID: 1181
Summary: [DPDK-23.03]loopback_virtio_user_server_mode_cbdma:
testpmd can't loop packets after start dpdk-pdump app
Immediately
Product: DPDK
Version: 22.03
Hardware: All
OS: All
Status: UNCONFIRMED
Severity: normal
Priority: Normal
Component: testpmd
Assignee: [email protected]
Reporter: [email protected]Target Milestone: ---
[Environment]
DPDK version: Use make showversion or for a non-released version: git remote -v && git show-ref --heads
23.03.0-rc2
Other software versions: N/A
OS: Ubuntu 22.04.1 LTS/Linux 5.15.45-051545-generic
Compiler: gcc version 11.3.0 (Ubuntu 11.3.0-1ubuntu1~22.04) Hardware platform: Intel(R) Xeon(R) Platinum 8280M CPU @ 2.70GHz NIC hardware: N/A
NIC firmware: N/A
[Test Setup]
Steps to reproduce
List the steps to reproduce the issue.
1.Bind 1 CBDMA channel to vfio-pci, then start vhost-user as back-end:
dpdk-devbind.py -b vfio-pci 0000:80:04.0
x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 28-36 -n 4 -a 0000:80:04.0
--file-prefix=vhost \--vdev
'eth_vhost0,iface=vhost-net0,queues=8,client=1,\dmas=[txq0@0000:80:04.0;txq1@0000:80:04.0;txq2@0000:80:04.0;txq3@0000:80:04.0;txq4@0000:80:04.0;txq5@0000:80:04.0;rxq2@0000:80:04.0;rxq3@0000:80:04.0;rxq4@0000:80:04.0;rxq5@0000:80:04.0;rxq6@0000:80:04.0;rxq7@0000:80:04.0]'--iova=va -- -i --nb-cores=4 --rxq=8 --txq=8 --txd=1024 --rxd=1024
2.Start virtio-user as front-end:
x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 38-42 -n 4
--file-prefix=virtio-user0 --no-pci \--vdev=net_virtio_user0,mac=00:11:22:33:44:10,path=./vhost-net0,queues=8,mrg_rxbuf=1,in_order=1,packed_vq=1,server=1 \-- -i --nb-cores=4 --rxq=8 --txq=8 --txd=1024 --rxd=1024
testpmd>set fwd csum
testpmd>start
3.Start dpdk-pdump to capture packets:
x86_64-native-linuxapp-gcc/app/dpdk-pdump -v --file-prefix=virtio-user0 -- \
--pdump 'device_id=net_virtio_user0,queue=0,rx-dev=/root/dpdk/pdump-rx-q0.pcap,mbuf-size=8000' --pdump \
'device_id=net_virtio_user0,queue=1,rx-dev=/root/dpdk/pdump-rx-q1.pcap,mbuf-size=8000'
4.Set forwarding mode and send packets from vhost-user(execute this step must immediately, we use the automation script to do, it can be reproduced, and if I add time.sleep(1) before this step, it works well):
testpmd>set fwd mac
testpmd>set txpkts 64,64,64,2000,2000,2000
testpmd>set burst 1
testpmd>start tx_first 1
5.Execute the following command to check the front-end can receive the packets:
testpmd>show port stats 0
Show the output from the previous commands.
testpmd> show port stats 0
######################## NIC statistics for port 0 ########################
RX-packets: 0 RX-missed: 0 RX-bytes: 0
RX-errors: 0
RX-nombuf: 0
TX-packets: 0 TX-errors: 0 TX-bytes: 0
Throughput (since last show)
Rx-pps: 0 Rx-bps: 0 Tx-pps: 0 Tx-bps: 0
############################################################################
testpmd> show port stats 0
######################## NIC statistics for port 0 ########################
RX-packets: 0 RX-missed: 0 RX-bytes: 0
RX-errors: 0
RX-nombuf: 0
TX-packets: 0 TX-errors: 0 TX-bytes: 0
Throughput (since last show)
Rx-pps: 0 Rx-bps: 0 Tx-pps: 0 Tx-bps: 0
############################################################################
[Expected Result
Explain what is the expected result in text or as an example output:
Packets can loop in 2 testpmds.
testpmd> show port stats 0
######################## NIC statistics for port 0 ########################
RX-packets: 46956447 RX-missed: 0 RX-bytes: 290754319824
RX-errors: 0
RX-nombuf: 0
TX-packets: 46956447 TX-errors: 0 TX-bytes: 290754319824
Throughput (since last show)
Rx-pps: 394554 Rx-bps: 19544669232 Tx-pps: 394554 Tx-bps: 19544669232
############################################################################
testpmd> show port stats 0
######################## NIC statistics for port 0 ########################
RX-packets: 47551390 RX-missed: 0 RX-bytes: 294438206880
RX-errors: 0
RX-nombuf: 0
TX-packets: 47551390 TX-errors: 0 TX-bytes: 294438206880
Throughput (since last show)
Rx-pps: 395181 Rx-bps: 19575708200 Tx-pps: 395181 Tx-bps: 19575708200
############################################################################
Regression
Is this issue a regression: (Y/N) Y
Version the regression was introduced: Specify git id if known.
0fd1386c30c3ad9365d7fdd2829bf7cb2e1b9dff is the first bad commit commit 0fd1386c30c3ad9365d7fdd2829bf7cb2e1b9dff
Author: Stephen Hemminger <[email protected]> Date: Fri Feb 3 11:14:09 2023 -0800
app/testpmd: cleanup cleanly from signal
Do a clean shutdown of testpmd when a signal is received; instead of having testpmd kill itself. This fixes the problem where a signal could be received in the middle of a PMD and then the signal handler would call PMD's close routine leading to locking problems.
The cmdline structure no longer needs to be global it can just be local to the prompt() function.
An added benefit is it gets rid of some Windows specific code.
app/test-pmd/cmdline.c | 29 ++++++++----------- app/test-pmd/testpmd.c | 77 +++++++++++++++++++++++--------------------------- app/test-pmd/testpmd.h | 1 + 3 files changed, 48 insertions, 59 deletions
Signature · 2 lines
You are receiving this mail because: You are the assignee for the bug.
[email protected]
Acked-by Olivier Matzhttps://bugs.dpdk.org/show_bug.cgi?id=1181
lingwei ([email protected]) changed:
What |Removed |Added
----------------------------------------------------------------------------
Resolution|--- |FIXED
Status|UNCONFIRMED |RESOLVED--- Comment #3 from lingwei ([email protected]) --- The patch has been merged, and verified PASSED.
OS: Ubuntu 22.04.1 LTS/Linux 5.15.45-051545-generic
commit f1d0993e034e39968a2c80a8561b46c260c27487 (HEAD -> main, origin/main, origin/HEAD)
Author: Stephen Hemminger <[email protected]> Date: Fri Mar 17 09:59:41 2023 -0700
app/testpmd: fix interactive mode on Windows
The cmdline_poll() function is broken and was not fully tested, go back to using cmdline_interact().
Instead, use sigaction() to cancel read character on Unix OS's and a new helper to cancel I/O on Windows.
Bugzilla ID: 1180
Signature · 2 lines
You are receiving this mail because: You are the assignee for the bug.