diff mbox

[07/31] ram: Move xbzrle_cache_miss_prev into RAMState

Message ID 20170315135021.6978-8-quintela@redhat.com
State New
Headers show

Commit Message

Juan Quintela March 15, 2017, 1:49 p.m. UTC
Signed-off-by: Juan Quintela <quintela@redhat.com>
---
 migration/ram.c | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

Comments

Dr. David Alan Gilbert March 16, 2017, 12:24 p.m. UTC | #1
* Juan Quintela (quintela@redhat.com) wrote:
> Signed-off-by: Juan Quintela <quintela@redhat.com>
> ---
>  migration/ram.c | 9 +++++----
>  1 file changed, 5 insertions(+), 4 deletions(-)
> 
> diff --git a/migration/ram.c b/migration/ram.c
> index b13d2d5..ae077c5 100644
> --- a/migration/ram.c
> +++ b/migration/ram.c
> @@ -155,6 +155,8 @@ struct RAMState {
>      int64_t bytes_xfer_prev;
>      /* number of dirty pages since start_time */
>      int64_t num_dirty_pages_period;
> +    /* xbzrle misses since the beggining of the period */
                                    ^--- extra g

Other than that,
Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>

> +    uint64_t xbzrle_cache_miss_prev;
>  };
>  typedef struct RAMState RAMState;
>  
> @@ -601,7 +603,6 @@ static void migration_bitmap_sync_range(ram_addr_t start, ram_addr_t length)
>  }
>  
>  /* Fix me: there are too many global variables used in migration process. */
> -static uint64_t xbzrle_cache_miss_prev;
>  static uint64_t iterations_prev;
>  
>  static void migration_bitmap_sync_init(RAMState *rs)
> @@ -609,7 +610,7 @@ static void migration_bitmap_sync_init(RAMState *rs)
>      rs->start_time = 0;
>      rs->bytes_xfer_prev = 0;
>      rs->num_dirty_pages_period = 0;
> -    xbzrle_cache_miss_prev = 0;
> +    rs->xbzrle_cache_miss_prev = 0;
>      iterations_prev = 0;
>  }
>  
> @@ -689,11 +690,11 @@ static void migration_bitmap_sync(RAMState *rs)
>              if (iterations_prev != acct_info.iterations) {
>                  acct_info.xbzrle_cache_miss_rate =
>                     (double)(acct_info.xbzrle_cache_miss -
> -                            xbzrle_cache_miss_prev) /
> +                            rs->xbzrle_cache_miss_prev) /
>                     (acct_info.iterations - iterations_prev);
>              }
>              iterations_prev = acct_info.iterations;
> -            xbzrle_cache_miss_prev = acct_info.xbzrle_cache_miss;
> +            rs->xbzrle_cache_miss_prev = acct_info.xbzrle_cache_miss;
>          }
>          s->dirty_pages_rate = rs->num_dirty_pages_period * 1000
>              / (end_time - rs->start_time);
> -- 
> 2.9.3
> 
--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
Philippe Mathieu-Daudé March 16, 2017, 9:35 p.m. UTC | #2
On 03/16/2017 09:24 AM, Dr. David Alan Gilbert wrote:
> * Juan Quintela (quintela@redhat.com) wrote:
>> Signed-off-by: Juan Quintela <quintela@redhat.com>
>> ---
>>  migration/ram.c | 9 +++++----
>>  1 file changed, 5 insertions(+), 4 deletions(-)
>>
>> diff --git a/migration/ram.c b/migration/ram.c
>> index b13d2d5..ae077c5 100644
>> --- a/migration/ram.c
>> +++ b/migration/ram.c
>> @@ -155,6 +155,8 @@ struct RAMState {
>>      int64_t bytes_xfer_prev;
>>      /* number of dirty pages since start_time */
>>      int64_t num_dirty_pages_period;
>> +    /* xbzrle misses since the beggining of the period */
>                                     ^--- extra g
>
> Other than that,
> Reviewed-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
>

Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>

>> +    uint64_t xbzrle_cache_miss_prev;
>>  };
>>  typedef struct RAMState RAMState;
>>
>> @@ -601,7 +603,6 @@ static void migration_bitmap_sync_range(ram_addr_t start, ram_addr_t length)
>>  }
>>
>>  /* Fix me: there are too many global variables used in migration process. */
>> -static uint64_t xbzrle_cache_miss_prev;
>>  static uint64_t iterations_prev;
>>
>>  static void migration_bitmap_sync_init(RAMState *rs)
>> @@ -609,7 +610,7 @@ static void migration_bitmap_sync_init(RAMState *rs)
>>      rs->start_time = 0;
>>      rs->bytes_xfer_prev = 0;
>>      rs->num_dirty_pages_period = 0;
>> -    xbzrle_cache_miss_prev = 0;
>> +    rs->xbzrle_cache_miss_prev = 0;
>>      iterations_prev = 0;
>>  }
>>
>> @@ -689,11 +690,11 @@ static void migration_bitmap_sync(RAMState *rs)
>>              if (iterations_prev != acct_info.iterations) {
>>                  acct_info.xbzrle_cache_miss_rate =
>>                     (double)(acct_info.xbzrle_cache_miss -
>> -                            xbzrle_cache_miss_prev) /
>> +                            rs->xbzrle_cache_miss_prev) /
>>                     (acct_info.iterations - iterations_prev);
>>              }
>>              iterations_prev = acct_info.iterations;
>> -            xbzrle_cache_miss_prev = acct_info.xbzrle_cache_miss;
>> +            rs->xbzrle_cache_miss_prev = acct_info.xbzrle_cache_miss;
>>          }
>>          s->dirty_pages_rate = rs->num_dirty_pages_period * 1000
>>              / (end_time - rs->start_time);
>> --
>> 2.9.3
>>
> --
> Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
>
diff mbox

