diff mbox series

[v3,06/12] memory: Pass mr into snapshot_and_clear_dirty

Message ID 20190530092919.26059-7-peterx@redhat.com
State New
Headers show
Series kvm/migration: support KVM_CLEAR_DIRTY_LOG | expand

Commit Message

Peter Xu May 30, 2019, 9:29 a.m. UTC
Also we change the 2nd parameter of it to be the relative offset
within the memory region. This is to be used in follow up patches.

Signed-off-by: Peter Xu <peterx@redhat.com>
---
 exec.c                  | 3 ++-
 include/exec/ram_addr.h | 2 +-
 memory.c                | 3 +--
 3 files changed, 4 insertions(+), 4 deletions(-)

Comments

Dr. David Alan Gilbert May 30, 2019, 11:22 a.m. UTC | #1
* Peter Xu (peterx@redhat.com) wrote:
> Also we change the 2nd parameter of it to be the relative offset
> within the memory region. This is to be used in follow up patches.
> 
> Signed-off-by: Peter Xu <peterx@redhat.com>
> ---
>  exec.c                  | 3 ++-
>  include/exec/ram_addr.h | 2 +-
>  memory.c                | 3 +--
>  3 files changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/exec.c b/exec.c
> index 4e734770c2..2615b4cfed 100644
> --- a/exec.c
> +++ b/exec.c
> @@ -1387,9 +1387,10 @@ bool cpu_physical_memory_test_and_clear_dirty(ram_addr_t start,
>  }
>  
>  DirtyBitmapSnapshot *cpu_physical_memory_snapshot_and_clear_dirty
> -     (ram_addr_t start, ram_addr_t length, unsigned client)
> +(MemoryRegion *mr, hwaddr addr, hwaddr length, unsigned client)

Better to keep some indent?

