Bug 1373154
Summary: | Guest fails boot up with ivshmem-plain and virtio-pci device | |||
---|---|---|---|---|
Product: | Red Hat Enterprise Linux 7 | Reporter: | Pei Zhang <pezhang> | |
Component: | seabios | Assignee: | Marcel Apfelbaum <marcel> | |
Status: | CLOSED ERRATA | QA Contact: | Pei Zhang <pezhang> | |
Severity: | high | Docs Contact: | ||
Priority: | high | |||
Version: | 7.3 | CC: | ailan, armbru, chayang, dyuan, ehabkost, juzhang, knoel, lhuang, lmiksik, marcel, michen, tlavigne, virt-maint, xfu, xuzhang | |
Target Milestone: | rc | Keywords: | Regression | |
Target Release: | --- | |||
Hardware: | x86_64 | |||
OS: | Linux | |||
Whiteboard: | ||||
Fixed In Version: | seabios-1.9.1-5.el7 | Doc Type: | If docs needed, set a value | |
Doc Text: | Story Points: | --- | ||
Clone Of: | ||||
: | 1393322 (view as bug list) | Environment: | ||
Last Closed: | 2016-11-04 00:28:31 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: | 1393322 |
Comment 3
Marcel Apfelbaum
2016-09-08 11:06:46 UTC
If there is no room to map all MMIO BARs into the 32-bit PCI window, SeaBIOS will re-allocate all 64-bit MMIO BARs into over-4G space. Virtio 1.0 block devices (virtio-blk/virtio-scsi) use a 64-bit BAR unusable by SeaBIOS if mapped over 4G space, preventing the system to boot. The simplest solution is to follow the xhci model and simply skip migrating the virtio 1.0 modern bar into over-4G space. Patch posted upstream for SeaBIOS: [PATCH] pci: don't map virtio 1.0 storage devices above 4G (No link yet) If the solution is accepted I'll re-assign the BZ to SeaBIOS component. Thanks, Marcel (In reply to Marcel Apfelbaum from comment #3) [...] > > The mentioned BZ only enables the virtio 1.0 . > In order to find the root cause we need to bisect with : > -device > virtio-blk-pci,drive=drive-virtio-blk0,id=virtio-blk0,disable-modern=off > > I'll update when I'll know more. > Thanks, > Marcel Note: Sorry for missed this comment before. And put the re-test results here in case it's useful. Re-test with adding 'disable-modern=off'. 1. As bug[1] is fixed in qemu-kvm-rhev-2.6.0-18.el7, so re-test this version. [1]Bug 1333318 - ivshmem-plain support in RHEL 7.3 qemu-kvm-rhev-2.6.0-18.el7.x86_64 doesn't work('No bootable device') 2. Also tried the first version of 2.6. (ivshmem-plain has showed up) qemu-kvm-rhev-2.6.0-1.el7.x86_64 doesn't work('No bootable device') So seems disable-modern=off is incompatible with ivshmem-plain, even with it's first supported version. Best Regards, Pei It seems there is already work in progress dealing with the same problem. From an offline conversation with Gerd: Look at these upstream commits: c579d2f85b4835e39490d862a18143cf130c4078 0e21548b15e25e010c362ea13d170c61a3fcc899 They implement support for accessing virtio bars via pci config space, which will make virtio devices work in seabios even if mapped over 4G. Unfortunately they depend on some pci cleanups done on the master branch. They are not clean cherry-picks for 1.9-stable, and because of that the 1.9.x releases do not have them. I have an older version of those patches laying around in a local branch, they do apply to 1.9.x, pushed it to my repo: https://www.kraxel.org/cgit/seabios/log/?h=virtio-old Alternatively we could make seabios skip virtio devices when mapping bars over 4G. Have a look at pci_region_migrate_64bit_entries(), there is already an exception for usb (so xhci isn't mapped high). The upstream commit fixing it: 0e21548b15e25e010c362ea13d170c61a3fcc899). (In reply to Pei Zhang from comment #5) > (In reply to Marcel Apfelbaum from comment #3) > [...] > > > > The mentioned BZ only enables the virtio 1.0 . > > In order to find the root cause we need to bisect with : > > -device > > virtio-blk-pci,drive=drive-virtio-blk0,id=virtio-blk0,disable-modern=off > > > > I'll update when I'll know more. > > Thanks, > > Marcel > > Note: Sorry for missed this comment before. And put the re-test results here > in case it's useful. > > Re-test with adding 'disable-modern=off'. > > 1. As bug[1] is fixed in qemu-kvm-rhev-2.6.0-18.el7, so re-test this version. > [1]Bug 1333318 - ivshmem-plain support in RHEL 7.3 > > qemu-kvm-rhev-2.6.0-18.el7.x86_64 doesn't work('No bootable device') > > 2. Also tried the first version of 2.6. (ivshmem-plain has showed up) > > qemu-kvm-rhev-2.6.0-1.el7.x86_64 doesn't work('No bootable device') > > So seems disable-modern=off is incompatible with ivshmem-plain, even with > it's first supported version. > Thanks for checking it! Please check (without the disable-modern=off) using the seabios package from the brew build: https://brewweb.engineering.redhat.com/brew/taskinfo?taskID=11741451 > > Best Regards, > Pei (In reply to Marcel Apfelbaum from comment #10) [...] > Please check (without the disable-modern=off) using the seabios package > from the brew build: > https://brewweb.engineering.redhat.com/brew/taskinfo?taskID=11741451 [...] Re-test: Versions: qemu-kvm-rhev-2.6.0-24.el7.x86_64 Steps: 1. Install above seabios build in host 2. Boot guest without disable-modern=off, guest can boot successfully. [...] -device virtio-blk-pci,drive=drive-virtio-blk0,id=virtio-blk0 \ So with this seabios build, no error occurs. Best Regards, Pei Fix included in seabios-1.9.1-5.el7 ==Verification== Versions: Host: 3.10.0-506.rt56.411.el7.x86_64 qemu-kvm-rhev-2.6.0-25.el7.x86_64 seabios-1.9.1-5.el7.x86_64 Guest: 3.10.0-506.rt56.411.el7.x86_64 Steps: 1. Boot guest with ivshmem-plain, guest works well. Same as Description. So this bug has been fixed well. Thank you. 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://rhn.redhat.com/errata/RHEA-2016-2207.html |