* arei.gong...@huawei.com (arei.gong...@huawei.com) wrote:
From: ChenLiang chenlian...@huawei.com
Reducing data copy can reduce cpu overhead.
Signed-off-by: ChenLiang chenlian...@huawei.com
Signed-off-by: Gonglei arei.gong...@huawei.com
Yes, with the previous patches that's now correct.
Reviewed-by: Dr. David Alan Gilbert dgilb...@redhat.com
---
arch_init.c | 8 +++-
1 file changed, 3 insertions(+), 5 deletions(-)
diff --git a/arch_init.c b/arch_init.c
index 84a4bd3..94b62e2 100644
--- a/arch_init.c
+++ b/arch_init.c
@@ -373,11 +373,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);
if (encoded_len == 0) {
@@ -396,7 +393,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
--
Dr. David Alan Gilbert / dgilb...@redhat.com / Manchester, UK