From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:59904) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UIbUx-0007Vl-0M for qemu-devel@nongnu.org; Thu, 21 Mar 2013 05:09:24 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UIbUv-0005vm-QG for qemu-devel@nongnu.org; Thu, 21 Mar 2013 05:09:22 -0400 Received: from mx1.redhat.com ([209.132.183.28]:64559) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UIbUv-0005vF-J5 for qemu-devel@nongnu.org; Thu, 21 Mar 2013 05:09:21 -0400 From: Orit Wasserman Date: Thu, 21 Mar 2013 11:09:30 +0200 Message-Id: <1363856971-4601-12-git-send-email-owasserm@redhat.com> In-Reply-To: <1363856971-4601-1-git-send-email-owasserm@redhat.com> References: <1363856971-4601-1-git-send-email-owasserm@redhat.com> Subject: [Qemu-devel] [RFC 11/12] Use qemu_put_buffer_no_copy for guest memory pages List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Orit Wasserman , pbonzini@redhat.com, mst@redhat.com, chegu_vinod@hp.com, quintela@redhat.com This will remove an unneeded copy of guest memory pages. For the page header and device state we still copy the data to the static buffer the other option is to allocate the memory on demand which is more expensive. Signed-off-by: Orit Wasserman --- arch_init.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch_init.c b/arch_init.c index 98e2bc6..27b53eb 100644 --- a/arch_init.c +++ b/arch_init.c @@ -481,7 +481,7 @@ static int ram_save_block(QEMUFile *f, bool last_stage) /* XBZRLE overflow or normal page */ if (bytes_sent == -1) { bytes_sent = save_block_hdr(f, block, offset, cont, RAM_SAVE_FLAG_PAGE); - qemu_put_buffer(f, p, TARGET_PAGE_SIZE); + qemu_put_buffer_no_copy(f, p, TARGET_PAGE_SIZE); bytes_sent += TARGET_PAGE_SIZE; acct_info.norm_pages++; } -- 1.7.11.7