Bug 1925894
| Summary: | VM with vhost-user server option changes and hit warning: short-form boolean option 'server' deprecated | ||
|---|---|---|---|
| Product: | Red Hat Enterprise Linux Advanced Virtualization | Reporter: | Pei Zhang <pezhang> |
| Component: | libvirt | Assignee: | Michal Privoznik <mprivozn> |
| Status: | CLOSED ERRATA | QA Contact: | Luyao Huang <lhuang> |
| Severity: | unspecified | Docs Contact: | |
| Priority: | unspecified | ||
| Version: | 8.4 | CC: | chayang, jdenemar, jinzhao, jsuchane, juzhang, lmen, virt-maint, xuzhang, yanghliu |
| Target Milestone: | rc | Keywords: | Triaged, Upstream |
| Target Release: | 8.4 | Flags: | pm-rhel:
mirror+
|
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
| Whiteboard: | |||
| Fixed In Version: | libvirt-7.3.0-1.el8 | Doc Type: | If docs needed, set a value |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2021-11-16 07:51:32 UTC | Type: | Bug |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | 7.1.0 |
| Embargoed: | |||
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 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 |
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.