[libvirt] [PATCH 1/3] qemu: implement qemu's dump-guest-memory
Martin Kletzander
mkletzan at redhat.com
Wed May 23 10:06:48 UTC 2012
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
More information about the libvir-list
mailing list