https://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: dev@dpdk.org Reporter: weix.ling@intel.com 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 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. Fixes: d9a191a00e81 ("app/testpmd: fix quitting in container") Cc: stable@dpdk.org Signed-off-by: Stephen Hemminger Acked-by: Ferruh Yigit 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 -- You are receiving this mail because: You are the assignee for the bug.