All, Attached is a patch that fixes the first (of at least a couple) migration problem that I am running into. Basically, using the setup I described in my last post, I was always getting "Disabling IRQ #11" once the guest reached the destination side, and then no further activity. Dumping the APIC on both the source and destination side revealed something interesting: Source: APIC 0x2 (pad is 0x0 IOAPIC state: base_address: 0xfec00000 ioregsel: 0x2e id: 0x0 irr: 0x0 pad: 0x0 Destination: APIC 0x2 (pad is 0x38) IOAPIC state: base_address: 0xf2001000 ioregsel: 0x2e id: 0x0 irr: 0x78872f3d pad: 0x38 You'll notice that the base_address and irr are completely bogus on the destination side. Although KVM_CREATE_IRQCHIP does the right thing on the destination side when first creating the "incoming" guest, the base_address and other fields get blown away with bogus data during the restore. The attached patch fixes this by only restoring the bits that we know were saved on the source side (i.e. what's in qemu/hw/apic.c:ioapic_save()). Signed-off-by: Chris Lalancette