On Tue, 2010-12-14 at 14:26 +0200, Michael S. Tsirkin wrote: > On Mon, Dec 13, 2010 at 10:04:24PM -0700, Alex Williamson wrote: > > > > I've only ever seen config[PCI_SECONDARY_BUS] be non-zero for an > > assigned device, so I'm pretty sure we're not going to hurt migration, > > but the code is clearly wrong and I'd like to make sure we don't trip on > > a migration failure for a minor device config space change. > > Which reminds me: maybe just mark nested bridges as non-migrateable > for now? Care writing such a patch?
Hmm, this is trickier than it sounds. We're really only broken wrt migration if a device under a bridge calls qemu_ram_alloc. Any device is free to do this, but typically it only happens via pci_add_option_rom() (not counting vga as typical). So maybe the better approach for now is to prevent the problem by disallowing option ROMs for devices below a bridge. We obviously risk devices coming along that allocate RAM on their own, but we could still allow the most common issue with almost no lost functionality (assuming no one wants to boot off that nested device). Thoughts? Thanks, Alex