On 03/22/2013 08:47 AM, Orit Wasserman wrote: > In migration all data is copied to a static buffer in QEMUFile, > this hurts our network bandwidth and CPU usage especially with large guests. > We switched to iovec for storing different buffers to send (even a byte field > is > considered as a buffer) and use sendmsg to send the iovec. > Adjacent iovecs are coalesced to create a bigger buffer instead of many small > buffers. > > Guest memory pages are not copied by calling a new function > qemu_put_buffer_async. > The page header data and device state data are still copied into the static > buffer. This data consists of a lot of bytes and integer fields and the static > buffer is used to store it during batching. > > git repository: git://github.com/oritwas/qemu.git sendv_v2 > > Changes from v4: > return ssize_t for writev_buffer ops. > Fix other Eric's comments. > Squash patch 8 (coalesce adjacent iovecs) into patch 4.
Series: Reviewed-by: Eric Blake <ebl...@redhat.com> -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature