[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=20=20
Compile DPDK::
meson -Dexamples=3Dl3fwd-power x86_64-native-linuxapp-gcc
ninja -C x86_64-native-linuxapp-gcc
2.bind NIC port to vfio-pci,=20=20
./usertools/dpdk-devbind.py -b vfio-pci 45:00.0
3. Launch virtio-user with server mode::=20
./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 3-4 -n 8 -a 0000:45:00.0
--vdev net_virtio_user0,path=3D./vhost-net,server=3D1,queues=3D1 -- -i --rx=
q=3D1
--txq=3D1
4. Launch vhost with l3fwd-power::=20=20=20=20=20=20
./x86_64-native-linuxapp-gcc/examples/dpdk-l3fwd-power -l 5-6 -n 8=20=20
--file-prefix=3Dl3fwd-pwd_216146_20231228175051 --no-pci --vdev
net_vhost0,iface=3D./vhost-net,queues=3D1,client=3D1 --log-level=3D'user=
1,7' -- -p 1
--config=3D'(0,0,5)' --parse-ptype --pmd-mgmt=3Dmonitor
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=
)=20=20=20=20
a07736eb68 build failed (vhost: fix missing lock protection in power monitor
API) (/lib/vhost/vhost.c:2171:13: error: unused variable =E2=80=98ret=E2=80=
=99
[-Werror=3Dunused-variable])
adae353b36 tested passed (vhost: fix check on virtqueue access in in-flight
getter)=20=20=20=20=20
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>
[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=20=20 Compile DPDK:: meson -Dexamples=3Dl3fwd-power x86_64-native-linuxapp-gcc ninja -C x86_64-native-linuxapp-gcc 2.bind NIC port to vfio-pci,=20=20 ./usertools/dpdk-devbind.py -b vfio-pci 45:00.0 3. Launch virtio-user with server mode::=20 ./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -l 3-4 -n 8 -a 0000:45:00.0 --vdev net_virtio_user0,path=3D./vhost-net,server=3D1,queues=3D1 -- -i --rx= q=3D1 --txq=3D1 4. Launch vhost with l3fwd-power::=20=20=20=20=20=20 ./x86_64-native-linuxapp-gcc/examples/dpdk-l3fwd-power -l 5-6 -n 8=20=20 --file-prefix=3Dl3fwd-pwd_216146_20231228175051 --no-pci --vdev net_vhost0,iface=3D./vhost-net,queues=3D1,client=3D1 --log-level=3D'user= 1,7' -- -p 1 --config=3D'(0,0,5)' --parse-ptype --pmd-mgmt=3Dmonitor 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= )=20=20=20=20 a07736eb68 build failed (vhost: fix missing lock protection in power monitor API) (/lib/vhost/vhost.c:2171:13: error: unused variable =E2=80=98ret=E2=80= =99 [-Werror=3Dunused-variable]) adae353b36 tested passed (vhost: fix check on virtqueue access in in-flight getter)=20=20=20=20=20 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>