Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.

Bug 1882393

Summary: Fail to migrate after adding "iommu_platform=on,disable-legacy=on,disable-modern=off" to virtio-net-pci
Product: Red Hat Enterprise Linux Advanced Virtualization Reporter: bfu <bfu>
Component: qemu-kvmAssignee: Virtualization Maintenance <virt-maint>
qemu-kvm sub component: PCI QA Contact: bfu <bfu>
Status: CLOSED DUPLICATE Docs Contact:
Severity: medium    
Priority: medium CC: dgibson, gkurz, hannsj_uhl, jinzhao, juzhang, lvivier, mdeng, ngu, qzhang, virt-maint, xianwang, xuma, zhenyzha
Version: 8.3Flags: pm-rhel: mirror+
Target Milestone: rc   
Target Release: 8.3   
Hardware: ppc64le   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2020-09-24 13:06:57 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:

Description bfu 2020-09-24 13:01:02 UTC
Description of problem:
After adding "iommu_platform=on,disable-legacy=on,disable-modern=off" to virtio-net-pci device, guest could not migrate successfully with error output:qemu-kvm: GLib: gmem.c:135: failed to allocate 17592186299128 bytes

Version-Release number of selected component (if applicable):
host kernel:4.18.0-239.el8.ppc64le
slof:SLOF-20200717-1.gite18ddad8.scrmod+el8.3.0+7993+98b756aa.noarch
qemu version:qemu-kvm-5.1.0-0.scrmod+el8.3.0+7993+98b756aa.wrb200909.ppc64le
guest kernel:4.18.0-236.el8.ppc64le

How reproducible:
100%

Steps to Reproduce:
1.boot up guest with qemu cli:
source:/usr/libexec/qemu-kvm \
    -S \
    -name 'vm1'  \
    -sandbox on  \
    -machine pseries,cap-ccf-assist=off  \
    -nodefaults \
    -device VGA,bus=pci.0,addr=0x2 \
    -m 8192  \
    -smp 8,maxcpus=8,cores=4,threads=1,sockets=2  \
    -cpu 'host' \
    -chardev socket,id=chardev_serial0,server,path=/tmp/slofpath,nowait \
    -device spapr-vty,id=serial0,reg=0x30000000,chardev=chardev_serial0 \
    -device virtio-serial-pci,id=virtio-serial0,max_ports=16,vectors=0,bus=pci.0,addr=0x3,iommu_platform=on,disable-legacy=on,disable-modern=off \
    -chardev socket,path=/tmp/qga.sock,server,nowait,id=qga0 \
    -device virtserialport,chardev=qga0,name=org.qemu.guest_agent.0\
    -device qemu-xhci,id=usb1,bus=pci.0,addr=0x6 \
    -device virtio-scsi-pci,id=virtio_scsi_pci0,bus=pci.0,addr=0x9,iommu_platform=on,disable-legacy=on,disable-modern=off \
    -blockdev node-name=file_image1,driver=file,aio=threads,filename=rhel8300916.qcow2,cache.direct=off,cache.no-flush=on \
    -blockdev node-name=drive_image1,driver=qcow2,cache.direct=off,cache.no-flush=on,file=file_image1 \
    -device scsi-hd,id=image1,drive=drive_image1,write-cache=on \
    -device virtio-net-pci,mac=9a:f3:34:18:4d:a4,id=idxUm7Mp,netdev=idgKDzyu,bus=pci.0,addr=0x8,iommu_platform=on,disable-legacy=on,disable-modern=off  \
    -netdev tap,id=idgKDzyu,vhost=on \
    -device usb-tablet,id=usb-tablet1,bus=usb1.0,port=1  \
    -device usb-kbd,id=usb-kbdppc1,bus=usb1.0,port=2  \
    -vnc :30  \
    -qmp tcp:0:4441,server,nowait \
    -rtc base=utc,clock=host  \
    -boot menu=off,order=cdn,once=c,strict=off  \
    -enable-kvm \
    -monitor stdio \

destination:
/usr/libexec/qemu-kvm \
    -incoming defer \
    -name 'vm1'  \
    -sandbox on  \
    -machine pseries,cap-ccf-assist=off  \
    -nodefaults \
    -device VGA,bus=pci.0,addr=0x2 \
    -m 8192  \
    -smp 8,maxcpus=8,cores=4,threads=1,sockets=2  \
    -cpu 'host' \
    -chardev socket,id=chardev_serial0,server,path=/tmp/slofpath1,nowait \
    -device spapr-vty,id=serial0,reg=0x30000000,chardev=chardev_serial0 \
    -device virtio-serial-pci,id=virtio-serial0,max_ports=16,vectors=0,bus=pci.0,addr=0x3,iommu_platform=on,disable-legacy=on,disable-modern=off \
    -chardev socket,path=/tmp/qga.sock1,server,nowait,id=qga0 \
    -device virtserialport,chardev=qga0,name=org.qemu.guest_agent.0\
    -device qemu-xhci,id=usb1,bus=pci.0,addr=0x6 \
    -device virtio-scsi-pci,id=virtio_scsi_pci0,bus=pci.0,addr=0x9,iommu_platform=on,disable-legacy=on,disable-modern=off \
    -blockdev node-name=file_image1,driver=file,aio=threads,filename=rhel8300916.qcow2,cache.direct=off,cache.no-flush=on \
    -blockdev node-name=drive_image1,driver=qcow2,cache.direct=off,cache.no-flush=on,file=file_image1 \
    -device scsi-hd,id=image1,drive=drive_image1,write-cache=on \
    -device virtio-net-pci,mac=9a:f3:34:18:4d:a4,id=idxUm7Mp,netdev=idgKDzyu,bus=pci.0,addr=0x8,iommu_platform=on,disable-legacy=on,disable-modern=off  \
    -netdev tap,id=idgKDzyu,vhost=on \
    -device usb-tablet,id=usb-tablet1,bus=usb1.0,port=1  \
    -device usb-kbd,id=usb-kbdppc1,bus=usb1.0,port=2  \
    -vnc :31  \
    -qmp tcp:0:4442,server,nowait \
    -rtc base=utc,clock=host  \
    -boot menu=off,order=cdn,once=c,strict=off  \
    -enable-kvm \
    -monitor stdio \


2.boot two guest up and do migration with
(qemu) migrate_incoming tcp:10.16.214.92:4443 in destination side
(qemu) migrate -d tcp:10.16.214.92:4443 in source side



Actual results:
qemu report error with "(qemu)qemu-kvm: GLib: gmem.c:135: failed to allocate 17592186299128 bytes" and source guest hang

Expected results:
able to migrate

Additional info:

Comment 1 bfu 2020-09-24 13:06:57 UTC
Check with bugzilla and this is duplicate with Bug 1879349 - Migration failed, when 'iommu_platform' is enabled on ‘virtio-net-pci’ device

Comment 2 Greg Kurz 2020-09-24 13:55:32 UTC
(In reply to bfu from comment #1)
> Check with bugzilla and this is duplicate with Bug 1879349 - Migration
> failed, when 'iommu_platform' is enabled on ‘virtio-net-pci’ device

Shouldn't the resolution be DUPLICATE instead of NOTABUG then ?

Comment 3 bfu 2020-09-30 01:49:25 UTC

*** This bug has been marked as a duplicate of bug 1879349 ***