From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:50481) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aVZOy-00020p-Mv for qemu-devel@nongnu.org; Tue, 16 Feb 2016 01:46:25 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aVZOu-00010a-L8 for qemu-devel@nongnu.org; Tue, 16 Feb 2016 01:46:24 -0500 Received: from mx1.redhat.com ([209.132.183.28]:48274) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aVZOu-00010W-FS for qemu-devel@nongnu.org; Tue, 16 Feb 2016 01:46:20 -0500 Received: from int-mx09.intmail.prod.int.phx2.redhat.com (int-mx09.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by mx1.redhat.com (Postfix) with ESMTPS id 0784FC003569 for ; Tue, 16 Feb 2016 06:46:19 +0000 (UTC) Date: Tue, 16 Feb 2016 14:46:15 +0800 From: Fam Zheng Message-ID: <20160216064615.GG18664@ad.usersys.redhat.com> References: <1449628943-10197-1-git-send-email-peterx@redhat.com> <1449628943-10197-11-git-send-email-peterx@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1449628943-10197-11-git-send-email-peterx@redhat.com> Subject: Re: [Qemu-devel] [PATCH v6 10/11] Dump: add hmp command "info dump" List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Peter Xu Cc: drjones@redhat.com, lersek@redhat.com, armbru@redhat.com, qemu-devel@nongnu.org, pbonzini@redhat.com, lcapitulino@redhat.com 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 >