[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 4/5] ram/colo: only record bitmap of dirty pages in COLO stage
From: |
Dr. David Alan Gilbert (git) |
Subject: |
[PULL 4/5] ram/colo: only record bitmap of dirty pages in COLO stage |
Date: |
Fri, 13 Mar 2020 10:30:38 +0000 |
From: zhanghailiang <address@hidden>
It is only need to record bitmap of dirty pages while goes
into COLO stage.
Signed-off-by: zhanghailiang <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Dr. David Alan Gilbert <address@hidden>
Signed-off-by: Dr. David Alan Gilbert <address@hidden>
---
migration/ram.c | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/migration/ram.c b/migration/ram.c
index 31f4a9dc09..c12cfdbe26 100644
--- a/migration/ram.c
+++ b/migration/ram.c
@@ -2742,7 +2742,7 @@ static inline void *host_from_ram_block_offset(RAMBlock
*block,
}
static inline void *colo_cache_from_block_offset(RAMBlock *block,
- ram_addr_t offset)
+ ram_addr_t offset, bool record_bitmap)
{
if (!offset_in_ramblock(block, offset)) {
return NULL;
@@ -2758,7 +2758,8 @@ static inline void *colo_cache_from_block_offset(RAMBlock
*block,
* It help us to decide which pages in ram cache should be flushed
* into VM's RAM later.
*/
- if (!test_and_set_bit(offset >> TARGET_PAGE_BITS, block->bmap)) {
+ if (record_bitmap &&
+ !test_and_set_bit(offset >> TARGET_PAGE_BITS, block->bmap)) {
ram_state->migration_dirty_pages++;
}
return block->colo_cache + offset;
@@ -3416,13 +3417,13 @@ static int ram_load_precopy(QEMUFile *f)
if (migration_incoming_colo_enabled()) {
if (migration_incoming_in_colo_state()) {
/* In COLO stage, put all pages into cache temporarily */
- host = colo_cache_from_block_offset(block, addr);
+ host = colo_cache_from_block_offset(block, addr, true);
} else {
/*
* In migration stage but before COLO stage,
* Put all pages into both cache and SVM's memory.
*/
- host_bak = colo_cache_from_block_offset(block, addr);
+ host_bak = colo_cache_from_block_offset(block, addr,
false);
}
}
if (!host) {
--
2.24.1
- [PULL 0/5] migration queue, Dr. David Alan Gilbert (git), 2020/03/13
- [PULL 1/5] configure: Improve zstd test, Dr. David Alan Gilbert (git), 2020/03/13
- [PULL 4/5] ram/colo: only record bitmap of dirty pages in COLO stage,
Dr. David Alan Gilbert (git) <=
- [PULL 2/5] migration/throttle: Add throttle-trig-thres migration parameter, Dr. David Alan Gilbert (git), 2020/03/13
- [PULL 3/5] COLO: Optimize memory back-up process, Dr. David Alan Gilbert (git), 2020/03/13
- [PULL 5/5] migration: recognize COLO as part of activating process, Dr. David Alan Gilbert (git), 2020/03/13
- Re: [PULL 0/5] migration queue, Peter Maydell, 2020/03/13