Bug 1489800 - q35/ovmf: Machine type compat vs OVMF vs windows
Summary: q35/ovmf: Machine type compat vs OVMF vs windows
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise Linux 7
Classification: Red Hat
Component: qemu-kvm-rhev
Version: 7.5
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: rc
: ---
Assignee: Dr. David Alan Gilbert
QA Contact: jingzhao
URL:
Whiteboard:
Keywords:
Depends On:
Blocks: 1500181
TreeView+ depends on / blocked
 
Reported: 2017-09-08 12:08 UTC by Dr. David Alan Gilbert
Modified: 2018-04-11 00:33 UTC (History)
10 users (show)

(edit)
Clone Of:
(edit)
Last Closed: 2018-04-11 00:33:01 UTC


Attachments (Terms of Use)


External Trackers
Tracker ID Priority Status Summary Last Updated
Red Hat Product Errata RHSA-2018:1104 normal SHIPPED_LIVE Important: qemu-kvm-rhev security, bug fix, and enhancement update 2018-04-10 22:54:38 UTC

Description Dr. David Alan Gilbert 2017-09-08 12:08:33 UTC
Description of problem:
2.10 changed the acpi FADT rev (77af8a2), this broke various windows versions booting.   bz 3a3fcc fixed up the upstream i440fx to disable it conditionally,
it didn't disable it for q35.   We should disable it in the rhev-7.x x<5 machine types to keep compatibility

Version-Release number of selected component (if applicable):
7.5

How reproducible:


Steps to Reproduce:
1.
2.
3.

Actual results:


Expected results:


Additional info:
https://bugs.launchpad.net/qemu/+bug/1714331
https://bugs.launchpad.net/qemu/+bug/1715700

Comment 2 Dr. David Alan Gilbert 2017-09-20 12:21:21 UTC
At the same time fix another windows vs OVMF vs machine type bug;
 lp 1715700, 'make pc.rom readonly when machine has pci enabled' 208fa0e43645
we need to tie that to old machine types only and make sure we have the fix in OVMF.

QA: Test for this one is booting a Windows 7 guest with OVMF (and make sure it can migrate from 7.4->7.5 and do a reboot)

Comment 3 Dr. David Alan Gilbert 2017-10-06 17:21:04 UTC
confirmed that applying these fixes on our downstream 2.10 tree gets win7+old ovmf to boot.

Comment 4 Dr. David Alan Gilbert 2017-10-06 17:57:20 UTC
also confirmed that win10+old ovmf to boot

Comment 5 Dr. David Alan Gilbert 2017-10-10 11:04:52 UTC
acpi: Force rev1 FADT on old q35 machine types
pc: make pc_rom RO only on new machine types

Comment 8 Miroslav Rezanina 2017-10-20 09:33:32 UTC
Fix included in qemu-kvm-rhev-2.10.0-3.el7

Comment 10 jingzhao 2017-11-09 02:38:00 UTC
Hi David

  Failed when QE verifying the bz.

  Migrated failed and the error message of destination 
  ((qemu) qemu-kvm: Machine type received is 'pc-q35-rhel7.4.0' and local is 'pc-q35-rhel7.5.0' qemu-kvm: load of migration failed: Invalid argument)

  detailed steps:
 
  1. Boot guest in src 7.4 host [1]

  2. migrate to the destination 7.5 host

 
Actual Result:

migrate failed 

(qemu) qemu-kvm: Machine type received is 'pc-q35-rhel7.4.0' and local is 'pc-q35-rhel7.5.0'
qemu-kvm: load of migration failed: Invalid argument


7.4 host info:
[root@localhost test]# rpm -qa |grep qemu-kvm-rhev
qemu-kvm-rhev-2.9.0-16.el7_4.10.x86_64
qemu-kvm-rhev-debuginfo-2.9.0-16.el7_4.10.x86_64
[root@localhost test]# rpm -qa |grep OVMF
OVMF-20170228-5.gitc325e41585e3.el7.noarc

7.5 host info:
[root@localhost test]# uname -r
3.10.0-773.el7.x86_64
[root@localhost test]# rpm -qa |grep qemu-kvm-rhev
qemu-kvm-rhev-2.10.0-4.el7.x86_64
qemu-kvm-rhev-debuginfo-2.10.0-4.el7.x86_64
[root@localhost test]# rpm -qa |grep OVMF
OVMF-20171011-1.git92d07e48907f.el7.noarch


qemu command line[1]
/usr/libexec/qemu-kvm \
-M q35,accel=kvm,kernel-irqchip=split \
-device intel-iommu,intremap=on \
-cpu Haswell-noTSX \
-nodefaults -rtc base=utc \
-m 4G \
-smp 4,sockets=4,cores=1,threads=1 \
-enable-kvm \
-uuid 990ea161-6b67-47b2-b803-19fb01d30d12 \
-k en-us \
-nodefaults \
-drive file=/usr/share/OVMF/OVMF_CODE.secboot.fd,if=pflash,format=raw,unit=0,readonly=on \
-drive file=/home/test/OVMF_VARS.fd,if=pflash,format=raw,unit=1 \
-serial unix:/tmp/serial0,server,nowait \
-debugcon file:/home/test/ovmf.log \
-global isa-debugcon.iobase=0x402 \
-boot menu=on \
-qmp tcp:0:6667,server,nowait \
-usb \
-device usb-tablet \
-vga qxl \
-global driver=cfi.pflash01,property=secure,value=on \
-drive file=/mnt/test/win7-ovmf.qcow2,if=none,id=drive-virtio-disk0,format=qcow2,cache=none,werror=stop,rerror=stop \
-device virtio-blk-pci,drive=drive-virtio-disk0,id=virtio-disk0 \
-device pcie-root-port,bus=pcie.0,id=root0,multifunction=on,chassis=1,addr=0xa.0 \
-device virtio-net-pci,netdev=tap10,mac=9a:6a:6b:6c:6d:6e,bus=root0 -netdev tap,id=tap10 \
-device pcie-root-port,bus=pcie.0,id=root1,chassis=11,addr=0xa.1 \
-device e1000e,netdev=tap11,mac=9a:6a:6b:6c:6d:6a,bus=root1 -netdev tap,id=tap11 \
-device pcie-root-port,bus=pcie.0,id=root2,chassis=12,addr=0xa.2 \
-drive file=/mnt/test/block1.qcow2,if=none,id=drive-virtio-disk1,format=qcow2,cache=none,werror=stop,rerror=stop \
-device virtio-blk-pci,drive=drive-virtio-disk1,id=virtio-disk1,bus=root2 \
-device pcie-root-port,bus=pcie.0,id=root3,chassis=13,addr=0xa.3 \
-device x3130-upstream,bus=root3,id=upstream1 \
-device xio3130-downstream,bus=upstream1,id=downstream1,chassis=2 \
-device pcie-root-port,bus=pcie.0,id=root6,chassis=14,addr=0xa.4 \
-device pcie-root-port,bus=pcie.0,id=root4,chassis=3 \
-device virtio-scsi-pci,id=scsi0,bus=root4 \
-drive file=/mnt/test/block2.raw,if=none,format=raw,id=drive-virtio-scsi \
-device scsi-disk,drive=drive-virtio-scsi,id=virtio-scsi,bus=scsi0.0 \
-device ahci,id=ahci0 \
-drive file=/usr/share/virtio-win/virtio-win-1.9.3.iso,if=none,id=drive-virtio-disk2,format=raw \
-device ide-cd,drive=drive-virtio-disk2,id=virtio-disk2,bus=ahci0.0 \
-device e1000e,netdev=tap12,mac=9a:6a:6b:6c:6d:6b -netdev tap,id=tap12 \
-device pcie-root-port,bus=pcie.0,id=root5,chassis=4 \
-device x3130-upstream,bus=root5,id=upstream2 \
-device xio3130-downstream,bus=upstream2,id=downstream2,chassis=5 \
-device xio3130-downstream,bus=upstream2,id=downstream3,chassis=6 \
-device x3130-upstream,bus=downstream3,id=upstream3 \
-device xio3130-downstream,bus=upstream3,id=downstream4,chassis=7 \
-drive file=/mnt/test/block5.qcow2,if=none,id=drive-virtio-disk5,format=qcow2,cache=none,werror=stop,rerror=stop \
-device virtio-blk-pci,drive=drive-virtio-disk5,id=virtio-disk5,bus=downstream4 \
-device pcie-root-port,bus=pcie.0,id=root7,chassis=8 \
-monitor stdio \
-vnc :1 \


Could you help to confirm it ?

Thanks
Jing

