On Tue, Feb 19, 2013 at 05:58:38PM +0200, Avi Kivity wrote: > On Tue, Feb 19, 2013 at 4:41 PM, Michael S. Tsirkin <m...@redhat.com> wrote: > > On Thu, Feb 14, 2013 at 08:23:04PM +0200, Avi Kivity wrote: > >> On Thu, Feb 14, 2013 at 8:12 PM, Michael S. Tsirkin <m...@redhat.com> > >> wrote: > >> >> > >> >> Is there an actual real problem that needs fixing? > >> > > >> > Yes. Guests sometimes cause device BARs to temporary overlap > >> > the APIC range during BAR sizing. It works fine on a physical > >> > system but fails on KVM since pci has same priority. > >> > > >> > See the report: > >> > [BUG] Guest OS hangs on boot when 64bit BAR present > >> > > >> > >> Is PCI_COMMAND_MEMORY set while this is going on? > > > > I think Linux never clears PCI_COMMAND_MEMORY because > > it's buggy in some devices. > > Ok. Then I recommend defining the MSI message area as overlapped with > sufficient priority. It should probably be a child of the PCI address > space. > > The IOAPIC is actually closer to ISA, but again it's sufficient to > move it to the PCI address space. I doubt its priority matters.
Well moving IOAPIC to PCI seems strange, it's not a PCI thing, and I think it can be moved outside PCI though guests don't do it. So I think ideally we really should have it look something like: sysbus -> ioapic -> pci -> msi -- MST