Re: [libvirt] [PATCHv2 1/2] qemu: managedsave: Add support for compressing managed save images

2013-10-14 Thread Daniel P. Berrange
On Thu, Oct 10, 2013 at 02:52:36PM +0200, Peter Krempa wrote:
 The regular save image code has the support to compress images using a
 specified algorithm. This was not implemented for managed save although
 it shares most of the backend code.
 ---
  src/qemu/qemu.conf |  6 +++---
  src/qemu/qemu_driver.c | 23 +--
  2 files changed, 24 insertions(+), 5 deletions(-)

ACK

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 :|

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


Re: [libvirt] [PATCHv2 1/2] qemu: managedsave: Add support for compressing managed save images

2013-10-14 Thread Peter Krempa
On 10/14/13 15:28, Daniel P. Berrange wrote:
 On Thu, Oct 10, 2013 at 02:52:36PM +0200, Peter Krempa wrote:
 The regular save image code has the support to compress images using a
 specified algorithm. This was not implemented for managed save although
 it shares most of the backend code.
 ---
  src/qemu/qemu.conf |  6 +++---
  src/qemu/qemu_driver.c | 23 +--
  2 files changed, 24 insertions(+), 5 deletions(-)
 
 ACK
 

Pushed; Thanks.

Peter




signature.asc
Description: OpenPGP digital signature
--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

[libvirt] [PATCHv2 1/2] qemu: managedsave: Add support for compressing managed save images

2013-10-10 Thread Peter Krempa
The regular save image code has the support to compress images using a
specified algorithm. This was not implemented for managed save although
it shares most of the backend code.
---
 src/qemu/qemu.conf |  6 +++---
 src/qemu/qemu_driver.c | 23 +--
 2 files changed, 24 insertions(+), 5 deletions(-)

diff --git a/src/qemu/qemu.conf b/src/qemu/qemu.conf
index 5fd6263..cf82ffe 100644
--- a/src/qemu/qemu.conf
+++ b/src/qemu/qemu.conf
@@ -269,9 +269,9 @@
 # saving a domain in order to save disk space; the list above is in descending
 # order by performance and ascending order by compression ratio.
 #
-# save_image_format is used when you use 'virsh save' at scheduled
-# saving, and it is an error if the specified save_image_format is
-# not valid, or the requested compression program can't be found.
+# save_image_format is used when you use 'virsh save' or 'virsh managedsave'
+# at scheduled saving, and it is an error if the specified save_image_format
+# is not valid, or the requested compression program can't be found.
 #
 # dump_image_format is used when you use 'virsh dump' at emergency
 # crashdump, and if the specified dump_image_format is not valid, or
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index cfdbb9a..6f15240 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -3232,6 +3232,8 @@ static int
 qemuDomainManagedSave(virDomainPtr dom, unsigned int flags)
 {
 virQEMUDriverPtr driver = dom-conn-privateData;
+virQEMUDriverConfigPtr cfg = NULL;
+int compressed = QEMU_SAVE_FORMAT_RAW;
 virDomainObjPtr vm;
 char *name = NULL;
 int ret = -1;
@@ -3257,13 +3259,29 @@ qemuDomainManagedSave(virDomainPtr dom, unsigned int 
flags)
 goto cleanup;
 }

+cfg = virQEMUDriverGetConfig(driver);
+if (cfg-saveImageFormat) {
+compressed = qemuSaveCompressionTypeFromString(cfg-saveImageFormat);
+if (compressed  0) {
+virReportError(VIR_ERR_OPERATION_FAILED, %s,
+   _(Invalid save image format specified 
+ in configuration file));
+goto cleanup;
+}
+if (!qemuCompressProgramAvailable(compressed)) {
+virReportError(VIR_ERR_OPERATION_FAILED, %s,
+   _(Compression program for image format 
+ in configuration file isn't available));
+goto cleanup;
+}
+}
+
 if (!(name = qemuDomainManagedSavePath(driver, vm)))
 goto cleanup;

 VIR_INFO(Saving state of domain '%s' to '%s', vm-def-name, name);

-if ((ret = qemuDomainSaveInternal(driver, dom, vm, name,
-  QEMU_SAVE_FORMAT_RAW,
+if ((ret = qemuDomainSaveInternal(driver, dom, vm, name, compressed,
   NULL, flags)) == 0)
 vm-hasManagedSave = true;

@@ -3273,6 +3291,7 @@ cleanup:
 if (vm)
 virObjectUnlock(vm);
 VIR_FREE(name);
+virObjectUnref(cfg);

 return ret;
 }
-- 
1.8.3.2

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list