Re: [Qemu-devel] [PATCH v6 10/11] Dump: add hmp command "info dump"
On Tue, Feb 16, 2016 at 02:46:15PM +0800, Fam Zheng wrote: > On Wed, 12/09 10:42, Peter Xu wrote: > > + > > +void hmp_info_dump(Monitor *mon, const QDict *qdict) > > +{ > > +DumpQueryResult *result = qmp_query_dump(NULL); > > If something goes wrong, it is probably better to pass in local_err to > qmp_query_dump and print the error info instead of assuming result's fields > are > all valid and trying to interpret them. > > Fam This is because qmp_query_dump() will never fail, and it's not using errp. Will assert "result" too before use. Thanks. Peter
Re: [Qemu-devel] [PATCH v6 10/11] Dump: add hmp command "info dump"
On Wed, 12/09 10:42, Peter Xu wrote: > It will calculate percentage of finished work from completed and > total. > > Signed-off-by: Peter Xu> --- > hmp-commands-info.hx | 14 ++ > hmp.c| 17 + > hmp.h| 1 + > 3 files changed, 32 insertions(+) > > diff --git a/hmp-commands-info.hx b/hmp-commands-info.hx > index 9b71351..52539c3 100644 > --- a/hmp-commands-info.hx > +++ b/hmp-commands-info.hx > @@ -786,6 +786,20 @@ STEXI > Display the value of a storage key (s390 only) > ETEXI > > +{ > +.name = "dump", > +.args_type = "", > +.params = "", > +.help = "Display the latest dump status", > +.mhandler.cmd = hmp_info_dump, > +}, > + > +STEXI > +@item info dump > +@findex dump > +Display the latest dump status. > +ETEXI > + > STEXI > @end table > ETEXI > diff --git a/hmp.c b/hmp.c > index 1f4d0b6..c824064 100644 > --- a/hmp.c > +++ b/hmp.c > @@ -2383,3 +2383,20 @@ void hmp_rocker_of_dpa_groups(Monitor *mon, const > QDict *qdict) > > qapi_free_RockerOfDpaGroupList(list); > } > + > +void hmp_info_dump(Monitor *mon, const QDict *qdict) > +{ > +DumpQueryResult *result = qmp_query_dump(NULL); If something goes wrong, it is probably better to pass in local_err to qmp_query_dump and print the error info instead of assuming result's fields are all valid and trying to interpret them. Fam > + > +assert(result->status < DUMP_STATUS_MAX); > +monitor_printf(mon, "Status: %s\n", DumpStatus_lookup[result->status]); > + > +if (result->status == DUMP_STATUS_ACTIVE) { > +float percent = 0; > +assert(result->total != 0); > +percent = 100.0 * result->completed / result->total; > +monitor_printf(mon, "Finished: %.2f %%\n", percent); > +} > + > +qapi_free_DumpQueryResult(result); > +} > diff --git a/hmp.h b/hmp.h > index a8c5b5a..093d65f 100644 > --- a/hmp.h > +++ b/hmp.h > @@ -131,5 +131,6 @@ void hmp_rocker(Monitor *mon, const QDict *qdict); > void hmp_rocker_ports(Monitor *mon, const QDict *qdict); > void hmp_rocker_of_dpa_flows(Monitor *mon, const QDict *qdict); > void hmp_rocker_of_dpa_groups(Monitor *mon, const QDict *qdict); > +void hmp_info_dump(Monitor *mon, const QDict *qdict); > > #endif > -- > 2.4.3 >
[Qemu-devel] [PATCH v6 10/11] Dump: add hmp command "info dump"
It will calculate percentage of finished work from completed and total. Signed-off-by: Peter Xu--- hmp-commands-info.hx | 14 ++ hmp.c| 17 + hmp.h| 1 + 3 files changed, 32 insertions(+) diff --git a/hmp-commands-info.hx b/hmp-commands-info.hx index 9b71351..52539c3 100644 --- a/hmp-commands-info.hx +++ b/hmp-commands-info.hx @@ -786,6 +786,20 @@ STEXI Display the value of a storage key (s390 only) ETEXI +{ +.name = "dump", +.args_type = "", +.params = "", +.help = "Display the latest dump status", +.mhandler.cmd = hmp_info_dump, +}, + +STEXI +@item info dump +@findex dump +Display the latest dump status. +ETEXI + STEXI @end table ETEXI diff --git a/hmp.c b/hmp.c index 1f4d0b6..c824064 100644 --- a/hmp.c +++ b/hmp.c @@ -2383,3 +2383,20 @@ void hmp_rocker_of_dpa_groups(Monitor *mon, const QDict *qdict) qapi_free_RockerOfDpaGroupList(list); } + +void hmp_info_dump(Monitor *mon, const QDict *qdict) +{ +DumpQueryResult *result = qmp_query_dump(NULL); + +assert(result->status < DUMP_STATUS_MAX); +monitor_printf(mon, "Status: %s\n", DumpStatus_lookup[result->status]); + +if (result->status == DUMP_STATUS_ACTIVE) { +float percent = 0; +assert(result->total != 0); +percent = 100.0 * result->completed / result->total; +monitor_printf(mon, "Finished: %.2f %%\n", percent); +} + +qapi_free_DumpQueryResult(result); +} diff --git a/hmp.h b/hmp.h index a8c5b5a..093d65f 100644 --- a/hmp.h +++ b/hmp.h @@ -131,5 +131,6 @@ void hmp_rocker(Monitor *mon, const QDict *qdict); void hmp_rocker_ports(Monitor *mon, const QDict *qdict); void hmp_rocker_of_dpa_flows(Monitor *mon, const QDict *qdict); void hmp_rocker_of_dpa_groups(Monitor *mon, const QDict *qdict); +void hmp_info_dump(Monitor *mon, const QDict *qdict); #endif -- 2.4.3