[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 6/7] migraion: optimiztion xbzrle by reducing da
From: |
Gonglei |
Subject: |
Re: [Qemu-devel] [PATCH 6/7] migraion: optimiztion xbzrle by reducing data copy |
Date: |
Fri, 28 Feb 2014 19:06:53 +0800 |
User-agent: |
Mozilla/5.0 (Windows NT 6.1; rv:11.0) Gecko/20120327 Thunderbird/11.0.1 |
On 2014/2/28 18:30, Dr. David Alan Gilbert wrote:
> * Gonglei (Arei) (address@hidden) wrote:
>> Reducing data copy can reduce cpu overheah.
>
> (Note a few typos in subject/title)
>
>> Signed-off-by: ChenLiang <address@hidden>
>> Signed-off-by: Gonglei <address@hidden>
>> ---
>> arch_init.c | 8 +++-----
>> 1 file changed, 3 insertions(+), 5 deletions(-)
>>
>> diff --git a/arch_init.c b/arch_init.c
>> index 2211e0b..cc88875 100644
>> --- a/arch_init.c
>> +++ b/arch_init.c
>> @@ -344,11 +344,8 @@ static int save_xbzrle_page(QEMUFile *f, uint8_t
>> **current_data,
>>
>> prev_cached_page = get_cached_data(XBZRLE.cache, current_addr);
>>
>> - /* save current buffer into memory */
>> - memcpy(XBZRLE.current_buf, *current_data, TARGET_PAGE_SIZE);
>> -
>> /* XBZRLE encoding (if there is no overflow) */
>> - encoded_len = xbzrle_encode_buffer(prev_cached_page, XBZRLE.current_buf,
>> + encoded_len = xbzrle_encode_buffer(prev_cached_page, *current_data,
>> TARGET_PAGE_SIZE, XBZRLE.encoded_buf,
>> TARGET_PAGE_SIZE);
>
> Is xbzrle_encode_buffer safe if the main memory is still being changed while
> it is run? Even with multiple CPUs changing it? Even on CPUs with looser
> memory ordering semantics?
>
It's OK. We just need to assure the pages of cache and the pages which be sent
coherence.
>> if (encoded_len == 0) {
>> @@ -367,7 +364,8 @@ static int save_xbzrle_page(QEMUFile *f, uint8_t
>> **current_data,
>>
>> /* we need to update the data in the cache, in order to get the same
>> data */
>> if (!last_stage) {
>> - memcpy(prev_cached_page, XBZRLE.current_buf, TARGET_PAGE_SIZE);
>> + xbzrle_decode_buffer(XBZRLE.encoded_buf, encoded_len,
>> prev_cached_page,
>> +
>> TARGET_PAGE_SIZE);
>> }
>>
>> /* Send XBZRLE based compressed page */
>> --
>> 1.7.12.4
>>
>>
>> Best regards,
>> -Gonglei
>>
>>
> --
> Dr. David Alan Gilbert / address@hidden / Manchester, UK
Best regards,
-Gonglei