[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
- Re: [Qemu-devel] [RFC 07/12] Store the data to send also in iovec, (continued)
- [Qemu-devel] [RFC 08/12] Use writev ops instead of put_buffer ops, Orit Wasserman, 2013/03/21
- [Qemu-devel] [RFC 09/12] More optimized qemu_put_be64/32/16, Orit Wasserman, 2013/03/21
- [Qemu-devel] [RFC 10/12] Add qemu_put_buffer_no_copy, Orit Wasserman, 2013/03/21
- [Qemu-devel] [RFC 11/12] Use qemu_put_buffer_no_copy for guest memory pages, Orit Wasserman, 2013/03/21
- [Qemu-devel] [RFC 12/12] Bye Bye put_buffer, Orit Wasserman, 2013/03/21
- Re: [Qemu-devel] [RFC 00/12] Migration: Remove copying of guest ram pages, Paolo Bonzini, 2013/03/21
- Re: [Qemu-devel] [RFC 00/12] Migration: Remove copying of guest ram pages, Michael S. Tsirkin, 2013/03/21
- Re: [Qemu-devel] [RFC 00/12] Migration: Remove copying of guest ram pages,
Paolo Bonzini <=