[libvirt] [PATCH] Reintroduce lzop compression

On Wed, Sep 09, 2009 at 03:59:22PM -0500, Charles Duffy wrote:
From 3c4f6568623ed420a9e71da33b9ce74abda289a8 Mon Sep 17 00:00:00 2001 From: Charles Duffy <Charles_Duffy@dell.com> Date: Wed, 9 Sep 2009 15:53:25 -0500 Subject: [PATCH] Reintroduce support for lzop compression
lzop was removed due to some confusion over whether it provided functional advantages distinct from xz. This has been addressed in the mailing list post archived at http://permalink.gmane.org/gmane.comp.emulators.libvirt/16487, and support for lzop is re-added here.
Okay, you clearly made the case for lzop in the list, thanks for clearing this up, this make sense ! Applied and pushed, thanks ! Daniel -- Daniel Veillard | libxml Gnome XML XSLT toolkit http://xmlsoft.org/ daniel@veillard.com | Rpmfind RPM search engine http://rpmfind.net/ http://veillard.com/ | virtualization library http://libvirt.org/

Charles Duffy wrote:
From 3c4f6568623ed420a9e71da33b9ce74abda289a8 Mon Sep 17 00:00:00 2001 From: Charles Duffy <Charles_Duffy@dell.com> Date: Wed, 9 Sep 2009 15:53:25 -0500 Subject: [PATCH] Reintroduce support for lzop compression
lzop was removed due to some confusion over whether it provided functional advantages distinct from xz. This has been addressed in the mailing list post archived at http://permalink.gmane.org/gmane.comp.emulators.libvirt/16487, and support for lzop is re-added here.
lzop is added to the enum after xz, leaving xz at the position lzma was originally in (which is appropriate, as it should handle decompression of lzma-format files) and giving lzop back its prior position.
Documentation in qemu.conf is amended to remove references to lzma and add suggestions regarding the tradeoffs made by various compressors.
Signed-off-by: Charles Duffy <charles@dyfis.net> --- libvirt.spec.in | 1 + src/qemu.conf | 7 ++++--- src/qemu_driver.c | 9 ++++++--- 3 files changed, 11 insertions(+), 6 deletions(-) ... struct qemud_save_header { char magic[sizeof(QEMUD_SAVE_MAGIC)-1]; @@ -4384,6 +4385,8 @@ static int qemudDomainRestore(virConnectPtr conn, intermediate_argv[0] = "bzip2"; else if (header.compressed == QEMUD_SAVE_FORMAT_XZ) intermediate_argv[0] = "xz"; + else if (header.compressed == QEMUD_SAVE_FORMAT_LZOP) + intermediate_argv[0] = "lzop"; else if (header.compressed != QEMUD_SAVE_FORMAT_RAW) { qemudReportError(conn, NULL, NULL, VIR_ERR_OPERATION_FAILED, _("Unknown compressed save format %d"),
Thanks for that patch. I'm glad I read it, since it made me realize my clean-up from yesterday was incomplete. You should not have had to add the literal, "lzop", in two places. This completes the job:
From 05b3f087b7ac29cebd22dfdf099f8fb36a31c86a Mon Sep 17 00:00:00 2001 From: Jim Meyering <meyering@redhat.com> Date: Thu, 10 Sep 2009 11:26:00 +0200 Subject: [PATCH] qemu_driver.c: factor out more duplication
* src/qemu_driver.c (qemudDomainRestore): Use the new ...TypeToString function here, too. (qemudSaveCompressionTypeToString): Declare. --- src/qemu_driver.c | 18 +++++++----------- 1 files changed, 7 insertions(+), 11 deletions(-) diff --git a/src/qemu_driver.c b/src/qemu_driver.c index 5c2a8ec..256e8e7 100644 --- a/src/qemu_driver.c +++ b/src/qemu_driver.c @@ -4379,21 +4379,17 @@ static int qemudDomainRestore(virConnectPtr conn, if (header.version == 2) { const char *intermediate_argv[3] = { NULL, "-dc", NULL }; - if (header.compressed == QEMUD_SAVE_FORMAT_GZIP) - intermediate_argv[0] = "gzip"; - else if (header.compressed == QEMUD_SAVE_FORMAT_BZIP2) - intermediate_argv[0] = "bzip2"; - else if (header.compressed == QEMUD_SAVE_FORMAT_XZ) - intermediate_argv[0] = "xz"; - else if (header.compressed == QEMUD_SAVE_FORMAT_LZOP) - intermediate_argv[0] = "lzop"; - else if (header.compressed != QEMUD_SAVE_FORMAT_RAW) { + const char *prog = qemudSaveCompressionTypeToString(header.compressed); + if (prog == NULL) { qemudReportError(conn, NULL, NULL, VIR_ERR_OPERATION_FAILED, - _("Unknown compressed save format %d"), + _("Invalid compressed save format %d"), header.compressed); goto cleanup; } - if (intermediate_argv[0] != NULL) { + + if (header.compressed != QEMUD_SAVE_FORMAT_RAW) + intermediate_argv[0] = prog; + else { intermediatefd = fd; fd = -1; if (virExec(conn, intermediate_argv, NULL, NULL, -- 1.6.5.rc0.164.g5f6b0

On Thu, Sep 10, 2009 at 11:34:37AM +0200, Jim Meyering wrote:
Charles Duffy wrote:
From 3c4f6568623ed420a9e71da33b9ce74abda289a8 Mon Sep 17 00:00:00 2001 From: Charles Duffy <Charles_Duffy@dell.com> Date: Wed, 9 Sep 2009 15:53:25 -0500 Subject: [PATCH] Reintroduce support for lzop compression
lzop was removed due to some confusion over whether it provided functional advantages distinct from xz. This has been addressed in the mailing list post archived at http://permalink.gmane.org/gmane.comp.emulators.libvirt/16487, and support for lzop is re-added here.
lzop is added to the enum after xz, leaving xz at the position lzma was originally in (which is appropriate, as it should handle decompression of lzma-format files) and giving lzop back its prior position.
Documentation in qemu.conf is amended to remove references to lzma and add suggestions regarding the tradeoffs made by various compressors.
Signed-off-by: Charles Duffy <charles@dyfis.net> --- libvirt.spec.in | 1 + src/qemu.conf | 7 ++++--- src/qemu_driver.c | 9 ++++++--- 3 files changed, 11 insertions(+), 6 deletions(-) ... struct qemud_save_header { char magic[sizeof(QEMUD_SAVE_MAGIC)-1]; @@ -4384,6 +4385,8 @@ static int qemudDomainRestore(virConnectPtr conn, intermediate_argv[0] = "bzip2"; else if (header.compressed == QEMUD_SAVE_FORMAT_XZ) intermediate_argv[0] = "xz"; + else if (header.compressed == QEMUD_SAVE_FORMAT_LZOP) + intermediate_argv[0] = "lzop"; else if (header.compressed != QEMUD_SAVE_FORMAT_RAW) { qemudReportError(conn, NULL, NULL, VIR_ERR_OPERATION_FAILED, _("Unknown compressed save format %d"),
Thanks for that patch. I'm glad I read it, since it made me realize my clean-up from yesterday was incomplete. You should not have had to add the literal, "lzop", in two places.
This completes the job:
From 05b3f087b7ac29cebd22dfdf099f8fb36a31c86a Mon Sep 17 00:00:00 2001 From: Jim Meyering <meyering@redhat.com> Date: Thu, 10 Sep 2009 11:26:00 +0200 Subject: [PATCH] qemu_driver.c: factor out more duplication
* src/qemu_driver.c (qemudDomainRestore): Use the new ...TypeToString function here, too.
(qemudSaveCompressionTypeToString): Declare. --- src/qemu_driver.c | 18 +++++++----------- 1 files changed, 7 insertions(+), 11 deletions(-)
diff --git a/src/qemu_driver.c b/src/qemu_driver.c index 5c2a8ec..256e8e7 100644 --- a/src/qemu_driver.c +++ b/src/qemu_driver.c @@ -4379,21 +4379,17 @@ static int qemudDomainRestore(virConnectPtr conn,
if (header.version == 2) { const char *intermediate_argv[3] = { NULL, "-dc", NULL }; - if (header.compressed == QEMUD_SAVE_FORMAT_GZIP) - intermediate_argv[0] = "gzip"; - else if (header.compressed == QEMUD_SAVE_FORMAT_BZIP2) - intermediate_argv[0] = "bzip2"; - else if (header.compressed == QEMUD_SAVE_FORMAT_XZ) - intermediate_argv[0] = "xz"; - else if (header.compressed == QEMUD_SAVE_FORMAT_LZOP) - intermediate_argv[0] = "lzop"; - else if (header.compressed != QEMUD_SAVE_FORMAT_RAW) { + const char *prog = qemudSaveCompressionTypeToString(header.compressed); + if (prog == NULL) { qemudReportError(conn, NULL, NULL, VIR_ERR_OPERATION_FAILED, - _("Unknown compressed save format %d"), + _("Invalid compressed save format %d"), header.compressed); goto cleanup; } - if (intermediate_argv[0] != NULL) { + + if (header.compressed != QEMUD_SAVE_FORMAT_RAW) + intermediate_argv[0] = prog; + else { intermediatefd = fd; fd = -1; if (virExec(conn, intermediate_argv, NULL, NULL,
Ah, right :-) ACK ! Daniel -- Daniel Veillard | libxml Gnome XML XSLT toolkit http://xmlsoft.org/ daniel@veillard.com | Rpmfind RPM search engine http://rpmfind.net/ http://veillard.com/ | virtualization library http://libvirt.org/

Daniel Veillard wrote: ...
This completes the job:
From 05b3f087b7ac29cebd22dfdf099f8fb36a31c86a Mon Sep 17 00:00:00 2001 From: Jim Meyering <meyering@redhat.com> Date: Thu, 10 Sep 2009 11:26:00 +0200 Subject: [PATCH] qemu_driver.c: factor out more duplication
* src/qemu_driver.c (qemudDomainRestore): Use the new ...TypeToString function here, too. ... Ah, right :-) ACK !
Thanks. pushed.
participants (3)
-
Charles Duffy
-
Daniel Veillard
-
Jim Meyering