On 05/23/2012 11:17 AM, Wen Congyang wrote:
At 05/23/2012 04:56 PM, Martin Kletzander Wrote:
> On 04/20/2012 09:27 AM, Wen Congyang wrote:
>> dump-guest-memory is a new dump mechanism, and it can work when the
>> guest uses host devices. This patch adds a API to use this new
>> monitor command.
>>
>> ---
>> src/qemu/qemu_monitor.c | 38 ++++++++++++++++++++++++++++++++++++++
>> src/qemu/qemu_monitor.h | 12 ++++++++++++
>> src/qemu/qemu_monitor_json.c | 34 ++++++++++++++++++++++++++++++++++
>> src/qemu/qemu_monitor_json.h | 6 ++++++
>> 4 files changed, 90 insertions(+), 0 deletions(-)
>>
>> diff --git a/src/qemu/qemu_monitor.c b/src/qemu/qemu_monitor.c
>> index 2f66c46..a5d3eec 100644
>> --- a/src/qemu/qemu_monitor.c
>> +++ b/src/qemu/qemu_monitor.c
>> @@ -2018,6 +2018,44 @@ int qemuMonitorMigrateCancel(qemuMonitorPtr mon)
>> return ret;
>> }
>>
>> +int qemuMonitorDumpToFd(qemuMonitorPtr mon,
>> + unsigned int flags,
>> + int fd,
>> + unsigned long long begin,
>> + unsigned long long length)
>> +{
>> + int ret;
>> + VIR_DEBUG("mon=%p fd=%d flags=%x begin=%llx length=%llx",
>> + mon, fd, flags, begin, length);
>> +
>> + if (!mon) {
>> + qemuReportError(VIR_ERR_INVALID_ARG, "%s",
>> + _("monitor must not be NULL"));
>> + return -1;
>> + }
>> +
>> + if (!mon->json) {
>> + /* dump-guest-memory is supported after qemu-1.0, and we always use
json
>> + * if qemu's version is >= 0.15. So if we use text mode, the qemu
is
>> + * old, and it does not support dump-guest-memory.
>> + */
>> + qemuReportError(VIR_ERR_NO_SUPPORT, "%s",
>> + _("dump-guest-memory is not supported in text
mode"));
>> + return -1;
>> + }
>
> Correct me if I'm wrong, but shouldn't this be rather handled by adding
> it as a qemu capability? Maybe by checking the qemu version in
> qemuCapsComputeCmdFlags()? Or probably even better by checking that
> command in qemuCapsComputeCmdFlags(). That way we can be sure that the
> command is supported.
>
If mon->json is false, we use the text mode, so the qemu's version is < 0.15.
The dump-guest-memory is supported after qemu-1.0. So we can say that the
qemu does not support dump-guest-memory if mon->json is false.
Thanks
Wen Congyang
Yes, that's true, but on the other hand we cannot say it supports
dump-guest-memory just because we are using JSON. For example for
qemu-0.15, we'll use JSON, but the command will not be supported.
Regards,
Martin