Description of problem: Boot VM with vhost-user server mode, seems the option usage has changed from "server" to "server=on" Version-Release number of selected component (if applicable): qemu-kvm-5.2.0-5.scrmod+el8.4.0+9783+7f5b6b81.wrb210203.x86_64 libvirt-7.0.0-3.scrmod+el8.4.0+9783+5765bd69.x86_64 How reproducible: 100% Steps to Reproduce: 1. Boot OVS # ovs-vsctl show d96517fa-c587-42e7-a4f1-97e4bd488ffb Bridge ovsbr0 datapath_type: netdev Port vhost-user0 Interface vhost-user0 type: dpdkvhostuserclient options: {vhost-server-path="/tmp/vhostuser0.sock"} Port dpdk0 Interface dpdk0 type: dpdk options: {dpdk-devargs="0000:5e:00.0"} Port ovsbr0 Interface ovsbr0 type: internal Bridge ovsbr1 datapath_type: netdev Port vhost-user1 Interface vhost-user1 type: dpdkvhostuserclient options: {vhost-server-path="/tmp/vhostuser1.sock"} Port dpdk1 Interface dpdk1 type: dpdk options: {dpdk-devargs="0000:5e:00.1"} Port ovsbr1 Interface ovsbr1 type: internal 2. Boot VM with vhost-user server, successfully. <interface type="vhostuser"> <mac address="18:66:da:5f:dd:02" /> <source mode="server" path="/tmp/vhostuser0.sock" type="unix" /> <model type="virtio" /> <driver ats="on" iommu="on" name="vhost" queues="4" rx_queue_size="1024" /> <address bus="0x6" domain="0x0000" function="0x0" slot="0x00" type="pci" /> </interface> <interface type="vhostuser"> <mac address="18:66:da:5f:dd:03" /> <source mode="server" path="/tmp/vhostuser1.sock" type="unix" /> <model type="virtio" /> <driver ats="on" iommu="on" name="vhost" queues="4" rx_queue_size="1024" /> <address bus="0x7" domain="0x0000" function="0x0" slot="0x00" type="pci" /> </interface> 3. Check libvirt log, there are warning info: "warning: short-form boolean option 'server' deprecated". Please see below. ... 2021-02-07 08:16:02.443+0000: Domain id=1 is tainted: high-privileges qemu-kvm: -chardev socket,id=charmonitor,fd=36,server,nowait: warning: short-form boolean option 'server' deprecated Please use server=on instead qemu-kvm: -chardev socket,id=charmonitor,fd=36,server,nowait: warning: short-form boolean option 'nowait' deprecated Please use wait=off instead qemu-kvm: -chardev socket,id=charnet1,path=/tmp/vhostuser0.sock,server: warning: short-form boolean option 'server' deprecated Please use server=on instead qemu-kvm: -chardev socket,id=charnet2,path=/tmp/vhostuser1.sock,server: warning: short-form boolean option 'server' deprecated Please use server=on instead 2021-02-07T08:16:02.510649Z qemu-kvm: -chardev socket,id=charnet1,path=/tmp/vhostuser0.sock,server: info: QEMU waiting for connection on: disconnected:unix:/tmp/vhostuser0.sock,server 2021-02-07T08:16:02.983951Z qemu-kvm: -chardev socket,id=charnet2,path=/tmp/vhostuser1.sock,server: info: QEMU waiting for connection on: disconnected:unix:/tmp/vhostuser1.sock,server char device redirected to /dev/pts/1 (label charserial0) Actual results: Warning info shows. Expected results: There should be no warning info. Additional info: 1. Qemu usage change causes this warning. Libvirt should adjust itself to qemu accordingly. (1) Boot qemu with vhost-user "server", it prints "warning: short-form boolean option 'server' deprecated. Please use server=on instead" # /usr/libexec/qemu-kvm -chardev socket,id=charnet2,path=/tmp/vhostuser1.sock,server qemu-kvm: -chardev socket,id=charnet2,path=/tmp/vhostuser1.sock,server: warning: short-form boolean option 'server' deprecated Please use server=on instead qemu-kvm: -chardev socket,id=charnet2,path=/tmp/vhostuser1.sock,server: info: QEMU waiting for connection on: disconnected:unix:/tmp/vhostuser1.sock,server (2) Boot qemu with vhost-user "server=on", it works well. # /usr/libexec/qemu-kvm -chardev socket,id=charnet2,path=/tmp/vhostuser1.sock,server=on qemu-kvm: -chardev socket,id=charnet2,path=/tmp/vhostuser1.sock,server=on: info: QEMU waiting for connection on: disconnected:unix:/tmp/vhostuser1.sock,server 2. Qemu version changes qemu-kvm-5.2.0-5.module+el8.4.0+9775+0937c167.x86_64 still "server" qemu-kvm-5.2.0-5.scrmod+el8.4.0+9783+7f5b6b81.wrb210203.x86_64 need "server=on" 3. I would assume this warning should be fixed by Libvirt component. If not, feel free to switch to qemu component. Thank you.
More info: Seems official build doesn't hit this issue, only upstream build hit it. qemu-kvm-5.2.0-7.module+el8.4.0+9943+d64b3717.x86_64 still "server" qemu-kvm-5.2.0-7.scrmod+el8.4.0+10001+766c7930.wrb210217.x86_64 need "server=on"
Fixed upstream as: 2931839966 qemu: remove support for generating yes|no boolean options 0d981fcd97 qemu: use on|off instead of yes|no for -drive boolean properties 8851d87556 qemu: use on|off instead of yes|no for -object boolean properties cff6236105 qemu: use on|off for -vnc boolean option values a4f57fa37d qemu: probe for -vnc supporting use of QemuOpts syntax 67f8ccb4e2 qemu: use long on|off syntax for -spice boolean option values 43c9c0859f qemu: use long on|off syntax for -chardev boolean option values v7.0.0-483-g2931839966
To POST: http://post-office.corp.redhat.com/archives/rhvirt-patches/2021-February/msg00413.html
Verify this bug with libvirt-daemon-7.4.0-1.module+el8.5.0+11218+83343022.x86_64: 1. prepare vhost-user server and client interface: # ovs-vsctl show 9676e68f-3545-49b7-9da4-0ba940cfdaf1 Bridge "ovsbr0" Port "ovsbr0" Interface "ovsbr0" type: internal Port "vhost-client-1" Interface "vhost-client-1" type: dpdkvhostuserclient options: {vhost-server-path="/var/lib/libvirt/qemu/vhost-client-1"} Port "vhost-user2" Interface "vhost-user2" type: dpdkvhostuser Port "vhost-user1" Interface "vhost-user1" type: dpdkvhostuser 2. define a guest which have vhost-user server and client VNIC: # virsh dumpxml vm1 ... <interface type='vhostuser'> <mac address='52:54:00:93:51:dd'/> <source type='unix' path='/var/run/openvswitch/vhost-user2' mode='client'/> <model type='virtio'/> <driver name='vhost' queues='4' rx_queue_size='1024' iommu='on' ats='on'/> <address type='pci' domain='0x0000' bus='0x03' slot='0x00' function='0x0'/> </interface> <interface type='vhostuser'> <mac address='52:54:00:70:c2:4b'/> <source type='unix' path='/var/lib/libvirt/qemu/vhost-client-1' mode='server'/> <model type='virtio'/> <driver name='vhost' queues='4' rx_queue_size='1024' iommu='on' ats='on'/> <address type='pci' domain='0x0000' bus='0x08' slot='0x00' function='0x0'/> </interface> ... 3. check qemu command line and find that libvirt use server=on instead of server: # ps aux|grep qemu ...-chardev socket,id=charnet1,path=/var/run/openvswitch/vhost-user2 -netdev vhost-user,chardev=charnet1,queues=4,id=hostnet1 -device virtio-net-pci,mq=on,vectors=10,rx_queue_size=1024,netdev=hostnet1,id=net1,mac=52:54:00:93:51:dd,bus=pci.3,addr=0x0,iommu_platform=on,ats=on -chardev socket,id=charnet2,path=/var/lib/libvirt/qemu/vhost-client-1,server=on -netdev vhost-user,chardev=charnet2,queues=4,id=hostnet2 -device virtio-net-pci,mq=on,vectors=10,rx_queue_size=1024,netdev=hostnet2,id=net2,mac=52:54:00:70:c2:4b,bus=pci.8,addr=0x0,iommu_platform=on,ats=on 4. check guest logs, there is no warning like "warning: short-form boolean option 'server' deprecated"
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory (virt:av bug fix and enhancement update), and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHBA-2021:4684