From: Orit Wasserman <owasserm@redhat.com>
To: qemu-devel@nongnu.org
Cc: peter.maydell@linaro.org, aliguori@us.ibm.com,
quintela@redhat.com, stefanha@gmail.com,
mdroth@linux.vnet.ibm.com, blauwirbel@gmail.com,
Orit Wasserman <owasserm@redhat.com>,
chegu_vinod@hp.com, avi@redhat.com, pbonzini@redhat.com,
eblake@redhat.com
Subject: [Qemu-devel] [PATCH v12 08/13] Change ram_save_block to return -1 if there are no more changes
Date: Tue, 19 Jun 2012 18:43:16 +0300 [thread overview]
Message-ID: <1340120601-24747-9-git-send-email-owasserm@redhat.com> (raw)
In-Reply-To: <1340120601-24747-1-git-send-email-owasserm@redhat.com>
It will return 0 if the page is unmodifed.
Signed-off-by: Orit Wasserman <owasserm@redhat.com>
---
arch_init.c | 15 +++++++++------
1 files changed, 9 insertions(+), 6 deletions(-)
diff --git a/arch_init.c b/arch_init.c
index fbed5ea..c9ab66a 100644
--- a/arch_init.c
+++ b/arch_init.c
@@ -184,11 +184,11 @@ static void save_block_hdr(QEMUFile *f, RAMBlock *block, ram_addr_t offset,
static RAMBlock *last_block;
static ram_addr_t last_offset;
-static int ram_save_block(QEMUFile *f)
+static int ram_save_block(QEMUFile *f, int stage)
{
RAMBlock *block = last_block;
ram_addr_t offset = last_offset;
- int bytes_sent = 0;
+ int bytes_sent = -1;
MemoryRegion *mr;
if (!block)
@@ -353,9 +353,12 @@ int ram_save_live(QEMUFile *f, int stage, void *opaque)
while ((ret = qemu_file_rate_limit(f)) == 0) {
int bytes_sent;
- bytes_sent = ram_save_block(f);
- bytes_transferred += bytes_sent;
- if (bytes_sent == 0) { /* no more blocks */
+ bytes_sent = ram_save_block(f, stage);
+ /* bytes_sent 0 represent unchanged page,
+ bytes_sent -1 represent no more blocks*/
+ if (bytes_sent > 0) {
+ bytes_transferred += bytes_sent;
+ } else if (bytes_sent == -1) { /* no more blocks */
break;
}
}
@@ -378,7 +381,7 @@ int ram_save_live(QEMUFile *f, int stage, void *opaque)
int bytes_sent;
/* flush all remaining blocks regardless of rate limiting */
- while ((bytes_sent = ram_save_block(f)) != 0) {
+ while ((bytes_sent = ram_save_block(f, stage)) != -1) {
bytes_transferred += bytes_sent;
}
memory_global_dirty_log_stop();
--
1.7.7.6
next prev parent reply other threads:[~2012-06-19 15:45 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-06-19 15:43 [Qemu-devel] [PATCH v12 00/13] XBZRLE delta for live migration of large memory app Orit Wasserman
2012-06-19 15:43 ` [Qemu-devel] [PATCH v12 01/13] Add MigrationParams structure Orit Wasserman
2012-06-19 16:00 ` Eric Blake
2012-06-19 16:02 ` Orit Wasserman
2012-06-19 15:43 ` [Qemu-devel] [PATCH v12 02/13] Add migration capabilites Orit Wasserman
2012-06-19 16:27 ` Eric Blake
2012-06-19 15:43 ` [Qemu-devel] [PATCH v12 03/13] Add XBZRLE documentation Orit Wasserman
2012-06-19 16:46 ` Eric Blake
2012-06-19 15:43 ` [Qemu-devel] [PATCH v12 04/13] Add cache handling functions Orit Wasserman
2012-06-19 16:51 ` Eric Blake
2012-06-19 15:43 ` [Qemu-devel] [PATCH v12 05/13] Add uleb encoding/decoding functions Orit Wasserman
2012-06-19 16:59 ` Eric Blake
2012-06-19 15:43 ` [Qemu-devel] [PATCH v12 06/13] Add save_block_hdr function Orit Wasserman
2012-06-19 15:43 ` [Qemu-devel] [PATCH v12 07/13] Add debugging infrastructure Orit Wasserman
2012-06-19 15:43 ` Orit Wasserman [this message]
2012-06-19 15:43 ` [Qemu-devel] [PATCH v12 09/13] Add migration_end function Orit Wasserman
2012-06-19 15:43 ` [Qemu-devel] [PATCH v12 10/13] Add xbzrle_encode_buffer and xbzrle_decode_buffer functions Orit Wasserman
2012-06-19 18:08 ` Eric Blake
2012-06-19 15:43 ` [Qemu-devel] [PATCH v12 11/13] Add XBZRLE to ram_save_block and ram_save_live Orit Wasserman
2012-06-19 18:50 ` Eric Blake
2012-06-19 15:43 ` [Qemu-devel] [PATCH v12 12/13] Add set_cachesize command Orit Wasserman
2012-06-19 19:13 ` Eric Blake
2012-06-19 15:43 ` [Qemu-devel] [PATCH v12 13/13] Add XBZRLE statistics Orit Wasserman
2012-06-19 19:20 ` Eric Blake
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=1340120601-24747-9-git-send-email-owasserm@redhat.com \
--to=owasserm@redhat.com \
--cc=aliguori@us.ibm.com \
--cc=avi@redhat.com \
--cc=blauwirbel@gmail.com \
--cc=chegu_vinod@hp.com \
--cc=eblake@redhat.com \
--cc=mdroth@linux.vnet.ibm.com \
--cc=pbonzini@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=quintela@redhat.com \
--cc=stefanha@gmail.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).