Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.
RHEL Engineering is moving the tracking of its product development work on RHEL 6 through RHEL 9 to Red Hat Jira (issues.redhat.com). If you're a Red Hat customer, please continue to file support cases via the Red Hat customer portal. If you're not, please head to the "RHEL project" in Red Hat Jira and file new tickets here. Individual Bugzilla bugs in the statuses "NEW", "ASSIGNED", and "POST" are being migrated throughout September 2023. Bugs of Red Hat partners with an assigned Engineering Partner Manager (EPM) are migrated in late September as per pre-agreed dates. Bugs against components "kernel", "kernel-rt", and "kpatch" are only migrated if still in "NEW" or "ASSIGNED". If you cannot log in to RH Jira, please consult article #7032570. That failing, please send an e-mail to the RH Jira admins at rh-issues@redhat.com to troubleshoot your issue as a user management inquiry. The email creates a ServiceNow ticket with Red Hat. Individual Bugzilla bugs that are migrated will be moved to status "CLOSED", resolution "MIGRATED", and set with "MigratedToJIRA" in "Keywords". The link to the successor Jira issue will be found under "Links", have a little "two-footprint" icon next to it, and direct you to the "RHEL project" in Red Hat Jira (issue links are of type "https://issues.redhat.com/browse/RHEL-XXXX", where "X" is a digit). This same link will be available in a blue banner at the top of the page informing you that that bug has been migrated.

Bug 1387773

Summary: Assert in vhost-user on aarch64 mustang with DPDK and OVS
Product: Red Hat Enterprise Linux 7 Reporter: Bill Townsend <wtownsen>
Component: qemu-kvm-rhevAssignee: Wei Huang (AMD) <wehuang>
Status: CLOSED NOTABUG QA Contact: Virtualization Bugs <virt-bugs>
Severity: high Docs Contact:
Priority: high    
Version: 7.3CC: chayang, drjones, eauger, hhuang, jcm, jfeeney, juzhang, knoel, michen, pezhang, rbalakri, virt-maint
Target Milestone: rcKeywords: OtherQA
Target Release: ---   
Hardware: aarch64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-08-31 19:54:44 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:
Embargoed:
Bug Depends On:    
Bug Blocks: 1173755    

Description Bill Townsend 2016-10-21 20:17:49 UTC
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>

Comment 1 Wei Huang (AMD) 2016-11-04 21:19:25 UTC
I am able to reproduce this issue on Seattle machine.

Comment 2 Wei Huang (AMD) 2016-12-14 19:37:32 UTC
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.

Comment 3 Jon Masters 2017-08-31 19:51:05 UTC
What's the status of this bug?

Comment 4 Bill Townsend 2017-08-31 19:54:44 UTC
This is long gone, dont see it anymore. From early days testing