Re: [PATCH v2 1/2] make qemu dump memory in kdump-compressed format

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 02/25/2014 06:56 PM, Jiri Denemark wrote:
On Tue, Feb 25, 2014 at 17:54:30 +0800, Qiao Nuohan wrote:
--memory-only option is introduced without compression supported. Therefore,
this is a freature regression of virsh dump. Now qemu has support dumping memory
in kdump-compressed format. This patch is used to add "--compress" and
"[--compression-format]<string>" to "virsh dump --memory-only" and send
dump-guest-memory command to qemu with dump format specified to one of elf,
kdump-zlib, kdump-lzo and kdump-snappy.

Signed-off-by: Qiao Nuohan<qiaonuohan@xxxxxxxxxxxxxx>
---
   include/libvirt/libvirt.h.in | 15 ++++++++++++++-
   src/driver.h                 |  3 ++-
   src/libvirt.c                | 10 ++++++++--
   src/qemu/qemu_driver.c       | 30 +++++++++++++++++++++--------
   src/qemu/qemu_monitor.c      |  6 +++---
   src/qemu/qemu_monitor.h      |  3 ++-
   src/qemu/qemu_monitor_json.c |  4 +++-
   src/qemu/qemu_monitor_json.h |  3 ++-
   src/remote/remote_protocol.x |  1 +
   src/test/test_driver.c       | 12 +++++++++++-
   tests/qemumonitorjsontest.c  |  2 +-
   tools/virsh-domain.c         | 45 +++++++++++++++++++++++++++++++++++++++++++-
   12 files changed, 113 insertions(+), 21 deletions(-)

diff --git a/include/libvirt/libvirt.h.in b/include/libvirt/libvirt.h.in
index 295d551..aae3c49 100644
--- a/include/libvirt/libvirt.h.in
+++ b/include/libvirt/libvirt.h.in
@@ -1180,6 +1180,18 @@ typedef enum {
       VIR_DUMP_MEMORY_ONLY  = (1<<  4), /* use dump-guest-memory */
   } virDomainCoreDumpFlags;

+typedef enum {
+    VIR_MEMORY_DUMP_COMPRESS_ZLIB   = 1, /* dump guest memory in
+                                            kdump-compressed format, with
+                                            zlib-compressed */
+    VIR_MEMORY_DUMP_COMPRESS_LZO    = 2, /* dump guest memory in
+                                            kdump-compressed format, with
+                                            lzo-compressed */
+    VIR_MEMORY_DUMP_COMPRESS_SNAPPY = 3, /* dump guest memory in
+                                            kdump-compressed format, with
+                                            snappy-compressed */
+} virMemoryDumpFormat;
+
   /* Domain migration flags. */
   typedef enum {
       VIR_MIGRATE_LIVE              = (1<<  0), /* live migration */
@@ -1728,7 +1740,8 @@ int
virDomainManagedSaveRemove(virDomainPtr dom,
    */
   int                     virDomainCoreDump       (virDomainPtr domain,
                                                    const char *to,
-                                                 unsigned int flags);
+                                                 unsigned int flags,
+                                                 const unsigned int
memory_dump_format);

This is not allowed and I believe "make syntax-check" should fail on the
corresponding change to remote_protocol.x. If you want to add a new
parameter to an existing API, you have keep the API as is and instead
create a new API with a different name that will have all the parameters
you need.

Hello Jirka,

Thanks for pointing it out for me, I finally found it's libvirt's policy never
to change a committed public API. But driver handling methods are allowed to be
changed, am I right?

--
Regards
Qiao Nuohan

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




[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]