On Tue, Aug 11, 2009 at 01:25:59PM +0200, Chris Lalancette wrote: > Implement a compressed save image format for qemu. While ideally > we would have the choice between compressed/non-compressed > available to the libvirt API, unfortunately there is no "flags" > parameter to the virDomainSave() API. Therefore, implement this > as a qemu.conf option. Both gzip and bzip2 are implemented, and > it should be very easy to implement additional compression > methods. > > One open question is if/how we should detect the gzip and bzip2 > binaries. One way to do it is to do compile-time setting of the > paths (via configure.in), but that doesn't seem like a great thing > to do. Another solution (my preferred solution) is not to detect > at all; when we go to run the commands that need them, if they > aren't available, or aren't available in one of the standard paths, > then we'll fail. Maybe somebody else has another option or > opinion, though. > > In the future, we'll have a more robust (managed) save/restore API, > at which time we can expose this functionality properly in the API. > > V2: get rid of redundant dd command and just use >> to append data. > V3: Add back the missing pieces for the enum and bumping the save version. > diff --git a/src/qemu_driver.c b/src/qemu_driver.c > index 20906ef..8d700bf 100644 > --- a/src/qemu_driver.c > +++ b/src/qemu_driver.c > @@ -3411,18 +3411,26 @@ static char *qemudEscapeShellArg(const char *in) > } > > #define QEMUD_SAVE_MAGIC "LibvirtQemudSave" > -#define QEMUD_SAVE_VERSION 1 > +#define QEMUD_SAVE_VERSION 2 > + > +enum qemud_save_formats { > + QEMUD_SAVE_FORMAT_RAW, > + QEMUD_SAVE_FORMAT_GZIP, > + QEMUD_SAVE_FORMAT_BZIP2, > +}; > > struct qemud_save_header { > char magic[sizeof(QEMUD_SAVE_MAGIC)-1]; > int version; > int xml_len; > int was_running; > - int unused[16]; > + char compressed; > + int unused[15]; > }; Little mistake here - you removed sizeof(int) bytes, but only added sizeof(char) replacement. Regards, Daniel -- |: Red Hat, Engineering, London -o- http://people.redhat.com/berrange/ :| |: http://libvirt.org -o- http://virt-manager.org -o- http://ovirt.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: GnuPG: 7D3B9505 -o- F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :| -- Libvir-list mailing list Libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list