[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH COLO-Frame v8 14/34] arch_init: Start to trace dirty
From: |
zhanghailiang |
Subject: |
[Qemu-devel] [PATCH COLO-Frame v8 14/34] arch_init: Start to trace dirty pages of SVM |
Date: |
Wed, 29 Jul 2015 16:45:24 +0800 |
we will use this dirty bitmap together with VM's cache RAM dirty bitmap
to decide which page in cache should be flushed into VM's RAM.
Signed-off-by: zhanghailiang <address@hidden>
---
migration/ram.c | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/migration/ram.c b/migration/ram.c
index 0897ecc..a0f6348 100644
--- a/migration/ram.c
+++ b/migration/ram.c
@@ -1663,6 +1663,7 @@ static int ram_load(QEMUFile *f, void *opaque, int
version_id)
int create_and_init_ram_cache(void)
{
RAMBlock *block;
+ int64_t ram_cache_pages = last_ram_offset() >> TARGET_PAGE_BITS;
rcu_read_lock();
QLIST_FOREACH_RCU(block, &ram_list.blocks, next) {
@@ -1674,6 +1675,15 @@ int create_and_init_ram_cache(void)
}
rcu_read_unlock();
ram_cache_enable = true;
+ /*
+ * Start dirty log for Secondary VM, we use this dirty bitmap together with
+ * VM's cache RAM dirty bitmap to decide which page in cache should be
+ * flushed into VM's RAM.
+ */
+ migration_bitmap = bitmap_new(ram_cache_pages);
+ migration_dirty_pages = 0;
+ memory_global_dirty_log_start();
+
return 0;
out_locked:
@@ -1694,6 +1704,12 @@ void release_ram_cache(void)
ram_cache_enable = false;
+ if (migration_bitmap) {
+ memory_global_dirty_log_stop();
+ g_free(migration_bitmap);
+ migration_bitmap = NULL;
+ }
+
rcu_read_lock();
QLIST_FOREACH_RCU(block, &ram_list.blocks, next) {
if (block->host_cache) {
--
1.8.3.1
- [Qemu-devel] [PATCH COLO-Frame v8 10/34] QEMUSizedBuffer: Introduce two help functions for qsb, (continued)
- [Qemu-devel] [PATCH COLO-Frame v8 10/34] QEMUSizedBuffer: Introduce two help functions for qsb, zhanghailiang, 2015/07/29
- [Qemu-devel] [PATCH COLO-Frame v8 07/34] migration: Integrate COLO checkpoint process into loadvm, zhanghailiang, 2015/07/29
- [Qemu-devel] [PATCH COLO-Frame v8 12/34] COLO RAM: Load PVM's dirty page into SVM's RAM cache temporarily, zhanghailiang, 2015/07/29
- [Qemu-devel] [PATCH COLO-Frame v8 06/34] migration: Integrate COLO checkpoint process into migration, zhanghailiang, 2015/07/29
- [Qemu-devel] [PATCH COLO-Frame v8 03/34] COLO: migrate colo related info to slave, zhanghailiang, 2015/07/29
- [Qemu-devel] [PATCH COLO-Frame v8 17/34] COLO failover: Introduce state to record failover process, zhanghailiang, 2015/07/29
- [Qemu-devel] [PATCH COLO-Frame v8 11/34] COLO: Save VM state to slave when do checkpoint, zhanghailiang, 2015/07/29
- [Qemu-devel] [PATCH COLO-Frame v8 13/34] COLO VMstate: Load VM state into qsb before restore it, zhanghailiang, 2015/07/29
- [Qemu-devel] [PATCH COLO-Frame v8 22/34] COLO NIC: Init/remove colo nic devices when add/cleanup tap devices, zhanghailiang, 2015/07/29
- [Qemu-devel] [PATCH COLO-Frame v8 16/34] COLO failover: Introduce a new command to trigger a failover, zhanghailiang, 2015/07/29
- [Qemu-devel] [PATCH COLO-Frame v8 14/34] arch_init: Start to trace dirty pages of SVM,
zhanghailiang <=
- [Qemu-devel] [PATCH COLO-Frame v8 20/34] COLO failover: Don't do failover during loading VM's state, zhanghailiang, 2015/07/29
- [Qemu-devel] [PATCH COLO-Frame v8 23/34] tap: Make launch_script() public, zhanghailiang, 2015/07/29
- Re: [Qemu-devel] [PATCH COLO-Frame v8 23/34] tap: Make launch_script() public, Jason Wang, 2015/07/29
- Re: [Qemu-devel] [PATCH COLO-Frame v8 23/34] tap: Make launch_script() public, zhanghailiang, 2015/07/29
- Re: [Qemu-devel] [PATCH COLO-Frame v8 23/34] tap: Make launch_script() public, Jason Wang, 2015/07/29
- Re: [Qemu-devel] [PATCH COLO-Frame v8 23/34] tap: Make launch_script() public, zhanghailiang, 2015/07/29
- Re: [Qemu-devel] [PATCH COLO-Frame v8 23/34] tap: Make launch_script() public, Jason Wang, 2015/07/29
- Re: [Qemu-devel] [PATCH COLO-Frame v8 23/34] tap: Make launch_script() public, zhanghailiang, 2015/07/30
- Re: [Qemu-devel] [PATCH COLO-Frame v8 23/34] tap: Make launch_script() public, Daniel P. Berrange, 2015/07/29
- Re: [Qemu-devel] [PATCH COLO-Frame v8 23/34] tap: Make launch_script() public, Dr. David Alan Gilbert, 2015/07/29