Hide Forgot
Using and ARM mustang chassis, built a RHELSA kernel and enabled hugepage support with page size of 4K. Built DPDK 16.0.7 and installed it. Built and installed OVS 2.6.0 with the --with-dpdk=$DPDK_BUILD option and installed it. Installed all virt components from the batcave. Initialized hugepages to 2500. [echo 2500 > /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages]. Started OVS and added a DPDK interface.[ovs-vsctl add-port br0 dpdk0 -- set Interface dpdk0 type=dpdk] Start my VM with the virt spec below. (virsh start rhel7.3) VM does not make it all the way up to running. The below error shows up in /var/log/libvirt/qemu/rhel7.3: (note: it may be easier to use my chassis with all the above..) ==== 2016-10-20 20:15:41.972+0000: starting up libvirt version: 2.0.0, package: 8.el7 (Red Hat, Inc. <http://bugzilla.redhat.com/bugzilla>, 2016-09-07-11:58:34, arm64-018.build.eng.bos.redhat.com), qemu version: 2.6.0 (qemu-kvm-rhev-2.6.0-28.el7), hostname: apm-mustang-ev3-18.ml3.eng.bos.redhat.com LC_ALL=C PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin QEMU_AUDIO_DRV=none /usr/libexec/qemu-kvm -name guest=rhel7.3,debug-threads=on -S -object secret,id=masterKey0,format=raw,file=/var/lib/libvirt/qemu/domain-6-rhel7.3/master-key.aes -machine virt-rhel7.3.0,accel=kvm,usb=off -cpu host -drive file=/usr/share/AAVMF/AAVMF_CODE.fd,if=pflash,format=raw,unit=0,readonly=on -drive file=/var/lib/libvirt/qemu/nvram/rhel7.3_VARS.fd,if=pflash,format=raw,unit=1 -m 2048 -realtime mlock=off -smp 1,sockets=1,cores=1,threads=1 -object memory-backend-file,id=ram-node0,prealloc=yes,mem-path=/dev/hugepages/libvirt/qemu,share=yes,size=2147483648 -numa node,nodeid=0,cpus=0,memdev=ram-node0 -uuid c2c2211c-0643-43ee-9ebb-d3058ceb1a6e -nographic -no-user-config -nodefaults -chardev socket,id=charmonitor,path=/var/lib/libvirt/qemu/domain-6-rhel7.3/monitor.sock,server,nowait -mon chardev=charmonitor,id=monitor,mode=control -rtc base=utc -no-shutdown -boot strict=on -device virtio-scsi-device,id=scsi0 -device virtio-serial-device,id=virtio-serial0 -drive file=/var/lib/libvirt/images/rhel7.3.qcow2,format=qcow2,if=none,id=drive-scsi0-0-0-0 -device scsi-hd,bus=scsi0.0,channel=0,scsi-id=0,lun=0,drive=drive-scsi0-0-0-0,id=scsi0-0-0-0,bootindex=1 -chardev socket,id=charnet0,path=/usr/local/var/run/openvswitch/dpdk0 -netdev type=vhost-user,id=hostnet0,chardev=charnet0 -device virtio-net-device,netdev=hostnet0,id=net0,mac=52:60:2f:87:e5:b9 -netdev tap,fd=26,id=hostnet1,vhost=on,vhostfd=28 -device virtio-net-device,netdev=hostnet1,id=net1,mac=52:54:00:16:4d:58 -serial pty -chardev socket,id=charchannel0,path=/var/lib/libvirt/qemu/channel/target/domain-6-rhel7.3/org.qemu.guest_agent.0,server,nowait -device virtserialport,bus=virtio-serial0.0,nr=1,chardev=charchannel0,id=channel0,name=org.qemu.guest_agent.0 -msg timestamp=on Domain id=6 is tainted: host-cpu char device redirected to /dev/pts/1 (label serial0) qemu-kvm: /builddir/build/BUILD/qemu-2.6.0/hw/virtio/vhost.c:1253: vhost_virtqueue_mask: Assertion `vdev->use_guest_notifier_mask' failed. 2016-10-20 20:16:01.916+0000: shutting down ==== <domain type='kvm'> <name>rhel7.3</name> <uuid>c2c2211c-0643-43ee-9ebb-d3058ceb1a6e</uuid> <memory unit='KiB'>2097152</memory> <currentMemory unit='KiB'>2097152</currentMemory> <memoryBacking> <hugepages/> </memoryBacking> <vcpu placement='static'>1</vcpu> <os> <type arch='aarch64' machine='virt-rhel7.3.0'>hvm</type> <loader readonly='yes' type='pflash'>/usr/share/AAVMF/AAVMF_CODE.fd</loader> <nvram>/var/lib/libvirt/qemu/nvram/rhel7.3_VARS.fd</nvram> <boot dev='hd'/> </os> <features> <gic version='2'/> </features> <cpu mode='host-passthrough'> <numa> <cell id='0' cpus='0' memory='2097152' unit='KiB' memAccess='shared'/> </numa> </cpu> <clock offset='utc'/> <on_poweroff>destroy</on_poweroff> <on_reboot>restart</on_reboot> <on_crash>restart</on_crash> <devices> <emulator>/usr/libexec/qemu-kvm</emulator> <disk type='file' device='disk'> <driver name='qemu' type='qcow2'/> <source file='/var/lib/libvirt/images/rhel7.3.qcow2'/> <target dev='sda' bus='scsi'/> <address type='drive' controller='0' bus='0' target='0' unit='0'/> </disk> <controller type='scsi' index='0' model='virtio-scsi'> <address type='virtio-mmio'/> </controller> <controller type='pci' index='0' model='pcie-root'/> <controller type='virtio-serial' index='0'> <address type='virtio-mmio'/> </controller> <interface type='vhostuser'> <mac address='52:60:2f:87:e5:b9'/> <source type='unix' path='/usr/local/var/run/openvswitch/dpdk0' mode='client'/> <model type='virtio'/> <address type='virtio-mmio'/> </interface> <interface type='network'> <mac address='52:54:00:16:4d:58'/> <source network='default'/> <model type='virtio'/> <address type='virtio-mmio'/> </interface> <serial type='pty'> <target port='0'/> </serial> <console type='pty'> <target type='serial' port='0'/> </console> <channel type='unix'> <target type='virtio' name='org.qemu.guest_agent.0'/> <address type='virtio-serial' controller='0' bus='0' port='1'/> </channel> </devices> </domain>
I am able to reproduce this issue on Seattle machine.
It looks like this is a bug in QEMU. Because guest_mask_notifier cannot be used in vhost-user mode, a boolean flag "use_guest_notifier_mask" was added to disable the use of guest_mask_notifier under virtio-pci. However this flag wasn't checked in virtio-mmio, causing assertion error under vhost-user + virtio-mmio. I have created a patch to fix it. Before submitting it, I has asked Michael Tsirkin to comment on it.
What's the status of this bug?
This is long gone, dont see it anymore. From early days testing