From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:56453) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1X7jm8-0001lX-LV for qemu-devel@nongnu.org; Thu, 17 Jul 2014 07:23:13 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1X7jlz-0003Ye-1b for qemu-devel@nongnu.org; Thu, 17 Jul 2014 07:23:00 -0400 Received: from mail-pd0-x235.google.com ([2607:f8b0:400e:c02::235]:58052) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1X7jly-0003Xu-ND for qemu-devel@nongnu.org; Thu, 17 Jul 2014 07:22:50 -0400 Received: by mail-pd0-f181.google.com with SMTP id g10so1522646pdj.40 for ; Thu, 17 Jul 2014 04:22:49 -0700 (PDT) From: Sanidhya Kashyap Date: Thu, 17 Jul 2014 16:51:19 +0530 Message-Id: <1405596081-29701-7-git-send-email-sanidhya.iiith@gmail.com> In-Reply-To: <1405596081-29701-1-git-send-email-sanidhya.iiith@gmail.com> References: <1405596081-29701-1-git-send-email-sanidhya.iiith@gmail.com> Subject: [Qemu-devel] [PATCH v4 6/8] BitmapLog: set the frequency of the dump bitmap process List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu list Cc: Amit Shah , Sanidhya Kashyap , "Dr. David Alan Gilbert" , Juan Quintela Rectified the example mistake in qmp-commands.hx. Signed-off-by: Sanidhya Kashyap --- hmp-commands.hx | 15 +++++++++++++++ hmp.c | 12 ++++++++++++ hmp.h | 1 + qapi-schema.json | 13 +++++++++++++ qmp-commands.hx | 24 ++++++++++++++++++++++++ savevm.c | 14 ++++++++++++++ 6 files changed, 79 insertions(+) diff --git a/hmp-commands.hx b/hmp-commands.hx index 61eca66..9f940ab 100644 --- a/hmp-commands.hx +++ b/hmp-commands.hx @@ -1818,6 +1818,21 @@ STEXI Cancel the current bitmap dump process ETEXI + { + .name = "ldbsf|log-dirty-bitmap-set-frequency", + .args_type = "frequency:i", + .params = "frequency", + .help = "set the frequency for bitmap dump process\n\t\t\t" + "frequency: the new frequency value to replace the existing", + .mhandler.cmd = hmp_log_dirty_bitmap_set_frequency, + }, + +STEXI +@item ldbsf or log-dirty-bitmap-set-frequency @var{frequency} +@findex log-dirty-bitmap-set-frequency +Set the frequency to @var{frequency} (int) for bitmap dump process. +ETEXI + STEXI @end table ETEXI diff --git a/hmp.c b/hmp.c index 782f788..3408709 100644 --- a/hmp.c +++ b/hmp.c @@ -1339,6 +1339,18 @@ void hmp_log_dirty_bitmap_cancel(Monitor *mon, const QDict *qdict) qmp_log_dirty_bitmap_cancel(NULL); } +void hmp_log_dirty_bitmap_set_frequency(Monitor *mon, const QDict *qdict) +{ + int64_t frequency = qdict_get_int(qdict, "frequency"); + Error *err = NULL; + qmp_log_dirty_bitmap_set_frequency(frequency, &err); + if (err) { + monitor_printf(mon, "log-dirty-bitmap-set-frequency: %s\n", + error_get_pretty(err)); + error_free(err); + } +} + void hmp_dump_guest_memory(Monitor *mon, const QDict *qdict) { Error *err = NULL; diff --git a/hmp.h b/hmp.h index 12691f9..33a2c64 100644 --- a/hmp.h +++ b/hmp.h @@ -96,6 +96,7 @@ 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 hmp_log_dirty_bitmap_set_frequency(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 70e07e9..90977eb 100644 --- a/qapi-schema.json +++ b/qapi-schema.json @@ -3511,3 +3511,16 @@ # Since 2.2 ## { 'command': 'log-dirty-bitmap-cancel' } + +## +# @log-dirty-bitmap-set-frequency +# +# sets the frequency of the dirty bitmap logging process +# @frequency: the updated frequency value (in milliseconds). +# The min and max values are 10 and 100000 respectively. +# +# Since 2.2 +## +{ 'command': 'log-dirty-bitmap-set-frequency', + 'data': {'frequency': 'int' } } + diff --git a/qmp-commands.hx b/qmp-commands.hx index 69d4a07..0a13b74 100644 --- a/qmp-commands.hx +++ b/qmp-commands.hx @@ -3806,3 +3806,27 @@ Example: <- { "return": {} } EQMP + + { + .name = "log-dirty-bitmap-set-frequency", + .args_type = "frequency:i", + .mhandler.cmd_new = qmp_marshal_input_log_dirty_bitmap_set_frequency, + }, + +SQMP +log-dirty-bitmap-set-frequency +-------------------- + +Update the frequency for the remaining epochs. + +Arguments: + +- "frequency": the updated frequency (json-int) (in milliseconds) + +Example: + +-> { "execute": "log-dirty-bitmap-set-frequency", "arguments": { "frequency": 1024 } } +<- { "return": {} } + +EQMP + diff --git a/savevm.c b/savevm.c index b1b0421..d22771c 100644 --- a/savevm.c +++ b/savevm.c @@ -1481,6 +1481,20 @@ void qmp_log_dirty_bitmap_cancel(Error **errp) logging_bitmap_cancel(logging_current_state()); } +void qmp_log_dirty_bitmap_set_frequency(int64_t frequency, Error **errp) +{ + BitmapLogState *b = logging_current_state(); + Error *local_err = NULL; + if (value_in_range(frequency, MIN_FREQUENCY_VALUE, + MAX_FREQUENCY_VALUE, "frequency", &local_err)) { + if (local_err) { + error_propagate(errp, local_err); + return; + } + } + b->current_frequency = frequency; +} + void qmp_xen_save_devices_state(const char *filename, Error **errp) { QEMUFile *f; -- 1.9.3