>  {
>      DirtyMemoryBlocks *blocks;
> +    ram_addr_t start = memory_region_get_ram_addr(mr) + addr;
>      unsigned long align = 1UL << (TARGET_PAGE_BITS + BITS_PER_LEVEL);
>      ram_addr_t first = QEMU_ALIGN_DOWN(start, align);
>      ram_addr_t last  = QEMU_ALIGN_UP(start + length, align);
> diff --git a/include/exec/ram_addr.h b/include/exec/ram_addr.h
> index 79e70a96ee..f8ee011d3c 100644
> --- a/include/exec/ram_addr.h
> +++ b/include/exec/ram_addr.h
> @@ -403,7 +403,7 @@ bool cpu_physical_memory_test_and_clear_dirty(ram_addr_t start,
>                                                unsigned client);
>  
>  DirtyBitmapSnapshot *cpu_physical_memory_snapshot_and_clear_dirty
> -    (ram_addr_t start, ram_addr_t length, unsigned client);
> +(MemoryRegion *mr, ram_addr_t start, hwaddr length, unsigned client);

You've called it 'start' there but 'addr' in the definition.
Either way a comment saying that it's the offset with mr would be good.

Dave

>  
>  bool cpu_physical_memory_snapshot_get_dirty(DirtyBitmapSnapshot *snap,
>                                              ram_addr_t start,
> diff --git a/memory.c b/memory.c
> index cff0ea8f40..84bba7b65c 100644
> --- a/memory.c
> +++ b/memory.c
> @@ -2071,8 +2071,7 @@ DirtyBitmapSnapshot *memory_region_snapshot_and_clear_dirty(MemoryRegion *mr,
>  {
>      assert(mr->ram_block);
>      memory_region_sync_dirty_bitmap(mr);
> -    return cpu_physical_memory_snapshot_and_clear_dirty(
> -                memory_region_get_ram_addr(mr) + addr, size, client);
> +    return cpu_physical_memory_snapshot_and_clear_dirty(mr, addr, size, client);
>  }
>  
>  bool memory_region_snapshot_get_dirty(MemoryRegion *mr, DirtyBitmapSnapshot *snap,
> -- 
> 2.17.1
> 
--
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK
Peter Xu May 31, 2019, 2:36 a.m. UTC | #2
On Thu, May 30, 2019 at 12:22:00PM +0100, Dr. David Alan Gilbert wrote:
> * Peter Xu (peterx@redhat.com) wrote:
> > Also we change the 2nd parameter of it to be the relative offset
> > within the memory region. This is to be used in follow up patches.
> > 
> > Signed-off-by: Peter Xu <peterx@redhat.com>
> > ---
> >  exec.c                  | 3 ++-
> >  include/exec/ram_addr.h | 2 +-
> >  memory.c                | 3 +--
> >  3 files changed, 4 insertions(+), 4 deletions(-)
> > 
> > diff --git a/exec.c b/exec.c
> > index 4e734770c2..2615b4cfed 100644
> > --- a/exec.c
> > +++ b/exec.c
> > @@ -1387,9 +1387,10 @@ bool cpu_physical_memory_test_and_clear_dirty(ram_addr_t start,
> >  }
> >  
> >  DirtyBitmapSnapshot *cpu_physical_memory_snapshot_and_clear_dirty
> > -     (ram_addr_t start, ram_addr_t length, unsigned client)
> > +(MemoryRegion *mr, hwaddr addr, hwaddr length, unsigned client)
> 
> Better to keep some indent?

Ok.  Emacs did it automatically for me without being noticed.  The
previous 5-spaces is odd, I'll use 4 spaces.

> 
> >  {
> >      DirtyMemoryBlocks *blocks;
> > +    ram_addr_t start = memory_region_get_ram_addr(mr) + addr;
> >      unsigned long align = 1UL << (TARGET_PAGE_BITS + BITS_PER_LEVEL);
> >      ram_addr_t first = QEMU_ALIGN_DOWN(start, align);
> >      ram_addr_t last  = QEMU_ALIGN_UP(start + length, align);
> > diff --git a/include/exec/ram_addr.h b/include/exec/ram_addr.h
> > index 79e70a96ee..f8ee011d3c 100644
> > --- a/include/exec/ram_addr.h
> > +++ b/include/exec/ram_addr.h
> > @@ -403,7 +403,7 @@ bool cpu_physical_memory_test_and_clear_dirty(ram_addr_t start,
> >                                                unsigned client);
> >  
> >  DirtyBitmapSnapshot *cpu_physical_memory_snapshot_and_clear_dirty
> > -    (ram_addr_t start, ram_addr_t length, unsigned client);
> > +(MemoryRegion *mr, ram_addr_t start, hwaddr length, unsigned client);
> 
> You've called it 'start' there but 'addr' in the definition.
> Either way a comment saying that it's the offset with mr would be good.

Right I missed that.  Let me directly rename it to "offset" in both
places to be clear.  Also, I should use hwaddr rather than ram_addr_t,
and I'll fix the indent too here.
diff mbox series

Patch

diff --git a/exec.c b/exec.c
index 4e734770c2..2615b4cfed 100644
--- a/exec.c
+++ b/exec.c
@@ -1387,9 +1387,10 @@  bool cpu_physical_memory_test_and_clear_dirty(ram_addr_t start,
 }
 
 DirtyBitmapSnapshot *cpu_physical_memory_snapshot_and_clear_dirty
-     (ram_addr_t start, ram_addr_t length, unsigned client)
+(MemoryRegion *mr, hwaddr addr, hwaddr length, unsigned client)
 {
     DirtyMemoryBlocks *blocks;
+    ram_addr_t start = memory_region_get_ram_addr(mr) + addr;
     unsigned long align = 1UL << (TARGET_PAGE_BITS + BITS_PER_LEVEL);
     ram_addr_t first = QEMU_ALIGN_DOWN(start, align);
     ram_addr_t last  = QEMU_ALIGN_UP(start + length, align);
diff --git a/include/exec/ram_addr.h b/include/exec/ram_addr.h
index 79e70a96ee..f8ee011d3c 100644
--- a/include/exec/ram_addr.h
+++ b/include/exec/ram_addr.h
@@ -403,7 +403,7 @@  bool cpu_physical_memory_test_and_clear_dirty(ram_addr_t start,
                                               unsigned client);
 
 DirtyBitmapSnapshot *cpu_physical_memory_snapshot_and_clear_dirty
-    (ram_addr_t start, ram_addr_t length, unsigned client);
+(MemoryRegion *mr, ram_addr_t start, hwaddr length, unsigned client);
 
 bool cpu_physical_memory_snapshot_get_dirty(DirtyBitmapSnapshot *snap,
                                             ram_addr_t start,
diff --git a/memory.c b/memory.c
index cff0ea8f40..84bba7b65c 100644
--- a/memory.c
+++ b/memory.c
@@ -2071,8 +2071,7 @@  DirtyBitmapSnapshot *memory_region_snapshot_and_clear_dirty(MemoryRegion *mr,
 {
     assert(mr->ram_block);
     memory_region_sync_dirty_bitmap(mr);
-    return cpu_physical_memory_snapshot_and_clear_dirty(
-                memory_region_get_ram_addr(mr) + addr, size, client);
+    return cpu_physical_memory_snapshot_and_clear_dirty(mr, addr, size, client);
 }
 
 bool memory_region_snapshot_get_dirty(MemoryRegion *mr, DirtyBitmapSnapshot *snap,