[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 16/51] ram: Move iterations into RAMState
From: |
Peter Xu |
Subject: |
Re: [Qemu-devel] [PATCH 16/51] ram: Move iterations into RAMState |
Date: |
Mon, 27 Mar 2017 18:46:50 +0800 |
User-agent: |
Mutt/1.5.24 (2015-08-30) |
On Thu, Mar 23, 2017 at 09:45:09PM +0100, Juan Quintela wrote:
> Signed-off-by: Juan Quintela <address@hidden>
Reviewed-by: Peter Xu <address@hidden>
Another comment not directly related to this patch...
> ---
> migration/ram.c | 12 +++++++-----
> 1 file changed, 7 insertions(+), 5 deletions(-)
>
> diff --git a/migration/ram.c b/migration/ram.c
> index 9fa3bd7..690ca8f 100644
> --- a/migration/ram.c
> +++ b/migration/ram.c
> @@ -170,6 +170,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;
>
> @@ -177,7 +179,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;
> @@ -693,13 +694,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);
Here we are calculating cache miss rate by xbzrle_cache_miss and
iterations. However looks like xbzrle_cache_miss is counted per guest
page (in save_xbzrle_page()) while the iteration count is per host
page (in ram_save_iterate()). Then, what if host page size not equals
to guest page size? E.g., when host uses 2M huge pages, host page size
is 2M, while guest page size can be 4K?
Thanks,
-- peterx
- [Qemu-devel] [PATCH 09/51] ram: Move xbzrle_cache_miss_prev into RAMState, (continued)
- [Qemu-devel] [PATCH 09/51] ram: Move xbzrle_cache_miss_prev into RAMState, Juan Quintela, 2017/03/23
- [Qemu-devel] [PATCH 10/51] ram: Move iterations_prev into RAMState, Juan Quintela, 2017/03/23
- [Qemu-devel] [PATCH 13/51] ram: Remove unused pages_skipped variable, Juan Quintela, 2017/03/23
- [Qemu-devel] [PATCH 12/51] ram: Remove unused dup_mig_bytes_transferred(), Juan Quintela, 2017/03/23
- [Qemu-devel] [PATCH 11/51] ram: Move dup_pages into RAMState, Juan Quintela, 2017/03/23
- [Qemu-devel] [PATCH 16/51] ram: Move iterations into RAMState, Juan Quintela, 2017/03/23
- Re: [Qemu-devel] [PATCH 16/51] ram: Move iterations into RAMState,
Peter Xu <=
- [Qemu-devel] [PATCH 14/51] ram: Move norm_pages to RAMState, Juan Quintela, 2017/03/23
- [Qemu-devel] [PATCH 15/51] ram: Remove norm_mig_bytes_transferred, Juan Quintela, 2017/03/23
- [Qemu-devel] [PATCH 17/51] ram: Move xbzrle_bytes into RAMState, Juan Quintela, 2017/03/23
- [Qemu-devel] [PATCH 18/51] ram: Move xbzrle_pages into RAMState, Juan Quintela, 2017/03/23