Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.
The FDP team is no longer accepting new bugs in Bugzilla. Please report your issues under FDP project in Jira. Thanks.

Bug 1793068

Summary: packed=on: boot qemu with vhost-user and vIOMMU over OpenvSwitch, starting testpmd in guest will cause ovs crash[rhel7,ovs2.11]
Product: Red Hat Enterprise Linux Fast Datapath Reporter: Pei Zhang <pezhang>
Component: openvswitch2.11Assignee: Adrián Moreno <amorenoz>
Status: CLOSED ERRATA QA Contact: Pei Zhang <pezhang>
Severity: high Docs Contact:
Priority: high    
Version: FDP 20.ACC: aadam, ailan, amorenoz, chayang, ctrautma, eperezma, fhallal, jhsiao, jinzhao, juzhang, kfida, ralongi, virt-maint
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: openvswitch2.11-2.11.0-50.el7fdn Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: 1788415
: 1812620 1812741 (view as bug list) Environment:
Last Closed: 2020-04-14 14:31:00 UTC Type: ---
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: 1788415    
Bug Blocks: 1793064, 1812740, 1812741    

Comment 1 Pei Zhang 2020-01-20 15:42:31 UTC
Versions:
openvswitch2.11-2.11.0-35.el8fdp.x86_64

We filed this bz to track ovs2.11 crash issue.

Comment 2 Adrián Moreno 2020-01-25 09:15:39 UTC
Posted a fix to upstream DPDK:
http://patches.dpdk.org/patch/65122/

Comment 6 Pei Zhang 2020-03-17 13:39:57 UTC
Verified with openvswitch2.11-2.11.0-50.el7fdp.x86_64:

As qemu-kvm-rhev-2.12.0-44.el7_8.1.x86_64 doesn't support packed=on option. So I chose upstream qemu4.2.0:

git://git.qemu.org/qemu.git
# git log -1
commit a98135f727595382e200d04c2996e868b7925a01
Merge: 509f617 f872c76
Author: Peter Maydell <peter.maydell>
Date:   Mon Mar 16 14:55:59 2020 +0000

    Merge remote-tracking branch 'remotes/kraxel/tags/vga-20200316-pull-request' into staging
    
    vga: stdvga/bochs mmio fix.
    
    # gpg: Signature made Mon 16 Mar 2020 12:48:10 GMT
    # gpg:                using RSA key 4CB6D8EED3E87138
    # gpg: Good signature from "Gerd Hoffmann (work) <kraxel>" [full]
    # gpg:                 aka "Gerd Hoffmann <gerd>" [full]
    # gpg:                 aka "Gerd Hoffmann (private) <kraxel>" [full]
    # Primary key fingerprint: A032 8CFF B93A 17A7 9901  FE7D 4CB6 D8EE D3E8 7138
    
    * remotes/kraxel/tags/vga-20200316-pull-request:
      stdvga+bochs-display: add dummy mmio handler
    
    Signed-off-by: Peter Maydell <peter.maydell>


Following steps in Description. Both ovs and qemu keep working well. And the dpdk's testpmd in guest can receive packets very well.

qemu cmd line:

/usr/local/bin/qemu-system-x86_64 \
-enable-kvm \
-name guest=rhel7.8 \
-machine q35,kernel_irqchip=split \
-cpu host \
-m 8192 \
-smp 6,sockets=6,cores=1,threads=1 \
-object memory-backend-file,id=mem,size=8G,mem-path=/dev/hugepages,share=on,host-nodes=1,policy=bind \
-numa node,memdev=mem \
-device intel-iommu,intremap=on,caching-mode=on,device-iotlb=on \
-device pcie-root-port,port=0x10,chassis=1,id=pci.1,bus=pcie.0,multifunction=on,addr=0x2 \
-device pcie-root-port,port=0x11,chassis=2,id=pci.2,bus=pcie.0,addr=0x2.0x1 \
-device pcie-root-port,port=0x12,chassis=3,id=pci.3,bus=pcie.0,addr=0x2.0x2 \
-device pcie-root-port,port=0x13,chassis=4,id=pci.4,bus=pcie.0,addr=0x2.0x3 \
-device pcie-root-port,port=0x14,chassis=5,id=pci.5,bus=pcie.0,addr=0x2.0x4 \
-device pcie-root-port,port=0x15,chassis=6,id=pci.6,bus=pcie.0,addr=0x2.0x5 \
-device pcie-root-port,port=0x16,chassis=7,id=pci.7,bus=pcie.0,addr=0x2.0x6 \
-blockdev driver=file,cache.direct=off,cache.no-flush=on,filename=/mnt/nfv/rhel7.8.qcow2,node-name=my_file \
-blockdev driver=qcow2,node-name=my,file=my_file \
-device virtio-blk-pci,scsi=off,iommu_platform=on,ats=on,bus=pci.2,addr=0x0,drive=my,id=virtio-disk0,bootindex=1,write-cache=on \
-netdev tap,id=hostnet0 \
-device virtio-net-pci,netdev=hostnet0,id=net0,mac=88:66:da:5f:dd:01,bus=pci.3,addr=0x0 \
-chardev socket,id=charnet1,path=/tmp/vhostuser0.sock,server \
-netdev vhost-user,chardev=charnet1,queues=2,id=hostnet1 \
-device virtio-net-pci,mq=on,vectors=6,rx_queue_size=1024,netdev=hostnet1,id=net1,mac=88:66:da:5f:dd:02,bus=pci.6,addr=0x0,iommu_platform=on,ats=on,packed=on \
-chardev socket,id=charnet2,path=/tmp/vhostuser1.sock,server \
-netdev vhost-user,chardev=charnet2,queues=2,id=hostnet2 \
-device virtio-net-pci,mq=on,vectors=6,rx_queue_size=1024,netdev=hostnet2,id=net2,mac=88:66:da:5f:dd:03,bus=pci.7,addr=0x0,iommu_platform=on,ats=on,packed=on \
-monitor stdio \
-vnc :2 \


So this bug has been fixed very well. Move to 'VERIFIED'.

Comment 8 errata-xmlrpc 2020-04-14 14:31:00 UTC
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, 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-2020:1457