qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [v2 2/2] migration: Implement multiple compression thre


From: Li, Liang Z
Subject: Re: [Qemu-devel] [v2 2/2] migration: Implement multiple compression threads
Date: Fri, 21 Nov 2014 08:35:11 +0000

> hmm, multiple thread compression can't co-work with xbzrle. xbzrle need 
> guarantee the cache at src is same to dest. But I dont see that below:
>
> +    /* XBZRLE overflow or normal page */
> +    if (bytes_sent == -1) {
> +        bytes_sent = migrate_save_block_hdr(&param->migbuf, block,
> +            offset, cont, RAM_SAVE_FLAG_COMPRESS_PAGE);
> +        blen = migrate_qemu_add_compress(&param->migbuf, p,
> +            TARGET_PAGE_SIZE, migrate_compress_level());
> +        bytes_sent += blen;
> +        atomic_inc(&acct_info.norm_pages);
>
> the code don't update the cache of xbzrle at src.

It's updated here..

 +    } else if (is_zero_range(p, TARGET_PAGE_SIZE)) {
 +        atomic_inc(&acct_info.dup_pages);
 +        bytes_sent = migrate_save_block_hdr(&param->migbuf, block, offset, 
cont,
 +                             RAM_SAVE_FLAG_COMPRESS);
 +        migrate_put_byte(&param->migbuf, 0);
 +        bytes_sent++;
 +        /* Must let xbzrle know, otherwise a previous (now 0'd) cached
 +         * page would be stale
 +         */
 +        xbzrle_cache_zero_page(current_addr);
 +    } else if (!param->bulk_stage && migrate_use_xbzrle()) {
 +        bytes_sent = save_xbzrle_page(&param->migbuf, &p, current_addr, block,
 +                              offset, cont, last_stage, true);
 +    }



reply via email to

[Prev in Thread] Current Thread [Next in Thread]