[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH V1 08/32] savevm: HMP command for cprinfo
From: |
Steven Sistare |
Subject: |
Re: [PATCH V1 08/32] savevm: HMP command for cprinfo |
Date: |
Thu, 24 Sep 2020 17:50:37 -0400 |
User-agent: |
Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.12.0 |
On 9/11/2020 1:27 PM, Dr. David Alan Gilbert wrote:
> * Steve Sistare (steven.sistare@oracle.com) wrote:
>> Enable HMP access to the cprinfo QMP command.
>>
>> Usage: cprinfo
>>
>> Signed-off-by: Steve Sistare <steven.sistare@oracle.com>
>
> As with Eric's comment on the qemp I don't think you need it;
> for HMP alll you really need is something that lists it in the help.
We need an architected stable interface to know that a qemu instance supports
cpr. I don't think parsing help is good enough. The hmp interface is great
for use in bash; easy to use and efficient.
> (Also I'd expect an info cpr to be a possibility that could give
> some information about it - e.g. if you've just saved/can save/loaded a
> CPR image)
Yes, that occurred to me. We could add some flags in the future and remain
backwards compatible. I should start now with a sub-command schema to make
future
expansion cleaner:
"cprinfo modes" - return supported modes, eg "reboot restart"
- Steve
>> ---
>> hmp-commands.hx | 13 +++++++++++++
>> include/monitor/hmp.h | 1 +
>> monitor/hmp-cmds.c | 10 ++++++++++
>> 3 files changed, 24 insertions(+)
>>
>> diff --git a/hmp-commands.hx b/hmp-commands.hx
>> index cb67150..7517876 100644
>> --- a/hmp-commands.hx
>> +++ b/hmp-commands.hx
>> @@ -354,6 +354,19 @@ SRST
>> ERST
>>
>> {
>> + .name = "cprinfo",
>> + .args_type = "",
>> + .params = "",
>> + .help = "return list of modes supported by cprsave",
>> + .cmd = hmp_cprinfo,
>> + },
>> +
>> +SRST
>> +``cprinfo`` *tag*
>> + Return a space-delimited list of modes supported by cprsave.
>> +ERST
>> +
>> + {
>> .name = "cprsave",
>> .args_type = "file:s,mode:s",
>> .params = "file 'reboot'",
>> diff --git a/include/monitor/hmp.h b/include/monitor/hmp.h
>> index 7b8cdfd..919b9a9 100644
>> --- a/include/monitor/hmp.h
>> +++ b/include/monitor/hmp.h
>> @@ -59,6 +59,7 @@ void hmp_balloon(Monitor *mon, const QDict *qdict);
>> void hmp_loadvm(Monitor *mon, const QDict *qdict);
>> void hmp_savevm(Monitor *mon, const QDict *qdict);
>> void hmp_delvm(Monitor *mon, const QDict *qdict);
>> +void hmp_cprinfo(Monitor *mon, const QDict *qdict);
>> void hmp_cprsave(Monitor *mon, const QDict *qdict);
>> void hmp_cprload(Monitor *mon, const QDict *qdict);
>> void hmp_migrate_cancel(Monitor *mon, const QDict *qdict);
>> diff --git a/monitor/hmp-cmds.c b/monitor/hmp-cmds.c
>> index ba95737..2f6af07 100644
>> --- a/monitor/hmp-cmds.c
>> +++ b/monitor/hmp-cmds.c
>> @@ -1139,6 +1139,16 @@ void hmp_announce_self(Monitor *mon, const QDict
>> *qdict)
>> qapi_free_AnnounceParameters(params);
>> }
>>
>> +void hmp_cprinfo(Monitor *mon, const QDict *qdict)
>> +{
>> + Error *err = NULL;
>> + char *res = qmp_cprinfo(&err);
>> +
>> + monitor_printf(mon, "%s\n", res);
>> + g_free(res);
>> + hmp_handle_error(mon, err);
>> +}
>> +
>> void hmp_cprsave(Monitor *mon, const QDict *qdict)
>> {
>> Error *err = NULL;
>> --
>> 1.8.3.1
>>