qemu-devel
[Top][All Lists]
Advanced

[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




reply via email to

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