[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH V2 5/8] ram/colo: only record bitmap of dirty pages in COLO s
From: |
Dr. David Alan Gilbert |
Subject: |
Re: [PATCH V2 5/8] ram/colo: only record bitmap of dirty pages in COLO stage |
Date: |
Thu, 12 Mar 2020 18:55:41 +0000 |
User-agent: |
Mutt/1.13.3 (2020-01-12) |
* zhanghailiang (address@hidden) wrote:
> It is only need to record bitmap of dirty pages while goes
> into COLO stage.
>
> Signed-off-by: zhanghailiang <address@hidden>
Reviewed-by: Dr. David Alan Gilbert <address@hidden>
and queued
> ---
> migration/ram.c | 9 +++++----
> 1 file changed, 5 insertions(+), 4 deletions(-)
>
> diff --git a/migration/ram.c b/migration/ram.c
> index ebf9e6ba51..1b3f423351 100644
> --- a/migration/ram.c
> +++ b/migration/ram.c
> @@ -2735,7 +2735,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;
> @@ -2751,7 +2751,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;
> @@ -3408,13 +3409,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.21.0
>
>
--
Dr. David Alan Gilbert / address@hidden / Manchester, UK
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: [PATCH V2 5/8] ram/colo: only record bitmap of dirty pages in COLO stage,
Dr. David Alan Gilbert <=