https://bugs.dpdk.org/show_bug.cgi?id=699
Bug ID: 699 Summary: [dpdk-21.05] pvp_virtio_user_multi_queues_port_restart: virtio-user can't recieve packets when use packed ring and ring size is 255 Product: DPDK Version: unspecified Hardware: All OS: All Status: UNCONFIRMED Severity: normal Priority: Normal Component: vhost/virtio Assignee: dev@dpdk.org Reporter: weix.l...@intel.com Target Milestone: --- Environment DPDK version: 21.05-rc2:47a0c2e11712fc5286d6a197d549817ae8f8f50e Other software versions: N/A OS: Ubuntu 20.04.1 LTS/Linux 5.11.6-051106-generic Compiler: gcc version 9.3.0 (Ubuntu 9.3.0-17ubuntu1~20.04) Hardware platform: Intel(R) Xeon(R) Platinum 8280M CPU @ 2.70GHz NIC hardware: Intel Corporation Ethernet Controller XL710 for 40GbE QSFP+ (rev 01) NIC driver & firmware: i40e-5.11.6-051106-generic/8.30 0x8000a4ae 1.2926.0 Test Setup Steps to reproduce List the steps to reproduce the issue. #1.Build DPDK CC=gcc meson -Denable_kmods=True -Dlibdir=lib --default-library=static x86_64-native-linuxapp-gcc ninja -C x86_64-native-linuxapp-gcc #2.Bind NIC port to DPDK dpdk-devbind.py --force --bind=vfio-pci 0000:af:00.0 #3.Start vhost-user testpmd x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 30,31,32 -n 4 --file-prefix=vhost_73033_20210508140517 -a 0000:af:00.0 --vdev 'net_vhost0,iface=vhost-net,queues=2,client=0' -- -i --nb-cores=2 --rxq=2 --txq=2 --rss-ip set fwd mac start #4.Start virtio-user testpmd with packed ring path x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 33,34,35 -n 4 --file-prefix=virtio --no-pci --vdev net_virtio_user0,mac=00:01:02:03:04:05,path=./vhost-net,queues=2,packed_vq=1,mrg_rxbuf=0,in_order=0,queue_size=255 -- -i --tx-offloads=0x0 --enable-hw-vlan-strip --rss-ip --nb-cores=2 --rxq=2 --txq=2 --txd=255 --rxd=255 set fwd mac start #5.Use TREX to send pakcets to DUT port cd /opt/trex/v2.84/;./t-rex-64 -i --cfg /etc/trex_cfg_fvl40g.yaml -c 16 cd /opt/trex/v2.84/;./trex-console start -f stl/bench.py -t size=64,vm=cached --port 0 -m 100% #6.Execute command to get throught from vhost-user testpmd testpmd> show port stats all Show the output from the previous commands. testpmd> show port stats all ######################## NIC statistics for port 0 ######################## RX-packets: 1399768133 RX-missed: 273026869 RX-bytes: 89948812572 RX-errors: 0 RX-nombuf: 0 TX-packets: 1175 TX-errors: 0 TX-bytes: 70500 Throughput (since last show) Rx-pps: 39303277 Rx-bps: 18865575800 Tx-pps: 0 Tx-bps: 0 ############################################################################ ######################## NIC statistics for port 1 ######################## RX-packets: 1175 RX-missed: 0 RX-bytes: 70500 RX-errors: 0 RX-nombuf: 0 TX-packets: 2292 TX-errors: 0 TX-bytes: 137520 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: testpmd> show port stats all ######################## NIC statistics for port 0 ######################## RX-packets: 26942470 RX-missed: 98913124 RX-bytes: 5625465796 RX-errors: 0 RX-nombuf: 0 TX-packets: 26941001 TX-errors: 0 TX-bytes: 1616459356 Throughput (since last show) Rx-pps: 9136506 Rx-bps: 15263702536 Tx-pps: 9136475 Tx-bps: 4385501336 ############################################################################ ######################## NIC statistics for port 1 ######################## RX-packets: 26941662 RX-missed: 0 RX-bytes: 1616499720 RX-errors: 0 RX-nombuf: 0 TX-packets: 26941792 TX-errors: 0 TX-bytes: 1616507520 Throughput (since last show) Rx-pps: 9136255 Rx-bps: 4385402816 Tx-pps: 9136295 Tx-bps: 4385421736 ############################################################################ Regression Is this issue a regression: (Y/N) Y Version the regression was introduced: Specify git id if known. commit d18db8049c7c52fe91058c125c7a59c8c2f9cb42 (HEAD) Author: Balazs Nemeth <bnem...@redhat.com> Date: Wed Apr 28 10:17:31 2021 +0800 vhost: read last used index once Instead of calculating the address of a packed descriptor based on the vq->desc_packed and vq->last_used_idx every time, store that base address in desc_base. On arm, this saves 176 bytes in code size of function in which vhost_flush_enqueue_batch_packed gets inlined. Signed-off-by: Balazs Nemeth <bnem...@redhat.com> Reviewed-by: Maxime Coquelin <maxime.coque...@redhat.com> -- You are receiving this mail because: You are the assignee for the bug.