On 01/11/2011 08:22 AM, Avi Kivity wrote:
On 01/11/2011 04:09 PM, Anthony Liguori wrote:
Disadvantages:
1) you lose migration / savevm between KVM and non-KVM VMs
This doesn't work today and it's never worked. KVM exposes things
that TCG cannot emulate (like pvclock).
If you run kvm without pvclock, or implement pvclock in qemu, it works
fine. It should work fine for the PIT, PIC, and IOAPIC (never tried
it myself).
If we decide to have a kernel hpet implementation, for example, it
would be good to be able to live migrate from a version without kernel
hpet, to a version with kernel hpet, and have the kernel hpet enabled.
Even as two devices, nothing prevents it from working. Both devices
just have to support each other's savevm format. If they use the
same code, it makes it very easy. Take a look at how the KVM PIT is
implemented for an example of this.
They need to use the same device id then. And if they share code,
that indicates that they need to be the same device even more.
No, it really doesn't :-) Cirrus VGA and std VGA share a lot of code.
But that doesn't mean that we treat them as one device.
And BTW, there are guest visible differences between the KVM
IOAPIC/PIC/PIT than the QEMU versions. The only reason PIT live
migration works today is because usually delivers all interrupts
quickly. But it actually does maintain state in the work queue that
isn't saved. If PIT tried to implement gradual catchup, there would be
no way not to expose that state to userspace.
Regards,
Anthony Liguori
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html