Patch

diff --git a/migration/ram.c b/migration/ram.c
index b13d2d5..ae077c5 100644
--- a/migration/ram.c
+++ b/migration/ram.c
@@ -155,6 +155,8 @@  struct RAMState {
     int64_t bytes_xfer_prev;
     /* number of dirty pages since start_time */
     int64_t num_dirty_pages_period;
+    /* xbzrle misses since the beggining of the period */
+    uint64_t xbzrle_cache_miss_prev;
 };
 typedef struct RAMState RAMState;
 
@@ -601,7 +603,6 @@  static void migration_bitmap_sync_range(ram_addr_t start, ram_addr_t length)
 }
 
 /* Fix me: there are too many global variables used in migration process. */
-static uint64_t xbzrle_cache_miss_prev;
 static uint64_t iterations_prev;
 
 static void migration_bitmap_sync_init(RAMState *rs)
@@ -609,7 +610,7 @@  static void migration_bitmap_sync_init(RAMState *rs)
     rs->start_time = 0;
     rs->bytes_xfer_prev = 0;
     rs->num_dirty_pages_period = 0;
-    xbzrle_cache_miss_prev = 0;
+    rs->xbzrle_cache_miss_prev = 0;
     iterations_prev = 0;
 }
 
@@ -689,11 +690,11 @@  static void migration_bitmap_sync(RAMState *rs)
             if (iterations_prev != acct_info.iterations) {
                 acct_info.xbzrle_cache_miss_rate =
                    (double)(acct_info.xbzrle_cache_miss -
-                            xbzrle_cache_miss_prev) /
+                            rs->xbzrle_cache_miss_prev) /
                    (acct_info.iterations - iterations_prev);
             }
             iterations_prev = acct_info.iterations;
-            xbzrle_cache_miss_prev = acct_info.xbzrle_cache_miss;
+            rs->xbzrle_cache_miss_prev = acct_info.xbzrle_cache_miss;
         }
         s->dirty_pages_rate = rs->num_dirty_pages_period * 1000
             / (end_time - rs->start_time);