Comment 11 jingzhao 2017-11-14 02:48:30 UTC
(In reply to jingzhao from comment #10)
> Hi David
> 
>   Failed when QE verifying the bz.
> 
>   Migrated failed and the error message of destination 
>   ((qemu) qemu-kvm: Machine type received is 'pc-q35-rhel7.4.0' and local is
> 'pc-q35-rhel7.5.0' qemu-kvm: load of migration failed: Invalid argument)
> 
>   detailed steps:
>  
>   1. Boot guest in src 7.4 host [1]
> 
>   2. migrate to the destination 7.5 host
> 
>  
> Actual Result:
> 
> migrate failed 
> 
> (qemu) qemu-kvm: Machine type received is 'pc-q35-rhel7.4.0' and local is
> 'pc-q35-rhel7.5.0'
> qemu-kvm: load of migration failed: Invalid argument
> 
> 
> 7.4 host info:
> [root@localhost test]# rpm -qa |grep qemu-kvm-rhev
> qemu-kvm-rhev-2.9.0-16.el7_4.10.x86_64
> qemu-kvm-rhev-debuginfo-2.9.0-16.el7_4.10.x86_64
> [root@localhost test]# rpm -qa |grep OVMF
> OVMF-20170228-5.gitc325e41585e3.el7.noarc
> 
> 7.5 host info:
> [root@localhost test]# uname -r
> 3.10.0-773.el7.x86_64
> [root@localhost test]# rpm -qa |grep qemu-kvm-rhev
> qemu-kvm-rhev-2.10.0-4.el7.x86_64
> qemu-kvm-rhev-debuginfo-2.10.0-4.el7.x86_64
> [root@localhost test]# rpm -qa |grep OVMF
> OVMF-20171011-1.git92d07e48907f.el7.noarch
> 
> 
> qemu command line[1]
> /usr/libexec/qemu-kvm \
> -M q35,accel=kvm,kernel-irqchip=split \
> -device intel-iommu,intremap=on \
> -cpu Haswell-noTSX \
> -nodefaults -rtc base=utc \
> -m 4G \
> -smp 4,sockets=4,cores=1,threads=1 \
> -enable-kvm \
> -uuid 990ea161-6b67-47b2-b803-19fb01d30d12 \
> -k en-us \
> -nodefaults \
> -drive
> file=/usr/share/OVMF/OVMF_CODE.secboot.fd,if=pflash,format=raw,unit=0,
> readonly=on \
> -drive file=/home/test/OVMF_VARS.fd,if=pflash,format=raw,unit=1 \
> -serial unix:/tmp/serial0,server,nowait \
> -debugcon file:/home/test/ovmf.log \
> -global isa-debugcon.iobase=0x402 \
> -boot menu=on \
> -qmp tcp:0:6667,server,nowait \
> -usb \
> -device usb-tablet \
> -vga qxl \
> -global driver=cfi.pflash01,property=secure,value=on \
> -drive
> file=/mnt/test/win7-ovmf.qcow2,if=none,id=drive-virtio-disk0,format=qcow2,
> cache=none,werror=stop,rerror=stop \
> -device virtio-blk-pci,drive=drive-virtio-disk0,id=virtio-disk0 \
> -device
> pcie-root-port,bus=pcie.0,id=root0,multifunction=on,chassis=1,addr=0xa.0 \
> -device virtio-net-pci,netdev=tap10,mac=9a:6a:6b:6c:6d:6e,bus=root0 -netdev
> tap,id=tap10 \
> -device pcie-root-port,bus=pcie.0,id=root1,chassis=11,addr=0xa.1 \
> -device e1000e,netdev=tap11,mac=9a:6a:6b:6c:6d:6a,bus=root1 -netdev
> tap,id=tap11 \
> -device pcie-root-port,bus=pcie.0,id=root2,chassis=12,addr=0xa.2 \
> -drive
> file=/mnt/test/block1.qcow2,if=none,id=drive-virtio-disk1,format=qcow2,
> cache=none,werror=stop,rerror=stop \
> -device virtio-blk-pci,drive=drive-virtio-disk1,id=virtio-disk1,bus=root2 \
> -device pcie-root-port,bus=pcie.0,id=root3,chassis=13,addr=0xa.3 \
> -device x3130-upstream,bus=root3,id=upstream1 \
> -device xio3130-downstream,bus=upstream1,id=downstream1,chassis=2 \
> -device pcie-root-port,bus=pcie.0,id=root6,chassis=14,addr=0xa.4 \
> -device pcie-root-port,bus=pcie.0,id=root4,chassis=3 \
> -device virtio-scsi-pci,id=scsi0,bus=root4 \
> -drive file=/mnt/test/block2.raw,if=none,format=raw,id=drive-virtio-scsi \
> -device scsi-disk,drive=drive-virtio-scsi,id=virtio-scsi,bus=scsi0.0 \
> -device ahci,id=ahci0 \
> -drive
> file=/usr/share/virtio-win/virtio-win-1.9.3.iso,if=none,id=drive-virtio-
> disk2,format=raw \
> -device ide-cd,drive=drive-virtio-disk2,id=virtio-disk2,bus=ahci0.0 \
> -device e1000e,netdev=tap12,mac=9a:6a:6b:6c:6d:6b -netdev tap,id=tap12 \
> -device pcie-root-port,bus=pcie.0,id=root5,chassis=4 \
> -device x3130-upstream,bus=root5,id=upstream2 \
> -device xio3130-downstream,bus=upstream2,id=downstream2,chassis=5 \
> -device xio3130-downstream,bus=upstream2,id=downstream3,chassis=6 \
> -device x3130-upstream,bus=downstream3,id=upstream3 \
> -device xio3130-downstream,bus=upstream3,id=downstream4,chassis=7 \
> -drive
> file=/mnt/test/block5.qcow2,if=none,id=drive-virtio-disk5,format=qcow2,
> cache=none,werror=stop,rerror=stop \
> -device
> virtio-blk-pci,drive=drive-virtio-disk5,id=virtio-disk5,bus=downstream4 \
> -device pcie-root-port,bus=pcie.0,id=root7,chassis=8 \
> -monitor stdio \
> -vnc :1 \
> 
> 
> Could you help to confirm it ?
> 
> Thanks
> Jing

Changed to the same machine type and hit the issue
(qemu) red_dispatcher_loadvm_commands: 
qemu-kvm: Missing section footer for 0000:00:0a.0/pcie-root-port


Please check the bz1511312

Comment 14 errata-xmlrpc 2018-04-11 00:33:01 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/RHSA-2018:1104


Note You need to log in before you can comment on or make changes to this bug.