Bug ID 1338
Summary [dpdk-22.11.4] vhost_virtio_user_interrupt_with_power_monitor/perf_wake_up_split_ring_vhost_user_core_with_l3fwd_power_sample:virtio-user can't receive packet
Product DPDK
Version 22.11
Hardware All
OS All
Status UNCONFIRMED
Severity normal
Priority Normal
Component vhost/virtio
Assignee dev@dpdk.org
Reporter linglix.chen@intel.com
Target Milestone ---

[Environment]
DPDK version: dpdk 22.11.4-rc3: 4307659a90
OS: Ubuntu 22.04.3 LTS/5.15.0-87-generic
Compiler: gcc version 11.4.0
Hardware platform: SPR(Intel(R) Xeon(R) Platinum 8490H)
NIC hardware: Ethernet Controller E810-C for QSFP 1592
NIC firmware: 4.40 0x8001c2f1 1.3492.0
NIC kdriver: ice-1.13.3_dirty

[Test Setup]
Steps to reproduce
1. ssh root@dpdk-yingya-spr2  
Compile DPDK::
meson  -Dexamples=l3fwd-power x86_64-native-linuxapp-gcc
ninja -C x86_64-native-linuxapp-gcc

2.bind NIC port to vfio-pci,  
./usertools/dpdk-devbind.py -b vfio-pci 45:00.0

3. Launch virtio-user with server mode:: 
./x86_64-native-linuxapp-gcc/app/dpdk-testpmd  -l 3-4 -n 8 -a 0000:45:00.0
--vdev net_virtio_user0,path=./vhost-net,server=1,queues=1 -- -i --rxq=1
--txq=1

4. Launch vhost with l3fwd-power::      
 ./x86_64-native-linuxapp-gcc/examples/dpdk-l3fwd-power  -l 5-6 -n 8  
--file-prefix=l3fwd-pwd_216146_20231228175051 --no-pci --vdev
net_vhost0,iface=./vhost-net,queues=1,client=1    --log-level='user1,7' -- -p 1
 --config='(0,0,5)' --parse-ptype --pmd-mgmt=monitor

5. Start virtio-user::
      testpmd>start

6. Sent imix packets from TG

[Show the output from the previous commands]
pktgen: ixia packet generator: run traffic 5s to warm up ...
                        pktgen: begin traffic ......
                        tester: scp -v ixiaConfig.tcl root@dpdk-yingya-spr2:~/
                        pktgen: source ixiaConfig.tcl
                        pktgen: ixStopTransmit portList
                        pktgen: traffic completed.
                        pktgen: begin traffic ......
                        tester: scp -v ixiaConfig.tcl root@dpdk-yingya-spr2:~/
                        pktgen: source ixiaConfig.tcl
                        pktgen: begin get port statistic ...
                        pktgen: stat getRate statAllStats 1 3 4
                        pktgen: stat cget -framesReceived
                        pktgen: stat cget -bitsReceived
                        pktgen: stat cget -oversize
                        pktgen: throughput: pps_rx 0.000000, bps_rx 0.000000

[Expected Result]
 check packets can fwd back with correct payload.

Regression
Is this issue a regression: (Y/N) Y
test on SPR only
The commit a07736eb68 will build failed
8c291d8778 tested failed (vhost: fix checking virtqueue access in stats API)    
a07736eb68 build failed (vhost: fix missing lock protection in power monitor
API) (/lib/vhost/vhost.c:2171:13: error: unused variable ‘ret’
[-Werror=unused-variable])
adae353b36 tested passed (vhost: fix check on virtqueue access in in-flight
getter)     

bad commit  8c291d87783d2e22e6234cddc23bee27d0f14dae (HEAD -> 22.11)
Author: Maxime Coquelin <maxime.coquelin@redhat.com>
Date:   Fri Oct 20 10:48:04 2023 +0200

    vhost: fix checking virtqueue access in stats API

    [ upstream commit a004501a147889d608008ab6f18355e9b0ceff65 ]

    Acquiring the access lock is not enough to ensure
    virtqueue's metadata such as vring pointers are valid.

    The access status must also be checked.

    Fixes: be75dc99ea1f ("vhost: support per-virtqueue statistics")

    Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
    Acked-by: David Marchand <david.marchand@redhat.com>
          


You are receiving this mail because: