qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [RFC 00/12] Migration: Remove copying of guest ram page


From: Paolo Bonzini
Subject: Re: [Qemu-devel] [RFC 00/12] Migration: Remove copying of guest ram pages
Date: Thu, 21 Mar 2013 10:53:55 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130311 Thunderbird/17.0.4

Il 21/03/2013 10:48, Michael S. Tsirkin ha scritto:
> A recent discussion about overcommitted memory made me think:
> this will still need to read pages into memory even
> if all we will do is send it out on the wire immediately,
> dirtying cache etc.
> 
> Now, one property of RAM writes is that if guest changes
> the memory that we are migrating, we really
> don't care that remote will get a new copy and not
> the old copy.

Orit's patches already do this (patch 11).  The only copy that remains
is from memory to socket buffers.


> For this to work, however, we need to have a way
> for QEMUFile to know whether a specific iovec
> references RAM (so it's ok to use vmsplice)
> or a malloced buffer for device state (so it must use write
> to ensure kernel copies data).
> 
> What do you think?

Was SPLICE_F_GIFT/SPLICE_F_MOVE ever implemented in the end?  If not,
patch 11 of this series does the same thing you are suggesting, without
the indirection of an additional pipe file descriptor that is required
for splice/vmsplice.

Paolo

>> Orit Wasserman (12):
>>   Add iov_writev to use writev to send iovec (also for files)
>>   Add QemuFileWritevBuffer QemuFileOps
>>   Add socket_writev_buffer function
>>   Add stdio_writev_buffer function
>>   Add block_writev_buffer function
>>   Update bytes_xfer in qemu_put_byte
>>   Store the data to send also in iovec
>>   Use writev ops instead of put_buffer ops
>>   More optimized qemu_put_be64/32/16
>>   Add qemu_put_buffer_no_copy
>>   Use qemu_put_buffer_no_copy for guest memory pages
>>   Bye Bye put_buffer
>>
>>  arch_init.c                   |   2 +-
>>  include/migration/qemu-file.h |  20 ++++---
>>  include/qemu/iov.h            |  12 ++++
>>  savevm.c                      | 130 
>> +++++++++++++++++++++++++-----------------
>>  util/iov.c                    |  36 ++++++++++++
>>  5 files changed, 139 insertions(+), 61 deletions(-)
>>
>> -- 
>> 1.7.11.7




reply via email to

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