From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:53803) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1a295Q-0007Bb-Ug for qemu-devel@nongnu.org; Thu, 26 Nov 2015 21:48:37 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1a295P-0004pH-V1 for qemu-devel@nongnu.org; Thu, 26 Nov 2015 21:48:36 -0500 Received: from mx1.redhat.com ([209.132.183.28]:44515) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1a295P-0004pA-QE for qemu-devel@nongnu.org; Thu, 26 Nov 2015 21:48:35 -0500 Received: from int-mx13.intmail.prod.int.phx2.redhat.com (int-mx13.intmail.prod.int.phx2.redhat.com [10.5.11.26]) by mx1.redhat.com (Postfix) with ESMTPS id 80909C0D2224 for ; Fri, 27 Nov 2015 02:48:35 +0000 (UTC) From: Peter Xu Date: Fri, 27 Nov 2015 10:48:13 +0800 Message-Id: <1448592497-2462-5-git-send-email-peterx@redhat.com> In-Reply-To: <1448592497-2462-1-git-send-email-peterx@redhat.com> References: <1448592497-2462-1-git-send-email-peterx@redhat.com> Subject: [Qemu-devel] [PATCH v2 4/8] dump-guest-memory: add qmp event DUMP_COMPLETED List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Peter Xu To get aligned with QMP interface, one new QMP event DUMP_COMPLETED is added. It is used when user specified "detach" in dump, and triggered when the dump finishes. Error message will be appended to this event if the dump has failed. Signed-off-by: Peter Xu --- docs/qmp-events.txt | 12 ++++++++++++ dump.c | 12 +++++++++++- qapi/event.json | 10 ++++++++++ 3 files changed, 33 insertions(+), 1 deletion(-) diff --git a/docs/qmp-events.txt b/docs/qmp-events.txt index d2f1ce4..fe494f9 100644 --- a/docs/qmp-events.txt +++ b/docs/qmp-events.txt @@ -674,3 +674,15 @@ Note: If action is "reset", "shutdown", or "pause" the WATCHDOG event is followed respectively by the RESET, SHUTDOWN, or STOP events. Note: this event is rate-limited. + +DUMP_COMPLETED +-------------- + +Emitted when the guest has finished one memory dump. + +Data: None. + +Example: + +{ "event": "DUMP_COMPLETED", + "data": { "msg": "Dump completed successfully" } } diff --git a/dump.c b/dump.c index dfd56aa..0d321d4 100644 --- a/dump.c +++ b/dump.c @@ -25,6 +25,7 @@ #include "qapi/error.h" #include "qapi/qmp/qerror.h" #include "qmp-commands.h" +#include "qapi-event.h" #include #ifdef CONFIG_LZO @@ -1659,8 +1660,17 @@ static void dump_process(DumpState *s, Error **errp) static void *dump_thread(void *data) { GlobalDumpState *global = (GlobalDumpState *)data; - dump_process(global->gds_cur, NULL); + Error *local_err = NULL; + const char *msg = "Dump completed successfully"; + + dump_process(global->gds_cur, &local_err); dump_state_release(global); + + /* if detach is used, notify user that dump has finished */ + if (local_err) { + msg = error_get_pretty(local_err); + } + qapi_event_send_dump_completed(msg, &error_abort); return NULL; } diff --git a/qapi/event.json b/qapi/event.json index f0cef01..de24c27 100644 --- a/qapi/event.json +++ b/qapi/event.json @@ -356,3 +356,13 @@ ## { 'event': 'MEM_UNPLUG_ERROR', 'data': { 'device': 'str', 'msg': 'str' } } + +## +# @DUMP_COMPLETED +# +# Emitted when background dump has completed +# +# Since: 2.6 +## +{ 'event': 'DUMP_COMPLETED' , + 'data': { 'msg': 'str' } } -- 2.4.3