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