All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sanidhya Kashyap <sanidhya.iiith@gmail.com>
To: qemu list <qemu-devel@nongnu.org>
Cc: Juan Quintela <quintela@redhat.com>
Subject: [Qemu-devel] [PATCH 3/6] hmp interface for dirty bitmap dump
Date: Tue, 20 May 2014 23:17:52 +0530	[thread overview]
Message-ID: <1400608075-19917-4-git-send-email-sanidhya.iiith@gmail.com> (raw)
In-Reply-To: <1400608075-19917-1-git-send-email-sanidhya.iiith@gmail.com>

Added the log-dirty-bitmap or ldb hmp interface.

Signed-off-by: Sanidhya Kashyap <sanidhya.iiith@gmail.com>
---
 hmp-commands.hx | 17 +++++++++++++++++
 hmp.c           | 19 +++++++++++++++++++
 hmp.h           |  1 +
 3 files changed, 37 insertions(+)

diff --git a/hmp-commands.hx b/hmp-commands.hx
index 8971f1b..032a320 100644
--- a/hmp-commands.hx
+++ b/hmp-commands.hx
@@ -1774,6 +1774,23 @@ STEXI
 show available trace events and their state
 ETEXI
 
+     {
+        .name       = "ldb|log-dirty-bitmap",
+        .args_type  = "readable:-r,filename:s,epochs:i?,frequency:i?",
+        .params     = "[-r] filename epochs frequency",
+        .help       = "dumps the memory's dirty bitmap to file\n\t\t\t"
+                     "filename: name of the file in which the bitmap will be saved\n\t\t\t"
+                      "epochs: number of times, the memory will be logged\n\t\t\t"
+                      "frequency: time difference in milliseconds between each epoch\n\t\t\t"
+                      "-r: dumps the bitmap in hex format (non-binary)",
+        .mhandler.cmd = hmp_log_dirty_bitmap,
+    },
+STEXI
+@item ldb or log-dirty-bitmap [-r] @var{filename}
+@findex log-dirty-bitmap
+umps the writable working set of the VM's memoryto a file
+ETEXI
+
 STEXI
 @end table
 ETEXI
diff --git a/hmp.c b/hmp.c
index 5c4d612..cc54988 100644
--- a/hmp.c
+++ b/hmp.c
@@ -1309,6 +1309,25 @@ void hmp_device_del(Monitor *mon, const QDict *qdict)
     hmp_handle_error(mon, &err);
 }
 
+void hmp_log_dirty_bitmap(Monitor *mon, const QDict *qdict)
+{
+    printf("called\n");
+    int readable = qdict_get_try_bool(qdict, "readable", 0);
+    const char *filename = qdict_get_str(qdict, "filename");
+    int64_t epochs = qdict_get_try_int(qdict, "epochs", 3);
+    int64_t frequency = qdict_get_try_int(qdict, "frequency", 40);
+    Error *err = NULL;
+
+    printf("%s %ld %ld %d\n", filename, epochs, frequency, readable);
+    qmp_log_dirty_bitmap(filename, !!epochs, epochs, !!frequency,
+                        frequency, !!readable, readable, &err);
+    if (err) {
+        monitor_printf(mon, "log-dirty-bitmap: %s\n", error_get_pretty(err));
+        error_free(err);
+        return;
+    }
+}
+
 void hmp_dump_guest_memory(Monitor *mon, const QDict *qdict)
 {
     Error *err = NULL;
diff --git a/hmp.h b/hmp.h
index 20ef454..bf6cc2a 100644
--- a/hmp.h
+++ b/hmp.h
@@ -93,6 +93,7 @@ void hmp_qemu_io(Monitor *mon, const QDict *qdict);
 void hmp_cpu_add(Monitor *mon, const QDict *qdict);
 void hmp_object_add(Monitor *mon, const QDict *qdict);
 void hmp_object_del(Monitor *mon, const QDict *qdict);
+void hmp_log_dirty_bitmap(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);
-- 
1.8.3.1

  parent reply	other threads:[~2014-05-20 17:48 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-05-20 17:47 [Qemu-devel] [PATCH 0/6] Obtain dirty bitmap via VM logging Sanidhya Kashyap
2014-05-20 17:47 ` [Qemu-devel] [PATCH 1/6] split dirty bitmap into four for dumping the bitmaps Sanidhya Kashyap
2014-05-20 17:47 ` [Qemu-devel] [PATCH 2/6] bitmap dump code via QAPI framework Sanidhya Kashyap
2014-05-20 19:03   ` Eric Blake
2014-05-20 19:25     ` Sanidhya Kashyap
2014-05-20 17:47 ` Sanidhya Kashyap [this message]
2014-05-20 17:47 ` [Qemu-devel] [PATCH 4/6] cancel mechanism for an already running dump bitmap process Sanidhya Kashyap
2014-05-20 19:34   ` Eric Blake
2014-05-20 17:47 ` [Qemu-devel] [PATCH 5/6] set the frequency of the " Sanidhya Kashyap
2014-05-20 19:36   ` Eric Blake
2014-05-20 17:47 ` [Qemu-devel] [PATCH 6/6] python script for extracting bitmap from a binary file Sanidhya Kashyap
2014-05-20 19:38   ` Eric Blake
2014-05-20 19:39     ` Eric Blake
2014-05-21  0:43       ` Sanidhya Kashyap
2014-05-21  4:13 ` [Qemu-devel] [PATCH 0/6] Obtain dirty bitmap via VM logging ChenLiang
2014-05-21  4:56   ` Sanidhya Kashyap
2014-05-21  6:45     ` ChenLiang
2014-05-21  6:55       ` Sanidhya Kashyap
2014-05-22 11:21       ` Sanidhya Kashyap
2014-05-22 12:57         ` ChenLiang
2014-05-23  2:30           ` Sanidhya Kashyap

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1400608075-19917-4-git-send-email-sanidhya.iiith@gmail.com \
    --to=sanidhya.iiith@gmail.com \
    --cc=qemu-devel@nongnu.org \
    --cc=quintela@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.