[Qemu-devel] [PULL 12/19] memory: Pass mr into snapshot_and_clear_dirty

2019-07-12 Thread Juan Quintela
From: Peter Xu 

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 
Reviewed-by: Juan Quintela 
Message-Id: <20190603065056.25211-6-pet...@redhat.com>
Signed-off-by: Juan Quintela 
---
 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 50ea9c5aaa..3a00698cc0 100644
--- a/exec.c
+++ b/exec.c
@@ -1390,9 +1390,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 offset, hwaddr length, unsigned client)
 {
 DirtyMemoryBlocks *blocks;
+ram_addr_t start = memory_region_get_ram_addr(mr) + offset;
 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 0a532c3963..1843b6f2d3 100644
--- a/include/exec/ram_addr.h
+++ b/include/exec/ram_addr.h
@@ -404,7 +404,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, hwaddr offset, 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 93486a71d7..71fcaf2d00 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.21.0




[Qemu-devel] [PULL 12/19] memory: Pass mr into snapshot_and_clear_dirty

2019-07-11 Thread Juan Quintela
From: Peter Xu 

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 
Reviewed-by: Juan Quintela 
Message-Id: <20190603065056.25211-6-pet...@redhat.com>
Signed-off-by: Juan Quintela 
---
 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 50ea9c5aaa..3a00698cc0 100644
--- a/exec.c
+++ b/exec.c
@@ -1390,9 +1390,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 offset, hwaddr length, unsigned client)
 {
 DirtyMemoryBlocks *blocks;
+ram_addr_t start = memory_region_get_ram_addr(mr) + offset;
 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 0a532c3963..1843b6f2d3 100644
--- a/include/exec/ram_addr.h
+++ b/include/exec/ram_addr.h
@@ -404,7 +404,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, hwaddr offset, 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 93486a71d7..71fcaf2d00 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.21.0