qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH 14/31] ram: Move iterations into RAMState


From: Philippe Mathieu-Daudé
Subject: Re: [Qemu-devel] [PATCH 14/31] ram: Move iterations into RAMState
Date: Thu, 16 Mar 2017 18:40:02 -0300
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0

On 03/16/2017 05:04 PM, Dr. David Alan Gilbert wrote:
* Juan Quintela (address@hidden) wrote:
Signed-off-by: Juan Quintela <address@hidden>
---
 migration/ram.c | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

Reviewed-by: Dr. David Alan Gilbert <address@hidden>


Reviewed-by: Philippe Mathieu-Daudé <address@hidden>


diff --git a/migration/ram.c b/migration/ram.c
index 8caeb4f..234bdba 100644
--- a/migration/ram.c
+++ b/migration/ram.c
@@ -164,6 +164,8 @@ struct RAMState {
     uint64_t zero_pages;
     /* number of normal transferred pages */
     uint64_t norm_pages;
+    /* Iterations since start */
+    uint64_t iterations;
 };
 typedef struct RAMState RAMState;

@@ -171,7 +173,6 @@ static RAMState ram_state;

 /* accounting for migration statistics */
 typedef struct AccountingInfo {
-    uint64_t iterations;
     uint64_t xbzrle_bytes;
     uint64_t xbzrle_pages;
     uint64_t xbzrle_cache_miss;
@@ -668,13 +669,13 @@ static void migration_bitmap_sync(RAMState *rs)
         }

         if (migrate_use_xbzrle()) {
-            if (rs->iterations_prev != acct_info.iterations) {
+            if (rs->iterations_prev != rs->iterations) {
                 acct_info.xbzrle_cache_miss_rate =
                    (double)(acct_info.xbzrle_cache_miss -
                             rs->xbzrle_cache_miss_prev) /
-                   (acct_info.iterations - rs->iterations_prev);
+                   (rs->iterations - rs->iterations_prev);
             }
-            rs->iterations_prev = acct_info.iterations;
+            rs->iterations_prev = rs->iterations;
             rs->xbzrle_cache_miss_prev = acct_info.xbzrle_cache_miss;
         }
         s->dirty_pages_rate = rs->num_dirty_pages_period * 1000
@@ -1926,6 +1927,7 @@ static int ram_save_init_globals(RAMState *rs)
     rs->bitmap_sync_count = 0;
     rs->zero_pages = 0;
     rs->norm_pages = 0;
+    rs->iterations = 0;
     migration_bitmap_sync_init(rs);
     qemu_mutex_init(&migration_bitmap_mutex);

@@ -2066,7 +2068,7 @@ static int ram_save_iterate(QEMUFile *f, void *opaque)
             done = 1;
             break;
         }
-        acct_info.iterations++;
+        rs->iterations++;

         /* we want to check in the 1st loop, just in case it was the 1st time
            and we had to sync the dirty bitmap.
--
2.9.3

--
Dr. David Alan Gilbert / address@hidden / Manchester, UK




reply via email to

[Prev in Thread] Current Thread [Next in Thread]