On Wed, Sep 17, 2014 at 02:39:50PM +0300, Gal Hammer wrote: > Hi, > > A two parts patch to add a QEmu support for Microsoft's Virtual Machine > Generation ID device. > > The first one add a new ACPI directive which allow to use a 16-bytes > buffer in an ACPI table. This buffer is for storing the VM's UUID. > > The second is the ACPI tables changes and the actual device. > > Your comment are welcomed.
There are some rules on when the VM generation ID *must* change Virtual machine is paused or resumed: No Virtual machine reboots: No Virtual machine host reboots: No Virtual machine starts executing a snapshot (every time): Yes Virtual machine is recovered from backup: Yes Virtual machine is failed over in a disaster recovery environment: Yes Virtual machine is live migrated: No Virtual machine is imported, copied, or cloned: Yes Virtual machine is failed over in a clustered environment: No Virtual machine's configuration changes: Unspecified Now this can largely be accomplished by libvirt by simply changing the value of the -vmgenid command line parameter, because most of these scenarios involve the spawning of a new QEMU process. The exception I think is when a running guest is reverted to a previous snapshot, because that is done via a monitor command and not restarting QEMU. So for this VM Generation ID work to be considered complete we need to have a way to dynamically change the VM generation ID on the fly, atomatically with reverting snapshots from the POV of the guest. eg we must load the snapshot state, change the generation ID, and only then start CPUs again. IOW I think this patch series is incomplete wrt the Microsoft spec on generation ID semantics. Regards, Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|