qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug 1888818] [NEW] Multi-queue vhost-user fails to reconnect with qemu


From: xuan
Subject: [Bug 1888818] [NEW] Multi-queue vhost-user fails to reconnect with qemu version >=4.2
Date: Fri, 24 Jul 2020 09:10:34 -0000

Public bug reported:

Test Environment:
DPDK version: DPDK v20.08
Other software versions: qemu4.2.0, qemu5.0.0.
OS: Linux 4.15.0-20-generic
Compiler: gcc (Ubuntu 7.3.0-16ubuntu3) 8.4.0
Hardware platform: Purley.
Test Setup
Steps to reproduce
List the steps to reproduce the issue.

Test flow
=========
1. Launch vhost-user testpmd as port0 with 2 queues:

./x86_64-native-linuxapp-gcc/app/testpmd -l 2-4 -n 4 \
    --file-prefix=vhost --vdev 'net_vhost0,iface=vhost-net,queues=2,client=1' 
-- -i --txd=1024 --rxd=1024 --txq=2 --rxq=2
testpmd>start

3. Launch qemu with virtio-net:

 taskset -c 13 \
    qemu-system-x86_64 -name us-vhost-vm1 \
       -cpu host -enable-kvm -m 2048 -object 
memory-backend-file,id=mem,size=2048M,mem-path=/mnt/huge,share=on \
       -numa node,memdev=mem \
       -mem-prealloc -monitor unix:/tmp/vm2_monitor.sock,server,nowait -netdev 
user,id=yinan,hostfwd=tcp:127.0.0.1:6005-:22 -device e1000,netdev=yinan \
       -smp cores=1,sockets=1 -drive file=/home/osimg/ubuntu16.img  \
       -chardev socket,id=char0,path=./vhost-net,server \
       -netdev type=vhost-user,id=mynet1,chardev=char0,vhostforce,queues=2 \
       -device 
virtio-net-pci,mac=52:54:00:00:00:01,netdev=mynet1,mrg_rxbuf=on,csum=on,gso=on,host_tso4=on,guest_tso4=on,mq=on,vectors=15
 \
       -vnc :10 -daemonize

6. Quit testpmd and restart vhost-user :

testpmd>quit
./x86_64-native-linuxapp-gcc/app/testpmd -l 2-4 -n 4 \
    --file-prefix=vhost --vdev 'net_vhost0,iface=vhost-net,queues=2,client=1' 
-- -i --txd=1024 --rxd=1024 --txq=2 --rxq=2

Expected Result:
After the vhost-user is killed then re-launched, the virtio-net can connect 
back to vhost-user again.

Actual Result:
Vhost-user relaunch failed with continous log printed"VHOST_CONFIG: Processing 
VHOST_USER_SET_FEATURES failed.

Analysis:
This is a regression bug, bad commit: c6beefd674f
When vhost-user quits, QEMU doesnot save acked features for each virtio-net 
after vhost-user quits. When vhost-user reconnects to QEMU, QEMU sends two 
different features(one is the true acked feature while the another is 
0x40000000) to vhost-user successively which causing vhost-user exits 
abnormally.

** Affects: qemu
     Importance: Undecided
         Status: New

** Summary changed:

- vhost-user/vitrio-net test fail to reconnect from vhost-user with qemu 
version >=4.2
+ vhost-user fail to reconnect from virtio-net with qemu version >=4.2

** Description changed:

  Test Environment:
  DPDK version: DPDK v20.08
- Other software versions: qemu4.2, qemu5.0.
+ Other software versions: qemu4.2.0, qemu5.0.0.
  OS: Linux 4.15.0-20-generic
  Compiler: gcc (Ubuntu 7.3.0-16ubuntu3) 8.4.0
  Hardware platform: Purley.
  Test Setup
  Steps to reproduce
  List the steps to reproduce the issue.
  
  Test flow
  =========
  1. Launch vhost-user testpmd as port0 with 2 queues:
  
  ./x86_64-native-linuxapp-gcc/app/testpmd -l 2-4 -n 4 \
-     --file-prefix=vhost --vdev 'net_vhost0,iface=vhost-net,queues=2,client=1' 
-- -i --txd=1024 --rxd=1024 --txq=2 --rxq=2
+     --file-prefix=vhost --vdev 'net_vhost0,iface=vhost-net,queues=2,client=1' 
-- -i --txd=1024 --rxd=1024 --txq=2 --rxq=2
  testpmd>start
  
  3. Launch qemu with virtio-net:
  
-  taskset -c 13 \
-     qemu-system-x86_64 -name us-vhost-vm1 \
-        -cpu host -enable-kvm -m 2048 -object 
memory-backend-file,id=mem,size=2048M,mem-path=/mnt/huge,share=on \
-        -numa node,memdev=mem \
-        -mem-prealloc -monitor unix:/tmp/vm2_monitor.sock,server,nowait 
-netdev user,id=yinan,hostfwd=tcp:127.0.0.1:6005-:22 -device e1000,netdev=yinan 
\
-        -smp cores=1,sockets=1 -drive file=/home/osimg/ubuntu16.img  \
-        -chardev socket,id=char0,path=./vhost-net,server \
-        -netdev type=vhost-user,id=mynet1,chardev=char0,vhostforce,queues=2 \
-        -device 
virtio-net-pci,mac=52:54:00:00:00:01,netdev=mynet1,mrg_rxbuf=on,csum=on,gso=on,host_tso4=on,guest_tso4=on,mq=on,vectors=15
 \
