qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH 13/29] ram_addr: tweaks to xen_modified_memory


From: Fam Zheng
Subject: Re: [Qemu-devel] [PATCH 13/29] ram_addr: tweaks to xen_modified_memory
Date: Tue, 26 May 2015 20:52:28 +0800
User-agent: Mutt/1.5.23 (2014-03-12)

On Mon, 04/27 18:28, Paolo Bonzini wrote:
> Invoke xen_modified_memory from cpu_physical_memory_set_dirty_range_nocode;
> it is akin to DIRTY_MEMORY_MIGRATION, so set it together with that bitmap.
> The remaining call from invalidate_and_set_dirty's "else" branch will go
> away soon.
> 
> Second, fix the second argument to the function in the
> cpu_physical_memory_set_dirty_lebitmap call site.  That function is only used
> by KVM, but it is better to be clean anyway.
> 
> Acked-by: Stefano Stabellini <address@hidden>
> Signed-off-by: Paolo Bonzini <address@hidden>

Reviewed-by: Fam Zheng <address@hidden>

> ---
>  exec.c                  | 3 ++-
>  include/exec/ram_addr.h | 3 ++-
>  2 files changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/exec.c b/exec.c
> index 4717928..083d65d 100644
> --- a/exec.c
> +++ b/exec.c
> @@ -2260,8 +2260,9 @@ static void invalidate_and_set_dirty(hwaddr addr,
>      if (cpu_physical_memory_range_includes_clean(addr, length)) {
>          tb_invalidate_phys_range(addr, addr + length, 0);
>          cpu_physical_memory_set_dirty_range_nocode(addr, length);
> +    } else {
> +        xen_modified_memory(addr, length);
>      }
> -    xen_modified_memory(addr, length);
>  }
>  
>  static int memory_access_size(MemoryRegion *mr, unsigned l, hwaddr addr)
> diff --git a/include/exec/ram_addr.h b/include/exec/ram_addr.h
> index ff558a4..7f6e928 100644
> --- a/include/exec/ram_addr.h
> +++ b/include/exec/ram_addr.h
> @@ -112,6 +112,7 @@ static inline void 
> cpu_physical_memory_set_dirty_range_nocode(ram_addr_t start,
>      page = start >> TARGET_PAGE_BITS;
>      bitmap_set(ram_list.dirty_memory[DIRTY_MEMORY_MIGRATION], page, end - 
> page);
>      bitmap_set(ram_list.dirty_memory[DIRTY_MEMORY_VGA], page, end - page);
> +    xen_modified_memory(start, length);
>  }
>  
>  static inline void cpu_physical_memory_set_dirty_range(ram_addr_t start,
> @@ -155,7 +156,7 @@ static inline void 
> cpu_physical_memory_set_dirty_lebitmap(unsigned long *bitmap,
>                  ram_list.dirty_memory[DIRTY_MEMORY_CODE][page + k] |= temp;
>              }
>          }
> -        xen_modified_memory(start, pages);
> +        xen_modified_memory(start, pages << TARGET_PAGE_BITS);
>      } else {
>          /*
>           * bitmap-traveling is faster than memory-traveling (for addr...)
> -- 
> 1.8.3.1
> 
> 



reply via email to

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