On 06/13/2012 02:57 PM, Martin Kletzander wrote:
On 06/12/2012 05:06 AM, Wen Congyang wrote:
> This patch updates qemu driver to allow the client to choose the
> vmcore's format: memory only or including device state.
> ---
> include/libvirt/libvirt.h.in | 1 +
> src/qemu/qemu_capabilities.c | 5 +++
> src/qemu/qemu_capabilities.h | 1 +
> src/qemu/qemu_domain.c | 1 +
> src/qemu/qemu_domain.h | 1 +
> src/qemu/qemu_driver.c | 60 ++++++++++++++++++++++++++++++++---------
> 6 files changed, 56 insertions(+), 13 deletions(-)
>
> diff --git a/include/libvirt/libvirt.h.in b/include/libvirt/libvirt.h.in
> index fcb6695..120ed14 100644
> --- a/include/libvirt/libvirt.h.in
> +++ b/include/libvirt/libvirt.h.in
> @@ -927,6 +927,7 @@ typedef enum {
> VIR_DUMP_LIVE = (1 << 1), /* live dump */
> VIR_DUMP_BYPASS_CACHE = (1 << 2), /* avoid file system cache pollution */
> VIR_DUMP_RESET = (1 << 3), /* reset domain after dump finishes */
> + VIR_DUMP_MEMORY_ONLY = (1 << 4), /* use dump-guest-memory */
> } virDomainCoreDumpFlags;
>
> /* Domain migration flags. */
> diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
> index b410648..6eee8cd 100644
> --- a/src/qemu/qemu_capabilities.c
> +++ b/src/qemu/qemu_capabilities.c
> @@ -164,6 +164,7 @@ VIR_ENUM_IMPL(qemuCaps, QEMU_CAPS_LAST,
> "no-user-config",
>
> "hda-micro", /* 95 */
> + "dump-guest-memory",
>
> );
>
> @@ -1237,6 +1238,10 @@ qemuCapsComputeCmdFlags(const char *help,
>
> if (version >= 11000)
> qemuCapsSet(flags, QEMU_CAPS_CPU_HOST);
> +
> + if (version >= 1001050)
> + qemuCapsSet(flags, QEMU_CAPS_DUMP_GUEST_MEMORY);
> +
> return 0;
> }
>
Sorry for bothering you with this, but I tried newest qemu and it shows
the proper list of commands with query-commands in qmp. Instead of this
one hunk, I'd use this:
diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c
index 6ca01c5..7d2da21 100644
--- a/src/qemu/qemu_monitor_json.c
+++ b/src/qemu/qemu_monitor_json.c
@@ -991,6 +991,8 @@ qemuMonitorJSONCheckCommands(qemuMonitorPtr mon,
qemuCapsSet(qemuCaps, QEMU_CAPS_BLOCKJOB_SYNC);
else if (STREQ(name, "block-job-cancel"))
qemuCapsSet(qemuCaps, QEMU_CAPS_BLOCKJOB_ASYNC);
+ else if (STREQ(name, "dump-guest-memory"))
+ qemuCapsSet(qemuCaps, QEMU_CAPS_DUMP_GUEST_MEMORY);
}
ret = 0;
[...]
, so ACK with that one hunk changed.
Martin
To make it easier for you, you can squash this patch into it (this is
what I tested it with).
---
src/qemu/qemu_capabilities.c | 3 ---
src/qemu/qemu_monitor_json.c | 2 ++
2 files changed, 2 insertions(+), 3 deletions(-)
diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index 6eee8cd..7b368aa 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -1239,9 +1239,6 @@ qemuCapsComputeCmdFlags(const char *help,
if (version >= 11000)
qemuCapsSet(flags, QEMU_CAPS_CPU_HOST);
- if (version >= 1001050)
- qemuCapsSet(flags, QEMU_CAPS_DUMP_GUEST_MEMORY);
-
return 0;
}
diff --git a/src/qemu/qemu_monitor_json.c b/src/qemu/qemu_monitor_json.c
index 6ca01c5..7d2da21 100644
--- a/src/qemu/qemu_monitor_json.c
+++ b/src/qemu/qemu_monitor_json.c
@@ -991,6 +991,8 @@ qemuMonitorJSONCheckCommands(qemuMonitorPtr mon,
qemuCapsSet(qemuCaps, QEMU_CAPS_BLOCKJOB_SYNC);
else if (STREQ(name, "block-job-cancel"))
qemuCapsSet(qemuCaps, QEMU_CAPS_BLOCKJOB_ASYNC);
+ else if (STREQ(name, "dump-guest-memory"))
+ qemuCapsSet(qemuCaps, QEMU_CAPS_DUMP_GUEST_MEMORY);
}
ret = 0;
--
1.7.8.6