[libvirt] [PATCH v4 2/3] add qemu support to virDomainCoreDumpWithFormat API

Daniel P. Berrange berrange at redhat.com
Tue Mar 4 11:44:10 UTC 2014


On Mon, Mar 03, 2014 at 10:27:25AM +0800, qiaonuohan wrote:
> This patch makes qemu driver supprot virDomainCoreDumpWithFormat API.
> ---
>  src/qemu/qemu_driver.c       | 45 +++++++++++++++++++++++++++++++++++---------
>  src/qemu/qemu_monitor.c      |  7 ++++---
>  src/qemu/qemu_monitor.h      |  3 ++-
>  src/qemu/qemu_monitor_json.c |  4 +++-
>  src/qemu/qemu_monitor_json.h |  3 ++-
>  tests/qemumonitorjsontest.c  |  2 +-
>  6 files changed, 48 insertions(+), 16 deletions(-)
> 
> diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
> index c9a865e..f373f7c 100644
> --- a/src/qemu/qemu_driver.c
> +++ b/src/qemu/qemu_driver.c

> @@ -3452,7 +3455,20 @@ doCoreDump(virQEMUDriverPtr driver,
>          goto cleanup;
>  
>      if (dump_flags & VIR_DUMP_MEMORY_ONLY) {
> -        ret = qemuDumpToFd(driver, vm, fd, QEMU_ASYNC_JOB_DUMP);
> +        if (dumpformat == VIR_DUMP_FORMAT_RAW)
> +            memory_dump_format = "elf";
> +        else if (dumpformat == VIR_DUMP_FORMAT_KDUMP_ZLIB)
> +            memory_dump_format = "kdump-zlib";
> +        else if (dumpformat == VIR_DUMP_FORMAT_KDUMP_LZO)
> +            memory_dump_format = "kdump-lzo";
> +        else if (dumpformat == VIR_DUMP_FORMAT_KDUMP_SNAPPY)
> +            memory_dump_format = "kdump-snappy";
> +        else {
> +            virReportError(VIR_ERR_INVALID_ARG,
> +                           _("unknown dumpformat '%d'"), dumpformat);
> +        }
> +        ret = qemuDumpToFd(driver, vm, fd, QEMU_ASYNC_JOB_DUMP,
> +                           memory_dump_format);
>      } else {
>          ret = qemuMigrationToFile(driver, vm, fd, 0, path,
>                                    qemuCompressProgramName(compress), false,

The else branch here should raise VIR_ERR_OPERATION_UNSUPPORTED
if dumpformat != VIR_DUMP_FORMAT_RAW

> diff --git a/src/qemu/qemu_monitor.c b/src/qemu/qemu_monitor.c
> index a2769db..bcb457f 100644
> --- a/src/qemu/qemu_monitor.c
> +++ b/src/qemu/qemu_monitor.c
> @@ -2345,10 +2345,11 @@ int qemuMonitorMigrateCancel(qemuMonitorPtr mon)
>  }
>  
>  int
> -qemuMonitorDumpToFd(qemuMonitorPtr mon, int fd)
> +qemuMonitorDumpToFd(qemuMonitorPtr mon, int fd, const char* memory_dump_format)

The '*' should associate with the variable name, not the data type.

> diff --git a/src/qemu/qemu_monitor.h b/src/qemu/qemu_monitor.h
> index eabf000..a6fc8ee 100644
> --- a/src/qemu/qemu_monitor.h
> +++ b/src/qemu/qemu_monitor.h
> @@ -495,7 +495,8 @@ int qemuMonitorMigrateToUnix(qemuMonitorPtr mon,
>  int qemuMonitorMigrateCancel(qemuMonitorPtr mon);
>  
>  int qemuMonitorDumpToFd(qemuMonitorPtr mon,
> -                        int fd);
> +                        int fd,
> +                        const char* memory_dump_format);

Same comment about '*' whitespace


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




More information about the libvir-list mailing list