Use qemu_put_buffer_async for guest memory pages
authorOrit Wasserman <owasserm@redhat.com>
Fri, 22 Mar 2013 14:48:03 +0000 (16:48 +0200)
committerJuan Quintela <quintela@redhat.com>
Tue, 26 Mar 2013 12:32:33 +0000 (13:32 +0100)
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 <owasserm@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
arch_init.c

index e1af89875e1f0768b827714931ccd8192def8929..4ef5a15a6e75af8a53167c8d31658270a49a0390 100644 (file)
@@ -478,7 +478,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_async(f, p, TARGET_PAGE_SIZE);
                 bytes_sent += TARGET_PAGE_SIZE;
                 acct_info.norm_pages++;
             }