From patchwork Sat Sep 13 14:00:12 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sanidhya Kashyap X-Patchwork-Id: 388895 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 59E06140097 for ; Sun, 14 Sep 2014 00:01:37 +1000 (EST) Received: from localhost ([::1]:49862 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XSntP-0001FF-Dm for incoming@patchwork.ozlabs.org; Sat, 13 Sep 2014 10:01:35 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:48857) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XSnsn-0000E9-AS for qemu-devel@nongnu.org; Sat, 13 Sep 2014 10:01:06 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XSnsb-0002De-CQ for qemu-devel@nongnu.org; Sat, 13 Sep 2014 10:00:57 -0400 Received: from mail-yh0-x232.google.com ([2607:f8b0:4002:c01::232]:59125) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XSnsb-0002DW-5y for qemu-devel@nongnu.org; Sat, 13 Sep 2014 10:00:45 -0400 Received: by mail-yh0-f50.google.com with SMTP id 29so1160376yhl.9 for ; Sat, 13 Sep 2014 07:00:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=nkOJdFMdO+L1vlT08aUkEm/FC2HlAayoi3Z3HCqBcC4=; b=lNXme2KWxmUJFtBsQ3F7YK+PdRQDVDD5PIWB8Khd7vyh7nHR5LBZA5+1V+0vRG1hde 3m4/A9N4iHVhFqrDjXSOAVIUi7jqivocXiC0KSRYHotwSAx8qRe+kFia0X6w8sYcpyTL o9oTjo8bdMvPWNI7ukfmW9sfUEoOeYNJf1faHaezfolyspWUKigqK4TD2R4WqpK5xHIN UZR0cHl05r3gqjXgI0gIL0YxKjDieunHI/0X2ml1agfBMJIZWVHT1ZVWeH2dsOv97GZi ccXxJkfptHw16AjiK4IyHpqaDlhh1xcDajJoXmuUMtuRez9JrpbXlQsEFT4rE7cmVAnu P96Q== X-Received: by 10.236.70.229 with SMTP id p65mr18568548yhd.50.1410616844598; Sat, 13 Sep 2014 07:00:44 -0700 (PDT) Received: from ripun-VPCEA46FG.hsd1.ga.comcast.net (c-76-97-70-227.hsd1.ga.comcast.net. [76.97.70.227]) by mx.google.com with ESMTPSA id c27sm2962914yha.2.2014.09.13.07.00.43 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Sat, 13 Sep 2014 07:00:44 -0700 (PDT) From: Sanidhya Kashyap To: qemu list Date: Sat, 13 Sep 2014 10:00:12 -0400 Message-Id: <1410616814-27388-5-git-send-email-sanidhya.iiith@gmail.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1410616814-27388-1-git-send-email-sanidhya.iiith@gmail.com> References: <1410616814-27388-1-git-send-email-sanidhya.iiith@gmail.com> X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2607:f8b0:4002:c01::232 Cc: Sanidhya Kashyap , "Dr. David Alan Gilbert" , Juan Quintela Subject: [Qemu-devel] [PATCH v6 4/6] BitmapLog: cancel mechanism for an already running dump bitmap process X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Signed-off-by: Sanidhya Kashyap --- No functional change, except acronyms have been removed. Removed acronyms, no functional change. hmp-commands.hx | 14 ++++++++++++++ hmp.c | 5 +++++ hmp.h | 1 + qapi-schema.json | 9 +++++++++ qmp-commands.hx | 20 ++++++++++++++++++++ savevm.c | 14 ++++++++++++++ 6 files changed, 63 insertions(+) diff --git a/hmp-commands.hx b/hmp-commands.hx index d336f20..b253239 100644 --- a/hmp-commands.hx +++ b/hmp-commands.hx @@ -1804,6 +1804,20 @@ STEXI dumps the writable working set of a VM's memory to a file ETEXI + { + .name = "log_dirty_bitmap_cancel", + .args_type = "", + .params = "", + .help = "cancel the current bitmap dump process", + .mhandler.cmd = hmp_log_dirty_bitmap_cancel, +}, + +STEXI +@item log_dirty_bitmap_cancel +@findex log_dirty_bitmap_cancel +Cancel the current bitmap dump process +ETEXI + STEXI @end table ETEXI diff --git a/hmp.c b/hmp.c index 4533dcd..80b4e5d 100644 --- a/hmp.c +++ b/hmp.c @@ -1336,6 +1336,11 @@ void hmp_log_dirty_bitmap(Monitor *mon, const QDict *qdict) } } +void hmp_log_dirty_bitmap_cancel(Monitor *mon, const QDict *qdict) +{ + qmp_log_dirty_bitmap_cancel(NULL); +} + void hmp_dump_guest_memory(Monitor *mon, const QDict *qdict) { Error *err = NULL; diff --git a/hmp.h b/hmp.h index 02e8ee4..fcfb10f 100644 --- a/hmp.h +++ b/hmp.h @@ -96,6 +96,7 @@ void hmp_object_add(Monitor *mon, const QDict *qdict); void hmp_object_del(Monitor *mon, const QDict *qdict); void hmp_info_memdev(Monitor *mon, const QDict *qdict); void hmp_log_dirty_bitmap(Monitor *mon, const QDict *qdict); +void hmp_log_dirty_bitmap_cancel(Monitor *mon, const QDict *qdict); void object_add_completion(ReadLineState *rs, int nb_args, const char *str); void object_del_completion(ReadLineState *rs, int nb_args, const char *str); void device_add_completion(ReadLineState *rs, int nb_args, const char *str); diff --git a/qapi-schema.json b/qapi-schema.json index d1b44f4..0e90e9a 100644 --- a/qapi-schema.json +++ b/qapi-schema.json @@ -3546,3 +3546,12 @@ # Since 2.2 ## { 'command': 'query-log-dirty-bitmap', 'returns': 'BitmapLogStateInfo' } + +## +# @log-dirty-bitmap-cancel +# +# cancel the dirty bitmap logging process +# +# Since 2.2 +## +{ 'command': 'log-dirty-bitmap-cancel' } diff --git a/qmp-commands.hx b/qmp-commands.hx index 9582bc7..890a393 100644 --- a/qmp-commands.hx +++ b/qmp-commands.hx @@ -3811,3 +3811,23 @@ Example: "iterations": 10, "period": 100 } } EQMP + + { + .name = "log-dirty-bitmap-cancel", + .args_type = "", + .mhandler.cmd_new = qmp_marshal_input_log_dirty_bitmap_cancel, + }, + +SQMP +log-dirty-bitmap-cancel +----------------------- + +Cancel the current bitmap dump process. + +Arguments: None. + +Example: + +-> { "execute": "log-dirty-bitmap-cancel" } +<- { "return": {} } +EQMP diff --git a/savevm.c b/savevm.c index 75fdd04..51995b4 100644 --- a/savevm.c +++ b/savevm.c @@ -1532,6 +1532,20 @@ BitmapLogStateInfo *qmp_query_log_dirty_bitmap(Error **errp) return info; } +void qmp_log_dirty_bitmap_cancel(Error **errp) +{ + BitmapLogState *b = log_bitmap_get_current_state(); + int old_state; + do { + old_state = b->state; + if (old_state != LOG_BITMAP_STATE_ACTIVE) { + break; + } + log_bitmap_set_status(b, old_state, + LOG_BITMAP_STATE_CANCELING); + } while (b->state != LOG_BITMAP_STATE_CANCELING); +} + void qmp_xen_save_devices_state(const char *filename, Error **errp) { QEMUFile *f;