qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH 10/22] ram_addr: tweaks to xen_modified_memory


From: Stefano Stabellini
Subject: Re: [Qemu-devel] [PATCH 10/22] ram_addr: tweaks to xen_modified_memory
Date: Sat, 28 Mar 2015 19:04:22 +0000
User-agent: Alpine 2.02 (DEB 1266 2009-07-14)

On Thu, 26 Mar 2015, 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.
> 
> Signed-off-by: Paolo Bonzini <address@hidden>

Acked-by: Stefano Stabellini <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 8eb73fd..ffa57dd 100644
> --- a/exec.c
> +++ b/exec.c
> @@ -2261,8 +2261,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...)
> -- 
> 2.3.3
> 
> 
> 



reply via email to

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