[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v3 1/7] enable sharing of the function between migra
From: |
Sanidhya Kashyap |
Subject: |
[Qemu-devel] [PATCH v3 1/7] enable sharing of the function between migration and bitmap dump |
Date: |
Thu, 12 Jun 2014 16:06:34 +0530 |
Added prefix qemu_ to the function as pointed out by Juan.
Signed-off-by: Sanidhya Kashyap <address@hidden>
---
arch_init.c | 19 +++++++++++--------
include/exec/ram_addr.h | 4 ++++
2 files changed, 15 insertions(+), 8 deletions(-)
diff --git a/arch_init.c b/arch_init.c
index 23044c1..2fec98b 100644
--- a/arch_init.c
+++ b/arch_init.c
@@ -434,20 +434,22 @@ ram_addr_t
migration_bitmap_find_and_reset_dirty(MemoryRegion *mr,
return (next - base) << TARGET_PAGE_BITS;
}
-static inline bool migration_bitmap_set_dirty(ram_addr_t addr)
+static inline bool qemu_bitmap_set_dirty(ram_addr_t addr, unsigned long
*bitmap,
+ bool migration_flag)
{
bool ret;
int nr = addr >> TARGET_PAGE_BITS;
- ret = test_and_set_bit(nr, migration_bitmap);
+ ret = test_and_set_bit(nr, bitmap);
- if (!ret) {
+ if (!ret && migration_flag) {
migration_dirty_pages++;
}
return ret;
}
-static void migration_bitmap_sync_range(ram_addr_t start, ram_addr_t length)
+void qemu_bitmap_sync_range(ram_addr_t start, ram_addr_t length,
+ unsigned long *bitmap, bool migration_flag)
{
ram_addr_t addr;
unsigned long page = BIT_WORD(start >> TARGET_PAGE_BITS);
@@ -461,8 +463,8 @@ static void migration_bitmap_sync_range(ram_addr_t start,
ram_addr_t length)
for (k = page; k < page + nr; k++) {
if (src[k]) {
unsigned long new_dirty;
- new_dirty = ~migration_bitmap[k];
- migration_bitmap[k] |= src[k];
+ new_dirty = ~bitmap[k];
+ bitmap[k] |= src[k];
new_dirty &= src[k];
migration_dirty_pages += ctpopl(new_dirty);
src[k] = 0;
@@ -476,7 +478,7 @@ static void migration_bitmap_sync_range(ram_addr_t start,
ram_addr_t length)
cpu_physical_memory_reset_dirty(start + addr,
TARGET_PAGE_SIZE,
DIRTY_MEMORY_MIGRATION);
- migration_bitmap_set_dirty(start + addr);
+ qemu_bitmap_set_dirty(start + addr, bitmap, migration_flag);
}
}
}
@@ -512,7 +514,8 @@ static void migration_bitmap_sync(void)
address_space_sync_dirty_bitmap(&address_space_memory);
QTAILQ_FOREACH(block, &ram_list.blocks, next) {
- migration_bitmap_sync_range(block->mr->ram_addr, block->length);
+ qemu_bitmap_sync_range(block->mr->ram_addr, block->length,
+ migration_bitmap, true);
}
trace_migration_bitmap_sync_end(migration_dirty_pages
- num_dirty_pages_init);
diff --git a/include/exec/ram_addr.h b/include/exec/ram_addr.h
index b94de02..77f7c31 100644
--- a/include/exec/ram_addr.h
+++ b/include/exec/ram_addr.h
@@ -146,5 +146,9 @@ static inline void
cpu_physical_memory_clear_dirty_range(ram_addr_t start,
void cpu_physical_memory_reset_dirty(ram_addr_t start, ram_addr_t length,
unsigned client);
+
+void qemu_bitmap_sync_range(ram_addr_t start, ram_addr_t length,
+ unsigned long *bitmap, bool migration_flag);
+
#endif
#endif
--
1.9.3
- [Qemu-devel] [PATCH v3 0/7] Obtain dirty bitmap via VM logging, Sanidhya Kashyap, 2014/06/12
- [Qemu-devel] [PATCH v3 1/7] enable sharing of the function between migration and bitmap dump,
Sanidhya Kashyap <=
- [Qemu-devel] [PATCH v3 2/7] RunState: added two new flags for bitmap dump and migration process, Sanidhya Kashyap, 2014/06/12
- [Qemu-devel] [PATCH v3 3/7] bitmap dump code via QAPI framework with runstates, Sanidhya Kashyap, 2014/06/12
- [Qemu-devel] [PATCH v3 4/7] hmp interface for dirty bitmap dump, Sanidhya Kashyap, 2014/06/12
- [Qemu-devel] [PATCH v3 5/7] cancel mechanism for an already running dump bitmap process, Sanidhya Kashyap, 2014/06/12
- [Qemu-devel] [PATCH v3 7/7] python script for extracting bitmap from a binary file, Sanidhya Kashyap, 2014/06/12
- [Qemu-devel] [PATCH v3 6/7] set the frequency of the dump bitmap process, Sanidhya Kashyap, 2014/06/12
- [Qemu-devel] [PATCH v3 3/7][RESEND PATCH] bitmap dump code via QAPI framework with runstates, Sanidhya Kashyap, 2014/06/12