-        -vnc :10 -daemonize
+  taskset -c 13 \
+     qemu-system-x86_64 -name us-vhost-vm1 \
+        -cpu host -enable-kvm -m 2048 -object 
memory-backend-file,id=mem,size=2048M,mem-path=/mnt/huge,share=on \
+        -numa node,memdev=mem \
+        -mem-prealloc -monitor unix:/tmp/vm2_monitor.sock,server,nowait 
-netdev user,id=yinan,hostfwd=tcp:127.0.0.1:6005-:22 -device e1000,netdev=yinan 
\
+        -smp cores=1,sockets=1 -drive file=/home/osimg/ubuntu16.img  \
+        -chardev socket,id=char0,path=./vhost-net,server \
+        -netdev type=vhost-user,id=mynet1,chardev=char0,vhostforce,queues=2 \
+        -device 
virtio-net-pci,mac=52:54:00:00:00:01,netdev=mynet1,mrg_rxbuf=on,csum=on,gso=on,host_tso4=on,guest_tso4=on,mq=on,vectors=15
 \
+        -vnc :10 -daemonize
  
  6. Quit testpmd and restart vhost-user :
  
  testpmd>quit
  ./x86_64-native-linuxapp-gcc/app/testpmd -l 2-4 -n 4 \
-     --file-prefix=vhost --vdev 'net_vhost0,iface=vhost-net,queues=2,client=1' 
-- -i --txd=1024 --rxd=1024 --txq=2 --rxq=2
- 
+     --file-prefix=vhost --vdev 'net_vhost0,iface=vhost-net,queues=2,client=1' 
-- -i --txd=1024 --rxd=1024 --txq=2 --rxq=2
  
  Expected Result:
  After the vhost-user is killed then re-launched, the virtio-net can connect 
back to vhost-user again.
  
  Actual Result:
  Vhost-user relaunch failed with continous log printed"VHOST_CONFIG: 
Processing VHOST_USER_SET_FEATURES failed.
  
  Analysis:
  This is a regression bug, bad commit: c6beefd674f
  When vhost-user quits, QEMU doesnot save acked features for each virtio-net 
after vhost-user quits. When vhost-user reconnects to QEMU, QEMU sends two 
different features(one is the true acked feature while the another is 
0x40000000) to vhost-user successively which causing vhost-user exits 
abnormally.

** Summary changed:

- vhost-user fail to reconnect from virtio-net with qemu version >=4.2
+ Multi-queue vhost-user fails to reconnect with qemu version >=4.2

-- 
You received this bug notification because you are a member of qemu-
devel-ml, which is subscribed to QEMU.
https://bugs.launchpad.net/bugs/1888818

Title:
  Multi-queue vhost-user fails to reconnect with qemu version >=4.2

Status in QEMU:
  New

Bug description:
  Test Environment:
  DPDK version: DPDK v20.08
  Other software versions: qemu4.2.0, qemu5.0.0.
  OS: Linux 4.15.0-20-generic
  Compiler: gcc (Ubuntu 7.3.0-16ubuntu3) 8.4.0
  Hardware platform: Purley.
  Test Setup
  Steps to reproduce
  List the steps to reproduce the issue.

  Test flow
  =========
  1. Launch vhost-user testpmd as port0 with 2 queues:

  ./x86_64-native-linuxapp-gcc/app/testpmd -l 2-4 -n 4 \
      --file-prefix=vhost --vdev 'net_vhost0,iface=vhost-net,queues=2,client=1' 
-- -i --txd=1024 --rxd=1024 --txq=2 --rxq=2
  testpmd>start

  3. Launch qemu with virtio-net:

   taskset -c 13 \
      qemu-system-x86_64 -name us-vhost-vm1 \
         -cpu host -enable-kvm -m 2048 -object 
memory-backend-file,id=mem,size=2048M,mem-path=/mnt/huge,share=on \
         -numa node,memdev=mem \
         -mem-prealloc -monitor unix:/tmp/vm2_monitor.sock,server,nowait 
-netdev user,id=yinan,hostfwd=tcp:127.0.0.1:6005-:22 -device e1000,netdev=yinan 
\
         -smp cores=1,sockets=1 -drive file=/home/osimg/ubuntu16.img  \
         -chardev socket,id=char0,path=./vhost-net,server \
         -netdev type=vhost-user,id=mynet1,chardev=char0,vhostforce,queues=2 \
         -device 
virtio-net-pci,mac=52:54:00:00:00:01,netdev=mynet1,mrg_rxbuf=on,csum=on,gso=on,host_tso4=on,guest_tso4=on,mq=on,vectors=15
 \
         -vnc :10 -daemonize

  6. Quit testpmd and restart vhost-user :

  testpmd>quit
  ./x86_64-native-linuxapp-gcc/app/testpmd -l 2-4 -n 4 \
      --file-prefix=vhost --vdev 'net_vhost0,iface=vhost-net,queues=2,client=1' 
-- -i --txd=1024 --rxd=1024 --txq=2 --rxq=2

  Expected Result:
  After the vhost-user is killed then re-launched, the virtio-net can connect 
back to vhost-user again.

  Actual Result:
  Vhost-user relaunch failed with continous log printed"VHOST_CONFIG: 
Processing VHOST_USER_SET_FEATURES failed.

  Analysis:
  This is a regression bug, bad commit: c6beefd674f
  When vhost-user quits, QEMU doesnot save acked features for each virtio-net 
after vhost-user quits. When vhost-user reconnects to QEMU, QEMU sends two 
different features(one is the true acked feature while the another is 
0x40000000) to vhost-user successively which causing vhost-user exits 
abnormally.

To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1888818/+subscriptions



reply via email to

[Prev in Thread] Current Thread [Next in Thread]